Commit Graph

2386 Commits

Author SHA1 Message Date
GeoSot a247fe9b27 Carousel: simplify initialization on document load, using `getOrCreateInstance` 2022-02-19 14:52:36 +02:00
GeoSot ccba6a3589 Carousel: remove redundant config merge on `dataApiClickHandler`, as it is done by default in the `constructor` 2022-02-19 14:52:36 +02:00
XhmikosR 42da2b9556
Update devDependencies (#35841)
* Update devDependencies

* @babel/core             ^7.17.0  →  ^7.17.2
* @rollup/plugin-replace   ^3.0.1  →   ^3.1.0
* eslint                   ^8.8.0  →   ^8.9.0
* eslint-config-xo        ^0.39.0  →  ^0.40.0
* hugo-bin                ^0.80.1  →  ^0.80.2
* karma                   ^6.3.15  →  ^6.3.16
* rollup                  ^2.67.1  →  ^2.67.2

* Fix new ESLint errors
2022-02-15 08:50:37 +02:00
Julien Déramond d3babf7d7f
Remove remaining `.navbar-light` classes (#35814)
* Fix typo in CSS variables documentation

* Drop remaining .navbar-light classes
2022-02-09 21:12:08 +02:00
Anton a805330f63
Optimize jQueryInterface in Collapse (#35689)
extracts config initialization from cycle
2022-02-07 10:50:26 +02:00
XhmikosR cf7fec8a2e event-handler.js: remove unneeded return statement 2022-02-01 12:43:19 +02:00
GeoSot a1e924c4da Event-handler: use `Array.find` instead of `for` 2022-02-01 12:43:19 +02:00
GeoSot fc7c5fcb7a Event-handler: initialize variable properly 2022-02-01 12:43:19 +02:00
GeoSot 3f7b31e0e0
Fix Popover test that randomly fails on BrowserStack (#35757)
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2022-02-01 10:33:18 +02:00
GeoSot c44d99f55c Dropdown: use destructured variables in `dataApyKeydownHandler` 2022-02-01 08:58:46 +02:00
GeoSot c14fc989df Dropdown: dropdown doesn't document `data-bs-target` option & `parentNode` is ALWAYS the wrapper for toggle & menu 2022-02-01 08:58:46 +02:00
GeoSot d105439235 Dropdown: merge instance identification in `dataApiKeydownHandler`
As we use the `dataApiKeydownHandler` only for events that are triggered on `[data-bs-toggle="dropdown"]` or on `.dropdown-menu`, we can ensure that their `parentNode` will ALWAYS be the `.dropdown` wrapper
2022-02-01 08:58:46 +02:00
GeoSot 7f04f84bf8 Dropdown: use only one check for shown state 2022-01-30 18:01:09 +02:00
GeoSot 5f1c542d67 Dropdown: get dropdown's parent in one place 2022-01-30 18:01:09 +02:00
GeoSot 74f24cdf24
More tooltip refactoring (#35546)
* Tooltip.js: move `shown` check to method

* Tooltip.js: move Popper's creation to method

* Tooltip.js: merge checks before `hide`

* Tooltip.js: minor refactoring on `toggle` method
2022-01-30 17:39:03 +02:00
GeoSot 882185bbde
Change selector-engine.js `parents` method to utilize better js native methods (#35684)
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2022-01-30 16:24:03 +02:00
XhmikosR 89f88762c5
Fix visual tests (#35585)
* Fix visual tests

They broke in #34509

* load bundle.js in visual tests

Co-authored-by: GeoSot <geo.sotis@gmail.com>
2022-01-30 16:12:24 +02:00
GeoSot dcbe7b6f31 Modal.js: remove unnecessary checks from test 2022-01-30 15:39:34 +02:00
GeoSot 28c9002573 Modal: handle click event from backdrop callback 2022-01-30 15:39:34 +02:00
GeoSot aa650f0f1e
tests: replace 'done' callback with 'Promise' to fix deprecation errors (#35659)
Reference:

https://jasmine.github.io/tutorials/async

'DEPRECATION: An asynchronous function called its 'done' callback more than once. This is a bug in the spec, beforeAll, beforeEach, afterAll, or afterEach function in question. This will be treated as an error in a future version. See<https://jasmine.github.io/tutorials/upgrading_to_Jasmine_4.0#deprecations-due-to-calling-done-multiple-times> for more information.
2022-01-30 14:30:04 +02:00
GeoSot d092817059 Event handler: merge `new Event` with `new CustomEvent` 2022-01-30 14:15:17 +02:00
GeoSot fa93995123 Event handler: replace deprecated `initEvent` 2022-01-30 14:15:17 +02:00
XhmikosR 0840105d7f SelectorEngine: remove moot space 2022-01-29 13:25:30 +02:00
XhmikosR 558002f3dc Return early in more places 2022-01-29 13:25:30 +02:00
XhmikosR 7d3bc44bb0 dropdown: Move constant 2022-01-29 13:25:30 +02:00
GeoSot a8887ea8a8 collapse: merge class toggling 2022-01-29 13:25:30 +02:00
XhmikosR b5147ec218 event-handler.js: use `for...of` 2022-01-29 13:25:30 +02:00
XhmikosR 62d86c07f8 Rename variables 2022-01-29 13:25:30 +02:00
XhmikosR 3ac4451d47 backdrop.js: cache `_getElement` calls 2022-01-29 13:25:30 +02:00
XhmikosR 0c3dfe104b Remove a few unneeded variables 2022-01-29 13:25:30 +02:00
Ryan Berliner 14c7dc1e88
Fix: `isVisible` function behavior in case of a `<details>` element, on chrome 97 (#35682) 2022-01-13 10:55:05 +02:00
Patrick H. Lauke 0d054bb0f1
Remove explicit use of aria-hidden for offcanvas when closed (#35589)
Remove explicit use of aria-hidden & visibility for offcanvas when closed, handling it with css

Co-authored-by: GeoSot <geo.sotis@gmail.com>
Co-authored-by: Gaël Poupard <ffoodd@users.noreply.github.com>
2022-01-05 19:20:15 +02:00
GeoSot 0d4213bde3 Carousel: move repeated code to a method 2021-12-21 17:37:24 +02:00
GeoSot b8ee68cfa0 Carousel: remove always true `visibilityState` check
According to https://developer.mozilla.org/en-US/docs/Web/API/Document/visibilityState `visibilityState` is always a string, so the check was always true
2021-12-21 17:37:24 +02:00
GeoSot ff4bf4a458 Carousel: move carousel default interval to `_getConfig()` and simplify it 2021-12-21 17:37:24 +02:00
GeoSot 6f79721c82 Carousel: return early and drop a loop.
We can achieve the same thing by querying the specific selector directly
2021-12-21 17:37:24 +02:00
GeoSot d60f146507 Carousel: add a helper to get the active element 2021-12-21 17:37:24 +02:00
GeoSot 65cf77ae3e
Popover/Tooltip: Fix vertical alignment on arrow of tip elements (#35527)
Regression of #32692

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2021-12-21 17:19:29 +02:00
Phil E. Taylor c2db7108c2
Fix typo in comment (#35564)
s/moddal/modal
2021-12-18 07:58:31 +02:00
GeoSot e0960b08e0
Tooltip: remove extraneous call to _getConfig() (#35540)
BaseClass already initializes the config

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2021-12-15 10:47:32 +02:00
GeoSot d40fae456e
Popover.js: Accept empty content through `data-bs-content` (#35514)
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2021-12-15 10:41:31 +02:00
XhmikosR cd04fe015f
Scrollspy: minor refactoring (#35512)
* reorder variables
* join lines
* use `filter(Boolean)` since it's clearer
* use `for...of`
2021-12-15 09:38:06 +02:00
GeoSot 886b940796
Extract Component config functionality to a separate class (#33872)
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2021-12-10 18:18:18 +02:00
XhmikosR 63d38b1974
Tab: minor refactoring (#35511)
* remove unneeded parentheses
* move variable
2021-12-10 07:51:57 +02:00
XhmikosR 871c8bdd3f
util/index.js: minor refactoring (#35510)
* rename variables
* remove an unused variable
* be more explicit
* reuse variable
2021-12-10 07:48:04 +02:00
XhmikosR eaa801c899
Toast: join multiple classList calls (#35507) 2021-12-10 07:42:08 +02:00
XhmikosR 94d4fa3b10
Fix tests fixture type (#35501)
Previously we were adding an Array instead of a String
2021-12-09 16:01:29 +02:00
GeoSot 28a5a72ed5
Scrollbar - remove margin/padding properties properly (#35388)
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2021-12-09 15:49:28 +02:00
GeoSot c376cb0763
Dropdown: fix toggle focus after dropdown is hidden using the `ESC` button (#35500) 2021-12-09 15:34:17 +02:00
GeoSot 4fd5539c75
ScrollBar.js. Minor refactoring and add test (#35492) 2021-12-09 15:05:50 +02:00
GeoSot 328f723008
Tooltip: remove title attribute before show & add tests (#35456) 2021-12-07 15:51:56 +02:00
Louis-Maxime Piton d8999dd566
Tests: Minor fixes (#35455) 2021-12-02 12:01:11 +02:00
GeoSot 385fea49e8 Tooltip/Popover: add underscore prefix to protected functions 2021-12-01 18:00:36 +02:00
GeoSot bd79d69a73 Tooltip: a simple code-block position change 2021-12-01 18:00:36 +02:00
GeoSot 1f7b83203d Tooltip: simplify popper check 2021-12-01 18:00:36 +02:00
GeoSot 9b9372e8dd Tooltip: refactor `_hoverState` to Boolean to achieve better control 2021-12-01 18:00:36 +02:00
GeoSot 8eacbaa08b Tooltip: merge timeout functionality 2021-12-01 18:00:36 +02:00
GeoSot c69ccba08c Tooltip: Change `_enter` & `_leave` to work without arguments 2021-12-01 18:00:36 +02:00
GeoSot a20e4203fe Tooltip: Remove redundant `config.delay` check
`config.delay` is always an object after initialization
2021-12-01 18:00:36 +02:00
GeoSot 724663b3cd Tooltip: Remove `Data.set` usage for dynamically created tip
This is not used any further, so we were just setting it.
2021-12-01 18:00:36 +02:00
GeoSot 3baeb0a5c1 Tooltip: merge `isAnimated` checks 2021-12-01 18:00:36 +02:00
GeoSot 53c77c0203 Tooltip: refactor jQueryInterface 2021-12-01 18:00:36 +02:00
GeoSot dd07c1ff9e Dropdown: clearMenus is always an event callback 2021-12-01 17:10:39 +02:00
GeoSot f71640f048 Dropdown: Clean more 2021-12-01 17:10:39 +02:00
GeoSot 21e5618ba7 Dropdown: rename vars 2021-12-01 17:10:39 +02:00
GeoSot 0686fa00f0 Dropdown: Remove redundant `Space` check 2021-12-01 17:10:39 +02:00
GeoSot a14a552d83 Dropdown: Deduplicate complex check 2021-12-01 17:10:39 +02:00
GeoSot bff95d55af Dropdown: Remove redundant check since the `show` method already does it 2021-12-01 17:10:39 +02:00
GeoSot 2d32802f53 Dropdown: Change constant to the way we use it 2021-12-01 17:10:39 +02:00
GeoSot fb5921dec4 Dropdown: Merge `display='static'` & `isNavbar` functionality activating static popper with no styles attached 2021-12-01 17:10:39 +02:00
GeoSot 137b324930 Dropdown: Remove static method used once 2021-12-01 17:10:39 +02:00
GeoSot 8b308b76f0
Dropdown tests: Use a function to improve readability (#35448) 2021-12-01 16:49:02 +02:00
GeoSot cab62af2e6
Fix popover arrow & tooltip template after the `setContent` addition (#35441) 2021-12-01 15:10:10 +02:00
GeoSot 44a6cd724c
Tooltip: remove leftover method (#35440)
Remove a leftover after #32692

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2021-12-01 14:53:56 +02:00
XhmikosR e5d8256e42 tests/unit/util/scrollbar.spec.js: rename function
`parseInt` is a global one.
2021-12-01 14:30:49 +02:00
XhmikosR 11ce6c2dcd tests: fix a few typos 2021-12-01 14:30:49 +02:00
XhmikosR f8f9dc3b5c tests: remove extra spaces, unneeded arrays and add missing newlines 2021-12-01 14:30:49 +02:00
XhmikosR eb54e1a1ce tests: tweak Jasmine's matchers usage
Use:

* toBeNull
* toEqual
* toBeTrue
* toBeFalse
* toHaveSize
* toHaveClass
2021-12-01 14:30:49 +02:00
XhmikosR 5739bf7637 tests/browsers.js: remove unneeded export 2021-12-01 14:30:49 +02:00
GeoSot 1692fc6b4b
Alert: add a couple more tests (#35419)
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2021-11-29 14:32:11 +02:00
GeoSot 3129ff075b
BaseComponent: add a couple more tests (#35410)
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2021-11-29 14:27:03 +02:00
GeoSot 6f077ff7bc
Clean tooltip component unneeded functionality (#32692) 2021-11-25 20:08:11 +02:00
GeoSot 374eeecfbc
tooltip.js: use array.includes instead of for iteration (#35127) 2021-11-25 19:39:13 +02:00
GeoSot 91ad255e07 Change adjustDialog's if conditions to improve readability 2021-11-25 19:23:49 +02:00
GeoSot 569bca54d2 Add test for modal-content 2021-11-25 19:23:49 +02:00
GeoSot 0f9fd75d6c Respect modal's initial overflowY 2021-11-25 19:23:49 +02:00
GeoSot cc3e5789ec Remove some uncovered code that seems to be unused 2021-11-25 19:23:49 +02:00
GeoSot 92e664c921 Change check for dynamic modal 2021-11-25 19:23:49 +02:00
GeoSot fc33ce4b46 Tweak methods
Name them to be more descriptive and have agnostic functionality
2021-11-25 19:23:49 +02:00
GeoSot 79e01c3bad Some refactoring on modal, to improve readability and generic functionality 2021-11-25 19:23:49 +02:00
GeoSot 94a596fbcb
Add a template factory helper to handle all template cases (#34519)
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2021-11-25 19:14:02 +02:00
XhmikosR 367caea501
Update devDependencies (#35322)
* cspell                 ^5.12.4  →  ^5.12.6
* eslint                  ^8.1.0  →   ^8.2.0
* eslint-plugin-unicorn  ^37.0.1  →  ^38.0.1
* hugo-bin               ^0.76.1  →  ^0.77.2
* karma                   ^6.3.7  →   ^6.3.8
* linkinator             ^2.14.4  →  ^2.14.5
* postcss-cli             ^9.0.1  →   ^9.0.2
* rtlcss                  ^3.4.0  →   ^3.5.0
2021-11-09 08:02:36 +02:00
GeoSot b991a6b851
tests: try to fix a few random failures (#35184)
* Change `Swipe` dispose spy on EventHandler
* Modal hide spy on backdrop hide
2021-10-13 17:45:39 +03:00
GeoSot 9640e2d5dd Change the way collapse handles its children on opening 2021-10-13 16:38:27 +03:00
GeoSot 1eea132866 collapse: extract duplicate code to a function 2021-10-13 16:38:27 +03:00
XhmikosR e8f702666f
JS: minor refactoring (#35183)
* add missing comments
* shorten block comments
* reorder constants
* reorder public/private methods
* sort exports alphabetically in util/index.js
* fix a couple of typos
2021-10-13 15:19:28 +03:00
GeoSot db44392bda
Swipe: add test to ensure that it ignores `pinch` events (#35161) 2021-10-12 15:48:19 +03:00
GeoSot 8ec6c94522
Extract Carousel's swipe functionality to a separate Class (#32999) 2021-10-11 17:04:43 +03:00
XhmikosR 24e3ca2474
tooltip.js: ignore a LGTM error (#35147)
The code on this line is either sanitized or the user chose to not sanitize it.
2021-10-10 14:49:41 +03:00
XhmikosR c44d64ed71 Merge remote-tracking branch 'remotes/origin/v513' 2021-10-09 18:28:28 +03:00
XhmikosR 1a6fdfae6b Bump version to 5.1.3. 2021-10-09 09:43:19 +03:00
XhmikosR a260967a55
tests: minor cleanup (#35138)
* tests: minor cleanup

* tests: use the util noop function
2021-10-08 12:32:11 +03:00
XhmikosR eb0f705621
scrollspy.js: chain functions (#35139) 2021-10-08 12:28:05 +03:00
XhmikosR 64e13162fa
Sanitizer: fix logic and add a test. (#35133)
This was broken in 2596c97 inadvertently.
Added a test so that we don't hit this in the future.
2021-10-07 17:48:36 +03:00
XhmikosR 2596c97034
util/sanitizer.js: use `Array.every()` (#35120) 2021-10-06 00:23:14 +03:00
GeoSot 598b4c59a6 Use `for...of` in visual tests too 2021-10-05 19:52:11 +03:00
XhmikosR 3afe4b8c7d Enable `unicorn/numeric-separators-style` rule.
This is taken care of by babel via @babel/plugin-proposal-numeric-separator
2021-10-05 19:52:11 +03:00
XhmikosR 567a41347e Fix a `unicorn/no-array-callback-reference` issue 2021-10-05 19:52:11 +03:00
XhmikosR 666fe596bf Enable `unicorn/no-array-for-each` rule 2021-10-05 19:52:11 +03:00
XhmikosR 2b4d0d166b Enable `unicorn/no-for-loop` rule 2021-10-05 19:52:11 +03:00
XhmikosR 9f1579aa04 Enable `unicorn/prefer-prototype-methods` rule 2021-10-05 19:52:11 +03:00
XhmikosR 5ecef8ac01
Release v5.1.2 (#35114) 2021-10-05 18:50:18 +03:00
XhmikosR c81c645394
rollup: specify `generatedCode: 'es2015'` (#35070)
This will make use of `const` and modern features (which we are already using in our code) in the generated rollup code.
2021-10-04 19:46:07 +03:00
XhmikosR 759fc89f4b
sanitizer: add `sms` in the `SAFE_URL_PATTERN` (#35074) 2021-09-29 07:41:06 +03:00
GeoSot bdfb4cc54d
Fix Collapse regression of handling toggling between sibling chilldren (#34951) 2021-09-15 15:33:19 +03:00
XhmikosR 8f2e678424
Minor refactoring (#34980)
Rename variables and remove a temporary one
2021-09-15 14:34:24 +03:00
XhmikosR c5d03d93fc
Rename `e` to `event` (#34979) 2021-09-15 14:27:46 +03:00
GeoSot c9af4565fd
tests: fix lint warning (#34950) 2021-09-13 10:57:17 +03:00
Julien Déramond 499485589f
Remove remaining "master" branch references (#34932) 2021-09-08 17:58:50 +03:00
XhmikosR 0d81d3cbc1
Release v5.1.1 (#34869)
* Prepare v5.1.1.

* Dist
2021-09-07 18:37:44 +03:00
XhmikosR 23b3d636e1
Typo fixes (#34914) 2021-09-07 09:45:27 +03:00
XhmikosR 68a86d3477
BrowserStack: add Firefox 60 and Chrome 60 (#34912)
These are the minimum supported versions, so this patch makes sure everything works there too.
2021-09-06 21:54:08 +03:00
GeoSot 51afe026ca
Fix tooltip `data-bs-original-title` issue (#34842) 2021-08-31 16:11:22 +03:00
XhmikosR ef21000cbe
tests: add Offcanvas too in jquery.spec.js (#34841) 2021-08-30 18:57:00 +03:00
XhmikosR a7e64b5a4f
Add GitHub SHA in BrowserStack build ID. (#34077) 2021-08-30 16:30:51 +03:00
XhmikosR c02805bb8c Move a few ESLint rules where they are needed. 2021-08-30 15:51:44 +03:00
XhmikosR 4a4b61f082 Update eslint-plugin-unicorn to v35.0.0 2021-08-30 15:51:44 +03:00
GeoSot c1fc1dbbee
Collapse on toggle, should not hide descendant tabpanels (#34835) 2021-08-30 15:29:02 +03:00
XhmikosR 40042ee503
visual tests: minor fixes (#34802) 2021-08-23 18:33:55 +03:00
Sébastien ALFAIATE 91295c2187
alert.js: Add missing newline (#34785) 2021-08-20 18:30:08 +03:00
GeoSot 1e5e655670
Fix modal when is triggered by `bs-toggle`, to hide other open instances (#34701) 2021-08-10 17:55:34 +03:00
XhmikosR 418fe8113e
carousel: move common checks to a function (#34621) 2021-08-10 17:50:32 +03:00
XhmikosR f20fece3a8
Prepare v5.1.0. (#34674) 2021-08-04 18:41:51 +03:00
GeoSot a6a2d1e2df
Regression on tooltip template creation process. (#34628)
* Regression on tooltip template creation process.

* check if template content does not exist, or given argument is empty

* call `setContent()` once.
2021-08-03 11:59:33 +03:00
XhmikosR 742269a734
tooltip: move repeated strings to constants (#34619) 2021-07-30 00:32:07 +02:00
XhmikosR 6d707f4801
Enable a few eslint-config-xo rules (#34620)
* unicorn/prefer-dom-node-append
* unicorn/prefer-dom-node-remove
2021-07-30 00:23:00 +02:00
GeoSot 2bf32ad180 transfer `interface` inside `jQueryInterface` 2021-07-29 16:30:02 +03:00
GeoSot e5b606d242 simplify initialization on `data-toggle` click 2021-07-29 16:30:02 +03:00
GeoSot 6f17e634ce keep parent only as element 2021-07-29 16:30:02 +03:00
GeoSot 4c1f7bb051 remove duplicated `Selector.find` 2021-07-29 16:30:02 +03:00
GeoSot 7a71703fd3 Simplify check for children 2021-07-29 16:30:02 +03:00
GeoSot 8fc4f3aaf3 initialize variable properly 2021-07-29 16:30:02 +03:00
GeoSot 1947ca033e Refactor internal function to use it in more cases.
Also, remove a few redundant checks since we already check for it in `_addAriaAndCollapsedClass()`.
2021-07-29 16:30:02 +03:00
GeoSot 5882d5dbe8 Add a helper function to check for showing
Also, remove the `isTransitioning()` helper.
2021-07-29 16:30:02 +03:00
GeoSot 4961ad0c63 Remove redundant check on `data-toggle` click.
Previously, it was assumed that the trigger element would have its own separate config than the collapse element itself.
2021-07-29 16:30:02 +03:00
GeoSot 2ad0a4a9fd streamline `_getConfig` & interface 2021-07-29 16:30:02 +03:00
GeoSot 4bfd8a2cbc
Use a streamlined way to trigger component dismiss (#34170)
* use a streamlined way to trigger component dismiss

* add documentation

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2021-07-28 17:39:32 +03:00
alpadev 047145e808
Fix `Manipulator.offset()` (#33603)
* test: add more test cases for Manipulator.offset()

* fix: Manipulator.offset() is using obsolete properties to get scroll position

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
Co-authored-by: GeoSot <geo.sotis@gmail.com>
2021-07-28 17:23:32 +03:00
Ryan Berliner 7646f6bd33
Add shift-tab keyboard support for dialogs (modal & Offcanvas components) (#33865)
* consolidate dialog focus trap logic

* add shift-tab support to focustrap

* remove redundant null check of trap element

Co-authored-by: GeoSot <geo.sotis@gmail.com>

* remove area support forom focusableChildren

* fix no expectations warning in focustrap tests

Co-authored-by: GeoSot <geo.sotis@gmail.com>
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2021-07-27 08:01:04 +03:00
GeoSot 41292a5257
Toasts: Change showing timings and classes to keep toast `display:none` by default (#33610) 2021-07-22 18:13:13 +03:00
GeoSot e85a6ed77c make `dataApiKeydownHandler` to handle specific instance, avoiding extra manipulations 2021-07-22 17:54:48 +03:00
GeoSot 9916191311 extract createPopper method 2021-07-22 17:54:48 +03:00
GeoSot b1dad0943f handle click event in one place, remove undocumented click listener on element in case of not having the proper markup 2021-07-22 17:54:48 +03:00
GeoSot d01a08547d use classList `add` instead of `toggle` on show 2021-07-22 17:54:48 +03:00
GeoSot d130b00cad simplify toggle 2021-07-22 17:54:48 +03:00
GeoSot 3533e2d637 Merge `dropdownInterface` to `jQueryInterface` 2021-07-22 17:54:48 +03:00
GeoSot d3c6f25fd0 Add `isShown` method and reuse it 2021-07-22 17:54:48 +03:00
GeoSot da2db218ed Use on private method to set content & cleanup template 2021-07-22 17:20:38 +03:00
GeoSot 9c3ceaa25b popover: Move common code in tooltip's `getTipElement()` 2021-07-22 17:20:38 +03:00
GeoSot a97fd1cd24 use one private method to resolve string or function 2021-07-22 17:20:38 +03:00
GeoSot 3716603dbc Use `getOrCreateInstance` on `_initializeOnDelegatedTarget` 2021-07-22 17:20:38 +03:00
GeoSot 92c7056619 `_getDelegateConfig()`: add a comment and remove an unneeded config check 2021-07-22 17:20:38 +03:00
GeoSot c4e189df40 use a class private getter to decouple same methods usage 2021-07-22 17:20:38 +03:00
Ryan Berliner 119cfc3dfe
Remove whitespace at beginning of util/index.js (#34545) 2021-07-21 07:49:55 +03:00
GeoSot 5541179b38
Fix `Util.reflow` function and add documentation (#34543)
* add documentation to reflow function

* refactor to void as it should be

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2021-07-20 17:20:43 +03:00
GeoSot dfafb9a60c
modal: change `data-dismiss` so that it can be outside of a modal using `bs-target` (#33403)
* change data-dismiss, so can be outside modal, using a bs-target

* Update site/content/docs/5.0/components/modal.md

Co-authored-by: Gaël Poupard <ffoodd@users.noreply.github.com>
2021-07-19 16:56:05 +03:00
GeoSot e45b25e08e
util.js: remove `Selector.findOne()` dependency (#34441)
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2021-07-14 09:08:10 +03:00
Mark Otto 359ed099e5 Add horizontal collapse support 2021-07-05 17:22:29 -10:00
Jeremy Jackson d314466a4d
Accept argument of different types in the `getInstance` method (#34333) 2021-06-29 17:45:45 +03:00
GeoSot 70dd7f6ff5
Changes to Alert component to match the others (#33402)
Alert.js: Refactor code to match the other components
* Use this._element
* Remove handleDismiss method and keep its functionality on event
* Change JqueryInterface to be more generic
* Correct docs to be aligned with code, and add undocumented functionality
* Update alerts.md

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2021-06-28 16:34:47 +03:00
Mark Otto 45d26de728 Variablize backdrop for modal and offcanvas 2021-06-25 13:41:15 -07:00
GeoSot f94f497ad5 ScrollSpy: Make Proper use of the SelectorEngine
* avoid extra work, creating ids
* simplify selectors and constrain search inside `config.target`
2021-06-22 19:50:21 -07:00
XhmikosR 688bce4fa6
Release v5.0.2 (#34276)
* Bump version to v5.0.2.

* Dist
2021-06-22 21:29:16 +03:00
alpadev 4927388197
Register only one `DOMContentLoaded` event listener in `onDOMContentLoaded` (#34158)
* refactor: reuse one DOMContentLoaded event listener in onDOMContentLoaded function

Instead of adding an event listener everytime the utility function is called, cache the callbacks and execute them all at once.

* refactor: drop iife for onDOMContentLoaded

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2021-06-22 20:19:55 +03:00
alpadev 290b9ee2cd
fix(carousel): arrow keys break animation if carousel sliding (#34307) 2021-06-22 13:11:03 +03:00
alpadev d62ba935ef
Fix carousel buttons (#34266)
* test(carousel): add test to check if next/prev button work as intended

* fix(carousel): merge passed config with instance config in carouselInterface
2021-06-16 07:48:23 +03:00
GeoSot cb47b8c964
Refactor scrollbar.js to be used as a Class (#33947) 2021-06-06 09:26:36 +03:00
GeoSot c98657b830
Add `getOrCreateInstance` method in base-component (#33276)
Co-authored-by: Rohit Sharma <rohit2sharma95@gmail.com>
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2021-06-03 18:53:27 +03:00
alpadev 4a5029ea29
Fix handling of transitionend events dispatched by nested elements(#33845)
Fix handling of transitionend events dispatched by nested elements
Properly handle events from nested elements

Change `emulateTransitionEnd` to `executeAfterTransition` &&
2021-06-03 14:44:16 +03:00
Ryan Weaver 0cb70e214f
Changing Backdrop rootElement to default to a string (#34092)
The current config can cause the "body" to become stale. Specifically,
if the entire body element is swapped out for a new body element, then
the backdrop will continue to append itself to the original body element,
since it's stored in memory as a reference on this object.

This also no longer allows an explicit null to be passed to Backdrop's rootElement

This still accomplishes the laziness of "not finding the rootElement
until the Backdrop is created" to avoid problems of the JavaScript
being included inside <head> (so, before body is available).
2021-05-31 12:35:59 +03:00
GeoSot 544d9ac3cf
Change `element.parentNode.removeChild(element)` to `element.remove()` (#34071) 2021-05-25 18:30:38 +03:00
alpadev b513a19003
Fix prevented show event disables modals with fade class from being displayed again (#34085)
Fix modal, in case is faded, a prevented show event can cause show method to not  be executed again.
2021-05-24 18:52:36 +03:00
alpadev b39b665072
Automatically select an item in the dropdown when using arrow keys (#34052) 2021-05-22 10:58:52 +03:00
GeoSot e06e6dfe53
fix test of #34014 (#34070)
Fixes regression of a2b5901efc breaking the test runner because it would wipe document.body.
2021-05-22 02:54:32 +02:00
Ryan Weaver a2b5901efc
Fix bug where backdrop calls method on null if it is already removed from the body (#34014)
Co-authored-by: Rohit Sharma <rohit2sharma95@gmail.com>
2021-05-22 01:16:05 +03:00
Ryan Berliner 4ac711b5b4
Refactor `isVisible` helper, fixing false positives from deep nesting or alternate means (#33960) 2021-05-20 16:50:53 +03:00
GeoSot 79c3bf47bc
Add Tests on scrollbar.js & better handling if a style property doesn't exists (#33948)
* scrollbar.js:
add some tests
transfer test from modal.spec. to scrollbar.spec
proper handling if style property doesn't exist
2021-05-20 16:29:04 +03:00
GeoSot 9e4f87ae8f
Allow use of `dispose/hide` methods on Tooltip & Popover from jQueryInterface, when component does not exists. (#33371) 2021-05-20 16:16:55 +03:00
GeoSot df72a21fa8
Add `getNextActiveElement` helper function to utils, replacing custom implementation through components (#33608) 2021-05-19 01:23:52 +03:00
GeoSot 2757fbe28e
Reset inside a Dialog does not work if `data-dismiss="modal"` is set (#33928) 2021-05-18 09:26:22 +03:00
Rohit Sharma 153cf3a235
Don't add empty content holder when there is no content available (#33982)
* Remove content holder when there is no content

* Add tests to check the removal of header/content

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2021-05-18 09:02:39 +03:00
XhmikosR 58b1be927f
Release v5.0.1 (#33972)
* Bump version to 5.0.1.

* Dist
2021-05-13 19:22:20 +03:00
GeoSot 6e1c9096f0
Move get element functionality to a helper (#33327)
Looking around on js components I found out many checks, different expressed but with same purpose.
Some of them are trying to parse string to element, others, jQuery element to js simple nodeElement etc

With this Pr, I am trying to give a standard way to parse an element

So this pr:

* Creates `getElement` helper that tries to parse an argument to element or null
* Changes `isElement` to make  explicit checks and return Boolean 
* fixes tests deficiencies
2021-05-13 18:17:20 +03:00
GeoSot 9a9e22475c
Popover/Tooltip: streamline config property to start with underscore (#33381) 2021-05-12 12:15:59 +03:00
GeoSot d794e8970b
Fix test warning for dropdown, without expectations (#33938)
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2021-05-11 12:54:51 +03:00
GeoSot 8d1b0fb779
Fix offcanvas test to expect the initial body `overflow` value (#33927)
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2021-05-11 11:06:32 +03:00
GeoSot 9fe36edf68
Extract static `DATA_KEY` & `EVENT_KEY` to base-component (#33635)
* Force each plugin that extends base-components to implement a static method `NAME()`
* Remove redundant `NAME` argument from 'Utils.defineJQueryPlugin' & fix test
2021-05-11 10:49:30 +03:00
alpadev 7647b8fe5b
Fix: Click on input outside of dropdown-menu prevents dropdown from closing (#33920)
* test: add test if user clicks on input not contained within dropdown-menu

* fix: click on inputs that are not contained within dropdown-menu prevent dropdown from closing
2021-05-11 09:09:00 +03:00
GeoSot 03842b5f25
Refactor: move disposing properties into the base class (#33740)
Moves more functionality to `base-component`, transferring the responsibility of disposal to parent class.
Each component, dusting disposal, sets its protected properties to `null`. So the same can be done in one place for all children components .
2021-05-11 09:04:42 +03:00
Ben Lertlumprasertkul 052def4568
Remove potential false positive assertions (#33288)
* Remove potential false positive assertions

querySelector() returns null but

expect(document.querySelector('...')).toBeDefined()

tests that the value is not undefined

* Migrated assertions from .toBeDefined() to .not.toBeNull() for .getInstance() calls in tests

* Migrate offcanvas assertions from .toBeDefined() to .not.toBeNull() for .getInstance() call

* convert more cases to not.toBeNull assertions

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
2021-05-11 08:45:57 +03:00