@@ -15,54 +15,54 @@ define([
15
15
] , function ( $ , Util , Data , EventHandler , Manipulator , SelectorEngine ) {
16
16
'use strict' ;
17
17
18
- var defineJQueryPlugin = Util . defineJQueryPlugin ;
19
- var executeAfterTransition = Util . executeAfterTransition ;
20
- var getElement = Util . getElement ;
21
- var getSelectorFromElement = Util . getSelectorFromElement ;
22
- var getElementFromSelector = Util . getElementFromSelector ;
23
- var reflow = Util . reflow ;
24
- var typeCheckConfig = Util . typeCheckConfig ;
18
+ const defineJQueryPlugin = Util . defineJQueryPlugin ;
19
+ const executeAfterTransition = Util . executeAfterTransition ;
20
+ const getElement = Util . getElement ;
21
+ const getSelectorFromElement = Util . getSelectorFromElement ;
22
+ const getElementFromSelector = Util . getElementFromSelector ;
23
+ const reflow = Util . reflow ;
24
+ const typeCheckConfig = Util . typeCheckConfig ;
25
25
26
26
/**
27
27
* ------------------------------------------------------------------------
28
28
* Constants
29
29
* ------------------------------------------------------------------------
30
30
*/
31
31
32
- var VERSION = '5.1.3'
33
- var NAME = 'collapse'
34
- var DATA_KEY = 'bs.collapse'
35
- var EVENT_KEY = `.${ DATA_KEY } `
36
- var DATA_API_KEY = '.data-api'
32
+ const VERSION = '5.1.3'
33
+ const NAME = 'collapse'
34
+ const DATA_KEY = 'bs.collapse'
35
+ const EVENT_KEY = `.${ DATA_KEY } `
36
+ const DATA_API_KEY = '.data-api'
37
37
38
- var Default = {
38
+ const Default = {
39
39
toggle : true ,
40
40
parent : null
41
41
}
42
42
43
- var DefaultType = {
43
+ const DefaultType = {
44
44
toggle : 'boolean' ,
45
45
parent : '(null|element)'
46
46
}
47
47
48
- var EVENT_SHOW = `show${ EVENT_KEY } `
49
- var EVENT_SHOWN = `shown${ EVENT_KEY } `
50
- var EVENT_HIDE = `hide${ EVENT_KEY } `
51
- var EVENT_HIDDEN = `hidden${ EVENT_KEY } `
52
- var EVENT_CLICK_DATA_API = `click${ EVENT_KEY } ${ DATA_API_KEY } `
48
+ const EVENT_SHOW = `show${ EVENT_KEY } `
49
+ const EVENT_SHOWN = `shown${ EVENT_KEY } `
50
+ const EVENT_HIDE = `hide${ EVENT_KEY } `
51
+ const EVENT_HIDDEN = `hidden${ EVENT_KEY } `
52
+ const EVENT_CLICK_DATA_API = `click${ EVENT_KEY } ${ DATA_API_KEY } `
53
53
54
- var CLASS_NAME_SHOW = 'show'
55
- var CLASS_NAME_COLLAPSE = 'collapse'
56
- var CLASS_NAME_COLLAPSING = 'collapsing'
57
- var CLASS_NAME_COLLAPSED = 'collapsed'
58
- var CLASS_NAME_DEEPER_CHILDREN = `:scope .${ CLASS_NAME_COLLAPSE } .${ CLASS_NAME_COLLAPSE } `
59
- var CLASS_NAME_HORIZONTAL = 'collapse-horizontal'
54
+ const CLASS_NAME_SHOW = 'show'
55
+ const CLASS_NAME_COLLAPSE = 'collapse'
56
+ const CLASS_NAME_COLLAPSING = 'collapsing'
57
+ const CLASS_NAME_COLLAPSED = 'collapsed'
58
+ const CLASS_NAME_DEEPER_CHILDREN = `:scope .${ CLASS_NAME_COLLAPSE } .${ CLASS_NAME_COLLAPSE } `
59
+ const CLASS_NAME_HORIZONTAL = 'collapse-horizontal'
60
60
61
- var WIDTH = 'width'
62
- var HEIGHT = 'height'
61
+ const WIDTH = 'width'
62
+ const HEIGHT = 'height'
63
63
64
- var SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing'
65
- var SELECTOR_DATA_TOGGLE = '[data-bs-toggle="collapse"]'
64
+ const SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing'
65
+ const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="collapse"]'
66
66
67
67
/**
68
68
* ------------------------------------------------------------------------
@@ -84,16 +84,13 @@ define([
84
84
this . _config = this . _getConfig ( config )
85
85
this . _triggerArray = [ ]
86
86
87
- var toggleList = SelectorEngine . find ( SELECTOR_DATA_TOGGLE )
87
+ const toggleList = SelectorEngine . find ( SELECTOR_DATA_TOGGLE )
88
88
89
- var self = this ;
90
- for ( var i = 0 , len = toggleList . length ; i < len ; i ++ ) {
91
- var elem = toggleList [ i ]
92
- var selector = getSelectorFromElement ( elem )
93
- var filterElement = SelectorEngine . find ( selector )
94
- . filter ( function ( foundElem ) {
95
- return foundElem === self . _element
96
- } )
89
+ for ( let i = 0 , len = toggleList . length ; i < len ; i ++ ) {
90
+ const elem = toggleList [ i ]
91
+ const selector = getSelectorFromElement ( elem )
92
+ const filterElement = SelectorEngine . find ( selector )
93
+ . filter ( foundElem => foundElem === this . _element )
97
94
98
95
if ( selector !== null && filterElement . length ) {
99
96
this . _selector = selector
@@ -127,10 +124,10 @@ define([
127
124
// Public
128
125
129
126
Collapse . prototype . dispose = function ( ) {
130
- Data . remove ( this . _element , Collapse . DATA_KEY )
131
- EventHandler . off ( this . _element , Collapse . EVENT_KEY )
127
+ Data . remove ( this . _element , this . constructor . DATA_KEY )
128
+ EventHandler . off ( this . _element , this . constructor . EVENT_KEY )
132
129
133
- Object . getOwnPropertyNames ( this ) . forEach ( function ( propertyName ) {
130
+ Object . getOwnPropertyNames ( this ) . forEach ( propertyName => {
134
131
this [ propertyName ] = null
135
132
} )
136
133
}
@@ -152,34 +149,30 @@ define([
152
149
return
153
150
}
154
151
155
- var actives = [ ]
156
- var activesData
152
+ let actives = [ ]
153
+ let activesData
157
154
158
155
if ( this . _config . parent ) {
159
- var children = SelectorEngine . find ( CLASS_NAME_DEEPER_CHILDREN , this . _config . parent )
160
- actives = SelectorEngine . find ( SELECTOR_ACTIVES , this . _config . parent ) . filter ( function ( elem ) {
161
- return ! children . includes ( elem )
162
- } ) // remove children if greater depth
156
+ const children = SelectorEngine . find ( CLASS_NAME_DEEPER_CHILDREN , this . _config . parent )
157
+ actives = SelectorEngine . find ( SELECTOR_ACTIVES , this . _config . parent ) . filter ( elem => ! children . includes ( elem ) ) // remove children if greater depth
163
158
}
164
159
165
- var container = SelectorEngine . findOne ( this . _selector )
160
+ const container = SelectorEngine . findOne ( this . _selector )
166
161
if ( actives . length ) {
167
- var tempActiveData = actives . find ( function ( elem ) {
168
- return container !== elem
169
- } )
162
+ const tempActiveData = actives . find ( elem => container !== elem )
170
163
activesData = tempActiveData ? Collapse . getInstance ( tempActiveData ) : null
171
164
172
165
if ( activesData && activesData . _isTransitioning ) {
173
166
return
174
167
}
175
168
}
176
169
177
- var startEvent = EventHandler . trigger ( this . _element , EVENT_SHOW )
170
+ const startEvent = EventHandler . trigger ( this . _element , EVENT_SHOW )
178
171
if ( startEvent . defaultPrevented ) {
179
172
return
180
173
}
181
174
182
- actives . forEach ( function ( elemActive ) {
175
+ actives . forEach ( elemActive => {
183
176
if ( container !== elemActive ) {
184
177
Collapse . getOrCreateInstance ( elemActive , { toggle : false } ) . hide ( )
185
178
}
@@ -189,7 +182,7 @@ define([
189
182
}
190
183
} )
191
184
192
- var dimension = this . _getDimension ( )
185
+ const dimension = this . _getDimension ( )
193
186
194
187
this . _element . classList . remove ( CLASS_NAME_COLLAPSE )
195
188
this . _element . classList . add ( CLASS_NAME_COLLAPSING )
@@ -199,20 +192,19 @@ define([
199
192
this . _addAriaAndCollapsedClass ( this . _triggerArray , true )
200
193
this . _isTransitioning = true
201
194
202
- var self = this ;
203
- var complete = function ( ) {
204
- self . _isTransitioning = false
195
+ const complete = ( ) => {
196
+ this . _isTransitioning = false
205
197
206
- self . _element . classList . remove ( CLASS_NAME_COLLAPSING )
207
- self . _element . classList . add ( CLASS_NAME_COLLAPSE , CLASS_NAME_SHOW )
198
+ this . _element . classList . remove ( CLASS_NAME_COLLAPSING )
199
+ this . _element . classList . add ( CLASS_NAME_COLLAPSE , CLASS_NAME_SHOW )
208
200
209
- self . _element . style [ dimension ] = ''
201
+ this . _element . style [ dimension ] = ''
210
202
211
- EventHandler . trigger ( self . _element , EVENT_SHOWN )
203
+ EventHandler . trigger ( this . _element , EVENT_SHOWN )
212
204
}
213
205
214
- var capitalizedDimension = dimension [ 0 ] . toUpperCase ( ) + dimension . slice ( 1 )
215
- var scrollSize = `scroll${ capitalizedDimension } `
206
+ const capitalizedDimension = dimension [ 0 ] . toUpperCase ( ) + dimension . slice ( 1 )
207
+ const scrollSize = `scroll${ capitalizedDimension } `
216
208
217
209
this . _queueCallback ( complete , this . _element , true )
218
210
this . _element . style [ dimension ] = `${ this . _element [ scrollSize ] } px`
@@ -223,12 +215,12 @@ define([
223
215
return
224
216
}
225
217
226
- var startEvent = EventHandler . trigger ( this . _element , EVENT_HIDE )
218
+ const startEvent = EventHandler . trigger ( this . _element , EVENT_HIDE )
227
219
if ( startEvent . defaultPrevented ) {
228
220
return
229
221
}
230
222
231
- var dimension = this . _getDimension ( )
223
+ const dimension = this . _getDimension ( )
232
224
233
225
this . _element . style [ dimension ] = `${ this . _element . getBoundingClientRect ( ) [ dimension ] } px`
234
226
@@ -237,10 +229,10 @@ define([
237
229
this . _element . classList . add ( CLASS_NAME_COLLAPSING )
238
230
this . _element . classList . remove ( CLASS_NAME_COLLAPSE , CLASS_NAME_SHOW )
239
231
240
- var triggerArrayLength = this . _triggerArray . length
241
- for ( var i = 0 ; i < triggerArrayLength ; i ++ ) {
242
- var trigger = this . _triggerArray [ i ]
243
- var elem = getElementFromSelector ( trigger )
232
+ const triggerArrayLength = this . _triggerArray . length
233
+ for ( let i = 0 ; i < triggerArrayLength ; i ++ ) {
234
+ const trigger = this . _triggerArray [ i ]
235
+ const elem = getElementFromSelector ( trigger )
244
236
245
237
if ( elem && ! this . _isShown ( elem ) ) {
246
238
this . _addAriaAndCollapsedClass ( [ trigger ] , false )
@@ -249,12 +241,11 @@ define([
249
241
250
242
this . _isTransitioning = true
251
243
252
- var self = this ;
253
- var complete = function ( ) {
254
- self . _isTransitioning = false
255
- self . _element . classList . remove ( CLASS_NAME_COLLAPSING )
256
- self . _element . classList . add ( CLASS_NAME_COLLAPSE )
257
- EventHandler . trigger ( self . _element , EVENT_HIDDEN )
244
+ const complete = ( ) => {
245
+ this . _isTransitioning = false
246
+ this . _element . classList . remove ( CLASS_NAME_COLLAPSING )
247
+ this . _element . classList . add ( CLASS_NAME_COLLAPSE )
248
+ EventHandler . trigger ( this . _element , EVENT_HIDDEN )
258
249
}
259
250
260
251
this . _element . style [ dimension ] = ''
@@ -289,25 +280,23 @@ define([
289
280
return
290
281
}
291
282
292
- var children = SelectorEngine . find ( CLASS_NAME_DEEPER_CHILDREN , this . _config . parent )
293
- SelectorEngine . find ( SELECTOR_DATA_TOGGLE , this . _config . parent ) . filter ( function ( elem ) {
294
- return ! children . includes ( elem )
295
- } )
296
- . forEach ( function ( element ) {
297
- var selected = getElementFromSelector ( element )
283
+ const children = SelectorEngine . find ( CLASS_NAME_DEEPER_CHILDREN , this . _config . parent )
284
+ SelectorEngine . find ( SELECTOR_DATA_TOGGLE , this . _config . parent ) . filter ( elem => ! children . includes ( elem ) )
285
+ . forEach ( element => {
286
+ const selected = getElementFromSelector ( element )
298
287
299
- if ( selected ) {
300
- this . _addAriaAndCollapsedClass ( [ element ] , this . _isShown ( selected ) )
301
- }
302
- } )
288
+ if ( selected ) {
289
+ this . _addAriaAndCollapsedClass ( [ element ] , this . _isShown ( selected ) )
290
+ }
291
+ } )
303
292
}
304
293
305
294
Collapse . prototype . _addAriaAndCollapsedClass = function ( triggerArray , isOpen ) {
306
295
if ( ! triggerArray . length ) {
307
296
return
308
297
}
309
298
310
- triggerArray . forEach ( function ( elem ) {
299
+ triggerArray . forEach ( elem => {
311
300
if ( isOpen ) {
312
301
elem . classList . remove ( CLASS_NAME_COLLAPSED )
313
302
} else {
@@ -330,12 +319,12 @@ define([
330
319
331
320
Collapse . jQueryInterface = function ( config ) {
332
321
return this . each ( function ( ) {
333
- var _config = { }
322
+ const _config = { }
334
323
if ( typeof config === 'string' && / s h o w | h i d e / . test ( config ) ) {
335
324
_config . toggle = false
336
325
}
337
326
338
- var data = Collapse . getOrCreateInstance ( this , _config )
327
+ const data = Collapse . getOrCreateInstance ( this , _config )
339
328
340
329
if ( typeof config === 'string' ) {
341
330
if ( typeof data [ config ] === 'undefined' ) {
@@ -359,10 +348,10 @@ define([
359
348
event . preventDefault ( )
360
349
}
361
350
362
- var selector = getSelectorFromElement ( this )
363
- var selectorElements = SelectorEngine . find ( selector )
351
+ const selector = getSelectorFromElement ( this )
352
+ const selectorElements = SelectorEngine . find ( selector )
364
353
365
- selectorElements . forEach ( function ( element ) {
354
+ selectorElements . forEach ( element => {
366
355
Collapse . getOrCreateInstance ( element , { toggle : false } ) . toggle ( )
367
356
} )
368
357
} )
0 commit comments