40 lines
1.8 KiB
JavaScript
40 lines
1.8 KiB
JavaScript
|
import { ResizeObserverController } from './ResizeObserverController';
|
||
|
import { isElement } from './utils/element';
|
||
|
var ResizeObserver = (function () {
|
||
|
function ResizeObserver(callback) {
|
||
|
if (arguments.length === 0) {
|
||
|
throw new TypeError("Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.");
|
||
|
}
|
||
|
if (typeof callback !== 'function') {
|
||
|
throw new TypeError("Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.");
|
||
|
}
|
||
|
ResizeObserverController.connect(this, callback);
|
||
|
}
|
||
|
ResizeObserver.prototype.observe = function (target, options) {
|
||
|
if (arguments.length === 0) {
|
||
|
throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.");
|
||
|
}
|
||
|
if (!isElement(target)) {
|
||
|
throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element");
|
||
|
}
|
||
|
ResizeObserverController.observe(this, target, options);
|
||
|
};
|
||
|
ResizeObserver.prototype.unobserve = function (target) {
|
||
|
if (arguments.length === 0) {
|
||
|
throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.");
|
||
|
}
|
||
|
if (!isElement(target)) {
|
||
|
throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element");
|
||
|
}
|
||
|
ResizeObserverController.unobserve(this, target);
|
||
|
};
|
||
|
ResizeObserver.prototype.disconnect = function () {
|
||
|
ResizeObserverController.disconnect(this);
|
||
|
};
|
||
|
ResizeObserver.toString = function () {
|
||
|
return 'function ResizeObserver () { [polyfill code] }';
|
||
|
};
|
||
|
return ResizeObserver;
|
||
|
}());
|
||
|
export { ResizeObserver };
|