Skip to content
GitLab
Explore
Projects
Groups
Snippets
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Bootstrap
bootstrap
Commits
661db08e
Commit
661db08e
authored
6 years ago
by
Johann-S
Committed by
XhmikosR
6 years ago
Browse files
Options
Download
Email Patches
Plain Diff
rewrite toast plugin without jquery
parent
5e068eed
main
cleanup-floating-forms
cssvar-function
dependabot/npm_and_yarn/stylelint-and-stylelint-config-twbs-bootstrap-15.3.0
extend-snippets
feat/data-target
floating-always-visible
floating-labels-icons
fod-main-banner
form-controls-with-icons
github/fork/719media/patch-13
github/fork/719media/patch-14
github/fork/719media/patch-9
github/fork/ChellyAhmed/fix-typo-reboot.md
github/fork/ChellyAhmed/offcanvas-scroll-back
github/fork/CtrlAltLilith/main
github/fork/Elysiome/offcanvas-optional-window-resizing
github/fork/JanSargsyan/main
github/fork/LunicLynx/support-different-line-height-for-buttons
github/fork/Psixodelik/main
github/fork/Ronid1/ronid1/offcanvas_static_backdrop
github/fork/RyanBerliner/tooltip-accessibility
github/fork/SantiagoPVazquez/Feature-default-border-bottom-to-dropdown-item
github/fork/Sir-Genius/utils
github/fork/Sumit-Singh-8/main
github/fork/Viktor-VERA2020/offcanvas-slide
github/fork/Zivangu9/input-group-for-form-control-plaintext
github/fork/alpadev/alpadev/call-dispose-on-component-reinstantiation
github/fork/astagi/fix/tree-shake-modules
github/fork/compnerd/dark-accordion-icon
github/fork/derSascha/dropdown-dont-close-on-input-click
github/fork/dev-ph1l/main
github/fork/donquixote/issue-33861-utl-mixin
github/fork/florianlacreuse/mixin-make-row-gutter-y
github/fork/gregorw/main
github/fork/iteggmbh/transitionend-dispose-race
github/fork/jdelStrother/patch-1
github/fork/jonnysp/form-floating
github/fork/jonnysp/independent-offcanvas
github/fork/jonnysp/theme-dark-on-card-and-modal-fix
github/fork/josefdlange/floating-label-placeholder-opacity
github/fork/julien-deramond/enhance-change-version.js
github/fork/julien-deramond/main-jd-fix-offset-content
github/fork/julien-deramond/main-jd-issue-with-utitlies
github/fork/julien-deramond/main-xmr-pa11y-ci-jd-add-hideElements
github/fork/kyletsang/fix-tooltip-padding
github/fork/lacutah/CheckboxCenteringDocumentation
github/fork/lekoala/patch-3
github/fork/louismaximepiton/main-kld-lmp-collapse-proposal
github/fork/louismaximepiton/main-lmp-card-inner-border-radius-fix
github/fork/louismaximepiton/main-lmp-carousel-multiple-images
github/fork/louismaximepiton/main-lmp-css-var-init
github/fork/louismaximepiton/main-lmp-disabled-floating-label-fix
github/fork/louismaximepiton/main-lmp-input-range-fix
github/fork/louismaximepiton/main-lmp-shift-color
github/fork/louismaximepiton/main-lmp-table-active-tr-fix
github/fork/maciek-szn/switch
github/fork/michael-roth/feature/19964-multiple-tab-targets
github/fork/mistic100/dom-utils
github/fork/nkdas91/accordion
github/fork/nstungcom/fix-missing-modal-open-class
github/fork/oraliahdz/animation-utilities
github/fork/pine3ree/patch-7
github/fork/pouwerkerk/unindent-scss-docs-shortcode
github/fork/smares/smares-no-scolling-on-modal-close
github/fork/tgm-git/patch-1
gs-forms
gs-toasts-with-animated-progress-bar
gs/add-history-helper
gs/change-version-dir-on-docs
gs/data-must-set-onlu-one-instance
gs/docs/fix-drop-down-error
gs/event-handler-2
gs/make-docs-js-build
gs/make-simple-attribute-toggler
gs/popover-fix-doc
gs/provide-steConfig-method
gs/scrollspy-smoothscroll-option-use-browser-history
gs/streamline-jqueryInterface
gs/support-drop-down-in-navbar
gs/test-js-generic-trigger
gs/try-web-components
gs/tweak-collapse-js-selector
gs/use-event-handler-in-cocmponent
gs/use-rollup-replace-for-version
jo-docs-thanks-page
jo-ssr-friendly
logical-props-spacing-utils
main-fod-disabled-form-check-label
main-fod-nested-accordion
main-fod-simpler-table-structure
main-fod-table-separator
main-fod-utilities-contrast
main-jd-abbr-title
main-jd-add-chips
main-jd-add-doc-for-sass-custom-colors
main-jd-add-enable-host-to-handle-web-components
main-jd-browserstack-fine-tune
main-jd-browserstack-updates
main-jd-docs-consistent-usage-of-css-sections-step-2
main-jd-fix-docs-headers-in-white
main-jd-fix-highlight-docs-border-radius
main-jd-fix-placeholder-color-background-params-for-img-markup
main-jd-glossary-experiment
main-jd-postcss-drop-empty-css-vars
main-jd-proto-doc-astro
main-jd-skip-navigation-component
main-jd-stackblitz-for-examples
main-jd-upgrade-browserlistrc
main-jd-use-host
main-lmp-dark-theme-customization
main-lmp-handle-scroll-target
main-lmp-tab-fix
main-mc-opensearch
main-xmr-bundlewatch-action
main-xmr-eslint-plugin-compat
main-xmr-hugo-docs-vendor
main-xmr-hugo-rm-ver
main-xmr-linkinator-prod
main-xmr-min-mangle
main-xmr-pa11y-ci
more-darkmode-examples
nested-dropdowns
patrickhlauke-issue37428
patrickhlauke-use-of-color-tweaks
pr/34102
pr/37590
previous-next-docs-links
sticky-thead
utilities-functions-mixin
v530-dev
v6-postcss-custom-media
v6-spinner-dots
v6/gs/use-floating-ui-in-place-of-popper
xmr/dev
xmr/docs-png
xmr/docs-svgs
xmr/hugo-reorg-files
xmr/js-2
xmr/markdownlint
xmr/prepare-530-alpha2
xmr/xo
v5.3.0-alpha1
v5.2.3
v5.2.2
v5.2.1
v5.2.0
v5.2.0-beta1
v5.1.3
v5.1.2
v5.1.1
v5.1.0
v5.0.2
v5.0.1
v5.0.0
v5.0.0-beta3
v5.0.0-beta2
v5.0.0-beta1
v5.0.0-alpha3
v5.0.0-alpha2
v5.0.0-alpha1
5 merge requests
!31948
Examples/Floating-labels: fix bad behavior with autofill
,
!30064
test
,
!29779
Responsive sizing
,
!28882
fix custom-select-indicator in IE10
,
!28721
Hot test
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
build/build-plugins.js
+17
-0
build/build-plugins.js
js/src/toast.js
+36
-28
js/src/toast.js
js/tests/unit/toast.js
+4
-4
js/tests/unit/toast.js
js/tests/visual/toast.html
+23
-8
js/tests/visual/toast.html
with
80 additions
and
40 deletions
+80
-40
build/build-plugins.js
+
17
-
0
View file @
661db08e
...
...
@@ -136,6 +136,23 @@ function getConfigByPluginKey(pluginKey) {
}
}
}
if
(
pluginKey
===
'
Toast
'
)
{
return
{
external
:
[
bsPlugins
.
Data
,
bsPlugins
.
EventHandler
,
bsPlugins
.
Manipulator
,
bsPlugins
.
Util
],
globals
:
{
[
bsPlugins
.
Data
]:
'
Data
'
,
[
bsPlugins
.
EventHandler
]:
'
EventHandler
'
,
[
bsPlugins
.
Manipulator
]:
'
Manipulator
'
,
[
bsPlugins
.
Util
]:
'
Util
'
}
}
}
}
function
build
(
plugin
)
{
...
...
This diff is collapsed.
Click to expand it.
js/src/toast.js
+
36
-
28
View file @
661db08e
...
...
@@ -5,7 +5,9 @@
* --------------------------------------------------------------------------
*/
import
$
from
'
jquery
'
import
Data
from
'
./dom/data
'
import
EventHandler
from
'
./dom/eventHandler
'
import
Manipulator
from
'
./dom/manipulator
'
import
Util
from
'
./util
'
/**
...
...
@@ -14,11 +16,10 @@ import Util from './util'
* ------------------------------------------------------------------------
*/
const
NAME
=
'
toast
'
const
VERSION
=
'
4.3.1
'
const
DATA_KEY
=
'
bs.toast
'
const
EVENT_KEY
=
`.
${
DATA_KEY
}
`
const
JQUERY_NO_CONFLICT
=
$
.
fn
[
NAME
]
const
NAME
=
'
toast
'
const
VERSION
=
'
4.3.1
'
const
DATA_KEY
=
'
bs.toast
'
const
EVENT_KEY
=
`.
${
DATA_KEY
}
`
const
Event
=
{
CLICK_DISMISS
:
`click.dismiss
${
EVENT_KEY
}
`
,
...
...
@@ -63,6 +64,7 @@ class Toast {
this
.
_config
=
this
.
_getConfig
(
config
)
this
.
_timeout
=
null
this
.
_setListeners
()
Data
.
setData
(
element
,
DATA_KEY
,
this
)
}
// Getters
...
...
@@ -82,7 +84,7 @@ class Toast {
// Public
show
()
{
$
(
this
.
_element
).
trigger
(
Event
.
SHOW
)
EventHandler
.
trigger
(
this
.
_element
,
Event
.
SHOW
)
if
(
this
.
_config
.
animation
)
{
this
.
_element
.
classList
.
add
(
ClassName
.
FADE
)
...
...
@@ -92,7 +94,7 @@ class Toast {
this
.
_element
.
classList
.
remove
(
ClassName
.
SHOWING
)
this
.
_element
.
classList
.
add
(
ClassName
.
SHOW
)
$
(
this
.
_element
).
trigger
(
Event
.
SHOWN
)
EventHandler
.
trigger
(
this
.
_element
,
Event
.
SHOWN
)
if
(
this
.
_config
.
autohide
)
{
this
.
hide
()
...
...
@@ -104,9 +106,8 @@ class Toast {
if
(
this
.
_config
.
animation
)
{
const
transitionDuration
=
Util
.
getTransitionDurationFromElement
(
this
.
_element
)
$
(
this
.
_element
)
.
one
(
Util
.
TRANSITION_END
,
complete
)
.
emulateTransitionEnd
(
transitionDuration
)
EventHandler
.
one
(
this
.
_element
,
Util
.
TRANSITION_END
,
complete
)
Util
.
emulateTransitionEnd
(
this
.
_element
,
transitionDuration
)
}
else
{
complete
()
}
...
...
@@ -117,7 +118,7 @@ class Toast {
return
}
$
(
this
.
_element
).
trigger
(
Event
.
HIDE
)
EventHandler
.
trigger
(
this
.
_element
,
Event
.
HIDE
)
if
(
withoutTimeout
)
{
this
.
_close
()
...
...
@@ -136,9 +137,9 @@ class Toast {
this
.
_element
.
classList
.
remove
(
ClassName
.
SHOW
)
}
$
(
this
.
_element
).
off
(
Event
.
CLICK_DISMISS
)
EventHandler
.
off
(
this
.
_element
,
Event
.
CLICK_DISMISS
)
Data
.
removeData
(
this
.
_element
,
DATA_KEY
)
$
.
removeData
(
this
.
_element
,
DATA_KEY
)
this
.
_element
=
null
this
.
_config
=
null
}
...
...
@@ -148,7 +149,7 @@ class Toast {
_getConfig
(
config
)
{
config
=
{
...
Default
,
...
$
(
this
.
_element
)
.
data
()
,
...
Manipulator
.
getDataAttributes
(
this
.
_element
),
...
typeof
config
===
'
object
'
&&
config
?
config
:
{}
}
...
...
@@ -162,7 +163,8 @@ class Toast {
}
_setListeners
()
{
$
(
this
.
_element
).
on
(
EventHandler
.
on
(
this
.
_element
,
Event
.
CLICK_DISMISS
,
Selector
.
DATA_DISMISS
,
()
=>
this
.
hide
(
true
)
...
...
@@ -172,16 +174,15 @@ class Toast {
_close
()
{
const
complete
=
()
=>
{
this
.
_element
.
classList
.
add
(
ClassName
.
HIDE
)
$
(
this
.
_element
).
trigger
(
Event
.
HIDDEN
)
EventHandler
.
trigger
(
this
.
_element
,
Event
.
HIDDEN
)
}
this
.
_element
.
classList
.
remove
(
ClassName
.
SHOW
)
if
(
this
.
_config
.
animation
)
{
const
transitionDuration
=
Util
.
getTransitionDurationFromElement
(
this
.
_element
)
$
(
this
.
_element
)
.
one
(
Util
.
TRANSITION_END
,
complete
)
.
emulateTransitionEnd
(
transitionDuration
)
EventHandler
.
one
(
this
.
_element
,
Util
.
TRANSITION_END
,
complete
)
Util
.
emulateTransitionEnd
(
this
.
_element
,
transitionDuration
)
}
else
{
complete
()
}
...
...
@@ -191,13 +192,11 @@ class Toast {
static
_jQueryInterface
(
config
)
{
return
this
.
each
(
function
()
{
const
$element
=
$
(
this
)
let
data
=
$element
.
data
(
DATA_KEY
)
let
data
=
Data
.
getData
(
this
,
DATA_KEY
)
const
_config
=
typeof
config
===
'
object
'
&&
config
if
(
!
data
)
{
data
=
new
Toast
(
this
,
_config
)
$element
.
data
(
DATA_KEY
,
data
)
}
if
(
typeof
config
===
'
string
'
)
{
...
...
@@ -209,19 +208,28 @@ class Toast {
}
})
}
static
_getInstance
(
element
)
{
return
Data
.
getData
(
element
,
DATA_KEY
)
}
}
/**
* ------------------------------------------------------------------------
* jQuery
* ------------------------------------------------------------------------
* add .toast to jQuery only if jQuery is present
*/
$
.
fn
[
NAME
]
=
Toast
.
_jQueryInterface
$
.
fn
[
NAME
].
Constructor
=
Toast
$
.
fn
[
NAME
].
noConflict
=
()
=>
{
$
.
fn
[
NAME
]
=
JQUERY_NO_CONFLICT
return
Toast
.
_jQueryInterface
const
$
=
Util
.
jQuery
if
(
typeof
$
!==
'
undefined
'
)
{
const
JQUERY_NO_CONFLICT
=
$
.
fn
[
NAME
]
$
.
fn
[
NAME
]
=
Toast
.
_jQueryInterface
$
.
fn
[
NAME
].
Constructor
=
Toast
$
.
fn
[
NAME
].
noConflict
=
()
=>
{
$
.
fn
[
NAME
]
=
JQUERY_NO_CONFLICT
return
Toast
.
_jQueryInterface
}
}
export
default
Toast
This diff is collapsed.
Click to expand it.
js/tests/unit/toast.js
+
4
-
4
View file @
661db08e
...
...
@@ -146,11 +146,11 @@ $(function () {
.
bootstrapToast
()
.
appendTo
(
$
(
'
#qunit-fixture
'
))
assert
.
ok
(
typeof
$t
oast
.
data
(
'
bs.
toast
'
)
!==
'
undefined
'
)
assert
.
ok
(
typeof
T
oast
.
_getInstance
(
$
toast
[
0
]
)
!==
'
undefined
'
)
$toast
.
bootstrapToast
(
'
dispose
'
)
assert
.
ok
(
typeof
$toast
.
data
(
'
bs.
toast
'
)
===
'
undefined
'
)
assert
.
ok
(
Toast
.
_getInstance
(
$
toast
[
0
]
)
===
null
)
})
QUnit
.
test
(
'
should allow to destroy toast and hide it before that
'
,
function
(
assert
)
{
...
...
@@ -171,11 +171,11 @@ $(function () {
$toast
.
one
(
'
shown.bs.toast
'
,
function
()
{
setTimeout
(
function
()
{
assert
.
ok
(
$toast
.
hasClass
(
'
show
'
))
assert
.
ok
(
typeof
$t
oast
.
data
(
'
bs.
toast
'
)
!==
'
undefined
'
)
assert
.
ok
(
typeof
T
oast
.
_getInstance
(
$
toast
[
0
]
)
!==
'
undefined
'
)
$toast
.
bootstrapToast
(
'
dispose
'
)
assert
.
ok
(
typeof
$toast
.
data
(
'
bs.
toast
'
)
===
'
undefined
'
)
assert
.
ok
(
Toast
.
_getInstance
(
$
toast
[
0
]
)
===
null
)
assert
.
ok
(
$toast
.
hasClass
(
'
show
'
)
===
false
)
done
()
...
...
This diff is collapsed.
Click to expand it.
js/tests/visual/toast.html
+
23
-
8
View file @
661db08e
...
...
@@ -52,19 +52,34 @@
</div>
</div>
<script
src=
"../../dist/dom/polyfill.js"
></script>
<script
src=
"../../dist/util.js"
></script>
<script
src=
"../../dist/dom/manipulator.js"
></script>
<script
src=
"../../dist/dom/data.js"
></script>
<script
src=
"../../dist/dom/eventHandler.js"
></script>
<script
src=
"../../dist/toast.js"
></script>
<script>
$
(
function
()
{
$
(
'
.toast
'
).
toast
()
window
.
addEventListener
(
'
load
'
,
function
()
{
Util
.
makeArray
(
document
.
querySelectorAll
(
'
.toast
'
))
.
forEach
(
function
(
toastNode
)
{
new
Toast
(
toastNode
)
})
$
(
'
#btnShowToast
'
).
on
(
'
click
'
,
function
()
{
$
(
'
.toast
'
).
toast
(
'
show
'
)
})
document
.
getElementById
(
'
btnShowToast
'
).
addEventListener
(
'
click
'
,
function
()
{
Util
.
makeArray
(
document
.
querySelectorAll
(
'
.toast
'
))
.
forEach
(
function
(
toastNode
)
{
var
toast
=
Toast
.
_getInstance
(
toastNode
)
toast
.
show
()
})
})
$
(
'
#btnHideToast
'
).
on
(
'
click
'
,
function
()
{
$
(
'
.toast
'
).
toast
(
'
hide
'
)
})
document
.
getElementById
(
'
btnHideToast
'
).
addEventListener
(
'
click
'
,
function
()
{
Util
.
makeArray
(
document
.
querySelectorAll
(
'
.toast
'
))
.
forEach
(
function
(
toastNode
)
{
var
toast
=
Toast
.
_getInstance
(
toastNode
)
toast
.
hide
()
})
})
})
</script>
</body>
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment
Menu
Explore
Projects
Groups
Snippets