mirror of
https://github.com/twbs/bootstrap.git
synced 2024-11-28 10:24:19 +01:00
Object spread : less jQuery more ES6 (#24665)
This commit is contained in:
parent
1354a929f9
commit
9a0bba9afa
@ -10,6 +10,7 @@ module.exports = {
|
||||
]
|
||||
],
|
||||
plugins: [
|
||||
process.env.PLUGINS && 'transform-es2015-modules-strip'
|
||||
process.env.PLUGINS && 'transform-es2015-modules-strip',
|
||||
'@babel/proposal-object-rest-spread'
|
||||
].filter(Boolean)
|
||||
};
|
||||
|
@ -15,7 +15,8 @@ const plugins = [
|
||||
externalHelpersWhitelist: [ // include only required helpers
|
||||
'defineProperties',
|
||||
'createClass',
|
||||
'inheritsLoose'
|
||||
'inheritsLoose',
|
||||
'extends'
|
||||
]
|
||||
})
|
||||
]
|
||||
|
@ -223,7 +223,10 @@ const Carousel = (($) => {
|
||||
// private
|
||||
|
||||
_getConfig(config) {
|
||||
config = $.extend({}, Default, config)
|
||||
config = {
|
||||
...Default,
|
||||
...config
|
||||
}
|
||||
Util.typeCheckConfig(NAME, config, DefaultType)
|
||||
return config
|
||||
}
|
||||
@ -428,10 +431,16 @@ const Carousel = (($) => {
|
||||
static _jQueryInterface(config) {
|
||||
return this.each(function () {
|
||||
let data = $(this).data(DATA_KEY)
|
||||
const _config = $.extend({}, Default, $(this).data())
|
||||
let _config = {
|
||||
...Default,
|
||||
...$(this).data()
|
||||
}
|
||||
|
||||
if (typeof config === 'object') {
|
||||
$.extend(_config, config)
|
||||
_config = {
|
||||
..._config,
|
||||
...config
|
||||
}
|
||||
}
|
||||
|
||||
const action = typeof config === 'string' ? config : _config.slide
|
||||
@ -468,7 +477,10 @@ const Carousel = (($) => {
|
||||
return
|
||||
}
|
||||
|
||||
const config = $.extend({}, $(target).data(), $(this).data())
|
||||
const config = {
|
||||
...$(target).data(),
|
||||
...$(this).data()
|
||||
}
|
||||
const slideIndex = this.getAttribute('data-slide-to')
|
||||
|
||||
if (slideIndex) {
|
||||
|
@ -277,7 +277,10 @@ const Collapse = (($) => {
|
||||
// private
|
||||
|
||||
_getConfig(config) {
|
||||
config = $.extend({}, Default, config)
|
||||
config = {
|
||||
...Default,
|
||||
...config
|
||||
}
|
||||
config.toggle = Boolean(config.toggle) // coerce string values
|
||||
Util.typeCheckConfig(NAME, config, DefaultType)
|
||||
return config
|
||||
@ -338,12 +341,11 @@ const Collapse = (($) => {
|
||||
return this.each(function () {
|
||||
const $this = $(this)
|
||||
let data = $this.data(DATA_KEY)
|
||||
const _config = $.extend(
|
||||
{},
|
||||
Default,
|
||||
$this.data(),
|
||||
typeof config === 'object' && config
|
||||
)
|
||||
const _config = {
|
||||
...Default,
|
||||
...$this.data(),
|
||||
...typeof config === 'object' && config
|
||||
}
|
||||
|
||||
if (!data && _config.toggle && /show|hide/.test(config)) {
|
||||
_config.toggle = false
|
||||
|
@ -210,12 +210,11 @@ const Dropdown = (($) => {
|
||||
}
|
||||
|
||||
_getConfig(config) {
|
||||
config = $.extend(
|
||||
{},
|
||||
this.constructor.Default,
|
||||
$(this._element).data(),
|
||||
config
|
||||
)
|
||||
config = {
|
||||
...this.constructor.Default,
|
||||
...$(this._element).data(),
|
||||
...config
|
||||
}
|
||||
|
||||
Util.typeCheckConfig(
|
||||
NAME,
|
||||
@ -262,7 +261,10 @@ const Dropdown = (($) => {
|
||||
const offsetConf = {}
|
||||
if (typeof this._config.offset === 'function') {
|
||||
offsetConf.fn = (data) => {
|
||||
data.offsets = $.extend({}, data.offsets, this._config.offset(data.offsets) || {})
|
||||
data.offsets = {
|
||||
...data.offsets,
|
||||
...this._config.offset(data.offsets) || {}
|
||||
}
|
||||
return data
|
||||
}
|
||||
} else {
|
||||
|
@ -227,7 +227,10 @@ const Modal = (($) => {
|
||||
// private
|
||||
|
||||
_getConfig(config) {
|
||||
config = $.extend({}, Default, config)
|
||||
config = {
|
||||
...Default,
|
||||
...config
|
||||
}
|
||||
Util.typeCheckConfig(NAME, config, DefaultType)
|
||||
return config
|
||||
}
|
||||
@ -506,12 +509,11 @@ const Modal = (($) => {
|
||||
static _jQueryInterface(config, relatedTarget) {
|
||||
return this.each(function () {
|
||||
let data = $(this).data(DATA_KEY)
|
||||
const _config = $.extend(
|
||||
{},
|
||||
Modal.Default,
|
||||
$(this).data(),
|
||||
typeof config === 'object' && config
|
||||
)
|
||||
const _config = {
|
||||
...Modal.Default,
|
||||
...$(this).data(),
|
||||
...typeof config === 'object' && config
|
||||
}
|
||||
|
||||
if (!data) {
|
||||
data = new Modal(this, _config)
|
||||
@ -547,7 +549,10 @@ const Modal = (($) => {
|
||||
}
|
||||
|
||||
const config = $(target).data(DATA_KEY) ?
|
||||
'toggle' : $.extend({}, $(target).data(), $(this).data())
|
||||
'toggle' : {
|
||||
...$(target).data(),
|
||||
...$(this).data()
|
||||
}
|
||||
|
||||
if (this.tagName === 'A' || this.tagName === 'AREA') {
|
||||
event.preventDefault()
|
||||
|
@ -26,19 +26,25 @@ const Popover = (($) => {
|
||||
const CLASS_PREFIX = 'bs-popover'
|
||||
const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\s)${CLASS_PREFIX}\\S+`, 'g')
|
||||
|
||||
const Default = $.extend({}, Tooltip.Default, {
|
||||
placement : 'right',
|
||||
trigger : 'click',
|
||||
content : '',
|
||||
template : '<div class="popover" role="tooltip">'
|
||||
+ '<div class="arrow"></div>'
|
||||
+ '<h3 class="popover-header"></h3>'
|
||||
+ '<div class="popover-body"></div></div>'
|
||||
})
|
||||
const Default = {
|
||||
...Tooltip.Default,
|
||||
...{
|
||||
placement : 'right',
|
||||
trigger : 'click',
|
||||
content : '',
|
||||
template : '<div class="popover" role="tooltip">'
|
||||
+ '<div class="arrow"></div>'
|
||||
+ '<h3 class="popover-header"></h3>'
|
||||
+ '<div class="popover-body"></div></div>'
|
||||
}
|
||||
}
|
||||
|
||||
const DefaultType = $.extend({}, Tooltip.DefaultType, {
|
||||
content : '(string|element|function)'
|
||||
})
|
||||
const DefaultType = {
|
||||
...Tooltip.DefaultType,
|
||||
...{
|
||||
content : '(string|element|function)'
|
||||
}
|
||||
}
|
||||
|
||||
const ClassName = {
|
||||
FADE : 'fade',
|
||||
|
@ -171,7 +171,10 @@ const ScrollSpy = (($) => {
|
||||
// private
|
||||
|
||||
_getConfig(config) {
|
||||
config = $.extend({}, Default, config)
|
||||
config = {
|
||||
...Default,
|
||||
...config
|
||||
}
|
||||
|
||||
if (typeof config.target !== 'string') {
|
||||
let id = $(config.target).attr('id')
|
||||
|
@ -501,10 +501,13 @@ const Tooltip = (($) => {
|
||||
})
|
||||
|
||||
if (this.config.selector) {
|
||||
this.config = $.extend({}, this.config, {
|
||||
trigger : 'manual',
|
||||
selector : ''
|
||||
})
|
||||
this.config = {
|
||||
...this.config,
|
||||
...{
|
||||
trigger : 'manual',
|
||||
selector : ''
|
||||
}
|
||||
}
|
||||
} else {
|
||||
this._fixTitle()
|
||||
}
|
||||
@ -613,12 +616,11 @@ const Tooltip = (($) => {
|
||||
}
|
||||
|
||||
_getConfig(config) {
|
||||
config = $.extend(
|
||||
{},
|
||||
this.constructor.Default,
|
||||
$(this.element).data(),
|
||||
config
|
||||
)
|
||||
config = {
|
||||
...this.constructor.Default,
|
||||
...$(this.element).data(),
|
||||
...config
|
||||
}
|
||||
|
||||
if (typeof config.delay === 'number') {
|
||||
config.delay = {
|
||||
|
Loading…
Reference in New Issue
Block a user