Permalink
Browse files

Object spread : less jQuery more ES6 (#24665)

  • Loading branch information...
Johann-S committed Nov 13, 2017
1 parent 1354a92 commit 9a0bba9afa039308e84442a2b329bf64f5678a00
Showing with 86 additions and 52 deletions.
  1. +2 −1 .babelrc.js
  2. +2 −1 build/rollup.config.js
  3. +16 −4 js/src/carousel.js
  4. +9 −7 js/src/collapse.js
  5. +9 −7 js/src/dropdown.js
  6. +13 −8 js/src/modal.js
  7. +19 −13 js/src/popover.js
  8. +4 −1 js/src/scrollspy.js
  9. +12 −10 js/src/tooltip.js
View
@@ -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)
};
View
@@ -15,7 +15,8 @@ const plugins = [
externalHelpersWhitelist: [ // include only required helpers
'defineProperties',
'createClass',
'inheritsLoose'
'inheritsLoose',
'extends'
]
})
]
View
@@ -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) {
View
@@ -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
View
@@ -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 {
View
@@ -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()
View
@@ -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 DefaultType = $.extend({}, Tooltip.DefaultType, {
content : '(string|element|function)'
})
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 = {
...Tooltip.DefaultType,
...{
content : '(string|element|function)'
}
}
const ClassName = {
FADE : 'fade',
View
@@ -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')
View
@@ -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 = {

0 comments on commit 9a0bba9

Please sign in to comment.