summaryrefslogtreecommitdiffstats
path: root/src/Mask.js
diff options
context:
space:
mode:
authorUlrich-Matthias Schäfer <ulima.ums@googlemail.com>2018-10-27 20:43:35 +0200
committerUlrich-Matthias Schäfer <ulima.ums@googlemail.com>2018-10-27 20:43:35 +0200
commit1c75fcaf02ceb144152d59557643c6fdd7264065 (patch)
tree5184af75f2fd27ca6b81c24a06b1676d17ca2c76 /src/Mask.js
parentb1b776a710d0ce0a6259043b8ce0665e205195fa (diff)
downloadsvg.js-1c75fcaf02ceb144152d59557643c6fdd7264065.tar.gz
svg.js-1c75fcaf02ceb144152d59557643c6fdd7264065.zip
resolve circular references and make example working again
Diffstat (limited to 'src/Mask.js')
-rw-r--r--src/Mask.js58
1 files changed, 30 insertions, 28 deletions
diff --git a/src/Mask.js b/src/Mask.js
index bdd6086..969fe2c 100644
--- a/src/Mask.js
+++ b/src/Mask.js
@@ -1,9 +1,9 @@
-import Container from './Container.js'
-import Element from './Element.js'
+import Base from './Base.js'
import {nodeOrNew} from './tools.js'
import find from './selector.js'
+import {remove} from './Element.js'
-export default class Mask extends Container {
+export default class Mask extends Base {
// Initialize node
constructor (node) {
super(nodeOrNew('mask', node))
@@ -17,7 +17,7 @@ export default class Mask extends Container {
})
// remove mask from parent
- return super.remove()
+ return remove.call(this)
}
targets () {
@@ -26,30 +26,32 @@ export default class Mask extends Container {
}
-addFactory(Container, {
- mask () {
- return this.defs().put(new Mask())
- }
-})
-
-extend(Element, {
- // Distribute mask to svg element
- maskWith (element) {
- // use given mask or create a new one
- var masker = element instanceof Mask
- ? element
- : this.parent().mask().add(element)
-
- // apply mask
- return this.attr('mask', 'url("#' + masker.id() + '")')
- },
- // Unmask element
- unmask () {
- return this.attr('mask', null)
+Mask.constructors = {
+ Container: {
+ mask () {
+ return this.defs().put(new Mask())
+ }
},
-
- masker () {
- return this.reference('mask')
+ Element: {
+ // Distribute mask to svg element
+ maskWith (element) {
+ // use given mask or create a new one
+ var masker = element instanceof Mask
+ ? element
+ : this.parent().mask().add(element)
+
+ // apply mask
+ return this.attr('mask', 'url("#' + masker.id() + '")')
+ },
+
+ // Unmask element
+ unmask () {
+ return this.attr('mask', null)
+ },
+
+ masker () {
+ return this.reference('mask')
+ }
}
-})
+}