@@ -26,34 +26,30 @@ export default class ResizeObserverController {
26
26
/**
27
27
* Continuous updates must be enabled if MutationObserver is not supported.
28
28
*
29
- * @private
30
- * @type {boolean }
29
+ * @private {boolean}
31
30
*/
32
- _isCycleContinuous = ! mutationsSupported ;
31
+ isCycleContinuous_ = ! mutationsSupported ;
33
32
34
33
/**
35
34
* Indicates whether DOM listeners have been added.
36
35
*
37
- * @private
38
- * @type {boolean }
36
+ * @private {boolean}
39
37
*/
40
- _listenersEnabled = false ;
38
+ listenersEnabled_ = false ;
41
39
42
40
/**
43
41
* Keeps reference to the instance of MutationObserver.
44
42
*
45
- * @private
46
- * @type {MutationObserver }
43
+ * @private {MutationObserver}
47
44
*/
48
- _mutationsObserver ;
45
+ mutationsObserver_ ;
49
46
50
47
/**
51
48
* A list of connected observers.
52
49
*
53
- * @private
54
- * @type {ResizeObserver[] }
50
+ * @private {Array<ResizeObserverSPI>}
55
51
*/
56
- _observers = [ ] ;
52
+ observers_ = [ ] ;
57
53
58
54
/**
59
55
* Creates a new instance of ResizeObserverController.
@@ -64,34 +60,34 @@ export default class ResizeObserverController {
64
60
this . refresh = throttle ( this . refresh . bind ( this ) , REFRESH_DELAY , true ) ;
65
61
66
62
// Additionally postpone invocation of the continuous updates.
67
- this . _continuousUpdateHandler = throttle ( this . refresh , CONTINUOUS_HANDLER_DELAY ) ;
63
+ this . continuousUpdateHandler_ = throttle ( this . refresh , CONTINUOUS_HANDLER_DELAY ) ;
68
64
}
69
65
70
66
/**
71
67
* Adds observer to observers list.
72
68
*
73
- * @param {ResizeObserver } observer - Observer to be added.
69
+ * @param {ResizeObserverSPI } observer - Observer to be added.
74
70
* @returns {void }
75
71
*/
76
72
connect ( observer ) {
77
73
if ( ! this . isConnected ( observer ) ) {
78
- this . _observers . push ( observer ) ;
74
+ this . observers_ . push ( observer ) ;
79
75
}
80
76
81
77
// Add listeners if they haven't been added yet.
82
- if ( ! this . _listenersEnabled ) {
83
- this . _addListeners ( ) ;
78
+ if ( ! this . listenersEnabled_ ) {
79
+ this . addListeners_ ( ) ;
84
80
}
85
81
}
86
82
87
83
/**
88
84
* Removes observer from observers list.
89
85
*
90
- * @param {ResizeObserver } observer - Observer to be removed.
86
+ * @param {ResizeObserverSPI } observer - Observer to be removed.
91
87
* @returns {void }
92
88
*/
93
89
disconnect ( observer ) {
94
- const observers = this . _observers ;
90
+ const observers = this . observers_ ;
95
91
const index = observers . indexOf ( observer ) ;
96
92
97
93
// Remove observer if it's present in registry.
@@ -100,19 +96,19 @@ export default class ResizeObserverController {
100
96
}
101
97
102
98
// Remove listeners if controller has no connected observers.
103
- if ( ! observers . length && this . _listenersEnabled ) {
104
- this . _removeListeners ( ) ;
99
+ if ( ! observers . length && this . listenersEnabled_ ) {
100
+ this . removeListeners_ ( ) ;
105
101
}
106
102
}
107
103
108
104
/**
109
105
* Tells whether the provided observer is connected to controller.
110
106
*
111
- * @param {ResizeObserver } observer - Observer to be checked.
107
+ * @param {ResizeObserverSPI } observer - Observer to be checked.
112
108
* @returns {boolean }
113
109
*/
114
110
isConnected ( observer ) {
115
- return ! ! ~ this . _observers . indexOf ( observer ) ;
111
+ return ! ! ~ this . observers_ . indexOf ( observer ) ;
116
112
}
117
113
118
114
/**
@@ -122,15 +118,15 @@ export default class ResizeObserverController {
122
118
* @returns {void }
123
119
*/
124
120
refresh ( ) {
125
- const hasChanges = this . _updateObservers ( ) ;
121
+ const hasChanges = this . updateObservers_ ( ) ;
126
122
127
123
// Continue running updates if changes have been detected as there might
128
124
// be future ones caused by CSS transitions.
129
125
if ( hasChanges ) {
130
126
this . refresh ( ) ;
131
- } else if ( this . _isCycleContinuous && this . _listenersEnabled ) {
127
+ } else if ( this . isCycleContinuous_ && this . listenersEnabled_ ) {
132
128
// Automatically repeat cycle if it's necessary.
133
- this . _continuousUpdateHandler ( ) ;
129
+ this . continuousUpdateHandler_ ( ) ;
134
130
}
135
131
}
136
132
@@ -142,10 +138,10 @@ export default class ResizeObserverController {
142
138
* @returns {boolean } Returns "true" if any observer has detected changes in
143
139
* dimensions of it's elements.
144
140
*/
145
- _updateObservers ( ) {
141
+ updateObservers_ ( ) {
146
142
let hasChanges = false ;
147
143
148
- for ( const observer of this . _observers ) {
144
+ for ( const observer of this . observers_ ) {
149
145
// Collect active observations.
150
146
observer . gatherActive ( ) ;
151
147
@@ -167,10 +163,10 @@ export default class ResizeObserverController {
167
163
* @private
168
164
* @returns {void }
169
165
*/
170
- _addListeners ( ) {
166
+ addListeners_ ( ) {
171
167
// Do nothing if running in a non-browser environment or if listeners
172
168
// have been already added.
173
- if ( ! isBrowser || this . _listenersEnabled ) {
169
+ if ( ! isBrowser || this . listenersEnabled_ ) {
174
170
return ;
175
171
}
176
172
@@ -184,21 +180,21 @@ export default class ResizeObserverController {
184
180
// Subscribe to DOM mutations if it's possible as they may lead to
185
181
// changes in the dimensions of elements.
186
182
if ( mutationsSupported ) {
187
- this . _mutationsObserver = new MutationObserver ( this . refresh ) ;
183
+ this . mutationsObserver_ = new MutationObserver ( this . refresh ) ;
188
184
189
- this . _mutationsObserver . observe ( document , {
185
+ this . mutationsObserver_ . observe ( document , {
190
186
attributes : true ,
191
187
childList : true ,
192
188
characterData : true ,
193
189
subtree : true
194
190
} ) ;
195
191
}
196
192
197
- this . _listenersEnabled = true ;
193
+ this . listenersEnabled_ = true ;
198
194
199
195
// Don't wait for a possible event that might trigger the update of
200
196
// observers and manually initiate the update process.
201
- if ( this . _isCycleContinuous ) {
197
+ if ( this . isCycleContinuous_ ) {
202
198
this . refresh ( ) ;
203
199
}
204
200
}
@@ -209,21 +205,21 @@ export default class ResizeObserverController {
209
205
* @private
210
206
* @returns {void }
211
207
*/
212
- _removeListeners ( ) {
208
+ removeListeners_ ( ) {
213
209
// Do nothing if running in a non-browser environment or if listeners
214
210
// have been already removed.
215
- if ( ! isBrowser || ! this . _listenersEnabled ) {
211
+ if ( ! isBrowser || ! this . listenersEnabled_ ) {
216
212
return ;
217
213
}
218
214
219
215
window . removeEventListener ( 'resize' , this . refresh ) ;
220
216
document . removeEventListener ( 'transitionend' , this . refresh ) ;
221
217
222
- if ( this . _mutationsObserver ) {
223
- this . _mutationsObserver . disconnect ( ) ;
218
+ if ( this . mutationsObserver_ ) {
219
+ this . mutationsObserver_ . disconnect ( ) ;
224
220
}
225
221
226
- this . _mutationsObserver = null ;
227
- this . _listenersEnabled = false ;
222
+ this . mutationsObserver_ = null ;
223
+ this . listenersEnabled_ = false ;
228
224
}
229
225
}
0 commit comments