Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F102432002
toast.js
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Thu, Feb 20, 16:14
Size
4 KB
Mime Type
text/x-c++
Expires
Sat, Feb 22, 16:14 (22 h, 14 m)
Engine
blob
Format
Raw Data
Handle
24356018
Attached To
rCOSTCALC Cost Calculator Source code
toast.js
View Options
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.3.1): toast.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
import
$
from
'jquery'
import
Util
from
'./util'
/**
* ------------------------------------------------------------------------
* Constants
* ------------------------------------------------------------------------
*/
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
Event
=
{
CLICK_DISMISS
:
`
click
.
dismiss$
{
EVENT_KEY
}
`
,
HIDE
:
`
hide$
{
EVENT_KEY
}
`
,
HIDDEN
:
`
hidden$
{
EVENT_KEY
}
`
,
SHOW
:
`
show$
{
EVENT_KEY
}
`
,
SHOWN
:
`
shown$
{
EVENT_KEY
}
`
}
const
ClassName
=
{
FADE
:
'fade'
,
HIDE
:
'hide'
,
SHOW
:
'show'
,
SHOWING
:
'showing'
}
const
DefaultType
=
{
animation
:
'boolean'
,
autohide
:
'boolean'
,
delay
:
'number'
}
const
Default
=
{
animation
:
true
,
autohide
:
true
,
delay
:
500
}
const
Selector
=
{
DATA_DISMISS
:
'[data-dismiss="toast"]'
}
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
class
Toast
{
constructor
(
element
,
config
)
{
this
.
_element
=
element
this
.
_config
=
this
.
_getConfig
(
config
)
this
.
_timeout
=
null
this
.
_setListeners
()
}
// Getters
static
get
VERSION
()
{
return
VERSION
}
static
get
DefaultType
()
{
return
DefaultType
}
static
get
Default
()
{
return
Default
}
// Public
show
()
{
$
(
this
.
_element
).
trigger
(
Event
.
SHOW
)
if
(
this
.
_config
.
animation
)
{
this
.
_element
.
classList
.
add
(
ClassName
.
FADE
)
}
const
complete
=
()
=>
{
this
.
_element
.
classList
.
remove
(
ClassName
.
SHOWING
)
this
.
_element
.
classList
.
add
(
ClassName
.
SHOW
)
$
(
this
.
_element
).
trigger
(
Event
.
SHOWN
)
if
(
this
.
_config
.
autohide
)
{
this
.
hide
()
}
}
this
.
_element
.
classList
.
remove
(
ClassName
.
HIDE
)
this
.
_element
.
classList
.
add
(
ClassName
.
SHOWING
)
if
(
this
.
_config
.
animation
)
{
const
transitionDuration
=
Util
.
getTransitionDurationFromElement
(
this
.
_element
)
$
(
this
.
_element
)
.
one
(
Util
.
TRANSITION_END
,
complete
)
.
emulateTransitionEnd
(
transitionDuration
)
}
else
{
complete
()
}
}
hide
(
withoutTimeout
)
{
if
(
!
this
.
_element
.
classList
.
contains
(
ClassName
.
SHOW
))
{
return
}
$
(
this
.
_element
).
trigger
(
Event
.
HIDE
)
if
(
withoutTimeout
)
{
this
.
_close
()
}
else
{
this
.
_timeout
=
setTimeout
(()
=>
{
this
.
_close
()
},
this
.
_config
.
delay
)
}
}
dispose
()
{
clearTimeout
(
this
.
_timeout
)
this
.
_timeout
=
null
if
(
this
.
_element
.
classList
.
contains
(
ClassName
.
SHOW
))
{
this
.
_element
.
classList
.
remove
(
ClassName
.
SHOW
)
}
$
(
this
.
_element
).
off
(
Event
.
CLICK_DISMISS
)
$
.
removeData
(
this
.
_element
,
DATA_KEY
)
this
.
_element
=
null
this
.
_config
=
null
}
// Private
_getConfig
(
config
)
{
config
=
{
...
Default
,
...
$
(
this
.
_element
).
data
(),
...
typeof
config
===
'object'
&&
config
?
config
:
{}
}
Util
.
typeCheckConfig
(
NAME
,
config
,
this
.
constructor
.
DefaultType
)
return
config
}
_setListeners
()
{
$
(
this
.
_element
).
on
(
Event
.
CLICK_DISMISS
,
Selector
.
DATA_DISMISS
,
()
=>
this
.
hide
(
true
)
)
}
_close
()
{
const
complete
=
()
=>
{
this
.
_element
.
classList
.
add
(
ClassName
.
HIDE
)
$
(
this
.
_element
).
trigger
(
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
)
}
else
{
complete
()
}
}
// Static
static
_jQueryInterface
(
config
)
{
return
this
.
each
(
function
()
{
const
$element
=
$
(
this
)
let
data
=
$element
.
data
(
DATA_KEY
)
const
_config
=
typeof
config
===
'object'
&&
config
if
(
!
data
)
{
data
=
new
Toast
(
this
,
_config
)
$element
.
data
(
DATA_KEY
,
data
)
}
if
(
typeof
config
===
'string'
)
{
if
(
typeof
data
[
config
]
===
'undefined'
)
{
throw
new
TypeError
(
`
No
method
named
"${config}"
`
)
}
data
[
config
](
this
)
}
})
}
}
/**
* ------------------------------------------------------------------------
* jQuery
* ------------------------------------------------------------------------
*/
$
.
fn
[
NAME
]
=
Toast
.
_jQueryInterface
$
.
fn
[
NAME
].
Constructor
=
Toast
$
.
fn
[
NAME
].
noConflict
=
()
=>
{
$
.
fn
[
NAME
]
=
JQUERY_NO_CONFLICT
return
Toast
.
_jQueryInterface
}
export
default
Toast
Event Timeline
Log In to Comment