Skip to content

Commit

Permalink
swap resize controller and resize controller for root names
Browse files Browse the repository at this point in the history
  • Loading branch information
Dima Voytenko committed Jan 6, 2021
1 parent 2d34687 commit 62d5ae3
Show file tree
Hide file tree
Showing 6 changed files with 301 additions and 301 deletions.
52 changes: 26 additions & 26 deletions dist/ResizeObserver.js
Original file line number Diff line number Diff line change
Expand Up @@ -221,14 +221,14 @@
/**
* QQQ
*/
var ResizeObserverControllerForRoot = /** @class */ (function () {
var ResizeObserverController = /** @class */ (function () {
/**
* Creates a new instance of ResizeObserverController.
*
* @private
* @param {Node} rootNode
*/
function ResizeObserverControllerForRoot(rootNode) {
function ResizeObserverController(rootNode) {
/**
* QQQ
*
Expand Down Expand Up @@ -269,7 +269,7 @@
* @param {ResizeObserverSPI} observer - Observer to be added.
* @returns {void}
*/
ResizeObserverControllerForRoot.prototype.addObserver = function (observer) {
ResizeObserverController.prototype.addObserver = function (observer) {
if (!~this.observers_.indexOf(observer)) {
this.observers_.push(observer);
}
Expand All @@ -284,7 +284,7 @@
* @param {ResizeObserverSPI} observer - Observer to be removed.
* @returns {void}
*/
ResizeObserverControllerForRoot.prototype.removeObserver = function (observer) {
ResizeObserverController.prototype.removeObserver = function (observer) {
var observers = this.observers_;
var index = observers.indexOf(observer);
// Remove observer if it's present in registry.
Expand All @@ -302,7 +302,7 @@
*
* @returns {void}
*/
ResizeObserverControllerForRoot.prototype.refresh = function () {
ResizeObserverController.prototype.refresh = function () {
var changesDetected = this.updateObservers_();
// Continue running updates if changes have been detected as there might
// be future ones caused by CSS transitions.
Expand All @@ -318,7 +318,7 @@
* @returns {boolean} Returns "true" if any observer has detected changes in
* dimensions of it's elements.
*/
ResizeObserverControllerForRoot.prototype.updateObservers_ = function () {
ResizeObserverController.prototype.updateObservers_ = function () {
// Collect observers that have active observations.
var activeObservers = this.observers_.filter(function (observer) {
return observer.gatherActive(), observer.hasActive();
Expand All @@ -337,7 +337,7 @@
* @private
* @returns {void}
*/
ResizeObserverControllerForRoot.prototype.connect_ = function () {
ResizeObserverController.prototype.connect_ = function () {
// Do nothing if running in a non-browser environment or if listeners
// have been already added.
if (!isBrowser || this.connected_) {
Expand Down Expand Up @@ -374,7 +374,7 @@
* @private
* @returns {void}
*/
ResizeObserverControllerForRoot.prototype.disconnect_ = function () {
ResizeObserverController.prototype.disconnect_ = function () {
// Do nothing if running in a non-browser environment or if listeners
// have been already removed.
if (!isBrowser || !this.connected_) {
Expand Down Expand Up @@ -404,7 +404,7 @@
* @param {TransitionEvent} event
* @returns {void}
*/
ResizeObserverControllerForRoot.prototype.onTransitionEnd_ = function (_a) {
ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {
var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;
// Detect whether transition may affect dimensions of an element.
var isReflowProperty = transitionKeys.some(function (key) {
Expand All @@ -414,18 +414,18 @@
this.refresh();
}
};
return ResizeObserverControllerForRoot;
return ResizeObserverController;
}());

/**
* Singleton controller class which handles updates of ResizeObserver instances.
*/
var ResizeObserverController = /** @class */ (function () {
function ResizeObserverController() {
var GlobalResizeObserverController = /** @class */ (function () {
function GlobalResizeObserverController() {
/**
* QQQ
*
* @private {Map<Node, ResizeObserverControllerForRoot>}
* @private {Map<Node, ResizeObserverController>}
*/
this.rootNodeControllers_ = typeof WeakMap !== 'undefined' ? new WeakMap() : new Map();
}
Expand All @@ -436,10 +436,10 @@
* @param {ResizeObserverSPI} observer - Observer to be added.
* @returns {void}
*/
ResizeObserverController.prototype.addObserver = function (rootNode, observer) {
GlobalResizeObserverController.prototype.addObserver = function (rootNode, observer) {
var rootNodeController = this.rootNodeControllers_.get(rootNode);
if (!rootNodeController) {
rootNodeController = new ResizeObserverControllerForRoot(rootNode);
rootNodeController = new ResizeObserverController(rootNode);
this.rootNodeControllers_.set(rootNode, rootNodeController);
}
rootNodeController.addObserver(observer);
Expand All @@ -451,7 +451,7 @@
* @param {ResizeObserverSPI} observer - Observer to be removed.
* @returns {void}
*/
ResizeObserverController.prototype.removeObserver = function (rootNode, observer) {
GlobalResizeObserverController.prototype.removeObserver = function (rootNode, observer) {
var rootNodeController = this.rootNodeControllers_.get(rootNode);
if (rootNodeController) {
rootNodeController.removeObserver(observer);
Expand All @@ -464,30 +464,30 @@
* @param {Node} rootNode - QQQ
* @returns {void}
*/
ResizeObserverController.prototype.refresh = function (rootNode) {
GlobalResizeObserverController.prototype.refresh = function (rootNode) {
var rootNodeController = this.rootNodeControllers_.get(rootNode);
if (rootNodeController) {
rootNodeController.refresh();
}
};
/**
* Returns instance of the ResizeObserverController.
* Returns instance of the GlobalResizeObserverController.
*
* @returns {ResizeObserverController}
* @returns {GlobalResizeObserverController}
*/
ResizeObserverController.getInstance = function () {
GlobalResizeObserverController.getInstance = function () {
if (!this.instance_) {
this.instance_ = new ResizeObserverController();
this.instance_ = new GlobalResizeObserverController();
}
return this.instance_;
};
/**
* Holds reference to the controller's instance.
*
* @private {ResizeObserverController}
* @private {GlobalResizeObserverController}
*/
ResizeObserverController.instance_ = null;
return ResizeObserverController;
GlobalResizeObserverController.instance_ = null;
return GlobalResizeObserverController;
}());

/**
Expand Down Expand Up @@ -834,7 +834,7 @@
*
* @param {ResizeObserverCallback} callback - Callback function that is invoked
* when one of the observed elements changes it's content dimensions.
* @param {ResizeObserverController} controller - Controller instance which
* @param {GlobalResizeObserverController} controller - Controller instance which
* is responsible for the updates of observer.
* @param {ResizeObserver} callbackCtx - Reference to the public
* ResizeObserver instance which will be passed to callback function.
Expand Down Expand Up @@ -1092,7 +1092,7 @@
if (!arguments.length) {
throw new TypeError('1 argument required, but only 0 present.');
}
var controller = ResizeObserverController.getInstance();
var controller = GlobalResizeObserverController.getInstance();
var observer = new ResizeObserverSPI(callback, controller, this);
observers.set(this, observer);
}
Expand Down
80 changes: 80 additions & 0 deletions src/GlobalResizeObserverController.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
import ResizeObserverController from './ResizeObserverController.js';

/**
* Singleton controller class which handles updates of ResizeObserver instances.
*/
export default class GlobalResizeObserverController {
/**
* QQQ
*
* @private {Map<Node, ResizeObserverController>}
*/
rootNodeControllers_ = typeof WeakMap !== 'undefined' ? new WeakMap() : new Map();

/**
* Holds reference to the controller's instance.
*
* @private {GlobalResizeObserverController}
*/
static instance_ = null;

/**
* Adds observer to observers list.
*
* @param {Node} rootNode - QQQ
* @param {ResizeObserverSPI} observer - Observer to be added.
* @returns {void}
*/
addObserver(rootNode, observer) {
let rootNodeController = this.rootNodeControllers_.get(rootNode);

if (!rootNodeController) {
rootNodeController = new ResizeObserverController(rootNode);
this.rootNodeControllers_.set(rootNode, rootNodeController);
}
rootNodeController.addObserver(observer);
}

/**
* Removes observer from observers list.
*
* @param {Node} rootNode - QQQ
* @param {ResizeObserverSPI} observer - Observer to be removed.
* @returns {void}
*/
removeObserver(rootNode, observer) {
const rootNodeController = this.rootNodeControllers_.get(rootNode);

if (rootNodeController) {
rootNodeController.removeObserver(observer);
}
}

/**
* Invokes the update of observers. It will continue running updates insofar
* it detects changes.
*
* @param {Node} rootNode - QQQ
* @returns {void}
*/
refresh(rootNode) {
const rootNodeController = this.rootNodeControllers_.get(rootNode);

if (rootNodeController) {
rootNodeController.refresh();
}
}

/**
* Returns instance of the GlobalResizeObserverController.
*
* @returns {GlobalResizeObserverController}
*/
static getInstance() {
if (!this.instance_) {
this.instance_ = new GlobalResizeObserverController();
}

return this.instance_;
}
}
4 changes: 2 additions & 2 deletions src/ResizeObserver.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import {Map} from './shims/es6-collections.js';
import ResizeObserverController from './ResizeObserverController.js';
import GlobalResizeObserverController from './GlobalResizeObserverController.js';
import ResizeObserverSPI from './ResizeObserverSPI.js';

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

const controller = ResizeObserverController.getInstance();
const controller = GlobalResizeObserverController.getInstance();
const observer = new ResizeObserverSPI(callback, controller, this);

observers.set(this, observer);
Expand Down
Loading

0 comments on commit 62d5ae3

Please sign in to comment.