Compare commits

..

466 commits

Author SHA1 Message Date
XhmikosR
1d8bc95c92
Update zip-examples.js (#32799)
Remove previously created zip files before creating a new one
2021-01-14 13:28:39 +02:00
dependabot[bot]
63880e0e8c
Bump karma from 5.2.3 to 6.0.0 (#32797)
Bumps [karma](https://github.com/karma-runner/karma) from 5.2.3 to 6.0.0.
- [Release notes](https://github.com/karma-runner/karma/releases)
- [Changelog](https://github.com/karma-runner/karma/blob/master/CHANGELOG.md)
- [Commits](https://github.com/karma-runner/karma/compare/v5.2.3...v6.0.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2021-01-14 13:00:17 +02:00
XhmikosR
8c1444f00a
CI: change Node.js to 14 (#32796)
This is so that it's consistent with the JS workflow thus the cache should match.
2021-01-14 12:51:14 +02:00
Patrick H. Lauke
949fa30152
Remove role="button" from CTA links in carousel examples (#32788)
They're links, acting as links. Just because they're styled as buttons visually doesn't mean they need/get `role="button"`
2021-01-14 01:54:25 +02:00
voltaek
f7d3870567
Docs v5: Fix Sass rounding precision and state Sass implementation (#32512)
* Add Sass section to Getting Started > Build Tools, mention Sass implementation used, mention current precision of 10 due to Dart Sass, and mention recommended minimum precision (value of 6 used in BS v4). Remove outdated Sass precision from Customize > Sass docs page.

* Remove more mentions of deprecated Sass implementations. Add links to Sass compiler mentions so we can keep all pertinent Sass compiler information in just one location instead of spread through the docs, which makes it hard to find the details and/or keep them up-to-date.

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2021-01-14 00:41:42 +02:00
XhmikosR
157a27d43d
build-plugins: build Base component too (#32313) 2021-01-14 00:35:57 +02:00
dependabot[bot]
1b46601ce8
Bump eslint-plugin-unicorn from 25.0.1 to 26.0.1 (#32784)
* Bump eslint-plugin-unicorn from 25.0.1 to 26.0.1

Bumps [eslint-plugin-unicorn](https://github.com/sindresorhus/eslint-plugin-unicorn) from 25.0.1 to 26.0.1.
- [Release notes](https://github.com/sindresorhus/eslint-plugin-unicorn/releases)
- [Commits](https://github.com/sindresorhus/eslint-plugin-unicorn/compare/v25.0.1...v26.0.1)

Signed-off-by: dependabot[bot] <support@github.com>

* Updates for `eslint-plugin-unicorn@26.0.1`

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2021-01-14 00:29:26 +02:00
Mark Otto
80c0d4deab
Add mention of CSPs and SVGs (#32759)
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2021-01-14 00:15:18 +02:00
XhmikosR
f95004f654
Revert "docs: Fix popover example showing above navbar (#32445)" (#32533)
This reverts commit 517446069a.
2021-01-13 22:51:39 +02:00
Rohit Sharma
c9cd741aff
Throw a TypeError instead of the generic Error (#32585)
* Change from Error to TypeError

* Convert the `NAME` to upper case to make the consistency in the error message

* Update the remaining tests to be stricter

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2021-01-13 22:13:30 +02:00
Rohit Sharma
e34481b6eb
Fix toggling modal when clicking on data-bs-toggle="modal" (#32691)
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2021-01-13 21:59:47 +02:00
Mark Otto
d21fb9b627
Document some basic code conventions for us (#32778)
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2021-01-13 21:06:07 +02:00
Gaël Poupard
20a9d491a2
Improve docs regarding RTL migration (#32771)
* docs(migrations): add a note regarding migration from v4 used for RTL layouts

* docs(RTL): LTR & RTL at the same time

* docs(utilities): how-to use the API to rename utilities

* docs(RTL): mention issue when nesting styles with .ltr / .rtl
2021-01-13 21:01:36 +02:00
Onycss
041de9d5ed
Add word-break to .toast-body (#32670)
* Update _toasts.scss

* Update scss/_toasts.scss

Co-authored-by: Mark Otto <otto@github.com>
2021-01-13 09:21:57 -08:00
XhmikosR
1cdbf532af
Improve zip-examples.js (#32469)
Only include the needed dist files: ~1.27 MB -> ~410 KB
2021-01-13 19:21:31 +02:00
ghost_32
82e5fe2d8c
Migration: mention the removal of .rounded-sm/lg utilities (#32758)
* Changes made in migration.md file of documentation

Added information about the removal of `.rounded-sm` and `.rounded-lg`.
And addition of `.rounded-0` to `.rounded-3`

* Moved the edited line

Added `rounded-0` to `rounded-3` under  v5.0.0-alpha3

* Moved correctly

* Added link

Added link to issue #31687

* docs(migration): last typo thinggies

* Update migration.md

Co-authored-by: Gaël Poupard <ffoodd@users.noreply.github.com>
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2021-01-13 09:18:56 -08:00
XhmikosR
cad88abdb0
JS: update karma config (#32769)
* rename constants
* enforce the constants to be Boolean
* fix karma `logLevel`
2021-01-13 19:16:51 +02:00
Mark Otto
05249c8c04
Document size and multiple aren't supported on floating label selects (#32744)
* Document size and multiple aren't supported on floating label selects

Closes #32660

* Update floating-labels.md
2021-01-13 09:15:05 -08:00
Marcin Kasperski
408b2558dc
Update toasts.md (#32782)
* dropped mention of `backdrop-filter`
* changed mention of `.text-white` to `.btn-close-white` on close button
2021-01-13 19:05:25 +02:00
XhmikosR
f43133ac41
.gitignore: remove Ruby/Jekyll entries (#32770)
Our currently supported branches, v4-dev and main, use Hugo.
2021-01-13 13:20:49 +02:00
XhmikosR
ed5ddca5ba
Stylelint: disallow some property values (#32756)
* `border: none`
* `outline: none`
2021-01-13 10:52:41 +02:00
Mark Otto
69afafe811
Mention stretched-link constraints with table elements (#32761)
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2021-01-12 15:33:58 +02:00
dependabot[bot]
bf1e913f05
Bump sass from 1.32.2 to 1.32.4 (#32766)
Bumps [sass](https://github.com/sass/dart-sass) from 1.32.2 to 1.32.4.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.32.2...1.32.4)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-12 14:53:12 +02:00
XhmikosR
0bcaa068f2
GitHub Actions cleanup (#32755)
* lowercase `runner.os`
* remove `CI` environment variable since it's already set by the runner
2021-01-11 13:05:05 +02:00
Patrick H. Lauke
78c5b503f9
Darken dropdown item hover style (#32754)
Closes https://github.com/twbs/bootstrap/issues/23329
2021-01-11 01:24:03 +00:00
Patrick H. Lauke
d62d18f172
Consistently use outline:0 rather than outline:none (#32751)
just for code consistency, no actual effect on styling per se
2021-01-10 16:13:08 +00:00
Patrick H. Lauke
a2ae2c364f
Suppress focus outline for buttons when it shouldn't be visible in Chromium (#32689)
Follow-up to https://github.com/twbs/bootstrap/pull/32631

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2021-01-10 10:42:26 +00:00
XhmikosR
7e6d7b8f81
package.json: move version_short variable under the config object (#32737)
This is so that it works on npm 7.x too.
2021-01-10 08:03:49 +02:00
Brian Thompson
ee8546da18
Fix typo (#32740)
* Fix typo

* Rewrite description to avoid awkward phrasing

Co-authored-by: Mark Otto <otto@github.com>
2021-01-09 13:06:41 -08:00
XhmikosR
3b773e4265
Update devDependencies (#32738)
* autoprefixer  ^10.2.0  →  ^10.2.1
* postcss        ^8.2.2  →   ^8.2.4
2021-01-09 12:57:00 -08:00
Théophile Helleboid - chtitux
80557b3ac0
Move "active" class from .nav-item to .nav-link (#32730) 2021-01-08 20:53:04 +02:00
Gaël Poupard
70175db429 docs(sidebar): active link 2021-01-08 09:49:18 +02:00
XhmikosR
d9adaae5b0 Move migration sidebar entry to sidebar.yml 2021-01-08 09:49:18 +02:00
dependabot[bot]
480e7e61b6
Bump autoprefixer from 10.1.0 to 10.2.0 (#32711)
Bumps [autoprefixer](https://github.com/postcss/autoprefixer) from 10.1.0 to 10.2.0.
- [Release notes](https://github.com/postcss/autoprefixer/releases)
- [Changelog](https://github.com/postcss/autoprefixer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/autoprefixer/compare/10.1.0...10.2.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-07 16:52:31 +02:00
XhmikosR
f2c504397e
Bump copyright year to 2021 (#32713) 2021-01-07 12:12:53 +02:00
Mark Otto
cefdcf6954
Clarify the $enable-shadows option in our docs (#32685)
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2021-01-07 10:16:21 +02:00
dependabot[bot]
417372677f
Bump rollup from 2.36.0 to 2.36.1 (#32712)
Bumps [rollup](https://github.com/rollup/rollup) from 2.36.0 to 2.36.1.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v2.36.0...v2.36.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2021-01-07 10:11:16 +02:00
dependabot[bot]
fee72a1dbc
Bump sass from 1.32.0 to 1.32.2 (#32709)
Bumps [sass](https://github.com/sass/dart-sass) from 1.32.0 to 1.32.2.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.32.0...1.32.2)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2021-01-07 10:08:07 +02:00
dependabot[bot]
dbd53b8475
Bump nodemon from 2.0.6 to 2.0.7 (#32710)
Bumps [nodemon](https://github.com/remy/nodemon) from 2.0.6 to 2.0.7.
- [Release notes](https://github.com/remy/nodemon/releases)
- [Commits](https://github.com/remy/nodemon/compare/v2.0.6...v2.0.7)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-07 10:03:00 +02:00
Rohit Sharma
3c934ddcef
Scrollspy - Remove unnecessary event argument (#32603)
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2021-01-07 09:34:08 +02:00
Florian Lacreuse
e635a49536
Fix navbar docs - active nav-link (#32589)
* Fix navbar docs - active nav-link

* Update navbar.md

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2021-01-07 09:24:57 +02:00
Gaël Poupard
acec356c81
fix(ratio): missing variable prefix (#32501)
This is the only unprefixed custom property, and its name is very common so I think we'd better prefix it too.
2021-01-06 08:14:54 +02:00
Patrick H. Lauke
d1a62b47c3
Tweak wording for no-touch carousel (#32688)
based on changes made in the backport https://github.com/twbs/bootstrap/pull/32639
2021-01-06 00:59:44 +00:00
Jonathan
88d35b725b
Hyphen to dash for ranges (#32488)
* Hyphen to dash for ranges

* Hyphen to dash for ranges

* Hyphen to dash for ranges

* Hyphen to dash for ranges

* Hyphen to dash for ranges
2021-01-05 13:56:44 -08:00
Patrick H. Lauke
eb45005047
Remove old/unnecessary reboot bug fix (#32631)
From initial testing, this bug doesn't seem to manifest itself anywhere in Bootstrap (since we don't just set transparent background anywhere on buttons, and when we do set explicit button styles in the more specific stylings, we already do create a custom `:focus` style anyway)

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2021-01-05 22:20:35 +02:00
Théophile Helleboid - chtitux
265605bba0
carousel example: Move "active" class on .nav-link element (#32647) (#32647)
The "active" CSS class must be on "nav-link" element, see `_navbar.scss`:

```css
.nav-link.active {
  color: $navbar-dark-active-color;
}
```

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2021-01-05 22:15:59 +02:00
Mark Otto
dfe1b156d1
Fixes #32557: Add functions and variables to the utilities API docs imports (#32684)
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2021-01-05 22:11:56 +02:00
Patrick H. Lauke
fd48a8732f
Remove incorrect mention of dropdowns for dynamic tab behavior (#32634)
While technically it still works, we're already saying authors shouldn't do it later on, and we removed any examples of this. This was a straggler.

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2021-01-05 22:04:06 +02:00
XhmikosR
97a3ef357d
CI: update to actions/setup-node@v2 (#32635) 2021-01-05 21:56:31 +02:00
XhmikosR
baa8d3702f
Regenerate package-lock.json (#32680) 2021-01-05 21:55:57 +02:00
Patrick H. Lauke
e1e6f5684e
Tweak the wording for collapse to indicate button is preferred/more semantic (#32632)
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2021-01-05 21:53:50 +02:00
XhmikosR
d5b6971814
Update dependabot.yml 2021-01-05 21:52:48 +02:00
XhmikosR
8f33f7865d
dependabot: Add Actions updates (#32681) 2021-01-05 21:30:29 +02:00
dependabot[bot]
1bfe4780d4
Bump rollup from 2.35.1 to 2.36.0 (#32683)
Bumps [rollup](https://github.com/rollup/rollup) from 2.35.1 to 2.36.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v2.35.1...v2.36.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2021-01-05 16:08:04 +02:00
dependabot[bot]
e27bd176bf
Bump find-unused-sass-variables from 3.0.0 to 3.1.0 (#32682)
Bumps [find-unused-sass-variables](https://github.com/XhmikosR/find-unused-sass-variables) from 3.0.0 to 3.1.0.
- [Release notes](https://github.com/XhmikosR/find-unused-sass-variables/releases)
- [Commits](https://github.com/XhmikosR/find-unused-sass-variables/compare/v3.0.0...v3.1.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-05 15:51:47 +02:00
dependabot[bot]
fdd76d6d0c
Bump eslint-config-xo from 0.33.1 to 0.34.0 (#32679)
Bumps [eslint-config-xo](https://github.com/xojs/eslint-config-xo) from 0.33.1 to 0.34.0.
- [Release notes](https://github.com/xojs/eslint-config-xo/releases)
- [Commits](https://github.com/xojs/eslint-config-xo/compare/v0.33.1...v0.34.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-05 15:24:56 +02:00
dependabot[bot]
c6240401f5
Bump sass from 1.30.0 to 1.32.0 (#32677)
Bumps [sass](https://github.com/sass/dart-sass) from 1.30.0 to 1.32.0.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.30.0...1.32.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2021-01-05 14:59:33 +02:00
dependabot[bot]
ae3fa0e679
Bump postcss from 8.2.1 to 8.2.2 (#32676)
Bumps [postcss](https://github.com/postcss/postcss) from 8.2.1 to 8.2.2.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.2.1...8.2.2)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2021-01-05 14:54:21 +02:00
dependabot[bot]
5672401b15
Bump eslint-plugin-unicorn from 25.0.0 to 25.0.1 (#32675)
Bumps [eslint-plugin-unicorn](https://github.com/sindresorhus/eslint-plugin-unicorn) from 25.0.0 to 25.0.1.
- [Release notes](https://github.com/sindresorhus/eslint-plugin-unicorn/releases)
- [Commits](https://github.com/sindresorhus/eslint-plugin-unicorn/compare/v25.0.0...v25.0.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2021-01-05 14:49:06 +02:00
dependabot[bot]
9d95e11eda
Bump hugo-bin from 0.67.1 to 0.68.0 (#32674)
Bumps [hugo-bin](https://github.com/fenneclab/hugo-bin) from 0.67.1 to 0.68.0.
- [Release notes](https://github.com/fenneclab/hugo-bin/releases)
- [Commits](https://github.com/fenneclab/hugo-bin/compare/v0.67.1...v0.68.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2021-01-05 12:48:54 +02:00
dependabot[bot]
99b3470e82
Bump eslint from 7.16.0 to 7.17.0 (#32673)
Bumps [eslint](https://github.com/eslint/eslint) from 7.16.0 to 7.17.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v7.16.0...v7.17.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-05 12:36:44 +02:00
Patrick H. Lauke
b05145c951
Add an actual data-bs-touch="false" example in the carousel docs (#32638)
* Add an actual `data-touch="false"` example in the carousel docs

this can also make it easier to actually check/debug any issues we may have with this data attribute

* Correct attribute table explanation and remove slide class from example
2020-12-29 15:40:42 +02:00
dependabot[bot]
122b2bdd48
Bump eslint-plugin-unicorn from 24.0.0 to 25.0.0 (#32644)
* Bump eslint-plugin-unicorn from 24.0.0 to 25.0.0

Bumps [eslint-plugin-unicorn](https://github.com/sindresorhus/eslint-plugin-unicorn) from 24.0.0 to 25.0.0.
- [Release notes](https://github.com/sindresorhus/eslint-plugin-unicorn/releases)
- [Commits](https://github.com/sindresorhus/eslint-plugin-unicorn/compare/v24.0.0...v25.0.0)

Signed-off-by: dependabot[bot] <support@github.com>

* Fix renamed eslint-plugin-unicorn options

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-12-29 12:52:32 +02:00
dependabot[bot]
0fc072649e
Bump linkinator from 2.8.2 to 2.11.2 (#32645)
Bumps [linkinator](https://github.com/JustinBeckwith/linkinator) from 2.8.2 to 2.11.2.
- [Release notes](https://github.com/JustinBeckwith/linkinator/releases)
- [Commits](https://github.com/JustinBeckwith/linkinator/compare/v2.8.2...v2.11.2)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-29 12:35:20 +02:00
dependabot[bot]
93a4c0fbf7
Bump rollup-plugin-istanbul from 2.0.1 to 3.0.0 (#32646)
Bumps [rollup-plugin-istanbul](https://github.com/artberri/rollup-plugin-istanbul) from 2.0.1 to 3.0.0.
- [Release notes](https://github.com/artberri/rollup-plugin-istanbul/releases)
- [Changelog](https://github.com/artberri/rollup-plugin-istanbul/blob/main/CHANGELOG.md)
- [Commits](https://github.com/artberri/rollup-plugin-istanbul/compare/v2.0.1...v3.0.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-29 12:31:04 +02:00
Mark Otto
a48a29a7a5
Tweak .form-select padding (#32419)
* Tweak .form-select padding

* Simplify the padding entirely

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-12-28 08:27:03 +02:00
XhmikosR
bcf69163cd
Lock karma-browserstack-launcher and regenerate package-lock.json (#32593) 2020-12-22 15:45:01 +02:00
dependabot[bot]
8e426a32bc
Bump linkinator from 2.8.0 to 2.8.2 (#32592)
Bumps [linkinator](https://github.com/JustinBeckwith/linkinator) from 2.8.0 to 2.8.2.
- [Release notes](https://github.com/JustinBeckwith/linkinator/releases)
- [Commits](https://github.com/JustinBeckwith/linkinator/compare/v2.8.0...v2.8.2)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-12-22 12:34:38 +02:00
dependabot[bot]
f50b867be8
Bump eslint from 7.15.0 to 7.16.0 (#32591)
Bumps [eslint](https://github.com/eslint/eslint) from 7.15.0 to 7.16.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v7.15.0...v7.16.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-12-22 12:28:47 +02:00
dependabot[bot]
c1197ad37f
Bump hugo-bin from 0.67.0 to 0.67.1 (#32590)
Bumps [hugo-bin](https://github.com/fenneclab/hugo-bin) from 0.67.0 to 0.67.1.
- [Release notes](https://github.com/fenneclab/hugo-bin/releases)
- [Commits](https://github.com/fenneclab/hugo-bin/compare/v0.67.0...v0.67.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-22 12:23:30 +02:00
XhmikosR
9b7bb7b568
docs(sidebar): invalid CSS value (#32575)
Co-authored-by: Gaël Poupard <gael.poupard@orange.com>
2020-12-21 18:54:03 +02:00
Daniele Faraglia
59cd71631e
collapse: prevent url change if A nested tag is clicked (#32438)
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-12-21 14:37:35 +02:00
Nils K
2d46e47464
Support Popper virtual elements (#32376)
Adds the ability to use objects implementing the virtual element interface as the value for the reference option of a dropdown config.

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-12-21 14:32:11 +02:00
XhmikosR
44667d89fa
API docs: add missing comma (#32543) 2020-12-21 11:12:28 +02:00
Florian Lacreuse
86802f701c
Add keyboard-focusable elements for popover on disabled button (#32490) 2020-12-20 20:28:58 +02:00
XhmikosR
e468917731
Revert "Update karma-browserstack-launcher to v1.6.0 (#32409)" (#32494)
This reverts commit e2324731de.
2020-12-20 17:38:11 +02:00
XhmikosR
d140f50b35
Tooltips: add missing space (#32529) 2020-12-20 17:12:22 +02:00
joe
561c0d8cde
added class selector "." to "dropend" (#32534)
It was missing the `.` before `dropend`.
2020-12-19 08:23:50 +02:00
Gaël Poupard
58ab1c2cd5
test(carousel): french word in the wild (#32528) 2020-12-18 17:22:16 +02:00
dependabot[bot]
66f323af70
Bump eslint-plugin-unicorn from 23.0.0 to 24.0.0 (#32516)
* Bump eslint-plugin-unicorn from 23.0.0 to 24.0.0

Bumps [eslint-plugin-unicorn](https://github.com/sindresorhus/eslint-plugin-unicorn) from 23.0.0 to 24.0.0.
- [Release notes](https://github.com/sindresorhus/eslint-plugin-unicorn/releases)
- [Commits](https://github.com/sindresorhus/eslint-plugin-unicorn/compare/v23.0.0...v24.0.0)

Signed-off-by: dependabot[bot] <support@github.com>

* Update karma.conf.js

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-12-18 15:11:07 +02:00
Siju Samson
517446069a
docs: Fix popover example showing above navbar (#32445)
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-12-18 10:19:30 +02:00
Marc Jansing
f07106e604
Add helpers to utilities bundle (#32324)
Adds currently missing utilities classes which are located in scss/helpers to
boostrap-utilities dist files.

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-12-18 07:39:39 +02:00
dependabot[bot]
ef0bc661cf
Bump @babel/preset-env from 7.12.10 to 7.12.11 (#32515)
* Bump @babel/preset-env from 7.12.10 to 7.12.11

Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.12.10 to 7.12.11.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.12.11/packages/babel-preset-env)

Signed-off-by: dependabot[bot] <support@github.com>

* Update package-lock.json

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-12-17 15:01:11 +02:00
Dylan Anderson
df763d6457
Add variables for modifying button state colours. (#32317)
Add some variables to allow users to modify how much a button gets
lighter or darker on :hover and :active.

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-12-17 07:16:54 +02:00
Dmytro Yaremenko
8984255158
Extended form validation states customization capabilities (#31757)
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-12-17 07:07:48 +02:00
Rafi
b424650ab5
Fix: variables collide with globals (#32492)
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-12-17 07:02:20 +02:00
Rohit Sharma
f12657b39f
tests: replace deprecated jQuery method (#32309)
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-12-16 17:21:43 +02:00
XhmikosR
29e4eb91c1
BrowserStack: test on macOS Catalina instead of High Sierra (#32486) 2020-12-16 12:45:48 +02:00
dependabot[bot]
269efc8dc9
Bump @popperjs/core from 2.5.4 to 2.6.0 (#32487)
* Bump @popperjs/core from 2.5.4 to 2.6.0

Bumps [@popperjs/core](https://github.com/popperjs/popper-core) from 2.5.4 to 2.6.0.
- [Release notes](https://github.com/popperjs/popper-core/releases)
- [Commits](https://github.com/popperjs/popper-core/compare/v2.5.4...v2.6.0)

Signed-off-by: dependabot[bot] <support@github.com>

* Update config.yml

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-12-16 11:41:15 +02:00
Florian Lacreuse
4e7c9e56fc
Fix popover docs example (#32489) 2020-12-15 17:27:06 +02:00
XhmikosR
cc3a5cf79a
Update package-lock.json 2020-12-15 09:46:22 +02:00
Patrick H. Lauke
65f1bf027a
Docs: style clipboard button on :focus, not just :hover (#32461)
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-12-15 09:43:12 +02:00
XhmikosR
479043f255
Update Release Drafter configuration (#32417)
* add "Breaking Changes" section
* add "Performance Improvements" section
* add "Utility API" section
* add "CI" label in "Misc" category
2020-12-15 09:36:25 +02:00
dependabot[bot]
0c195f690a
Bump rollup from 2.34.2 to 2.35.1 (#32475)
Bumps [rollup](https://github.com/rollup/rollup) from 2.34.2 to 2.35.1.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v2.34.2...v2.35.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-12-15 09:34:02 +02:00
Gaël Poupard
c2f67d72e8 docs(skip links): new powers for .visually-hidden-focusable 2020-12-15 09:22:14 +02:00
Patrick H. Lauke
eae52b1cb0 Expand visually-hidden-focusable so it can be used on a container, so the container becomes visible when focus is inside it / on one of its child elements. 2020-12-15 09:22:14 +02:00
Kyle Tsang
9b6c815148
docs: Remove unneeded .form-group class (#32483) 2020-12-15 09:21:25 +02:00
Florian Lacreuse
e8d14b302e
Remove redundant pointer-events: none override for tooltip and popover disabled buttons (#32478)
Co-authored-by: Patrick H. Lauke <redux@splintered.co.uk>
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-12-15 09:17:58 +02:00
XhmikosR
c3e8a0ef2a
Update CodeQL Action (#32452) 2020-12-15 09:14:03 +02:00
Alan Orth
e1f561b53c
docs: Add system-ui to native font stack documentation (#32455)
system-ui was added to the native font stack in #30561 but the docs were not updated.
2020-12-15 09:10:09 +02:00
XhmikosR
e2324731de
Update karma-browserstack-launcher to v1.6.0 (#32409) 2020-12-15 09:04:50 +02:00
XhmikosR
a3ead0786a
Flatten package-lock.json (#32477) 2020-12-15 09:00:15 +02:00
Rohit Sharma
042a4a255f
Tooltip/popover - change the default value for fallbackPlacements (#32437)
The default Popper `fallbackPlacements` value is `[oppositePlacement]`.

- The default value was previously (in v4) `'flip'` that can be achieved by passing the single value in the array, like — `[oppositePlacement]`. Keeping `null` also sets the `fallbackPlacements` to `[oppositePlacement]` (Default value in Popper)
- It's better to have **clockwise** (`['top', 'right', 'bottom', 'left']`) fallback options so that tooltip/popover can be placed to another side even if the opposite placement doesn't fit.

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-12-14 20:51:14 +02:00
Florian Lacreuse
793c79d14b
Clean up lorem ipsum text in popover examples (#32479) 2020-12-14 20:26:16 +02:00
dependabot[bot]
25326a0114
Bump @rollup/plugin-node-resolve from 11.0.0 to 11.0.1 (#32476)
Bumps [@rollup/plugin-node-resolve](https://github.com/rollup/plugins) from 11.0.0 to 11.0.1.
- [Release notes](https://github.com/rollup/plugins/releases)
- [Commits](https://github.com/rollup/plugins/compare/commonjs-v11.0.0...commonjs-v11.0.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-14 17:26:22 +02:00
dependabot[bot]
a60d8c0d58
Bump postcss-cli from 8.3.0 to 8.3.1 (#32471)
Bumps [postcss-cli](https://github.com/postcss/postcss-cli) from 8.3.0 to 8.3.1.
- [Release notes](https://github.com/postcss/postcss-cli/releases)
- [Changelog](https://github.com/postcss/postcss-cli/blob/master/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss-cli/compare/8.3.0...8.3.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-14 16:41:34 +02:00
Mark Otto
071f914fa1
Add two new variables for pagination border-radius values (#32423)
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-12-14 15:34:01 +02:00
Jesse Mandel
a31ea592d6
Few updates for v5.0.0-beta1 NuGet support (#32453)
PopperJS 2.0 isn't on Nuget so dropped as a dependency
2020-12-14 14:34:31 +02:00
Florian Lacreuse
fe3658672c
Add missing has-validation in checkout examples (#32464) 2020-12-14 14:33:20 +02:00
Rohit Sharma
ebce95dc60
Tooltip - Add missing callback in async spec (#32465) 2020-12-14 13:02:34 +02:00
Gaël Poupard
b85ca045e0 fix(carousel): switch prev/next directions in RTL 2020-12-14 11:11:47 +02:00
Gaël Poupard
e967ecf900 docs(cheatsheet): fix RTL sidenav arrows 2020-12-14 11:11:47 +02:00
Alan Orth
f2b39d620c
examples: Update font utility classes to new v5 versions (#32449)
* site: Fix .font-italic to .fst-italic in blog example

The font utility class was renamed from .font-italic to .fst-italic
but a few references didn't get updated.

* site: Fix .font-weight-* to .fw-* in RTL examples

These font utility classes were renamed from .font-weight-* to .fw-*
but a few references didn't get updated.

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-12-14 10:51:21 +02:00
dependabot[bot]
78389b2acf
Bump rtlcss from 2.6.2 to 3.0.0 (#32431)
Bumps [rtlcss](https://github.com/MohammadYounes/rtlcss) from 2.6.2 to 3.0.0.
- [Release notes](https://github.com/MohammadYounes/rtlcss/releases)
- [Changelog](https://github.com/MohammadYounes/rtlcss/blob/master/CHANGELOG.md)
- [Commits](https://github.com/MohammadYounes/rtlcss/compare/2.6.2...3.0.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-12-14 10:44:22 +02:00
Patrick H. Lauke
b2477cc70c
Straggler lorem ipsum text (#32463) 2020-12-14 09:38:59 +02:00
Patrick H. Lauke
764e5298de
Replace Lorem Ipsum placeholder text with more representative (or at least english language) text (#32246)
Replaces shorter examples with more sensible/representative/inforrmative text. For longer passages, resorted to using SFW extracts from http://katyperryipsum.com/
2020-12-11 20:05:33 +00:00
XhmikosR
93ab072027
carousel: switch to string constants (#32393) 2020-12-11 16:12:13 +02:00
Martijn Cuppens
62eb5a3232
Use box shadows instead of linear gradients to colorize tables (#32348)
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-12-11 15:49:22 +02:00
XhmikosR
81042ff467
terser: use 2 passes instead of the default 1. (#32185)
Saves us a few bytes.
2020-12-11 15:48:21 +02:00
XhmikosR
d154f0df7f
Use the ternary operator in a few more places (#32303) 2020-12-11 15:47:34 +02:00
dependabot[bot]
d28d74f58c
Bump @babel/preset-env from 7.12.7 to 7.12.10 (#32430)
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.12.7 to 7.12.10.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.12.10/packages/babel-preset-env)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-11 10:12:55 +02:00
dependabot[bot]
e534aa2b9f
Bump @babel/core from 7.12.9 to 7.12.10 (#32429)
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.12.9 to 7.12.10.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.12.10/packages/babel-core)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-11 10:08:10 +02:00
dependabot[bot]
f2169e6dc3
Bump @babel/cli from 7.12.8 to 7.12.10 (#32428)
Bumps [@babel/cli](https://github.com/babel/babel/tree/HEAD/packages/babel-cli) from 7.12.8 to 7.12.10.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.12.10/packages/babel-cli)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-11 10:02:17 +02:00
Rohit Sharma
4535b09c46
Tooltip - check if tip and its parent node exist in dispose method (#32420) 2020-12-10 21:06:41 +02:00
XhmikosR
1edec546cb
Remove TRANSITION_END from utils (#32394) 2020-12-10 16:54:50 +02:00
Gaël Poupard
7e47b7ecc9
Reset Popper position in RTL (#32415)
The RTL cheatsheet's dropdowns aren't positioned correctly because of RTLCSS transforming `right: auto` to `left:auto` (which conflicts with Popper positioning).
2020-12-10 16:38:42 +02:00
XhmikosR
c34385eb01
CI: add a 30-min timeout for BrowserStack (#32238) 2020-12-10 11:52:22 +02:00
XhmikosR
4341c34261
docs: SVG consistency changes (#32259)
* Move inlined SVG to a partial.

Also, add `fill="currentColor"` in the SVGs.

* docs: reorder attributes
2020-12-10 11:48:14 +02:00
AlexKoala
ecb38f6ac2
docs: Add Korean translation (#32284)
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-12-10 11:24:02 +02:00
Thomas Güttler
6f0545b61b
Typo: show on xxl, if only xl should be hidden. (#32287)
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-12-10 11:22:40 +02:00
XhmikosR
c75a56d550
CONTRIBUTING: mention dist files (#32314)
* CONTRIBUTING: mention dist files

* Update CONTRIBUTING.md

Co-authored-by: Mark Otto <markd.otto@gmail.com>
2020-12-10 10:55:11 +02:00
XhmikosR
9651ebf3c7
Update devDependencies and regenerate package-lock.json (#32410) 2020-12-10 00:38:49 +02:00
XhmikosR
6f9c38f65e
carousel: switch to if/else (#32395)
There are only two conditions, so `if/else` is shorter and has the same effect.
2020-12-10 00:38:24 +02:00
Martijn Cuppens
8fed098ef9
Utility API, RFS option: Only generate responsive classes when needed (#32397)
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-12-09 23:49:21 +02:00
Christian Oliff
aa2df26b55
Remove duplicated 'follow Bootstrap on Twitter' link in Community section (#32399)
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-12-09 23:45:27 +02:00
Martijn Cuppens
f132400865 Add fallback behaviour 2020-12-09 13:34:51 -08:00
Gaël Poupard
0f12f58711
cheatsheet: Drop redundant (current) text (#32401)
Useless since we're using `aria-current` (see #31891).
2020-12-09 17:54:47 +02:00
XhmikosR
0ca5addea4
alert: rename variables for consistency (#32392) 2020-12-09 15:09:41 +02:00
XhmikosR
41bc0e26d2
SelectorEngine: drop variable used once (#32391) 2020-12-09 15:05:52 +02:00
kyletsang
77771cdf00 Remove offset in Popover docs
Fix fallbackPlacements in Popover and Tooltip docs
2020-12-09 15:02:46 +02:00
kyletsang
290b295173 docs: Update Popper 2 doc links 2020-12-09 15:02:46 +02:00
Gaël Poupard
d29680b3cb
Fix missed occurrencies of "Popper.js" (#32398) 2020-12-09 14:53:43 +02:00
XhmikosR
b1290ff189
Regenerate package-lock.json (#32378) 2020-12-08 12:41:41 +02:00
dependabot[bot]
a4d9bc0431
Bump postcss from 8.1.14 to 8.2.0 (#32375)
Bumps [postcss](https://github.com/postcss/postcss) from 8.1.14 to 8.2.0.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.1.14...8.2.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-12-08 12:26:40 +02:00
dependabot[bot]
f8b5faff45
Bump autoprefixer from 10.0.4 to 10.1.0 (#32374)
Bumps [autoprefixer](https://github.com/postcss/autoprefixer) from 10.0.4 to 10.1.0.
- [Release notes](https://github.com/postcss/autoprefixer/releases)
- [Changelog](https://github.com/postcss/autoprefixer/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/autoprefixer/compare/10.0.4...10.1.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-08 12:21:42 +02:00
XhmikosR
d3946e7646
Update devDependencies (#32355)
* eslint      ^7.14.0  →  ^7.15.0
* linkinator   ^2.5.1  →   ^2.8.0
* postcss     ^8.1.10  →  ^8.1.14
* rollup      ^2.34.0  →  ^2.34.2
* sass        ^1.29.0  →  ^1.30.0
2020-12-08 10:57:36 +02:00
alpadev
85208ae557
Refactor components to use a utility function to define jQuery plugins (#32285)
* refactor: use an utility function to define jQuery plugins

* test: add spec for defineJQueryPlugin utility function

* Update .bundlewatch.config.json

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-12-08 08:16:50 +02:00
Radu Chiriac
07b60d2c3e
carousel.md: fix $carousel-transition-duration reference (#32316)
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-12-08 08:06:08 +02:00
XhmikosR
d15a0247ce
Remove SelectorEngine.matches(). (#32339)
It's basically unused.
2020-12-07 19:10:20 +02:00
Mark Otto
33b275c04b
Remove vertical-align from .form-select (#32318)
Aligns the component with the .form-control. Closes #32271.

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-12-07 19:08:31 +02:00
XhmikosR
5538ffb292
build-plugins: switch to "bundled" for babel helpers (#32312) 2020-12-07 19:06:17 +02:00
Patrick H. Lauke
ab49e362a7
Add a callout for the sanitizer in popovers and tooltips (#32272)
* Add a callout for the sanitizer in popovers and tooltips

* Add second reference to sanitizer in the options

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-12-07 18:57:33 +02:00
XhmikosR
63f3d939ea Dist 2020-12-07 18:18:16 +02:00
XhmikosR
bc4272531b Revert v5.getbootstrap.com changes 2020-12-07 18:18:16 +02:00
XhmikosR
8dc85c657e Prepare v5.0.0-beta1. 2020-12-07 18:18:16 +02:00
Gaël Poupard
9312442338 fix(dropdown): ensure [style] will override inline styles 2020-12-06 18:42:40 +02:00
Gaël Poupard
6a27618d21 fix(RTL) 2020-12-06 18:42:40 +02:00
XhmikosR
4eea630d16 Be explicit with element.closest()'s return value 2020-12-06 18:42:40 +02:00
Martijn Cuppens
d8f247392d Fix conflict with Bootstrap CSS 2020-12-06 18:42:40 +02:00
XhmikosR
4447157446 Tighten bundlewatch limits 2020-12-06 18:42:40 +02:00
Martijn Cuppens
861227887e Change button copy to make the example clearer 2020-12-06 18:42:40 +02:00
Martijn Cuppens
87e56de066 Override margins set by popper 2020-12-06 18:42:40 +02:00
XhmikosR
adec91e8fc Move and update migration notes 2020-12-06 18:42:40 +02:00
XhmikosR
6c32de8711 Update popper.js to v2.5.4. 2020-12-06 18:42:40 +02:00
Johann-S
adfdf7160b Update to popper.js v2.x 2020-12-06 18:42:40 +02:00
Martijn Cuppens
5f89ea3a0f Add toasts & positioning utilities migration docs 2020-12-04 16:15:51 +02:00
Martijn Cuppens
6c069b6976 Add interactive positioning widget 2020-12-04 16:15:51 +02:00
Martijn Cuppens
5b0dcf8ffe Add .translate-middle-x and .translate-middle-y utilities 2020-12-04 16:15:51 +02:00
Martijn Cuppens
1f2e600304 Add toast positioning 2020-12-04 16:15:51 +02:00
XhmikosR
321ee7a1ad
cheatsheet.js: use event instead of e (#32335) 2020-12-04 16:00:21 +02:00
XhmikosR
85acd96e31
Fix css-prefix-examples-rtl script (#32326)
`cross-env-shell` should be used since we are using variables in the command
2020-12-04 08:40:16 +02:00
Gaël Poupard
0a141dae94 chore(dist): generate dist files 2020-12-04 07:52:03 +02:00
Mark Otto
53d861c814 fix gradient 2020-12-04 07:52:03 +02:00
Gaël Poupard
082723f3f4 docs(cheatsheet): various fixes 2020-12-04 07:52:03 +02:00
Mark Otto
153f6c72ce Revamp header, headings, aside spacing
Gradients caused artifacts in Safari, layout was feeling a little loose
2020-12-04 07:52:03 +02:00
Gaël Poupard
3ef8483c5d docs(examples): use RTLCSS for RTL examples 2020-12-04 07:52:03 +02:00
XhmikosR
eb618393e3 Move rtlcss to postcss.config.js 2020-12-04 07:52:03 +02:00
XhmikosR
edfa103444 Adapt to the recent main branch changes 2020-12-04 07:52:03 +02:00
Gaël Poupard
aaff11a0b3 docs(examples): new cheatsheet and RTL examples 2020-12-04 07:52:03 +02:00
Gaël Poupard
9488978fb5 feat(RTL): implement RTL
Using RTLCSS directives, renaming things to use logical names and following best practices.
2020-12-04 07:52:03 +02:00
Gaël Poupard
71ecc3323f chore(RTL): add RTLCSS 2020-12-04 07:52:03 +02:00
XhmikosR
cfe31592d7
Dist (#32323) 2020-12-03 16:18:59 +02:00
XhmikosR
cfd00b5eeb
Remove Polyfill leftovers (#32310)
Leftovers from #32057
2020-12-02 08:30:35 +02:00
XhmikosR
bb369ca813
Update our browserslist config (#30986)
Use browserslist defaults which is `> 0.5%, last 2 versions, Firefox ESR, not dead`
2020-12-02 06:53:12 +02:00
dependabot[bot]
9a4692d4e3
Bump cross-env from 7.0.2 to 7.0.3 (#32308)
Bumps [cross-env](https://github.com/kentcdodds/cross-env) from 7.0.2 to 7.0.3.
- [Release notes](https://github.com/kentcdodds/cross-env/releases)
- [Changelog](https://github.com/kentcdodds/cross-env/blob/master/CHANGELOG.md)
- [Commits](https://github.com/kentcdodds/cross-env/compare/v7.0.2...v7.0.3)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-12-02 06:46:31 +02:00
XhmikosR
701c6c6e77
Unbreak lines. (#32304) 2020-12-02 06:45:15 +02:00
dependabot[bot]
f05d64225d
Bump linkinator from 2.4.0 to 2.5.1 (#32307)
Bumps [linkinator](https://github.com/JustinBeckwith/linkinator) from 2.4.0 to 2.5.1.
- [Release notes](https://github.com/JustinBeckwith/linkinator/releases)
- [Commits](https://github.com/JustinBeckwith/linkinator/compare/v2.4.0...v2.5.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-02 06:38:23 +02:00
Martijn Cuppens
bf3c4d0b68 Use $variable-prefix 2020-12-01 19:17:06 +02:00
XhmikosR
5e3219a9bb Fix empty CSS variable 2020-12-01 19:17:06 +02:00
Mark Otto
08eb92204e Add to migration docs 2020-12-01 19:17:06 +02:00
Mark Otto
3b015ed34e Update breadcrumb docs and dividers
- Add CSS custom property with fallback to Sass variable
- Update docs to mention the new CSS custom property
- Rewrite some of the docs to use divider instead of separator, and add some context here and there
2020-12-01 19:17:06 +02:00
Patrick H. Lauke
ff130b17dc Remove background, padding, border from breadcrumb container 2020-12-01 19:17:06 +02:00
XhmikosR
c27ff64c96
README: fix path to search.js (#32257) 2020-12-01 12:57:58 +02:00
XhmikosR
f08cef3cf4
Regenerate package-lock.json (#32300) 2020-12-01 12:53:14 +02:00
dependabot[bot]
5954cc11c4
Bump hugo-bin from 0.66.2 to 0.67.0 (#32299)
Bumps [hugo-bin](https://github.com/fenneclab/hugo-bin) from 0.66.2 to 0.67.0.
- [Release notes](https://github.com/fenneclab/hugo-bin/releases)
- [Commits](https://github.com/fenneclab/hugo-bin/compare/v0.66.2...v0.67.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-12-01 12:45:13 +02:00
dependabot[bot]
c800bb0a13
Bump rollup from 2.33.3 to 2.34.0 (#32298)
Bumps [rollup](https://github.com/rollup/rollup) from 2.33.3 to 2.34.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v2.33.3...v2.34.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-12-01 12:37:12 +02:00
dependabot[bot]
f75e471f00
Bump @babel/core from 7.12.8 to 7.12.9 (#32297)
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.12.8 to 7.12.9.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.12.9/packages/babel-core)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-12-01 12:33:02 +02:00
dependabot[bot]
819ab1f21d
Bump @rollup/plugin-babel from 5.2.1 to 5.2.2 (#32296)
Bumps [@rollup/plugin-babel](https://github.com/rollup/plugins) from 5.2.1 to 5.2.2.
- [Release notes](https://github.com/rollup/plugins/releases)
- [Commits](https://github.com/rollup/plugins/compare/babel-v5.2.1...babel-v5.2.2)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-01 12:30:12 +02:00
dependabot[bot]
efc95a804e
Bump @rollup/plugin-commonjs from 16.0.0 to 17.0.0 (#32295)
Bumps [@rollup/plugin-commonjs](https://github.com/rollup/plugins) from 16.0.0 to 17.0.0.
- [Release notes](https://github.com/rollup/plugins/releases)
- [Commits](https://github.com/rollup/plugins/compare/commonjs-v16.0.0...commonjs-v17.0.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-01 12:26:00 +02:00
dependabot[bot]
a37afee738
Bump linkinator from 2.2.2 to 2.4.0 (#32294)
Bumps [linkinator](https://github.com/JustinBeckwith/linkinator) from 2.2.2 to 2.4.0.
- [Release notes](https://github.com/JustinBeckwith/linkinator/releases)
- [Commits](https://github.com/JustinBeckwith/linkinator/compare/v2.2.2...v2.4.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-01 12:20:55 +02:00
dependabot[bot]
78474bfa15
Bump @rollup/plugin-node-resolve from 10.0.0 to 11.0.0 (#32292)
Bumps [@rollup/plugin-node-resolve](https://github.com/rollup/plugins) from 10.0.0 to 11.0.0.
- [Release notes](https://github.com/rollup/plugins/releases)
- [Commits](https://github.com/rollup/plugins/compare/node-resolve-v10.0.0...commonjs-v11.0.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-01 12:15:22 +02:00
dependabot[bot]
83e0a888bd
Bump autoprefixer from 10.0.2 to 10.0.4 (#32291)
Bumps [autoprefixer](https://github.com/postcss/autoprefixer) from 10.0.2 to 10.0.4.
- [Release notes](https://github.com/postcss/autoprefixer/releases)
- [Changelog](https://github.com/postcss/autoprefixer/blob/master/CHANGELOG.md)
- [Commits](https://github.com/postcss/autoprefixer/compare/10.0.2...10.0.4)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-12-01 12:05:26 +02:00
Rohit Sharma
c3689ac073
Remove the show property from the modal plugin (#32279)
Drop the support of show property from the modal plugin.
When creating the new modal instance in v5, the `show` property does not work anymore, so instead of fixing the behavior just removing it permanently to keep the consistency between all the plugins. (All other plugins require the `show()` method to be called on the instances to be shown)

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-11-30 12:12:40 +02:00
XhmikosR
03ed3e0b3b tooltip.js: reuse existent variable 2020-11-30 12:07:51 +02:00
XhmikosR
dd992c7226 Add tests 2020-11-30 12:07:51 +02:00
Patrick H. Lauke
adc857f617 Extra check for existence of any aria-label
before overwriting it...
2020-11-30 12:07:51 +02:00
Matty Williams
b0372bb658 Accessibility update for tooltip.js
Update to the tooltip.js to add an aria-label attribute that contains the original title of the element, but only if the element doesn't have an existing aria-label attribute.

This is to address cases where screen readers are not capturing the aria-describedby attribute that is added when the tooltip is triggered.  This should also avoid a race condition between the screen reader and the appearance of the tooltip.
2020-11-30 12:07:51 +02:00
Rohit Sharma
af57444405
Keep rounded corners for the first .btn in vertical button group (#31303)
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-11-30 11:09:55 +02:00
Martijn Cuppens
ff25a75320
Remove default linear gradient (#32277)
Remove the default invisible gradient causing the performance issue in #32266. By removing the custom property, the linear gradient will become invalid, thus not appear by default.

There can still be a performance issue with striped tables though.

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-11-30 10:51:32 +02:00
Patrick H. Lauke
948f834347
Add mention of link underline change to migration and typography (#32281)
x-ref https://github.com/twbs/bootstrap/discussions/32276#discussioncomment-141850

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-11-30 07:02:03 +02:00
Rohit Sharma
04674f88b0 Remove setData from construtors (#32264) 2020-11-29 20:58:26 +02:00
Johann-S
4999c3dbbc remove data key in base component 2020-11-29 20:58:26 +02:00
Rohit Sharma
f6a8733741 Move VERSION to BaseComponent (#32254) 2020-11-29 20:58:26 +02:00
Johann-S
9eb9d02084 add dispose in base component 2020-11-29 20:58:26 +02:00
XhmikosR
51a208f119 Switch to Jasmine's toBeInstanceOf matcher 2020-11-29 20:58:26 +02:00
Johann-S
9f6b342dc7 create a base component 2020-11-29 20:58:26 +02:00
XhmikosR
c63aebc86b
homepage: fix wrong alt attribute (#32258) 2020-11-25 18:31:34 +02:00
XhmikosR
81ac002a02
npm scripts: run integration tests in parallel (#32232) 2020-11-25 09:29:16 +02:00
Rohit Sharma
c348ad4a94
Ability to add custom class in tooltip/popover (#32217)
Porting of #31834 to main.

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-11-25 09:16:22 +02:00
XhmikosR
d61f506a5f
Update codeql.yml (#32125)
Specify the branches and clean up the comments
2020-11-24 08:35:33 +02:00
XhmikosR
7ff881c532
Update devDependencies (#32229)
* @babel/cli         ^7.12.1  →  ^7.12.8
* @babel/core        ^7.12.3  →  ^7.12.8
* @babel/preset-env  ^7.12.1  →  ^7.12.7
* eslint             ^7.13.0  →  ^7.14.0
* postcss             ^8.1.7  →   ^8.1.10
* postcss-cli         ^8.2.0  →   ^8.3.0
* rollup             ^2.33.2  →  ^2.33.3
* stylelint          ^13.7.2  →  ^13.8.0
2020-11-24 08:19:25 +02:00
XhmikosR
d8ff27721b
introduction: split comments (#32223) 2020-11-23 22:17:37 +02:00
XhmikosR
767db7b746
tests/integration/index.html: revert accidental changes 2020-11-23 22:14:52 +02:00
Rohit Sharma
7c7f08b5e0
Update bundle.js in tests/integration (#32233)
* Use `[].concat` instead of direct spreading nodelist

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-11-23 21:35:46 +02:00
XhmikosR
8f8787725b
Update _syntax.scss (#32117)
* Update _syntax.scss with the latest chroma selectors

* Sort selectors

* Remove no longer needed chroma workaround

* remove comments
2020-11-23 21:34:38 +02:00
XhmikosR
fdc40f5053
CI: specify FORCE_COLOR:2 (#32222)
This should show any colors in the output
2020-11-23 21:32:25 +02:00
XhmikosR
ee2bcdec3d
postcss.config.js: remove arrow return (#32235) 2020-11-23 16:11:16 +02:00
XhmikosR
3e823e0b75
Dist (#32216) 2020-11-23 15:17:16 +02:00
Noah Rosenzweig
21737ed530
Improve build/generate-sri.js regex (#29753)
When using single-quotes in config.yml, the previous
regular expression in build/generate-cli.js wasn't working correctly,
it was replacing ALL string values with hashes.
Now both double- and single-quotes can be used in config.yml,
and the RegExp will work as expected.

Also, allow trailing whitespaces and empty ("") values to be matched.

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-11-21 21:39:33 +02:00
XhmikosR
d365831bce
docs: use event instead of e (#32226)
It's better for clarity.
2020-11-21 17:00:38 +02:00
XhmikosR
f4457bca02
Be consistent with Popper's name. (#32224)
The npm package is named "popper.js" but the project is named "Popper", so use the latter consistently.
2020-11-21 16:22:08 +02:00
Rohit Sharma
358c36d4b5
Add missing tags in unit tests (#32221) 2020-11-20 20:10:15 +02:00
Rohit Sharma
0839cbf04d
Don't hide modal when keyboard is set to false in modal's configuration (#32179)
* Don't hide modal when config.keyboard is false

* Update unit test

- Modal should not be closed when pressing esc key if keyboard = false
  and backdrop is 'static'

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-11-20 15:36:24 +02:00
Rohit Sharma
2630b05eb3
Make the attribute methods bs specific (#32173)
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-11-20 11:13:13 +02:00
XhmikosR
a96b118f04
_reboot.scss: remove needless Stylelint disable (#32213) 2020-11-20 09:54:24 +02:00
XhmikosR
6637154beb
Revert "Use Hugo mounts for our docs vendor files." (#32210)
* Revert "Adapt to the recent main changes"

This reverts commit 50d8921670.

* Revert "Add Hugo Pipes logic for local and vendored scripts."

This reverts commit 3fcfd606f2.

* Revert "Use Hugo mounts for our docs vendor JS files."

This reverts commit 6b071116f3.
2020-11-19 21:09:34 +02:00
XhmikosR
50d8921670 Adapt to the recent main changes
* remove `bs-custom-file-input.min.js`
* switch to errorf
* change error message
2020-11-19 20:54:42 +02:00
Regis Philibert
3fcfd606f2 Add Hugo Pipes logic for local and vendored scripts. 2020-11-19 20:54:42 +02:00
XhmikosR
6b071116f3 Use Hugo mounts for our docs vendor JS files. 2020-11-19 20:54:42 +02:00
Gaël Poupard
268da84f16
fix(container): use $variable-prefix (#32201)
Missed that while merging.
2020-11-19 20:38:39 +02:00
XhmikosR
2185803964
Fix a few typos (#32204) 2020-11-19 20:32:35 +02:00
Martijn Cuppens
8f3c8a922a
Manually optimize SVGs (#32187) 2020-11-19 19:07:06 +01:00
XhmikosR
65d6c8a731
docs: update selector CodePen example (#32163) 2020-11-19 17:15:40 +02:00
XhmikosR
64a864075c
examples: add the version number in title (#32198) 2020-11-19 13:38:48 +02:00
Mark Otto
7fec0ec3d7 Update migration guide about w-100 2020-11-19 07:47:06 +02:00
XhmikosR
ecbc7189b6 examples: fix .btn-block instances 2020-11-19 07:47:06 +02:00
Jiang Yan
5501df0c29
Docs: fix homepage npm install version (#32194) 2020-11-19 07:42:44 +02:00
Patrick H. Lauke
5ec6400bd0
Docs: change sidebar collapse controls to actual button elements (#31098)
apart from the visual styling, there's probably no good reason why these shouldn't be `<button>` elements, semantically

the buttons still look a shade too button-like, despite using `.btn-light`. the last remnant of button styling can probably be suppressed further, *or* this makes the case for expanding the core button styles to have one that looks completely non-button and non-link like (for cases where an additional style/hint was given already, or it's clear from context that something's an actionable button or link)

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-11-18 20:20:05 +02:00
Matt Shaw
de8dbd72d8
correct "breakpoint" typo (#32191)
breakpoing --> breakpoint
2020-11-18 18:15:28 +02:00
Kyle Tsang
39b9879aa2
docs: Add missing .has-validation class for input group example (#32162)
Co-authored-by: Martijn Cuppens <martijn.cuppens@gmail.com>
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-11-18 13:08:26 +02:00
XhmikosR
2d4f1b272c
Update karma.conf.js (#32182)
When we are on CI, this statement won't be reached.
2020-11-18 13:06:04 +02:00
Gaël Poupard
2b0b3091a0
docs(dropdowns): clarify where is .show applied (#32189)
Fixes #32712
2020-11-18 12:50:55 +02:00
Gaël Poupard
1955ffc01e
Handle Chromium to run Karma (#32178)
* chore(karma): handle Chromium to run tests

* Update karma.conf.js

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-11-17 21:42:55 +02:00
Christian Oliff
5cda50e5bd
Fix the marker SVG color to match the button (#32174) 2020-11-17 16:53:50 +02:00
XhmikosR
9f211231b0
docs: use expanded Sass output style for development (#32176) 2020-11-17 16:43:36 +02:00
XhmikosR
bec6eef971 skippy.html: reduce whitespace output 2020-11-17 16:35:32 +02:00
Tiger Oakes
4c9597ef7e Add baseof layout 2020-11-17 15:54:47 +02:00
Tiger Oakes
933b6510ca Move redirect layout into partial 2020-11-17 15:54:47 +02:00
dependabot[bot]
ff405475a2
Bump postcss from 8.1.6 to 8.1.7 (#32171)
Bumps [postcss](https://github.com/postcss/postcss) from 8.1.6 to 8.1.7.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/master/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.1.6...8.1.7)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-11-17 15:22:19 +02:00
dependabot[bot]
2746df251a
Bump hugo-bin from 0.66.1 to 0.66.2 (#32169)
Bumps [hugo-bin](https://github.com/fenneclab/hugo-bin) from 0.66.1 to 0.66.2.
- [Release notes](https://github.com/fenneclab/hugo-bin/releases)
- [Commits](https://github.com/fenneclab/hugo-bin/compare/v0.66.1...v0.66.2)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-11-17 15:17:17 +02:00
dependabot[bot]
0d6c89de95
Bump rollup from 2.33.1 to 2.33.2 (#32168)
Bumps [rollup](https://github.com/rollup/rollup) from 2.33.1 to 2.33.2.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v2.33.1...v2.33.2)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-11-17 15:08:22 +02:00
XhmikosR
60c79b28aa
BrowserStack: test both on iPhone 7 and iPhone X (#32154) 2020-11-16 14:31:03 +02:00
XhmikosR
b5a64ce60f
Switch to jsDelivr for the remaining docs assets (#32158) 2020-11-15 14:21:01 +02:00
XhmikosR
6316565fa9
popovers.md: unbreak line (#32153) 2020-11-14 15:59:35 +02:00
XhmikosR
12f510861b search.js: remove window.location.origin workaround 2020-11-14 15:54:50 +02:00
XhmikosR
eaf616c653 Use Array.find instead of Array.filter 2020-11-14 15:54:50 +02:00
XhmikosR
53ec604eb1 Use String.startsWith 2020-11-14 15:54:50 +02:00
XhmikosR
6d7bc54d22 Switch to Set#has() 2020-11-14 15:54:50 +02:00
XhmikosR
2e758f64cf Switch to Number properties 2020-11-14 15:54:50 +02:00
XhmikosR
b9f7668cf6 Switch to String.includes() 2020-11-14 15:54:50 +02:00
XhmikosR
470e99ed5f
tooltip.js: deduplicate _fixTitle() (#32124) 2020-11-14 15:43:25 +02:00
Gaël Poupard
44fef1677b
Simplify make-container() (#31735) 2020-11-14 14:33:10 +01:00
XhmikosR
4f8b243ac1
Fix .close instances (#32152) 2020-11-14 08:16:30 +02:00
XhmikosR
f39666b61c Move migration notes 2020-11-14 07:09:15 +02:00
Rohit Sharma
e530118117 Get only bs prefixed data attributes 2020-11-14 07:09:15 +02:00
XhmikosR
a7f04e9595 Update the remaining files 2020-11-14 07:09:15 +02:00
Mark Otto
b38110aa7d Add note in migration.md 2020-11-14 07:09:15 +02:00
XhmikosR
ccee9d5de7 Rename docs version data attribute 2020-11-14 07:09:15 +02:00
Rohit Sharma
418f17ee2b Add bs in data attributes
- Add `bs` in data APIs everywhere
- Update unit tests
2020-11-14 07:09:15 +02:00
Mark Otto
fe961c192d Move states docs and rewrite to match existing examples 2020-11-13 20:16:05 +01:00
Nikita Mikhaylov
1fddb48aff Add hover utilities
remome several hobers

refactoring hover utilities

refactoring hover utilities
2020-11-13 20:16:05 +01:00
Mark Otto
55f2192a39
Rename scale-color() function to shift-color() to avoid collision with Sass's own color function (#32149) 2020-11-13 20:50:59 +02:00
XhmikosR
483b6413e9
application.js: remove non-existent selector (#32131) 2020-11-13 18:56:04 +02:00
Jonathan
5d14d41531
Add hyphen between Sass and based (#32134)
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-11-13 18:49:55 +02:00
XhmikosR
d5b405ea9a
example.html: remove extra whitespace (#32143)
If we don't pass `class` to the `placeholder` shortcode, this resulted in two spaces before the `alt` attribute:

```html
{{< example >}}
{{< placeholder width="64" height="64" >}}
{{< /example >}}
```

```html
<img src="..."  alt="...">
```
2020-11-13 12:45:11 +02:00
Dylan Anderson
8a54cf598a
Update floating-labels.md (#32139)
Fixed grammar error.
2020-11-12 18:12:42 +02:00
Christian Oliff
7d64031c87
Fix caniuse.com URLS to prevent redirects (#32135)
Shorter URLS which are faster as they avoid HTTP redirects
2020-11-12 15:01:00 +02:00
XhmikosR
384eccbfaf
Prepare v5.0.0-alpha3 (#32122) 2020-11-11 19:07:37 +02:00
XhmikosR
7ad8967367
browsers-devices: add chomp (#32116)
This is to remove any trailing newlines in the `.browserslistrc` shortcode
2020-11-11 18:29:18 +02:00
Martijn Cuppens
3612a1e463
Use correct value order (#32121)
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-11-11 18:27:12 +02:00
Christian Oliff
bc4da38c8b
Minor improvements to the Alpha 3 changelog (#32126)
Small changes for improved consistency

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-11-11 18:22:42 +02:00
XhmikosR
bdf534df59
masthead: add newlines in the snippets and reindent (#32129)
* Update masthead-followup.html

* Update single.html
2020-11-11 18:18:47 +02:00
dependabot[bot]
2ab98a43f0
Bump autoprefixer from 10.0.1 to 10.0.2 (#32119)
Bumps [autoprefixer](https://github.com/postcss/autoprefixer) from 10.0.1 to 10.0.2.
- [Release notes](https://github.com/postcss/autoprefixer/releases)
- [Changelog](https://github.com/postcss/autoprefixer/blob/master/CHANGELOG.md)
- [Commits](https://github.com/postcss/autoprefixer/compare/10.0.1...10.0.2)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-11-10 17:18:18 +02:00
Mark Otto
b316e38d6a
Clarify JS bundle docs one more time (#32105)
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-11-10 09:35:40 +02:00
dependabot[bot]
df6eb9335b
Bump hugo-bin from 0.65.0 to 0.66.1 (#32114)
Bumps [hugo-bin](https://github.com/fenneclab/hugo-bin) from 0.65.0 to 0.66.1.
- [Release notes](https://github.com/fenneclab/hugo-bin/releases)
- [Commits](https://github.com/fenneclab/hugo-bin/compare/v0.65.0...v0.66.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-11-10 09:22:16 +02:00
dependabot[bot]
1569575860
Bump postcss from 8.1.4 to 8.1.6 (#32113)
Bumps [postcss](https://github.com/postcss/postcss) from 8.1.4 to 8.1.6.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/master/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.1.4...8.1.6)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-11-10 09:18:46 +02:00
dependabot[bot]
3576edd75a
Bump eslint from 7.12.1 to 7.13.0 (#32112)
Bumps [eslint](https://github.com/eslint/eslint) from 7.12.1 to 7.13.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v7.12.1...v7.13.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-11-10 09:13:43 +02:00
dependabot[bot]
b777d8c0f0
Bump sass from 1.28.0 to 1.29.0 (#32111)
Bumps [sass](https://github.com/sass/dart-sass) from 1.28.0 to 1.29.0.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.28.0...1.29.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-11-10 09:13:01 +02:00
XhmikosR
d4c3dc5351
docs.html: replace backslashes with forward slashes (#32102)
This resulted in wrong links when building the docs on Windows.
2020-11-09 20:47:55 +02:00
XhmikosR
411fc649f2
modal.html: use textContent (#32101)
We are not handling any HTML
2020-11-09 20:47:33 +02:00
XhmikosR
1d86fcee7b
search.js: check for search-input element early (#32100) 2020-11-09 20:47:02 +02:00
XhmikosR
e347441f88
search.js: use the current v5.getbootstrap.com URL (#32099) 2020-11-09 20:39:56 +02:00
XhmikosR
f091c0d1e0
package.json: fix clean-css level switch (#32097) 2020-11-09 20:36:42 +02:00
XhmikosR
c0d1ed57a3
karma.conf.js: break lines (#32093) 2020-11-09 20:33:20 +02:00
Mark Otto
fb3a57b7ba
Drop .btn-block classes, replace with utilities (#31995)
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-11-09 11:27:20 +02:00
Patrick H. Lauke
5bd7aa365c
[Docs] Changes to navbar documentation/explanation (#32090)
* Expand "external content" section for navbar

- rephrase the intro to make a bit more sense
- add note about dangers of focus/reading order problems

* Remove pointless intro sentence

* Small wording changes/additions/fixes
2020-11-09 07:18:17 +02:00
Mark Otto
649e525c62
Add .gap utilities (#32074)
* Add gap utilities

* Update .bundlewatch.config.json

* Revamp headings on this page for better organization

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-11-08 20:56:02 +02:00
Martijn Cuppens
67847b0aab
Add checks to fix color contrast issues (#32085) 2020-11-08 19:49:26 +01:00
XhmikosR
4ed742e4db
Partially revert "Move this to a partial to work around the stray p issue." (#32076)
This partially reverts commit 23ddfa99a3.
2020-11-08 20:36:46 +02:00
XhmikosR
270f7be9d2
download.md: link to JS files comparison too (#32087) 2020-11-08 20:33:04 +02:00
XhmikosR
afd5eea2a7
config.yml: remove the unused "expo" parameter (#32086) 2020-11-08 20:32:32 +02:00
XhmikosR
95df642ac9
reboot.md: mention "Liberation Sans" (#32084) 2020-11-08 20:31:19 +02:00
XhmikosR
bb6daab961 _variables.scss: reorder SVG attributes
This results in slightly better gzip compression
2020-11-06 14:49:41 +02:00
Martijn Cuppens
82ac087c4d Shade color for better color contrast 2020-11-06 14:49:41 +02:00
Martijn Cuppens
4c1f807142 Fix missing border & add transitions 2020-11-06 14:49:41 +02:00
Mark Otto
d6a72c4e1b Remove default transform-origin per code review 2020-11-06 14:49:41 +02:00
Mark Otto
3df4dd15e4 Update relative position hack for layers
Switches to slightly more verbose, but more consistent, z-index layering we use elsewhere (e.g., pagination). Doing this ensures we're not toggling position on and off, but rather z-index.
2020-11-06 14:49:41 +02:00
Mark Otto
6a37612540 Add dedicated accordion component based on Collapse JS 2020-11-06 14:49:41 +02:00
Mark Otto
f20335b6c1
Add .d-grid to our display utilities (#32066)
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-11-06 14:35:17 +02:00
XhmikosR
82f2416132
stylelint: pass the --rd flag (#32063)
* stylelint: pass the ` --rd` flag

Should report any needless disables

* Update _button-group.scss

* Update _floating-labels.scss
2020-11-06 12:00:03 +02:00
Emilio Cobos Álvarez
c1bb1acf54
Remove firefox workaround for ::file-selector-button margin. (#32064)
As per https://bugzilla.mozilla.org/show_bug.cgi?id=1673895,
this workaround shouldn't be necessary in FF83+.

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-11-06 10:46:49 +02:00
Mark Otto
09a09387f4
Add keyboard shortcut to focus search field (#31702)
* Documentation: Add slash key event to focus the input search.

* Add little tag for keyboard shortcut in the search field

* Use ctrl / as keyboard shortcut

* Update search.js

Co-authored-by: chuckrincon <chuckrincon@gmail.com>
Co-authored-by: Patrick H. Lauke <redux@splintered.co.uk>
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-11-05 08:56:02 -08:00
XhmikosR
f989f8fb3a Tighten bundlewatch limits. 2020-11-05 15:37:34 +02:00
XhmikosR
13572a6867 Remove the now unneeded polyfills. 2020-11-05 15:37:34 +02:00
XhmikosR
e8f1709adf Drop Legacy Edge support.
This allows us to move forward without being held back. Microsoft already replaces the Legacy Edge with the new one on supported Windows versions.
2020-11-05 15:37:34 +02:00
Mark Otto
0766a09605 Big copy edits and testing
Moves the remote utilities section to the using the api section and updates the code snippet to work. Previous one removed all utilities.
2020-11-05 07:50:09 +02:00
Luke-zhang-04
5e270a13d1 docs: add info on modifying and adding utilities 2020-11-05 07:50:09 +02:00
Mark Otto
3b985977c9 Editing and formatting utilities API page 2020-11-05 07:50:09 +02:00
XhmikosR
366b841f4f
deps: move sirv-cli to npx (#32056) 2020-11-04 20:35:03 +02:00
Gaël Poupard
230a41f1d7
Form file docs and overrides (#32058) 2020-11-03 18:22:35 +01:00
XhmikosR
b864973a94
dropdown.js: simplify code (#32055) 2020-11-03 16:43:20 +02:00
XhmikosR
ccac6a6219
Update devDependencies (#32048)
* hugo-bin                ^0.64.5  →  ^0.65.0
* karma-firefox-launcher   ^2.0.0  →   ^2.1.0
* linkinator               ^2.2.0  →   ^2.2.2
* postcss-cli              ^8.1.0  →   ^8.2.0
* rollup                  ^2.32.1  →  ^2.33.1
* sass                    ^1.27.1  →  ^1.28.0
2020-11-03 11:38:26 +02:00
Patrick H. Lauke
3b64580949
Make docs anchorjs links darker on keyboard focus (#32050)
* Make docs anchorjs links darker on keyboard focus

Not just on mouse hover

* Update site/assets/scss/_anchor.scss

Co-authored-by: Mark Otto <markd.otto@gmail.com>

Co-authored-by: Mark Otto <markd.otto@gmail.com>
2020-11-02 20:55:41 +00:00
Patrick H. Lauke
6682bba82d
Add callouts about using light colors ideally on a dark background (#32040)
* Add callout about using light colors ideally on a dark background

* Add callout to helpers > colored links as well
2020-11-02 20:39:49 +00:00
XhmikosR
c9f8fa45fb
tests: tweak Jasmine usage (#32046)
* jasmine/expect-matcher
* jasmine/prefer-jasmine-matcher

Found with `eslint-plugin-jasmine`
2020-11-02 16:13:24 +02:00
XhmikosR
e2697b0573
tests: fix sanitizer test. (#32045)
The test template does not include a `script` tag so the test always returned true.
2020-11-02 14:49:56 +02:00
XhmikosR
71010cb1e9
tests: switch to using toContain() to check for substring presence (#32043) 2020-11-02 14:42:40 +02:00
XhmikosR
e0b8fcdf89
ESLint: enable new-cap rule but ignore properties (#32036) 2020-11-01 16:31:11 +02:00
XhmikosR
59692ce862
karma: stop excluding polyfill.js from istanbul (#30740) 2020-11-01 15:52:24 +02:00
XhmikosR
421e2482e2
Streamline jQuery comment. (#32016) 2020-11-01 15:49:51 +02:00
Sascha
c21506d499
Fix TypeError when Bootstrap is included in head (#32024)
* extend jquery after domContentLoaded event is fired

* add unittest for util onDOMContentLoaded

* wait for trigger jquery event after domContentLoaded

* remove domcontentready from eventHandler

* move istanbul ignore statements to correct line

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-11-01 15:32:36 +02:00
Mitchell Bryson
3a5f9f5cf0
Check for data-interval on the first slide of carousel (#31818)
* check for data-interval on the first slide of carousel

* add updateInterval method for elements of a carousel

* add test for carousel interval being set during cycle

* update activeElement as soon as slide has finished (before transition end)

* only updateInterval before using it

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-11-01 14:36:50 +02:00
XhmikosR
cb45642918
CODE_OF_CONDUCT.md: fix redirect (#32033) 2020-11-01 14:30:36 +02:00
XhmikosR
6fea79b67c
Clarify PRs section (#32027) 2020-11-01 07:42:19 +02:00
XhmikosR
e6f8428b28
polyfill.js minor tweaks (#32011)
* rename function to `supportsScopeQuery`
* use a ternary in `findOne` function return value
2020-11-01 07:38:55 +02:00
Mark Otto
d1dcc1e5e6 Update instances of .font-weight to .fw 2020-10-31 19:19:52 +01:00
Mark Otto
4d1ee3b0a7 Add class name so the utility generates 2020-10-31 19:19:52 +01:00
XhmikosR
831fbd271f
Lint: stop ignoring package.js (#32021) 2020-10-31 09:30:57 +02:00
XhmikosR
b63066d630
toast.spec.js: fix typo (#32026) 2020-10-31 09:25:33 +02:00
Sead Memic
9cedf5b81e
Contrast colors added to theme-colors (#30044)
* Contrast colors added to theme-colors

* redundant colors removed froms docs, theme-colors refactor

* Add spaces for consistency

* Adapt to the recent changes

Co-authored-by: Sead Memic <sead.memic@intracto.com>
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-10-31 08:21:31 +02:00
Mark Otto
241f910dc5
Updated .rounded utilities (#31687)
* Updated rounded utilities to fix scale, but not rename anything else

* Rename rounded-pill to border-radius-pill to match

Also reorder some variables while I'm here to make more sense

* Updated rounded utilities to fix scale, but not rename anything else

* Rename rounded-pill to border-radius-pill to match

Also reorder some variables while I'm here to make more sense

* Small copy addition

* Add example modifier class for spacing

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-10-30 22:42:11 +02:00
Martijn Cuppens
a108e2bbf8
Fix color heights (#32023) 2020-10-30 22:36:44 +02:00
Patrick H. Lauke
6fc35e3231
Add cursor:pointer to color inputs (#32020)
* Add `cursor:pointer` for color inputs

* Add to migration guide
2020-10-30 18:03:07 +00:00
XhmikosR
ec05adee6d
Fix redirects (#32015) 2020-10-30 16:24:45 +02:00
Christian Oliff
87b367bdcf
Update Edge's Rendering Engine on CONTRIBUTING.md (#32008)
* Update Edge's Rendering Engine on CONTRIBUTING.md

Also updated the URL to prevent a HTTP redirect.

* Add 'Go to "Help > Send Feedback" from the browser' note

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-10-30 07:33:31 +02:00
XhmikosR
c196d21e7f
Remove obsolete prefixes (#32012) 2020-10-30 07:29:48 +02:00
XhmikosR
a6156ede32
CI: switch to Node.js 14. (#32003) 2020-10-29 19:38:31 +02:00
XhmikosR
e993ca76e0
CI: Skip dependabot PR branches. (#32006)
Also, reword Node.js setup step
2020-10-29 19:26:15 +02:00
XhmikosR
5076170d76
Minor Markdown fixes (#32009)
* add missing language after fenced block
* add missing end of file newline
2020-10-29 19:05:39 +02:00
XhmikosR
370e9ab19e Revert "clean-css: specify precision 6" 2020-10-29 15:34:41 +02:00
XhmikosR
c749da0b9f clean-css: specify precision 6
This is so that we get the same behavior for our minified files since dart-sass doesn't have a precision option and defaults to 10.
2020-10-29 15:34:41 +02:00
XhmikosR
c31aef49d9 Switch to dart-sass
node-sass is now deprecated
2020-10-29 15:34:41 +02:00
XhmikosR
94d7f6e5a9
Update to postcss 8.x. (#31739)
* autoprefixer 10.0.1
* find-unused-sass-variables 3.0.0
* postcss 8.1.4
* postcss-cli 8.1.0
2020-10-29 15:23:43 +02:00
Martijn Cuppens
ed1d867dd8
Remove explicit heights on form elements (#31993)
* Remove explicit heights

* Link to upstream bug

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-10-29 15:18:39 +02:00
Martijn Cuppens
2bd5ba147b
Remove bugreport.apple.com since it doesn't work (#32005) 2020-10-29 12:32:56 +02:00
Martijn Cuppens
b1c7d1d3a3 Use the same font on the button as on the field itself 2020-10-28 18:29:28 +01:00
Martijn Cuppens
b2be299f63 Fix Firefox padding issue
Caused by https://searchfox.org/mozilla-central/rev/0b7007a23bc16c857f894140e12f307bfeef2fdd/layout/style/res/forms.css#494
2020-10-28 18:29:28 +01:00
Martijn Cuppens
f236667483 Drop custom file upload plugin in favor of CSS 2020-10-28 18:29:28 +01:00
Mark Otto
3e2f9ab237
v5: Floating labels (#30449)
* v5: Promote floating labels example to component

- Adds new .form-floating
- Stubs out basics of a docs page
- Removes existing Example

* Update floating labels to support .form-select, make inputs and selects more consistent

- To do this, I made the .form-control and .form-select consistent in min-height vs height
- Removed some unused variables now
- Updated -color to be the -color because I don't know why this was any different before
- Update page to include some examples for layout, validation, and value
- Rewrite styles to not modify padding, but instead transform and opacity

* Streamline and bulletproof some things

- Apply some optimizations from code review
- Removed unecessary properties from the label
- Add some comments for what properties are required
- Move from fixed height for labels to height 100% so we can support textareas
- Improve docs a little bit, add ToC

* Move some values to variables, switch from scaling font-size to scale, update transforms

* Bring over changes from #30966 and add to them to tighten things up

* Delete the now unused example images

* Fix typo

* Allowlist the calc function

* Add transform-origin, update transform values

* Test out autofill fix

* Fix linter issue

* Mention it in the migration guide

* Bump bundlesize

* Add one more variable per review

* Shave .25rem off the height

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-10-27 20:45:48 -07:00
Jonathan
582f52e9e1 Add example with input group between two inputs 2020-10-27 17:40:58 -07:00
dependabot[bot]
1baa73591b
Bump eslint from 7.11.0 to 7.12.1 (#31990)
Bumps [eslint](https://github.com/eslint/eslint) from 7.11.0 to 7.12.1.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v7.11.0...v7.12.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-10-27 12:09:01 +02:00
dependabot[bot]
21daef7216
Bump @rollup/plugin-node-resolve from 9.0.0 to 10.0.0 (#31989)
Bumps [@rollup/plugin-node-resolve](https://github.com/rollup/plugins) from 9.0.0 to 10.0.0.
- [Release notes](https://github.com/rollup/plugins/releases)
- [Commits](https://github.com/rollup/plugins/compare/node-resolve-v9.0.0...node-resolve-v10.0.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-10-27 12:04:19 +02:00
dependabot[bot]
089dca2330
Bump @rollup/plugin-commonjs from 15.1.0 to 16.0.0 (#31988)
Bumps [@rollup/plugin-commonjs](https://github.com/rollup/plugins) from 15.1.0 to 16.0.0.
- [Release notes](https://github.com/rollup/plugins/releases)
- [Commits](https://github.com/rollup/plugins/compare/commonjs-v15.1.0...commonjs-v16.0.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-10-27 11:51:57 +02:00
dependabot[bot]
310fe17657
Bump karma-firefox-launcher from 1.3.0 to 2.0.0 (#31987)
Bumps [karma-firefox-launcher](https://github.com/karma-runner/karma-firefox-launcher) from 1.3.0 to 2.0.0.
- [Release notes](https://github.com/karma-runner/karma-firefox-launcher/releases)
- [Changelog](https://github.com/karma-runner/karma-firefox-launcher/blob/master/CHANGELOG.md)
- [Commits](https://github.com/karma-runner/karma-firefox-launcher/compare/v1.3.0...v2.0.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-10-27 11:51:09 +02:00
dependabot[bot]
899e573794
Bump rollup from 2.32.0 to 2.32.1 (#31985)
Bumps [rollup](https://github.com/rollup/rollup) from 2.32.0 to 2.32.1.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v2.32.0...v2.32.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-10-27 11:46:50 +02:00
Martijn Cuppens
642f40db25
Fix git conflicts after #30571 (#31982)
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-10-27 11:36:58 +02:00
XhmikosR
0a61269da8
list-group.md: fix snippet (#31981) 2020-10-27 11:24:28 +02:00
Mark Otto
e5fa708491
v5: Add .fs-* utilities for font-size and rename font-weight/-style utilities (#30571)
* v5: Add .fs-* utilities for font-size

- Adds new font-sizes Sass map
- Generates six new classes for setting only font-size
- Updates docs to mention this, including a scss-docs reference

* Update font utilities

- Make .fs-* utils for font-size use RFS
- Rename .font-weight-* utils to .fw-*
- Rename .font-style-* utils to .f-*
- Update order of utilities a bit
- Update docs to match

* Update migration docs to make note of these changes

* Be more specific in font-size docs about scale

* Update font-style abbreviation to .fst

* Fix font-weight property

* Formatting & font style utility fix

* Move to Alpha 3 migration section

* Update migration guide for more details, splitting alpha 2 stuff back to the appropriate section in Migration guide

* Tweak language on example

Co-authored-by: Martijn Cuppens <martijn.cuppens@gmail.com>
2020-10-26 16:42:07 -07:00
Martijn Cuppens
6df0cfecd1 Update migration guide 2020-10-26 15:23:25 -07:00
Martijn Cuppens
568c1d19d3 Fix border radius for inputs groups with validation 2020-10-26 15:23:25 -07:00
Martijn Cuppens
313f762d03 Fix border radii on validation messages 2020-10-26 15:23:25 -07:00
Martijn Cuppens
3e2c3298da Require .has-validation class to fix border radii on form elements 2020-10-26 15:23:25 -07:00
XhmikosR
eb91c2ec2a
CI: allow skipping BrowserStack (#31878)
This basically brings back the previous behavior we had on Travis CI, where if the commit message included `[ci skip]`, BrowserStack tests didn't run.

Additionally, this allows skipping BrowserStack if the commit message contains `[skip ci]` too.
2020-10-26 20:55:51 +02:00
Aleksandr Gorbatov
6c1df1b788
docs: Add Russian translation (#31828) 2020-10-26 20:46:53 +02:00
Mark Otto
478ff53ad1 Remove background-clip from .btn-close 2020-10-26 10:47:55 -07:00
XhmikosR
646a706764
Update CodeQL action (#31930)
Should run on PRs too.
2020-10-26 18:56:16 +02:00
Mark Otto
1b6caf69c2
Rename Navs to Navs and Tabs (#31965)
* Rename Navs to Navs and Tabs

Fixes #31378

* Add title to renamed file
* Update navs-tabs.md
* Add alias/redirect
* Fix references to renamed file, tweak title

Co-authored-by: Patrick H. Lauke <redux@splintered.co.uk>
2020-10-25 20:29:58 +00:00
Patrick H. Lauke
ed3097d145
Explicitly mention emoji fonts, tweak sentence in typography (#31960) 2020-10-25 19:21:42 +00:00
Mark Otto
594efec0f1
Don't wrap the code snippets in our docs (#31679)
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-10-23 01:06:52 +03:00
XhmikosR
0b5fc69a4e
Update anchor-js to v4.3.0. (#31951) 2020-10-22 19:46:26 +03:00
XhmikosR
5a3f273b60
Move href attribute first (#31835) 2020-10-22 09:38:15 +03:00
XhmikosR
afc0e83ecc
Update bs-table shortcode (#31803) 2020-10-22 09:32:46 +03:00
Gaël Poupard
341bd5aa46
Handle the Ubuntu sans-serif case (#31657)
On Ubuntu, our native font-stack doesn't output the same font on Firefox and Chrome. This is [a known aliasing issue](http://fontfamily.io/sans-serif) — check at the bottom, Ubuntu 14.04. Ubuntu 18.04 (my current) doesn't use the same (Firefox uses Liberation Sans, Chrome uses the default system font Ubuntu).

I'm inclined to prefer Liberation Sans since it's closer to Arial / Helvetica. This patch already exists in Boosted, didn't notice it was missing in bootstrap until today…

BTW, our linked Smashing Magazine's system fonts post mentions this and is even more accurate since it targets the three major Linux distributions. AFAIK this is not needed since [Liberation Sans is available everywhere](http://fontfamily.io/Liberation_Sans) — but we might go back to `Oxygen, Ubuntu, Cantarell`if we want to stick to system fonts.

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-10-22 09:28:19 +03:00
dependabot[bot]
ebd9eb105a
Bump nodemon from 2.0.5 to 2.0.6 (#31939)
Bumps [nodemon](https://github.com/remy/nodemon) from 2.0.5 to 2.0.6.
- [Release notes](https://github.com/remy/nodemon/releases)
- [Commits](https://github.com/remy/nodemon/compare/v2.0.5...v2.0.6)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-10-20 12:38:50 +03:00
XhmikosR
4fca7ddd73 Update optimize.md
For some weird reason, using "Exports" as the callout header leads to TypeError coming from clipboard.js
2020-10-20 11:17:06 +03:00
Johann-S
480561c64b mention default export in our docs optimize section 2020-10-20 11:17:06 +03:00
Pascal Pepe
9cc24cf549 Update docs example on how to optimize JavaScript bundle 2020-10-20 11:17:06 +03:00
XhmikosR
c85e863536
Pin terser to v5.1.0 and regenerate package-lock.json (#31928) 2020-10-19 16:05:25 +03:00
Patrick H. Lauke
6b25abfdcc
Small typo - remove the unnecessary "the" (#31932) 2020-10-19 15:33:03 +03:00
XhmikosR
e6618a6ebb
docs: switch to fenced codeblocks (#31806) 2020-10-19 12:56:49 +03:00
Gaël Poupard
48177c946f
docs(migration): mention spinners slow down (#31929) 2020-10-19 12:06:14 +03:00
Gaël Poupard
ed2f43e1b9
Apply smooth-scroll when prefers-reduced-motion: no-preference (#31877)
* feat(reboot): apply smooth-scroll when not prefers-reduced-motion

* docs(migration): mention scroll-behavior in alpha3

* docs(accessibility): mention scroll-behavior in reduced motion section

* docs(accessibility): rewording smooth scroll sentence

* feat(variable): introduce enable-smooth-scroll variable

* docs(accessibility): reword smooth-scroll sentence

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-10-19 12:00:37 +03:00
Gaël Poupard
ece40bcd11
Slow down spinners when prefers-reduced-motion: reduce (#31882)
* feature(spinners): slow down spinners when prefers-reduced-motion

* docs(spinners): add reduced motion callout and mention slowing down in accessibility page

* Update spinners.md

* docs(accessibility): rewording

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
Co-authored-by: Patrick H. Lauke <redux@splintered.co.uk>
2020-10-19 11:42:19 +03:00
Gaël Poupard
e0a3b7ef0d docs(forms): use a legend for fieldset instead of aria-label 2020-10-19 11:38:22 +03:00
Gaël Poupard
116deb27c5 docs(forms): fix incorrect legend nesting in fieldset 2020-10-19 11:38:22 +03:00
Gaël Poupard
9589d9c54a docs(forms): drop useless text faking a label in horizontal forms example 2020-10-19 11:38:22 +03:00
XhmikosR
28f18f84a7
docs: switch to suggesting jsDelivr as a CDN (#31894) 2020-10-19 11:25:31 +03:00
dependabot[bot]
5ee5792579
Bump eslint-config-xo from 0.32.1 to 0.33.1 (#31925)
Bumps [eslint-config-xo](https://github.com/xojs/eslint-config-xo) from 0.32.1 to 0.33.1.
- [Release notes](https://github.com/xojs/eslint-config-xo/releases)
- [Commits](https://github.com/xojs/eslint-config-xo/compare/v0.32.1...v0.33.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-10-19 11:23:48 +03:00
dependabot[bot]
c486b1f77f
Bump eslint-plugin-unicorn from 22.0.0 to 23.0.0 (#31921)
Bumps [eslint-plugin-unicorn](https://github.com/sindresorhus/eslint-plugin-unicorn) from 22.0.0 to 23.0.0.
- [Release notes](https://github.com/sindresorhus/eslint-plugin-unicorn/releases)
- [Commits](https://github.com/sindresorhus/eslint-plugin-unicorn/compare/v22.0.0...v23.0.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-10-19 11:20:23 +03:00
dependabot[bot]
608767dfea
Bump @babel/core from 7.11.6 to 7.12.3 (#31927)
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.11.6 to 7.12.3.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.12.3/packages/babel-core)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-10-19 11:13:19 +03:00
dependabot[bot]
54a53964d1
Bump @babel/cli from 7.11.6 to 7.12.1 (#31926)
Bumps [@babel/cli](https://github.com/babel/babel/tree/HEAD/packages/babel-cli) from 7.11.6 to 7.12.1.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.12.1/packages/babel-cli)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-10-19 11:08:21 +03:00
dependabot[bot]
667309f11d
Bump @babel/preset-env from 7.11.5 to 7.12.1 (#31923)
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.11.5 to 7.12.1.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.12.1/packages/babel-preset-env)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-10-19 11:04:28 +03:00
dependabot[bot]
8dfec110c7
Bump nodemon from 2.0.4 to 2.0.5 (#31924)
Bumps [nodemon](https://github.com/remy/nodemon) from 2.0.4 to 2.0.5.
- [Release notes](https://github.com/remy/nodemon/releases)
- [Commits](https://github.com/remy/nodemon/compare/v2.0.4...v2.0.5)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-10-19 10:58:08 +03:00
dependabot[bot]
332c04e918
Bump linkinator from 2.1.3 to 2.2.0 (#31922)
Bumps [linkinator](https://github.com/JustinBeckwith/linkinator) from 2.1.3 to 2.2.0.
- [Release notes](https://github.com/JustinBeckwith/linkinator/releases)
- [Commits](https://github.com/JustinBeckwith/linkinator/compare/v2.1.3...v2.2.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-10-19 10:53:13 +03:00
dependabot[bot]
ca6e0ecd67
Bump rollup from 2.29.0 to 2.32.0 (#31920)
Bumps [rollup](https://github.com/rollup/rollup) from 2.29.0 to 2.32.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v2.29.0...v2.32.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-10-19 10:43:35 +03:00
dependabot[bot]
fcf9bbe941
Bump hugo-bin from 0.64.4 to 0.64.5 (#31919)
Bumps [hugo-bin](https://github.com/fenneclab/hugo-bin) from 0.64.4 to 0.64.5.
- [Release notes](https://github.com/fenneclab/hugo-bin/releases)
- [Commits](https://github.com/fenneclab/hugo-bin/compare/v0.64.4...v0.64.5)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-10-19 10:40:24 +03:00
dependabot[bot]
defbbfc4b8
Bump sirv-cli from 1.0.6 to 1.0.8 (#31918)
Bumps [sirv-cli](https://github.com/lukeed/sirv) from 1.0.6 to 1.0.8.
- [Release notes](https://github.com/lukeed/sirv/releases)
- [Commits](https://github.com/lukeed/sirv/compare/v1.0.6...v1.0.8)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-10-19 10:37:18 +03:00
XhmikosR
fb30989ee2
Update manifest.json (#31893)
Switch to relative URLs so that we don't need to change the path with every major/minor release
2020-10-15 16:32:52 +03:00
Patrick H. Lauke
836a4c0bd6
Remove redundant visually hidden "(current)" from pagination controls (#31892)
* Replace visually hidden span with aria-current in tests

* Remove redundant visually hidden "(current)" when `aria-current` already used

Closes #31891
2020-10-14 11:59:43 +01:00
Mark Otto
0205a016b1 Update copy and add utilities to example 2020-10-13 16:48:17 +03:00
Gaurav Behere
776afb8e9e Adding overflow visible as util 2020-10-13 16:48:17 +03:00
XhmikosR
f3cfc8e7ec
Revert "Improve callout shortcode. (#31802)" (#31871)
This reverts commit 5c6925385e.
2020-10-13 16:37:21 +03:00
Mark Otto
4c3c552f93
Split up dropdown sizing docs to improve rendering (#31861)
- Drop the included .btn-toolbar, no need
- Split large and small button examples

Closes #31841

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-10-13 15:14:55 +03:00
dependabot[bot]
b81f1309c7
Bump hugo-bin from 0.63.1 to 0.64.4 (#31872)
Bumps [hugo-bin](https://github.com/fenneclab/hugo-bin) from 0.63.1 to 0.64.4.
- [Release notes](https://github.com/fenneclab/hugo-bin/releases)
- [Commits](https://github.com/fenneclab/hugo-bin/compare/v0.63.1...v0.64.4)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-10-13 12:43:15 +03:00
dependabot[bot]
adc2b676e5
Bump rollup from 2.28.2 to 2.29.0 (#31875)
Bumps [rollup](https://github.com/rollup/rollup) from 2.28.2 to 2.29.0.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v2.28.2...v2.29.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-10-13 12:31:55 +03:00
dependabot[bot]
5babcdb2ac
Bump eslint from 7.10.0 to 7.11.0 (#31873)
Bumps [eslint](https://github.com/eslint/eslint) from 7.10.0 to 7.11.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v7.10.0...v7.11.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-10-13 12:29:43 +03:00
Martijn Cuppens
cdc12165a9
Colors rewrite (#30622) 2020-10-13 09:58:06 +02:00
XhmikosR
5c6925385e
Improve callout shortcode. (#31802)
Remove the `markdownify` call, and instead rely on Hugo's proper syntax; `{{% callout %}}` when we want to the content to be processed as Markdown.

This allows for stuff like:

{{% callout info %}}
##### I'm an info callout!

```css
.foo {
  color: #fff;
}
```

{{< example >}}
<div class="alert alert-warning alert-dismissible fade show" role="alert">
  <strong>Holy guacamole!</strong> You should check in on some of those fields below.
  <button type="button" class="btn-close" data-dismiss="alert" aria-label="Close"></button>
</div>
{{< /example >}}
{{% /callout %}}
2020-10-12 09:06:06 +03:00
Ankit Mishra
c8523d71e7
Alert : Added z-index for close button (#31826)
Co-authored-by: Ankit Mishra <ankitmishra@Ankit-MacBook-Pro.local>
Co-authored-by: Martijn Cuppens <martijn.cuppens@gmail.com>
2020-10-07 16:03:53 +02:00
dependabot[bot]
d6bf562501
Bump linkinator from 2.1.2 to 2.1.3 (#31843)
Bumps [linkinator](https://github.com/JustinBeckwith/linkinator) from 2.1.2 to 2.1.3.
- [Release notes](https://github.com/JustinBeckwith/linkinator/releases)
- [Commits](https://github.com/JustinBeckwith/linkinator/compare/v2.1.2...v2.1.3)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-10-06 15:12:43 +03:00
XhmikosR
0c1651ee9d
Remove Manipulator.toggleClass (#31842)
It's only used in one place so it makes more sense to remove it for the time being.
2020-10-05 18:07:49 +03:00
Gaël Poupard
00dd55269a
docs: fix contrast color against .bg-info (#31839)
* docs(badge): ensure info badge's contrast

* docs(colors): fix contrasts in example using .bg-info

* Update card.md

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-10-05 16:47:46 +03:00
Ankit Mishra
ce1db01af0
carousel: add missing to description and fix nextwhenvisible description (#31809) 2020-10-05 15:49:02 +03:00
Rohit Sharma
e4be0640ee
Explain the "dispose" method appropriately (#30838) 2020-10-02 14:58:59 +03:00
Christian Oliff
c5966de273
Update btn-close-white docs to filter (not backdrop-filter) (#31796)
This PR fixes an error in the v5 docs. The btn-close-white class actually uses the filter (not backdrop-filter)
2020-09-30 14:57:00 +03:00
Justin
dd5ad8fb52
webpack.md: Replace "both of them" with "it" (#31794)
🎉 Yay! I helped!

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-09-30 08:57:28 +03:00
Mopsan
6105ebfe8d
validation.md: fix _validation.scss file reference (#31795) 2020-09-30 08:52:24 +03:00
Mark Otto
3cf51c6ac9
Add Sass variable for CSS variable prefix (#31684)
* Add Sass variable for CSS variable prefix

* Update other --bs-* var instances
2020-09-30 08:32:58 +03:00
Gaël Poupard
7e195a8d22
feat(colors): bump dark to gray-900 (#30550)
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-09-29 22:09:38 +03:00
Kyle Tsang
905b1b11b3
docs(Modal): Add xxl fullscreen example (#31583)
* docs(Modal): Add xxl fullscreen example

* Update modal.md

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-09-29 21:56:01 +03:00
Nikita Mikhaylov
0cb880c7fb
Fix disabled checkbox toggle buttons (#31651)
* fix disabled checkbox toggle buttons

* add disabled checks-radios examples in documentation

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-09-29 21:49:50 +03:00
Mark Otto
319954d369
v5: Add disabled examples for .form-control, .form-select, and .form-range (#31686)
* Add disabled state example to the .form-control page

* Document disabled attribute on select too

* Add disabled example for file input

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-09-29 21:39:37 +03:00
Martijn Cuppens
cda9278f49
Suppress flexbox side effects in breadcrumb (#31700)
* Suppress flexbox side effects

* Trailing whitesapce

Co-authored-by: Mark Otto <markd.otto@gmail.com>
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-09-29 21:32:27 +03:00
XhmikosR
cef7e4d6e8
Update .gitignore (#31783)
Add vscode and netlify folders
2020-09-29 19:33:09 +03:00
XhmikosR
42ae96f26d
Update social.html: use article when it's a page (#31775) 2020-09-29 19:28:03 +03:00
XhmikosR
476bd883ad
docs: remove pixels from SVGs (#31791)
It's the default unit.
2020-09-29 19:23:55 +03:00
XhmikosR
b083c9639f
Prepare v5.0.0-alpha2. (#31748) 2020-09-29 18:33:00 +03:00
XhmikosR
d862a9f276
Revert #31761 (#31792)
Revert "Re-optimize SVG"

This reverts commit 331566bc85.

Revert "Move homepage-hero.svg to an img tag"

This reverts commit c24acf8d2c.
2020-09-29 18:24:30 +03:00
Mark Otto
187213305d
Change grid classes to utilities to make vertical nav example more resilient to narrow viewports (#31785)
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-09-29 10:11:46 +03:00
XhmikosR
4238a04de3 Compress the new images 2020-09-28 19:22:53 +03:00
Mark Otto
661577173d Add new Bootstrap Icons homepage images 2020-09-28 19:22:53 +03:00
XhmikosR
ec812dcf80
Replace ellipsis Unicode symbol with three dots. (#31774) 2020-09-28 15:01:25 +03:00
XhmikosR
c30b6df54b
Update stylelint to v13.7.2 (#31726) 2020-09-28 14:57:48 +03:00
dependabot[bot]
e03c37f75e
Bump eslint-plugin-import from 2.22.0 to 2.22.1 (#31781)
Bumps [eslint-plugin-import](https://github.com/benmosher/eslint-plugin-import) from 2.22.0 to 2.22.1.
- [Release notes](https://github.com/benmosher/eslint-plugin-import/releases)
- [Changelog](https://github.com/benmosher/eslint-plugin-import/blob/master/CHANGELOG.md)
- [Commits](https://github.com/benmosher/eslint-plugin-import/compare/v2.22.0...v2.22.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-09-28 14:02:41 +03:00
dependabot[bot]
09da023591
Bump rollup from 2.28.1 to 2.28.2 (#31779)
Bumps [rollup](https://github.com/rollup/rollup) from 2.28.1 to 2.28.2.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v2.28.1...v2.28.2)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-09-28 13:59:02 +03:00
dependabot[bot]
79087c8685
Bump eslint from 7.9.0 to 7.10.0 (#31778)
Bumps [eslint](https://github.com/eslint/eslint) from 7.9.0 to 7.10.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v7.9.0...v7.10.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-09-28 13:57:19 +03:00
dependabot[bot]
2db73037c6
Bump karma from 5.2.2 to 5.2.3 (#31777)
Bumps [karma](https://github.com/karma-runner/karma) from 5.2.2 to 5.2.3.
- [Release notes](https://github.com/karma-runner/karma/releases)
- [Changelog](https://github.com/karma-runner/karma/blob/master/CHANGELOG.md)
- [Commits](https://github.com/karma-runner/karma/compare/v5.2.2...v5.2.3)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2020-09-28 13:50:31 +03:00
dependabot[bot]
8d453b3a03
Bump bundlewatch from 0.3.0 to 0.3.1 (#31776)
Bumps [bundlewatch](https://github.com/bundlewatch/bundlewatch) from 0.3.0 to 0.3.1.
- [Release notes](https://github.com/bundlewatch/bundlewatch/releases)
- [Commits](https://github.com/bundlewatch/bundlewatch/compare/v0.3.0...v0.3.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-09-28 13:47:17 +03:00
XhmikosR
6f3a7b1bcf
_variables: change $btn-close-bg's attribute order (#31772)
Just to save a few bytes from the compressed files.
2020-09-28 13:18:12 +03:00
XhmikosR
668ff4e62e
Tweak versions page columns (#31754) 2020-09-28 12:40:34 +03:00
XhmikosR
331566bc85 Re-optimize SVG 2020-09-28 11:03:21 +03:00
XhmikosR
c24acf8d2c Move homepage-hero.svg to an img tag 2020-09-28 11:03:21 +03:00
XhmikosR
e268e1c481 Minor wording fixes 2020-09-28 10:58:51 +03:00
XhmikosR
1b0db5944b Fix links 2020-09-28 10:58:51 +03:00
Mark Otto
d4ea73fef1 v5 alpha 2 migration guide updates 2020-09-28 10:58:51 +03:00
Mark Otto
b060c9e3d2
Convert SVGs in navbar and subnav to pixels (#31767) 2020-09-28 10:39:29 +03:00
420 changed files with 45277 additions and 17480 deletions

View file

@ -1,11 +1,14 @@
# https://github.com/browserslist/browserslist#readme # https://github.com/browserslist/browserslist#readme
>= 1% >= 0.5%
last 1 major version last 2 major versions
not dead not dead
Chrome >= 60 Chrome >= 60
Firefox >= 60 Firefox >= 60
Edge >= 16 # 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 iOS >= 10
Safari >= 10 Safari >= 10
Android >= 6 Android >= 6

View file

@ -10,7 +10,7 @@
}, },
{ {
"path": "./dist/css/bootstrap-reboot.css", "path": "./dist/css/bootstrap-reboot.css",
"maxSize": "2 kB" "maxSize": "2.25 kB"
}, },
{ {
"path": "./dist/css/bootstrap-reboot.min.css", "path": "./dist/css/bootstrap-reboot.min.css",
@ -18,11 +18,11 @@
}, },
{ {
"path": "./dist/css/bootstrap-utilities.css", "path": "./dist/css/bootstrap-utilities.css",
"maxSize": "7 kB" "maxSize": "7.5 kB"
}, },
{ {
"path": "./dist/css/bootstrap-utilities.min.css", "path": "./dist/css/bootstrap-utilities.min.css",
"maxSize": "6 kB" "maxSize": "6.75 kB"
}, },
{ {
"path": "./dist/css/bootstrap.css", "path": "./dist/css/bootstrap.css",
@ -30,31 +30,31 @@
}, },
{ {
"path": "./dist/css/bootstrap.min.css", "path": "./dist/css/bootstrap.min.css",
"maxSize": "21.5 kB" "maxSize": "22 kB"
}, },
{ {
"path": "./dist/js/bootstrap.bundle.js", "path": "./dist/js/bootstrap.bundle.js",
"maxSize": "51 kB" "maxSize": "41 kB"
}, },
{ {
"path": "./dist/js/bootstrap.bundle.min.js", "path": "./dist/js/bootstrap.bundle.min.js",
"maxSize": "22.5 kB" "maxSize": "21.5 kB"
}, },
{ {
"path": "./dist/js/bootstrap.esm.js", "path": "./dist/js/bootstrap.esm.js",
"maxSize": "28 kB" "maxSize": "27 kB"
}, },
{ {
"path": "./dist/js/bootstrap.esm.min.js", "path": "./dist/js/bootstrap.esm.min.js",
"maxSize": "19 kB" "maxSize": "18 kB"
}, },
{ {
"path": "./dist/js/bootstrap.js", "path": "./dist/js/bootstrap.js",
"maxSize": "29 kB" "maxSize": "28 kB"
}, },
{ {
"path": "./dist/js/bootstrap.min.js", "path": "./dist/js/bootstrap.min.js",
"maxSize": "16 kB" "maxSize": "15.5 kB"
} }
], ],
"ci": { "ci": {

View file

@ -4,4 +4,3 @@
/_gh_pages/ /_gh_pages/
/js/coverage/ /js/coverage/
/site/static/sw.js /site/static/sw.js
/package.js

View file

@ -25,7 +25,12 @@
"error", "error",
"always-multiline" "always-multiline"
], ],
"new-cap": "off", "new-cap": [
"error",
{
"properties": false
}
],
"no-console": "error", "no-console": "error",
"object-curly-spacing": [ "object-curly-spacing": [
"error", "error",
@ -38,21 +43,16 @@
], ],
"unicorn/consistent-function-scoping": "off", "unicorn/consistent-function-scoping": "off",
"unicorn/explicit-length-check": "off", "unicorn/explicit-length-check": "off",
"unicorn/import-index": "off", "unicorn/no-array-callback-reference": "off",
"unicorn/no-fn-reference-in-iterator": "off",
"unicorn/no-for-loop": "off", "unicorn/no-for-loop": "off",
"unicorn/no-null": "off", "unicorn/no-null": "off",
"unicorn/no-unused-properties": "error", "unicorn/no-unused-properties": "error",
"unicorn/no-useless-undefined": "off", "unicorn/no-useless-undefined": "off",
"unicorn/prefer-array-find": "off", "unicorn/prefer-dom-node-append": "off",
"unicorn/prefer-dataset": "off", "unicorn/prefer-dom-node-dataset": "off",
"unicorn/prefer-includes": "off", "unicorn/prefer-dom-node-remove": "off",
"unicorn/prefer-node-append": "off",
"unicorn/prefer-node-remove": "off",
"unicorn/prefer-number-properties": "off",
"unicorn/prefer-optional-catch-binding": "off", "unicorn/prefer-optional-catch-binding": "off",
"unicorn/prefer-query-selector": "off", "unicorn/prefer-query-selector": "off",
"unicorn/prefer-set-has": "off",
"unicorn/prevent-abbreviations": "off" "unicorn/prevent-abbreviations": "off"
} }
} }

View file

@ -101,12 +101,12 @@ Example:
Sometimes bugs reported to us are actually caused by bugs in the browser(s) themselves, not bugs in Bootstrap per se. Sometimes bugs reported to us are actually caused by bugs in the browser(s) themselves, not bugs in Bootstrap per se.
| Vendor(s) | Browser(s) | Rendering engine | Bug reporting website(s) | Notes | | Vendor(s) | Browser(s) | Rendering engine | Bug reporting website(s) | Notes |
| ------------- | ---------------------------- | ---------------- | ------------------------------------------------------------------------------------- | -------------------------------------------------------- | | ------------- | ---------------------------- | ---------------- | ------------------------------------------------------ | -------------------------------------------------------- |
| Mozilla | Firefox | Gecko | https://bugzilla.mozilla.org/enter_bug.cgi | "Core" is normally the right product option to choose. | | Mozilla | Firefox | Gecko | https://bugzilla.mozilla.org/enter_bug.cgi | "Core" is normally the right product option to choose. |
| Apple | Safari | WebKit | https://bugs.webkit.org/enter_bug.cgi?product=WebKit <br> https://bugreport.apple.com/ | In Apple's bug reporter, choose "Safari" as the product. | | Apple | Safari | WebKit | https://bugs.webkit.org/enter_bug.cgi?product=WebKit | In Apple's bug reporter, choose "Safari" as the product. |
| Google, Opera | Chrome, Chromium, Opera v15+ | Blink | https://bugs.chromium.org/p/chromium/issues/list | Click the "New issue" button. | | Google, Opera | Chrome, Chromium, Opera v15+ | Blink | https://bugs.chromium.org/p/chromium/issues/list | Click the "New issue" button. |
| Microsoft | Edge | EdgeHTML | https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/ | | | Microsoft | Edge | Blink | https://developer.microsoft.com/en-us/microsoft-edge/ | Go to "Help > Send Feedback" from the browser |
## Feature requests ## Feature requests
@ -123,18 +123,20 @@ Good pull requests—patches, improvements, new features—are a fantastic
help. They should remain focused in scope and avoid containing unrelated help. They should remain focused in scope and avoid containing unrelated
commits. commits.
**Please ask first** before embarking on any significant pull request (e.g. **Please ask first** before embarking on any **significant** pull request (e.g.
implementing features, refactoring code, porting to a different language), implementing features, refactoring code, porting to a different language),
otherwise you risk spending a lot of time working on something that the otherwise you risk spending a lot of time working on something that the
project's developers might not want to merge into the project. project's developers might not want to merge into the project. For trivial
things, or things that don't require a lot of your time, you can go ahead and
make a PR.
Please adhere to the [coding guidelines](#code-guidelines) used throughout the Please adhere to the [coding guidelines](#code-guidelines) used throughout the
project (indentation, accurate comments, etc.) and any other requirements project (indentation, accurate comments, etc.) and any other requirements
(such as test coverage). (such as test coverage).
**Do not edit `bootstrap.css`, or `bootstrap.js` **Do not edit `bootstrap.css` or `bootstrap.js`, and do not commit
directly!** Those files are automatically generated. You should edit the any dist files (`dist/` or `js/dist`).** Those files are automatically generated by our build tools. You should
source files in [`/bootstrap/scss/`](https://github.com/twbs/bootstrap/tree/main/scss) edit the source files in [`/bootstrap/scss/`](https://github.com/twbs/bootstrap/tree/main/scss)
and/or [`/bootstrap/js/src/`](https://github.com/twbs/bootstrap/tree/main/js/src) instead. and/or [`/bootstrap/js/src/`](https://github.com/twbs/bootstrap/tree/main/js/src) instead.
Similarly, when contributing to Bootstrap's documentation, you should edit the Similarly, when contributing to Bootstrap's documentation, you should edit the

View file

@ -15,3 +15,10 @@ updates:
- v5 - v5
versioning-strategy: increase versioning-strategy: increase
rebase-strategy: disabled rebase-strategy: disabled
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: weekly
day: tuesday
time: "12:00"
timezone: Europe/Athens

View file

@ -4,6 +4,9 @@ prerelease: true
exclude-labels: exclude-labels:
- 'skip-changelog' - 'skip-changelog'
categories: categories:
- title: '❗ Breaking Changes'
labels:
- 'breaking-change'
- title: '🚀 Features' - title: '🚀 Features'
labels: labels:
- 'new-feature' - 'new-feature'
@ -14,6 +17,9 @@ categories:
- 'fix' - 'fix'
- 'bugfix' - 'bugfix'
- 'bug' - 'bug'
- title: '⚡ Performance Improvements'
labels:
- 'performance'
- title: '🎨 CSS' - title: '🎨 CSS'
labels: labels:
- 'css' - 'css'
@ -26,11 +32,19 @@ categories:
- title: '🌎 Accessibility' - title: '🌎 Accessibility'
labels: labels:
- 'accessibility' - 'accessibility'
- title: '🔧 Utility API'
labels:
- 'utility API'
- 'utilities'
- title: '🏭 Tests'
labels:
- 'tests'
- title: '🧰 Misc' - title: '🧰 Misc'
labels: labels:
- 'build' - 'build'
- 'meta' - 'meta'
- 'chore' - 'chore'
- 'CI'
- title: '📦 Dependencies' - title: '📦 Dependencies'
labels: labels:
- 'dependencies' - 'dependencies'

View file

@ -1,20 +1,24 @@
name: BrowserStack name: BrowserStack
on: [push]
on:
push:
env: env:
CI: true FORCE_COLOR: 2
NODE: 12.x NODE: 14
jobs: jobs:
browserstack: browserstack:
runs-on: ubuntu-latest runs-on: ubuntu-latest
if: github.repository == 'twbs/bootstrap' if: github.repository == 'twbs/bootstrap' && (!contains(github.event.commits[0].message, '[ci skip]') && !contains(github.event.commits[0].message, '[skip ci]'))
timeout-minutes: 30
steps: steps:
- name: Clone repository - name: Clone repository
uses: actions/checkout@v2 uses: actions/checkout@v2
- name: Set Node.js version - name: Set up Node.js
uses: actions/setup-node@v1 uses: actions/setup-node@v2
with: with:
node-version: "${{ env.NODE }}" node-version: "${{ env.NODE }}"
@ -24,8 +28,8 @@ jobs:
path: ~/.npm path: ~/.npm
key: ${{ runner.os }}-node-v${{ env.NODE }}-${{ hashFiles('package.json') }}-${{ hashFiles('package-lock.json') }} key: ${{ runner.os }}-node-v${{ env.NODE }}-${{ hashFiles('package.json') }}-${{ hashFiles('package-lock.json') }}
restore-keys: | restore-keys: |
${{ runner.OS }}-node-v${{ env.NODE }}-${{ hashFiles('package.json') }}-${{ hashFiles('package-lock.json') }} ${{ runner.os }}-node-v${{ env.NODE }}-${{ hashFiles('package.json') }}-${{ hashFiles('package-lock.json') }}
${{ runner.OS }}-node-v${{ env.NODE }}- ${{ runner.os }}-node-v${{ env.NODE }}-
- name: Install npm dependencies - name: Install npm dependencies
run: npm ci run: npm ci

View file

@ -1,8 +1,14 @@
name: Bundlewatch name: Bundlewatch
on: [push, pull_request]
on:
push:
branches-ignore:
- "dependabot/**"
pull_request:
env: env:
CI: true FORCE_COLOR: 2
NODE: 12.x NODE: 14
jobs: jobs:
bundlewatch: bundlewatch:
@ -12,8 +18,8 @@ jobs:
- name: Clone repository - name: Clone repository
uses: actions/checkout@v2 uses: actions/checkout@v2
- name: Set Node.js version - name: Set up Node.js
uses: actions/setup-node@v1 uses: actions/setup-node@v2
with: with:
node-version: "${{ env.NODE }}" node-version: "${{ env.NODE }}"
@ -23,8 +29,8 @@ jobs:
path: ~/.npm path: ~/.npm
key: ${{ runner.os }}-node-v${{ env.NODE }}-${{ hashFiles('package.json') }}-${{ hashFiles('package-lock.json') }} key: ${{ runner.os }}-node-v${{ env.NODE }}-${{ hashFiles('package.json') }}-${{ hashFiles('package-lock.json') }}
restore-keys: | restore-keys: |
${{ runner.OS }}-node-v${{ env.NODE }}-${{ hashFiles('package.json') }}-${{ hashFiles('package-lock.json') }} ${{ runner.os }}-node-v${{ env.NODE }}-${{ hashFiles('package.json') }}-${{ hashFiles('package-lock.json') }}
${{ runner.OS }}-node-v${{ env.NODE }}- ${{ runner.os }}-node-v${{ env.NODE }}-
- name: Install npm dependencies - name: Install npm dependencies
run: npm ci run: npm ci

View file

@ -1,22 +1,33 @@
name: "Code Scanning - Action" name: "CodeQL"
on: on:
push: push:
branches:
- main
- v4-dev
- "!dependabot/**"
pull_request:
# The branches below must be a subset of the branches above
branches:
- main
- v4-dev
schedule: schedule:
- cron: "0 0 * * 0" - cron: "0 2 * * 5"
jobs: jobs:
CodeQL-Build: analyze:
name: Analyze
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v2 uses: actions/checkout@v2
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL - name: Initialize CodeQL
uses: github/codeql-action/init@v1 uses: github/codeql-action/init@v1
with: with:
languages: javascript languages: "javascript"
- name: Autobuild - name: Autobuild
uses: github/codeql-action/autobuild@v1 uses: github/codeql-action/autobuild@v1

View file

@ -1,8 +1,14 @@
name: CSS name: CSS
on: [push, pull_request]
on:
push:
branches-ignore:
- "dependabot/**"
pull_request:
env: env:
CI: true FORCE_COLOR: 2
NODE: 12.x NODE: 14
jobs: jobs:
css: css:
@ -12,8 +18,8 @@ jobs:
- name: Clone repository - name: Clone repository
uses: actions/checkout@v2 uses: actions/checkout@v2
- name: Set Node.js version - name: Set up Node.js
uses: actions/setup-node@v1 uses: actions/setup-node@v2
with: with:
node-version: "${{ env.NODE }}" node-version: "${{ env.NODE }}"
@ -23,8 +29,8 @@ jobs:
path: ~/.npm path: ~/.npm
key: ${{ runner.os }}-node-v${{ env.NODE }}-${{ hashFiles('package.json') }}-${{ hashFiles('package-lock.json') }} key: ${{ runner.os }}-node-v${{ env.NODE }}-${{ hashFiles('package.json') }}-${{ hashFiles('package-lock.json') }}
restore-keys: | restore-keys: |
${{ runner.OS }}-node-v${{ env.NODE }}-${{ hashFiles('package.json') }}-${{ hashFiles('package-lock.json') }} ${{ runner.os }}-node-v${{ env.NODE }}-${{ hashFiles('package.json') }}-${{ hashFiles('package-lock.json') }}
${{ runner.OS }}-node-v${{ env.NODE }}- ${{ runner.os }}-node-v${{ env.NODE }}-
- name: Install npm dependencies - name: Install npm dependencies
run: npm ci run: npm ci

View file

@ -1,24 +0,0 @@
name: CSS (Dart Sass)
on: [push, pull_request]
env:
CI: true
NODE: 12.x
jobs:
css:
runs-on: ubuntu-latest
steps:
- name: Clone repository
uses: actions/checkout@v2
- name: Set Node.js version
uses: actions/setup-node@v1
with:
node-version: "${{ env.NODE }}"
- name: Build CSS with Dart Sass
run: |
npx --package sass@latest sass --version
npx --package sass@latest sass --style expanded --source-map --embed-sources --no-error-css scss/:dist-sass/css/
ls -Al dist-sass/css

View file

@ -1,8 +1,14 @@
name: Docs name: Docs
on: [push, pull_request]
on:
push:
branches-ignore:
- "dependabot/**"
pull_request:
env: env:
CI: true FORCE_COLOR: 2
NODE: 12.x NODE: 14
jobs: jobs:
docs: docs:
@ -12,8 +18,8 @@ jobs:
- name: Clone repository - name: Clone repository
uses: actions/checkout@v2 uses: actions/checkout@v2
- name: Set Node.js version - name: Set up Node.js
uses: actions/setup-node@v1 uses: actions/setup-node@v2
with: with:
node-version: "${{ env.NODE }}" node-version: "${{ env.NODE }}"
@ -25,8 +31,8 @@ jobs:
path: ~/.npm path: ~/.npm
key: ${{ runner.os }}-node-v${{ env.NODE }}-${{ hashFiles('package.json') }}-${{ hashFiles('package-lock.json') }} key: ${{ runner.os }}-node-v${{ env.NODE }}-${{ hashFiles('package.json') }}-${{ hashFiles('package-lock.json') }}
restore-keys: | restore-keys: |
${{ runner.OS }}-node-v${{ env.NODE }}-${{ hashFiles('package.json') }}-${{ hashFiles('package-lock.json') }} ${{ runner.os }}-node-v${{ env.NODE }}-${{ hashFiles('package.json') }}-${{ hashFiles('package-lock.json') }}
${{ runner.OS }}-node-v${{ env.NODE }}- ${{ runner.os }}-node-v${{ env.NODE }}-
- name: Install npm dependencies - name: Install npm dependencies
run: npm ci run: npm ci

View file

@ -1,7 +1,13 @@
name: JS Tests name: JS Tests
on: [push, pull_request]
on:
push:
branches-ignore:
- "dependabot/**"
pull_request:
env: env:
CI: true FORCE_COLOR: 2
jobs: jobs:
run: run:
@ -11,14 +17,14 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
node: [10, 12] node: [10, 12, 14]
steps: steps:
- name: Clone repository - name: Clone repository
uses: actions/checkout@v2 uses: actions/checkout@v2
- name: Set Node.js version - name: Set up Node.js
uses: actions/setup-node@v1 uses: actions/setup-node@v2
with: with:
node-version: ${{ matrix.node }} node-version: ${{ matrix.node }}
@ -28,8 +34,8 @@ jobs:
path: ~/.npm path: ~/.npm
key: ${{ runner.os }}-node-v${{ matrix.node }}-${{ hashFiles('package.json') }}-${{ hashFiles('package-lock.json') }}} key: ${{ runner.os }}-node-v${{ matrix.node }}-${{ hashFiles('package.json') }}-${{ hashFiles('package-lock.json') }}}
restore-keys: | restore-keys: |
${{ runner.OS }}-node-v${{ matrix.node }}-${{ hashFiles('package.json') }}-${{ hashFiles('package-lock.json') }} ${{ runner.os }}-node-v${{ matrix.node }}-${{ hashFiles('package.json') }}-${{ hashFiles('package-lock.json') }}
${{ runner.OS }}-node-v${{ matrix.node }}- ${{ runner.os }}-node-v${{ matrix.node }}-
- name: Install npm dependencies - name: Install npm dependencies
run: npm ci run: npm ci
@ -42,7 +48,7 @@ jobs:
- name: Run Coveralls - name: Run Coveralls
uses: coverallsapp/github-action@master uses: coverallsapp/github-action@master
if: matrix.node == 12 if: matrix.node == 14
with: with:
github-token: "${{ secrets.GITHUB_TOKEN }}" github-token: "${{ secrets.GITHUB_TOKEN }}"
path-to-lcov: "./js/coverage/lcov.info" path-to-lcov: "./js/coverage/lcov.info"

View file

@ -1,8 +1,14 @@
name: Lint name: Lint
on: [push, pull_request]
on:
push:
branches-ignore:
- "dependabot/**"
pull_request:
env: env:
CI: true FORCE_COLOR: 2
NODE: 12.x NODE: 14
jobs: jobs:
lint: lint:
@ -12,8 +18,8 @@ jobs:
- name: Clone repository - name: Clone repository
uses: actions/checkout@v2 uses: actions/checkout@v2
- name: Set Node.js version - name: Set up Node.js
uses: actions/setup-node@v1 uses: actions/setup-node@v2
with: with:
node-version: "${{ env.NODE }}" node-version: "${{ env.NODE }}"
@ -23,8 +29,8 @@ jobs:
path: ~/.npm path: ~/.npm
key: ${{ runner.os }}-node-v${{ env.NODE }}-${{ hashFiles('package.json') }}-${{ hashFiles('package-lock.json') }} key: ${{ runner.os }}-node-v${{ env.NODE }}-${{ hashFiles('package.json') }}-${{ hashFiles('package-lock.json') }}
restore-keys: | restore-keys: |
${{ runner.OS }}-node-v${{ env.NODE }}-${{ hashFiles('package.json') }}-${{ hashFiles('package-lock.json') }} ${{ runner.os }}-node-v${{ env.NODE }}-${{ hashFiles('package.json') }}-${{ hashFiles('package-lock.json') }}
${{ runner.OS }}-node-v${{ env.NODE }}- ${{ runner.os }}-node-v${{ env.NODE }}-
- name: Install npm dependencies - name: Install npm dependencies
run: npm ci run: npm ci

30
.github/workflows/node-sass.yml vendored Normal file
View file

@ -0,0 +1,30 @@
name: CSS (node-sass)
on:
push:
branches-ignore:
- "dependabot/**"
pull_request:
env:
FORCE_COLOR: 2
NODE: 14
jobs:
css:
runs-on: ubuntu-latest
steps:
- name: Clone repository
uses: actions/checkout@v2
- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: "${{ env.NODE }}"
- name: Build CSS with node-sass
run: |
npx --package node-sass@latest node-sass --version
npx --package node-sass@latest node-sass --output-style expanded --source-map true --source-map-contents true --precision 6 scss/ -o dist-sass/css/
ls -Al dist-sass/css

14
.gitignore vendored
View file

@ -1,19 +1,8 @@
# Ignore docs files # Ignore docs files
/_gh_pages/ /_gh_pages/
# This is the old Jekyll docs dist folder;
# keeping it here so that when we switch branches it doesn't show up
/site/docs/**/dist/
# Jekyll's cache folder; keeping it for the same reason as above
/site/.jekyll-cache/
# Hugo resources folder # Hugo resources folder
/resources/ /resources/
# Ignore ruby/bundler files;
# keeping them here so that when we switch branches they don't show up
/.bundle/
/vendor/
/.ruby-version
# Numerous always-ignore extensions # Numerous always-ignore extensions
*.diff *.diff
*.err *.err
@ -39,6 +28,9 @@
*.sublime-workspace *.sublime-workspace
nbproject nbproject
Thumbs.db Thumbs.db
/.vscode/
# Local Netlify folder
.netlify
# Komodo # Komodo
.komodotools .komodotools

View file

@ -3,10 +3,16 @@
"stylelint-config-twbs-bootstrap/scss" "stylelint-config-twbs-bootstrap/scss"
], ],
"rules": { "rules": {
"function-blacklist": [ "declaration-property-value-disallowed-list": {
"calc" "border": "none",
"outline": "none"
},
"function-disallowed-list": [
"calc",
"lighten",
"darken"
], ],
"property-blacklist": [ "property-disallowed-list": [
"border-radius", "border-radius",
"border-top-left-radius", "border-top-left-radius",
"border-top-right-radius", "border-top-right-radius",

View file

@ -40,7 +40,4 @@ Project maintainers who do not follow or enforce the Code of Conduct in good fai
## Attribution ## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [https://www.contributor-covenant.org/version/1/4/code-of-conduct.html][version] This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org/), version 1.4, available at <https://www.contributor-covenant.org/version/1/4/code-of-conduct/>
[homepage]: https://www.contributor-covenant.org/
[version]: https://www.contributor-covenant.org/version/1/4/code-of-conduct.html

View file

@ -1,7 +1,7 @@
The MIT License (MIT) The MIT License (MIT)
Copyright (c) 2011-2020 Twitter, Inc. Copyright (c) 2011-2021 Twitter, Inc.
Copyright (c) 2011-2020 The Bootstrap Authors Copyright (c) 2011-2021 The Bootstrap Authors
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal

View file

@ -1,6 +1,6 @@
<p align="center"> <p align="center">
<a href="https://v5.getbootstrap.com/"> <a href="https://getbootstrap.com/">
<img src="https://v5.getbootstrap.com/docs/5.0/assets/brand/bootstrap-logo-shadow.png" alt="Bootstrap logo" width="200" height="165"> <img src="https://getbootstrap.com/docs/5.0/assets/brand/bootstrap-logo-shadow.png" alt="Bootstrap logo" width="200" height="165">
</a> </a>
</p> </p>
@ -9,7 +9,7 @@
<p align="center"> <p align="center">
Sleek, intuitive, and powerful front-end framework for faster and easier web development. Sleek, intuitive, and powerful front-end framework for faster and easier web development.
<br> <br>
<a href="https://v5.getbootstrap.com/docs/5.0/"><strong>Explore Bootstrap docs »</strong></a> <a href="https://getbootstrap.com/docs/5.0/"><strong>Explore Bootstrap docs »</strong></a>
<br> <br>
<br> <br>
<a href="https://github.com/twbs/bootstrap/issues/new?template=bug_report.md">Report bug</a> <a href="https://github.com/twbs/bootstrap/issues/new?template=bug_report.md">Report bug</a>
@ -46,14 +46,14 @@ Our default branch is for development of our upcoming Bootstrap 5 release. Head
Several quick start options are available: Several quick start options are available:
- [Download the latest release](https://github.com/twbs/bootstrap/archive/v5.0.0-alpha1.zip) - [Download the latest release](https://github.com/twbs/bootstrap/archive/v5.0.0-beta1.zip)
- Clone the repo: `git clone https://github.com/twbs/bootstrap.git` - Clone the repo: `git clone https://github.com/twbs/bootstrap.git`
- Install with [npm](https://www.npmjs.com/): `npm install bootstrap@next` - Install with [npm](https://www.npmjs.com/): `npm install bootstrap@next`
- Install with [yarn](https://yarnpkg.com/): `yarn add bootstrap@next` - Install with [yarn](https://yarnpkg.com/): `yarn add bootstrap@next`
- Install with [Composer](https://getcomposer.org/): `composer require twbs/bootstrap:5.0.0-alpha1` - Install with [Composer](https://getcomposer.org/): `composer require twbs/bootstrap:5.0.0-beta1`
- Install with [NuGet](https://www.nuget.org/): CSS: `Install-Package bootstrap` Sass: `Install-Package bootstrap.sass` - Install with [NuGet](https://www.nuget.org/): CSS: `Install-Package bootstrap` Sass: `Install-Package bootstrap.sass`
Read the [Getting started page](https://v5.getbootstrap.com/docs/5.0/getting-started/introduction/) for information on the framework contents, templates and examples, and more. Read the [Getting started page](https://getbootstrap.com/docs/5.0/getting-started/introduction/) for information on the framework contents, templates and examples, and more.
## Status ## Status
@ -83,37 +83,52 @@ Within the download you'll find the following directories and files, logically g
```text ```text
bootstrap/ bootstrap/
└── dist/ ├── css/
├── css/ │ ├── bootstrap-grid.css
│ ├── bootstrap-grid.css │ ├── bootstrap-grid.css.map
│ ├── bootstrap-grid.css.map │ ├── bootstrap-grid.min.css
│ ├── bootstrap-grid.min.css │ ├── bootstrap-grid.min.css.map
│ ├── bootstrap-grid.min.css.map │ ├── bootstrap-grid.rtl.css
│ ├── bootstrap-reboot.css │ ├── bootstrap-grid.rtl.css.map
│ ├── bootstrap-reboot.css.map │ ├── bootstrap-grid.rtl.min.css
│ ├── bootstrap-reboot.min.css │ ├── bootstrap-grid.rtl.min.css.map
│ ├── bootstrap-reboot.min.css.map │ ├── bootstrap-reboot.css
│ ├── bootstrap-utilities.css │ ├── bootstrap-reboot.css.map
│ ├── bootstrap-utilities.css.map │ ├── bootstrap-reboot.min.css
│ ├── bootstrap-utilities.min.css │ ├── bootstrap-reboot.min.css.map
│ ├── bootstrap-utilities.min.css.map │ ├── bootstrap-reboot.rtl.css
│ ├── bootstrap.css │ ├── bootstrap-reboot.rtl.css.map
│ ├── bootstrap.css.map │ ├── bootstrap-reboot.rtl.min.css
│ ├── bootstrap.min.css │ ├── bootstrap-reboot.rtl.min.css.map
│ └── bootstrap.min.css.map │ ├── bootstrap-utilities.css
└── js/ │ ├── bootstrap-utilities.css.map
├── bootstrap.bundle.js │ ├── bootstrap-utilities.min.css
├── bootstrap.bundle.js.map │ ├── bootstrap-utilities.min.css.map
├── bootstrap.bundle.min.js │ ├── bootstrap-utilities.rtl.css
├── bootstrap.bundle.min.js.map │ ├── bootstrap-utilities.rtl.css.map
├── bootstrap.esm.js │ ├── bootstrap-utilities.rtl.min.css
├── bootstrap.esm.js.map │ ├── bootstrap-utilities.rtl.min.css.map
├── bootstrap.esm.min.js │ ├── bootstrap.css
├── bootstrap.esm.min.js.map │ ├── bootstrap.css.map
├── bootstrap.js │ ├── bootstrap.min.css
├── bootstrap.js.map │ ├── bootstrap.min.css.map
├── bootstrap.min.js │ ├── bootstrap.rtl.css
└── bootstrap.min.js.map │ ├── 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/). 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/).
@ -126,9 +141,9 @@ Have a bug or a feature request? Please first read the [issue guidelines](https:
## Documentation ## Documentation
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. 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://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 ### Running documentation locally
@ -141,7 +156,7 @@ Learn more about using Hugo by reading its [documentation](https://gohugo.io/doc
### Documentation for previous releases ### Documentation for previous releases
You can find all our previous releases docs on <https://v5.getbootstrap.com/docs/versions/>. You can find all our previous releases docs on <https://getbootstrap.com/docs/versions/>.
[Previous releases](https://github.com/twbs/bootstrap/releases) and their documentation are also available for download. [Previous releases](https://github.com/twbs/bootstrap/releases) and their documentation are also available for download.
@ -221,4 +236,4 @@ Thank you to all our backers! 🙏 [[Become a backer](https://opencollective.com
## Copyright and license ## Copyright and license
Code and documentation copyright 20112020 the [Bootstrap Authors](https://github.com/twbs/bootstrap/graphs/contributors) and [Twitter, Inc.](https://twitter.com) Code released under the [MIT License](https://github.com/twbs/bootstrap/blob/main/LICENSE). Docs released under [Creative Commons](https://creativecommons.org/licenses/by/3.0/). Code and documentation copyright 20112021 the [Bootstrap Authors](https://github.com/twbs/bootstrap/graphs/contributors) and [Twitter, Inc.](https://twitter.com) Code released under the [MIT License](https://github.com/twbs/bootstrap/blob/main/LICENSE). Docs released under [Creative Commons](https://creativecommons.org/licenses/by/3.0/).

View file

@ -2,8 +2,8 @@
/*! /*!
* Script to build our plugins to use them separately. * Script to build our plugins to use them separately.
* Copyright 2020 The Bootstrap Authors * Copyright 2020-2021 The Bootstrap Authors
* Copyright 2020 Twitter, Inc. * Copyright 2020-2021 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/ */
@ -14,21 +14,22 @@ const rollup = require('rollup')
const { babel } = require('@rollup/plugin-babel') const { babel } = require('@rollup/plugin-babel')
const banner = require('./banner.js') const banner = require('./banner.js')
const rootPath = path.resolve(__dirname, '../js/dist/')
const plugins = [ const plugins = [
babel({ babel({
// Only transpile our source code // Only transpile our source code
exclude: 'node_modules/**', exclude: 'node_modules/**',
// Inline the required helpers in each file // Include the helpers in each file, at most one copy of each
babelHelpers: 'inline' babelHelpers: 'bundled'
}) })
] ]
const bsPlugins = { const bsPlugins = {
Data: path.resolve(__dirname, '../js/src/dom/data.js'), Data: path.resolve(__dirname, '../js/src/dom/data.js'),
EventHandler: path.resolve(__dirname, '../js/src/dom/event-handler.js'), EventHandler: path.resolve(__dirname, '../js/src/dom/event-handler.js'),
Manipulator: path.resolve(__dirname, '../js/src/dom/manipulator.js'), Manipulator: path.resolve(__dirname, '../js/src/dom/manipulator.js'),
Polyfill: path.resolve(__dirname, '../js/src/dom/polyfill.js'),
SelectorEngine: path.resolve(__dirname, '../js/src/dom/selector-engine.js'), SelectorEngine: path.resolve(__dirname, '../js/src/dom/selector-engine.js'),
Alert: path.resolve(__dirname, '../js/src/alert.js'), Alert: path.resolve(__dirname, '../js/src/alert.js'),
Base: path.resolve(__dirname, '../js/src/base-component.js'),
Button: path.resolve(__dirname, '../js/src/button.js'), Button: path.resolve(__dirname, '../js/src/button.js'),
Carousel: path.resolve(__dirname, '../js/src/carousel.js'), Carousel: path.resolve(__dirname, '../js/src/carousel.js'),
Collapse: path.resolve(__dirname, '../js/src/collapse.js'), Collapse: path.resolve(__dirname, '../js/src/collapse.js'),
@ -40,16 +41,17 @@ const bsPlugins = {
Toast: path.resolve(__dirname, '../js/src/toast.js'), Toast: path.resolve(__dirname, '../js/src/toast.js'),
Tooltip: path.resolve(__dirname, '../js/src/tooltip.js') Tooltip: path.resolve(__dirname, '../js/src/tooltip.js')
} }
const rootPath = path.resolve(__dirname, '../js/dist/')
const defaultPluginConfig = { const defaultPluginConfig = {
external: [ external: [
bsPlugins.Data, bsPlugins.Data,
bsPlugins.Base,
bsPlugins.EventHandler, bsPlugins.EventHandler,
bsPlugins.SelectorEngine bsPlugins.SelectorEngine
], ],
globals: { globals: {
[bsPlugins.Data]: 'Data', [bsPlugins.Data]: 'Data',
[bsPlugins.Base]: 'Base',
[bsPlugins.EventHandler]: 'EventHandler', [bsPlugins.EventHandler]: 'EventHandler',
[bsPlugins.SelectorEngine]: 'SelectorEngine' [bsPlugins.SelectorEngine]: 'SelectorEngine'
} }
@ -60,16 +62,12 @@ const getConfigByPluginKey = pluginKey => {
pluginKey === 'Data' || pluginKey === 'Data' ||
pluginKey === 'Manipulator' || pluginKey === 'Manipulator' ||
pluginKey === 'EventHandler' || pluginKey === 'EventHandler' ||
pluginKey === 'Polyfill' ||
pluginKey === 'SelectorEngine' || pluginKey === 'SelectorEngine' ||
pluginKey === 'Util' || pluginKey === 'Util' ||
pluginKey === 'Sanitizer' pluginKey === 'Sanitizer'
) { ) {
return { return {
external: [bsPlugins.Polyfill], external: []
globals: {
[bsPlugins.Polyfill]: 'Polyfill'
}
} }
} }
@ -78,6 +76,7 @@ const getConfigByPluginKey = pluginKey => {
} }
if ( if (
pluginKey === 'Base' ||
pluginKey === 'Button' || pluginKey === 'Button' ||
pluginKey === 'Carousel' || pluginKey === 'Carousel' ||
pluginKey === 'Collapse' || pluginKey === 'Collapse' ||
@ -92,9 +91,9 @@ const getConfigByPluginKey = pluginKey => {
if (pluginKey === 'Dropdown' || pluginKey === 'Tooltip') { if (pluginKey === 'Dropdown' || pluginKey === 'Tooltip') {
const config = Object.assign(defaultPluginConfig) const config = Object.assign(defaultPluginConfig)
config.external.push(bsPlugins.Manipulator, 'popper.js') config.external.push(bsPlugins.Manipulator, '@popperjs/core')
config.globals[bsPlugins.Manipulator] = 'Manipulator' config.globals[bsPlugins.Manipulator] = 'Manipulator'
config.globals['popper.js'] = 'Popper' config.globals['@popperjs/core'] = 'Popper'
return config return config
} }
@ -117,11 +116,13 @@ const getConfigByPluginKey = pluginKey => {
return { return {
external: [ external: [
bsPlugins.Data, bsPlugins.Data,
bsPlugins.Base,
bsPlugins.EventHandler, bsPlugins.EventHandler,
bsPlugins.Manipulator bsPlugins.Manipulator
], ],
globals: { globals: {
[bsPlugins.Data]: 'Data', [bsPlugins.Data]: 'Data',
[bsPlugins.Base]: 'Base',
[bsPlugins.EventHandler]: 'EventHandler', [bsPlugins.EventHandler]: 'EventHandler',
[bsPlugins.Manipulator]: 'Manipulator' [bsPlugins.Manipulator]: 'Manipulator'
} }
@ -129,18 +130,17 @@ const getConfigByPluginKey = pluginKey => {
} }
} }
const utilObjects = [ const utilObjects = new Set([
'Util', 'Util',
'Sanitizer' 'Sanitizer'
] ])
const domObjects = [ const domObjects = new Set([
'Data', 'Data',
'EventHandler', 'EventHandler',
'Manipulator', 'Manipulator',
'Polyfill',
'SelectorEngine' 'SelectorEngine'
] ])
const build = async plugin => { const build = async plugin => {
console.log(`Building ${plugin} plugin...`) console.log(`Building ${plugin} plugin...`)
@ -149,11 +149,11 @@ const build = async plugin => {
const pluginFilename = path.basename(bsPlugins[plugin]) const pluginFilename = path.basename(bsPlugins[plugin])
let pluginPath = rootPath let pluginPath = rootPath
if (utilObjects.includes(plugin)) { if (utilObjects.has(plugin)) {
pluginPath = `${rootPath}/util/` pluginPath = `${rootPath}/util/`
} }
if (domObjects.includes(plugin)) { if (domObjects.has(plugin)) {
pluginPath = `${rootPath}/dom/` pluginPath = `${rootPath}/dom/`
} }

View file

@ -2,8 +2,8 @@
/*! /*!
* Script to update version number references in the project. * Script to update version number references in the project.
* Copyright 2017-2020 The Bootstrap Authors * Copyright 2017-2021 The Bootstrap Authors
* Copyright 2017-2020 Twitter, Inc. * Copyright 2017-2021 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/ */

View file

@ -5,8 +5,8 @@
* Remember to use the same vendor files as the CDN ones, * Remember to use the same vendor files as the CDN ones,
* otherwise the hashes won't match! * otherwise the hashes won't match!
* *
* Copyright 2017-2020 The Bootstrap Authors * Copyright 2017-2021 The Bootstrap Authors
* Copyright 2017-2020 Twitter, Inc. * Copyright 2017-2021 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/ */
@ -29,6 +29,10 @@ const files = [
file: 'dist/css/bootstrap.min.css', file: 'dist/css/bootstrap.min.css',
configPropertyName: 'css_hash' configPropertyName: 'css_hash'
}, },
{
file: 'dist/css/bootstrap.rtl.min.css',
configPropertyName: 'css_rtl_hash'
},
{ {
file: 'dist/js/bootstrap.min.js', file: 'dist/js/bootstrap.min.js',
configPropertyName: 'js_hash' configPropertyName: 'js_hash'
@ -38,7 +42,7 @@ const files = [
configPropertyName: 'js_bundle_hash' configPropertyName: 'js_bundle_hash'
}, },
{ {
file: 'node_modules/popper.js/dist/umd/popper.min.js', file: 'node_modules/@popperjs/core/dist/umd/popper.min.js',
configPropertyName: 'popper_hash' configPropertyName: 'popper_hash'
} }
] ]
@ -55,6 +59,6 @@ files.forEach(file => {
console.log(`${file.configPropertyName}: ${integrity}`) 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' 'use strict'
module.exports = ctx => ({ module.exports = ctx => {
map: ctx.file.dirname.includes('examples') ? return {
false : map: ctx.file.dirname.includes('examples') ?
{ false :
inline: false, {
annotation: true, inline: false,
sourcesContent: true annotation: true,
}, sourcesContent: true
plugins: { },
autoprefixer: { plugins: {
cascade: false autoprefixer: {
cascade: false
},
rtlcss: ctx.env === 'RTL' ? {} : false
} }
} }
}) }

View file

@ -3,31 +3,32 @@
const path = require('path') const path = require('path')
const { babel } = require('@rollup/plugin-babel') const { babel } = require('@rollup/plugin-babel')
const { nodeResolve } = require('@rollup/plugin-node-resolve') const { nodeResolve } = require('@rollup/plugin-node-resolve')
const replace = require('@rollup/plugin-replace')
const banner = require('./banner.js') const banner = require('./banner.js')
const BUNDLE = process.env.BUNDLE === 'true' const BUNDLE = process.env.BUNDLE === 'true'
const ESM = process.env.ESM === 'true' const ESM = process.env.ESM === 'true'
let fileDest = `bootstrap${ESM ? '.esm' : ''}` let fileDest = `bootstrap${ESM ? '.esm' : ''}`
const external = ['popper.js'] const external = ['@popperjs/core']
const plugins = [ const plugins = [
babel({ babel({
// Only transpile our source code // Only transpile our source code
exclude: 'node_modules/**', exclude: 'node_modules/**',
// Include the helpers in the bundle, at most one copy of each // Include the helpers in the bundle, at most one copy of each
babelHelpers: 'bundled' babelHelpers: 'bundled'
}) })
] ]
const globals = { const globals = {
'popper.js': 'Popper' '@popperjs/core': 'Popper'
} }
if (BUNDLE) { if (BUNDLE) {
fileDest += '.bundle' fileDest += '.bundle'
// Remove last entry in external array to bundle Popper // Remove last entry in external array to bundle Popper
external.pop() external.pop()
delete globals['popper.js'] delete globals['@popperjs/core']
plugins.push(nodeResolve()) plugins.push(replace({ 'process.env.NODE_ENV': '"production"' }), nodeResolve())
} }
const rollupConfig = { const rollupConfig = {

View file

@ -2,8 +2,8 @@
/*! /*!
* Script to run vnu-jar if Java is available. * Script to run vnu-jar if Java is available.
* Copyright 2017-2020 The Bootstrap Authors * Copyright 2017-2021 The Bootstrap Authors
* Copyright 2017-2020 Twitter, Inc. * Copyright 2017-2021 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/ */

View file

@ -3,7 +3,7 @@
/*! /*!
* Script to create the built examples zip archive; * Script to create the built examples zip archive;
* requires the `zip` command to be present! * requires the `zip` command to be present!
* Copyright 2020 The Bootstrap Authors * Copyright 2020-2021 The Bootstrap Authors
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/ */
@ -12,36 +12,67 @@
const path = require('path') const path = require('path')
const sh = require('shelljs') const sh = require('shelljs')
const { version, version_short: versionShort } = require('../package.json') const pkg = require('../package.json')
const folderName = `bootstrap-${version}-examples` const versionShort = pkg.config.version_short
const distFolder = `bootstrap-${pkg.version}-examples`
const rootDocsDir = '_gh_pages'
const docsDir = `${rootDocsDir}/docs/${versionShort}/`
// these are the files we need in the examples
const cssFiles = [
'bootstrap.min.css',
'bootstrap.min.css.map',
'bootstrap.rtl.min.css',
'bootstrap.rtl.min.css.map'
]
const jsFiles = [
'bootstrap.bundle.min.js',
'bootstrap.bundle.min.js.map'
]
const imgFiles = [
'bootstrap-logo.svg',
'bootstrap-logo-white.svg'
]
sh.config.fatal = true sh.config.fatal = true
if (!sh.test('-d', '_gh_pages')) { if (!sh.test('-d', rootDocsDir)) {
throw new Error('The "_gh_pages" folder does not exist, did you forget building the docs?') throw new Error(`The "${rootDocsDir}" folder does not exist, did you forget building the docs?`)
} }
// switch to the root dir // switch to the root dir
sh.cd(path.join(__dirname, '..')) sh.cd(path.join(__dirname, '..'))
// remove any previously created folder with the same name // remove any previously created folder/zip with the same name
sh.rm('-rf', folderName) sh.rm('-rf', [distFolder, `${distFolder}.zip`])
// create any folders so that `cp` works
sh.mkdir('-p', folderName)
sh.mkdir('-p', `${folderName}/assets/brand/`)
sh.cp('-Rf', `_gh_pages/docs/${versionShort}/examples/*`, folderName) // create any folders so that `cp` works
sh.cp('-Rf', `_gh_pages/docs/${versionShort}/dist/`, `${folderName}/assets/`) sh.mkdir('-p', [
// also copy the two brand images we use in the examples distFolder,
sh.cp('-f', [ `${distFolder}/assets/brand/`,
`_gh_pages/docs/${versionShort}/assets/brand/bootstrap-logo.svg`, `${distFolder}/assets/dist/css/`,
`_gh_pages/docs/${versionShort}/assets/brand/bootstrap-logo-white.svg` `${distFolder}/assets/dist/js/`
], `${folderName}/assets/brand/`) ])
sh.rm(`${folderName}/index.html`)
sh.cp('-Rf', `${docsDir}/examples/*`, distFolder)
cssFiles.forEach(file => {
sh.cp('-f', `${docsDir}/dist/css/${file}`, `${distFolder}/assets/dist/css/`)
})
jsFiles.forEach(file => {
sh.cp('-f', `${docsDir}/dist/js/${file}`, `${distFolder}/assets/dist/js/`)
})
imgFiles.forEach(file => {
sh.cp('-f', `${docsDir}/assets/brand/${file}`, `${distFolder}/assets/brand/`)
})
sh.rm(`${distFolder}/index.html`)
// get all examples' HTML files // get all examples' HTML files
sh.find(`${folderName}/**/*.html`).forEach(file => { sh.find(`${distFolder}/**/*.html`).forEach(file => {
const fileContents = sh.cat(file) const fileContents = sh.cat(file)
.toString() .toString()
.replace(new RegExp(`"/docs/${versionShort}/`, 'g'), '"../') .replace(new RegExp(`"/docs/${versionShort}/`, 'g'), '"../')
@ -53,7 +84,7 @@ sh.find(`${folderName}/**/*.html`).forEach(file => {
}) })
// create the zip file // create the zip file
sh.exec(`zip -r9 "${folderName}.zip" "${folderName}"`, { fatal: true }) sh.exec(`zip -r9 "${distFolder}.zip" "${distFolder}"`)
// remove the folder we created // remove the folder we created
sh.rm('-rf', folderName) sh.rm('-rf', distFolder)

View file

@ -1,6 +1,6 @@
languageCode: "en" languageCode: "en"
title: "Bootstrap" title: "Bootstrap"
baseURL: "https://v5.getbootstrap.com" baseURL: "https://getbootstrap.com"
enableInlineShortcodes: true enableInlineShortcodes: true
markup: markup:
@ -47,8 +47,8 @@ params:
social_image_path: /docs/5.0/assets/brand/bootstrap-social.png social_image_path: /docs/5.0/assets/brand/bootstrap-social.png
social_logo_path: /docs/5.0/assets/brand/bootstrap-social-logo.png social_logo_path: /docs/5.0/assets/brand/bootstrap-social-logo.png
current_version: "5.0.0-alpha1" current_version: "5.0.0-beta1"
current_ruby_version: "5.0.0.alpha1" current_ruby_version: "5.0.0.beta1"
docs_version: "5.0" docs_version: "5.0"
rfs_version: "9.0.3" rfs_version: "9.0.3"
github_org: "https://github.com/twbs" github_org: "https://github.com/twbs"
@ -57,22 +57,23 @@ params:
slack: "https://bootstrap-slack.herokuapp.com/" slack: "https://bootstrap-slack.herokuapp.com/"
opencollective: "https://opencollective.com/bootstrap" opencollective: "https://opencollective.com/bootstrap"
blog: "https://blog.getbootstrap.com/" blog: "https://blog.getbootstrap.com/"
expo: "https://expo.getbootstrap.com/"
themes: "https://themes.getbootstrap.com/" themes: "https://themes.getbootstrap.com/"
icons: "https://icons.getbootstrap.com/" icons: "https://icons.getbootstrap.com/"
download: download:
source: "https://github.com/twbs/bootstrap/archive/v5.0.0-alpha1.zip" source: "https://github.com/twbs/bootstrap/archive/v5.0.0-beta1.zip"
dist: "https://github.com/twbs/bootstrap/releases/download/v5.0.0-alpha1/bootstrap-5.0.0-alpha1-dist.zip" dist: "https://github.com/twbs/bootstrap/releases/download/v5.0.0-beta1/bootstrap-5.0.0-beta1-dist.zip"
dist_examples: "https://github.com/twbs/bootstrap/releases/download/v5.0.0-alpha1/bootstrap-5.0.0-alpha1-examples.zip" dist_examples: "https://github.com/twbs/bootstrap/releases/download/v5.0.0-beta1/bootstrap-5.0.0-beta1-examples.zip"
cdn: cdn:
# See https://www.srihash.org for info on how to generate the hashes # See https://www.srihash.org for info on how to generate the hashes
css: "https://stackpath.bootstrapcdn.com/bootstrap/5.0.0-alpha1/css/bootstrap.min.css" css: "https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/css/bootstrap.min.css"
css_hash: "sha384-r4NyP46KrjDleawBgD5tp8Y7UzmLA05oM1iAEQ17CSuDqnUK2+k9luXQOfXJCJ4I" css_hash: "sha384-giJF6kkoqNQ00vy+HMDP7azOuL0xtbfIcaT9wjKHr8RbDVddVHyTfAAsrekwKmP1"
js: "https://stackpath.bootstrapcdn.com/bootstrap/5.0.0-alpha1/js/bootstrap.min.js" css_rtl: "https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/css/bootstrap.rtl.min.css"
js_hash: "sha384-oesi62hOLfzrys4LxRF63OJCXdXDipiYWBnvTl9Y9/TRlw5xlKIEHpNyvvDShgf/" css_rtl_hash: "sha384-mUkCBeyHPdg0tqB6JDd+65Gpw5h/l8DKcCTV2D2UpaMMFd7Jo8A+mDAosaWgFBPl"
js_bundle: "https://stackpath.bootstrapcdn.com/bootstrap/5.0.0-alpha1/js/bootstrap.bundle.min.js" js: "https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/js/bootstrap.min.js"
js_bundle_hash: "sha384-DBjhmceckmzwrnMMrjI7BvG2FmRuxQVaTfFYHgfnrdfqMhxKt445b7j3KBQLolRl" js_hash: "sha384-pQQkAEnwaBkjpqZ8RU1fF1AKtTcHJwFl3pblpTlHXybJjHpMYo79HY3hIi4NKxyj"
popper: "https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" js_bundle: "https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/js/bootstrap.bundle.min.js"
popper_hash: "sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" js_bundle_hash: "sha384-ygbV9kiqUc6oa4msXn9868pTtWMgiQaeYH7/t7LECLbyPA2x65Kgf80OJFdroafW"
popper: "https://cdn.jsdelivr.net/npm/@popperjs/core@2.6.0/dist/umd/popper.min.js"
popper_hash: "sha384-KsvD1yqQ1/1+IA7gi3P0tyJcT3vR+NdBTt13hSJ2lnve8agRGXTTyNaBYmCR/Nwi"

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

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

@ -1,5 +1,5 @@
/*! /*!
* Bootstrap Reboot v5.0.0-alpha1 (https://getbootstrap.com/) * Bootstrap Reboot v5.0.0-beta1 (https://getbootstrap.com/)
* Copyright 2011-2020 The Bootstrap Authors * Copyright 2011-2020 The Bootstrap Authors
* Copyright 2011-2020 Twitter, Inc. * Copyright 2011-2020 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
@ -11,9 +11,15 @@
box-sizing: border-box; box-sizing: border-box;
} }
@media (prefers-reduced-motion: no-preference) {
:root {
scroll-behavior: smooth;
}
}
body { body {
margin: 0; margin: 0;
font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; 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-size: 1rem;
font-weight: 400; font-weight: 400;
line-height: 1.5; line-height: 1.5;
@ -39,7 +45,7 @@ hr:not([size]) {
height: 1px; height: 1px;
} }
h1, h2, h3, h4, h5, h6 { h6, h5, h4, h3, h2, h1 {
margin-top: 0; margin-top: 0;
margin-bottom: 0.5rem; margin-bottom: 0.5rem;
font-weight: 500; font-weight: 500;
@ -49,7 +55,6 @@ h1, h2, h3, h4, h5, h6 {
h1 { h1 {
font-size: calc(1.375rem + 1.5vw); font-size: calc(1.375rem + 1.5vw);
} }
@media (min-width: 1200px) { @media (min-width: 1200px) {
h1 { h1 {
font-size: 2.5rem; font-size: 2.5rem;
@ -59,7 +64,6 @@ h1 {
h2 { h2 {
font-size: calc(1.325rem + 0.9vw); font-size: calc(1.325rem + 0.9vw);
} }
@media (min-width: 1200px) { @media (min-width: 1200px) {
h2 { h2 {
font-size: 2rem; font-size: 2rem;
@ -69,7 +73,6 @@ h2 {
h3 { h3 {
font-size: calc(1.3rem + 0.6vw); font-size: calc(1.3rem + 0.6vw);
} }
@media (min-width: 1200px) { @media (min-width: 1200px) {
h3 { h3 {
font-size: 1.75rem; font-size: 1.75rem;
@ -79,7 +82,6 @@ h3 {
h4 { h4 {
font-size: calc(1.275rem + 0.3vw); font-size: calc(1.275rem + 0.3vw);
} }
@media (min-width: 1200px) { @media (min-width: 1200px) {
h4 { h4 {
font-size: 1.5rem; font-size: 1.5rem;
@ -100,7 +102,7 @@ p {
} }
abbr[title], abbr[title],
abbr[data-original-title] { abbr[data-bs-original-title] {
text-decoration: underline; text-decoration: underline;
-webkit-text-decoration: underline dotted; -webkit-text-decoration: underline dotted;
text-decoration: underline dotted; text-decoration: underline dotted;
@ -139,7 +141,7 @@ dt {
} }
dd { dd {
margin-bottom: .5rem; margin-bottom: 0.5rem;
margin-left: 0; margin-left: 0;
} }
@ -170,20 +172,19 @@ sup {
} }
sub { sub {
bottom: -.25em; bottom: -0.25em;
} }
sup { sup {
top: -.5em; top: -0.5em;
} }
a { a {
color: #0d6efd; color: #0d6efd;
text-decoration: underline; text-decoration: underline;
} }
a:hover { a:hover {
color: #024dbc; color: #0a58ca;
} }
a:not([href]):not([class]), a:not([href]):not([class]):hover { a:not([href]):not([class]), a:not([href]):not([class]):hover {
@ -197,6 +198,8 @@ kbd,
samp { samp {
font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
font-size: 1em; font-size: 1em;
direction: ltr /* rtl:ignore */;
unicode-bidi: bidi-override;
} }
pre { pre {
@ -205,9 +208,7 @@ pre {
margin-bottom: 1rem; margin-bottom: 1rem;
overflow: auto; overflow: auto;
font-size: 0.875em; font-size: 0.875em;
-ms-overflow-style: scrollbar;
} }
pre code { pre code {
font-size: inherit; font-size: inherit;
color: inherit; color: inherit;
@ -219,7 +220,6 @@ code {
color: #d63384; color: #d63384;
word-wrap: break-word; word-wrap: break-word;
} }
a > code { a > code {
color: inherit; color: inherit;
} }
@ -231,7 +231,6 @@ kbd {
background-color: #212529; background-color: #212529;
border-radius: 0.2rem; border-radius: 0.2rem;
} }
kbd kbd { kbd kbd {
padding: 0; padding: 0;
font-size: 1em; font-size: 1em;
@ -284,8 +283,8 @@ button {
} }
button:focus { button:focus {
outline: 1px dotted; outline: dotted 1px;
outline: 5px auto -webkit-focus-ring-color; outline: -webkit-focus-ring-color auto 5px;
} }
input, input,
@ -299,17 +298,12 @@ textarea {
line-height: inherit; line-height: inherit;
} }
button,
input {
overflow: visible;
}
button, button,
select { select {
text-transform: none; text-transform: none;
} }
[role="button"] { [role=button] {
cursor: pointer; cursor: pointer;
} }
@ -322,16 +316,15 @@ select {
} }
button, button,
[type="button"], [type=button],
[type="reset"], [type=reset],
[type="submit"] { [type=submit] {
-webkit-appearance: button; -webkit-appearance: button;
} }
button:not(:disabled), button:not(:disabled),
[type="button"]:not(:disabled), [type=button]:not(:disabled),
[type="reset"]:not(:disabled), [type=reset]:not(:disabled),
[type="submit"]:not(:disabled) { [type=submit]:not(:disabled) {
cursor: pointer; cursor: pointer;
} }
@ -358,15 +351,12 @@ legend {
margin-bottom: 0.5rem; margin-bottom: 0.5rem;
font-size: calc(1.275rem + 0.3vw); font-size: calc(1.275rem + 0.3vw);
line-height: inherit; line-height: inherit;
white-space: normal;
} }
@media (min-width: 1200px) { @media (min-width: 1200px) {
legend { legend {
font-size: 1.5rem; font-size: 1.5rem;
} }
} }
legend + * { legend + * {
clear: left; clear: left;
} }
@ -385,11 +375,19 @@ legend + * {
height: auto; height: auto;
} }
[type="search"] { [type=search] {
outline-offset: -2px; outline-offset: -2px;
-webkit-appearance: textfield; -webkit-appearance: textfield;
} }
/* rtl:raw:
[type="tel"],
[type="url"],
[type="email"],
[type="number"] {
direction: ltr;
}
*/
::-webkit-search-decoration { ::-webkit-search-decoration {
-webkit-appearance: none; -webkit-appearance: none;
} }
@ -398,6 +396,10 @@ legend + * {
padding: 0; padding: 0;
} }
::file-selector-button {
font: inherit;
}
::-webkit-file-upload-button { ::-webkit-file-upload-button {
font: inherit; font: inherit;
-webkit-appearance: button; -webkit-appearance: button;
@ -423,4 +425,5 @@ progress {
[hidden] { [hidden] {
display: none !important; display: none !important;
} }
/*# sourceMappingURL=bootstrap-reboot.css.map */ /*# sourceMappingURL=bootstrap-reboot.css.map */

File diff suppressed because one or more lines are too long

View file

@ -1,8 +1,8 @@
/*! /*!
* Bootstrap Reboot v5.0.0-alpha1 (https://getbootstrap.com/) * Bootstrap Reboot v5.0.0-beta1 (https://getbootstrap.com/)
* Copyright 2011-2020 The Bootstrap Authors * Copyright 2011-2020 The Bootstrap Authors
* Copyright 2011-2020 Twitter, Inc. * Copyright 2011-2020 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * 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) * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
*/*,::after,::before{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto 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:#024dbc}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;-ms-overflow-style:scrollbar}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:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}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;white-space:normal}@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}::-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 */ /*# 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-beta1 (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-beta1 (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

4608
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

10693
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

1622
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

132
js/dist/alert.js vendored
View file

@ -1,11 +1,11 @@
/*! /*!
* Bootstrap alert.js v5.0.0-alpha1 (https://getbootstrap.com/) * Bootstrap alert.js v5.0.0-beta1 (https://getbootstrap.com/)
* Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/ */
(function (global, factory) { (function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js')) : 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)); (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Alert = factory(global.Data, global.EventHandler));
}(this, (function (Data, EventHandler) { 'use strict'; }(this, (function (Data, EventHandler) { 'use strict';
@ -16,7 +16,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.0.0-alpha1): util/index.js * Bootstrap (v5.0.0-beta1): util/index.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@ -24,7 +24,7 @@
var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp) var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
var getSelector = function getSelector(element) { var getSelector = function getSelector(element) {
var selector = element.getAttribute('data-target'); var selector = element.getAttribute('data-bs-target');
if (!selector || selector === '#') { if (!selector || selector === '#') {
var hrefAttr = element.getAttribute('href'); var hrefAttr = element.getAttribute('href');
@ -49,8 +49,8 @@
transitionDuration = _window$getComputedSt.transitionDuration, transitionDuration = _window$getComputedSt.transitionDuration,
transitionDelay = _window$getComputedSt.transitionDelay; transitionDelay = _window$getComputedSt.transitionDelay;
var floatTransitionDuration = parseFloat(transitionDuration); var floatTransitionDuration = Number.parseFloat(transitionDuration);
var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
if (!floatTransitionDuration && !floatTransitionDelay) { if (!floatTransitionDuration && !floatTransitionDelay) {
return 0; return 0;
@ -59,7 +59,7 @@
transitionDuration = transitionDuration.split(',')[0]; transitionDuration = transitionDuration.split(',')[0];
transitionDelay = transitionDelay.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) { var triggerTransitionEnd = function triggerTransitionEnd(element) {
@ -88,13 +88,23 @@
var _window = window, var _window = window,
jQuery = _window.jQuery; jQuery = _window.jQuery;
if (jQuery && !document.body.hasAttribute('data-no-jquery')) { if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
return jQuery; return jQuery;
} }
return null; return null;
}; };
var onDOMContentLoaded = function onDOMContentLoaded(callback) {
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', callback);
} else {
callback();
}
};
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 _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; } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
@ -104,12 +114,57 @@
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var VERSION = '5.0.0-beta1';
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 NAME = 'alert';
var VERSION = '5.0.0-alpha1';
var DATA_KEY = 'bs.alert'; var DATA_KEY = 'bs.alert';
var EVENT_KEY = "." + DATA_KEY; var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api'; 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_CLOSE = "close" + EVENT_KEY;
var EVENT_CLOSED = "closed" + EVENT_KEY; var EVENT_CLOSED = "closed" + EVENT_KEY;
var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY; var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
@ -122,15 +177,12 @@
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var Alert = /*#__PURE__*/function () { var Alert = /*#__PURE__*/function (_BaseComponent) {
function Alert(element) { _inheritsLoose(Alert, _BaseComponent);
this._element = element;
if (this._element) {
Data__default['default'].setData(element, DATA_KEY, this);
}
} // Getters
function Alert() {
return _BaseComponent.apply(this, arguments) || this;
}
var _proto = Alert.prototype; var _proto = Alert.prototype;
@ -145,11 +197,6 @@
} }
this._removeElement(rootElement); this._removeElement(rootElement);
};
_proto.dispose = function dispose() {
Data__default['default'].removeData(this._element, DATA_KEY);
this._element = null;
} // Private } // Private
; ;
@ -212,19 +259,16 @@
}; };
}; };
Alert.getInstance = function getInstance(element) { _createClass$1(Alert, null, [{
return Data__default['default'].getData(element, DATA_KEY); key: "DATA_KEY",
}; // Getters
_createClass(Alert, null, [{
key: "VERSION",
get: function get() { get: function get() {
return VERSION; return DATA_KEY;
} }
}]); }]);
return Alert; return Alert;
}(); }(BaseComponent);
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Data Api implementation * Data Api implementation
@ -233,26 +277,28 @@
EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert.handleDismiss(new Alert())); EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert.handleDismiss(new Alert()));
var $ = getjQuery();
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* jQuery * jQuery
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* add .alert to jQuery only if jQuery is present * add .Alert to jQuery only if jQuery is present
*/ */
/* istanbul ignore if */ onDOMContentLoaded(function () {
var $ = getjQuery();
/* istanbul ignore if */
if ($) { if ($) {
var JQUERY_NO_CONFLICT = $.fn[NAME]; var JQUERY_NO_CONFLICT = $.fn[NAME];
$.fn[NAME] = Alert.jQueryInterface; $.fn[NAME] = Alert.jQueryInterface;
$.fn[NAME].Constructor = Alert; $.fn[NAME].Constructor = Alert;
$.fn[NAME].noConflict = function () { $.fn[NAME].noConflict = function () {
$.fn[NAME] = JQUERY_NO_CONFLICT; $.fn[NAME] = JQUERY_NO_CONFLICT;
return Alert.jQueryInterface; return Alert.jQueryInterface;
}; };
} }
});
return Alert; return Alert;

File diff suppressed because one or more lines are too long

121
js/dist/button.js vendored
View file

@ -1,11 +1,11 @@
/*! /*!
* Bootstrap button.js v5.0.0-alpha1 (https://getbootstrap.com/) * Bootstrap button.js v5.0.0-beta1 (https://getbootstrap.com/)
* Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/ */
(function (global, factory) { (function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js')) : 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)); (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Button = factory(global.Data, global.EventHandler));
}(this, (function (Data, EventHandler) { 'use strict'; }(this, (function (Data, EventHandler) { 'use strict';
@ -16,7 +16,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.0.0-alpha1): util/index.js * Bootstrap (v5.0.0-beta1): util/index.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@ -25,13 +25,23 @@
var _window = window, var _window = window,
jQuery = _window.jQuery; jQuery = _window.jQuery;
if (jQuery && !document.body.hasAttribute('data-no-jquery')) { if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
return jQuery; return jQuery;
} }
return null; return null;
}; };
var onDOMContentLoaded = function onDOMContentLoaded(callback) {
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', callback);
} else {
callback();
}
};
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 _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; } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
@ -41,13 +51,58 @@
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var VERSION = '5.0.0-beta1';
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 NAME = 'button';
var VERSION = '5.0.0-alpha1';
var DATA_KEY = 'bs.button'; var DATA_KEY = 'bs.button';
var EVENT_KEY = "." + DATA_KEY; var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api'; var DATA_API_KEY = '.data-api';
var CLASS_NAME_ACTIVE = 'active'; 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; var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
@ -55,12 +110,12 @@
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var Button = /*#__PURE__*/function () { var Button = /*#__PURE__*/function (_BaseComponent) {
function Button(element) { _inheritsLoose(Button, _BaseComponent);
this._element = element;
Data__default['default'].setData(element, DATA_KEY, this);
} // Getters
function Button() {
return _BaseComponent.apply(this, arguments) || this;
}
var _proto = Button.prototype; var _proto = Button.prototype;
@ -68,11 +123,6 @@
_proto.toggle = function toggle() { _proto.toggle = function toggle() {
// Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method // 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)); 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 } // Static
; ;
@ -90,19 +140,16 @@
}); });
}; };
Button.getInstance = function getInstance(element) { _createClass$1(Button, null, [{
return Data__default['default'].getData(element, DATA_KEY); key: "DATA_KEY",
}; // Getters
_createClass(Button, null, [{
key: "VERSION",
get: function get() { get: function get() {
return VERSION; return DATA_KEY;
} }
}]); }]);
return Button; return Button;
}(); }(BaseComponent);
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Data Api implementation * Data Api implementation
@ -121,26 +168,28 @@
data.toggle(); data.toggle();
}); });
var $ = getjQuery();
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* jQuery * jQuery
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* add .button to jQuery only if jQuery is present * add .Button to jQuery only if jQuery is present
*/ */
/* istanbul ignore if */ onDOMContentLoaded(function () {
var $ = getjQuery();
/* istanbul ignore if */
if ($) { if ($) {
var JQUERY_NO_CONFLICT = $.fn[NAME]; var JQUERY_NO_CONFLICT = $.fn[NAME];
$.fn[NAME] = Button.jQueryInterface; $.fn[NAME] = Button.jQueryInterface;
$.fn[NAME].Constructor = Button; $.fn[NAME].Constructor = Button;
$.fn[NAME].noConflict = function () { $.fn[NAME].noConflict = function () {
$.fn[NAME] = JQUERY_NO_CONFLICT; $.fn[NAME] = JQUERY_NO_CONFLICT;
return Button.jQueryInterface; return Button.jQueryInterface;
}; };
} }
});
return Button; return Button;

File diff suppressed because one or more lines are too long

255
js/dist/carousel.js vendored
View file

@ -1,11 +1,11 @@
/*! /*!
* Bootstrap carousel.js v5.0.0-alpha1 (https://getbootstrap.com/) * Bootstrap carousel.js v5.0.0-beta1 (https://getbootstrap.com/)
* Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/ */
(function (global, factory) { (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 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)); (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'; }(this, (function (Data, EventHandler, Manipulator, SelectorEngine) { 'use strict';
@ -18,7 +18,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.0.0-alpha1): util/index.js * Bootstrap (v5.0.0-beta1): util/index.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@ -34,7 +34,7 @@
}; };
var getSelector = function getSelector(element) { var getSelector = function getSelector(element) {
var selector = element.getAttribute('data-target'); var selector = element.getAttribute('data-bs-target');
if (!selector || selector === '#') { if (!selector || selector === '#') {
var hrefAttr = element.getAttribute('href'); var hrefAttr = element.getAttribute('href');
@ -59,8 +59,8 @@
transitionDuration = _window$getComputedSt.transitionDuration, transitionDuration = _window$getComputedSt.transitionDuration,
transitionDelay = _window$getComputedSt.transitionDelay; transitionDelay = _window$getComputedSt.transitionDelay;
var floatTransitionDuration = parseFloat(transitionDuration); var floatTransitionDuration = Number.parseFloat(transitionDuration);
var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
if (!floatTransitionDuration && !floatTransitionDelay) { if (!floatTransitionDuration && !floatTransitionDelay) {
return 0; return 0;
@ -69,7 +69,7 @@
transitionDuration = transitionDuration.split(',')[0]; transitionDuration = transitionDuration.split(',')[0];
transitionDelay = transitionDelay.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) { var triggerTransitionEnd = function triggerTransitionEnd(element) {
@ -132,14 +132,22 @@
var _window = window, var _window = window,
jQuery = _window.jQuery; jQuery = _window.jQuery;
if (jQuery && !document.body.hasAttribute('data-no-jquery')) { if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
return jQuery; return jQuery;
} }
return null; return null;
}; };
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 onDOMContentLoaded = function onDOMContentLoaded(callback) {
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', callback);
} else {
callback();
}
};
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 _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); } }
@ -150,8 +158,55 @@
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var VERSION = '5.0.0-beta1';
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 NAME = 'carousel';
var VERSION = '5.0.0-alpha1';
var DATA_KEY = 'bs.carousel'; var DATA_KEY = 'bs.carousel';
var EVENT_KEY = "." + DATA_KEY; var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api'; var DATA_API_KEY = '.data-api';
@ -196,8 +251,8 @@
var CLASS_NAME_CAROUSEL = 'carousel'; var CLASS_NAME_CAROUSEL = 'carousel';
var CLASS_NAME_ACTIVE = 'active'; var CLASS_NAME_ACTIVE = 'active';
var CLASS_NAME_SLIDE = 'slide'; var CLASS_NAME_SLIDE = 'slide';
var CLASS_NAME_RIGHT = 'carousel-item-right'; var CLASS_NAME_END = 'carousel-item-end';
var CLASS_NAME_LEFT = 'carousel-item-left'; var CLASS_NAME_START = 'carousel-item-start';
var CLASS_NAME_NEXT = 'carousel-item-next'; var CLASS_NAME_NEXT = 'carousel-item-next';
var CLASS_NAME_PREV = 'carousel-item-prev'; var CLASS_NAME_PREV = 'carousel-item-prev';
var CLASS_NAME_POINTER_EVENT = 'pointer-event'; var CLASS_NAME_POINTER_EVENT = 'pointer-event';
@ -207,8 +262,8 @@
var SELECTOR_ITEM_IMG = '.carousel-item img'; var SELECTOR_ITEM_IMG = '.carousel-item img';
var SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'; var SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev';
var SELECTOR_INDICATORS = '.carousel-indicators'; var SELECTOR_INDICATORS = '.carousel-indicators';
var SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]'; var SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]';
var SELECTOR_DATA_RIDE = '[data-ride="carousel"]'; var SELECTOR_DATA_RIDE = '[data-bs-ride="carousel"]';
var PointerType = { var PointerType = {
TOUCH: 'touch', TOUCH: 'touch',
PEN: 'pen' PEN: 'pen'
@ -219,25 +274,29 @@
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var Carousel = /*#__PURE__*/function () { var Carousel = /*#__PURE__*/function (_BaseComponent) {
_inheritsLoose(Carousel, _BaseComponent);
function Carousel(element, config) { function Carousel(element, config) {
this._items = null; var _this;
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);
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 } // Getters
@ -289,12 +348,14 @@
} }
if (this._config && this._config.interval && !this._isPaused) { if (this._config && this._config.interval && !this._isPaused) {
this._updateInterval();
this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval); this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);
} }
}; };
_proto.to = function to(index) { _proto.to = function to(index) {
var _this = this; var _this2 = this;
this._activeElement = SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element); this._activeElement = SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element);
@ -306,7 +367,7 @@
if (this._isSliding) { if (this._isSliding) {
EventHandler__default['default'].one(this._element, EVENT_SLID, function () { EventHandler__default['default'].one(this._element, EVENT_SLID, function () {
return _this.to(index); return _this2.to(index);
}); });
return; return;
} }
@ -323,11 +384,11 @@
}; };
_proto.dispose = function dispose() { _proto.dispose = function dispose() {
_BaseComponent.prototype.dispose.call(this);
EventHandler__default['default'].off(this._element, EVENT_KEY); EventHandler__default['default'].off(this._element, EVENT_KEY);
Data__default['default'].removeData(this._element, DATA_KEY);
this._items = null; this._items = null;
this._config = null; this._config = null;
this._element = null;
this._interval = null; this._interval = null;
this._isPaused = null; this._isPaused = null;
this._isSliding = null; this._isSliding = null;
@ -363,20 +424,20 @@
}; };
_proto._addEventListeners = function _addEventListeners() { _proto._addEventListeners = function _addEventListeners() {
var _this2 = this; var _this3 = this;
if (this._config.keyboard) { if (this._config.keyboard) {
EventHandler__default['default'].on(this._element, EVENT_KEYDOWN, function (event) { EventHandler__default['default'].on(this._element, EVENT_KEYDOWN, function (event) {
return _this2._keydown(event); return _this3._keydown(event);
}); });
} }
if (this._config.pause === 'hover') { if (this._config.pause === 'hover') {
EventHandler__default['default'].on(this._element, EVENT_MOUSEENTER, function (event) { 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) { EventHandler__default['default'].on(this._element, EVENT_MOUSELEAVE, function (event) {
return _this2.cycle(event); return _this3.cycle(event);
}); });
} }
@ -386,33 +447,33 @@
}; };
_proto._addTouchEventListeners = function _addTouchEventListeners() { _proto._addTouchEventListeners = function _addTouchEventListeners() {
var _this3 = this; var _this4 = this;
var start = function start(event) { var start = function start(event) {
if (_this3._pointerEvent && PointerType[event.pointerType.toUpperCase()]) { if (_this4._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {
_this3.touchStartX = event.clientX; _this4.touchStartX = event.clientX;
} else if (!_this3._pointerEvent) { } else if (!_this4._pointerEvent) {
_this3.touchStartX = event.touches[0].clientX; _this4.touchStartX = event.touches[0].clientX;
} }
}; };
var move = function move(event) { var move = function move(event) {
// ensure swiping with one touch and not pinching // ensure swiping with one touch and not pinching
if (event.touches && event.touches.length > 1) { if (event.touches && event.touches.length > 1) {
_this3.touchDeltaX = 0; _this4.touchDeltaX = 0;
} else { } else {
_this3.touchDeltaX = event.touches[0].clientX - _this3.touchStartX; _this4.touchDeltaX = event.touches[0].clientX - _this4.touchStartX;
} }
}; };
var end = function end(event) { var end = function end(event) {
if (_this3._pointerEvent && PointerType[event.pointerType.toUpperCase()]) { if (_this4._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {
_this3.touchDeltaX = event.clientX - _this3.touchStartX; _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 // If it's a touch-enabled device, mouseenter/leave are fired as
// part of the mouse compatibility events on first tap - the carousel // part of the mouse compatibility events on first tap - the carousel
// would stop cycling until user tapped out of it; // would stop cycling until user tapped out of it;
@ -420,15 +481,15 @@
// (as if it's the second time we tap on it, mouseenter compat event // (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 // is NOT fired) and after a timeout (to allow for mouse compatibility
// events to fire) we explicitly restart cycling // events to fire) we explicitly restart cycling
_this3.pause(); _this4.pause();
if (_this3.touchTimeout) { if (_this4.touchTimeout) {
clearTimeout(_this3.touchTimeout); clearTimeout(_this4.touchTimeout);
} }
_this3.touchTimeout = setTimeout(function (event) { _this4.touchTimeout = setTimeout(function (event) {
return _this3.cycle(event); return _this4.cycle(event);
}, TOUCHEVENT_COMPAT_WAIT + _this3._config.interval); }, TOUCHEVENT_COMPAT_WAIT + _this4._config.interval);
} }
}; };
@ -530,8 +591,25 @@
} }
}; };
_proto._updateInterval = function _updateInterval() {
var element = this._activeElement || SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element);
if (!element) {
return;
}
var elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10);
if (elementInterval) {
this._config.defaultInterval = this._config.defaultInterval || this._config.interval;
this._config.interval = elementInterval;
} else {
this._config.interval = this._config.defaultInterval || this._config.interval;
}
};
_proto._slide = function _slide(direction, element) { _proto._slide = function _slide(direction, element) {
var _this4 = this; var _this5 = this;
var activeElement = SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element); var activeElement = SelectorEngine__default['default'].findOne(SELECTOR_ACTIVE_ITEM, this._element);
@ -547,11 +625,11 @@
var eventDirectionName; var eventDirectionName;
if (direction === DIRECTION_NEXT) { if (direction === DIRECTION_NEXT) {
directionalClassName = CLASS_NAME_LEFT; directionalClassName = CLASS_NAME_START;
orderClassName = CLASS_NAME_NEXT; orderClassName = CLASS_NAME_NEXT;
eventDirectionName = DIRECTION_LEFT; eventDirectionName = DIRECTION_LEFT;
} else { } else {
directionalClassName = CLASS_NAME_RIGHT; directionalClassName = CLASS_NAME_END;
orderClassName = CLASS_NAME_PREV; orderClassName = CLASS_NAME_PREV;
eventDirectionName = DIRECTION_RIGHT; eventDirectionName = DIRECTION_RIGHT;
} }
@ -580,28 +658,21 @@
this._setActiveIndicatorElement(nextElement); this._setActiveIndicatorElement(nextElement);
this._activeElement = nextElement;
if (this._element.classList.contains(CLASS_NAME_SLIDE)) { if (this._element.classList.contains(CLASS_NAME_SLIDE)) {
nextElement.classList.add(orderClassName); nextElement.classList.add(orderClassName);
reflow(nextElement); reflow(nextElement);
activeElement.classList.add(directionalClassName); activeElement.classList.add(directionalClassName);
nextElement.classList.add(directionalClassName); nextElement.classList.add(directionalClassName);
var nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10);
if (nextElementInterval) {
this._config.defaultInterval = this._config.defaultInterval || this._config.interval;
this._config.interval = nextElementInterval;
} else {
this._config.interval = this._config.defaultInterval || this._config.interval;
}
var transitionDuration = getTransitionDurationFromElement(activeElement); var transitionDuration = getTransitionDurationFromElement(activeElement);
EventHandler__default['default'].one(activeElement, TRANSITION_END, function () { EventHandler__default['default'].one(activeElement, TRANSITION_END, function () {
nextElement.classList.remove(directionalClassName, orderClassName); nextElement.classList.remove(directionalClassName, orderClassName);
nextElement.classList.add(CLASS_NAME_ACTIVE); nextElement.classList.add(CLASS_NAME_ACTIVE);
activeElement.classList.remove(CLASS_NAME_ACTIVE, orderClassName, directionalClassName); activeElement.classList.remove(CLASS_NAME_ACTIVE, orderClassName, directionalClassName);
_this4._isSliding = false; _this5._isSliding = false;
setTimeout(function () { setTimeout(function () {
EventHandler__default['default'].trigger(_this4._element, EVENT_SLID, { EventHandler__default['default'].trigger(_this5._element, EVENT_SLID, {
relatedTarget: nextElement, relatedTarget: nextElement,
direction: eventDirectionName, direction: eventDirectionName,
from: activeElementIndex, from: activeElementIndex,
@ -672,7 +743,7 @@
var config = _extends({}, Manipulator__default['default'].getDataAttributes(target), Manipulator__default['default'].getDataAttributes(this)); 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) { if (slideIndex) {
config.interval = false; config.interval = false;
@ -687,24 +758,20 @@
event.preventDefault(); event.preventDefault();
}; };
Carousel.getInstance = function getInstance(element) { _createClass$1(Carousel, null, [{
return Data__default['default'].getData(element, DATA_KEY);
};
_createClass(Carousel, null, [{
key: "VERSION",
get: function get() {
return VERSION;
}
}, {
key: "Default", key: "Default",
get: function get() { get: function get() {
return Default; return Default;
} }
}, {
key: "DATA_KEY",
get: function get() {
return DATA_KEY;
}
}]); }]);
return Carousel; return Carousel;
}(); }(BaseComponent);
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Data Api implementation * Data Api implementation
@ -720,26 +787,28 @@
Carousel.carouselInterface(carousels[i], Data__default['default'].getData(carousels[i], DATA_KEY)); Carousel.carouselInterface(carousels[i], Data__default['default'].getData(carousels[i], DATA_KEY));
} }
}); });
var $ = getjQuery();
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* jQuery * jQuery
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* add .carousel to jQuery only if jQuery is present * add .Carousel to jQuery only if jQuery is present
*/ */
/* istanbul ignore if */ onDOMContentLoaded(function () {
var $ = getjQuery();
/* istanbul ignore if */
if ($) { if ($) {
var JQUERY_NO_CONFLICT = $.fn[NAME]; var JQUERY_NO_CONFLICT = $.fn[NAME];
$.fn[NAME] = Carousel.jQueryInterface; $.fn[NAME] = Carousel.jQueryInterface;
$.fn[NAME].Constructor = Carousel; $.fn[NAME].Constructor = Carousel;
$.fn[NAME].noConflict = function () { $.fn[NAME].noConflict = function () {
$.fn[NAME] = JQUERY_NO_CONFLICT; $.fn[NAME] = JQUERY_NO_CONFLICT;
return Carousel.jQueryInterface; return Carousel.jQueryInterface;
}; };
} }
});
return Carousel; return Carousel;

File diff suppressed because one or more lines are too long

191
js/dist/collapse.js vendored
View file

@ -1,11 +1,11 @@
/*! /*!
* Bootstrap collapse.js v5.0.0-alpha1 (https://getbootstrap.com/) * Bootstrap collapse.js v5.0.0-beta1 (https://getbootstrap.com/)
* Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/ */
(function (global, factory) { (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 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)); (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'; }(this, (function (Data, EventHandler, Manipulator, SelectorEngine) { 'use strict';
@ -18,7 +18,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.0.0-alpha1): util/index.js * Bootstrap (v5.0.0-beta1): util/index.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@ -34,7 +34,7 @@
}; };
var getSelector = function getSelector(element) { var getSelector = function getSelector(element) {
var selector = element.getAttribute('data-target'); var selector = element.getAttribute('data-bs-target');
if (!selector || selector === '#') { if (!selector || selector === '#') {
var hrefAttr = element.getAttribute('href'); var hrefAttr = element.getAttribute('href');
@ -69,8 +69,8 @@
transitionDuration = _window$getComputedSt.transitionDuration, transitionDuration = _window$getComputedSt.transitionDuration,
transitionDelay = _window$getComputedSt.transitionDelay; transitionDelay = _window$getComputedSt.transitionDelay;
var floatTransitionDuration = parseFloat(transitionDuration); var floatTransitionDuration = Number.parseFloat(transitionDuration);
var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
if (!floatTransitionDuration && !floatTransitionDelay) { if (!floatTransitionDuration && !floatTransitionDelay) {
return 0; return 0;
@ -79,7 +79,7 @@
transitionDuration = transitionDuration.split(',')[0]; transitionDuration = transitionDuration.split(',')[0];
transitionDelay = transitionDelay.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) { var triggerTransitionEnd = function triggerTransitionEnd(element) {
@ -128,14 +128,22 @@
var _window = window, var _window = window,
jQuery = _window.jQuery; jQuery = _window.jQuery;
if (jQuery && !document.body.hasAttribute('data-no-jquery')) { if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
return jQuery; return jQuery;
} }
return null; return null;
}; };
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 onDOMContentLoaded = function onDOMContentLoaded(callback) {
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', callback);
} else {
callback();
}
};
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 _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); } }
@ -146,8 +154,55 @@
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var VERSION = '5.0.0-beta1';
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 NAME = 'collapse';
var VERSION = '5.0.0-alpha1';
var DATA_KEY = 'bs.collapse'; var DATA_KEY = 'bs.collapse';
var EVENT_KEY = "." + DATA_KEY; var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api'; var DATA_API_KEY = '.data-api';
@ -171,19 +226,23 @@
var WIDTH = 'width'; var WIDTH = 'width';
var HEIGHT = 'height'; var HEIGHT = 'height';
var SELECTOR_ACTIVES = '.show, .collapsing'; var SELECTOR_ACTIVES = '.show, .collapsing';
var SELECTOR_DATA_TOGGLE = '[data-toggle="collapse"]'; var SELECTOR_DATA_TOGGLE = '[data-bs-toggle="collapse"]';
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Class Definition * Class Definition
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var Collapse = /*#__PURE__*/function () { var Collapse = /*#__PURE__*/function (_BaseComponent) {
_inheritsLoose(Collapse, _BaseComponent);
function Collapse(element, config) { function Collapse(element, config) {
this._isTransitioning = false; var _this;
this._element = element;
this._config = this._getConfig(config); _this = _BaseComponent.call(this, element) || this;
this._triggerArray = SelectorEngine__default['default'].find(SELECTOR_DATA_TOGGLE + "[href=\"#" + element.id + "\"]," + (SELECTOR_DATA_TOGGLE + "[data-target=\"#" + element.id + "\"]")); _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); var toggleList = SelectorEngine__default['default'].find(SELECTOR_DATA_TOGGLE);
for (var i = 0, len = toggleList.length; i < len; i++) { for (var i = 0, len = toggleList.length; i < len; i++) {
@ -194,23 +253,23 @@
}); });
if (selector !== null && filterElement.length) { 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) { if (!_this._config.parent) {
this._addAriaAndCollapsedClass(this._element, this._triggerArray); _this._addAriaAndCollapsedClass(_this._element, _this._triggerArray);
} }
if (this._config.toggle) { if (_this._config.toggle) {
this.toggle(); _this.toggle();
} }
Data__default['default'].setData(element, DATA_KEY, this); return _this;
} // Getters } // Getters
@ -226,7 +285,7 @@
}; };
_proto.show = function show() { _proto.show = function show() {
var _this = this; var _this2 = this;
if (this._isTransitioning || this._element.classList.contains(CLASS_NAME_SHOW)) { if (this._isTransitioning || this._element.classList.contains(CLASS_NAME_SHOW)) {
return; return;
@ -237,8 +296,8 @@
if (this._parent) { if (this._parent) {
actives = SelectorEngine__default['default'].find(SELECTOR_ACTIVES, this._parent).filter(function (elem) { actives = SelectorEngine__default['default'].find(SELECTOR_ACTIVES, this._parent).filter(function (elem) {
if (typeof _this._config.parent === 'string') { if (typeof _this2._config.parent === 'string') {
return elem.getAttribute('data-parent') === _this._config.parent; return elem.getAttribute('data-bs-parent') === _this2._config.parent;
} }
return elem.classList.contains(CLASS_NAME_COLLAPSE); return elem.classList.contains(CLASS_NAME_COLLAPSE);
@ -252,10 +311,10 @@
var container = SelectorEngine__default['default'].findOne(this._selector); var container = SelectorEngine__default['default'].findOne(this._selector);
if (actives) { if (actives) {
var tempActiveData = actives.filter(function (elem) { var tempActiveData = actives.find(function (elem) {
return container !== 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) { if (activesData && activesData._isTransitioning) {
return; return;
@ -298,15 +357,15 @@
this.setTransitioning(true); this.setTransitioning(true);
var complete = function complete() { 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); var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
@ -318,7 +377,7 @@
}; };
_proto.hide = function hide() { _proto.hide = function hide() {
var _this2 = this; var _this3 = this;
if (this._isTransitioning || !this._element.classList.contains(CLASS_NAME_SHOW)) { if (this._isTransitioning || !this._element.classList.contains(CLASS_NAME_SHOW)) {
return; return;
@ -356,13 +415,13 @@
this.setTransitioning(true); this.setTransitioning(true);
var complete = function complete() { 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] = ''; this._element.style[dimension] = '';
@ -376,10 +435,10 @@
}; };
_proto.dispose = function dispose() { _proto.dispose = function dispose() {
Data__default['default'].removeData(this._element, DATA_KEY); _BaseComponent.prototype.dispose.call(this);
this._config = null; this._config = null;
this._parent = null; this._parent = null;
this._element = null;
this._triggerArray = null; this._triggerArray = null;
this._isTransitioning = null; this._isTransitioning = null;
} // Private } // Private
@ -398,7 +457,7 @@
}; };
_proto._getParent = function _getParent() { _proto._getParent = function _getParent() {
var _this3 = this; var _this4 = this;
var parent = this._config.parent; var parent = this._config.parent;
@ -411,11 +470,11 @@
parent = SelectorEngine__default['default'].findOne(parent); 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) { SelectorEngine__default['default'].find(selector, parent).forEach(function (element) {
var selected = getElementFromSelector(element); var selected = getElementFromSelector(element);
_this3._addAriaAndCollapsedClass(selected, [element]); _this4._addAriaAndCollapsedClass(selected, [element]);
}); });
return parent; return parent;
}; };
@ -466,24 +525,20 @@
}); });
}; };
Collapse.getInstance = function getInstance(element) { _createClass$1(Collapse, null, [{
return Data__default['default'].getData(element, DATA_KEY);
};
_createClass(Collapse, null, [{
key: "VERSION",
get: function get() {
return VERSION;
}
}, {
key: "Default", key: "Default",
get: function get() { get: function get() {
return Default; return Default;
} }
}, {
key: "DATA_KEY",
get: function get() {
return DATA_KEY;
}
}]); }]);
return Collapse; return Collapse;
}(); }(BaseComponent);
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Data Api implementation * Data Api implementation
@ -519,26 +574,28 @@
Collapse.collapseInterface(element, config); Collapse.collapseInterface(element, config);
}); });
}); });
var $ = getjQuery();
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* jQuery * jQuery
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* add .collapse to jQuery only if jQuery is present * add .Collapse to jQuery only if jQuery is present
*/ */
/* istanbul ignore if */ onDOMContentLoaded(function () {
var $ = getjQuery();
/* istanbul ignore if */
if ($) { if ($) {
var JQUERY_NO_CONFLICT = $.fn[NAME]; var JQUERY_NO_CONFLICT = $.fn[NAME];
$.fn[NAME] = Collapse.jQueryInterface; $.fn[NAME] = Collapse.jQueryInterface;
$.fn[NAME].Constructor = Collapse; $.fn[NAME].Constructor = Collapse;
$.fn[NAME].noConflict = function () { $.fn[NAME].noConflict = function () {
$.fn[NAME] = JQUERY_NO_CONFLICT; $.fn[NAME] = JQUERY_NO_CONFLICT;
return Collapse.jQueryInterface; return Collapse.jQueryInterface;
}; };
} }
});
return Collapse; return Collapse;

File diff suppressed because one or more lines are too long

4
js/dist/dom/data.js vendored
View file

@ -1,5 +1,5 @@
/*! /*!
* Bootstrap data.js v5.0.0-alpha1 (https://getbootstrap.com/) * Bootstrap data.js v5.0.0-beta1 (https://getbootstrap.com/)
* Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/ */
@ -11,7 +11,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.0.0-alpha1): dom/data.js * Bootstrap (v5.0.0-beta1): dom/data.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */

View file

@ -1 +1 @@
{"version":3,"file":"data.js","sources":["../../src/dom/data.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha1): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst mapData = (() => {\n const storeData = {}\n let id = 1\n return {\n set(element, key, data) {\n if (typeof element.bsKey === 'undefined') {\n element.bsKey = {\n key,\n id\n }\n id++\n }\n\n storeData[element.bsKey.id] = data\n },\n get(element, key) {\n if (!element || typeof element.bsKey === 'undefined') {\n return null\n }\n\n const keyProperties = element.bsKey\n if (keyProperties.key === key) {\n return storeData[keyProperties.id]\n }\n\n return null\n },\n delete(element, key) {\n if (typeof element.bsKey === 'undefined') {\n return\n }\n\n const keyProperties = element.bsKey\n if (keyProperties.key === key) {\n delete storeData[keyProperties.id]\n delete element.bsKey\n }\n }\n }\n})()\n\nconst Data = {\n setData(instance, key, data) {\n mapData.set(instance, key, data)\n },\n getData(instance, key) {\n return mapData.get(instance, key)\n },\n removeData(instance, key) {\n mapData.delete(instance, key)\n }\n}\n\nexport default Data\n"],"names":["mapData","storeData","id","set","element","key","data","bsKey","get","keyProperties","delete","Data","setData","instance","getData","removeData"],"mappings":";;;;;;;;;;;EAAA;;;;;;;EAOA;;;;;EAMA,IAAMA,OAAO,GAAI,YAAM;EACrB,MAAMC,SAAS,GAAG,EAAlB;EACA,MAAIC,EAAE,GAAG,CAAT;EACA,SAAO;EACLC,IAAAA,GADK,eACDC,OADC,EACQC,GADR,EACaC,IADb,EACmB;EACtB,UAAI,OAAOF,OAAO,CAACG,KAAf,KAAyB,WAA7B,EAA0C;EACxCH,QAAAA,OAAO,CAACG,KAAR,GAAgB;EACdF,UAAAA,GAAG,EAAHA,GADc;EAEdH,UAAAA,EAAE,EAAFA;EAFc,SAAhB;EAIAA,QAAAA,EAAE;EACH;;EAEDD,MAAAA,SAAS,CAACG,OAAO,CAACG,KAAR,CAAcL,EAAf,CAAT,GAA8BI,IAA9B;EACD,KAXI;EAYLE,IAAAA,GAZK,eAYDJ,OAZC,EAYQC,GAZR,EAYa;EAChB,UAAI,CAACD,OAAD,IAAY,OAAOA,OAAO,CAACG,KAAf,KAAyB,WAAzC,EAAsD;EACpD,eAAO,IAAP;EACD;;EAED,UAAME,aAAa,GAAGL,OAAO,CAACG,KAA9B;;EACA,UAAIE,aAAa,CAACJ,GAAd,KAAsBA,GAA1B,EAA+B;EAC7B,eAAOJ,SAAS,CAACQ,aAAa,CAACP,EAAf,CAAhB;EACD;;EAED,aAAO,IAAP;EACD,KAvBI;EAwBLQ,IAAAA,MAxBK,mBAwBEN,OAxBF,EAwBWC,GAxBX,EAwBgB;EACnB,UAAI,OAAOD,OAAO,CAACG,KAAf,KAAyB,WAA7B,EAA0C;EACxC;EACD;;EAED,UAAME,aAAa,GAAGL,OAAO,CAACG,KAA9B;;EACA,UAAIE,aAAa,CAACJ,GAAd,KAAsBA,GAA1B,EAA+B;EAC7B,eAAOJ,SAAS,CAACQ,aAAa,CAACP,EAAf,CAAhB;EACA,eAAOE,OAAO,CAACG,KAAf;EACD;EACF;EAlCI,GAAP;EAoCD,CAvCe,EAAhB;;MAyCMI,IAAI,GAAG;EACXC,EAAAA,OADW,mBACHC,QADG,EACOR,GADP,EACYC,IADZ,EACkB;EAC3BN,IAAAA,OAAO,CAACG,GAAR,CAAYU,QAAZ,EAAsBR,GAAtB,EAA2BC,IAA3B;EACD,GAHU;EAIXQ,EAAAA,OAJW,mBAIHD,QAJG,EAIOR,GAJP,EAIY;EACrB,WAAOL,OAAO,CAACQ,GAAR,CAAYK,QAAZ,EAAsBR,GAAtB,CAAP;EACD,GANU;EAOXU,EAAAA,UAPW,sBAOAF,QAPA,EAOUR,GAPV,EAOe;EACxBL,IAAAA,OAAO,CAACU,MAAR,CAAeG,QAAf,EAAyBR,GAAzB;EACD;EATU;;;;;;;;"} {"version":3,"file":"data.js","sources":["../../src/dom/data.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta1): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst mapData = (() => {\n const storeData = {}\n let id = 1\n return {\n set(element, key, data) {\n if (typeof element.bsKey === 'undefined') {\n element.bsKey = {\n key,\n id\n }\n id++\n }\n\n storeData[element.bsKey.id] = data\n },\n get(element, key) {\n if (!element || typeof element.bsKey === 'undefined') {\n return null\n }\n\n const keyProperties = element.bsKey\n if (keyProperties.key === key) {\n return storeData[keyProperties.id]\n }\n\n return null\n },\n delete(element, key) {\n if (typeof element.bsKey === 'undefined') {\n return\n }\n\n const keyProperties = element.bsKey\n if (keyProperties.key === key) {\n delete storeData[keyProperties.id]\n delete element.bsKey\n }\n }\n }\n})()\n\nconst Data = {\n setData(instance, key, data) {\n mapData.set(instance, key, data)\n },\n getData(instance, key) {\n return mapData.get(instance, key)\n },\n removeData(instance, key) {\n mapData.delete(instance, key)\n }\n}\n\nexport default Data\n"],"names":["mapData","storeData","id","set","element","key","data","bsKey","get","keyProperties","delete","Data","setData","instance","getData","removeData"],"mappings":";;;;;;;;;;;EAAA;EACA;EACA;EACA;EACA;EACA;;EAEA;EACA;EACA;EACA;EACA;EAEA,IAAMA,OAAO,GAAI,YAAM;EACrB,MAAMC,SAAS,GAAG,EAAlB;EACA,MAAIC,EAAE,GAAG,CAAT;EACA,SAAO;EACLC,IAAAA,GADK,eACDC,OADC,EACQC,GADR,EACaC,IADb,EACmB;EACtB,UAAI,OAAOF,OAAO,CAACG,KAAf,KAAyB,WAA7B,EAA0C;EACxCH,QAAAA,OAAO,CAACG,KAAR,GAAgB;EACdF,UAAAA,GAAG,EAAHA,GADc;EAEdH,UAAAA,EAAE,EAAFA;EAFc,SAAhB;EAIAA,QAAAA,EAAE;EACH;;EAEDD,MAAAA,SAAS,CAACG,OAAO,CAACG,KAAR,CAAcL,EAAf,CAAT,GAA8BI,IAA9B;EACD,KAXI;EAYLE,IAAAA,GAZK,eAYDJ,OAZC,EAYQC,GAZR,EAYa;EAChB,UAAI,CAACD,OAAD,IAAY,OAAOA,OAAO,CAACG,KAAf,KAAyB,WAAzC,EAAsD;EACpD,eAAO,IAAP;EACD;;EAED,UAAME,aAAa,GAAGL,OAAO,CAACG,KAA9B;;EACA,UAAIE,aAAa,CAACJ,GAAd,KAAsBA,GAA1B,EAA+B;EAC7B,eAAOJ,SAAS,CAACQ,aAAa,CAACP,EAAf,CAAhB;EACD;;EAED,aAAO,IAAP;EACD,KAvBI;EAwBLQ,IAAAA,MAxBK,mBAwBEN,OAxBF,EAwBWC,GAxBX,EAwBgB;EACnB,UAAI,OAAOD,OAAO,CAACG,KAAf,KAAyB,WAA7B,EAA0C;EACxC;EACD;;EAED,UAAME,aAAa,GAAGL,OAAO,CAACG,KAA9B;;EACA,UAAIE,aAAa,CAACJ,GAAd,KAAsBA,GAA1B,EAA+B;EAC7B,eAAOJ,SAAS,CAACQ,aAAa,CAACP,EAAf,CAAhB;EACA,eAAOE,OAAO,CAACG,KAAf;EACD;EACF;EAlCI,GAAP;EAoCD,CAvCe,EAAhB;;MAyCMI,IAAI,GAAG;EACXC,EAAAA,OADW,mBACHC,QADG,EACOR,GADP,EACYC,IADZ,EACkB;EAC3BN,IAAAA,OAAO,CAACG,GAAR,CAAYU,QAAZ,EAAsBR,GAAtB,EAA2BC,IAA3B;EACD,GAHU;EAIXQ,EAAAA,OAJW,mBAIHD,QAJG,EAIOR,GAJP,EAIY;EACrB,WAAOL,OAAO,CAACQ,GAAR,CAAYK,QAAZ,EAAsBR,GAAtB,CAAP;EACD,GANU;EAOXU,EAAAA,UAPW,sBAOAF,QAPA,EAOUR,GAPV,EAOe;EACxBL,IAAAA,OAAO,CAACU,MAAR,CAAeG,QAAf,EAAyBR,GAAzB;EACD;EATU;;;;;;;;"}

View file

@ -1,17 +1,17 @@
/*! /*!
* Bootstrap event-handler.js v5.0.0-alpha1 (https://getbootstrap.com/) * Bootstrap event-handler.js v5.0.0-beta1 (https://getbootstrap.com/)
* Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/ */
(function (global, factory) { (function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./polyfill.js')) : typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
typeof define === 'function' && define.amd ? define(['./polyfill.js'], factory) : typeof define === 'function' && define.amd ? define(factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.EventHandler = factory(global.Polyfill)); (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.EventHandler = factory());
}(this, (function (polyfill_js) { 'use strict'; }(this, (function () { 'use strict';
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.0.0-alpha1): util/index.js * Bootstrap (v5.0.0-beta1): util/index.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@ -20,16 +20,18 @@
var _window = window, var _window = window,
jQuery = _window.jQuery; jQuery = _window.jQuery;
if (jQuery && !document.body.hasAttribute('data-no-jquery')) { if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
return jQuery; return jQuery;
} }
return null; return null;
}; };
var isRTL = document.documentElement.dir === 'rtl';
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.0.0-alpha1): dom/event-handler.js * Bootstrap (v5.0.0-beta1): dom/event-handler.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@ -39,7 +41,6 @@
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var $ = getjQuery();
var namespaceRegex = /[^.]*(?=\..*)\.|.*/; var namespaceRegex = /[^.]*(?=\..*)\.|.*/;
var stripNameRegex = /\..*/; var stripNameRegex = /\..*/;
var stripUidRegex = /::\d+$/; var stripUidRegex = /::\d+$/;
@ -50,7 +51,7 @@
mouseenter: 'mouseover', mouseenter: 'mouseover',
mouseleave: 'mouseout' 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 * Private methods
@ -132,7 +133,7 @@
typeEvent = custom; typeEvent = custom;
} }
var isNative = nativeEvents.indexOf(typeEvent) > -1; var isNative = nativeEvents.has(typeEvent);
if (!isNative) { if (!isNative) {
typeEvent = originalTypeEvent; typeEvent = originalTypeEvent;
@ -189,7 +190,7 @@
function removeNamespacedHandlers(element, events, typeEvent, namespace) { function removeNamespacedHandlers(element, events, typeEvent, namespace) {
var storeElementEvent = events[typeEvent] || {}; var storeElementEvent = events[typeEvent] || {};
Object.keys(storeElementEvent).forEach(function (handlerKey) { Object.keys(storeElementEvent).forEach(function (handlerKey) {
if (handlerKey.indexOf(namespace) > -1) { if (handlerKey.includes(namespace)) {
var event = storeElementEvent[handlerKey]; var event = storeElementEvent[handlerKey];
removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector); removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector);
} }
@ -215,7 +216,7 @@
var inNamespace = typeEvent !== originalTypeEvent; var inNamespace = typeEvent !== originalTypeEvent;
var events = getEvent(element); var events = getEvent(element);
var isNamespace = originalTypeEvent.charAt(0) === '.'; var isNamespace = originalTypeEvent.startsWith('.');
if (typeof originalHandler !== 'undefined') { if (typeof originalHandler !== 'undefined') {
// Simplest case: handler is passed, remove that listener ONLY. // Simplest case: handler is passed, remove that listener ONLY.
@ -237,7 +238,7 @@
Object.keys(storeElementEvent).forEach(function (keyHandlers) { Object.keys(storeElementEvent).forEach(function (keyHandlers) {
var handlerKey = keyHandlers.replace(stripUidRegex, ''); var handlerKey = keyHandlers.replace(stripUidRegex, '');
if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) { if (!inNamespace || originalTypeEvent.includes(handlerKey)) {
var event = storeElementEvent[keyHandlers]; var event = storeElementEvent[keyHandlers];
removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector); removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector);
} }
@ -248,9 +249,10 @@
return null; return null;
} }
var $ = getjQuery();
var typeEvent = event.replace(stripNameRegex, ''); var typeEvent = event.replace(stripNameRegex, '');
var inNamespace = event !== typeEvent; var inNamespace = event !== typeEvent;
var isNative = nativeEvents.indexOf(typeEvent) > -1; var isNative = nativeEvents.has(typeEvent);
var jQueryEvent; var jQueryEvent;
var bubbles = true; var bubbles = true;
var nativeDispatch = true; var nativeDispatch = true;
@ -288,14 +290,6 @@
if (defaultPrevented) { if (defaultPrevented) {
evt.preventDefault(); evt.preventDefault();
if (!polyfill_js.defaultPreventedPreservedOnDispatch) {
Object.defineProperty(evt, 'defaultPrevented', {
get: function get() {
return true;
}
});
}
} }
if (nativeDispatch) { if (nativeDispatch) {

File diff suppressed because one or more lines are too long

View file

@ -1,5 +1,5 @@
/*! /*!
* Bootstrap manipulator.js v5.0.0-alpha1 (https://getbootstrap.com/) * Bootstrap manipulator.js v5.0.0-beta1 (https://getbootstrap.com/)
* Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/ */
@ -9,11 +9,9 @@
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Manipulator = factory()); (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Manipulator = factory());
}(this, (function () { 'use strict'; }(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-alpha1): dom/manipulator.js * Bootstrap (v5.0.0-beta1): dom/manipulator.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@ -45,25 +43,28 @@
var Manipulator = { var Manipulator = {
setDataAttribute: function setDataAttribute(element, key, value) { setDataAttribute: function setDataAttribute(element, key, value) {
element.setAttribute("data-" + normalizeDataKey(key), value); element.setAttribute("data-bs-" + normalizeDataKey(key), value);
}, },
removeDataAttribute: function removeDataAttribute(element, key) { removeDataAttribute: function removeDataAttribute(element, key) {
element.removeAttribute("data-" + normalizeDataKey(key)); element.removeAttribute("data-bs-" + normalizeDataKey(key));
}, },
getDataAttributes: function getDataAttributes(element) { getDataAttributes: function getDataAttributes(element) {
if (!element) { if (!element) {
return {}; return {};
} }
var attributes = _extends({}, element.dataset); var attributes = {};
Object.keys(element.dataset).filter(function (key) {
Object.keys(attributes).forEach(function (key) { return key.startsWith('bs');
attributes[key] = normalizeData(attributes[key]); }).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; return attributes;
}, },
getDataAttribute: function getDataAttribute(element, key) { getDataAttribute: function getDataAttribute(element, key) {
return normalizeData(element.getAttribute("data-" + normalizeDataKey(key))); return normalizeData(element.getAttribute("data-bs-" + normalizeDataKey(key)));
}, },
offset: function offset(element) { offset: function offset(element) {
var rect = element.getBoundingClientRect(); var rect = element.getBoundingClientRect();
@ -77,17 +78,6 @@
top: element.offsetTop, top: element.offsetTop,
left: element.offsetLeft left: element.offsetLeft
}; };
},
toggleClass: function toggleClass(element, className) {
if (!element) {
return;
}
if (element.classList.contains(className)) {
element.classList.remove(className);
} else {
element.classList.add(className);
}
} }
}; };

View file

@ -1 +1 @@
{"version":3,"file":"manipulator.js","sources":["../../src/dom/manipulator.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha1): 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 toggleClass(element, className) {\n if (!element) {\n return\n }\n\n if (element.classList.contains(className)) {\n element.classList.remove(className)\n } else {\n element.classList.add(className)\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","toggleClass","className","classList","contains","remove","add"],"mappings":";;;;;;;;;;;;;EAAA;;;;;;EAOA,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,GA3CiB;EA6ClBC,EAAAA,WA7CkB,uBA6CNzB,OA7CM,EA6CG0B,SA7CH,EA6Cc;EAC9B,QAAI,CAAC1B,OAAL,EAAc;EACZ;EACD;;EAED,QAAIA,OAAO,CAAC2B,SAAR,CAAkBC,QAAlB,CAA2BF,SAA3B,CAAJ,EAA2C;EACzC1B,MAAAA,OAAO,CAAC2B,SAAR,CAAkBE,MAAlB,CAAyBH,SAAzB;EACD,KAFD,MAEO;EACL1B,MAAAA,OAAO,CAAC2B,SAAR,CAAkBG,GAAlB,CAAsBJ,SAAtB;EACD;EACF;EAvDiB;;;;;;;;"} {"version":3,"file":"manipulator.js","sources":["../../src/dom/manipulator.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta1): 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-alpha1 (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-alpha1): 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

View file

@ -1,26 +1,26 @@
/*! /*!
* Bootstrap selector-engine.js v5.0.0-alpha1 (https://getbootstrap.com/) * Bootstrap selector-engine.js v5.0.0-beta1 (https://getbootstrap.com/)
* Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/ */
(function (global, factory) { (function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./polyfill.js')) : typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
typeof define === 'function' && define.amd ? define(['./polyfill.js'], factory) : typeof define === 'function' && define.amd ? define(factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.SelectorEngine = factory(global.Polyfill)); (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.SelectorEngine = factory());
}(this, (function (polyfill_js) { 'use strict'; }(this, (function () { 'use strict';
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.0.0-alpha1): dom/selector-engine.js * Bootstrap (v5.0.0-beta1): dom/selector-engine.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Constants * Constants
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var NODE_TEXT = 3; var NODE_TEXT = 3;
var SelectorEngine = { var SelectorEngine = {
matches: function matches(element, selector) { matches: function matches(element, selector) {
@ -33,14 +33,14 @@
element = document.documentElement; element = document.documentElement;
} }
return (_ref = []).concat.apply(_ref, polyfill_js.find.call(element, selector)); return (_ref = []).concat.apply(_ref, Element.prototype.querySelectorAll.call(element, selector));
}, },
findOne: function findOne(selector, element) { findOne: function findOne(selector, element) {
if (element === void 0) { if (element === void 0) {
element = document.documentElement; element = document.documentElement;
} }
return polyfill_js.findOne.call(element, selector); return Element.prototype.querySelector.call(element, selector);
}, },
children: function children(element, selector) { children: function children(element, selector) {
var _ref2; var _ref2;

View file

@ -1 +1 @@
{"version":3,"file":"selector-engine.js","sources":["../../src/dom/selector-engine.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-alpha1): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { find as findFn, findOne } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n matches(element, selector) {\n return element.matches(selector)\n },\n\n find(selector, element = document.documentElement) {\n return [].concat(...findFn.call(element, selector))\n },\n\n findOne(selector, element = document.documentElement) {\n return findOne.call(element, selector)\n },\n\n children(element, selector) {\n const children = [].concat(...element.children)\n\n return children.filter(child => child.matches(selector))\n },\n\n parents(element, selector) {\n const parents = []\n\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (this.matches(ancestor, selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n prev(element, selector) {\n let previous = element.previousElementSibling\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous]\n }\n\n previous = previous.previousElementSibling\n }\n\n return []\n },\n\n next(element, selector) {\n let next = element.nextElementSibling\n\n while (next) {\n if (this.matches(next, selector)) {\n return [next]\n }\n\n next = next.nextElementSibling\n }\n\n return []\n }\n}\n\nexport default SelectorEngine\n"],"names":["NODE_TEXT","SelectorEngine","matches","element","selector","find","document","documentElement","concat","findFn","call","findOne","children","filter","child","parents","ancestor","parentNode","nodeType","Node","ELEMENT_NODE","push","prev","previous","previousElementSibling","next","nextElementSibling"],"mappings":";;;;;;;;;;;EAAA;;;;;;EASA;;;;;;EAMA,IAAMA,SAAS,GAAG,CAAlB;MAEMC,cAAc,GAAG;EACrBC,EAAAA,OADqB,mBACbC,OADa,EACJC,QADI,EACM;EACzB,WAAOD,OAAO,CAACD,OAAR,CAAgBE,QAAhB,CAAP;EACD,GAHoB;EAKrBC,EAAAA,IALqB,gBAKhBD,QALgB,EAKND,OALM,EAK8B;EAAA;;EAAA,QAApCA,OAAoC;EAApCA,MAAAA,OAAoC,GAA1BG,QAAQ,CAACC,eAAiB;EAAA;;EACjD,WAAO,YAAGC,MAAH,aAAaC,gBAAM,CAACC,IAAP,CAAYP,OAAZ,EAAqBC,QAArB,CAAb,CAAP;EACD,GAPoB;EASrBO,EAAAA,OATqB,mBASbP,QATa,EASHD,OATG,EASiC;EAAA,QAApCA,OAAoC;EAApCA,MAAAA,OAAoC,GAA1BG,QAAQ,CAACC,eAAiB;EAAA;;EACpD,WAAOI,mBAAO,CAACD,IAAR,CAAaP,OAAb,EAAsBC,QAAtB,CAAP;EACD,GAXoB;EAarBQ,EAAAA,QAbqB,oBAaZT,OAbY,EAaHC,QAbG,EAaO;EAAA;;EAC1B,QAAMQ,QAAQ,GAAG,aAAGJ,MAAH,cAAaL,OAAO,CAACS,QAArB,CAAjB;;EAEA,WAAOA,QAAQ,CAACC,MAAT,CAAgB,UAAAC,KAAK;EAAA,aAAIA,KAAK,CAACZ,OAAN,CAAcE,QAAd,CAAJ;EAAA,KAArB,CAAP;EACD,GAjBoB;EAmBrBW,EAAAA,OAnBqB,mBAmBbZ,OAnBa,EAmBJC,QAnBI,EAmBM;EACzB,QAAMW,OAAO,GAAG,EAAhB;EAEA,QAAIC,QAAQ,GAAGb,OAAO,CAACc,UAAvB;;EAEA,WAAOD,QAAQ,IAAIA,QAAQ,CAACE,QAAT,KAAsBC,IAAI,CAACC,YAAvC,IAAuDJ,QAAQ,CAACE,QAAT,KAAsBlB,SAApF,EAA+F;EAC7F,UAAI,KAAKE,OAAL,CAAac,QAAb,EAAuBZ,QAAvB,CAAJ,EAAsC;EACpCW,QAAAA,OAAO,CAACM,IAAR,CAAaL,QAAb;EACD;;EAEDA,MAAAA,QAAQ,GAAGA,QAAQ,CAACC,UAApB;EACD;;EAED,WAAOF,OAAP;EACD,GAjCoB;EAmCrBO,EAAAA,IAnCqB,gBAmChBnB,OAnCgB,EAmCPC,QAnCO,EAmCG;EACtB,QAAImB,QAAQ,GAAGpB,OAAO,CAACqB,sBAAvB;;EAEA,WAAOD,QAAP,EAAiB;EACf,UAAIA,QAAQ,CAACrB,OAAT,CAAiBE,QAAjB,CAAJ,EAAgC;EAC9B,eAAO,CAACmB,QAAD,CAAP;EACD;;EAEDA,MAAAA,QAAQ,GAAGA,QAAQ,CAACC,sBAApB;EACD;;EAED,WAAO,EAAP;EACD,GA/CoB;EAiDrBC,EAAAA,IAjDqB,gBAiDhBtB,OAjDgB,EAiDPC,QAjDO,EAiDG;EACtB,QAAIqB,IAAI,GAAGtB,OAAO,CAACuB,kBAAnB;;EAEA,WAAOD,IAAP,EAAa;EACX,UAAI,KAAKvB,OAAL,CAAauB,IAAb,EAAmBrB,QAAnB,CAAJ,EAAkC;EAChC,eAAO,CAACqB,IAAD,CAAP;EACD;;EAEDA,MAAAA,IAAI,GAAGA,IAAI,CAACC,kBAAZ;EACD;;EAED,WAAO,EAAP;EACD;EA7DoB;;;;;;;;"} {"version":3,"file":"selector-engine.js","sources":["../../src/dom/selector-engine.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta1): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n matches(element, selector) {\n return element.matches(selector)\n },\n\n find(selector, element = document.documentElement) {\n return [].concat(...Element.prototype.querySelectorAll.call(element, selector))\n },\n\n findOne(selector, element = document.documentElement) {\n return Element.prototype.querySelector.call(element, selector)\n },\n\n children(element, selector) {\n const children = [].concat(...element.children)\n\n return children.filter(child => child.matches(selector))\n },\n\n parents(element, selector) {\n const parents = []\n\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (this.matches(ancestor, selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n prev(element, selector) {\n let previous = element.previousElementSibling\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous]\n }\n\n previous = previous.previousElementSibling\n }\n\n return []\n },\n\n next(element, selector) {\n let next = element.nextElementSibling\n\n while (next) {\n if (this.matches(next, selector)) {\n return [next]\n }\n\n next = next.nextElementSibling\n }\n\n return []\n }\n}\n\nexport default SelectorEngine\n"],"names":["NODE_TEXT","SelectorEngine","matches","element","selector","find","document","documentElement","concat","Element","prototype","querySelectorAll","call","findOne","querySelector","children","filter","child","parents","ancestor","parentNode","nodeType","Node","ELEMENT_NODE","push","prev","previous","previousElementSibling","next","nextElementSibling"],"mappings":";;;;;;;;;;;EAAA;EACA;EACA;EACA;EACA;EACA;;EAEA;EACA;EACA;EACA;EACA;EAEA,IAAMA,SAAS,GAAG,CAAlB;MAEMC,cAAc,GAAG;EACrBC,EAAAA,OADqB,mBACbC,OADa,EACJC,QADI,EACM;EACzB,WAAOD,OAAO,CAACD,OAAR,CAAgBE,QAAhB,CAAP;EACD,GAHoB;EAKrBC,EAAAA,IALqB,gBAKhBD,QALgB,EAKND,OALM,EAK8B;EAAA;;EAAA,QAApCA,OAAoC;EAApCA,MAAAA,OAAoC,GAA1BG,QAAQ,CAACC,eAAiB;EAAA;;EACjD,WAAO,YAAGC,MAAH,aAAaC,OAAO,CAACC,SAAR,CAAkBC,gBAAlB,CAAmCC,IAAnC,CAAwCT,OAAxC,EAAiDC,QAAjD,CAAb,CAAP;EACD,GAPoB;EASrBS,EAAAA,OATqB,mBASbT,QATa,EASHD,OATG,EASiC;EAAA,QAApCA,OAAoC;EAApCA,MAAAA,OAAoC,GAA1BG,QAAQ,CAACC,eAAiB;EAAA;;EACpD,WAAOE,OAAO,CAACC,SAAR,CAAkBI,aAAlB,CAAgCF,IAAhC,CAAqCT,OAArC,EAA8CC,QAA9C,CAAP;EACD,GAXoB;EAarBW,EAAAA,QAbqB,oBAaZZ,OAbY,EAaHC,QAbG,EAaO;EAAA;;EAC1B,QAAMW,QAAQ,GAAG,aAAGP,MAAH,cAAaL,OAAO,CAACY,QAArB,CAAjB;;EAEA,WAAOA,QAAQ,CAACC,MAAT,CAAgB,UAAAC,KAAK;EAAA,aAAIA,KAAK,CAACf,OAAN,CAAcE,QAAd,CAAJ;EAAA,KAArB,CAAP;EACD,GAjBoB;EAmBrBc,EAAAA,OAnBqB,mBAmBbf,OAnBa,EAmBJC,QAnBI,EAmBM;EACzB,QAAMc,OAAO,GAAG,EAAhB;EAEA,QAAIC,QAAQ,GAAGhB,OAAO,CAACiB,UAAvB;;EAEA,WAAOD,QAAQ,IAAIA,QAAQ,CAACE,QAAT,KAAsBC,IAAI,CAACC,YAAvC,IAAuDJ,QAAQ,CAACE,QAAT,KAAsBrB,SAApF,EAA+F;EAC7F,UAAI,KAAKE,OAAL,CAAaiB,QAAb,EAAuBf,QAAvB,CAAJ,EAAsC;EACpCc,QAAAA,OAAO,CAACM,IAAR,CAAaL,QAAb;EACD;;EAEDA,MAAAA,QAAQ,GAAGA,QAAQ,CAACC,UAApB;EACD;;EAED,WAAOF,OAAP;EACD,GAjCoB;EAmCrBO,EAAAA,IAnCqB,gBAmChBtB,OAnCgB,EAmCPC,QAnCO,EAmCG;EACtB,QAAIsB,QAAQ,GAAGvB,OAAO,CAACwB,sBAAvB;;EAEA,WAAOD,QAAP,EAAiB;EACf,UAAIA,QAAQ,CAACxB,OAAT,CAAiBE,QAAjB,CAAJ,EAAgC;EAC9B,eAAO,CAACsB,QAAD,CAAP;EACD;;EAEDA,MAAAA,QAAQ,GAAGA,QAAQ,CAACC,sBAApB;EACD;;EAED,WAAO,EAAP;EACD,GA/CoB;EAiDrBC,EAAAA,IAjDqB,gBAiDhBzB,OAjDgB,EAiDPC,QAjDO,EAiDG;EACtB,QAAIwB,IAAI,GAAGzB,OAAO,CAAC0B,kBAAnB;;EAEA,WAAOD,IAAP,EAAa;EACX,UAAI,KAAK1B,OAAL,CAAa0B,IAAb,EAAmBxB,QAAnB,CAAJ,EAAkC;EAChC,eAAO,CAACwB,IAAD,CAAP;EACD;;EAEDA,MAAAA,IAAI,GAAGA,IAAI,CAACC,kBAAZ;EACD;;EAED,WAAO,EAAP;EACD;EA7DoB;;;;;;;;"}

295
js/dist/dropdown.js vendored
View file

@ -1,25 +1,45 @@
/*! /*!
* Bootstrap dropdown.js v5.0.0-alpha1 (https://getbootstrap.com/) * Bootstrap dropdown.js v5.0.0-beta1 (https://getbootstrap.com/)
* Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/ */
(function (global, factory) { (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 exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('@popperjs/core'), 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', 'popper.js', './dom/selector-engine.js'], factory) : typeof define === 'function' && define.amd ? define(['@popperjs/core', './dom/data', './dom/event-handler', './dom/manipulator', './dom/selector-engine'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Dropdown = factory(global.Data, global.EventHandler, global.Manipulator, global.Popper, global.SelectorEngine)); (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Dropdown = factory(global.Popper, global.Data, global.EventHandler, global.Manipulator, global.SelectorEngine));
}(this, (function (Data, EventHandler, Manipulator, Popper, SelectorEngine) { 'use strict'; }(this, (function (Popper, Data, EventHandler, Manipulator, SelectorEngine) { 'use strict';
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
function _interopNamespace(e) {
if (e && e.__esModule) return e;
var n = Object.create(null);
if (e) {
Object.keys(e).forEach(function (k) {
if (k !== 'default') {
var d = Object.getOwnPropertyDescriptor(e, k);
Object.defineProperty(n, k, d.get ? d : {
enumerable: true,
get: function () {
return e[k];
}
});
}
});
}
n['default'] = e;
return Object.freeze(n);
}
var Popper__namespace = /*#__PURE__*/_interopNamespace(Popper);
var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data); var Data__default = /*#__PURE__*/_interopDefaultLegacy(Data);
var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler); var EventHandler__default = /*#__PURE__*/_interopDefaultLegacy(EventHandler);
var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator); var Manipulator__default = /*#__PURE__*/_interopDefaultLegacy(Manipulator);
var Popper__default = /*#__PURE__*/_interopDefaultLegacy(Popper);
var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine); var SelectorEngine__default = /*#__PURE__*/_interopDefaultLegacy(SelectorEngine);
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.0.0-alpha1): util/index.js * Bootstrap (v5.0.0-beta1): util/index.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@ -33,7 +53,7 @@
}; };
var getSelector = function getSelector(element) { var getSelector = function getSelector(element) {
var selector = element.getAttribute('data-target'); var selector = element.getAttribute('data-bs-target');
if (!selector || selector === '#') { if (!selector || selector === '#') {
var hrefAttr = element.getAttribute('href'); var hrefAttr = element.getAttribute('href');
@ -86,14 +106,22 @@
var _window = window, var _window = window,
jQuery = _window.jQuery; jQuery = _window.jQuery;
if (jQuery && !document.body.hasAttribute('data-no-jquery')) { if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
return jQuery; return jQuery;
} }
return null; return null;
}; };
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 onDOMContentLoaded = function onDOMContentLoaded(callback) {
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', callback);
} else {
callback();
}
};
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 _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); } }
@ -104,8 +132,55 @@
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var VERSION = '5.0.0-beta1';
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 NAME = 'dropdown';
var VERSION = '5.0.0-alpha1';
var DATA_KEY = 'bs.dropdown'; var DATA_KEY = 'bs.dropdown';
var EVENT_KEY = "." + DATA_KEY; var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api'; var DATA_API_KEY = '.data-api';
@ -128,26 +203,24 @@
var CLASS_NAME_DISABLED = 'disabled'; var CLASS_NAME_DISABLED = 'disabled';
var CLASS_NAME_SHOW = 'show'; var CLASS_NAME_SHOW = 'show';
var CLASS_NAME_DROPUP = 'dropup'; var CLASS_NAME_DROPUP = 'dropup';
var CLASS_NAME_DROPRIGHT = 'dropright'; var CLASS_NAME_DROPEND = 'dropend';
var CLASS_NAME_DROPLEFT = 'dropleft'; var CLASS_NAME_DROPSTART = 'dropstart';
var CLASS_NAME_MENURIGHT = 'dropdown-menu-right';
var CLASS_NAME_NAVBAR = 'navbar'; var CLASS_NAME_NAVBAR = 'navbar';
var CLASS_NAME_POSITION_STATIC = 'position-static'; var SELECTOR_DATA_TOGGLE = '[data-bs-toggle="dropdown"]';
var SELECTOR_DATA_TOGGLE = '[data-toggle="dropdown"]';
var SELECTOR_FORM_CHILD = '.dropdown form'; var SELECTOR_FORM_CHILD = '.dropdown form';
var SELECTOR_MENU = '.dropdown-menu'; var SELECTOR_MENU = '.dropdown-menu';
var SELECTOR_NAVBAR_NAV = '.navbar-nav'; var SELECTOR_NAVBAR_NAV = '.navbar-nav';
var SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'; var SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';
var PLACEMENT_TOP = 'top-start'; var PLACEMENT_TOP = isRTL ? 'top-end' : 'top-start';
var PLACEMENT_TOPEND = 'top-end'; var PLACEMENT_TOPEND = isRTL ? 'top-start' : 'top-end';
var PLACEMENT_BOTTOM = 'bottom-start'; var PLACEMENT_BOTTOM = isRTL ? 'bottom-end' : 'bottom-start';
var PLACEMENT_BOTTOMEND = 'bottom-end'; var PLACEMENT_BOTTOMEND = isRTL ? 'bottom-start' : 'bottom-end';
var PLACEMENT_RIGHT = 'right-start'; var PLACEMENT_RIGHT = isRTL ? 'left-start' : 'right-start';
var PLACEMENT_LEFT = 'left-start'; var PLACEMENT_LEFT = isRTL ? 'right-start' : 'left-start';
var Default = { var Default = {
offset: 0, offset: 0,
flip: true, flip: true,
boundary: 'scrollParent', boundary: 'clippingParents',
reference: 'toggle', reference: 'toggle',
display: 'dynamic', display: 'dynamic',
popperConfig: null popperConfig: null
@ -166,17 +239,21 @@
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var Dropdown = /*#__PURE__*/function () { var Dropdown = /*#__PURE__*/function (_BaseComponent) {
_inheritsLoose(Dropdown, _BaseComponent);
function Dropdown(element, config) { function Dropdown(element, config) {
this._element = element; var _this;
this._popper = null;
this._config = this._getConfig(config);
this._menu = this._getMenuElement();
this._inNavbar = this._detectNavbar();
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 } // Getters
@ -212,12 +289,12 @@
if (showEvent.defaultPrevented) { if (showEvent.defaultPrevented) {
return; return;
} // Disable totally Popper.js for Dropdown in Navbar } // Totally disable Popper for Dropdowns in Navbar
if (!this._inNavbar) { if (!this._inNavbar) {
if (typeof Popper__default['default'] === 'undefined') { if (typeof Popper__namespace === '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; var referenceElement = this._element;
@ -230,16 +307,9 @@
if (typeof this._config.reference.jquery !== 'undefined') { if (typeof this._config.reference.jquery !== 'undefined') {
referenceElement = this._config.reference[0]; referenceElement = this._config.reference[0];
} }
} // If boundary is not `scrollParent`, then set position to `static`
// to allow the menu to "escape" the scroll parent's boundaries
// https://github.com/twbs/bootstrap/issues/24251
if (this._config.boundary !== 'scrollParent') {
parent.classList.add(CLASS_NAME_POSITION_STATIC);
} }
this._popper = new Popper__default['default'](referenceElement, this._menu, this._getPopperConfig()); this._popper = Popper.createPopper(referenceElement, this._menu, this._getPopperConfig());
} // If this is a touch-enabled device we add extra } // If this is a touch-enabled device we add extra
// empty mouseover listeners to the body's immediate children; // empty mouseover listeners to the body's immediate children;
// only needed because of broken event delegation on iOS // only needed because of broken event delegation on iOS
@ -258,8 +328,10 @@
this._element.setAttribute('aria-expanded', true); this._element.setAttribute('aria-expanded', true);
Manipulator__default['default'].toggleClass(this._menu, CLASS_NAME_SHOW); this._menu.classList.toggle(CLASS_NAME_SHOW);
Manipulator__default['default'].toggleClass(this._element, CLASS_NAME_SHOW);
this._element.classList.toggle(CLASS_NAME_SHOW);
EventHandler__default['default'].trigger(parent, EVENT_SHOWN, relatedTarget); EventHandler__default['default'].trigger(parent, EVENT_SHOWN, relatedTarget);
}; };
@ -282,15 +354,17 @@
this._popper.destroy(); this._popper.destroy();
} }
Manipulator__default['default'].toggleClass(this._menu, CLASS_NAME_SHOW); this._menu.classList.toggle(CLASS_NAME_SHOW);
Manipulator__default['default'].toggleClass(this._element, CLASS_NAME_SHOW);
this._element.classList.toggle(CLASS_NAME_SHOW);
EventHandler__default['default'].trigger(parent, EVENT_HIDDEN, relatedTarget); EventHandler__default['default'].trigger(parent, EVENT_HIDDEN, relatedTarget);
}; };
_proto.dispose = function dispose() { _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); EventHandler__default['default'].off(this._element, EVENT_KEY);
this._element = null;
this._menu = null; this._menu = null;
if (this._popper) { if (this._popper) {
@ -304,19 +378,19 @@
this._inNavbar = this._detectNavbar(); this._inNavbar = this._detectNavbar();
if (this._popper) { if (this._popper) {
this._popper.scheduleUpdate(); this._popper.update();
} }
} // Private } // Private
; ;
_proto._addEventListeners = function _addEventListeners() { _proto._addEventListeners = function _addEventListeners() {
var _this = this; var _this2 = this;
EventHandler__default['default'].on(this._element, EVENT_CLICK, function (event) { EventHandler__default['default'].on(this._element, EVENT_CLICK, function (event) {
event.preventDefault(); event.preventDefault();
event.stopPropagation(); event.stopPropagation();
_this.toggle(); _this2.toggle();
}); });
}; };
@ -332,64 +406,46 @@
_proto._getPlacement = function _getPlacement() { _proto._getPlacement = function _getPlacement() {
var parentDropdown = this._element.parentNode; var parentDropdown = this._element.parentNode;
var placement = PLACEMENT_BOTTOM; // Handle dropup
if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) { if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {
placement = PLACEMENT_TOP; return PLACEMENT_RIGHT;
if (this._menu.classList.contains(CLASS_NAME_MENURIGHT)) {
placement = PLACEMENT_TOPEND;
}
} else if (parentDropdown.classList.contains(CLASS_NAME_DROPRIGHT)) {
placement = PLACEMENT_RIGHT;
} else if (parentDropdown.classList.contains(CLASS_NAME_DROPLEFT)) {
placement = PLACEMENT_LEFT;
} else if (this._menu.classList.contains(CLASS_NAME_MENURIGHT)) {
placement = PLACEMENT_BOTTOMEND;
} }
return placement; if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {
return PLACEMENT_LEFT;
} // We need to trim the value because custom properties can also include spaces
var isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end';
if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {
return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP;
}
return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM;
}; };
_proto._detectNavbar = function _detectNavbar() { _proto._detectNavbar = function _detectNavbar() {
return Boolean(this._element.closest("." + CLASS_NAME_NAVBAR)); return this._element.closest("." + CLASS_NAME_NAVBAR) !== null;
};
_proto._getOffset = function _getOffset() {
var _this2 = 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) || {});
return data;
};
} else {
offset.offset = this._config.offset;
}
return offset;
}; };
_proto._getPopperConfig = function _getPopperConfig() { _proto._getPopperConfig = function _getPopperConfig() {
var popperConfig = { var popperConfig = {
placement: this._getPlacement(), placement: this._getPlacement(),
modifiers: { modifiers: [{
offset: this._getOffset(), name: 'preventOverflow',
flip: { options: {
enabled: this._config.flip altBoundary: this._config.flip,
}, rootBoundary: this._config.boundary
preventOverflow: {
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') { if (this._config.display === 'static') {
popperConfig.modifiers.applyStyle = { popperConfig.modifiers = [{
name: 'applyStyles',
enabled: false enabled: false
}; }];
} }
return _extends({}, popperConfig, this._config.popperConfig); return _extends({}, popperConfig, this._config.popperConfig);
@ -524,15 +580,14 @@
return; return;
} }
var index = items.indexOf(event.target); var index = items.indexOf(event.target); // Up
if (event.key === ARROW_UP_KEY && index > 0) { if (event.key === ARROW_UP_KEY && index > 0) {
// Up
index--; index--;
} } // Down
if (event.key === ARROW_DOWN_KEY && index < items.length - 1) { if (event.key === ARROW_DOWN_KEY && index < items.length - 1) {
// Down
index++; index++;
} // index is -1 if the first keydown is an ArrowUp } // index is -1 if the first keydown is an ArrowUp
@ -541,16 +596,7 @@
items[index].focus(); items[index].focus();
}; };
Dropdown.getInstance = function getInstance(element) { _createClass$1(Dropdown, null, [{
return Data__default['default'].getData(element, DATA_KEY);
};
_createClass(Dropdown, null, [{
key: "VERSION",
get: function get() {
return VERSION;
}
}, {
key: "Default", key: "Default",
get: function get() { get: function get() {
return Default; return Default;
@ -560,10 +606,15 @@
get: function get() { get: function get() {
return DefaultType; return DefaultType;
} }
}, {
key: "DATA_KEY",
get: function get() {
return DATA_KEY;
}
}]); }]);
return Dropdown; return Dropdown;
}(); }(BaseComponent);
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Data Api implementation * Data Api implementation
@ -583,26 +634,28 @@
EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, function (e) { EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, function (e) {
return e.stopPropagation(); return e.stopPropagation();
}); });
var $ = getjQuery();
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* jQuery * jQuery
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* add .dropdown to jQuery only if jQuery is present * add .Dropdown to jQuery only if jQuery is present
*/ */
/* istanbul ignore if */ onDOMContentLoaded(function () {
var $ = getjQuery();
/* istanbul ignore if */
if ($) { if ($) {
var JQUERY_NO_CONFLICT = $.fn[NAME]; var JQUERY_NO_CONFLICT = $.fn[NAME];
$.fn[NAME] = Dropdown.jQueryInterface; $.fn[NAME] = Dropdown.jQueryInterface;
$.fn[NAME].Constructor = Dropdown; $.fn[NAME].Constructor = Dropdown;
$.fn[NAME].noConflict = function () { $.fn[NAME].noConflict = function () {
$.fn[NAME] = JQUERY_NO_CONFLICT; $.fn[NAME] = JQUERY_NO_CONFLICT;
return Dropdown.jQueryInterface; return Dropdown.jQueryInterface;
}; };
} }
});
return Dropdown; return Dropdown;

File diff suppressed because one or more lines are too long

300
js/dist/modal.js vendored
View file

@ -1,11 +1,11 @@
/*! /*!
* Bootstrap modal.js v5.0.0-alpha1 (https://getbootstrap.com/) * Bootstrap modal.js v5.0.0-beta1 (https://getbootstrap.com/)
* Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/ */
(function (global, factory) { (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 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)); (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'; }(this, (function (Data, EventHandler, Manipulator, SelectorEngine) { 'use strict';
@ -18,7 +18,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.0.0-alpha1): util/index.js * Bootstrap (v5.0.0-beta1): util/index.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@ -34,7 +34,7 @@
}; };
var getSelector = function getSelector(element) { var getSelector = function getSelector(element) {
var selector = element.getAttribute('data-target'); var selector = element.getAttribute('data-bs-target');
if (!selector || selector === '#') { if (!selector || selector === '#') {
var hrefAttr = element.getAttribute('href'); var hrefAttr = element.getAttribute('href');
@ -59,8 +59,8 @@
transitionDuration = _window$getComputedSt.transitionDuration, transitionDuration = _window$getComputedSt.transitionDuration,
transitionDelay = _window$getComputedSt.transitionDelay; transitionDelay = _window$getComputedSt.transitionDelay;
var floatTransitionDuration = parseFloat(transitionDuration); var floatTransitionDuration = Number.parseFloat(transitionDuration);
var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
if (!floatTransitionDuration && !floatTransitionDelay) { if (!floatTransitionDuration && !floatTransitionDelay) {
return 0; return 0;
@ -69,7 +69,7 @@
transitionDuration = transitionDuration.split(',')[0]; transitionDuration = transitionDuration.split(',')[0];
transitionDelay = transitionDelay.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) { var triggerTransitionEnd = function triggerTransitionEnd(element) {
@ -132,14 +132,22 @@
var _window = window, var _window = window,
jQuery = _window.jQuery; jQuery = _window.jQuery;
if (jQuery && !document.body.hasAttribute('data-no-jquery')) { if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
return jQuery; return jQuery;
} }
return null; return null;
}; };
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 onDOMContentLoaded = function onDOMContentLoaded(callback) {
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', callback);
} else {
callback();
}
};
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 _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); } }
@ -150,8 +158,55 @@
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var VERSION = '5.0.0-beta1';
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 NAME = 'modal';
var VERSION = '5.0.0-alpha1';
var DATA_KEY = 'bs.modal'; var DATA_KEY = 'bs.modal';
var EVENT_KEY = "." + DATA_KEY; var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api'; var DATA_API_KEY = '.data-api';
@ -159,14 +214,12 @@
var Default = { var Default = {
backdrop: true, backdrop: true,
keyboard: true, keyboard: true,
focus: true, focus: true
show: true
}; };
var DefaultType = { var DefaultType = {
backdrop: '(boolean|string)', backdrop: '(boolean|string)',
keyboard: 'boolean', keyboard: 'boolean',
focus: 'boolean', focus: 'boolean'
show: 'boolean'
}; };
var EVENT_HIDE = "hide" + EVENT_KEY; var EVENT_HIDE = "hide" + EVENT_KEY;
var EVENT_HIDE_PREVENTED = "hidePrevented" + EVENT_KEY; var EVENT_HIDE_PREVENTED = "hidePrevented" + EVENT_KEY;
@ -188,8 +241,8 @@
var CLASS_NAME_STATIC = 'modal-static'; var CLASS_NAME_STATIC = 'modal-static';
var SELECTOR_DIALOG = '.modal-dialog'; var SELECTOR_DIALOG = '.modal-dialog';
var SELECTOR_MODAL_BODY = '.modal-body'; var SELECTOR_MODAL_BODY = '.modal-body';
var SELECTOR_DATA_TOGGLE = '[data-toggle="modal"]'; var SELECTOR_DATA_TOGGLE = '[data-bs-toggle="modal"]';
var SELECTOR_DATA_DISMISS = '[data-dismiss="modal"]'; var SELECTOR_DATA_DISMISS = '[data-bs-dismiss="modal"]';
var SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'; var SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';
var SELECTOR_STICKY_CONTENT = '.sticky-top'; var SELECTOR_STICKY_CONTENT = '.sticky-top';
/** /**
@ -198,18 +251,22 @@
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var Modal = /*#__PURE__*/function () { var Modal = /*#__PURE__*/function (_BaseComponent) {
_inheritsLoose(Modal, _BaseComponent);
function Modal(element, config) { function Modal(element, config) {
this._config = this._getConfig(config); var _this;
this._element = element;
this._dialog = SelectorEngine__default['default'].findOne(SELECTOR_DIALOG, element); _this = _BaseComponent.call(this, element) || this;
this._backdrop = null; _this._config = _this._getConfig(config);
this._isShown = false; _this._dialog = SelectorEngine__default['default'].findOne(SELECTOR_DIALOG, element);
this._isBodyOverflowing = false; _this._backdrop = null;
this._ignoreBackdropClick = false; _this._isShown = false;
this._isTransitioning = false; _this._isBodyOverflowing = false;
this._scrollbarWidth = 0; _this._ignoreBackdropClick = false;
Data__default['default'].setData(element, DATA_KEY, this); _this._isTransitioning = false;
_this._scrollbarWidth = 0;
return _this;
} // Getters } // Getters
@ -221,7 +278,7 @@
}; };
_proto.show = function show(relatedTarget) { _proto.show = function show(relatedTarget) {
var _this = this; var _this2 = this;
if (this._isShown || this._isTransitioning) { if (this._isShown || this._isTransitioning) {
return; return;
@ -252,23 +309,23 @@
this._setResizeEvent(); this._setResizeEvent();
EventHandler__default['default'].on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function (event) { 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'].on(this._dialog, EVENT_MOUSEDOWN_DISMISS, function () {
EventHandler__default['default'].one(_this._element, EVENT_MOUSEUP_DISMISS, function (event) { EventHandler__default['default'].one(_this2._element, EVENT_MOUSEUP_DISMISS, function (event) {
if (event.target === _this._element) { if (event.target === _this2._element) {
_this._ignoreBackdropClick = true; _this2._ignoreBackdropClick = true;
} }
}); });
}); });
this._showBackdrop(function () { this._showBackdrop(function () {
return _this._showElement(relatedTarget); return _this2._showElement(relatedTarget);
}); });
}; };
_proto.hide = function hide(event) { _proto.hide = function hide(event) {
var _this2 = this; var _this3 = this;
if (event) { if (event) {
event.preventDefault(); event.preventDefault();
@ -306,7 +363,7 @@
if (transition) { if (transition) {
var transitionDuration = getTransitionDurationFromElement(this._element); var transitionDuration = getTransitionDurationFromElement(this._element);
EventHandler__default['default'].one(this._element, TRANSITION_END, function (event) { EventHandler__default['default'].one(this._element, TRANSITION_END, function (event) {
return _this2._hideModal(event); return _this3._hideModal(event);
}); });
emulateTransitionEnd(this._element, transitionDuration); emulateTransitionEnd(this._element, transitionDuration);
} else { } else {
@ -318,16 +375,17 @@
[window, this._element, this._dialog].forEach(function (htmlElement) { [window, this._element, this._dialog].forEach(function (htmlElement) {
return EventHandler__default['default'].off(htmlElement, EVENT_KEY); return EventHandler__default['default'].off(htmlElement, EVENT_KEY);
}); });
_BaseComponent.prototype.dispose.call(this);
/** /**
* `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API` * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`
* Do not move `document` in `htmlElements` array * Do not move `document` in `htmlElements` array
* It will remove `EVENT_CLICK_DATA_API` event that should remain * It will remove `EVENT_CLICK_DATA_API` event that should remain
*/ */
EventHandler__default['default'].off(document, EVENT_FOCUSIN); EventHandler__default['default'].off(document, EVENT_FOCUSIN);
Data__default['default'].removeData(this._element, DATA_KEY);
this._config = null; this._config = null;
this._element = null;
this._dialog = null; this._dialog = null;
this._backdrop = null; this._backdrop = null;
this._isShown = null; this._isShown = null;
@ -349,7 +407,7 @@
}; };
_proto._showElement = function _showElement(relatedTarget) { _proto._showElement = function _showElement(relatedTarget) {
var _this3 = this; var _this4 = this;
var transition = this._element.classList.contains(CLASS_NAME_FADE); var transition = this._element.classList.contains(CLASS_NAME_FADE);
@ -385,12 +443,12 @@
} }
var transitionComplete = function transitionComplete() { var transitionComplete = function transitionComplete() {
if (_this3._config.focus) { if (_this4._config.focus) {
_this3._element.focus(); _this4._element.focus();
} }
_this3._isTransitioning = false; _this4._isTransitioning = false;
EventHandler__default['default'].trigger(_this3._element, EVENT_SHOWN, { EventHandler__default['default'].trigger(_this4._element, EVENT_SHOWN, {
relatedTarget: relatedTarget relatedTarget: relatedTarget
}); });
}; };
@ -405,28 +463,28 @@
}; };
_proto._enforceFocus = function _enforceFocus() { _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'].off(document, EVENT_FOCUSIN); // guard against infinite focus loop
EventHandler__default['default'].on(document, EVENT_FOCUSIN, function (event) { EventHandler__default['default'].on(document, EVENT_FOCUSIN, function (event) {
if (document !== event.target && _this4._element !== event.target && !_this4._element.contains(event.target)) { if (document !== event.target && _this5._element !== event.target && !_this5._element.contains(event.target)) {
_this4._element.focus(); _this5._element.focus();
} }
}); });
}; };
_proto._setEscapeEvent = function _setEscapeEvent() { _proto._setEscapeEvent = function _setEscapeEvent() {
var _this5 = this; var _this6 = this;
if (this._isShown) { if (this._isShown) {
EventHandler__default['default'].on(this._element, EVENT_KEYDOWN_DISMISS, function (event) { 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(); event.preventDefault();
_this5.hide(); _this6.hide();
} else if (!_this5._config.keyboard && event.key === ESCAPE_KEY) { } else if (!_this6._config.keyboard && event.key === ESCAPE_KEY) {
_this5._triggerBackdropTransition(); _this6._triggerBackdropTransition();
} }
}); });
} else { } else {
@ -435,11 +493,11 @@
}; };
_proto._setResizeEvent = function _setResizeEvent() { _proto._setResizeEvent = function _setResizeEvent() {
var _this6 = this; var _this7 = this;
if (this._isShown) { if (this._isShown) {
EventHandler__default['default'].on(window, EVENT_RESIZE, function () { EventHandler__default['default'].on(window, EVENT_RESIZE, function () {
return _this6._adjustDialog(); return _this7._adjustDialog();
}); });
} else { } else {
EventHandler__default['default'].off(window, EVENT_RESIZE); EventHandler__default['default'].off(window, EVENT_RESIZE);
@ -447,7 +505,7 @@
}; };
_proto._hideModal = function _hideModal() { _proto._hideModal = function _hideModal() {
var _this7 = this; var _this8 = this;
this._element.style.display = 'none'; this._element.style.display = 'none';
@ -462,11 +520,11 @@
this._showBackdrop(function () { this._showBackdrop(function () {
document.body.classList.remove(CLASS_NAME_OPEN); 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);
}); });
}; };
@ -477,7 +535,7 @@
}; };
_proto._showBackdrop = function _showBackdrop(callback) { _proto._showBackdrop = function _showBackdrop(callback) {
var _this8 = this; var _this9 = this;
var animate = this._element.classList.contains(CLASS_NAME_FADE) ? CLASS_NAME_FADE : ''; var animate = this._element.classList.contains(CLASS_NAME_FADE) ? CLASS_NAME_FADE : '';
@ -491,8 +549,8 @@
document.body.appendChild(this._backdrop); document.body.appendChild(this._backdrop);
EventHandler__default['default'].on(this._element, EVENT_CLICK_DISMISS, function (event) { EventHandler__default['default'].on(this._element, EVENT_CLICK_DISMISS, function (event) {
if (_this8._ignoreBackdropClick) { if (_this9._ignoreBackdropClick) {
_this8._ignoreBackdropClick = false; _this9._ignoreBackdropClick = false;
return; return;
} }
@ -500,7 +558,11 @@
return; return;
} }
_this8._triggerBackdropTransition(); if (_this9._config.backdrop === 'static') {
_this9._triggerBackdropTransition();
} else {
_this9.hide();
}
}); });
if (animate) { if (animate) {
@ -521,7 +583,7 @@
this._backdrop.classList.remove(CLASS_NAME_SHOW); this._backdrop.classList.remove(CLASS_NAME_SHOW);
var callbackRemove = function callbackRemove() { var callbackRemove = function callbackRemove() {
_this8._removeBackdrop(); _this9._removeBackdrop();
callback(); callback();
}; };
@ -540,41 +602,37 @@
}; };
_proto._triggerBackdropTransition = function _triggerBackdropTransition() { _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) { if (hideEvent.defaultPrevented) {
return; 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) { 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); this._element.focus();
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();
}
} // ---------------------------------------------------------------------- } // ----------------------------------------------------------------------
// the following methods are used to handle overflowing modals // the following methods are used to handle overflowing modals
// ---------------------------------------------------------------------- // ----------------------------------------------------------------------
@ -583,11 +641,11 @@
_proto._adjustDialog = function _adjustDialog() { _proto._adjustDialog = function _adjustDialog() {
var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight; 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"; 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"; this._element.style.paddingRight = this._scrollbarWidth + "px";
} }
}; };
@ -604,7 +662,7 @@
}; };
_proto._setScrollbar = function _setScrollbar() { _proto._setScrollbar = function _setScrollbar() {
var _this10 = this; var _this11 = this;
if (this._isBodyOverflowing) { if (this._isBodyOverflowing) {
// Note: DOMNode.style.paddingRight returns the actual value or '' if not set // Note: DOMNode.style.paddingRight returns the actual value or '' if not set
@ -614,20 +672,20 @@
var actualPadding = element.style.paddingRight; var actualPadding = element.style.paddingRight;
var calculatedPadding = window.getComputedStyle(element)['padding-right']; var calculatedPadding = window.getComputedStyle(element)['padding-right'];
Manipulator__default['default'].setDataAttribute(element, 'padding-right', actualPadding); 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 }); // Adjust sticky content margin
SelectorEngine__default['default'].find(SELECTOR_STICKY_CONTENT).forEach(function (element) { SelectorEngine__default['default'].find(SELECTOR_STICKY_CONTENT).forEach(function (element) {
var actualMargin = element.style.marginRight; var actualMargin = element.style.marginRight;
var calculatedMargin = window.getComputedStyle(element)['margin-right']; var calculatedMargin = window.getComputedStyle(element)['margin-right'];
Manipulator__default['default'].setDataAttribute(element, 'margin-right', actualMargin); 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 }); // Adjust body padding
var actualPadding = document.body.style.paddingRight; var actualPadding = document.body.style.paddingRight;
var calculatedPadding = window.getComputedStyle(document.body)['padding-right']; var calculatedPadding = window.getComputedStyle(document.body)['padding-right'];
Manipulator__default['default'].setDataAttribute(document.body, 'padding-right', actualPadding); 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); document.body.classList.add(CLASS_NAME_OPEN);
@ -690,30 +748,24 @@
} }
data[config](relatedTarget); data[config](relatedTarget);
} else if (_config.show) {
data.show(relatedTarget);
} }
}); });
}; };
Modal.getInstance = function getInstance(element) { _createClass$1(Modal, null, [{
return Data__default['default'].getData(element, DATA_KEY);
};
_createClass(Modal, null, [{
key: "VERSION",
get: function get() {
return VERSION;
}
}, {
key: "Default", key: "Default",
get: function get() { get: function get() {
return Default; return Default;
} }
}, {
key: "DATA_KEY",
get: function get() {
return DATA_KEY;
}
}]); }]);
return Modal; return Modal;
}(); }(BaseComponent);
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Data Api implementation * Data Api implementation
@ -722,7 +774,7 @@
EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) { EventHandler__default['default'].on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
var _this11 = this; var _this12 = this;
var target = getElementFromSelector(this); var target = getElementFromSelector(this);
@ -737,8 +789,8 @@
} }
EventHandler__default['default'].one(target, EVENT_HIDDEN, function () { EventHandler__default['default'].one(target, EVENT_HIDDEN, function () {
if (isVisible(_this11)) { if (isVisible(_this12)) {
_this11.focus(); _this12.focus();
} }
}); });
}); });
@ -752,26 +804,28 @@
data.show(this); data.show(this);
}); });
var $ = getjQuery();
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* jQuery * jQuery
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* add .modal to jQuery only if jQuery is present * add .Modal to jQuery only if jQuery is present
*/ */
/* istanbul ignore if */ onDOMContentLoaded(function () {
var $ = getjQuery();
/* istanbul ignore if */
if ($) { if ($) {
var JQUERY_NO_CONFLICT = $.fn[NAME]; var JQUERY_NO_CONFLICT = $.fn[NAME];
$.fn[NAME] = Modal.jQueryInterface; $.fn[NAME] = Modal.jQueryInterface;
$.fn[NAME].Constructor = Modal; $.fn[NAME].Constructor = Modal;
$.fn[NAME].noConflict = function () { $.fn[NAME].noConflict = function () {
$.fn[NAME] = JQUERY_NO_CONFLICT; $.fn[NAME] = JQUERY_NO_CONFLICT;
return Modal.jQueryInterface; return Modal.jQueryInterface;
}; };
} }
});
return Modal; return Modal;

File diff suppressed because one or more lines are too long

65
js/dist/popover.js vendored
View file

@ -1,11 +1,11 @@
/*! /*!
* Bootstrap popover.js v5.0.0-alpha1 (https://getbootstrap.com/) * Bootstrap popover.js v5.0.0-beta1 (https://getbootstrap.com/)
* Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/ */
(function (global, factory) { (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 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)); (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Popover = factory(global.Data, global.SelectorEngine, global.Tooltip));
}(this, (function (Data, SelectorEngine, Tooltip) { 'use strict'; }(this, (function (Data, SelectorEngine, Tooltip) { 'use strict';
@ -17,7 +17,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.0.0-alpha1): util/index.js * Bootstrap (v5.0.0-beta1): util/index.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@ -26,13 +26,23 @@
var _window = window, var _window = window,
jQuery = _window.jQuery; jQuery = _window.jQuery;
if (jQuery && !document.body.hasAttribute('data-no-jquery')) { if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
return jQuery; return jQuery;
} }
return null; return null;
}; };
var onDOMContentLoaded = function onDOMContentLoaded(callback) {
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', callback);
} else {
callback();
}
};
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 _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; } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
@ -47,7 +57,6 @@
*/ */
var NAME = 'popover'; var NAME = 'popover';
var VERSION = '5.0.0-alpha1';
var DATA_KEY = 'bs.popover'; var DATA_KEY = 'bs.popover';
var EVENT_KEY = "." + DATA_KEY; var EVENT_KEY = "." + DATA_KEY;
var CLASS_PREFIX = 'bs-popover'; var CLASS_PREFIX = 'bs-popover';
@ -57,7 +66,7 @@
placement: 'right', placement: 'right',
trigger: 'click', trigger: 'click',
content: '', 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, { var DefaultType = _extends({}, Tooltip__default['default'].DefaultType, {
@ -108,7 +117,7 @@
var content = this._getContent(); var content = this._getContent();
if (typeof content === 'function') { if (typeof content === 'function') {
content = content.call(this.element); content = content.call(this._element);
} }
this.setElementContent(SelectorEngine__default['default'].findOne(SELECTOR_CONTENT, tip), content); this.setElementContent(SelectorEngine__default['default'].findOne(SELECTOR_CONTENT, tip), content);
@ -117,11 +126,11 @@
; ;
_proto._addAttachmentClass = function _addAttachmentClass(attachment) { _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() { _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() { _proto._cleanTipClass = function _cleanTipClass() {
@ -163,18 +172,9 @@
}); });
}; };
Popover.getInstance = function getInstance(element) {
return Data__default['default'].getData(element, DATA_KEY);
};
_createClass(Popover, null, [{ _createClass(Popover, null, [{
key: "VERSION",
// Getters
get: function get() {
return VERSION;
}
}, {
key: "Default", key: "Default",
// Getters
get: function get() { get: function get() {
return Default; return Default;
} }
@ -207,26 +207,29 @@
return Popover; return Popover;
}(Tooltip__default['default']); }(Tooltip__default['default']);
var $ = getjQuery();
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* jQuery * jQuery
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* add .Popover to jQuery only if jQuery is present
*/ */
/* istanbul ignore if */
if ($) { onDOMContentLoaded(function () {
var JQUERY_NO_CONFLICT = $.fn[NAME]; var $ = getjQuery();
$.fn[NAME] = Popover.jQueryInterface; /* istanbul ignore if */
$.fn[NAME].Constructor = Popover;
$.fn[NAME].noConflict = function () { if ($) {
$.fn[NAME] = JQUERY_NO_CONFLICT; var JQUERY_NO_CONFLICT = $.fn[NAME];
return Popover.jQueryInterface; $.fn[NAME] = Popover.jQueryInterface;
}; $.fn[NAME].Constructor = Popover;
}
$.fn[NAME].noConflict = function () {
$.fn[NAME] = JQUERY_NO_CONFLICT;
return Popover.jQueryInterface;
};
}
});
return Popover; return Popover;

File diff suppressed because one or more lines are too long

153
js/dist/scrollspy.js vendored
View file

@ -1,11 +1,11 @@
/*! /*!
* Bootstrap scrollspy.js v5.0.0-alpha1 (https://getbootstrap.com/) * Bootstrap scrollspy.js v5.0.0-beta1 (https://getbootstrap.com/)
* Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/ */
(function (global, factory) { (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 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)); (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'; }(this, (function (Data, EventHandler, Manipulator, SelectorEngine) { 'use strict';
@ -18,7 +18,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.0.0-alpha1): util/index.js * Bootstrap (v5.0.0-beta1): util/index.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@ -47,7 +47,7 @@
}; };
var getSelector = function getSelector(element) { var getSelector = function getSelector(element) {
var selector = element.getAttribute('data-target'); var selector = element.getAttribute('data-bs-target');
if (!selector || selector === '#') { if (!selector || selector === '#') {
var hrefAttr = element.getAttribute('href'); var hrefAttr = element.getAttribute('href');
@ -87,14 +87,22 @@
var _window = window, var _window = window,
jQuery = _window.jQuery; jQuery = _window.jQuery;
if (jQuery && !document.body.hasAttribute('data-no-jquery')) { if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
return jQuery; return jQuery;
} }
return null; return null;
}; };
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 onDOMContentLoaded = function onDOMContentLoaded(callback) {
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', callback);
} else {
callback();
}
};
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 _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); } }
@ -105,8 +113,55 @@
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var VERSION = '5.0.0-beta1';
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 NAME = 'scrollspy';
var VERSION = '5.0.0-alpha1';
var DATA_KEY = 'bs.scrollspy'; var DATA_KEY = 'bs.scrollspy';
var EVENT_KEY = "." + DATA_KEY; var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api'; var DATA_API_KEY = '.data-api';
@ -125,7 +180,7 @@
var EVENT_LOAD_DATA_API = "load" + EVENT_KEY + DATA_API_KEY; var EVENT_LOAD_DATA_API = "load" + EVENT_KEY + DATA_API_KEY;
var CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'; var CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';
var CLASS_NAME_ACTIVE = 'active'; 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_LIST_GROUP = '.nav, .list-group';
var SELECTOR_NAV_LINKS = '.nav-link'; var SELECTOR_NAV_LINKS = '.nav-link';
var SELECTOR_NAV_ITEMS = '.nav-item'; var SELECTOR_NAV_ITEMS = '.nav-item';
@ -140,26 +195,29 @@
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var ScrollSpy = /*#__PURE__*/function () { var ScrollSpy = /*#__PURE__*/function (_BaseComponent) {
function ScrollSpy(element, config) { _inheritsLoose(ScrollSpy, _BaseComponent);
var _this = this;
this._element = element; function ScrollSpy(element, config) {
this._scrollElement = element.tagName === 'BODY' ? window : element; var _this;
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 = _BaseComponent.call(this, element) || this;
this._offsets = []; _this._scrollElement = element.tagName === 'BODY' ? window : element;
this._targets = []; _this._config = _this._getConfig(config);
this._activeTarget = null; _this._selector = _this._config.target + " " + SELECTOR_NAV_LINKS + ", " + _this._config.target + " " + SELECTOR_LIST_ITEMS + ", " + _this._config.target + " ." + CLASS_NAME_DROPDOWN_ITEM;
this._scrollHeight = 0; _this._offsets = [];
EventHandler__default['default'].on(this._scrollElement, EVENT_SCROLL, function (event) { _this._targets = [];
_this._activeTarget = null;
_this._scrollHeight = 0;
EventHandler__default['default'].on(_this._scrollElement, EVENT_SCROLL, function (event) {
return _this._process(event); return _this._process(event);
}); });
this.refresh();
this._process(); _this.refresh();
Data__default['default'].setData(element, DATA_KEY, this); _this._process();
return _this;
} // Getters } // Getters
@ -201,9 +259,9 @@
}; };
_proto.dispose = function dispose() { _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); EventHandler__default['default'].off(this._scrollElement, EVENT_KEY);
this._element = null;
this._scrollElement = null; this._scrollElement = null;
this._config = null; this._config = null;
this._selector = null; this._selector = null;
@ -288,7 +346,7 @@
this._clear(); this._clear();
var queries = this._selector.split(',').map(function (selector) { 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(',')); var link = SelectorEngine__default['default'].findOne(queries.join(','));
@ -348,24 +406,20 @@
}); });
}; };
ScrollSpy.getInstance = function getInstance(element) { _createClass$1(ScrollSpy, null, [{
return Data__default['default'].getData(element, DATA_KEY);
};
_createClass(ScrollSpy, null, [{
key: "VERSION",
get: function get() {
return VERSION;
}
}, {
key: "Default", key: "Default",
get: function get() { get: function get() {
return Default; return Default;
} }
}, {
key: "DATA_KEY",
get: function get() {
return DATA_KEY;
}
}]); }]);
return ScrollSpy; return ScrollSpy;
}(); }(BaseComponent);
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Data Api implementation * Data Api implementation
@ -378,25 +432,28 @@
return new ScrollSpy(spy, Manipulator__default['default'].getDataAttributes(spy)); return new ScrollSpy(spy, Manipulator__default['default'].getDataAttributes(spy));
}); });
}); });
var $ = getjQuery();
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* jQuery * jQuery
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* add .ScrollSpy to jQuery only if jQuery is present
*/ */
/* istanbul ignore if */ onDOMContentLoaded(function () {
var $ = getjQuery();
/* istanbul ignore if */
if ($) { if ($) {
var JQUERY_NO_CONFLICT = $.fn[NAME]; var JQUERY_NO_CONFLICT = $.fn[NAME];
$.fn[NAME] = ScrollSpy.jQueryInterface; $.fn[NAME] = ScrollSpy.jQueryInterface;
$.fn[NAME].Constructor = ScrollSpy; $.fn[NAME].Constructor = ScrollSpy;
$.fn[NAME].noConflict = function () { $.fn[NAME].noConflict = function () {
$.fn[NAME] = JQUERY_NO_CONFLICT; $.fn[NAME] = JQUERY_NO_CONFLICT;
return ScrollSpy.jQueryInterface; return ScrollSpy.jQueryInterface;
}; };
} }
});
return ScrollSpy; return ScrollSpy;

File diff suppressed because one or more lines are too long

129
js/dist/tab.js vendored
View file

@ -1,11 +1,11 @@
/*! /*!
* Bootstrap tab.js v5.0.0-alpha1 (https://getbootstrap.com/) * Bootstrap tab.js v5.0.0-beta1 (https://getbootstrap.com/)
* Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/ */
(function (global, factory) { (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 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)); (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Tab = factory(global.Data, global.EventHandler, global.SelectorEngine));
}(this, (function (Data, EventHandler, SelectorEngine) { 'use strict'; }(this, (function (Data, EventHandler, SelectorEngine) { 'use strict';
@ -17,7 +17,7 @@
/** /**
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
* Bootstrap (v5.0.0-alpha1): util/index.js * Bootstrap (v5.0.0-beta1): util/index.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
* -------------------------------------------------------------------------- * --------------------------------------------------------------------------
*/ */
@ -25,7 +25,7 @@
var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp) var TRANSITION_END = 'transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
var getSelector = function getSelector(element) { var getSelector = function getSelector(element) {
var selector = element.getAttribute('data-target'); var selector = element.getAttribute('data-bs-target');
if (!selector || selector === '#') { if (!selector || selector === '#') {
var hrefAttr = element.getAttribute('href'); var hrefAttr = element.getAttribute('href');
@ -50,8 +50,8 @@
transitionDuration = _window$getComputedSt.transitionDuration, transitionDuration = _window$getComputedSt.transitionDuration,
transitionDelay = _window$getComputedSt.transitionDelay; transitionDelay = _window$getComputedSt.transitionDelay;
var floatTransitionDuration = parseFloat(transitionDuration); var floatTransitionDuration = Number.parseFloat(transitionDuration);
var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found var floatTransitionDelay = Number.parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
if (!floatTransitionDuration && !floatTransitionDelay) { if (!floatTransitionDuration && !floatTransitionDelay) {
return 0; return 0;
@ -60,7 +60,7 @@
transitionDuration = transitionDuration.split(',')[0]; transitionDuration = transitionDuration.split(',')[0];
transitionDelay = transitionDelay.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) { var triggerTransitionEnd = function triggerTransitionEnd(element) {
@ -93,13 +93,23 @@
var _window = window, var _window = window,
jQuery = _window.jQuery; jQuery = _window.jQuery;
if (jQuery && !document.body.hasAttribute('data-no-jquery')) { if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
return jQuery; return jQuery;
} }
return null; return null;
}; };
var onDOMContentLoaded = function onDOMContentLoaded(callback) {
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', callback);
} else {
callback();
}
};
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 _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; } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
@ -109,8 +119,53 @@
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var VERSION = '5.0.0-beta1';
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 NAME = 'tab';
var VERSION = '5.0.0-alpha1';
var DATA_KEY = 'bs.tab'; var DATA_KEY = 'bs.tab';
var EVENT_KEY = "." + DATA_KEY; var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api'; var DATA_API_KEY = '.data-api';
@ -128,7 +183,7 @@
var SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'; var SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';
var SELECTOR_ACTIVE = '.active'; var SELECTOR_ACTIVE = '.active';
var SELECTOR_ACTIVE_UL = ':scope > li > .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_TOGGLE = '.dropdown-toggle';
var SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active'; var SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active';
/** /**
@ -137,12 +192,12 @@
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
*/ */
var Tab = /*#__PURE__*/function () { var Tab = /*#__PURE__*/function (_BaseComponent) {
function Tab(element) { _inheritsLoose(Tab, _BaseComponent);
this._element = element;
Data__default['default'].setData(this._element, DATA_KEY, this);
} // Getters
function Tab() {
return _BaseComponent.apply(this, arguments) || this;
}
var _proto = Tab.prototype; var _proto = Tab.prototype;
@ -197,11 +252,6 @@
} else { } else {
complete(); complete();
} }
};
_proto.dispose = function dispose() {
Data__default['default'].removeData(this._element, DATA_KEY);
this._element = null;
} // Private } // Private
; ;
@ -284,19 +334,16 @@
}); });
}; };
Tab.getInstance = function getInstance(element) { _createClass$1(Tab, null, [{
return Data__default['default'].getData(element, DATA_KEY); key: "DATA_KEY",
}; // Getters
_createClass(Tab, null, [{
key: "VERSION",
get: function get() { get: function get() {
return VERSION; return DATA_KEY;
} }
}]); }]);
return Tab; return Tab;
}(); }(BaseComponent);
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* Data Api implementation * Data Api implementation
@ -309,26 +356,28 @@
var data = Data__default['default'].getData(this, DATA_KEY) || new Tab(this); var data = Data__default['default'].getData(this, DATA_KEY) || new Tab(this);
data.show(); data.show();
}); });
var $ = getjQuery();
/** /**
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* jQuery * jQuery
* ------------------------------------------------------------------------ * ------------------------------------------------------------------------
* add .tab to jQuery only if jQuery is present * add .Tab to jQuery only if jQuery is present
*/ */
/* istanbul ignore if */ onDOMContentLoaded(function () {
var $ = getjQuery();
/* istanbul ignore if */
if ($) { if ($) {
var JQUERY_NO_CONFLICT = $.fn[NAME]; var JQUERY_NO_CONFLICT = $.fn[NAME];
$.fn[NAME] = Tab.jQueryInterface; $.fn[NAME] = Tab.jQueryInterface;
$.fn[NAME].Constructor = Tab; $.fn[NAME].Constructor = Tab;
$.fn[NAME].noConflict = function () { $.fn[NAME].noConflict = function () {
$.fn[NAME] = JQUERY_NO_CONFLICT; $.fn[NAME] = JQUERY_NO_CONFLICT;
return Tab.jQueryInterface; return Tab.jQueryInterface;
}; };
} }
});
return Tab; return Tab;

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