Merge branch 'main' into side-modals

This commit is contained in:
XhmikosR 2020-12-06 09:12:48 +02:00 committed by GitHub
commit f54d63119b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
278 changed files with 31609 additions and 4926 deletions

View file

@ -1,13 +1,14 @@
# https://github.com/browserslist/browserslist#readme
>= 1%
last 1 major version
>= 0.5%
last 2 major versions
not dead
Chrome >= 60
Firefox >= 60
# needed since Legacy Edge still has usage; 79 was the first Chromium Edge version
# should be removed in the future when its usage drops or when it's moved to dead browsers
not Edge < 79
Firefox ESR
iOS >= 10
Safari >= 10
Android >= 6

View file

@ -10,7 +10,7 @@
},
{
"path": "./dist/css/bootstrap-reboot.css",
"maxSize": "2 kB"
"maxSize": "2.25 kB"
},
{
"path": "./dist/css/bootstrap-reboot.min.css",
@ -38,7 +38,7 @@
},
{
"path": "./dist/js/bootstrap.bundle.min.js",
"maxSize": "22 kB"
"maxSize": "22.25 kB"
},
{
"path": "./dist/js/bootstrap.esm.js",
@ -54,7 +54,7 @@
},
{
"path": "./dist/js/bootstrap.min.js",
"maxSize": "15.5 kB"
"maxSize": "15.75 kB"
}
],
"ci": {

View file

@ -49,15 +49,11 @@
"unicorn/no-null": "off",
"unicorn/no-unused-properties": "error",
"unicorn/no-useless-undefined": "off",
"unicorn/prefer-array-find": "off",
"unicorn/prefer-dataset": "off",
"unicorn/prefer-includes": "off",
"unicorn/prefer-node-append": "off",
"unicorn/prefer-node-remove": "off",
"unicorn/prefer-number-properties": "off",
"unicorn/prefer-optional-catch-binding": "off",
"unicorn/prefer-query-selector": "off",
"unicorn/prefer-set-has": "off",
"unicorn/prevent-abbreviations": "off"
}
}

View file

@ -5,6 +5,7 @@ on:
env:
CI: true
FORCE_COLOR: 2
NODE: 14.x
jobs:

View file

@ -8,6 +8,7 @@ on:
env:
CI: true
FORCE_COLOR: 2
NODE: 14.x
jobs:

View file

@ -1,15 +1,16 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
name: "CodeQL"
on:
push:
branches-ignore:
- "dependabot/**"
branches:
- main
- v4-dev
- "!dependabot/**"
pull_request:
# The branches below must be a subset of the branches above
branches:
- main
- v4-dev
schedule:
- cron: "0 2 * * 5"
@ -18,15 +19,6 @@ jobs:
name: Analyze
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
# Override automatic language detection by changing the below list
# Supported options are ['csharp', 'cpp', 'go', 'java', 'javascript', 'python']
language: ["javascript"]
# Learn more...
# https://docs.github.com/en/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#overriding-automatic-language-detection
steps:
- name: Checkout repository
uses: actions/checkout@v2
@ -44,27 +36,10 @@ jobs:
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main
languages: "javascript"
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v1
# Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
#- run: |
# make bootstrap
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1

View file

@ -8,6 +8,7 @@ on:
env:
CI: true
FORCE_COLOR: 2
NODE: 14.x
jobs:

View file

@ -8,6 +8,7 @@ on:
env:
CI: true
FORCE_COLOR: 2
NODE: 14.x
jobs:

View file

@ -8,6 +8,7 @@ on:
env:
CI: true
FORCE_COLOR: 2
jobs:
run:

View file

@ -8,6 +8,7 @@ on:
env:
CI: true
FORCE_COLOR: 2
NODE: 14.x
jobs:

View file

@ -8,6 +8,7 @@ on:
env:
CI: true
FORCE_COLOR: 2
NODE: 14.x
jobs:

View file

