0
0
mirror of https://github.com/twbs/bootstrap.git synced 2024-12-10 22:24:19 +01:00
Commit Graph

638 Commits

Author SHA1 Message Date
XhmikosR
5bcd6a29cd Disable a few rules for now. 2019-03-11 17:01:28 +02:00
XhmikosR
46c037410b Comply to the new rules. 2019-03-11 17:01:28 +02:00
XhmikosR
44e6abcba5 Switch to eslint-config-xo and eslint-plugin-unicorn. 2019-03-11 17:01:28 +02:00
XhmikosR
9cbd041f6b
tests: add tests for plugins version. (#28366) 2019-02-27 13:20:25 +02:00
Johann-S
8a37045b79 move util in a util folder with the sanitizer 2019-02-26 13:04:04 +02:00
XhmikosR
f0c6b24bd7 4.3.1. 2019-02-20 22:05:45 +02:00
Joshua Wilson
fdbb5db919 minor jQuery.hasclass removal (#28158) 2019-02-20 22:05:45 +02:00
Peter Blazejewicz
cbd333185e Use consistent arrow class (#28105) 2019-02-20 22:05:45 +02:00
Johann-S
c096e0e0da bump to 4.2.1 2019-02-20 22:05:45 +02:00
Johann-S
661db08eeb rewrite toast plugin without jquery 2019-02-20 22:05:45 +02:00
Johann-S
57d50b2134 Improve manipulator coverage 2019-02-20 22:05:45 +02:00
Alessandro Chitolina
6cfc78f2d9 Remove IE support and button bsChecked hack 2019-02-20 22:05:45 +02:00
Johann-S
a2f1d79045 Refactor util plugin and some tests 2019-02-20 22:05:45 +02:00
Johann-S
c44db783bf chore(update): bump to 4.1.3 2019-02-20 22:05:45 +02:00
Johann-S
6b0808354d fix(unit-test): dropdown, collapse and carousel 2019-02-20 22:05:45 +02:00
Johann-S
a1cc9a6e33 fix(util): increase util coverage 2019-02-20 22:05:45 +02:00
Johann-S
096413a994 fix(selector-engine): increase coverage for selector engine 2019-02-20 22:05:45 +02:00
Johann-S
64591b3722 fix(manipulator): increase coverage for manipulator 2019-02-20 22:05:45 +02:00
Johann-S
0b719e065c fix(data): increase coverage for data 2019-02-20 22:05:45 +02:00
Johann-S
9313446274 fix(event-handler): remove the use of our event handler in unit test 2019-02-20 22:05:45 +02:00
Johann-S
2b78078779 fix(data): do not use data object in our unit tests 2019-02-20 22:05:45 +02:00
Johann-S
7eddee286e remove old references to jquery and some fixes 2019-02-20 22:05:45 +02:00
Alessandro Chitolina
0263d1742c rewritten scrollspy without jquery 2019-02-20 22:05:45 +02:00
Johann-S
9744886519 upgrade to v4 stable 2019-02-20 22:05:45 +02:00
Alessandro Chitolina
7f08061eca rewritten tab without jquery 2019-02-20 22:05:45 +02:00
Johann-S
90261b484c Dropdown without jQuery 2019-02-20 22:05:45 +02:00
Johann-S
2ff8ed5cbf Fix new unit test in popover 2019-02-20 22:05:45 +02:00
Alessandro Chitolina
ec69de4b7e allow register the same handler for different delegated selectors in eventHandler 2019-02-20 22:05:45 +02:00
Alessandro Chitolina
cc6e130fc1 tooltip without jquery 2019-02-20 22:05:45 +02:00
Johann-S
bcbea02886 fix unit test modal 2019-02-20 22:05:45 +02:00
Johann-S
69e4d4f3ac Rewrite Collapse without jQuery 2019-02-20 22:05:45 +02:00
Alessandro Chitolina
53ca76ebc0 Workaround for M$ Edge resetting defaultPrevented flag upon dispatchEvent 2019-02-20 22:05:45 +02:00
Alessandro Chitolina
33211eefdf Rewritten modal without jquery (#23955)
* Trigger jquery events if available in event handler

* Rewritten modal without jquery
2019-02-20 22:05:45 +02:00
Johann-S
9f9712b98c Add Manipulator object to add shortcuts for dom manipulations 2019-02-20 22:05:45 +02:00
Johann-S
44f38e4128 Rewrite carousel without jquery 2019-02-20 22:05:45 +02:00
XhmikosR
aba87279fd button without jquery 2019-02-20 22:05:45 +02:00
Johann-S
2970d14dd9 Remove jQuery from alert.js and add .alert only if jQuery is available 2019-02-20 22:05:45 +02:00
Johann-S
0b16c8c6d9 alert without jquery 2019-02-20 22:05:45 +02:00
Patrick H. Lauke
4b00aa6c4e Remove incorrect aria-haspopup from dropdown toggles (#28299)
`aria-haspopup` use requires the use of an ARIA `menu`, `listbox`, `tree`, `grid` or `dialog` (see https://www.w3.org/TR/wai-aria-1.1/#aria-haspopup)

in our use (as generic disclosure widgets), it's incorrect and sets up the wrong assumption/behavior from assistive technologies.

in future, we likely want to change our dropdowns to essentially be like a `dialog` - move focus to it when opened, possibly make it modal so focus is maintained inside it and the rest of the page
is hidden/inert.

but for now, removing the incorrect attribute is probably the quickest, most immediate fix.
2019-02-19 11:25:36 +02:00
Johann-S
7bc4d2e0bc Add sanitize template option for tooltip/popover plugins. 2019-02-13 08:32:15 +02:00
Johann-S
b54ddfda83 fix modal test to be sure we call getTransitionDurationFromElement 2019-02-06 15:01:13 +01:00
Johann-S
3c49467224 allow to override default toast options (#28186) 2019-02-06 15:19:04 +02:00
Johann-S
11880109fc
fix tabs, apply show class only when fade class is present (#28183) 2019-02-06 11:12:02 +01:00
Jason Golieb
e44d0475e0 Move dropdown offset function logic into private function. (#28138) 2019-02-05 10:31:18 +02:00
Jason Golieb
88a34aacbe Add support for tooltip offset option to be a function. 2019-02-05 10:24:49 +02:00
Shohei Yoshida
de0bb1e052 Scrollable modal (#27769) 2019-01-20 23:28:16 +02:00
Johann-S
d51ee0dcf1 Fix Carousel's touch option to not add touch listeners when set to false (#28046) 2019-01-14 18:53:54 +02:00
Johann-S
89a73f100e carousel should not cycle when there is no data-ride on init (#27968) 2019-01-04 18:15:01 +02:00
Johann-S
3bd9fb3649 getSelectorFromElement return null on bad selectors (#27912) 2018-12-23 14:30:35 +02:00
Mike Vastola
fc15c4c4ce Change button checkbox/radios to ignore hidden input fields (#27802) 2018-12-10 10:40:08 +02:00
Johann-S
fa03289d13 avoid console call in our unit tests (#27790) 2018-12-06 10:51:35 +02:00
Patrick H. Lauke
6c00dd08bc Add aria-modal to modals (#27780)
Dynamically set/remove `aria-modal="true"` when a modal is shown/hidden
2018-12-05 20:58:09 +02:00
Johann-S
b16127fc10 Allow Tooltips/Popovers to work in shadow DOM 2018-12-05 16:02:59 +01:00
Johann-S
37f74c7070 fix regression about using element for tooltip container option 2018-12-05 10:57:02 +01:00
Johann-S
32ab52ba2e Add test to make sure we enforce focus on modal (#27723) 2018-11-25 18:20:55 +02:00
Johann-S
557d5ac74d Remove the show delay for our toast plugin 2018-11-13 08:47:32 +02:00
Laussel Loïc
4cac833447 Implement data-dismiss="toast" to allow user to interact itself with the component (#27155) 2018-11-13 08:47:32 +02:00
Johann-S
16cf76ff1a Create toast JS plugin, add unit tests. 2018-11-13 08:47:32 +02:00
Johann-S
f7a4b39767 handle detached tooltip when we try to hide a modal 2018-11-02 13:39:58 +01:00
Johann-S
cebdfb9090 fix dispose modal unit test 2018-10-30 16:59:24 +01:00
Andrew Luca
bd2851938a test(Modal): check if modal is disposed 2018-10-30 16:28:32 +01:00
XhmikosR
02df7cd0d2
Fix util tests on IE 10 (#27556) 2018-10-30 15:29:04 +02:00
Martijn Cuppens
5aed968750 Prevent the background to be shown when transitioning 2018-10-30 08:57:02 +02:00
Johann-S
91f8077ed5 add unit tests for our carousel 2018-10-29 14:49:29 +01:00
Johann-S
2c2d04aba5 add unit test to test tabs can be removed without throwing error 2018-10-29 14:01:03 +01:00
Johann-S
ffc8d507c7 calculate modal transition duration based on modal-dialog element 2018-10-28 23:59:17 +02:00
Andrew Luca
1f1308ba22 test(Modal): reuse _getScrollbarWidth in tests 2018-10-21 17:45:02 +02:00
Johann-S
b1dc6b324c avoid drag img 2018-10-20 15:32:09 +03:00
patrickhlauke
8883ccb205 Set touch-action to "none"
Firefox currently seems extremely fickle - with `pan-y` if fires pointercancel as soon as a touch strays even a pixel or so vertically.
While `touch-action: pan-y` would be ideal (allowing users to scroll the page even when their finger started the scroll on the carousel), this prevents a swipe that isn't perfectly/only horizontal to be recognised by Firefox.
2018-10-20 15:32:09 +03:00
patrickhlauke
7b8f01d839 Use correct touch-action values
- my fault, my original advice of using `touch-action: pan-x` is exactly the value we *don't* want to have the browser handle...
2018-10-20 15:32:09 +03:00
Johann-S
735c374e9c use pointer events if available 2018-10-20 15:32:09 +03:00
Johann-S
c08652cfe8 swipe left/right without hammerjs 2018-10-20 15:32:09 +03:00
Johann-S
caefd70463 Add touch support in our carousel with HammerJS. 2018-10-20 15:32:09 +03:00
galczo5
6cbcd03efb Add show and hide methods to dropdown (#27370) 2018-10-20 14:27:51 +03:00
Christopher Morrissey
ea0faadde5 feature(carousel): carousel-item interval (#26667)
adds the ability to assign data-interval to an individual carousel-item
2018-09-18 15:55:48 +03:00
Johann-S
a689120fd2 throw error when folks try to use a bad selector 2018-09-13 22:13:36 +02:00
Johann-S
6e2a823a44 collapse children with no data-parent 2018-09-10 21:10:00 +02:00
Johann-S
a3e45d8ced
add information about valid selectors (#27137) 2018-08-31 21:00:29 +02:00
Johann-S
eab9da5beb fix(util): use querySelector for ids 2018-08-12 17:01:01 +02:00
Johann-S
6b92321f6a fix(util): use getElementById when it's possible 2018-08-07 18:49:02 +02:00
Johann-S
283ab30164 fix(modal): fix unit test and resetting style 2018-07-11 11:05:38 +02:00
Catalin Zalog
cb82394fc8 fix(modal): removes .navbar-toggler margin 2018-07-11 11:05:38 +02:00
Johann-S
e57a2f244b fix(tooltip): get tip on placement change 2018-06-25 16:54:14 +02:00
jakubhonisek
49e094619b feat(dropdown): add original click event 2018-06-25 15:29:34 +02:00
Johann-S
f2aab5ea99 fix(tooltip): remove useless unit test 2018-05-22 17:26:21 +03:00
Johann-S
0338b61eb6 chore(deps): update qunit and karma-qunit 2018-05-22 17:26:21 +03:00
Johann-S
ba10b63c9d fix issue related to Object.keys and Dropdown issue 2018-04-13 18:59:30 +02:00
Johann-S
0871d69ec9
v4 improve coverage (#25945)
* Improve code coverage for our Button plugin

* improve coverage for our Alert plugin

* test tooltip update method

* test update and dispose for dropdown

* increase code coverage requirements
2018-04-10 09:28:29 +02:00
XhmikosR
875ed0b975 Clean up globals.
Also, add a missing license header in build/workbox.js.
2018-04-09 22:44:22 +03:00
Johann-S
fd57d371f8 fix bundle and run test against it 2018-03-29 21:21:31 -07:00
vsn4ik
68db42c9f8 Fix skip element disabled via attribute when using keyboard navigation 2018-03-26 09:37:25 +02:00
Johann-S
bedc96e48b Use transitionEnd in QUnit since we moved away from PhantomJS 2018-03-20 15:56:51 +01:00
Johann-S
4d5c5923fa Add Sinon to do better unit test 2018-03-13 15:37:11 +01:00
Johann-S
2c41b0aea6 fix get the transition duration parent 2018-03-13 12:57:44 +01:00
Martijn Cuppens
1fadad1c33 Variable transition durations (#25662) 2018-03-13 09:59:20 +01:00
Johann-S
65ae622d40 Dropdown - Allow to disable Popper.js style (#24092)
* Dropdown - Allow to disable Popper.js style

* Update dropdown.js

* Update dropdown.html

* copy changes
2018-02-11 16:45:59 -08:00
Johann-S
5a6be71791 Remove escaping selector and add a warning to inform folks to escape their selectors (#25390) 2018-01-21 22:02:16 +02:00
XhmikosR
80d0943b95 Comply to the new rules. 2018-01-11 18:48:46 +02:00
XhmikosR
6d336502c7 Clean up and tweak ESLint rules.
Also, refactor ESLint and stylelint config files; now everything will work from our root dir.
2018-01-11 18:48:46 +02:00
Martijn Cuppens
a1d134f8a8 Multiple accordion support (#25161) 2018-01-03 16:40:58 +02:00
Martijn Cuppens
ae71e71fe1 Allow nested structure for accordions (#25121)
This commit allows nested structures for accordions. Also a part of
the documentation about data-children is removed because this
functionality didn't work and it's not applicable anymore.

Tests with the collapse accordion are also a bit adjusted to the new
situation.
2017-12-31 14:53:33 +02:00
Troy Morehouse
8839c03865 dropdown: add boundary config option (#24976) 2017-12-12 11:28:30 +02:00
Alessandro Chitolina
80d4a51e79 tab.js: do not remove fade class if there's no initial active pane 2017-11-26 20:29:19 +01:00
Johann-S
e8ba37139f Allow us to run our unit test on differents jquery version 2017-11-23 10:41:56 +02:00
Edward Betts
ffc5965f2c Correct spelling mistakes. (#24778) 2017-11-15 04:12:38 -05:00
Vasilii Artemchuk
5a2d6c70f4 Use native pseudo-selectors instead of jQuery selectors (#24713) 2017-11-09 07:51:19 +02:00
XhmikosR
fc9967e175
Fix test failure with jQuery 1.9.1 (#24706) 2017-11-07 14:13:52 +02:00
Johann-S
79d6b574cc
Escape ID in Util.getSelectorFromElement (#24700) 2017-11-07 12:41:06 +01:00
Johann-S
26dc17bcd2 Popover - call content once if it's a function. (#24690) 2017-11-07 09:18:52 +02:00
Johann-S
41fbec1188 Fix unit tests. 2017-10-27 19:19:55 +03:00
Pierre-Denis Vanduynslager
6fe72c6de8 Dropdown handle keydown on input and textarea. 2017-10-27 19:19:55 +03:00
Johann-S
988327032d Add unit tests for util.js 2017-10-25 12:59:40 +02:00
Johann-S
62fbb23ee6 Change Rollup config to wrap our dist files with jQuery instead of $ 2017-10-24 12:39:25 +02:00
Johann-S
1487c3a994 Add Util.jQuery which will detect jQuery instead of relying on global $ (#24513) 2017-10-23 10:35:27 +03:00
XhmikosR
be9e6f3638 Update modal.js 2017-10-04 15:03:06 +03:00
lucascono
47968c8126 Unit test for modal bug fix
Unit test for pull request #24240
2017-10-04 08:55:40 -03:00
XhmikosR
31c8721913 Normalize all links. (#24109)
* use a trailing slash when possible
* use https when possible
* remove a few redirected links
* consistently use `https://popper.js.org/`
* fix `iconUrl` in nuget files
* change Jekyll Windows guide to the official one
2017-09-26 15:24:14 +03:00
Johann-S
9b8356ba52 Collapse - Allow to pass jQuery object or DOM element to the parent option 2017-09-25 13:23:13 +02:00
Patrick H. Lauke
fd56ea370c Accessibility fixes to dynamic tabs (aria-selected, remove dynamic tabs with dropdowns)
* Use `aria-selected` instead of `aria-expanded`
* Change tab.js to use `aria-selected` rather than `aria-expanded`
* Add `aria-orientation=vertical` to vertical tab list
* Remove dynamic tabs with dropdowns
* Fix non-interactive code examples
* Only set `aria-selected` on the `role="tab"` trigger - this stops `aria-selected` being incorrectly added to the `role="tabpanel"` itself (probably harmless, but nonetheless incorrect)
2017-09-24 12:00:54 +02:00
Troy Morehouse
6c70c70f63 fix(scrollspy): Spying on nested navs fails to activate for .nav-link's inside nav-item's (#23967)
* fix(scrollspy): Handle nested navs when nav-link inside nav-item

* [scrolspy] Find only child .nav-link's inside .nav-item

* [scrollspyt] Add tests for nested navs with nav-link inside nav-item

* fix troy-o's in test
2017-09-17 09:30:37 +02:00
Johann-S
e04e42d08c Merge branch 'v4-dev' into fix-jumping-modal-on-resize 2017-09-03 12:56:04 +02:00
David Bailey
ce41d3fd15 Add failing test 2017-08-29 15:36:37 +01:00
David Bailey
2622a015f2 Fix unit tests in PhantomJS
Use a virtual scrollbar as this is simpler than having a real one (overflow: scroll doesn't seem to work in Phantom), and disable it for the new test.

One test has also been altered to prevent erroneous fails when other inline styles are added to the body (e.g. overflow).
2017-08-29 12:01:41 +01:00
David Bailey
487513ff03 Add failing test
When the body does not overflow (achieved by hiding the QUnit container), it should not be given a margin.
2017-08-28 16:21:04 +01:00
meeque
9612830701 Add unit test for xss in data target attribute 2017-08-25 23:20:14 +01:00
David Bailey
ba6a6f1369 Fix sticky margin when a modal is opened (#23669)
* Adjust margin for sticky elements on modal

Previously white space was visible to the right of sticky elements due to right padding being added to the body. This fixes #23661.

* Add unit tests for margin of sticky elements on modal
2017-08-25 22:01:41 +01:00
Johann-S
5a90b4aa3e Collapse - preventDefault only on <a> elements not inside the collapsible
element
2017-08-25 09:48:35 +01:00
Johann-S
4571ab0e57 Fix toggle for Tooltips/Popover which was called even if the Tooltip/Popover was disabled 2017-08-24 09:33:49 +01:00
XhmikosR
ef8c77d8dc Tweak ESLint rules. 2017-08-23 00:05:38 +03:00
Johann-S
58994a16c5 Add a unit test to check if the carousel do not cycle when its parent isn't visible 2017-08-17 17:48:14 +01:00
Johann-S
d2bd8fb7a9 Unit test to check if our carousel do not cycle when we cannot see it 2017-08-17 17:48:14 +01:00
Johann-S
2eb1e687bd Improve previous selector for nested tabs 2017-08-11 15:04:07 +03:00
Johann-S
edf90c1bc4 Add unit test for nested tabs 2017-08-11 15:04:07 +03:00
Johann-S
0480a75a5a Dropdown - Disable applyStyle modifier instead of removing inline style applied by Popper.js 2017-07-04 10:37:44 +02:00
Mark Otto
9c0e423008 Rename popover classes
Part of an update to align the naming schemes across our components.

- Renames .popover-title to .popover-header
- Renames .popover-content to .popover-body

Refs: #22092
2017-06-15 09:05:30 -07:00
Johann-S
f0124769c9 Collapse supports multi-target thanks to @vanduynslagerp (#22713) 2017-06-14 13:21:49 +02:00
Johann-S
4a2b183e48 Fix unit tests with no assertion 2017-06-14 11:18:12 +02:00
Geremia Taglialatela
db44e4b311 Update nav and navbar HTML markup
According to the docs, you just need to apply the `navbar-nav` to an
`<ul>` tag in a list-based navbar. In fact, `navbar-nav` seems to
override all the css properties set by `nav`.

Also, `nav-item` class should be used only for `<li>` tags, or in
conjunction with `<a>` tags to entirely avoid the list-based approach.

This commit removes the redundant `nav` class from `navbar-nav` `<ul>`
tags, moves `nav-item` from `<a>` tags to `<li>` tags and properly
adds `nav-item` class to `<li>` tags where missing.

Refs:

* https://v4-alpha.getbootstrap.com/components/navs/
* https://v4-alpha.getbootstrap.com/components/navbar/#nav
2017-05-27 15:21:49 -07:00
Johann-S
53ee455bc7 Handle dropup for Dropdown 2017-05-14 11:41:19 +02:00
Johann-S
69de65180f Fix unit tests + Update Popper to 1.6.0 2017-05-14 11:41:19 +02:00
Johann-S
d8996a7e0a Fix arrow for tooltip and popover 2017-05-14 11:41:19 +02:00
Johann-S
b40b1bc396 Add attachment classes 2017-05-14 11:41:19 +02:00
Anna
33715a73d2 Fix Toggle buttons don't honor [disabled] or .disabled 2017-04-26 18:46:05 +02:00
Pierre Vanduynslager
ab39defe74 Detach accordion from card without requiring 'data-children' 2017-04-25 09:32:14 +02:00
Bardi Harborow
b4ac48fdec Build system overhaul. 2017-04-20 14:31:22 +10:00
Patrick H. Lauke
6ae5fb12e6 Fix carousel "hover" behavior on touch-enabled devices
* Add carousel mouse listeners even if touch events enabled

- touch events are enabled not just on "mobile", just also on
touch-enabled desktop/laptop devices; additionally, it's possible to
pair a mouse with traditionally touch-only devices (e.g. Android
phones/tablets); currently, in these situations the carousel WON'T pause
even when using a mouse

* Restart cycle after touchend

as `mouseenter` is fired as part of the touch compatibility events, the
previous change results in carousels which cycle until the user
tapped/interacted with them. after that they stop cycling (as
`mouseleave` is not sent to the carousel after user scrolled/tapped
away).
this fix resets the cycling after `touchend` - essentially returning
to the previous behavior, where on touch the carousel essentially never
pauses, but now with the previous fix it at least pauses correctly for
mouse users on touch-enabled devices.
includes documentation for this new behavior.
2017-04-17 13:26:46 +01:00
Pierre Vanduynslager
025ddb185e Merge branch 'v4-dev' into dropdown-keyboard 2017-04-10 11:04:05 -04:00
Patrick H. Lauke
18e8704221 Fix collapse.js aria-expanded behavior
* Remove aria-expanded from collapse.js target element

aria-expanded="true"/aria-expanded="false" only applies to the trigger,
not the element that is being expanded/collapsed.

* Tweak collapse.js accessibility section

...to make it clearer that the aria-expanded attribute always just goes
on the control.

* Fix collapse.js unit tests

- reword some of the text to make it clear we're checking behavior of
trigger/control
- move incorrect aria-expanded out of the <div>s and to the actual
trigger/control <a>s
- fix incorrect test assertion text output false -> true
2017-04-10 14:51:22 +01:00
Patrick H. Lauke
3f6e1faf45 Only change aria-pressed if it's not an input-based radio or checkbox group
* Only change aria-pressed if it's not an input-based radio or checkbox group

aria-pressed="true"/aria-pressed="false" is really only useful for
making on/off toggles out of, say, `<button>` elements. the attribute is
useless (and potentially confusing/conflicting) on, say, `<label>`
elements for an existing `<input type="radio">` or similar.

* Add unit test for buttons.js and radio/checkbox inputs in button groups
2017-04-10 14:43:54 +01:00
Pierre Vanduynslager
fe72daf2b3 Merge branch 'v4-dev' into dropdown-keyboard 2017-04-08 18:43:25 -04:00