Skip to content

Commit 62d5ae3

Browse files
author
Dima Voytenko
committed
swap resize controller and resize controller for root names
1 parent 2d34687 commit 62d5ae3

File tree

6 files changed

+301
-301
lines changed

6 files changed

+301
-301
lines changed

dist/ResizeObserver.js

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -221,14 +221,14 @@
221221
/**
222222
* QQQ
223223
*/
224-
var ResizeObserverControllerForRoot = /** @class */ (function () {
224+
var ResizeObserverController = /** @class */ (function () {
225225
/**
226226
* Creates a new instance of ResizeObserverController.
227227
*
228228
* @private
229229
* @param {Node} rootNode
230230
*/
231-
function ResizeObserverControllerForRoot(rootNode) {
231+
function ResizeObserverController(rootNode) {
232232
/**
233233
* QQQ
234234
*
@@ -269,7 +269,7 @@
269269
* @param {ResizeObserverSPI} observer - Observer to be added.
270270
* @returns {void}
271271
*/
272-
ResizeObserverControllerForRoot.prototype.addObserver = function (observer) {
272+
ResizeObserverController.prototype.addObserver = function (observer) {
273273
if (!~this.observers_.indexOf(observer)) {
274274
this.observers_.push(observer);
275275
}
@@ -284,7 +284,7 @@
284284
* @param {ResizeObserverSPI} observer - Observer to be removed.
285285
* @returns {void}
286286
*/
287-
ResizeObserverControllerForRoot.prototype.removeObserver = function (observer) {
287+
ResizeObserverController.prototype.removeObserver = function (observer) {
288288
var observers = this.observers_;
289289
var index = observers.indexOf(observer);
290290
// Remove observer if it's present in registry.
@@ -302,7 +302,7 @@
302302
*
303303
* @returns {void}
304304
*/
305-
ResizeObserverControllerForRoot.prototype.refresh = function () {
305+
ResizeObserverController.prototype.refresh = function () {
306306
var changesDetected = this.updateObservers_();
307307
// Continue running updates if changes have been detected as there might
308308
// be future ones caused by CSS transitions.
@@ -318,7 +318,7 @@
318318
* @returns {boolean} Returns "true" if any observer has detected changes in
319319
* dimensions of it's elements.
320320
*/
321-
ResizeObserverControllerForRoot.prototype.updateObservers_ = function () {
321+
ResizeObserverController.prototype.updateObservers_ = function () {
322322
// Collect observers that have active observations.
323323
var activeObservers = this.observers_.filter(function (observer) {
324324
return observer.gatherActive(), observer.hasActive();
@@ -337,7 +337,7 @@
337337
* @private
338338
* @returns {void}
339339
*/
340-
ResizeObserverControllerForRoot.prototype.connect_ = function () {
340+
ResizeObserverController.prototype.connect_ = function () {
341341
// Do nothing if running in a non-browser environment or if listeners
342342
// have been already added.
343343
if (!isBrowser || this.connected_) {
@@ -374,7 +374,7 @@
374374
* @private
375375
* @returns {void}
376376
*/
377-
ResizeObserverControllerForRoot.prototype.disconnect_ = function () {
377+
ResizeObserverController.prototype.disconnect_ = function () {
378378
// Do nothing if running in a non-browser environment or if listeners
379379
// have been already removed.
380380
if (!isBrowser || !this.connected_) {
@@ -404,7 +404,7 @@
404404
* @param {TransitionEvent} event
405405
* @returns {void}
406406
*/
407-
ResizeObserverControllerForRoot.prototype.onTransitionEnd_ = function (_a) {
407+
ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {
408408
var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;
409409
// Detect whether transition may affect dimensions of an element.
410410
var isReflowProperty = transitionKeys.some(function (key) {
@@ -414,18 +414,18 @@
414414
this.refresh();
415415
}
416416
};
417-
return ResizeObserverControllerForRoot;
417+
return ResizeObserverController;
418418
}());
419419

420420
/**
421421
* Singleton controller class which handles updates of ResizeObserver instances.
422422
*/
423-
var ResizeObserverController = /** @class */ (function () {
424-
function ResizeObserverController() {
423+
var GlobalResizeObserverController = /** @class */ (function () {
424+
function GlobalResizeObserverController() {
425425
/**
426426
* QQQ
427427
*
428-
* @private {Map<Node, ResizeObserverControllerForRoot>}
428+
* @private {Map<Node, ResizeObserverController>}
429429
*/
430430
this.rootNodeControllers_ = typeof WeakMap !== 'undefined' ? new WeakMap() : new Map();
431431
}
@@ -436,10 +436,10 @@
436436
* @param {ResizeObserverSPI} observer - Observer to be added.
437437
* @returns {void}
438438
*/
439-
ResizeObserverController.prototype.addObserver = function (rootNode, observer) {
439+
GlobalResizeObserverController.prototype.addObserver = function (rootNode, observer) {
440440
var rootNodeController = this.rootNodeControllers_.get(rootNode);
441441
if (!rootNodeController) {
442-
rootNodeController = new ResizeObserverControllerForRoot(rootNode);
442+
rootNodeController = new ResizeObserverController(rootNode);
443443
this.rootNodeControllers_.set(rootNode, rootNodeController);
444444
}
445445
rootNodeController.addObserver(observer);
@@ -451,7 +451,7 @@
451451
* @param {ResizeObserverSPI} observer - Observer to be removed.
452452
* @returns {void}
453453
*/
454-
ResizeObserverController.prototype.removeObserver = function (rootNode, observer) {
454+
GlobalResizeObserverController.prototype.removeObserver = function (rootNode, observer) {
455455
var rootNodeController = this.rootNodeControllers_.get(rootNode);
456456
if (rootNodeController) {
457457
rootNodeController.removeObserver(observer);
@@ -464,30 +464,30 @@
464464
* @param {Node} rootNode - QQQ
465465
* @returns {void}
466466
*/
467-
ResizeObserverController.prototype.refresh = function (rootNode) {
467+
GlobalResizeObserverController.prototype.refresh = function (rootNode) {
468468
var rootNodeController = this.rootNodeControllers_.get(rootNode);
469469
if (rootNodeController) {
470470
rootNodeController.refresh();
471471
}
472472
};
473473
/**
474-
* Returns instance of the ResizeObserverController.
474+
* Returns instance of the GlobalResizeObserverController.
475475
*
476-
* @returns {ResizeObserverController}
476+
* @returns {GlobalResizeObserverController}
477477
*/
478-
ResizeObserverController.getInstance = function () {
478+
GlobalResizeObserverController.getInstance = function () {
479479
if (!this.instance_) {
480-
this.instance_ = new ResizeObserverController();
480+
this.instance_ = new GlobalResizeObserverController();
481481
}
482482
return this.instance_;
483483
};
484484
/**
485485
* Holds reference to the controller's instance.
486486
*
487-
* @private {ResizeObserverController}
487+
* @private {GlobalResizeObserverController}
488488
*/
489-
ResizeObserverController.instance_ = null;
490-
return ResizeObserverController;
489+
GlobalResizeObserverController.instance_ = null;
490+
return GlobalResizeObserverController;
491491
}());
492492

493493
/**
@@ -834,7 +834,7 @@
834834
*
835835
* @param {ResizeObserverCallback} callback - Callback function that is invoked
836836
* when one of the observed elements changes it's content dimensions.
837-
* @param {ResizeObserverController} controller - Controller instance which
837+
* @param {GlobalResizeObserverController} controller - Controller instance which
838838
* is responsible for the updates of observer.
839839
* @param {ResizeObserver} callbackCtx - Reference to the public
840840
* ResizeObserver instance which will be passed to callback function.
@@ -1092,7 +1092,7 @@
10921092
if (!arguments.length) {
10931093
throw new TypeError('1 argument required, but only 0 present.');
10941094
}
1095-
var controller = ResizeObserverController.getInstance();
1095+
var controller = GlobalResizeObserverController.getInstance();
10961096
var observer = new ResizeObserverSPI(callback, controller, this);
10971097
observers.set(this, observer);
10981098
}
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
import ResizeObserverController from './ResizeObserverController.js';
2+
3+
/**
4+
* Singleton controller class which handles updates of ResizeObserver instances.
5+
*/
6+
export default class GlobalResizeObserverController {
7+
/**
8+
* QQQ
9+
*
10+
* @private {Map<Node, ResizeObserverController>}
11+
*/
12+
rootNodeControllers_ = typeof WeakMap !== 'undefined' ? new WeakMap() : new Map();
13+
14+
/**
15+
* Holds reference to the controller's instance.
16+
*
17+
* @private {GlobalResizeObserverController}
18+
*/
19+
static instance_ = null;
20+
21+
/**
22+
* Adds observer to observers list.
23+
*
24+
* @param {Node} rootNode - QQQ
25+
* @param {ResizeObserverSPI} observer - Observer to be added.
26+
* @returns {void}
27+
*/
28+
addObserver(rootNode, observer) {
29+
let rootNodeController = this.rootNodeControllers_.get(rootNode);
30+
31+
if (!rootNodeController) {
32+
rootNodeController = new ResizeObserverController(rootNode);
33+
this.rootNodeControllers_.set(rootNode, rootNodeController);
34+
}
35+
rootNodeController.addObserver(observer);
36+
}
37+
38+
/**
39+
* Removes observer from observers list.
40+
*
41+
* @param {Node} rootNode - QQQ
42+
* @param {ResizeObserverSPI} observer - Observer to be removed.
43+
* @returns {void}
44+
*/
45+
removeObserver(rootNode, observer) {
46+
const rootNodeController = this.rootNodeControllers_.get(rootNode);
47+
48+
if (rootNodeController) {
49+
rootNodeController.removeObserver(observer);
50+
}
51+
}
52+
53+
/**
54+
* Invokes the update of observers. It will continue running updates insofar
55+
* it detects changes.
56+
*
57+
* @param {Node} rootNode - QQQ
58+
* @returns {void}
59+
*/
60+
refresh(rootNode) {
61+
const rootNodeController = this.rootNodeControllers_.get(rootNode);
62+
63+
if (rootNodeController) {
64+
rootNodeController.refresh();
65+
}
66+
}
67+
68+
/**
69+
* Returns instance of the GlobalResizeObserverController.
70+
*
71+
* @returns {GlobalResizeObserverController}
72+
*/
73+
static getInstance() {
74+
if (!this.instance_) {
75+
this.instance_ = new GlobalResizeObserverController();
76+
}
77+
78+
return this.instance_;
79+
}
80+
}

src/ResizeObserver.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import {Map} from './shims/es6-collections.js';
2-
import ResizeObserverController from './ResizeObserverController.js';
2+
import GlobalResizeObserverController from './GlobalResizeObserverController.js';
33
import ResizeObserverSPI from './ResizeObserverSPI.js';
44

55
// Registry of internal observers. If WeakMap is not available use current shim
@@ -26,7 +26,7 @@ class ResizeObserver {
2626
throw new TypeError('1 argument required, but only 0 present.');
2727
}
2828

29-
const controller = ResizeObserverController.getInstance();
29+
const controller = GlobalResizeObserverController.getInstance();
3030
const observer = new ResizeObserverSPI(callback, controller, this);
3131

3232
observers.set(this, observer);

0 commit comments

Comments
 (0)