@ -83,37 +83,52 @@ Within the download you'll find the following directories and files, logically g
```text
bootstrap/
└── dist/
├── css/
│ ├── bootstrap-grid.css
│ ├── bootstrap-grid.css.map
│ ├── bootstrap-grid.min.css
│ ├── bootstrap-grid.min.css.map
│ ├── bootstrap-reboot.css
│ ├── bootstrap-reboot.css.map
│ ├── bootstrap-reboot.min.css
│ ├── bootstrap-reboot.min.css.map
│ ├── bootstrap-utilities.css
│ ├── bootstrap-utilities.css.map
│ ├── bootstrap-utilities.min.css
│ ├── bootstrap-utilities.min.css.map
│ ├── bootstrap.css
│ ├── bootstrap.css.map
│ ├── bootstrap.min.css
│ └── bootstrap.min.css.map
└── js/
├── bootstrap.bundle.js
├── bootstrap.bundle.js.map
├── bootstrap.bundle.min.js
├── bootstrap.bundle.min.js.map
├── bootstrap.esm.js
├── bootstrap.esm.js.map
├── bootstrap.esm.min.js
├── bootstrap.esm.min.js.map
├── bootstrap.js
├── bootstrap.js.map
├── bootstrap.min.js
└── bootstrap.min.js.map
├── css/
│ ├── bootstrap-grid.css
│ ├── bootstrap-grid.css.map
│ ├── bootstrap-grid.min.css
│ ├── bootstrap-grid.min.css.map
│ ├── bootstrap-grid.rtl.css
│ ├── bootstrap-grid.rtl.css.map
│ ├── bootstrap-grid.rtl.min.css
│ ├── bootstrap-grid.rtl.min.css.map
│ ├── bootstrap-reboot.css
│ ├── bootstrap-reboot.css.map
│ ├── bootstrap-reboot.min.css
│ ├── bootstrap-reboot.min.css.map
│ ├── bootstrap-reboot.rtl.css
│ ├── bootstrap-reboot.rtl.css.map
│ ├── bootstrap-reboot.rtl.min.css
│ ├── bootstrap-reboot.rtl.min.css.map
│ ├── bootstrap-utilities.css
│ ├── bootstrap-utilities.css.map
│ ├── bootstrap-utilities.min.css
│ ├── bootstrap-utilities.min.css.map
│ ├── bootstrap-utilities.rtl.css
│ ├── bootstrap-utilities.rtl.css.map
│ ├── bootstrap-utilities.rtl.min.css
│ ├── bootstrap-utilities.rtl.min.css.map
│ ├── bootstrap.css
│ ├── bootstrap.css.map
│ ├── bootstrap.min.css
│ ├── bootstrap.min.css.map
│ ├── bootstrap.rtl.css
│ ├── bootstrap.rtl.css.map
│ ├── bootstrap.rtl.min.css
│ └── bootstrap.rtl.min.css.map
└── js/
├── bootstrap.bundle.js
├── bootstrap.bundle.js.map
├── bootstrap.bundle.min.js
├── bootstrap.bundle.min.js.map
├── bootstrap.esm.js
├── bootstrap.esm.js.map
├── bootstrap.esm.min.js
├── bootstrap.esm.min.js.map
├── bootstrap.js
├── bootstrap.js.map
├── bootstrap.min.js
└── bootstrap.min.js.map
```
We provide compiled CSS and JS (`bootstrap.*`), as well as compiled and minified CSS and JS (`bootstrap.min.*`). [source maps](https://developers.google.com/web/tools/chrome-devtools/javascript/source-maps) (`bootstrap.*.map`) are available for use with certain browsers' developer tools. Bundled JS files (`bootstrap.bundle.js` and minified `bootstrap.bundle.min.js`) include [Popper](https://popper.js.org/).
@ -128,7 +143,7 @@ Have a bug or a feature request? Please first read the [issue guidelines](https:
Bootstrap's documentation, included in this repo in the root directory, is built with [Hugo](https://gohugo.io/) and publicly hosted on GitHub Pages at <https://v5.getbootstrap.com/>. The docs may also be run locally.
Documentation search is powered by [Algolia's DocSearch](https://community.algolia.com/docsearch/). Working on our search? Be sure to set `debug: true` in `site/assets/js/src/search.js` file.
Documentation search is powered by [Algolia's DocSearch](https://community.algolia.com/docsearch/). Working on our search? Be sure to set `debug: true` in `site/assets/js/search.js`.
### Running documentation locally

View file

@ -59,7 +59,6 @@ const getConfigByPluginKey = pluginKey => {
pluginKey === 'Data' ||
pluginKey === 'Manipulator' ||
pluginKey === 'EventHandler' ||
pluginKey === 'Polyfill' ||
pluginKey === 'SelectorEngine' ||
pluginKey === 'Util' ||
pluginKey === 'Sanitizer'
@ -125,17 +124,17 @@ const getConfigByPluginKey = pluginKey => {
}
}
const utilObjects = [
const utilObjects = new Set([
'Util',
'Sanitizer'
]
])
const domObjects = [
const domObjects = new Set([
'Data',
'EventHandler',
'Manipulator',
'SelectorEngine'
]
])
const build = async plugin => {
console.log(`Building ${plugin} plugin...`)
@ -144,11 +143,11 @@ const build = async plugin => {
const pluginFilename = path.basename(bsPlugins[plugin])
let pluginPath = rootPath
if (utilObjects.includes(plugin)) {
if (utilObjects.has(plugin)) {
pluginPath = `${rootPath}/util/`
}
if (domObjects.includes(plugin)) {
if (domObjects.has(plugin)) {
pluginPath = `${rootPath}/dom/`
}

View file

@ -29,6 +29,10 @@ const files = [
file: 'dist/css/bootstrap.min.css',
configPropertyName: 'css_hash'
},
{
file: 'dist/css/bootstrap.rtl.min.css',
configPropertyName: 'css_rtl_hash'
},
{
file: 'dist/js/bootstrap.min.js',
configPropertyName: 'js_hash'
@ -55,6 +59,6 @@ files.forEach(file => {
console.log(`${file.configPropertyName}: ${integrity}`)
sh.sed('-i', new RegExp(`(\\s${file.configPropertyName}:\\s+"|')(\\S+)("|')`), `$1${integrity}$3`, configFile)
sh.sed('-i', new RegExp(`^(\\s+${file.configPropertyName}:\\s+["'])\\S*(["'])`), `$1${integrity}$2`, configFile)
})
})

View file

@ -1,16 +1,19 @@
'use strict'
module.exports = ctx => ({
map: ctx.file.dirname.includes('examples') ?
false :
{
inline: false,
annotation: true,
sourcesContent: true
},
plugins: {
autoprefixer: {
cascade: false
module.exports = ctx => {
return {
map: ctx.file.dirname.includes('examples') ?
false :
{
inline: false,
annotation: true,
sourcesContent: true
},
plugins: {
autoprefixer: {
cascade: false
},
rtlcss: ctx.env === 'RTL' ? {} : false
}
}
})
}

View file

@ -12,7 +12,7 @@ let fileDest = `bootstrap${ESM ? '.esm' : ''}`
const external = ['popper.js']
const plugins = [
babel({
// Only transpile our source code
// Only transpile our source code
exclude: 'node_modules/**',
// Include the helpers in the bundle, at most one copy of each
babelHelpers: 'bundled'

View file

@ -68,10 +68,12 @@ params:
cdn:
# See https://www.srihash.org for info on how to generate the hashes
css: "https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-alpha3/dist/css/bootstrap.min.css"
css_hash: "sha384-CuOF+2SnTUfTwSZjCXf01h7uYhfOBuxIhGKPbfEJ3+FqH/s6cIFN9bGr1HmAg4fQ"
css_hash: "sha384-xNSaKzL9Rjah2RV0MGhtlyVs2areDxovNJCBVnI5Jmo4fWjMx5mx1zyOiddHs4kQ"
css_rtl: "https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-alpha3/dist/css/bootstrap.rtl.min.css"
css_rtl_hash: "sha384-eWxmXwoY7jtZGBMpINmwuxW6Bfzjqsh1pjhGbl58bWpKmsbpGOFaMIthSFY2izhq"
js: "https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-alpha3/dist/js/bootstrap.min.js"
js_hash: "sha384-t6I8D5dJmMXjCsRLhSzCltuhNZg6P10kE0m0nAncLUjH6GeYLhRU1zfLoW3QNQDF"
js_hash: "sha384-supZtwqjyYg6XvvTCi4/w6J6Hm6IKqXaaeoyGhIhonCdkSvA70sSucW7OqXIo4lZ"
js_bundle: "https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-alpha3/dist/js/bootstrap.bundle.min.js"
js_bundle_hash: "sha384-popRpmFF9JQgExhfw5tZT4I9/CI5e2QcuUZPOVXb1m7qUmeR2b50u+YFEYe1wgzy"
js_bundle_hash: "sha384-G/J8d6sz9bTod37AsZzNtTwT77J24FKjJEO1YsU2vW7iPcmYP3/tznu+LcK824t9"
popper: "https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js"
popper_hash: "sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN"

View file

@ -11,10 +11,9 @@
.container-lg,
.container-md,
.container-sm {
--bs-gutter-x: 1.5rem;
width: 100%;
padding-right: calc(var(--bs-gutter-x) / 2);
padding-left: calc(var(--bs-gutter-x) / 2);
padding-right: var(--bs-gutter-x, 0.75rem);
padding-left: var(--bs-gutter-x, 0.75rem);
margin-right: auto;
margin-left: auto;
}
@ -1674,31 +1673,31 @@
margin-top: auto !important;
}
.mr-0 {
.me-0 {
margin-right: 0 !important;
}
.mr-1 {
.me-1 {
margin-right: 0.25rem !important;
}
.mr-2 {
.me-2 {
margin-right: 0.5rem !important;
}
.mr-3 {
.me-3 {
margin-right: 1rem !important;
}
.mr-4 {
.me-4 {
margin-right: 1.5rem !important;
}
.mr-5 {
.me-5 {
margin-right: 3rem !important;
}
.mr-auto {
.me-auto {
margin-right: auto !important;
}
@ -1730,31 +1729,31 @@
margin-bottom: auto !important;
}
.ml-0 {
.ms-0 {
margin-left: 0 !important;
}
.ml-1 {
.ms-1 {
margin-left: 0.25rem !important;
}
.ml-2 {
.ms-2 {
margin-left: 0.5rem !important;
}
.ml-3 {
.ms-3 {
margin-left: 1rem !important;
}
.ml-4 {
.ms-4 {
margin-left: 1.5rem !important;
}
.ml-5 {
.ms-5 {
margin-left: 3rem !important;
}
.ml-auto {
.ms-auto {
margin-left: auto !important;
}
@ -1866,27 +1865,27 @@
padding-top: 3rem !important;
}
.pr-0 {
.pe-0 {
padding-right: 0 !important;
}
.pr-1 {
.pe-1 {
padding-right: 0.25rem !important;
}
.pr-2 {
.pe-2 {
padding-right: 0.5rem !important;
}
.pr-3 {
.pe-3 {
padding-right: 1rem !important;
}
.pr-4 {
.pe-4 {
padding-right: 1.5rem !important;
}
.pr-5 {
.pe-5 {
padding-right: 3rem !important;
}
@ -1914,27 +1913,27 @@
padding-bottom: 3rem !important;
}
.pl-0 {
.ps-0 {
padding-left: 0 !important;
}
.pl-1 {
.ps-1 {
padding-left: 0.25rem !important;
}
.pl-2 {
.ps-2 {
padding-left: 0.5rem !important;
}
.pl-3 {
.ps-3 {
padding-left: 1rem !important;
}
.pl-4 {
.ps-4 {
padding-left: 1.5rem !important;
}
.pl-5 {
.ps-5 {
padding-left: 3rem !important;
}
@ -2277,31 +2276,31 @@
margin-top: auto !important;
}
.mr-sm-0 {
.me-sm-0 {
margin-right: 0 !important;
}
.mr-sm-1 {
.me-sm-1 {
margin-right: 0.25rem !important;
}
.mr-sm-2 {
.me-sm-2 {
margin-right: 0.5rem !important;
}
.mr-sm-3 {
.me-sm-3 {
margin-right: 1rem !important;
}
.mr-sm-4 {
.me-sm-4 {
margin-right: 1.5rem !important;
}
.mr-sm-5 {
.me-sm-5 {
margin-right: 3rem !important;
}
.mr-sm-auto {
.me-sm-auto {
margin-right: auto !important;
}
@ -2333,31 +2332,31 @@
margin-bottom: auto !important;
}
.ml-sm-0 {
.ms-sm-0 {
margin-left: 0 !important;
}
.ml-sm-1 {
.ms-sm-1 {
margin-left: 0.25rem !important;
}
.ml-sm-2 {
.ms-sm-2 {
margin-left: 0.5rem !important;
}
.ml-sm-3 {
.ms-sm-3 {
margin-left: 1rem !important;
}
.ml-sm-4 {
.ms-sm-4 {
margin-left: 1.5rem !important;
}
.ml-sm-5 {
.ms-sm-5 {
margin-left: 3rem !important;
}
.ml-sm-auto {
.ms-sm-auto {
margin-left: auto !important;
}
@ -2469,27 +2468,27 @@
padding-top: 3rem !important;
}
.pr-sm-0 {
.pe-sm-0 {
padding-right: 0 !important;
}
.pr-sm-1 {
.pe-sm-1 {
padding-right: 0.25rem !important;
}
.pr-sm-2 {
.pe-sm-2 {
padding-right: 0.5rem !important;
}
.pr-sm-3 {
.pe-sm-3 {
padding-right: 1rem !important;
}
.pr-sm-4 {
.pe-sm-4 {
padding-right: 1.5rem !important;
}
.pr-sm-5 {
.pe-sm-5 {
padding-right: 3rem !important;
}
@ -2517,27 +2516,27 @@
padding-bottom: 3rem !important;
}
.pl-sm-0 {
.ps-sm-0 {
padding-left: 0 !important;
}
.pl-sm-1 {
.ps-sm-1 {
padding-left: 0.25rem !important;
}
.pl-sm-2 {
.ps-sm-2 {
padding-left: 0.5rem !important;
}
.pl-sm-3 {
.ps-sm-3 {
padding-left: 1rem !important;
}
.pl-sm-4 {
.ps-sm-4 {
padding-left: 1.5rem !important;
}
.pl-sm-5 {
.ps-sm-5 {
padding-left: 3rem !important;
}
}
@ -2880,31 +2879,31 @@
margin-top: auto !important;
}
.mr-md-0 {
.me-md-0 {
margin-right: 0 !important;
}
.mr-md-1 {
.me-md-1 {
margin-right: 0.25rem !important;
}
.mr-md-2 {
.me-md-2 {
margin-right: 0.5rem !important;
}
.mr-md-3 {
.me-md-3 {
margin-right: 1rem !important;
}
.mr-md-4 {
.me-md-4 {
margin-right: 1.5rem !important;
}
.mr-md-5 {
.me-md-5 {
margin-right: 3rem !important;
}
.mr-md-auto {
.me-md-auto {
margin-right: auto !important;
}
@ -2936,31 +2935,31 @@
margin-bottom: auto !important;
}
.ml-md-0 {
.ms-md-0 {
margin-left: 0 !important;
}
.ml-md-1 {
.ms-md-1 {
margin-left: 0.25rem !important;
}
.ml-md-2 {
.ms-md-2 {
margin-left: 0.5rem !important;
}
.ml-md-3 {
.ms-md-3 {
margin-left: 1rem !important;
}
.ml-md-4 {
.ms-md-4 {
margin-left: 1.5rem !important;
}
.ml-md-5 {
.ms-md-5 {
margin-left: 3rem !important;
}
.ml-md-auto {
.ms-md-auto {
margin-left: auto !important;
}
@ -3072,27 +3071,27 @@
padding-top: 3rem !important;
}
.pr-md-0 {
.pe-md-0 {
padding-right: 0 !important;
}
.pr-md-1 {
.pe-md-1 {
padding-right: 0.25rem !important;
}
.pr-md-2 {
.pe-md-2 {
padding-right: 0.5rem !important;
}
.pr-md-3 {
.pe-md-3 {
padding-right: 1rem !important;
}
.pr-md-4 {
.pe-md-4 {
padding-right: 1.5rem !important;
}
.pr-md-5 {
.pe-md-5 {
padding-right: 3rem !important;
}
@ -3120,27 +3119,27 @@
padding-bottom: 3rem !important;
}
.pl-md-0 {
.ps-md-0 {
padding-left: 0 !important;
}
.pl-md-1 {
.ps-md-1 {
padding-left: 0.25rem !important;
}
.pl-md-2 {
.ps-md-2 {
padding-left: 0.5rem !important;
}
.pl-md-3 {
.ps-md-3 {
padding-left: 1rem !important;
}
.pl-md-4 {
.ps-md-4 {
padding-left: 1.5rem !important;
}
.pl-md-5 {
.ps-md-5 {
padding-left: 3rem !important;
}
}
@ -3483,31 +3482,31 @@
margin-top: auto !important;
}
.mr-lg-0 {
.me-lg-0 {
margin-right: 0 !important;
}
.mr-lg-1 {
.me-lg-1 {
margin-right: 0.25rem !important;
}
.mr-lg-2 {
.me-lg-2 {
margin-right: 0.5rem !important;
}
.mr-lg-3 {
.me-lg-3 {
margin-right: 1rem !important;
}
.mr-lg-4 {
.me-lg-4 {
margin-right: 1.5rem !important;
}
.mr-lg-5 {
.me-lg-5 {
margin-right: 3rem !important;
}
.mr-lg-auto {
.me-lg-auto {
margin-right: auto !important;
}
@ -3539,31 +3538,31 @@
margin-bottom: auto !important;
}
.ml-lg-0 {
.ms-lg-0 {
margin-left: 0 !important;
}
.ml-lg-1 {
.ms-lg-1 {
margin-left: 0.25rem !important;
}
.ml-lg-2 {
.ms-lg-2 {
margin-left: 0.5rem !important;
}
.ml-lg-3 {
.ms-lg-3 {
margin-left: 1rem !important;
}
.ml-lg-4 {
.ms-lg-4 {
margin-left: 1.5rem !important;
}
.ml-lg-5 {
.ms-lg-5 {
margin-left: 3rem !important;
}
.ml-lg-auto {
.ms-lg-auto {
margin-left: auto !important;
}
@ -3675,27 +3674,27 @@
padding-top: 3rem !important;
}
.pr-lg-0 {
.pe-lg-0 {
padding-right: 0 !important;
}
.pr-lg-1 {
.pe-lg-1 {
padding-right: 0.25rem !important;
}
.pr-lg-2 {
.pe-lg-2 {
padding-right: 0.5rem !important;
}
.pr-lg-3 {
.pe-lg-3 {
padding-right: 1rem !important;
}
.pr-lg-4 {
.pe-lg-4 {
padding-right: 1.5rem !important;
}
.pr-lg-5 {
.pe-lg-5 {
padding-right: 3rem !important;
}
@ -3723,27 +3722,27 @@
padding-bottom: 3rem !important;
}
.pl-lg-0 {
.ps-lg-0 {
padding-left: 0 !important;
}
.pl-lg-1 {
.ps-lg-1 {
padding-left: 0.25rem !important;
}
.pl-lg-2 {
.ps-lg-2 {
padding-left: 0.5rem !important;
}
.pl-lg-3 {
.ps-lg-3 {
padding-left: 1rem !important;
}
.pl-lg-4 {
.ps-lg-4 {
padding-left: 1.5rem !important;
}
.pl-lg-5 {
.ps-lg-5 {
padding-left: 3rem !important;
}
}
@ -4086,31 +4085,31 @@
margin-top: auto !important;
}
.mr-xl-0 {
.me-xl-0 {
margin-right: 0 !important;
}
.mr-xl-1 {
.me-xl-1 {
margin-right: 0.25rem !important;
}
.mr-xl-2 {
.me-xl-2 {
margin-right: 0.5rem !important;
}
.mr-xl-3 {
.me-xl-3 {
margin-right: 1rem !important;
}
.mr-xl-4 {
.me-xl-4 {
margin-right: 1.5rem !important;
}
.mr-xl-5 {
.me-xl-5 {
margin-right: 3rem !important;
}
.mr-xl-auto {
.me-xl-auto {
margin-right: auto !important;
}
@ -4142,31 +4141,31 @@
margin-bottom: auto !important;
}
.ml-xl-0 {
.ms-xl-0 {
margin-left: 0 !important;
}
.ml-xl-1 {
.ms-xl-1 {
margin-left: 0.25rem !important;
}
.ml-xl-2 {
.ms-xl-2 {
margin-left: 0.5rem !important;
}
.ml-xl-3 {
.ms-xl-3 {
margin-left: 1rem !important;
}
.ml-xl-4 {
.ms-xl-4 {
margin-left: 1.5rem !important;
}
.ml-xl-5 {
.ms-xl-5 {
margin-left: 3rem !important;
}
.ml-xl-auto {
.ms-xl-auto {
margin-left: auto !important;
}
@ -4278,27 +4277,27 @@
padding-top: 3rem !important;
}
.pr-xl-0 {
.pe-xl-0 {
padding-right: 0 !important;
}
.pr-xl-1 {
.pe-xl-1 {
padding-right: 0.25rem !important;
}
.pr-xl-2 {
.pe-xl-2 {
padding-right: 0.5rem !important;
}
.pr-xl-3 {
.pe-xl-3 {
padding-right: 1rem !important;
}
.pr-xl-4 {
.pe-xl-4 {
padding-right: 1.5rem !important;
}
.pr-xl-5 {
.pe-xl-5 {
padding-right: 3rem !important;
}
@ -4326,27 +4325,27 @@
padding-bottom: 3rem !important;
}
.pl-xl-0 {
.ps-xl-0 {
padding-left: 0 !important;
}
.pl-xl-1 {
.ps-xl-1 {
padding-left: 0.25rem !important;
}
.pl-xl-2 {
.ps-xl-2 {
padding-left: 0.5rem !important;
}
.pl-xl-3 {
.ps-xl-3 {
padding-left: 1rem !important;
}
.pl-xl-4 {
.ps-xl-4 {
padding-left: 1.5rem !important;
}
.pl-xl-5 {
.ps-xl-5 {
padding-left: 3rem !important;
}
}
@ -4689,31 +4688,31 @@
margin-top: auto !important;
}
.mr-xxl-0 {
.me-xxl-0 {
margin-right: 0 !important;
}
.mr-xxl-1 {
.me-xxl-1 {
margin-right: 0.25rem !important;
}
.mr-xxl-2 {
.me-xxl-2 {
margin-right: 0.5rem !important;
}
.mr-xxl-3 {
.me-xxl-3 {
margin-right: 1rem !important;
}
.mr-xxl-4 {
.me-xxl-4 {
margin-right: 1.5rem !important;
}
.mr-xxl-5 {
.me-xxl-5 {
margin-right: 3rem !important;
}
.mr-xxl-auto {
.me-xxl-auto {
margin-right: auto !important;
}
@ -4745,31 +4744,31 @@
margin-bottom: auto !important;
}
.ml-xxl-0 {
.ms-xxl-0 {
margin-left: 0 !important;
}
.ml-xxl-1 {
.ms-xxl-1 {
margin-left: 0.25rem !important;
}
.ml-xxl-2 {
.ms-xxl-2 {
margin-left: 0.5rem !important;
}
.ml-xxl-3 {
.ms-xxl-3 {
margin-left: 1rem !important;
}
.ml-xxl-4 {
.ms-xxl-4 {
margin-left: 1.5rem !important;
}
.ml-xxl-5 {
.ms-xxl-5 {
margin-left: 3rem !important;
}
.ml-xxl-auto {
.ms-xxl-auto {
margin-left: auto !important;
}
@ -4881,27 +4880,27 @@
padding-top: 3rem !important;
}
.pr-xxl-0 {
.pe-xxl-0 {
padding-right: 0 !important;
}
.pr-xxl-1 {
.pe-xxl-1 {
padding-right: 0.25rem !important;
}
.pr-xxl-2 {
.pe-xxl-2 {
padding-right: 0.5rem !important;
}
.pr-xxl-3 {
.pe-xxl-3 {
padding-right: 1rem !important;
}
.pr-xxl-4 {
.pe-xxl-4 {
padding-right: 1.5rem !important;
}
.pr-xxl-5 {
.pe-xxl-5 {
padding-right: 3rem !important;
}
@ -4929,27 +4928,27 @@
padding-bottom: 3rem !important;
}
.pl-xxl-0 {
.ps-xxl-0 {
padding-left: 0 !important;
}
.pl-xxl-1 {
.ps-xxl-1 {
padding-left: 0.25rem !important;
}
.pl-xxl-2 {
.ps-xxl-2 {
padding-left: 0.5rem !important;
}
.pl-xxl-3 {
.ps-xxl-3 {
padding-left: 1rem !important;
}
.pl-xxl-4 {
.ps-xxl-4 {
padding-left: 1.5rem !important;
}
.pl-xxl-5 {
.ps-xxl-5 {
padding-left: 3rem !important;
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

4996
dist/css/bootstrap-grid.rtl.css vendored Normal file

File diff suppressed because it is too large Load diff

1
dist/css/bootstrap-grid.rtl.css.map vendored Normal file

File diff suppressed because one or more lines are too long

7
dist/css/bootstrap-grid.rtl.min.css vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -102,7 +102,7 @@ p {
}
abbr[title],
abbr[data-original-title] {
abbr[data-bs-original-title] {
text-decoration: underline;
-webkit-text-decoration: underline dotted;
text-decoration: underline dotted;
@ -198,6 +198,8 @@ kbd,
samp {
font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
font-size: 1em;
direction: ltr /* rtl:ignore */;
unicode-bidi: bidi-override;
}
pre {
@ -378,6 +380,14 @@ legend + * {
-webkit-appearance: textfield;
}
/* rtl:raw:
[type="tel"],
[type="url"],
[type="email"],
[type="number"] {
direction: ltr;
}
*/
::-webkit-search-decoration {
-webkit-appearance: none;
}

File diff suppressed because one or more lines are too long

View file

@ -4,5 +4,5 @@
* Copyright 2011-2020 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
*/*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){h1{font-size:2.5rem}}h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){h2{font-size:2rem}}h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){h3{font-size:1.75rem}}h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){h4{font-size:1.5rem}}h5{font-size:1.25rem}h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:.875em}mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0d6efd;text-decoration:underline}a:hover{color:#0a58ca}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:#d63384;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus{outline:dotted 1px;outline:-webkit-focus-ring-color auto 5px}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}[list]::-webkit-calendar-picker-indicator{display:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}
*/*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){h1{font-size:2.5rem}}h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){h2{font-size:2rem}}h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){h3{font-size:1.75rem}}h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){h4{font-size:1.5rem}}h5{font-size:1.25rem}h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[data-bs-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:.875em}mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0d6efd;text-decoration:underline}a:hover{color:#0a58ca}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em;direction:ltr;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:#d63384;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus{outline:dotted 1px;outline:-webkit-focus-ring-color auto 5px}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}[list]::-webkit-calendar-picker-indicator{display:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}
/*# sourceMappingURL=bootstrap-reboot.min.css.map */

File diff suppressed because one or more lines are too long

426
dist/css/bootstrap-reboot.rtl.css vendored Normal file
View file

@ -0,0 +1,426 @@
/*!
* Bootstrap Reboot v5.0.0-alpha3 (https://getbootstrap.com/)
* Copyright 2011-2020 The Bootstrap Authors
* Copyright 2011-2020 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
*/
*,
*::before,
*::after {
box-sizing: border-box;
}
@media (prefers-reduced-motion: no-preference) {
:root {
scroll-behavior: smooth;
}
}
body {
margin: 0;
font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
font-size: 1rem;
font-weight: 400;
line-height: 1.5;
color: #212529;
background-color: #fff;
-webkit-text-size-adjust: 100%;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
[tabindex="-1"]:focus:not(:focus-visible) {
outline: 0 !important;
}
hr {
margin: 1rem 0;
color: inherit;
background-color: currentColor;
border: 0;
opacity: 0.25;
}
hr:not([size]) {
height: 1px;
}
h6, h5, h4, h3, h2, h1 {
margin-top: 0;
margin-bottom: 0.5rem;
font-weight: 500;
line-height: 1.2;
}
h1 {
font-size: calc(1.375rem + 1.5vw);
}
@media (min-width: 1200px) {
h1 {
font-size: 2.5rem;
}
}
h2 {
font-size: calc(1.325rem + 0.9vw);
}
@media (min-width: 1200px) {
h2 {
font-size: 2rem;
}
}
h3 {
font-size: calc(1.3rem + 0.6vw);
}
@media (min-width: 1200px) {
h3 {
font-size: 1.75rem;
}
}
h4 {
font-size: calc(1.275rem + 0.3vw);
}
@media (min-width: 1200px) {
h4 {
font-size: 1.5rem;
}
}
h5 {
font-size: 1.25rem;
}
h6 {
font-size: 1rem;
}
p {
margin-top: 0;
margin-bottom: 1rem;
}
abbr[title],
abbr[data-bs-original-title] {
text-decoration: underline;
-webkit-text-decoration: underline dotted;
text-decoration: underline dotted;
cursor: help;
-webkit-text-decoration-skip-ink: none;
text-decoration-skip-ink: none;
}
address {
margin-bottom: 1rem;
font-style: normal;
line-height: inherit;
}
ol,
ul {
padding-right: 2rem;
}
ol,
ul,
dl {
margin-top: 0;
margin-bottom: 1rem;
}
ol ol,
ul ul,
ol ul,
ul ol {
margin-bottom: 0;
}
dt {
font-weight: 700;
}
dd {
margin-bottom: 0.5rem;
margin-right: 0;
}
blockquote {
margin: 0 0 1rem;
}
b,
strong {
font-weight: bolder;
}
small {
font-size: 0.875em;
}
mark {
padding: 0.2em;
background-color: #fcf8e3;
}
sub,
sup {
position: relative;
font-size: 0.75em;
line-height: 0;
vertical-align: baseline;
}
sub {
bottom: -0.25em;
}
sup {
top: -0.5em;
}
a {
color: #0d6efd;
text-decoration: underline;
}
a:hover {
color: #0a58ca;
}
a:not([href]):not([class]), a:not([href]):not([class]):hover {
color: inherit;
text-decoration: none;
}
pre,
code,
kbd,
samp {
font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
font-size: 1em;
direction: ltr ;
unicode-bidi: bidi-override;
}
pre {
display: block;
margin-top: 0;
margin-bottom: 1rem;
overflow: auto;
font-size: 0.875em;
}
pre code {
font-size: inherit;
color: inherit;
word-break: normal;
}
code {
font-size: 0.875em;
color: #d63384;
word-wrap: break-word;
}
a > code {
color: inherit;
}
kbd {
padding: 0.2rem 0.4rem;
font-size: 0.875em;
color: #fff;
background-color: #212529;
border-radius: 0.2rem;
}
kbd kbd {
padding: 0;
font-size: 1em;
font-weight: 700;
}
figure {
margin: 0 0 1rem;
}
img,
svg {
vertical-align: middle;
}
table {
caption-side: bottom;
border-collapse: collapse;
}
caption {
padding-top: 0.5rem;
padding-bottom: 0.5rem;
color: #6c757d;
text-align: right;
}
th {
text-align: inherit;
text-align: -webkit-match-parent;
}
thead,
tbody,
tfoot,
tr,
td,
th {
border-color: inherit;
border-style: solid;
border-width: 0;
}
label {
display: inline-block;
}
button {
border-radius: 0;
}
button:focus {
outline: dotted 1px;
outline: -webkit-focus-ring-color auto 5px;
}
input,
button,
select,
optgroup,
textarea {
margin: 0;
font-family: inherit;
font-size: inherit;
line-height: inherit;
}
button,
select {
text-transform: none;
}
[role=button] {
cursor: pointer;
}
select {
word-wrap: normal;
}
[list]::-webkit-calendar-picker-indicator {
display: none;
}
button,
[type=button],
[type=reset],
[type=submit] {
-webkit-appearance: button;
}
button:not(:disabled),
[type=button]:not(:disabled),
[type=reset]:not(:disabled),
[type=submit]:not(:disabled) {
cursor: pointer;
}
::-moz-focus-inner {
padding: 0;
border-style: none;
}
textarea {
resize: vertical;
}
fieldset {
min-width: 0;
padding: 0;
margin: 0;
border: 0;
}
legend {
float: right;
width: 100%;
padding: 0;
margin-bottom: 0.5rem;
font-size: calc(1.275rem + 0.3vw);
line-height: inherit;
}
@media (min-width: 1200px) {
legend {
font-size: 1.5rem;
}
}
legend + * {
clear: right;
}
::-webkit-datetime-edit-fields-wrapper,
::-webkit-datetime-edit-text,
::-webkit-datetime-edit-minute,
::-webkit-datetime-edit-hour-field,
::-webkit-datetime-edit-day-field,
::-webkit-datetime-edit-month-field,
::-webkit-datetime-edit-year-field {
padding: 0;
}
::-webkit-inner-spin-button {
height: auto;
}
[type=search] {
outline-offset: -2px;
-webkit-appearance: textfield;
}
[type="tel"],
[type="url"],
[type="email"],
[type="number"] {
direction: ltr;
}
::-webkit-search-decoration {
-webkit-appearance: none;
}
::-webkit-color-swatch-wrapper {
padding: 0;
}
::file-selector-button {
font: inherit;
}
::-webkit-file-upload-button {
font: inherit;
-webkit-appearance: button;
}
output {
display: inline-block;
}
iframe {
border: 0;
}
summary {
display: list-item;
cursor: pointer;
}
progress {
vertical-align: baseline;
}
[hidden] {
display: none !important;
}
/*# sourceMappingURL=bootstrap-reboot.rtl.css.map */

1
dist/css/bootstrap-reboot.rtl.css.map vendored Normal file

File diff suppressed because one or more lines are too long

8
dist/css/bootstrap-reboot.rtl.min.css vendored Normal file
View file

@ -0,0 +1,8 @@
/*!
* Bootstrap Reboot v5.0.0-alpha3 (https://getbootstrap.com/)
* Copyright 2011-2020 The Bootstrap Authors
* Copyright 2011-2020 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
*/*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){h1{font-size:2.5rem}}h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){h2{font-size:2rem}}h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){h3{font-size:1.75rem}}h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){h4{font-size:1.5rem}}h5{font-size:1.25rem}h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[data-bs-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-right:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-right:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:.875em}mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0d6efd;text-decoration:underline}a:hover{color:#0a58ca}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em;direction:ltr;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:#d63384;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:right}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus{outline:dotted 1px;outline:-webkit-focus-ring-color auto 5px}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}[list]::-webkit-calendar-picker-indicator{display:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:right;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:right}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}[type=email],[type=number],[type=tel],[type=url]{direction:ltr}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}
/*# sourceMappingURL=bootstrap-reboot.rtl.min.css.map */

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

4600
dist/css/bootstrap-utilities.rtl.css vendored Normal file

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

10671
dist/css/bootstrap.rtl.css vendored Normal file

File diff suppressed because it is too large Load diff

1
dist/css/bootstrap.rtl.css.map vendored Normal file

File diff suppressed because one or more lines are too long

7
dist/css/bootstrap.rtl.min.css vendored Normal file

File diff suppressed because one or more lines are too long

1
dist/css/bootstrap.rtl.min.css.map vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1015
dist/js/bootstrap.esm.js vendored

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

94
js/dist/alert.js vendored
View file

@ -5,7 +5,7 @@
*/
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js')) :
typeof define === 'function' && define.amd ? define(['./dom/data.js', './dom/event-handler.js'], factory) :
typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Alert = factory(global.Data, global.EventHandler));
}(this, (function (Data, EventHandler) { 'use strict';
@ -24,7 +24,7 @@
var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
var getSelector = function getSelector(element) {
var selector = element.getAttribute('data-target');
var selector = element.getAttribute('data-bs-target');
if (!selector || selector === '#') {
var hrefAttr = element.getAttribute('href');
@ -49,8 +49,8 @@
transitionDuration = _window$getComputedSt.transitionDuration,
transitionDelay = _window$getComputedSt.transitionDelay;
var floatTransitionDuration = parseFloat(transitionDuration);
var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
var floatTransitionDuration = Number.parseFloat(transitionDuration);
var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
if (!floatTransitionDuration && !floatTransitionDelay) {
return 0;
@ -59,7 +59,7 @@
transitionDuration = transitionDuration.split(',')[0];
transitionDelay = transitionDelay.split(',')[0];
return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
};
var triggerTransitionEnd = function triggerTransitionEnd(element) {
@ -88,7 +88,7 @@
var _window = window,
jQuery = _window.jQuery;
if (jQuery && !document.body.hasAttribute('data-no-jquery')) {
if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
return jQuery;
}
@ -103,6 +103,8 @@
}
};
var isRTL = document.documentElement.dir === 'rtl';
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
@ -112,12 +114,57 @@
* ------------------------------------------------------------------------
*/
var NAME = 'alert';
var VERSION = '5.0.0-alpha3';
var BaseComponent = /*#__PURE__*/function () {
function BaseComponent(element) {
if (!element) {
return;
}
this._element = element;
Data__default['default'].setData(element, this.constructor.DATA_KEY, this);
}
var _proto = BaseComponent.prototype;
_proto.dispose = function dispose() {
Data__default['default'].removeData(this._element, this.constructor.DATA_KEY);
this._element = null;
}
/** Static */
;
BaseComponent.getInstance = function getInstance(element) {
return Data__default['default'].getData(element, this.DATA_KEY);
};
_createClass(BaseComponent, null, [{
key: "VERSION",
get: function get() {
return VERSION;
}
}]);
return BaseComponent;
}();
function _defineProperties$1(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
function _createClass$1(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$1(Constructor.prototype, protoProps); if (staticProps) _defineProperties$1(Constructor, staticProps); return Constructor; }
function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
/**
* ------------------------------------------------------------------------
* Constants
* ------------------------------------------------------------------------
*/
var NAME = 'alert';
var DATA_KEY = 'bs.alert';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
var SELECTOR_DISMISS = '[data-dismiss="alert"]';
var SELECTOR_DISMISS = '[data-bs-dismiss="alert"]';
var EVENT_CLOSE = "close" + EVENT_KEY;
var EVENT_CLOSED = "closed" + EVENT_KEY;
var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
@ -130,15 +177,12 @@
* ------------------------------------------------------------------------
*/
var Alert = /*#__PURE__*/function () {
function Alert(element) {
this._element = element;
if (this._element) {
Data__default['default'].setData(element, DATA_KEY, this);
}
} // Getters
var Alert = /*#__PURE__*/function (_BaseComponent) {
_inheritsLoose(Alert, _BaseComponent);
function Alert() {
return _BaseComponent.apply(this, arguments) || this;
}
var _proto = Alert.prototype;
@ -153,11 +197,6 @@
}
this._removeElement(rootElement);
};
_proto.dispose = function dispose() {
Data__default['default'].removeData(this._element, DATA_KEY);
this._element = null;
} // Private
;
@ -220,19 +259,16 @@
};
};
Alert.getInstance = function getInstance(element) {
return Data__default['default'].getData(element, DATA_KEY);
};
_createClass(Alert, null, [{
key: "VERSION",
_createClass$1(Alert, null, [{
key: "DATA_KEY",
// Getters
get: function get() {
return VERSION;
return DATA_KEY;
}
}]);
return Alert;
}();
}(BaseComponent);
/**
* ------------------------------------------------------------------------
* Data Api implementation

File diff suppressed because one or more lines are too long

83
js/dist/button.js vendored
View file

@ -5,7 +5,7 @@
*/
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js')) :
typeof define === 'function' && define.amd ? define(['./dom/data.js', './dom/event-handler.js'], factory) :
typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Button = factory(global.Data, global.EventHandler));
}(this, (function (Data, EventHandler) { 'use strict';
@ -25,7 +25,7 @@
var _window = window,
jQuery = _window.jQuery;
if (jQuery && !document.body.hasAttribute('data-no-jquery')) {
if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
return jQuery;
}
@ -40,6 +40,8 @@
}
};
var isRTL = document.documentElement.dir === 'rtl';
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
@ -49,13 +51,58 @@
* ------------------------------------------------------------------------
*/
var NAME = 'button';
var VERSION = '5.0.0-alpha3';
var BaseComponent = /*#__PURE__*/function () {
function BaseComponent(element) {
if (!element) {
return;
}
this._element = element;
Data__default['default'].setData(element, this.constructor.DATA_KEY, this);
}
var _proto = BaseComponent.prototype;
_proto.dispose = function dispose() {
Data__default['default'].removeData(this._element, this.constructor.DATA_KEY);
this._element = null;
}
/** Static */
;
BaseComponent.getInstance = function getInstance(element) {
return Data__default['default'].getData(element, this.DATA_KEY);
};
_createClass(BaseComponent, null, [{
key: "VERSION",
get: function get() {
return VERSION;
}
}]);
return BaseComponent;
}();
function _defineProperties$1(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
function _createClass$1(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$1(Constructor.prototype, protoProps); if (staticProps) _defineProperties$1(Constructor, staticProps); return Constructor; }
function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
/**
* ------------------------------------------------------------------------
* Constants
* ------------------------------------------------------------------------
*/
var NAME = 'button';
var DATA_KEY = 'bs.button';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
var CLASS_NAME_ACTIVE = 'active';
var SELECTOR_DATA_TOGGLE = '[data-toggle="button"]';
var SELECTOR_DATA_TOGGLE = '[data-bs-toggle="button"]';
var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
/**
* ------------------------------------------------------------------------
@ -63,12 +110,12 @@
* ------------------------------------------------------------------------
*/
var Button = /*#__PURE__*/function () {
function Button(element) {
this._element = element;
Data__default['default'].setData(element, DATA_KEY, this);
} // Getters
var Button = /*#__PURE__*/function (_BaseComponent) {
_inheritsLoose(Button, _BaseComponent);
function Button() {
return _BaseComponent.apply(this, arguments) || this;
}
var _proto = Button.prototype;
@ -76,11 +123,6 @@
_proto.toggle = function toggle() {
// Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method
this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE));
};
_proto.dispose = function dispose() {
Data__default['default'].removeData(this._element, DATA_KEY);
this._element = null;
} // Static
;
@ -98,19 +140,16 @@
});
};
Button.getInstance = function getInstance(element) {
return Data__default['default'].getData(element, DATA_KEY);
};
_createClass(Button, null, [{
key: "VERSION",
_createClass$1(Button, null, [{
key: "DATA_KEY",
// Getters
get: function get() {
return VERSION;
return DATA_KEY;
}
}]);
return Button;
}();
}(BaseComponent);
/**
* ------------------------------------------------------------------------
* Data Api implementation

File diff suppressed because one or more lines are too long

189
js/dist/carousel.js vendored
View file

@ -5,7 +5,7 @@
*/
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js')) :
typeof define === 'function' && define.amd ? define(['./dom/data.js', './dom/event-handler.js', './dom/manipulator.js', './dom/selector-engine.js'], factory) :
typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Carousel = factory(global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine));
}(this, (function (Data, EventHandler, Manipulator, SelectorEngine) { 'use strict';
@ -34,7 +34,7 @@
};
var getSelector = function getSelector(element) {
var selector = element.getAttribute('data-target');
var selector = element.getAttribute('data-bs-target');
if (!selector || selector === '#') {
var hrefAttr = element.getAttribute('href');
@ -59,8 +59,8 @@
transitionDuration = _window$getComputedSt.transitionDuration,
transitionDelay = _window$getComputedSt.transitionDelay;
var floatTransitionDuration = parseFloat(transitionDuration);
var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
var floatTransitionDuration = Number.parseFloat(transitionDuration);
var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
if (!floatTransitionDuration && !floatTransitionDelay) {
return 0;
@ -69,7 +69,7 @@
transitionDuration = transitionDuration.split(',')[0];
transitionDelay = transitionDelay.split(',')[0];
return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
};
var triggerTransitionEnd = function triggerTransitionEnd(element) {
@ -132,7 +132,7 @@
var _window = window,
jQuery = _window.jQuery;
if (jQuery && !document.body.hasAttribute('data-no-jquery')) {
if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
return jQuery;
}
@ -147,7 +147,7 @@
}
};
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
var isRTL = document.documentElement.dir === 'rtl';
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
@ -158,8 +158,55 @@
* ------------------------------------------------------------------------
*/
var NAME = 'carousel';
var VERSION = '5.0.0-alpha3';
var BaseComponent = /*#__PURE__*/function () {
function BaseComponent(element) {
if (!element) {
return;
}
this._element = element;
Data__default['default'].setData(element, this.constructor.DATA_KEY, this);
}
var _proto = BaseComponent.prototype;
_proto.dispose = function dispose() {
Data__default['default'].removeData(this._element, this.constructor.DATA_KEY);
this._element = null;
}
/** Static */
;
BaseComponent.getInstance = function getInstance(element) {
return Data__default['default'].getData(element, this.DATA_KEY);
};
_createClass(BaseComponent, null, [{
key: "VERSION",
get: function get() {
return VERSION;
}
}]);
return BaseComponent;
}();
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
function _defineProperties$1(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
function _createClass$1(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$1(Constructor.prototype, protoProps); if (staticProps) _defineProperties$1(Constructor, staticProps); return Constructor; }
function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
/**
* ------------------------------------------------------------------------
* Constants
* ------------------------------------------------------------------------
*/
var NAME = 'carousel';
var DATA_KEY = 'bs.carousel';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
@ -204,8 +251,8 @@
var CLASS_NAME_CAROUSEL = 'carousel';
var CLASS_NAME_ACTIVE = 'active';
var CLASS_NAME_SLIDE = 'slide';
var CLASS_NAME_RIGHT = 'carousel-item-right';
var CLASS_NAME_LEFT = 'carousel-item-left';
var CLASS_NAME_END = 'carousel-item-end';
var CLASS_NAME_START = 'carousel-item-start';
var CLASS_NAME_NEXT = 'carousel-item-next';
var CLASS_NAME_PREV = 'carousel-item-prev';
var CLASS_NAME_POINTER_EVENT = 'pointer-event';
@ -215,8 +262,8 @@
var SELECTOR_ITEM_IMG = '.carousel-item img';
var SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev';
var SELECTOR_INDICATORS = '.carousel-indicators';
var SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]';
var SELECTOR_DATA_RIDE = '[data-ride="carousel"]';
var SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]';
var SELECTOR_DATA_RIDE = '[data-bs-ride="carousel"]';
var PointerType = {
TOUCH: 'touch',
PEN: 'pen'
@ -227,25 +274,29 @@
* ------------------------------------------------------------------------
*/
var Carousel = /*#__PURE__*/function () {
var Carousel = /*#__PURE__*/function (_BaseComponent) {
_inheritsLoose(Carousel, _BaseComponent);
function Carousel(element, config) {
this._items = null;
this._interval = null;
this._activeElement = null;
this._isPaused = false;
this._isSliding = false;
this.touchTimeout = null;
this.touchStartX = 0;
this.touchDeltaX = 0;
this._config = this._getConfig(config);
this._element = element;
this._indicatorsElement = SelectorEngine__default['default'].findOne(SELECTOR_INDICATORS, this._element);
this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;
this._pointerEvent = Boolean(window.PointerEvent);
var _this;
this._addEventListeners();
_this = _BaseComponent.call(this, element) || this;
_this._items = null;
_this._interval = null;
_this._activeElement = null;
_this._isPaused = false;
_this._isSliding = false;
_this.touchTimeout = null;
_this.touchStartX = 0;
_this.touchDeltaX = 0;
_this._config = _this._getConfig(config);
_this._indicatorsElement = SelectorEngine__default['default'].findOne(SELECTOR_INDICATORS, _this._element);
_this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;
_this._pointerEvent = Boolean(window.PointerEvent);
Data__default['default'].setData(element, DATA_KEY, this);
_this._addEventListeners();
return _this;
} // Getters
@ -304,7 +355,7 @@
};
_proto.to = function to(index) {
var _this = this;
var _this2 = this;
this._activeElement = SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element);
@ -316,7 +367,7 @@
if (this._isSliding) {
EventHandler__default['default'].one(this._element, EVENT_SLID, function () {
return _this.to(index);
return _this2.to(index);
});
return;
}
@ -333,11 +384,11 @@
};
_proto.dispose = function dispose() {
_BaseComponent.prototype.dispose.call(this);
EventHandler__default['default'].off(this._element, EVENT_KEY);
Data__default['default'].removeData(this._element, DATA_KEY);
this._items = null;
this._config = null;
this._element = null;
this._interval = null;
this._isPaused = null;
this._isSliding = null;
@ -373,20 +424,20 @@
};
_proto._addEventListeners = function _addEventListeners() {
var _this2 = this;
var _this3 = this;
if (this._config.keyboard) {
EventHandler__default['default'].on(this._element, EVENT_KEYDOWN, function (event) {
return _this2._keydown(event);
return _this3._keydown(event);
});
}
if (this._config.pause === 'hover') {
EventHandler__default['default'].on(this._element, EVENT_MOUSEENTER, function (event) {
return _this2.pause(event);
return _this3.pause(event);
});
EventHandler__default['default'].on(this._element, EVENT_MOUSELEAVE, function (event) {
return _this2.cycle(event);
return _this3.cycle(event);
});
}
@ -396,33 +447,33 @@
};
_proto._addTouchEventListeners = function _addTouchEventListeners() {
var _this3 = this;
var _this4 = this;
var start = function start(event) {
if (_this3._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {
_this3.touchStartX = event.clientX;
} else if (!_this3._pointerEvent) {
_this3.touchStartX = event.touches[0].clientX;
if (_this4._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {
_this4.touchStartX = event.clientX;
} else if (!_this4._pointerEvent) {
_this4.touchStartX = event.touches[0].clientX;
}
};
var move = function move(event) {
// ensure swiping with one touch and not pinching
if (event.touches && event.touches.length > 1) {
_this3.touchDeltaX = 0;
_this4.touchDeltaX = 0;
} else {
_this3.touchDeltaX = event.touches[0].clientX - _this3.touchStartX;
_this4.touchDeltaX = event.touches[0].clientX - _this4.touchStartX;
}
};
var end = function end(event) {
if (_this3._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {
_this3.touchDeltaX = event.clientX - _this3.touchStartX;
if (_this4._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {
_this4.touchDeltaX = event.clientX - _this4.touchStartX;
}
_this3._handleSwipe();
_this4._handleSwipe();
if (_this3._config.pause === 'hover') {
if (_this4._config.pause === 'hover') {
// If it's a touch-enabled device, mouseenter/leave are fired as
// part of the mouse compatibility events on first tap - the carousel
// would stop cycling until user tapped out of it;
@ -430,15 +481,15 @@
// (as if it's the second time we tap on it, mouseenter compat event
// is NOT fired) and after a timeout (to allow for mouse compatibility
// events to fire) we explicitly restart cycling
_this3.pause();
_this4.pause();
if (_this3.touchTimeout) {
clearTimeout(_this3.touchTimeout);
if (_this4.touchTimeout) {
clearTimeout(_this4.touchTimeout);
}
_this3.touchTimeout = setTimeout(function (event) {
return _this3.cycle(event);
}, TOUCHEVENT_COMPAT_WAIT + _this3._config.interval);
_this4.touchTimeout = setTimeout(function (event) {
return _this4.cycle(event);
}, TOUCHEVENT_COMPAT_WAIT + _this4._config.interval);
}
};
@ -547,7 +598,7 @@
return;
}
var elementInterval = parseInt(element.getAttribute('data-interval'), 10);
var elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10);
if (elementInterval) {
this._config.defaultInterval = this._config.defaultInterval || this._config.interval;
@ -558,7 +609,7 @@
};
_proto._slide = function _slide(direction, element) {
var _this4 = this;
var _this5 = this;
var activeElement = SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element);
@ -574,11 +625,11 @@
var eventDirectionName;
if (direction === DIRECTION_NEXT) {
directionalClassName = CLASS_NAME_LEFT;
directionalClassName = CLASS_NAME_START;
orderClassName = CLASS_NAME_NEXT;
eventDirectionName = DIRECTION_LEFT;
} else {
directionalClassName = CLASS_NAME_RIGHT;
directionalClassName = CLASS_NAME_END;
orderClassName = CLASS_NAME_PREV;
eventDirectionName = DIRECTION_RIGHT;
}
@ -619,9 +670,9 @@
nextElement.classList.remove(directionalClassName, orderClassName);
nextElement.classList.add(CLASS_NAME_ACTIVE);
activeElement.classList.remove(CLASS_NAME_ACTIVE, orderClassName, directionalClassName);
_this4._isSliding = false;
_this5._isSliding = false;
setTimeout(function () {
EventHandler__default['default'].trigger(_this4._element, EVENT_SLID, {
EventHandler__default['default'].trigger(_this5._element, EVENT_SLID, {
relatedTarget: nextElement,
direction: eventDirectionName,
from: activeElementIndex,
@ -692,7 +743,7 @@
var config = _extends({}, Manipulator__default['default'].getDataAttributes(target), Manipulator__default['default'].getDataAttributes(this));
var slideIndex = this.getAttribute('data-slide-to');
var slideIndex = this.getAttribute('data-bs-slide-to');
if (slideIndex) {
config.interval = false;
@ -707,24 +758,20 @@
event.preventDefault();
};
Carousel.getInstance = function getInstance(element) {
return Data__default['default'].getData(element, DATA_KEY);
};
_createClass(Carousel, null, [{
key: "VERSION",
get: function get() {
return VERSION;
}
}, {
_createClass$1(Carousel, null, [{
key: "Default",
get: function get() {
return Default;
}
}, {
key: "DATA_KEY",
get: function get() {
return DATA_KEY;
}
}]);
return Carousel;
}();
}(BaseComponent);
/**
* ------------------------------------------------------------------------
* Data Api implementation

File diff suppressed because one or more lines are too long

153
js/dist/collapse.js vendored
View file

@ -5,7 +5,7 @@
*/
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js')) :
typeof define === 'function' && define.amd ? define(['./dom/data.js', './dom/event-handler.js', './dom/manipulator.js', './dom/selector-engine.js'], factory) :
typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Collapse = factory(global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine));
}(this, (function (Data, EventHandler, Manipulator, SelectorEngine) { 'use strict';
@ -34,7 +34,7 @@
};
var getSelector = function getSelector(element) {
var selector = element.getAttribute('data-target');
var selector = element.getAttribute('data-bs-target');
if (!selector || selector === '#') {
var hrefAttr = element.getAttribute('href');
@ -69,8 +69,8 @@
transitionDuration = _window$getComputedSt.transitionDuration,
transitionDelay = _window$getComputedSt.transitionDelay;
var floatTransitionDuration = parseFloat(transitionDuration);
var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
var floatTransitionDuration = Number.parseFloat(transitionDuration);
var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
if (!floatTransitionDuration && !floatTransitionDelay) {
return 0;
@ -79,7 +79,7 @@
transitionDuration = transitionDuration.split(',')[0];
transitionDelay = transitionDelay.split(',')[0];
return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
};
var triggerTransitionEnd = function triggerTransitionEnd(element) {
@ -128,7 +128,7 @@
var _window = window,
jQuery = _window.jQuery;
if (jQuery && !document.body.hasAttribute('data-no-jquery')) {
if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
return jQuery;
}
@ -143,7 +143,7 @@
}
};
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
var isRTL = document.documentElement.dir === 'rtl';
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
@ -154,8 +154,55 @@
* ------------------------------------------------------------------------
*/
var NAME = 'collapse';
var VERSION = '5.0.0-alpha3';
var BaseComponent = /*#__PURE__*/function () {
function BaseComponent(element) {
if (!element) {
return;
}
this._element = element;
Data__default['default'].setData(element, this.constructor.DATA_KEY, this);
}
var _proto = BaseComponent.prototype;
_proto.dispose = function dispose() {
Data__default['default'].removeData(this._element, this.constructor.DATA_KEY);
this._element = null;
}
/** Static */
;
BaseComponent.getInstance = function getInstance(element) {
return Data__default['default'].getData(element, this.DATA_KEY);
};
_createClass(BaseComponent, null, [{
key: "VERSION",
get: function get() {
return VERSION;
}
}]);
return BaseComponent;
}();
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
function _defineProperties$1(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
function _createClass$1(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$1(Constructor.prototype, protoProps); if (staticProps) _defineProperties$1(Constructor, staticProps); return Constructor; }
function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
/**
* ------------------------------------------------------------------------
* Constants
* ------------------------------------------------------------------------
*/
var NAME = 'collapse';
var DATA_KEY = 'bs.collapse';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
@ -179,19 +226,23 @@
var WIDTH = 'width';
var HEIGHT = 'height';
var SELECTOR_ACTIVES = '.show, .collapsing';
var SELECTOR_DATA_TOGGLE = '[data-toggle="collapse"]';
var SELECTOR_DATA_TOGGLE = '[data-bs-toggle="collapse"]';
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
var Collapse = /*#__PURE__*/function () {
var Collapse = /*#__PURE__*/function (_BaseComponent) {
_inheritsLoose(Collapse, _BaseComponent);
function Collapse(element, config) {
this._isTransitioning = false;
this._element = element;
this._config = this._getConfig(config);
this._triggerArray = SelectorEngine__default['default'].find(SELECTOR_DATA_TOGGLE + "[href=\"#" + element.id + "\"]," + (SELECTOR_DATA_TOGGLE + "[data-target=\"#" + element.id + "\"]"));
var _this;
_this = _BaseComponent.call(this, element) || this;
_this._isTransitioning = false;
_this._config = _this._getConfig(config);
_this._triggerArray = SelectorEngine__default['default'].find(SELECTOR_DATA_TOGGLE + "[href=\"#" + element.id + "\"]," + (SELECTOR_DATA_TOGGLE + "[data-bs-target=\"#" + element.id + "\"]"));
var toggleList = SelectorEngine__default['default'].find(SELECTOR_DATA_TOGGLE);
for (var i = 0, len = toggleList.length; i < len; i++) {
@ -202,23 +253,23 @@
});
if (selector !== null && filterElement.length) {
this._selector = selector;
_this._selector = selector;
this._triggerArray.push(elem);
_this._triggerArray.push(elem);
}
}
this._parent = this._config.parent ? this._getParent() : null;
_this._parent = _this._config.parent ? _this._getParent() : null;
if (!this._config.parent) {
this._addAriaAndCollapsedClass(this._element, this._triggerArray);
if (!_this._config.parent) {
_this._addAriaAndCollapsedClass(_this._element, _this._triggerArray);
}
if (this._config.toggle) {
this.toggle();
if (_this._config.toggle) {
_this.toggle();
}
Data__default['default'].setData(element, DATA_KEY, this);
return _this;
} // Getters
@ -234,7 +285,7 @@
};
_proto.show = function show() {
var _this = this;
var _this2 = this;
if (this._isTransitioning || this._element.classList.contains(CLASS_NAME_SHOW)) {
return;
@ -245,8 +296,8 @@
if (this._parent) {
actives = SelectorEngine__default['default'].find(SELECTOR_ACTIVES, this._parent).filter(function (elem) {
if (typeof _this._config.parent === 'string') {
return elem.getAttribute('data-parent') === _this._config.parent;
if (typeof _this2._config.parent === 'string') {
return elem.getAttribute('data-bs-parent') === _this2._config.parent;
}
return elem.classList.contains(CLASS_NAME_COLLAPSE);
@ -260,10 +311,10 @@
var container = SelectorEngine__default['default'].findOne(this._selector);
if (actives) {
var tempActiveData = actives.filter(function (elem) {
var tempActiveData = actives.find(function (elem) {
return container !== elem;
});
activesData = tempActiveData[0] ? Data__default['default'].getData(tempActiveData[0], DATA_KEY) : null;
activesData = tempActiveData ? Data__default['default'].getData(tempActiveData, DATA_KEY) : null;
if (activesData && activesData._isTransitioning) {
return;
@ -306,15 +357,15 @@
this.setTransitioning(true);
var complete = function complete() {
_this._element.classList.remove(CLASS_NAME_COLLAPSING);
_this2._element.classList.remove(CLASS_NAME_COLLAPSING);
_this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);
_this2._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);
_this._element.style[dimension] = '';
_this2._element.style[dimension] = '';
_this.setTransitioning(false);
_this2.setTransitioning(false);
EventHandler__default['default'].trigger(_this._element, EVENT_SHOWN);
EventHandler__default['default'].trigger(_this2._element, EVENT_SHOWN);
};
var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
@ -326,7 +377,7 @@
};
_proto.hide = function hide() {
var _this2 = this;
var _this3 = this;
if (this._isTransitioning || !this._element.classList.contains(CLASS_NAME_SHOW)) {
return;
@ -364,13 +415,13 @@
this.setTransitioning(true);
var complete = function complete() {
_this2.setTransitioning(false);
_this3.setTransitioning(false);
_this2._element.classList.remove(CLASS_NAME_COLLAPSING);
_this3._element.classList.remove(CLASS_NAME_COLLAPSING);
_this2._element.classList.add(CLASS_NAME_COLLAPSE);
_this3._element.classList.add(CLASS_NAME_COLLAPSE);
EventHandler__default['default'].trigger(_this2._element, EVENT_HIDDEN);
EventHandler__default['default'].trigger(_this3._element, EVENT_HIDDEN);
};
this._element.style[dimension] = '';
@ -384,10 +435,10 @@
};
_proto.dispose = function dispose() {
Data__default['default'].removeData(this._element, DATA_KEY);
_BaseComponent.prototype.dispose.call(this);
this._config = null;
this._parent = null;
this._element = null;
this._triggerArray = null;
this._isTransitioning = null;
} // Private
@ -406,7 +457,7 @@
};
_proto._getParent = function _getParent() {
var _this3 = this;
var _this4 = this;
var parent = this._config.parent;
@ -419,11 +470,11 @@
parent = SelectorEngine__default['default'].findOne(parent);
}
var selector = SELECTOR_DATA_TOGGLE + "[data-parent=\"" + parent + "\"]";
var selector = SELECTOR_DATA_TOGGLE + "[data-bs-parent=\"" + parent + "\"]";
SelectorEngine__default['default'].find(selector, parent).forEach(function (element) {
var selected = getElementFromSelector(element);
_this3._addAriaAndCollapsedClass(selected, [element]);
_this4._addAriaAndCollapsedClass(selected, [element]);
});
return parent;
};
@ -474,24 +525,20 @@
});
};
Collapse.getInstance = function getInstance(element) {
return Data__default['default'].getData(element, DATA_KEY);
};
_createClass(Collapse, null, [{
key: "VERSION",
get: function get() {
return VERSION;
}
}, {
_createClass$1(Collapse, null, [{
key: "Default",
get: function get() {
return Default;
}
}, {
key: "DATA_KEY",
get: function get() {
return DATA_KEY;
}
}]);
return Collapse;
}();
}(BaseComponent);
/**
* ------------------------------------------------------------------------
* Data Api implementation

File diff suppressed because one or more lines are too long

View file

@ -20,13 +20,15 @@
var _window = window,
jQuery = _window.jQuery;
if (jQuery && !document.body.hasAttribute('data-no-jquery')) {
if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
return jQuery;
}
return null;
};
var isRTL = document.documentElement.dir === 'rtl';
/**
* --------------------------------------------------------------------------
* Bootstrap (v5.0.0-alpha3): dom/event-handler.js
@ -49,7 +51,7 @@
mouseenter: 'mouseover',
mouseleave: 'mouseout'
};
var nativeEvents = ['click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu', 'mousewheel', 'DOMMouseScroll', 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend', 'keydown', 'keypress', 'keyup', 'orientationchange', 'touchstart', 'touchmove', 'touchend', 'touchcancel', 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel', 'gesturestart', 'gesturechange', 'gestureend', 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout', 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange', 'error', 'abort', 'scroll'];
var nativeEvents = new Set(['click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu', 'mousewheel', 'DOMMouseScroll', 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend', 'keydown', 'keypress', 'keyup', 'orientationchange', 'touchstart', 'touchmove', 'touchend', 'touchcancel', 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel', 'gesturestart', 'gesturechange', 'gestureend', 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout', 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange', 'error', 'abort', 'scroll']);
/**
* ------------------------------------------------------------------------
* Private methods
@ -131,7 +133,7 @@
typeEvent = custom;
}
var isNative = nativeEvents.indexOf(typeEvent) > -1;
var isNative = nativeEvents.has(typeEvent);
if (!isNative) {
typeEvent = originalTypeEvent;
@ -188,7 +190,7 @@
function removeNamespacedHandlers(element, events, typeEvent, namespace) {
var storeElementEvent = events[typeEvent] || {};
Object.keys(storeElementEvent).forEach(function (handlerKey) {
if (handlerKey.indexOf(namespace) > -1) {
if (handlerKey.includes(namespace)) {
var event = storeElementEvent[handlerKey];
removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector);
}
@ -214,7 +216,7 @@
var inNamespace = typeEvent !== originalTypeEvent;
var events = getEvent(element);
var isNamespace = originalTypeEvent.charAt(0) === '.';
var isNamespace = originalTypeEvent.startsWith('.');
if (typeof originalHandler !== 'undefined') {
// Simplest case: handler is passed, remove that listener ONLY.
@ -236,7 +238,7 @@
Object.keys(storeElementEvent).forEach(function (keyHandlers) {
var handlerKey = keyHandlers.replace(stripUidRegex, '');
if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {
if (!inNamespace || originalTypeEvent.includes(handlerKey)) {
var event = storeElementEvent[keyHandlers];
removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector);
}
@ -250,7 +252,7 @@
var $ = getjQuery();
var typeEvent = event.replace(stripNameRegex, '');
var inNamespace = event !== typeEvent;
var isNative = nativeEvents.indexOf(typeEvent) > -1;
var isNative = nativeEvents.has(typeEvent);
var jQueryEvent;
var bubbles = true;
var nativeDispatch = true;

File diff suppressed because one or more lines are too long

View file

@ -9,8 +9,6 @@
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Manipulator = factory());
}(this, (function () { 'use strict';
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
/**
* --------------------------------------------------------------------------
* Bootstrap (v5.0.0-alpha3): dom/manipulator.js
@ -45,25 +43,28 @@
var Manipulator = {
setDataAttribute: function setDataAttribute(element, key, value) {
element.setAttribute("data-" + normalizeDataKey(key), value);
element.setAttribute("data-bs-" + normalizeDataKey(key), value);
},
removeDataAttribute: function removeDataAttribute(element, key) {
element.removeAttribute("data-" + normalizeDataKey(key));
element.removeAttribute("data-bs-" + normalizeDataKey(key));
},
getDataAttributes: function getDataAttributes(element) {
if (!element) {
return {};
}
var attributes = _extends({}, element.dataset);
Object.keys(attributes).forEach(function (key) {
attributes[key] = normalizeData(attributes[key]);
var attributes = {};
Object.keys(element.dataset).filter(function (key) {
return key.startsWith('bs');
}).forEach(function (key) {
var pureKey = key.replace(/^bs/, '');
pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length);
attributes[pureKey] = normalizeData(element.dataset[key]);
});
return attributes;
},
getDataAttribute: function getDataAttribute(element, key) {
return normalizeData(element.getAttribute("data-" + normalizeDataKey(key)));
return normalizeData(element.getAttribute("data-bs-" + normalizeDataKey(key)));
},
offset: function offset(element) {
var rect = element.getBoundingClientRect();

View file

@ -1 +1 @@
{"version":3,"file":"manipulator.js","sources":["../../src/dom/manipulator.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`)\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {\n ...element.dataset\n }\n\n Object.keys(attributes).forEach(key => {\n attributes[key] = normalizeData(attributes[key])\n })\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-${normalizeDataKey(key)}`))\n },\n\n offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n }\n}\n\nexport default Manipulator\n"],"names":["normalizeData","val","Number","toString","normalizeDataKey","key","replace","chr","toLowerCase","Manipulator","setDataAttribute","element","value","setAttribute","removeDataAttribute","removeAttribute","getDataAttributes","attributes","dataset","Object","keys","forEach","getDataAttribute","getAttribute","offset","rect","getBoundingClientRect","top","document","body","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft"],"mappings":";;;;;;;;;;;;;EAAA;EACA;EACA;EACA;EACA;EACA;EAEA,SAASA,aAAT,CAAuBC,GAAvB,EAA4B;EAC1B,MAAIA,GAAG,KAAK,MAAZ,EAAoB;EAClB,WAAO,IAAP;EACD;;EAED,MAAIA,GAAG,KAAK,OAAZ,EAAqB;EACnB,WAAO,KAAP;EACD;;EAED,MAAIA,GAAG,KAAKC,MAAM,CAACD,GAAD,CAAN,CAAYE,QAAZ,EAAZ,EAAoC;EAClC,WAAOD,MAAM,CAACD,GAAD,CAAb;EACD;;EAED,MAAIA,GAAG,KAAK,EAAR,IAAcA,GAAG,KAAK,MAA1B,EAAkC;EAChC,WAAO,IAAP;EACD;;EAED,SAAOA,GAAP;EACD;;EAED,SAASG,gBAAT,CAA0BC,GAA1B,EAA+B;EAC7B,SAAOA,GAAG,CAACC,OAAJ,CAAY,QAAZ,EAAsB,UAAAC,GAAG;EAAA,iBAAQA,GAAG,CAACC,WAAJ,EAAR;EAAA,GAAzB,CAAP;EACD;;MAEKC,WAAW,GAAG;EAClBC,EAAAA,gBADkB,4BACDC,OADC,EACQN,GADR,EACaO,KADb,EACoB;EACpCD,IAAAA,OAAO,CAACE,YAAR,WAA6BT,gBAAgB,CAACC,GAAD,CAA7C,EAAsDO,KAAtD;EACD,GAHiB;EAKlBE,EAAAA,mBALkB,+BAKEH,OALF,EAKWN,GALX,EAKgB;EAChCM,IAAAA,OAAO,CAACI,eAAR,WAAgCX,gBAAgB,CAACC,GAAD,CAAhD;EACD,GAPiB;EASlBW,EAAAA,iBATkB,6BASAL,OATA,EASS;EACzB,QAAI,CAACA,OAAL,EAAc;EACZ,aAAO,EAAP;EACD;;EAED,QAAMM,UAAU,gBACXN,OAAO,CAACO,OADG,CAAhB;;EAIAC,IAAAA,MAAM,CAACC,IAAP,CAAYH,UAAZ,EAAwBI,OAAxB,CAAgC,UAAAhB,GAAG,EAAI;EACrCY,MAAAA,UAAU,CAACZ,GAAD,CAAV,GAAkBL,aAAa,CAACiB,UAAU,CAACZ,GAAD,CAAX,CAA/B;EACD,KAFD;EAIA,WAAOY,UAAP;EACD,GAvBiB;EAyBlBK,EAAAA,gBAzBkB,4BAyBDX,OAzBC,EAyBQN,GAzBR,EAyBa;EAC7B,WAAOL,aAAa,CAACW,OAAO,CAACY,YAAR,WAA6BnB,gBAAgB,CAACC,GAAD,CAA7C,CAAD,CAApB;EACD,GA3BiB;EA6BlBmB,EAAAA,MA7BkB,kBA6BXb,OA7BW,EA6BF;EACd,QAAMc,IAAI,GAAGd,OAAO,CAACe,qBAAR,EAAb;EAEA,WAAO;EACLC,MAAAA,GAAG,EAAEF,IAAI,CAACE,GAAL,GAAWC,QAAQ,CAACC,IAAT,CAAcC,SADzB;EAELC,MAAAA,IAAI,EAAEN,IAAI,CAACM,IAAL,GAAYH,QAAQ,CAACC,IAAT,CAAcG;EAF3B,KAAP;EAID,GApCiB;EAsClBC,EAAAA,QAtCkB,oBAsCTtB,OAtCS,EAsCA;EAChB,WAAO;EACLgB,MAAAA,GAAG,EAAEhB,OAAO,CAACuB,SADR;EAELH,MAAAA,IAAI,EAAEpB,OAAO,CAACwB;EAFT,KAAP;EAID;EA3CiB;;;;;;;;"}
{"version":3,"file":"manipulator.js","sources":["../../src/dom/manipulator.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha3): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`)\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-bs-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {}\n\n Object.keys(element.dataset)\n .filter(key => key.startsWith('bs'))\n .forEach(key => {\n let pureKey = key.replace(/^bs/, '')\n pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length)\n attributes[pureKey] = normalizeData(element.dataset[key])\n })\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`))\n },\n\n offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n }\n}\n\nexport default Manipulator\n"],"names":["normalizeData","val","Number","toString","normalizeDataKey","key","replace","chr","toLowerCase","Manipulator","setDataAttribute","element","value","setAttribute","removeDataAttribute","removeAttribute","getDataAttributes","attributes","Object","keys","dataset","filter","startsWith","forEach","pureKey","charAt","slice","length","getDataAttribute","getAttribute","offset","rect","getBoundingClientRect","top","document","body","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft"],"mappings":";;;;;;;;;;;EAAA;EACA;EACA;EACA;EACA;EACA;EAEA,SAASA,aAAT,CAAuBC,GAAvB,EAA4B;EAC1B,MAAIA,GAAG,KAAK,MAAZ,EAAoB;EAClB,WAAO,IAAP;EACD;;EAED,MAAIA,GAAG,KAAK,OAAZ,EAAqB;EACnB,WAAO,KAAP;EACD;;EAED,MAAIA,GAAG,KAAKC,MAAM,CAACD,GAAD,CAAN,CAAYE,QAAZ,EAAZ,EAAoC;EAClC,WAAOD,MAAM,CAACD,GAAD,CAAb;EACD;;EAED,MAAIA,GAAG,KAAK,EAAR,IAAcA,GAAG,KAAK,MAA1B,EAAkC;EAChC,WAAO,IAAP;EACD;;EAED,SAAOA,GAAP;EACD;;EAED,SAASG,gBAAT,CAA0BC,GAA1B,EAA+B;EAC7B,SAAOA,GAAG,CAACC,OAAJ,CAAY,QAAZ,EAAsB,UAAAC,GAAG;EAAA,iBAAQA,GAAG,CAACC,WAAJ,EAAR;EAAA,GAAzB,CAAP;EACD;;MAEKC,WAAW,GAAG;EAClBC,EAAAA,gBADkB,4BACDC,OADC,EACQN,GADR,EACaO,KADb,EACoB;EACpCD,IAAAA,OAAO,CAACE,YAAR,cAAgCT,gBAAgB,CAACC,GAAD,CAAhD,EAAyDO,KAAzD;EACD,GAHiB;EAKlBE,EAAAA,mBALkB,+BAKEH,OALF,EAKWN,GALX,EAKgB;EAChCM,IAAAA,OAAO,CAACI,eAAR,cAAmCX,gBAAgB,CAACC,GAAD,CAAnD;EACD,GAPiB;EASlBW,EAAAA,iBATkB,6BASAL,OATA,EASS;EACzB,QAAI,CAACA,OAAL,EAAc;EACZ,aAAO,EAAP;EACD;;EAED,QAAMM,UAAU,GAAG,EAAnB;EAEAC,IAAAA,MAAM,CAACC,IAAP,CAAYR,OAAO,CAACS,OAApB,EACGC,MADH,CACU,UAAAhB,GAAG;EAAA,aAAIA,GAAG,CAACiB,UAAJ,CAAe,IAAf,CAAJ;EAAA,KADb,EAEGC,OAFH,CAEW,UAAAlB,GAAG,EAAI;EACd,UAAImB,OAAO,GAAGnB,GAAG,CAACC,OAAJ,CAAY,KAAZ,EAAmB,EAAnB,CAAd;EACAkB,MAAAA,OAAO,GAAGA,OAAO,CAACC,MAAR,CAAe,CAAf,EAAkBjB,WAAlB,KAAkCgB,OAAO,CAACE,KAAR,CAAc,CAAd,EAAiBF,OAAO,CAACG,MAAzB,CAA5C;EACAV,MAAAA,UAAU,CAACO,OAAD,CAAV,GAAsBxB,aAAa,CAACW,OAAO,CAACS,OAAR,CAAgBf,GAAhB,CAAD,CAAnC;EACD,KANH;EAQA,WAAOY,UAAP;EACD,GAzBiB;EA2BlBW,EAAAA,gBA3BkB,4BA2BDjB,OA3BC,EA2BQN,GA3BR,EA2Ba;EAC7B,WAAOL,aAAa,CAACW,OAAO,CAACkB,YAAR,cAAgCzB,gBAAgB,CAACC,GAAD,CAAhD,CAAD,CAApB;EACD,GA7BiB;EA+BlByB,EAAAA,MA/BkB,kBA+BXnB,OA/BW,EA+BF;EACd,QAAMoB,IAAI,GAAGpB,OAAO,CAACqB,qBAAR,EAAb;EAEA,WAAO;EACLC,MAAAA,GAAG,EAAEF,IAAI,CAACE,GAAL,GAAWC,QAAQ,CAACC,IAAT,CAAcC,SADzB;EAELC,MAAAA,IAAI,EAAEN,IAAI,CAACM,IAAL,GAAYH,QAAQ,CAACC,IAAT,CAAcG;EAF3B,KAAP;EAID,GAtCiB;EAwClBC,EAAAA,QAxCkB,oBAwCT5B,OAxCS,EAwCA;EAChB,WAAO;EACLsB,MAAAA,GAAG,EAAEtB,OAAO,CAAC6B,SADR;EAELH,MAAAA,IAAI,EAAE1B,OAAO,CAAC8B;EAFT,KAAP;EAID;EA7CiB;;;;;;;;"}

View file

@ -1,111 +0,0 @@
/*!
* Bootstrap polyfill.js v5.0.0-alpha2 (https://getbootstrap.com/)
* Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
typeof define === 'function' && define.amd ? define(['exports'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.Polyfill = {}));
}(this, (function (exports) { 'use strict';
/**
* --------------------------------------------------------------------------
* Bootstrap (v5.0.0-alpha2): util/index.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
var MAX_UID = 1000000;
/**
* --------------------------------------------------------------------------
* Public Util Api
* --------------------------------------------------------------------------
*/
var getUID = function getUID(prefix) {
do {
prefix += Math.floor(Math.random() * MAX_UID);
} while (document.getElementById(prefix));
return prefix;
};
/* istanbul ignore file */
exports.find = Element.prototype.querySelectorAll;
exports.findOne = Element.prototype.querySelector; // MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached
var defaultPreventedPreservedOnDispatch = function () {
var e = new CustomEvent('Bootstrap', {
cancelable: true
});
var element = document.createElement('div');
element.addEventListener('Bootstrap', function () {
return null;
});
e.preventDefault();
element.dispatchEvent(e);
return e.defaultPrevented;
}();
var scopeSelectorRegex = /:scope\b/;
var supportScopeQuery = function () {
var element = document.createElement('div');
try {
element.querySelectorAll(':scope *');
} catch (_) {
return false;
}
return true;
}();
if (!supportScopeQuery) {
exports.find = function find(selector) {
if (!scopeSelectorRegex.test(selector)) {
return this.querySelectorAll(selector);
}
var hasId = Boolean(this.id);
if (!hasId) {
this.id = getUID('scope');
}
var nodeList = null;
try {
selector = selector.replace(scopeSelectorRegex, "#" + this.id);
nodeList = this.querySelectorAll(selector);
} finally {
if (!hasId) {
this.removeAttribute('id');
}
}
return nodeList;
};
exports.findOne = function findOne(selector) {
if (!scopeSelectorRegex.test(selector)) {
return this.querySelector(selector);
}
var matches = exports.find.call(this, selector);
if (typeof matches[0] !== 'undefined') {
return matches[0];
}
return null;
};
}
exports.defaultPreventedPreservedOnDispatch = defaultPreventedPreservedOnDispatch;
Object.defineProperty(exports, '__esModule', { value: true });
})));
//# sourceMappingURL=polyfill.js.map

File diff suppressed because one or more lines are too long

148
js/dist/dropdown.js vendored
View file

@ -5,7 +5,7 @@
*/
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('popper.js'), require('./dom/selector-engine.js')) :
typeof define === 'function' && define.amd ? define(['./dom/data.js', './dom/event-handler.js', './dom/manipulator.js', 'popper.js', './dom/selector-engine.js'], factory) :
typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/manipulator', 'popper.js', './dom/selector-engine'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Dropdown = factory(global.Data, global.EventHandler, global.Manipulator, global.Popper, global.SelectorEngine));
}(this, (function (Data, EventHandler, Manipulator, Popper, SelectorEngine) { 'use strict';
@ -33,7 +33,7 @@
};
var getSelector = function getSelector(element) {
var selector = element.getAttribute('data-target');
var selector = element.getAttribute('data-bs-target');
if (!selector || selector === '#') {
var hrefAttr = element.getAttribute('href');
@ -86,7 +86,7 @@
var _window = window,
jQuery = _window.jQuery;
if (jQuery && !document.body.hasAttribute('data-no-jquery')) {
if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
return jQuery;
}
@ -101,7 +101,7 @@
}
};
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
var isRTL = document.documentElement.dir === 'rtl';
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
@ -112,8 +112,55 @@
* ------------------------------------------------------------------------
*/
var NAME = 'dropdown';
var VERSION = '5.0.0-alpha3';
var BaseComponent = /*#__PURE__*/function () {
function BaseComponent(element) {
if (!element) {
return;
}
this._element = element;
Data__default['default'].setData(element, this.constructor.DATA_KEY, this);
}
var _proto = BaseComponent.prototype;
_proto.dispose = function dispose() {
Data__default['default'].removeData(this._element, this.constructor.DATA_KEY);
this._element = null;
}
/** Static */
;
BaseComponent.getInstance = function getInstance(element) {
return Data__default['default'].getData(element, this.DATA_KEY);
};
_createClass(BaseComponent, null, [{
key: "VERSION",
get: function get() {
return VERSION;
}
}]);
return BaseComponent;
}();
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
function _defineProperties$1(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
function _createClass$1(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$1(Constructor.prototype, protoProps); if (staticProps) _defineProperties$1(Constructor, staticProps); return Constructor; }
function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
/**
* ------------------------------------------------------------------------
* Constants
* ------------------------------------------------------------------------
*/
var NAME = 'dropdown';
var DATA_KEY = 'bs.dropdown';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
@ -136,22 +183,22 @@
var CLASS_NAME_DISABLED = 'disabled';
var CLASS_NAME_SHOW = 'show';
var CLASS_NAME_DROPUP = 'dropup';
var CLASS_NAME_DROPRIGHT = 'dropright';
var CLASS_NAME_DROPLEFT = 'dropleft';
var CLASS_NAME_MENURIGHT = 'dropdown-menu-right';
var CLASS_NAME_DROPEND = 'dropend';
var CLASS_NAME_DROPSTART = 'dropstart';
var CLASS_NAME_MENUEND = 'dropdown-menu-end';
var CLASS_NAME_NAVBAR = 'navbar';
var CLASS_NAME_POSITION_STATIC = 'position-static';
var SELECTOR_DATA_TOGGLE = '[data-toggle="dropdown"]';
var SELECTOR_DATA_TOGGLE = '[data-bs-toggle="dropdown"]';
var SELECTOR_FORM_CHILD = '.dropdown form';
var SELECTOR_MENU = '.dropdown-menu';
var SELECTOR_NAVBAR_NAV = '.navbar-nav';
var SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';
var PLACEMENT_TOP = 'top-start';
var PLACEMENT_TOPEND = 'top-end';
var PLACEMENT_BOTTOM = 'bottom-start';
var PLACEMENT_BOTTOMEND = 'bottom-end';
var PLACEMENT_RIGHT = 'right-start';
var PLACEMENT_LEFT = 'left-start';
var PLACEMENT_TOP = isRTL ? 'top-end' : 'top-start';
var PLACEMENT_TOPEND = isRTL ? 'top-start' : 'top-end';
var PLACEMENT_BOTTOM = isRTL ? 'bottom-end' : 'bottom-start';
var PLACEMENT_BOTTOMEND = isRTL ? 'bottom-start' : 'bottom-end';
var PLACEMENT_RIGHT = isRTL ? 'left-start' : 'right-start';
var PLACEMENT_LEFT = isRTL ? 'right-start' : 'left-start';
var Default = {
offset: 0,
flip: true,
@ -174,17 +221,21 @@
* ------------------------------------------------------------------------
*/
var Dropdown = /*#__PURE__*/function () {
var Dropdown = /*#__PURE__*/function (_BaseComponent) {
_inheritsLoose(Dropdown, _BaseComponent);
function Dropdown(element, config) {
this._element = element;
this._popper = null;
this._config = this._getConfig(config);
this._menu = this._getMenuElement();
this._inNavbar = this._detectNavbar();
var _this;
this._addEventListeners();
_this = _BaseComponent.call(this, element) || this;
_this._popper = null;
_this._config = _this._getConfig(config);
_this._menu = _this._getMenuElement();
_this._inNavbar = _this._detectNavbar();
Data__default['default'].setData(element, DATA_KEY, this);
_this._addEventListeners();
return _this;
} // Getters
@ -220,12 +271,12 @@
if (showEvent.defaultPrevented) {
return;
} // Disable totally Popper.js for Dropdown in Navbar
} // Totally disable Popper for Dropdowns in Navbar
if (!this._inNavbar) {
if (typeof Popper__default['default'] === 'undefined') {
throw new TypeError('Bootstrap\'s dropdowns require Popper.js (https://popper.js.org)');
throw new TypeError('Bootstrap\'s dropdowns require Popper (https://popper.js.org)');
}
var referenceElement = this._element;
@ -300,9 +351,9 @@
};
_proto.dispose = function dispose() {
Data__default['default'].removeData(this._element, DATA_KEY);
_BaseComponent.prototype.dispose.call(this);
EventHandler__default['default'].off(this._element, EVENT_KEY);
this._element = null;
this._menu = null;
if (this._popper) {
@ -322,13 +373,13 @@
;
_proto._addEventListeners = function _addEventListeners() {
var _this = this;
var _this2 = this;
EventHandler__default['default'].on(this._element, EVENT_CLICK, function (event) {
event.preventDefault();
event.stopPropagation();
_this.toggle();
_this2.toggle();
});
};
@ -347,12 +398,12 @@
var placement = PLACEMENT_BOTTOM; // Handle dropup
if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {
placement = this._menu.classList.contains(CLASS_NAME_MENURIGHT) ? PLACEMENT_TOPEND : PLACEMENT_TOP;
} else if (parentDropdown.classList.contains(CLASS_NAME_DROPRIGHT)) {
placement = this._menu.classList.contains(CLASS_NAME_MENUEND) ? PLACEMENT_TOPEND : PLACEMENT_TOP;
} else if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {
placement = PLACEMENT_RIGHT;
} else if (parentDropdown.classList.contains(CLASS_NAME_DROPLEFT)) {
} else if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {
placement = PLACEMENT_LEFT;
} else if (this._menu.classList.contains(CLASS_NAME_MENURIGHT)) {
} else if (this._menu.classList.contains(CLASS_NAME_MENUEND)) {
placement = PLACEMENT_BOTTOMEND;
}
@ -364,13 +415,13 @@
};
_proto._getOffset = function _getOffset() {
var _this2 = this;
var _this3 = this;
var offset = {};
if (typeof this._config.offset === 'function') {
offset.fn = function (data) {
data.offsets = _extends({}, data.offsets, _this2._config.offset(data.offsets, _this2._element) || {});
data.offsets = _extends({}, data.offsets, _this3._config.offset(data.offsets, _this3._element) || {});
return data;
};
} else {
@ -392,7 +443,7 @@
boundariesElement: this._config.boundary
}
}
}; // Disable Popper.js if we have a static display
}; // Disable Popper if we have a static display
if (this._config.display === 'static') {
popperConfig.modifiers.applyStyle = {
@ -532,15 +583,14 @@
return;
}
var index = items.indexOf(event.target);
var index = items.indexOf(event.target); // Up
if (event.key === ARROW_UP_KEY && index > 0) {
// Up
index--;
}
} // Down
if (event.key === ARROW_DOWN_KEY && index < items.length - 1) {
// Down
index++;
} // index is -1 if the first keydown is an ArrowUp
@ -549,16 +599,7 @@
items[index].focus();
};
Dropdown.getInstance = function getInstance(element) {
return Data__default['default'].getData(element, DATA_KEY);
};
_createClass(Dropdown, null, [{
key: "VERSION",
get: function get() {
return VERSION;
}
}, {
_createClass$1(Dropdown, null, [{
key: "Default",
get: function get() {
return Default;
@ -568,10 +609,15 @@
get: function get() {
return DefaultType;
}
}, {
key: "DATA_KEY",
get: function get() {
return DATA_KEY;
}
}]);
return Dropdown;
}();
}(BaseComponent);
/**
* ------------------------------------------------------------------------
* Data Api implementation

File diff suppressed because one or more lines are too long

262
js/dist/modal.js vendored
View file

@ -5,7 +5,7 @@
*/
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js')) :
typeof define === 'function' && define.amd ? define(['./dom/data.js', './dom/event-handler.js', './dom/manipulator.js', './dom/selector-engine.js'], factory) :
typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Modal = factory(global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine));
}(this, (function (Data, EventHandler, Manipulator, SelectorEngine) { 'use strict';
@ -34,7 +34,7 @@
};
var getSelector = function getSelector(element) {
var selector = element.getAttribute('data-target');
var selector = element.getAttribute('data-bs-target');
if (!selector || selector === '#') {
var hrefAttr = element.getAttribute('href');
@ -59,8 +59,8 @@
transitionDuration = _window$getComputedSt.transitionDuration,
transitionDelay = _window$getComputedSt.transitionDelay;
var floatTransitionDuration = parseFloat(transitionDuration);
var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
var floatTransitionDuration = Number.parseFloat(transitionDuration);
var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
if (!floatTransitionDuration && !floatTransitionDelay) {
return 0;
@ -69,7 +69,7 @@
transitionDuration = transitionDuration.split(',')[0];
transitionDelay = transitionDelay.split(',')[0];
return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
};
var triggerTransitionEnd = function triggerTransitionEnd(element) {
@ -132,7 +132,7 @@
var _window = window,
jQuery = _window.jQuery;
if (jQuery && !document.body.hasAttribute('data-no-jquery')) {
if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
return jQuery;
}
@ -147,7 +147,7 @@
}
};
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
var isRTL = document.documentElement.dir === 'rtl';
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
@ -158,8 +158,55 @@
* ------------------------------------------------------------------------
*/
var NAME = 'modal';
var VERSION = '5.0.0-alpha3';
var BaseComponent = /*#__PURE__*/function () {
function BaseComponent(element) {
if (!element) {
return;
}
this._element = element;
Data__default['default'].setData(element, this.constructor.DATA_KEY, this);
}
var _proto = BaseComponent.prototype;
_proto.dispose = function dispose() {
Data__default['default'].removeData(this._element, this.constructor.DATA_KEY);
this._element = null;
}
/** Static */
;
BaseComponent.getInstance = function getInstance(element) {
return Data__default['default'].getData(element, this.DATA_KEY);
};
_createClass(BaseComponent, null, [{
key: "VERSION",
get: function get() {
return VERSION;
}
}]);
return BaseComponent;
}();
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
function _defineProperties$1(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
function _createClass$1(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$1(Constructor.prototype, protoProps); if (staticProps) _defineProperties$1(Constructor, staticProps); return Constructor; }
function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
/**
* ------------------------------------------------------------------------
* Constants
* ------------------------------------------------------------------------
*/
var NAME = 'modal';
var DATA_KEY = 'bs.modal';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
@ -167,14 +214,12 @@
var Default = {
backdrop: true,
keyboard: true,
focus: true,
show: true
focus: true
};
var DefaultType = {
backdrop: '(boolean|string)',
keyboard: 'boolean',
focus: 'boolean',
show: 'boolean'
focus: 'boolean'
};
var EVENT_HIDE = "hide" + EVENT_KEY;
var EVENT_HIDE_PREVENTED = "hidePrevented" + EVENT_KEY;
@ -196,8 +241,8 @@
var CLASS_NAME_STATIC = 'modal-static';
var SELECTOR_DIALOG = '.modal-dialog';
var SELECTOR_MODAL_BODY = '.modal-body';
var SELECTOR_DATA_TOGGLE = '[data-toggle="modal"]';
var SELECTOR_DATA_DISMISS = '[data-dismiss="modal"]';
var SELECTOR_DATA_TOGGLE = '[data-bs-toggle="modal"]';
var SELECTOR_DATA_DISMISS = '[data-bs-dismiss="modal"]';
var SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';
var SELECTOR_STICKY_CONTENT = '.sticky-top';
/**
@ -206,18 +251,22 @@
* ------------------------------------------------------------------------
*/
var Modal = /*#__PURE__*/function () {
var Modal = /*#__PURE__*/function (_BaseComponent) {
_inheritsLoose(Modal, _BaseComponent);
function Modal(element, config) {
this._config = this._getConfig(config);
this._element = element;
this._dialog = SelectorEngine__default['default'].findOne(SELECTOR_DIALOG, element);
this._backdrop = null;
this._isShown = false;
this._isBodyOverflowing = false;
this._ignoreBackdropClick = false;
this._isTransitioning = false;
this._scrollbarWidth = 0;
Data__default['default'].setData(element, DATA_KEY, this);
var _this;
_this = _BaseComponent.call(this, element) || this;
_this._config = _this._getConfig(config);
_this._dialog = SelectorEngine__default['default'].findOne(SELECTOR_DIALOG, element);
_this._backdrop = null;
_this._isShown = false;
_this._isBodyOverflowing = false;
_this._ignoreBackdropClick = false;
_this._isTransitioning = false;
_this._scrollbarWidth = 0;
return _this;
} // Getters
@ -229,7 +278,7 @@
};
_proto.show = function show(relatedTarget) {
var _this = this;
var _this2 = this;
if (this._isShown || this._isTransitioning) {
return;
@ -260,23 +309,23 @@
this._setResizeEvent();
EventHandler__default['default'].on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function (event) {
return _this.hide(event);
return _this2.hide(event);
});
EventHandler__default['default'].on(this._dialog, EVENT_MOUSEDOWN_DISMISS, function () {
EventHandler__default['default'].one(_this._element, EVENT_MOUSEUP_DISMISS, function (event) {
if (event.target === _this._element) {
_this._ignoreBackdropClick = true;
EventHandler__default['default'].one(_this2._element, EVENT_MOUSEUP_DISMISS, function (event) {
if (event.target === _this2._element) {
_this2._ignoreBackdropClick = true;
}
});
});
this._showBackdrop(function () {
return _this._showElement(relatedTarget);
return _this2._showElement(relatedTarget);
});
};
_proto.hide = function hide(event) {
var _this2 = this;
var _this3 = this;
if (event) {
event.preventDefault();
@ -314,7 +363,7 @@
if (transition) {
var transitionDuration = getTransitionDurationFromElement(this._element);
EventHandler__default['default'].one(this._element, TRANSITION_END, function (event) {
return _this2._hideModal(event);
return _this3._hideModal(event);
});
emulateTransitionEnd(this._element, transitionDuration);
} else {
@ -326,16 +375,17 @@
[window, this._element, this._dialog].forEach(function (htmlElement) {
return EventHandler__default['default'].off(htmlElement, EVENT_KEY);
});
_BaseComponent.prototype.dispose.call(this);
/**
* `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`
* Do not move `document` in `htmlElements` array
* It will remove `EVENT_CLICK_DATA_API` event that should remain
*/
EventHandler__default['default'].off(document, EVENT_FOCUSIN);
Data__default['default'].removeData(this._element, DATA_KEY);
this._config = null;
this._element = null;
this._dialog = null;
this._backdrop = null;
this._isShown = null;
@ -357,7 +407,7 @@
};
_proto._showElement = function _showElement(relatedTarget) {
var _this3 = this;
var _this4 = this;
var transition = this._element.classList.contains(CLASS_NAME_FADE);
@ -393,12 +443,12 @@
}
var transitionComplete = function transitionComplete() {
if (_this3._config.focus) {
_this3._element.focus();
if (_this4._config.focus) {
_this4._element.focus();
}
_this3._isTransitioning = false;
EventHandler__default['default'].trigger(_this3._element, EVENT_SHOWN, {
_this4._isTransitioning = false;
EventHandler__default['default'].trigger(_this4._element, EVENT_SHOWN, {
relatedTarget: relatedTarget
});
};
@ -413,28 +463,28 @@
};
_proto._enforceFocus = function _enforceFocus() {
var _this4 = this;
var _this5 = this;
EventHandler__default['default'].off(document, EVENT_FOCUSIN); // guard against infinite focus loop
EventHandler__default['default'].on(document, EVENT_FOCUSIN, function (event) {
if (document !== event.target && _this4._element !== event.target && !_this4._element.contains(event.target)) {
_this4._element.focus();
if (document !== event.target && _this5._element !== event.target && !_this5._element.contains(event.target)) {
_this5._element.focus();
}
});
};
_proto._setEscapeEvent = function _setEscapeEvent() {
var _this5 = this;
var _this6 = this;
if (this._isShown) {
EventHandler__default['default'].on(this._element, EVENT_KEYDOWN_DISMISS, function (event) {
if (_this5._config.keyboard && event.key === ESCAPE_KEY) {
if (_this6._config.keyboard && event.key === ESCAPE_KEY) {
event.preventDefault();
_this5.hide();
} else if (!_this5._config.keyboard && event.key === ESCAPE_KEY) {
_this5._triggerBackdropTransition();
_this6.hide();
} else if (!_this6._config.keyboard && event.key === ESCAPE_KEY) {
_this6._triggerBackdropTransition();
}
});
} else {
@ -443,11 +493,11 @@
};
_proto._setResizeEvent = function _setResizeEvent() {
var _this6 = this;
var _this7 = this;
if (this._isShown) {
EventHandler__default['default'].on(window, EVENT_RESIZE, function () {
return _this6._adjustDialog();
return _this7._adjustDialog();
});
} else {
EventHandler__default['default'].off(window, EVENT_RESIZE);
@ -455,7 +505,7 @@
};
_proto._hideModal = function _hideModal() {
var _this7 = this;
var _this8 = this;
this._element.style.display = 'none';
@ -470,11 +520,11 @@
this._showBackdrop(function () {
document.body.classList.remove(CLASS_NAME_OPEN);
_this7._resetAdjustments();
_this8._resetAdjustments();
_this7._resetScrollbar();
_this8._resetScrollbar();
EventHandler__default['default'].trigger(_this7._element, EVENT_HIDDEN);
EventHandler__default['default'].trigger(_this8._element, EVENT_HIDDEN);
});
};
@ -485,7 +535,7 @@
};
_proto._showBackdrop = function _showBackdrop(callback) {
var _this8 = this;
var _this9 = this;
var animate = this._element.classList.contains(CLASS_NAME_FADE) ? CLASS_NAME_FADE : '';
@ -499,8 +549,8 @@
document.body.appendChild(this._backdrop);
EventHandler__default['default'].on(this._element, EVENT_CLICK_DISMISS, function (event) {
if (_this8._ignoreBackdropClick) {
_this8._ignoreBackdropClick = false;
if (_this9._ignoreBackdropClick) {
_this9._ignoreBackdropClick = false;
return;
}
@ -508,7 +558,11 @@
return;
}
_this8._triggerBackdropTransition();
if (_this9._config.backdrop === 'static') {
_this9._triggerBackdropTransition();
} else {
_this9.hide();
}
});
if (animate) {
@ -529,7 +583,7 @@
this._backdrop.classList.remove(CLASS_NAME_SHOW);
var callbackRemove = function callbackRemove() {
_this8._removeBackdrop();
_this9._removeBackdrop();
callback();
};
@ -548,41 +602,37 @@
};
_proto._triggerBackdropTransition = function _triggerBackdropTransition() {
var _this9 = this;
var _this10 = this;
if (this._config.backdrop === 'static') {
var hideEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE_PREVENTED);
var hideEvent = EventHandler__default['default'].trigger(this._element, EVENT_HIDE_PREVENTED);
if (hideEvent.defaultPrevented) {
return;
}
if (hideEvent.defaultPrevented) {
return;
}
var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
if (!isModalOverflowing) {
this._element.style.overflowY = 'hidden';
}
this._element.classList.add(CLASS_NAME_STATIC);
var modalTransitionDuration = getTransitionDurationFromElement(this._dialog);
EventHandler__default['default'].off(this._element, TRANSITION_END);
EventHandler__default['default'].one(this._element, TRANSITION_END, function () {
_this10._element.classList.remove(CLASS_NAME_STATIC);
if (!isModalOverflowing) {
this._element.style.overflowY = 'hidden';
EventHandler__default['default'].one(_this10._element, TRANSITION_END, function () {
_this10._element.style.overflowY = '';
});
emulateTransitionEnd(_this10._element, modalTransitionDuration);
}
});
emulateTransitionEnd(this._element, modalTransitionDuration);
this._element.classList.add(CLASS_NAME_STATIC);
var modalTransitionDuration = getTransitionDurationFromElement(this._dialog);
EventHandler__default['default'].off(this._element, TRANSITION_END);
EventHandler__default['default'].one(this._element, TRANSITION_END, function () {
_this9._element.classList.remove(CLASS_NAME_STATIC);
if (!isModalOverflowing) {
EventHandler__default['default'].one(_this9._element, TRANSITION_END, function () {
_this9._element.style.overflowY = '';
});
emulateTransitionEnd(_this9._element, modalTransitionDuration);
}
});
emulateTransitionEnd(this._element, modalTransitionDuration);
this._element.focus();
} else {
this.hide();
}
this._element.focus();
} // ----------------------------------------------------------------------
// the following methods are used to handle overflowing modals
// ----------------------------------------------------------------------
@ -591,11 +641,11 @@
_proto._adjustDialog = function _adjustDialog() {
var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
if (!this._isBodyOverflowing && isModalOverflowing) {
if (!this._isBodyOverflowing && isModalOverflowing && !isRTL || this._isBodyOverflowing && !isModalOverflowing && isRTL) {
this._element.style.paddingLeft = this._scrollbarWidth + "px";
}
if (this._isBodyOverflowing && !isModalOverflowing) {
if (this._isBodyOverflowing && !isModalOverflowing && !isRTL || !this._isBodyOverflowing && isModalOverflowing && isRTL) {
this._element.style.paddingRight = this._scrollbarWidth + "px";
}
};
@ -612,7 +662,7 @@
};
_proto._setScrollbar = function _setScrollbar() {
var _this10 = this;
var _this11 = this;
if (this._isBodyOverflowing) {
// Note: DOMNode.style.paddingRight returns the actual value or '' if not set
@ -622,20 +672,20 @@
var actualPadding = element.style.paddingRight;
var calculatedPadding = window.getComputedStyle(element)['padding-right'];
Manipulator__default['default'].setDataAttribute(element, 'padding-right', actualPadding);
element.style.paddingRight = parseFloat(calculatedPadding) + _this10._scrollbarWidth + "px";
element.style.paddingRight = Number.parseFloat(calculatedPadding) + _this11._scrollbarWidth + "px";
}); // Adjust sticky content margin
SelectorEngine__default['default'].find(SELECTOR_STICKY_CONTENT).forEach(function (element) {
var actualMargin = element.style.marginRight;
var calculatedMargin = window.getComputedStyle(element)['margin-right'];
Manipulator__default['default'].setDataAttribute(element, 'margin-right', actualMargin);
element.style.marginRight = parseFloat(calculatedMargin) - _this10._scrollbarWidth + "px";
element.style.marginRight = Number.parseFloat(calculatedMargin) - _this11._scrollbarWidth + "px";
}); // Adjust body padding
var actualPadding = document.body.style.paddingRight;
var calculatedPadding = window.getComputedStyle(document.body)['padding-right'];
Manipulator__default['default'].setDataAttribute(document.body, 'padding-right', actualPadding);
document.body.style.paddingRight = parseFloat(calculatedPadding) + this._scrollbarWidth + "px";
document.body.style.paddingRight = Number.parseFloat(calculatedPadding) + this._scrollbarWidth + "px";
}
document.body.classList.add(CLASS_NAME_OPEN);
@ -698,30 +748,24 @@
}
data[config](relatedTarget);
} else if (_config.show) {
data.show(relatedTarget);
}
});
};
Modal.getInstance = function getInstance(element) {
return Data__default['default'].getData(element, DATA_KEY);
};
_createClass(Modal, null, [{
key: "VERSION",
get: function get() {
return VERSION;
}
}, {
_createClass$1(Modal, null, [{
key: "Default",
get: function get() {
return Default;
}
}, {
key: "DATA_KEY",
get: function get() {
return DATA_KEY;
}
}]);
return Modal;
}();
}(BaseComponent);
/**
* ------------------------------------------------------------------------
* Data Api implementation
@ -730,7 +774,7 @@
EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
var _this11 = this;
var _this12 = this;
var target = getElementFromSelector(this);
@ -745,8 +789,8 @@
}
EventHandler__default['default'].one(target, EVENT_HIDDEN, function () {
if (isVisible(_this11)) {
_this11.focus();
if (isVisible(_this12)) {
_this12.focus();
}
});
});

File diff suppressed because one or more lines are too long

26
js/dist/popover.js vendored
View file

@ -5,7 +5,7 @@
*/
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/selector-engine.js'), require('./tooltip.js')) :
typeof define === 'function' && define.amd ? define(['./dom/data.js', './dom/selector-engine.js', './tooltip.js'], factory) :
typeof define === 'function' && define.amd ? define(['./dom/data', './dom/selector-engine', './tooltip'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Popover = factory(global.Data, global.SelectorEngine, global.Tooltip));
}(this, (function (Data, SelectorEngine, Tooltip) { 'use strict';
@ -26,7 +26,7 @@
var _window = window,
jQuery = _window.jQuery;
if (jQuery && !document.body.hasAttribute('data-no-jquery')) {
if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
return jQuery;
}
@ -41,6 +41,8 @@
}
};
var isRTL = document.documentElement.dir === 'rtl';
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
@ -55,7 +57,6 @@
*/
var NAME = 'popover';
var VERSION = '5.0.0-alpha3';
var DATA_KEY = 'bs.popover';
var EVENT_KEY = "." + DATA_KEY;
var CLASS_PREFIX = 'bs-popover';
@ -65,7 +66,7 @@
placement: 'right',
trigger: 'click',
content: '',
template: '<div class="popover" role="tooltip">' + '<div class="popover-arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div></div>'
template: '<div class="popover" role="tooltip">' + '<div class="popover-arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div>' + '</div>'
});
var DefaultType = _extends({}, Tooltip__default['default'].DefaultType, {
@ -116,7 +117,7 @@
var content = this._getContent();
if (typeof content === 'function') {
content = content.call(this.element);
content = content.call(this._element);
}
this.setElementContent(SelectorEngine__default['default'].findOne(SELECTOR_CONTENT, tip), content);
@ -125,11 +126,11 @@
;
_proto._addAttachmentClass = function _addAttachmentClass(attachment) {
this.getTipElement().classList.add(CLASS_PREFIX + "-" + attachment);
this.getTipElement().classList.add(CLASS_PREFIX + "-" + this.updateAttachment(attachment));
};
_proto._getContent = function _getContent() {
return this.element.getAttribute('data-content') || this.config.content;
return this._element.getAttribute('data-bs-content') || this.config.content;
};
_proto._cleanTipClass = function _cleanTipClass() {
@ -171,18 +172,9 @@
});
};
Popover.getInstance = function getInstance(element) {
return Data__default['default'].getData(element, DATA_KEY);
};
_createClass(Popover, null, [{
key: "VERSION",
// Getters
get: function get() {
return VERSION;
}
}, {
key: "Default",
// Getters
get: function get() {
return Default;
}

File diff suppressed because one or more lines are too long

116
js/dist/scrollspy.js vendored
View file

@ -5,7 +5,7 @@
*/
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js')) :
typeof define === 'function' && define.amd ? define(['./dom/data.js', './dom/event-handler.js', './dom/manipulator.js', './dom/selector-engine.js'], factory) :
typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.ScrollSpy = factory(global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine));
}(this, (function (Data, EventHandler, Manipulator, SelectorEngine) { 'use strict';
@ -47,7 +47,7 @@
};
var getSelector = function getSelector(element) {
var selector = element.getAttribute('data-target');
var selector = element.getAttribute('data-bs-target');
if (!selector || selector === '#') {
var hrefAttr = element.getAttribute('href');
@ -87,7 +87,7 @@
var _window = window,
jQuery = _window.jQuery;
if (jQuery && !document.body.hasAttribute('data-no-jquery')) {
if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
return jQuery;
}
@ -102,7 +102,7 @@
}
};
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
var isRTL = document.documentElement.dir === 'rtl';
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
@ -113,8 +113,55 @@
* ------------------------------------------------------------------------
*/
var NAME = 'scrollspy';
var VERSION = '5.0.0-alpha3';
var BaseComponent = /*#__PURE__*/function () {
function BaseComponent(element) {
if (!element) {
return;
}
this._element = element;
Data__default['default'].setData(element, this.constructor.DATA_KEY, this);
}
var _proto = BaseComponent.prototype;
_proto.dispose = function dispose() {
Data__default['default'].removeData(this._element, this.constructor.DATA_KEY);
this._element = null;
}
/** Static */
;
BaseComponent.getInstance = function getInstance(element) {
return Data__default['default'].getData(element, this.DATA_KEY);
};
_createClass(BaseComponent, null, [{
key: "VERSION",
get: function get() {
return VERSION;
}
}]);
return BaseComponent;
}();
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
function _defineProperties$1(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
function _createClass$1(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$1(Constructor.prototype, protoProps); if (staticProps) _defineProperties$1(Constructor, staticProps); return Constructor; }
function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
/**
* ------------------------------------------------------------------------
* Constants
* ------------------------------------------------------------------------
*/
var NAME = 'scrollspy';
var DATA_KEY = 'bs.scrollspy';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
@ -133,7 +180,7 @@
var EVENT_LOAD_DATA_API = "load" + EVENT_KEY + DATA_API_KEY;
var CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';
var CLASS_NAME_ACTIVE = 'active';
var SELECTOR_DATA_SPY = '[data-spy="scroll"]';
var SELECTOR_DATA_SPY = '[data-bs-spy="scroll"]';
var SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';
var SELECTOR_NAV_LINKS = '.nav-link';
var SELECTOR_NAV_ITEMS = '.nav-item';
@ -148,26 +195,29 @@
* ------------------------------------------------------------------------
*/
var ScrollSpy = /*#__PURE__*/function () {
function ScrollSpy(element, config) {
var _this = this;
var ScrollSpy = /*#__PURE__*/function (_BaseComponent) {
_inheritsLoose(ScrollSpy, _BaseComponent);
this._element = element;
this._scrollElement = element.tagName === 'BODY' ? window : element;
this._config = this._getConfig(config);
this._selector = this._config.target + " " + SELECTOR_NAV_LINKS + ", " + this._config.target + " " + SELECTOR_LIST_ITEMS + ", " + this._config.target + " ." + CLASS_NAME_DROPDOWN_ITEM;
this._offsets = [];
this._targets = [];
this._activeTarget = null;
this._scrollHeight = 0;
EventHandler__default['default'].on(this._scrollElement, EVENT_SCROLL, function (event) {
function ScrollSpy(element, config) {
var _this;
_this = _BaseComponent.call(this, element) || this;
_this._scrollElement = element.tagName === 'BODY' ? window : element;
_this._config = _this._getConfig(config);
_this._selector = _this._config.target + " " + SELECTOR_NAV_LINKS + ", " + _this._config.target + " " + SELECTOR_LIST_ITEMS + ", " + _this._config.target + " ." + CLASS_NAME_DROPDOWN_ITEM;
_this._offsets = [];
_this._targets = [];
_this._activeTarget = null;
_this._scrollHeight = 0;
EventHandler__default['default'].on(_this._scrollElement, EVENT_SCROLL, function (event) {
return _this._process(event);
});
this.refresh();
this._process();
_this.refresh();
Data__default['default'].setData(element, DATA_KEY, this);
_this._process();
return _this;
} // Getters
@ -209,9 +259,9 @@
};
_proto.dispose = function dispose() {
Data__default['default'].removeData(this._element, DATA_KEY);
_BaseComponent.prototype.dispose.call(this);
EventHandler__default['default'].off(this._scrollElement, EVENT_KEY);
this._element = null;
this._scrollElement = null;
this._config = null;
this._selector = null;
@ -296,7 +346,7 @@
this._clear();
var queries = this._selector.split(',').map(function (selector) {
return selector + "[data-target=\"" + target + "\"]," + selector + "[href=\"" + target + "\"]";
return selector + "[data-bs-target=\"" + target + "\"]," + selector + "[href=\"" + target + "\"]";
});
var link = SelectorEngine__default['default'].findOne(queries.join(','));
@ -356,24 +406,20 @@
});
};
ScrollSpy.getInstance = function getInstance(element) {
return Data__default['default'].getData(element, DATA_KEY);
};
_createClass(ScrollSpy, null, [{
key: "VERSION",
get: function get() {
return VERSION;
}
}, {
_createClass$1(ScrollSpy, null, [{
key: "Default",
get: function get() {
return Default;
}
}, {
key: "DATA_KEY",
get: function get() {
return DATA_KEY;
}
}]);
return ScrollSpy;
}();
}(BaseComponent);
/**
* ------------------------------------------------------------------------
* Data Api implementation

File diff suppressed because one or more lines are too long

91
js/dist/tab.js vendored
View file

@ -5,7 +5,7 @@
*/
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/selector-engine.js')) :
typeof define === 'function' && define.amd ? define(['./dom/data.js', './dom/event-handler.js', './dom/selector-engine.js'], factory) :
typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/selector-engine'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Tab = factory(global.Data, global.EventHandler, global.SelectorEngine));
}(this, (function (Data, EventHandler, SelectorEngine) { 'use strict';
@ -25,7 +25,7 @@
var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
var getSelector = function getSelector(element) {
var selector = element.getAttribute('data-target');
var selector = element.getAttribute('data-bs-target');
if (!selector || selector === '#') {
var hrefAttr = element.getAttribute('href');
@ -50,8 +50,8 @@
transitionDuration = _window$getComputedSt.transitionDuration,
transitionDelay = _window$getComputedSt.transitionDelay;
var floatTransitionDuration = parseFloat(transitionDuration);
var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
var floatTransitionDuration = Number.parseFloat(transitionDuration);
var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
if (!floatTransitionDuration && !floatTransitionDelay) {
return 0;
@ -60,7 +60,7 @@
transitionDuration = transitionDuration.split(',')[0];
transitionDelay = transitionDelay.split(',')[0];
return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
};
var triggerTransitionEnd = function triggerTransitionEnd(element) {
@ -93,7 +93,7 @@
var _window = window,
jQuery = _window.jQuery;
if (jQuery && !document.body.hasAttribute('data-no-jquery')) {
if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
return jQuery;
}
@ -108,6 +108,8 @@
}
};
var isRTL = document.documentElement.dir === 'rtl';
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
@ -117,8 +119,53 @@
* ------------------------------------------------------------------------
*/
var NAME = 'tab';
var VERSION = '5.0.0-alpha3';
var BaseComponent = /*#__PURE__*/function () {
function BaseComponent(element) {
if (!element) {
return;
}
this._element = element;
Data__default['default'].setData(element, this.constructor.DATA_KEY, this);
}
var _proto = BaseComponent.prototype;
_proto.dispose = function dispose() {
Data__default['default'].removeData(this._element, this.constructor.DATA_KEY);
this._element = null;
}
/** Static */
;
BaseComponent.getInstance = function getInstance(element) {
return Data__default['default'].getData(element, this.DATA_KEY);
};
_createClass(BaseComponent, null, [{
key: "VERSION",
get: function get() {
return VERSION;
}
}]);
return BaseComponent;
}();
function _defineProperties$1(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
function _createClass$1(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$1(Constructor.prototype, protoProps); if (staticProps) _defineProperties$1(Constructor, staticProps); return Constructor; }
function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
/**
* ------------------------------------------------------------------------
* Constants
* ------------------------------------------------------------------------
*/
var NAME = 'tab';
var DATA_KEY = 'bs.tab';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
@ -136,7 +183,7 @@
var SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';
var SELECTOR_ACTIVE = '.active';
var SELECTOR_ACTIVE_UL = ':scope > li > .active';
var SELECTOR_DATA_TOGGLE = '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]';
var SELECTOR_DATA_TOGGLE = '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]';
var SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';
var SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active';
/**
@ -145,12 +192,12 @@
* ------------------------------------------------------------------------
*/
var Tab = /*#__PURE__*/function () {
function Tab(element) {
this._element = element;
Data__default['default'].setData(this._element, DATA_KEY, this);
} // Getters
var Tab = /*#__PURE__*/function (_BaseComponent) {
_inheritsLoose(Tab, _BaseComponent);
function Tab() {
return _BaseComponent.apply(this, arguments) || this;
}
var _proto = Tab.prototype;
@ -205,11 +252,6 @@
} else {
complete();
}
};
_proto.dispose = function dispose() {
Data__default['default'].removeData(this._element, DATA_KEY);
this._element = null;
} // Private
;
@ -292,19 +334,16 @@
});
};
Tab.getInstance = function getInstance(element) {
return Data__default['default'].getData(element, DATA_KEY);
};
_createClass(Tab, null, [{
key: "VERSION",
_createClass$1(Tab, null, [{
key: "DATA_KEY",
// Getters
get: function get() {
return VERSION;
return DATA_KEY;
}
}]);
return Tab;
}();
}(BaseComponent);
/**
* ------------------------------------------------------------------------
* Data Api implementation

2
js/dist/tab.js.map vendored

File diff suppressed because one or more lines are too long

128
js/dist/toast.js vendored
View file

@ -5,7 +5,7 @@
*/
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js')) :
typeof define === 'function' && define.amd ? define(['./dom/data.js', './dom/event-handler.js', './dom/manipulator.js'], factory) :
typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/manipulator'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Toast = factory(global.Data, global.EventHandler, global.Manipulator));
}(this, (function (Data, EventHandler, Manipulator) { 'use strict';
@ -42,8 +42,8 @@
transitionDuration = _window$getComputedSt.transitionDuration,
transitionDelay = _window$getComputedSt.transitionDelay;
var floatTransitionDuration = parseFloat(transitionDuration);
var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
var floatTransitionDuration = Number.parseFloat(transitionDuration);
var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
if (!floatTransitionDuration && !floatTransitionDelay) {
return 0;
@ -52,7 +52,7 @@
transitionDuration = transitionDuration.split(',')[0];
transitionDelay = transitionDelay.split(',')[0];
return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
};
var triggerTransitionEnd = function triggerTransitionEnd(element) {
@ -101,7 +101,7 @@
var _window = window,
jQuery = _window.jQuery;
if (jQuery && !document.body.hasAttribute('data-no-jquery')) {
if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
return jQuery;
}
@ -116,7 +116,7 @@
}
};
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
var isRTL = document.documentElement.dir === 'rtl';
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
@ -127,8 +127,55 @@
* ------------------------------------------------------------------------
*/
var NAME = 'toast';
var VERSION = '5.0.0-alpha3';
var BaseComponent = /*#__PURE__*/function () {
function BaseComponent(element) {
if (!element) {
return;
}
this._element = element;
Data__default['default'].setData(element, this.constructor.DATA_KEY, this);
}
var _proto = BaseComponent.prototype;
_proto.dispose = function dispose() {
Data__default['default'].removeData(this._element, this.constructor.DATA_KEY);
this._element = null;
}
/** Static */
;
BaseComponent.getInstance = function getInstance(element) {
return Data__default['default'].getData(element, this.DATA_KEY);
};
_createClass(BaseComponent, null, [{
key: "VERSION",
get: function get() {
return VERSION;
}
}]);
return BaseComponent;
}();
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
function _defineProperties$1(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
function _createClass$1(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$1(Constructor.prototype, protoProps); if (staticProps) _defineProperties$1(Constructor, staticProps); return Constructor; }
function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
/**
* ------------------------------------------------------------------------
* Constants
* ------------------------------------------------------------------------
*/
var NAME = 'toast';
var DATA_KEY = 'bs.toast';
var EVENT_KEY = "." + DATA_KEY;
var EVENT_CLICK_DISMISS = "click.dismiss" + EVENT_KEY;
@ -150,22 +197,26 @@
autohide: true,
delay: 5000
};
var SELECTOR_DATA_DISMISS = '[data-dismiss="toast"]';
var SELECTOR_DATA_DISMISS = '[data-bs-dismiss="toast"]';
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
var Toast = /*#__PURE__*/function () {
var Toast = /*#__PURE__*/function (_BaseComponent) {
_inheritsLoose(Toast, _BaseComponent);
function Toast(element, config) {
this._element = element;
this._config = this._getConfig(config);
this._timeout = null;
var _this;
this._setListeners();
_this = _BaseComponent.call(this, element) || this;
_this._config = _this._getConfig(config);
_this._timeout = null;
Data__default['default'].setData(element, DATA_KEY, this);
_this._setListeners();
return _this;
} // Getters
@ -173,7 +224,7 @@
// Public
_proto.show = function show() {
var _this = this;
var _this2 = this;
var showEvent = EventHandler__default['default'].trigger(this._element, EVENT_SHOW);
@ -188,16 +239,16 @@
}
var complete = function complete() {
_this._element.classList.remove(CLASS_NAME_SHOWING);
_this2._element.classList.remove(CLASS_NAME_SHOWING);
_this._element.classList.add(CLASS_NAME_SHOW);
_this2._element.classList.add(CLASS_NAME_SHOW);
EventHandler__default['default'].trigger(_this._element, EVENT_SHOWN);
EventHandler__default['default'].trigger(_this2._element, EVENT_SHOWN);
if (_this._config.autohide) {
_this._timeout = setTimeout(function () {
_this.hide();
}, _this._config.delay);
if (_this2._config.autohide) {
_this2._timeout = setTimeout(function () {
_this2.hide();
}, _this2._config.delay);
}
};
@ -217,7 +268,7 @@
};
_proto.hide = function hide() {
var _this2 = this;
var _this3 = this;
if (!this._element.classList.contains(CLASS_NAME_SHOW)) {
return;
@ -230,9 +281,9 @@
}
var complete = function complete() {
_this2._element.classList.add(CLASS_NAME_HIDE);
_this3._element.classList.add(CLASS_NAME_HIDE);
EventHandler__default['default'].trigger(_this2._element, EVENT_HIDDEN);
EventHandler__default['default'].trigger(_this3._element, EVENT_HIDDEN);
};
this._element.classList.remove(CLASS_NAME_SHOW);
@ -254,8 +305,9 @@
}
EventHandler__default['default'].off(this._element, EVENT_CLICK_DISMISS);
Data__default['default'].removeData(this._element, DATA_KEY);
this._element = null;
_BaseComponent.prototype.dispose.call(this);
this._config = null;
} // Private
;
@ -267,10 +319,10 @@
};
_proto._setListeners = function _setListeners() {
var _this3 = this;
var _this4 = this;
EventHandler__default['default'].on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function () {
return _this3.hide();
return _this4.hide();
});
};
@ -300,16 +352,7 @@
});
};
Toast.getInstance = function getInstance(element) {
return Data__default['default'].getData(element, DATA_KEY);
};
_createClass(Toast, null, [{
key: "VERSION",
get: function get() {
return VERSION;
}
}, {
_createClass$1(Toast, null, [{
key: "DefaultType",
get: function get() {
return DefaultType;
@ -319,10 +362,15 @@
get: function get() {
return Default;
}
}, {
key: "DATA_KEY",
get: function get() {
return DATA_KEY;
}
}]);
return Toast;
}();
}(BaseComponent);
/**
* ------------------------------------------------------------------------
* jQuery

File diff suppressed because one or more lines are too long

261
js/dist/tooltip.js vendored
View file

@ -5,7 +5,7 @@
*/
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('popper.js'), require('./dom/selector-engine.js')) :
typeof define === 'function' && define.amd ? define(['./dom/data.js', './dom/event-handler.js', './dom/manipulator.js', 'popper.js', './dom/selector-engine.js'], factory) :
typeof define === 'function' && define.amd ? define(['./dom/data', './dom/event-handler', './dom/manipulator', 'popper.js', './dom/selector-engine'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Tooltip = factory(global.Data, global.EventHandler, global.Manipulator, global.Popper, global.SelectorEngine));
}(this, (function (Data, EventHandler, Manipulator, Popper, SelectorEngine) { 'use strict';
@ -59,8 +59,8 @@
transitionDuration = _window$getComputedSt.transitionDuration,
transitionDelay = _window$getComputedSt.transitionDelay;
var floatTransitionDuration = parseFloat(transitionDuration);
var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
var floatTransitionDuration = Number.parseFloat(transitionDuration);
var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
if (!floatTransitionDuration && !floatTransitionDelay) {
return 0;
@ -69,7 +69,7 @@
transitionDuration = transitionDuration.split(',')[0];
transitionDelay = transitionDelay.split(',')[0];
return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
};
var triggerTransitionEnd = function triggerTransitionEnd(element) {
@ -141,7 +141,7 @@
var _window = window,
jQuery = _window.jQuery;
if (jQuery && !document.body.hasAttribute('data-no-jquery')) {
if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
return jQuery;
}
@ -156,13 +156,15 @@
}
};
var isRTL = document.documentElement.dir === 'rtl';
/**
* --------------------------------------------------------------------------
* Bootstrap (v5.0.0-alpha3): util/sanitizer.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
var uriAttrs = ['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href'];
var uriAttrs = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']);
var ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i;
/**
* A pattern that recognizes a commonly useful subset of URLs that are safe.
@ -182,8 +184,8 @@
var allowedAttribute = function allowedAttribute(attr, allowedAttributeList) {
var attrName = attr.nodeName.toLowerCase();
if (allowedAttributeList.indexOf(attrName) !== -1) {
if (uriAttrs.indexOf(attrName) !== -1) {
if (allowedAttributeList.includes(attrName)) {
if (uriAttrs.has(attrName)) {
return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN));
}
@ -259,7 +261,7 @@
var el = elements[i];
var elName = el.nodeName.toLowerCase();
if (allowlistKeys.indexOf(elName) === -1) {
if (!allowlistKeys.includes(elName)) {
el.parentNode.removeChild(el);
return "continue";
}
@ -283,8 +285,6 @@
return createdDocument.body.innerHTML;
}
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
@ -294,13 +294,60 @@
* ------------------------------------------------------------------------
*/
var NAME = 'tooltip';
var VERSION = '5.0.0-alpha3';
var BaseComponent = /*#__PURE__*/function () {
function BaseComponent(element) {
if (!element) {
return;
}
this._element = element;
Data__default['default'].setData(element, this.constructor.DATA_KEY, this);
}
var _proto = BaseComponent.prototype;
_proto.dispose = function dispose() {
Data__default['default'].removeData(this._element, this.constructor.DATA_KEY);
this._element = null;
}
/** Static */
;
BaseComponent.getInstance = function getInstance(element) {
return Data__default['default'].getData(element, this.DATA_KEY);
};
_createClass(BaseComponent, null, [{
key: "VERSION",
get: function get() {
return VERSION;
}
}]);
return BaseComponent;
}();
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
function _defineProperties$1(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
function _createClass$1(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$1(Constructor.prototype, protoProps); if (staticProps) _defineProperties$1(Constructor, staticProps); return Constructor; }
function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
/**
* ------------------------------------------------------------------------
* Constants
* ------------------------------------------------------------------------
*/
var NAME = 'tooltip';
var DATA_KEY = 'bs.tooltip';
var EVENT_KEY = "." + DATA_KEY;
var CLASS_PREFIX = 'bs-tooltip';
var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
var DISALLOWED_ATTRIBUTES = ['sanitize', 'allowList', 'sanitizeFn'];
var DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn']);
var DefaultType = {
animation: 'boolean',
template: 'string',
@ -314,6 +361,7 @@
container: '(string|element|boolean)',
fallbackPlacement: '(string|array)',
boundary: '(string|element)',
customClass: '(string|function)',
sanitize: 'boolean',
sanitizeFn: '(null|function)',
allowList: 'object',
@ -322,13 +370,13 @@
var AttachmentMap = {
AUTO: 'auto',
TOP: 'top',
RIGHT: 'right',
RIGHT: isRTL ? 'left' : 'right',
BOTTOM: 'bottom',
LEFT: 'left'
LEFT: isRTL ? 'right' : 'left'
};
var Default = {
animation: true,
template: '<div class="tooltip" role="tooltip">' + '<div class="tooltip-arrow"></div>' + '<div class="tooltip-inner"></div></div>',
template: '<div class="tooltip" role="tooltip">' + '<div class="tooltip-arrow"></div>' + '<div class="tooltip-inner"></div>' + '</div>',
trigger: 'hover focus',
title: '',
delay: 0,
@ -339,6 +387,7 @@
container: false,
fallbackPlacement: 'flip',
boundary: 'scrollParent',
customClass: '',
sanitize: true,
sanitizeFn: null,
allowList: DefaultAllowlist,
@ -372,26 +421,30 @@
* ------------------------------------------------------------------------
*/
var Tooltip = /*#__PURE__*/function () {
var Tooltip = /*#__PURE__*/function (_BaseComponent) {
_inheritsLoose(Tooltip, _BaseComponent);
function Tooltip(element, config) {
var _this;
if (typeof Popper__default['default'] === 'undefined') {
throw new TypeError('Bootstrap\'s tooltips require Popper.js (https://popper.js.org)');
} // private
throw new TypeError('Bootstrap\'s tooltips require Popper (https://popper.js.org)');
}
_this = _BaseComponent.call(this, element) || this; // private
this._isEnabled = true;
this._timeout = 0;
this._hoverState = '';
this._activeTrigger = {};
this._popper = null; // Protected
_this._isEnabled = true;
_this._timeout = 0;
_this._hoverState = '';
_this._activeTrigger = {};
_this._popper = null; // Protected
this.element = element;
this.config = this._getConfig(config);
this.tip = null;
_this.config = _this._getConfig(config);
_this.tip = null;
this._setListeners();
_this._setListeners();
Data__default['default'].setData(element, this.constructor.DATA_KEY, this);
return _this;
} // Getters
@ -444,9 +497,8 @@
_proto.dispose = function dispose() {
clearTimeout(this._timeout);
Data__default['default'].removeData(this.element, this.constructor.DATA_KEY);
EventHandler__default['default'].off(this.element, this.constructor.EVENT_KEY);
EventHandler__default['default'].off(this.element.closest("." + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler);
EventHandler__default['default'].off(this._element, this.constructor.EVENT_KEY);
EventHandler__default['default'].off(this._element.closest("." + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler);
if (this.tip) {
this.tip.parentNode.removeChild(this.tip);
@ -462,22 +514,23 @@
}
this._popper = null;
this.element = null;
this.config = null;
this.tip = null;
_BaseComponent.prototype.dispose.call(this);
};
_proto.show = function show() {
var _this = this;
var _this2 = this;
if (this.element.style.display === 'none') {
if (this._element.style.display === 'none') {
throw new Error('Please use show on visible elements');
}
if (this.isWithContent() && this._isEnabled) {
var showEvent = EventHandler__default['default'].trigger(this.element, this.constructor.Event.SHOW);
var shadowRoot = findShadowRoot(this.element);
var isInTheDom = shadowRoot === null ? this.element.ownerDocument.documentElement.contains(this.element) : shadowRoot.contains(this.element);
var showEvent = EventHandler__default['default'].trigger(this._element, this.constructor.Event.SHOW);
var shadowRoot = findShadowRoot(this._element);
var isInTheDom = shadowRoot === null ? this._element.ownerDocument.documentElement.contains(this._element) : shadowRoot.contains(this._element);
if (showEvent.defaultPrevented || !isInTheDom) {
return;
@ -486,14 +539,16 @@
var tip = this.getTipElement();
var tipId = getUID(this.constructor.NAME);
tip.setAttribute('id', tipId);
this.element.setAttribute('aria-describedby', tipId);
this._element.setAttribute('aria-describedby', tipId);
this.setContent();
if (this.config.animation) {
tip.classList.add(CLASS_NAME_FADE);
}
var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;
var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this._element) : this.config.placement;
var attachment = this._getAttachment(placement);
@ -503,17 +558,25 @@
Data__default['default'].setData(tip, this.constructor.DATA_KEY, this);
if (!this.element.ownerDocument.documentElement.contains(this.tip)) {
if (!this._element.ownerDocument.documentElement.contains(this.tip)) {
container.appendChild(tip);
}
EventHandler__default['default'].trigger(this.element, this.constructor.Event.INSERTED);
this._popper = new Popper__default['default'](this.element, tip, this._getPopperConfig(attachment));
tip.classList.add(CLASS_NAME_SHOW); // If this is a touch-enabled device we add extra
EventHandler__default['default'].trigger(this._element, this.constructor.Event.INSERTED);
this._popper = new Popper__default['default'](this._element, tip, this._getPopperConfig(attachment));
tip.classList.add(CLASS_NAME_SHOW);
var customClass = typeof this.config.customClass === 'function' ? this.config.customClass() : this.config.customClass;
if (customClass) {
var _tip$classList;
(_tip$classList = tip.classList).add.apply(_tip$classList, customClass.split(' '));
} // If this is a touch-enabled device we add extra
// empty mouseover listeners to the body's immediate children;
// only needed because of broken event delegation on iOS
// https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
if ('ontouchstart' in document.documentElement) {
var _ref;
@ -523,16 +586,16 @@
}
var complete = function complete() {
if (_this.config.animation) {
_this._fixTransition();
if (_this2.config.animation) {
_this2._fixTransition();
}
var prevHoverState = _this._hoverState;
_this._hoverState = null;
EventHandler__default['default'].trigger(_this.element, _this.constructor.Event.SHOWN);
var prevHoverState = _this2._hoverState;
_this2._hoverState = null;
EventHandler__default['default'].trigger(_this2._element, _this2.constructor.Event.SHOWN);
if (prevHoverState === HOVER_STATE_OUT) {
_this._leave(null, _this);
_this2._leave(null, _this2);
}
};
@ -547,7 +610,7 @@
};
_proto.hide = function hide() {
var _this2 = this;
var _this3 = this;
if (!this._popper) {
return;
@ -556,20 +619,20 @@
var tip = this.getTipElement();
var complete = function complete() {
if (_this2._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {
if (_this3._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {
tip.parentNode.removeChild(tip);
}
_this2._cleanTipClass();
_this3._cleanTipClass();
_this2.element.removeAttribute('aria-describedby');
_this3._element.removeAttribute('aria-describedby');
EventHandler__default['default'].trigger(_this2.element, _this2.constructor.Event.HIDDEN);
EventHandler__default['default'].trigger(_this3._element, _this3.constructor.Event.HIDDEN);
_this2._popper.destroy();
_this3._popper.destroy();
};
var hideEvent = EventHandler__default['default'].trigger(this.element, this.constructor.Event.HIDE);
var hideEvent = EventHandler__default['default'].trigger(this._element, this.constructor.Event.HIDE);
if (hideEvent.defaultPrevented) {
return;
@ -664,18 +727,30 @@
};
_proto.getTitle = function getTitle() {
var title = this.element.getAttribute('data-original-title');
var title = this._element.getAttribute('data-bs-original-title');
if (!title) {
title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title;
title = typeof this.config.title === 'function' ? this.config.title.call(this._element) : this.config.title;
}
return title;
};
_proto.updateAttachment = function updateAttachment(attachment) {
if (attachment === 'right') {
return 'end';
}
if (attachment === 'left') {
return 'start';
}
return attachment;
} // Private
;
_proto._getPopperConfig = function _getPopperConfig(attachment) {
var _this3 = this;
var _this4 = this;
var defaultBsConfig = {
placement: attachment,
@ -693,28 +768,28 @@
},
onCreate: function onCreate(data) {
if (data.originalPlacement !== data.placement) {
_this3._handlePopperPlacementChange(data);
_this4._handlePopperPlacementChange(data);
}
},
onUpdate: function onUpdate(data) {
return _this3._handlePopperPlacementChange(data);
return _this4._handlePopperPlacementChange(data);
}
};
return _extends({}, defaultBsConfig, this.config.popperConfig);
};
_proto._addAttachmentClass = function _addAttachmentClass(attachment) {
this.getTipElement().classList.add(CLASS_PREFIX + "-" + attachment);
this.getTipElement().classList.add(CLASS_PREFIX + "-" + this.updateAttachment(attachment));
};
_proto._getOffset = function _getOffset() {
var _this4 = this;
var _this5 = this;
var offset = {};
if (typeof this.config.offset === 'function') {
offset.fn = function (data) {
data.offsets = _extends({}, data.offsets, _this4.config.offset(data.offsets, _this4.element) || {});
data.offsets = _extends({}, data.offsets, _this5.config.offset(data.offsets, _this5._element) || {});
return data;
};
} else {
@ -741,33 +816,33 @@
};
_proto._setListeners = function _setListeners() {
var _this5 = this;
var _this6 = this;
var triggers = this.config.trigger.split(' ');
triggers.forEach(function (trigger) {
if (trigger === 'click') {
EventHandler__default['default'].on(_this5.element, _this5.constructor.Event.CLICK, _this5.config.selector, function (event) {
return _this5.toggle(event);
EventHandler__default['default'].on(_this6._element, _this6.constructor.Event.CLICK, _this6.config.selector, function (event) {
return _this6.toggle(event);
});
} else if (trigger !== TRIGGER_MANUAL) {
var eventIn = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSEENTER : _this5.constructor.Event.FOCUSIN;
var eventOut = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSELEAVE : _this5.constructor.Event.FOCUSOUT;
EventHandler__default['default'].on(_this5.element, eventIn, _this5.config.selector, function (event) {
return _this5._enter(event);
var eventIn = trigger === TRIGGER_HOVER ? _this6.constructor.Event.MOUSEENTER : _this6.constructor.Event.FOCUSIN;
var eventOut = trigger === TRIGGER_HOVER ? _this6.constructor.Event.MOUSELEAVE : _this6.constructor.Event.FOCUSOUT;
EventHandler__default['default'].on(_this6._element, eventIn, _this6.config.selector, function (event) {
return _this6._enter(event);
});
EventHandler__default['default'].on(_this5.element, eventOut, _this5.config.selector, function (event) {
return _this5._leave(event);
EventHandler__default['default'].on(_this6._element, eventOut, _this6.config.selector, function (event) {
return _this6._leave(event);
});
}
});
this._hideModalHandler = function () {
if (_this5.element) {
_this5.hide();
if (_this6._element) {
_this6.hide();
}
};
EventHandler__default['default'].on(this.element.closest("." + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler);
EventHandler__default['default'].on(this._element.closest("." + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler);
if (this.config.selector) {
this.config = _extends({}, this.config, {
@ -780,11 +855,18 @@
};
_proto._fixTitle = function _fixTitle() {
var titleType = typeof this.element.getAttribute('data-original-title');
var title = this._element.getAttribute('title');
if (this.element.getAttribute('title') || titleType !== 'string') {
this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');
this.element.setAttribute('title', '');
var originalTitleType = typeof this._element.getAttribute('data-bs-original-title');
if (title || originalTitleType !== 'string') {
this._element.setAttribute('data-bs-original-title', title || '');
if (title && !this._element.getAttribute('aria-label') && !this._element.textContent) {
this._element.setAttribute('aria-label', title);
}
this._element.setAttribute('title', '');
}
};
@ -864,9 +946,9 @@
};
_proto._getConfig = function _getConfig(config) {
var dataAttributes = Manipulator__default['default'].getDataAttributes(this.element);
var dataAttributes = Manipulator__default['default'].getDataAttributes(this._element);
Object.keys(dataAttributes).forEach(function (dataAttr) {
if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {
if (DISALLOWED_ATTRIBUTES.has(dataAttr)) {
delete dataAttributes[dataAttr];
}
});
@ -976,16 +1058,7 @@
});
};
Tooltip.getInstance = function getInstance(element) {
return Data__default['default'].getData(element, DATA_KEY);
};
_createClass(Tooltip, null, [{
key: "VERSION",
get: function get() {
return VERSION;
}
}, {
_createClass$1(Tooltip, null, [{
key: "Default",
get: function get() {
return Default;
@ -1018,7 +1091,7 @@
}]);
return Tooltip;
}();
}(BaseComponent);
/**
* ------------------------------------------------------------------------
* jQuery

File diff suppressed because one or more lines are too long

View file

@ -15,6 +15,7 @@ import {
} from './util/index'
import Data from './dom/data'
import EventHandler from './dom/event-handler'
import BaseComponent from './base-component'
/**
* ------------------------------------------------------------------------
@ -23,7 +24,6 @@ import EventHandler from './dom/event-handler'
*/
const NAME = 'alert'
const VERSION = '5.0.0-alpha3'
const DATA_KEY = 'bs.alert'
const EVENT_KEY = `.${DATA_KEY}`
const DATA_API_KEY = '.data-api'
@ -44,19 +44,11 @@ const CLASSNAME_SHOW = 'show'
* ------------------------------------------------------------------------
*/
class Alert {
constructor(element) {
this._element = element
if (this._element) {
Data.setData(element, DATA_KEY, this)
}
}
class Alert extends BaseComponent {
// Getters
static get VERSION() {
return VERSION
static get DATA_KEY() {
return DATA_KEY
}
// Public
@ -72,11 +64,6 @@ class Alert {
this._removeElement(rootElement)
}
dispose() {
Data.removeData(this._element, DATA_KEY)
this._element = null
}
// Private
_getRootElement(element) {
@ -134,10 +121,6 @@ class Alert {
alertInstance.close(this)
}
}
static getInstance(element) {
return Data.getData(element, DATA_KEY)
}
}
/**

44
js/src/base-component.js Normal file
View file

@ -0,0 +1,44 @@
/**
* --------------------------------------------------------------------------
* Bootstrap (v5.0.0-alpha3): base-component.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* --------------------------------------------------------------------------
*/
import Data from './dom/data'
/**
* ------------------------------------------------------------------------
* Constants
* ------------------------------------------------------------------------
*/
const VERSION = '5.0.0-alpha3'
class BaseComponent {
constructor(element) {
if (!element) {
return
}
this._element = element
Data.setData(element, this.constructor.DATA_KEY, this)
}
dispose() {
Data.removeData(this._element, this.constructor.DATA_KEY)
this._element = null
}
/** Static */
static getInstance(element) {
return Data.getData(element, this.DATA_KEY)
}
static get VERSION() {
return VERSION
}
}
export default BaseComponent

View file

@ -8,6 +8,7 @@
import { getjQuery, onDOMContentLoaded } from './util/index'
import Data from './dom/data'
import EventHandler from './dom/event-handler'
import BaseComponent from './base-component'
/**
* ------------------------------------------------------------------------
@ -16,7 +17,6 @@ import EventHandler from './dom/event-handler'
*/
const NAME = 'button'
const VERSION = '5.0.0-alpha3'
const DATA_KEY = 'bs.button'
const EVENT_KEY = `.${DATA_KEY}`
const DATA_API_KEY = '.data-api'
@ -33,16 +33,11 @@ const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`
* ------------------------------------------------------------------------
*/
class Button {
constructor(element) {
this._element = element
Data.setData(element, DATA_KEY, this)
}
class Button extends BaseComponent {
// Getters
static get VERSION() {
return VERSION
static get DATA_KEY() {
return DATA_KEY
}
// Public
@ -52,11 +47,6 @@ class Button {
this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE))
}
dispose() {
Data.removeData(this._element, DATA_KEY)
this._element = null
}
// Static
static jQueryInterface(config) {
@ -72,10 +62,6 @@ class Button {
}
})
}
static getInstance(element) {
return Data.getData(element, DATA_KEY)
}
}
/**

View file

@ -21,6 +21,7 @@ import Data from './dom/data'
import EventHandler from './dom/event-handler'
import Manipulator from './dom/manipulator'
import SelectorEngine from './dom/selector-engine'
import BaseComponent from './base-component'
/**
* ------------------------------------------------------------------------
@ -29,7 +30,6 @@ import SelectorEngine from './dom/selector-engine'
*/
const NAME = 'carousel'
const VERSION = '5.0.0-alpha3'
const DATA_KEY = 'bs.carousel'
const EVENT_KEY = `.${DATA_KEY}`
const DATA_API_KEY = '.data-api'
@ -79,8 +79,8 @@ const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`
const CLASS_NAME_CAROUSEL = 'carousel'
const CLASS_NAME_ACTIVE = 'active'
const CLASS_NAME_SLIDE = 'slide'
const CLASS_NAME_RIGHT = 'carousel-item-right'
const CLASS_NAME_LEFT = 'carousel-item-left'
const CLASS_NAME_END = 'carousel-item-end'
const CLASS_NAME_START = 'carousel-item-start'
const CLASS_NAME_NEXT = 'carousel-item-next'
const CLASS_NAME_PREV = 'carousel-item-prev'
const CLASS_NAME_POINTER_EVENT = 'pointer-event'
@ -104,8 +104,10 @@ const PointerType = {
* Class Definition
* ------------------------------------------------------------------------
*/
class Carousel {
class Carousel extends BaseComponent {
constructor(element, config) {
super(element)
this._items = null
this._interval = null
this._activeElement = null
@ -116,25 +118,23 @@ class Carousel {
this.touchDeltaX = 0
this._config = this._getConfig(config)
this._element = element
this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element)
this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0
this._pointerEvent = Boolean(window.PointerEvent)
this._addEventListeners()
Data.setData(element, DATA_KEY, this)
}
// Getters
static get VERSION() {
return VERSION
}
static get Default() {
return Default
}
static get DATA_KEY() {
return DATA_KEY
}
// Public
next() {
@ -218,12 +218,11 @@ class Carousel {
}
dispose() {
super.dispose()
EventHandler.off(this._element, EVENT_KEY)
Data.removeData(this._element, DATA_KEY)
this._items = null
this._config = null
this._element = null
this._interval = null
this._isPaused = null
this._isSliding = null
@ -398,6 +397,7 @@ class Carousel {
_setActiveIndicatorElement(element) {
if (this._indicatorsElement) {
const indicators = SelectorEngine.find(SELECTOR_ACTIVE, this._indicatorsElement)
for (let i = 0; i < indicators.length; i++) {
indicators[i].classList.remove(CLASS_NAME_ACTIVE)
}
@ -419,7 +419,7 @@ class Carousel {
return
}
const elementInterval = parseInt(element.getAttribute('data-bs-interval'), 10)
const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10)
if (elementInterval) {
this._config.defaultInterval = this._config.defaultInterval || this._config.interval
@ -432,8 +432,7 @@ class Carousel {
_slide(direction, element) {
const activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)
const activeElementIndex = this._getItemIndex(activeElement)
const nextElement = element || (activeElement &&
this._getItemByDirection(direction, activeElement))
const nextElement = element || (activeElement && this._getItemByDirection(direction, activeElement))
const nextElementIndex = this._getItemIndex(nextElement)
const isCycling = Boolean(this._interval)
@ -443,11 +442,11 @@ class Carousel {
let eventDirectionName
if (direction === DIRECTION_NEXT) {
directionalClassName = CLASS_NAME_LEFT
directionalClassName = CLASS_NAME_START
orderClassName = CLASS_NAME_NEXT
eventDirectionName = DIRECTION_LEFT
} else {
directionalClassName = CLASS_NAME_RIGHT
directionalClassName = CLASS_NAME_END
orderClassName = CLASS_NAME_PREV
eventDirectionName = DIRECTION_RIGHT
}
@ -590,10 +589,6 @@ class Carousel {
event.preventDefault()
}
static getInstance(element) {
return Data.getData(element, DATA_KEY)
}
}
/**

View file

@ -21,6 +21,7 @@ import Data from './dom/data'
import EventHandler from './dom/event-handler'
import Manipulator from './dom/manipulator'
import SelectorEngine from './dom/selector-engine'
import BaseComponent from './base-component'
/**
* ------------------------------------------------------------------------
@ -29,7 +30,6 @@ import SelectorEngine from './dom/selector-engine'
*/
const NAME = 'collapse'
const VERSION = '5.0.0-alpha3'
const DATA_KEY = 'bs.collapse'
const EVENT_KEY = `.${DATA_KEY}`
const DATA_API_KEY = '.data-api'
@ -67,10 +67,11 @@ const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="collapse"]'
* ------------------------------------------------------------------------
*/
class Collapse {
class Collapse extends BaseComponent {
constructor(element, config) {
super(element)
this._isTransitioning = false
this._element = element
this._config = this._getConfig(config)
this._triggerArray = SelectorEngine.find(
`${SELECTOR_DATA_TOGGLE}[href="#${element.id}"],` +
@ -100,20 +101,18 @@ class Collapse {
if (this._config.toggle) {
this.toggle()
}
Data.setData(element, DATA_KEY, this)
}
// Getters
static get VERSION() {
return VERSION
}
static get Default() {
return Default
}
static get DATA_KEY() {
return DATA_KEY
}
// Public
toggle() {
@ -125,8 +124,7 @@ class Collapse {
}
show() {
if (this._isTransitioning ||
this._element.classList.contains(CLASS_NAME_SHOW)) {
if (this._isTransitioning || this._element.classList.contains(CLASS_NAME_SHOW)) {
return
}
@ -150,8 +148,8 @@ class Collapse {
const container = SelectorEngine.findOne(this._selector)
if (actives) {
const tempActiveData = actives.filter(elem => container !== elem)
activesData = tempActiveData[0] ? Data.getData(tempActiveData[0], DATA_KEY) : null
const tempActiveData = actives.find(elem => container !== elem)
activesData = tempActiveData ? Data.getData(tempActiveData, DATA_KEY) : null
if (activesData && activesData._isTransitioning) {
return
@ -213,8 +211,7 @@ class Collapse {
}
hide() {
if (this._isTransitioning ||
!this._element.classList.contains(CLASS_NAME_SHOW)) {
if (this._isTransitioning || !this._element.classList.contains(CLASS_NAME_SHOW)) {
return
}
@ -266,11 +263,9 @@ class Collapse {
}
dispose() {
Data.removeData(this._element, DATA_KEY)
super.dispose()
this._config = null
this._parent = null
this._element = null
this._triggerArray = null
this._isTransitioning = null
}
@ -368,10 +363,6 @@ class Collapse {
Collapse.collapseInterface(this, config)
})
}
static getInstance(element) {
return Data.getData(element, DATA_KEY)
}
}
/**

View file

@ -22,7 +22,7 @@ const customEvents = {
mouseenter: 'mouseover',
mouseleave: 'mouseout'
}
const nativeEvents = [
const nativeEvents = new Set([
'click',
'dblclick',
'mouseup',
@ -69,7 +69,7 @@ const nativeEvents = [
'error',
'abort',
'scroll'
]
])
/**
* ------------------------------------------------------------------------
@ -151,7 +151,7 @@ function normalizeParams(originalTypeEvent, handler, delegationFn) {
typeEvent = custom
}
const isNative = nativeEvents.indexOf(typeEvent) > -1
const isNative = nativeEvents.has(typeEvent)
if (!isNative) {
typeEvent = originalTypeEvent
@ -210,7 +210,7 @@ function removeNamespacedHandlers(element, events, typeEvent, namespace) {
const storeElementEvent = events[typeEvent] || {}
Object.keys(storeElementEvent).forEach(handlerKey => {
if (handlerKey.indexOf(namespace) > -1) {
if (handlerKey.includes(namespace)) {
const event = storeElementEvent[handlerKey]
removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)
@ -235,7 +235,7 @@ const EventHandler = {
const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)
const inNamespace = typeEvent !== originalTypeEvent
const events = getEvent(element)
const isNamespace = originalTypeEvent.charAt(0) === '.'
const isNamespace = originalTypeEvent.startsWith('.')
if (typeof originalHandler !== 'undefined') {
// Simplest case: handler is passed, remove that listener ONLY.
@ -257,7 +257,7 @@ const EventHandler = {
Object.keys(storeElementEvent).forEach(keyHandlers => {
const handlerKey = keyHandlers.replace(stripUidRegex, '')
if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {
if (!inNamespace || originalTypeEvent.includes(handlerKey)) {
const event = storeElementEvent[keyHandlers]
removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)
@ -273,7 +273,7 @@ const EventHandler = {
const $ = getjQuery()
const typeEvent = event.replace(stripNameRegex, '')
const inNamespace = event !== typeEvent
const isNative = nativeEvents.indexOf(typeEvent) > -1
const isNative = nativeEvents.has(typeEvent)
let jQueryEvent
let bubbles = true

View file

@ -31,11 +31,11 @@ function normalizeDataKey(key) {
const Manipulator = {
setDataAttribute(element, key, value) {
element.setAttribute(`data-${normalizeDataKey(key)}`, value)
element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value)
},
removeDataAttribute(element, key) {
element.removeAttribute(`data-${normalizeDataKey(key)}`)
element.removeAttribute(`data-bs-${normalizeDataKey(key)}`)
},
getDataAttributes(element) {
@ -57,7 +57,7 @@ const Manipulator = {
},
getDataAttribute(element, key) {
return normalizeData(element.getAttribute(`data-${normalizeDataKey(key)}`))
return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`))
},
offset(element) {

View file

@ -11,6 +11,7 @@ import {
getElementFromSelector,
isElement,
isVisible,
isRTL,
noop,
typeCheckConfig
} from './util/index'
@ -19,6 +20,7 @@ import EventHandler from './dom/event-handler'
import Manipulator from './dom/manipulator'
import Popper from 'popper.js'
import SelectorEngine from './dom/selector-engine'
import BaseComponent from './base-component'
/**
* ------------------------------------------------------------------------
@ -27,7 +29,6 @@ import SelectorEngine from './dom/selector-engine'
*/
const NAME = 'dropdown'
const VERSION = '5.0.0-alpha3'
const DATA_KEY = 'bs.dropdown'
const EVENT_KEY = `.${DATA_KEY}`
const DATA_API_KEY = '.data-api'
@ -53,9 +54,9 @@ const EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`
const CLASS_NAME_DISABLED = 'disabled'
const CLASS_NAME_SHOW = 'show'
const CLASS_NAME_DROPUP = 'dropup'
const CLASS_NAME_DROPRIGHT = 'dropright'
const CLASS_NAME_DROPLEFT = 'dropleft'
const CLASS_NAME_MENURIGHT = 'dropdown-menu-right'
const CLASS_NAME_DROPEND = 'dropend'
const CLASS_NAME_DROPSTART = 'dropstart'
const CLASS_NAME_MENUEND = 'dropdown-menu-end'
const CLASS_NAME_NAVBAR = 'navbar'
const CLASS_NAME_POSITION_STATIC = 'position-static'
@ -65,12 +66,12 @@ const SELECTOR_MENU = '.dropdown-menu'
const SELECTOR_NAVBAR_NAV = '.navbar-nav'
const SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'
const PLACEMENT_TOP = 'top-start'
const PLACEMENT_TOPEND = 'top-end'
const PLACEMENT_BOTTOM = 'bottom-start'
const PLACEMENT_BOTTOMEND = 'bottom-end'
const PLACEMENT_RIGHT = 'right-start'
const PLACEMENT_LEFT = 'left-start'
const PLACEMENT_TOP = isRTL ? 'top-end' : 'top-start'
const PLACEMENT_TOPEND = isRTL ? 'top-start' : 'top-end'
const PLACEMENT_BOTTOM = isRTL ? 'bottom-end' : 'bottom-start'
const PLACEMENT_BOTTOMEND = isRTL ? 'bottom-start' : 'bottom-end'
const PLACEMENT_RIGHT = isRTL ? 'left-start' : 'right-start'
const PLACEMENT_LEFT = isRTL ? 'right-start' : 'left-start'
const Default = {
offset: 0,
@ -96,24 +97,20 @@ const DefaultType = {
* ------------------------------------------------------------------------
*/
class Dropdown {
class Dropdown extends BaseComponent {
constructor(element, config) {
this._element = element
super(element)
this._popper = null
this._config = this._getConfig(config)
this._menu = this._getMenuElement()
this._inNavbar = this._detectNavbar()
this._addEventListeners()
Data.setData(element, DATA_KEY, this)
}
// Getters
static get VERSION() {
return VERSION
}
static get Default() {
return Default
}
@ -122,6 +119,10 @@ class Dropdown {
return DefaultType
}
static get DATA_KEY() {
return DATA_KEY
}
// Public
toggle() {
@ -156,10 +157,10 @@ class Dropdown {
return
}
// Disable totally Popper.js for Dropdown in Navbar
// Totally disable Popper for Dropdowns in Navbar
if (!this._inNavbar) {
if (typeof Popper === 'undefined') {
throw new TypeError('Bootstrap\'s dropdowns require Popper.js (https://popper.js.org)')
throw new TypeError('Bootstrap\'s dropdowns require Popper (https://popper.js.org)')
}
let referenceElement = this._element
@ -229,9 +230,8 @@ class Dropdown {
}
dispose() {
Data.removeData(this._element, DATA_KEY)
super.dispose()
EventHandler.off(this._element, EVENT_KEY)
this._element = null
this._menu = null
if (this._popper) {
this._popper.destroy()
@ -278,14 +278,14 @@ class Dropdown {
// Handle dropup
if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {
placement = this._menu.classList.contains(CLASS_NAME_MENURIGHT) ?
placement = this._menu.classList.contains(CLASS_NAME_MENUEND) ?
PLACEMENT_TOPEND :
PLACEMENT_TOP
} else if (parentDropdown.classList.contains(CLASS_NAME_DROPRIGHT)) {
} else if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {
placement = PLACEMENT_RIGHT
} else if (parentDropdown.classList.contains(CLASS_NAME_DROPLEFT)) {
} else if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {
placement = PLACEMENT_LEFT
} else if (this._menu.classList.contains(CLASS_NAME_MENURIGHT)) {
} else if (this._menu.classList.contains(CLASS_NAME_MENUEND)) {
placement = PLACEMENT_BOTTOMEND
}
@ -329,7 +329,7 @@ class Dropdown {
}
}
// Disable Popper.js if we have a static display
// Disable Popper if we have a static display
if (this._config.display === 'static') {
popperConfig.modifiers.applyStyle = {
enabled: false
@ -368,8 +368,7 @@ class Dropdown {
}
static clearMenus(event) {
if (event && (event.button === RIGHT_MOUSE_BUTTON ||
(event.type === 'keyup' && event.key !== TAB_KEY))) {
if (event && (event.button === RIGHT_MOUSE_BUTTON || (event.type === 'keyup' && event.key !== TAB_KEY))) {
return
}
@ -476,11 +475,13 @@ class Dropdown {
let index = items.indexOf(event.target)
if (event.key === ARROW_UP_KEY && index > 0) { // Up
// Up
if (event.key === ARROW_UP_KEY && index > 0) {
index--
}
if (event.key === ARROW_DOWN_KEY && index < items.length - 1) { // Down
// Down
if (event.key === ARROW_DOWN_KEY && index < items.length - 1) {
index++
}
@ -489,10 +490,6 @@ class Dropdown {
items[index].focus()
}
static getInstance(element) {
return Data.getData(element, DATA_KEY)
}
}
/**

View file

@ -13,6 +13,7 @@ import {
getElementFromSelector,
getTransitionDurationFromElement,
isVisible,
isRTL,
reflow,
typeCheckConfig
} from './util/index'
@ -20,6 +21,7 @@ import Data from './dom/data'
import EventHandler from './dom/event-handler'
import Manipulator from './dom/manipulator'
import SelectorEngine from './dom/selector-engine'
import BaseComponent from './base-component'
/**
* ------------------------------------------------------------------------
@ -28,7 +30,6 @@ import SelectorEngine from './dom/selector-engine'
*/
const NAME = 'modal'
const VERSION = '5.0.0-alpha3'
const DATA_KEY = 'bs.modal'
const EVENT_KEY = `.${DATA_KEY}`
const DATA_API_KEY = '.data-api'
@ -37,15 +38,13 @@ const ESCAPE_KEY = 'Escape'
const Default = {
backdrop: true,
keyboard: true,
focus: true,
show: true
focus: true
}
const DefaultType = {
backdrop: '(boolean|string)',
keyboard: 'boolean',
focus: 'boolean',
show: 'boolean'
focus: 'boolean'
}
const EVENT_HIDE = `hide${EVENT_KEY}`
@ -81,10 +80,11 @@ const SELECTOR_STICKY_CONTENT = '.sticky-top'
* ------------------------------------------------------------------------
*/
class Modal {
class Modal extends BaseComponent {
constructor(element, config) {
super(element)
this._config = this._getConfig(config)
this._element = element
this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, element)
this._backdrop = null
this._isShown = false
@ -92,19 +92,18 @@ class Modal {
this._ignoreBackdropClick = false
this._isTransitioning = false
this._scrollbarWidth = 0
Data.setData(element, DATA_KEY, this)
}
// Getters
static get VERSION() {
return VERSION
}
static get Default() {
return Default
}
static get DATA_KEY() {
return DATA_KEY
}
// Public
toggle(relatedTarget) {
@ -138,11 +137,7 @@ class Modal {
this._setEscapeEvent()
this._setResizeEvent()
EventHandler.on(this._element,
EVENT_CLICK_DISMISS,
SELECTOR_DATA_DISMISS,
event => this.hide(event)
)
EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, event => this.hide(event))
EventHandler.on(this._dialog, EVENT_MOUSEDOWN_DISMISS, () => {
EventHandler.one(this._element, EVENT_MOUSEUP_DISMISS, event => {
@ -201,6 +196,8 @@ class Modal {
[window, this._element, this._dialog]
.forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))
super.dispose()
/**
* `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`
* Do not move `document` in `htmlElements` array
@ -208,10 +205,7 @@ class Modal {
*/
EventHandler.off(document, EVENT_FOCUSIN)
Data.removeData(this._element, DATA_KEY)
this._config = null
this._element = null
this._dialog = null
this._backdrop = null
this._isShown = null
@ -240,8 +234,7 @@ class Modal {
const transition = this._element.classList.contains(CLASS_NAME_FADE)
const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog)
if (!this._element.parentNode ||
this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
// Don't move modal's DOM position
document.body.appendChild(this._element)
}
@ -365,7 +358,11 @@ class Modal {
return
}
this._triggerBackdropTransition()
if (this._config.backdrop === 'static') {
this._triggerBackdropTransition()
} else {
this.hide()
}
})
if (animate) {
@ -404,35 +401,31 @@ class Modal {
}
_triggerBackdropTransition() {
if (this._config.backdrop === 'static') {
const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED)
if (hideEvent.defaultPrevented) {
return
}
const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight
if (!isModalOverflowing) {
this._element.style.overflowY = 'hidden'
}
this._element.classList.add(CLASS_NAME_STATIC)
const modalTransitionDuration = getTransitionDurationFromElement(this._dialog)
EventHandler.off(this._element, TRANSITION_END)
EventHandler.one(this._element, TRANSITION_END, () => {
this._element.classList.remove(CLASS_NAME_STATIC)
if (!isModalOverflowing) {
EventHandler.one(this._element, TRANSITION_END, () => {
this._element.style.overflowY = ''
})
emulateTransitionEnd(this._element, modalTransitionDuration)
}
})
emulateTransitionEnd(this._element, modalTransitionDuration)
this._element.focus()
} else {
this.hide()
const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED)
if (hideEvent.defaultPrevented) {
return
}
const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight
if (!isModalOverflowing) {
this._element.style.overflowY = 'hidden'
}
this._element.classList.add(CLASS_NAME_STATIC)
const modalTransitionDuration = getTransitionDurationFromElement(this._dialog)
EventHandler.off(this._element, TRANSITION_END)
EventHandler.one(this._element, TRANSITION_END, () => {
this._element.classList.remove(CLASS_NAME_STATIC)
if (!isModalOverflowing) {
EventHandler.one(this._element, TRANSITION_END, () => {
this._element.style.overflowY = ''
})
emulateTransitionEnd(this._element, modalTransitionDuration)
}
})
emulateTransitionEnd(this._element, modalTransitionDuration)
this._element.focus()
}
// ----------------------------------------------------------------------
@ -443,11 +436,11 @@ class Modal {
const isModalOverflowing =
this._element.scrollHeight > document.documentElement.clientHeight
if (!this._isBodyOverflowing && isModalOverflowing) {
if ((!this._isBodyOverflowing && isModalOverflowing && !isRTL) || (this._isBodyOverflowing && !isModalOverflowing && isRTL)) {
this._element.style.paddingLeft = `${this._scrollbarWidth}px`
}
if (this._isBodyOverflowing && !isModalOverflowing) {
if ((this._isBodyOverflowing && !isModalOverflowing && !isRTL) || (!this._isBodyOverflowing && isModalOverflowing && isRTL)) {
this._element.style.paddingRight = `${this._scrollbarWidth}px`
}
}
@ -473,8 +466,8 @@ class Modal {
.forEach(element => {
const actualPadding = element.style.paddingRight
const calculatedPadding = window.getComputedStyle(element)['padding-right']
Manipulator.setDataAttribute(element, 'bs-padding-right', actualPadding)
element.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`
Manipulator.setDataAttribute(element, 'padding-right', actualPadding)
element.style.paddingRight = `${Number.parseFloat(calculatedPadding) + this._scrollbarWidth}px`
})
// Adjust sticky content margin
@ -482,16 +475,16 @@ class Modal {
.forEach(element => {
const actualMargin = element.style.marginRight
const calculatedMargin = window.getComputedStyle(element)['margin-right']
Manipulator.setDataAttribute(element, 'bs-margin-right', actualMargin)
element.style.marginRight = `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`
Manipulator.setDataAttribute(element, 'margin-right', actualMargin)
element.style.marginRight = `${Number.parseFloat(calculatedMargin) - this._scrollbarWidth}px`
})
// Adjust body padding
const actualPadding = document.body.style.paddingRight
const calculatedPadding = window.getComputedStyle(document.body)['padding-right']
Manipulator.setDataAttribute(document.body, 'bs-padding-right', actualPadding)
document.body.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`
Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding)
document.body.style.paddingRight = `${Number.parseFloat(calculatedPadding) + this._scrollbarWidth}px`
}
document.body.classList.add(CLASS_NAME_OPEN)
@ -501,9 +494,9 @@ class Modal {
// Restore fixed content padding
SelectorEngine.find(SELECTOR_FIXED_CONTENT)
.forEach(element => {
const padding = Manipulator.getDataAttribute(element, 'bs-padding-right')
const padding = Manipulator.getDataAttribute(element, 'padding-right')
if (typeof padding !== 'undefined') {
Manipulator.removeDataAttribute(element, 'bs-padding-right')
Manipulator.removeDataAttribute(element, 'padding-right')
element.style.paddingRight = padding
}
})
@ -511,19 +504,19 @@ class Modal {
// Restore sticky content and navbar-toggler margin
SelectorEngine.find(`${SELECTOR_STICKY_CONTENT}`)
.forEach(element => {
const margin = Manipulator.getDataAttribute(element, 'bs-margin-right')
const margin = Manipulator.getDataAttribute(element, 'margin-right')
if (typeof margin !== 'undefined') {
Manipulator.removeDataAttribute(element, 'bs-margin-right')
Manipulator.removeDataAttribute(element, 'margin-right')
element.style.marginRight = margin
}
})
// Restore body padding
const padding = Manipulator.getDataAttribute(document.body, 'bs-padding-right')
const padding = Manipulator.getDataAttribute(document.body, 'padding-right')
if (typeof padding === 'undefined') {
document.body.style.paddingRight = ''
} else {
Manipulator.removeDataAttribute(document.body, 'bs-padding-right')
Manipulator.removeDataAttribute(document.body, 'padding-right')
document.body.style.paddingRight = padding
}
}
@ -558,15 +551,9 @@ class Modal {
}
data[config](relatedTarget)
} else if (_config.show) {
data.show(relatedTarget)
}
})
}
static getInstance(element) {
return Data.getData(element, DATA_KEY)
}
}
/**

View file

@ -17,7 +17,6 @@ import Tooltip from './tooltip'
*/
const NAME = 'popover'
const VERSION = '5.0.0-alpha3'
const DATA_KEY = 'bs.popover'
const EVENT_KEY = `.${DATA_KEY}`
const CLASS_PREFIX = 'bs-popover'
@ -30,8 +29,9 @@ const Default = {
content: '',
template: '<div class="popover" role="tooltip">' +
'<div class="popover-arrow"></div>' +
'<h3 class="popover-header"></h3>' +
'<div class="popover-body"></div></div>'
'<h3 class="popover-header"></h3>' +
'<div class="popover-body"></div>' +
'</div>'
}
const DefaultType = {
@ -67,10 +67,6 @@ const SELECTOR_CONTENT = '.popover-body'
class Popover extends Tooltip {
// Getters
static get VERSION() {
return VERSION
}
static get Default() {
return Default
}
@ -108,7 +104,7 @@ class Popover extends Tooltip {
this.setElementContent(SelectorEngine.findOne(SELECTOR_TITLE, tip), this.getTitle())
let content = this._getContent()
if (typeof content === 'function') {
content = content.call(this.element)
content = content.call(this._element)
}
this.setElementContent(SelectorEngine.findOne(SELECTOR_CONTENT, tip), content)
@ -119,12 +115,11 @@ class Popover extends Tooltip {
// Private
_addAttachmentClass(attachment) {
this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)
this.getTipElement().classList.add(`${CLASS_PREFIX}-${this.updateAttachment(attachment)}`)
}
_getContent() {
return this.element.getAttribute('data-bs-content') ||
this.config.content
return this._element.getAttribute('data-bs-content') || this.config.content
}
_cleanTipClass() {
@ -161,10 +156,6 @@ class Popover extends Tooltip {
}
})
}
static getInstance(element) {
return Data.getData(element, DATA_KEY)
}
}
/**

View file

@ -17,6 +17,7 @@ import Data from './dom/data'
import EventHandler from './dom/event-handler'
import Manipulator from './dom/manipulator'
import SelectorEngine from './dom/selector-engine'
import BaseComponent from './base-component'
/**
* ------------------------------------------------------------------------
@ -25,7 +26,6 @@ import SelectorEngine from './dom/selector-engine'
*/
const NAME = 'scrollspy'
const VERSION = '5.0.0-alpha3'
const DATA_KEY = 'bs.scrollspy'
const EVENT_KEY = `.${DATA_KEY}`
const DATA_API_KEY = '.data-api'
@ -66,9 +66,9 @@ const METHOD_POSITION = 'position'
* ------------------------------------------------------------------------
*/
class ScrollSpy {
class ScrollSpy extends BaseComponent {
constructor(element, config) {
this._element = element
super(element)
this._scrollElement = element.tagName === 'BODY' ? window : element
this._config = this._getConfig(config)
this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS}, ${this._config.target} ${SELECTOR_LIST_ITEMS}, ${this._config.target} .${CLASS_NAME_DROPDOWN_ITEM}`
@ -81,20 +81,18 @@ class ScrollSpy {
this.refresh()
this._process()
Data.setData(element, DATA_KEY, this)
}
// Getters
static get VERSION() {
return VERSION
}
static get Default() {
return Default
}
static get DATA_KEY() {
return DATA_KEY
}
// Public
refresh() {
@ -141,10 +139,9 @@ class ScrollSpy {
}
dispose() {
Data.removeData(this._element, DATA_KEY)
super.dispose()
EventHandler.off(this._scrollElement, EVENT_KEY)
this._element = null
this._scrollElement = null
this._config = null
this._selector = null
@ -199,9 +196,7 @@ class ScrollSpy {
_process() {
const scrollTop = this._getScrollTop() + this._config.offset
const scrollHeight = this._getScrollHeight()
const maxScroll = this._config.offset +
scrollHeight -
this._getOffsetHeight()
const maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight()
if (this._scrollHeight !== scrollHeight) {
this.refresh()
@ -226,8 +221,7 @@ class ScrollSpy {
for (let i = this._offsets.length; i--;) {
const isActiveTarget = this._activeTarget !== this._targets[i] &&
scrollTop >= this._offsets[i] &&
(typeof this._offsets[i + 1] === 'undefined' ||
scrollTop < this._offsets[i + 1])
(typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1])
if (isActiveTarget) {
this._activate(this._targets[i])
@ -301,10 +295,6 @@ class ScrollSpy {
}
})
}
static getInstance(element) {
return Data.getData(element, DATA_KEY)
}
}
/**

Some files were not shown because too many files have changed in this diff Show more