aboutsummaryrefslogtreecommitdiffstats
path: root/vanilla/node_modules/jsdom/lib/jsdom/living/nodes/SVGSVGElement-impl.js
diff options
context:
space:
mode:
Diffstat (limited to 'vanilla/node_modules/jsdom/lib/jsdom/living/nodes/SVGSVGElement-impl.js')
-rw-r--r--vanilla/node_modules/jsdom/lib/jsdom/living/nodes/SVGSVGElement-impl.js47
1 files changed, 47 insertions, 0 deletions
diff --git a/vanilla/node_modules/jsdom/lib/jsdom/living/nodes/SVGSVGElement-impl.js b/vanilla/node_modules/jsdom/lib/jsdom/living/nodes/SVGSVGElement-impl.js
new file mode 100644
index 0000000..1a86f3a
--- /dev/null
+++ b/vanilla/node_modules/jsdom/lib/jsdom/living/nodes/SVGSVGElement-impl.js
@@ -0,0 +1,47 @@
+"use strict";
+
+const { mixin } = require("../../utils");
+const SVGNumber = require("../generated/SVGNumber");
+const SVGRect = require("../generated/SVGRect");
+const SVGGraphicsElementImpl = require("./SVGGraphicsElement-impl").implementation;
+const WindowEventHandlersImpl = require("./WindowEventHandlers-impl").implementation;
+const { domSymbolTree } = require("../helpers/internal-constants");
+const { ELEMENT_NODE } = require("../node-type");
+
+class SVGSVGElementImpl extends SVGGraphicsElementImpl {
+ constructor(globalObject, args, privateData) {
+ super(globalObject, args, privateData);
+ this._proxyWindowEventsToWindow();
+ }
+
+ createSVGNumber() {
+ return SVGNumber.createImpl(this._globalObject, [], {});
+ }
+
+ createSVGRect() {
+ return SVGRect.createImpl(this._globalObject, [], {});
+ }
+
+ getElementById(elementId) {
+ // TODO: optimize with _ids caching trick; see Document class.
+ for (const node of domSymbolTree.treeIterator(this)) {
+ if (node.nodeType === ELEMENT_NODE && node.getAttributeNS(null, "id") === elementId) {
+ return node;
+ }
+ }
+ return null;
+ }
+
+ suspendRedraw() {
+ return 1;
+ }
+ unsuspendRedraw() {}
+ unsuspendRedrawAll() {}
+ forceRedraw() {}
+}
+
+mixin(SVGSVGElementImpl.prototype, WindowEventHandlersImpl.prototype);
+
+module.exports = {
+ implementation: SVGSVGElementImpl
+};