ResizeObserver.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import { ResizeObserverController } from './ResizeObserverController';
  2. import { isElement } from './utils/element';
  3. var ResizeObserver = (function () {
  4. function ResizeObserver(callback) {
  5. if (arguments.length === 0) {
  6. throw new TypeError("Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.");
  7. }
  8. if (typeof callback !== 'function') {
  9. throw new TypeError("Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.");
  10. }
  11. ResizeObserverController.connect(this, callback);
  12. }
  13. ResizeObserver.prototype.observe = function (target, options) {
  14. if (arguments.length === 0) {
  15. throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.");
  16. }
  17. if (!isElement(target)) {
  18. throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element");
  19. }
  20. ResizeObserverController.observe(this, target, options);
  21. };
  22. ResizeObserver.prototype.unobserve = function (target) {
  23. if (arguments.length === 0) {
  24. throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.");
  25. }
  26. if (!isElement(target)) {
  27. throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element");
  28. }
  29. ResizeObserverController.unobserve(this, target);
  30. };
  31. ResizeObserver.prototype.disconnect = function () {
  32. ResizeObserverController.disconnect(this);
  33. };
  34. ResizeObserver.toString = function () {
  35. return 'function ResizeObserver () { [polyfill code] }';
  36. };
  37. return ResizeObserver;
  38. }());
  39. export { ResizeObserver };