diff options
author | Ulrich-Matthias Schäfer <ulima.ums@googlemail.com> | 2018-10-27 20:43:35 +0200 |
---|---|---|
committer | Ulrich-Matthias Schäfer <ulima.ums@googlemail.com> | 2018-10-27 20:43:35 +0200 |
commit | 1c75fcaf02ceb144152d59557643c6fdd7264065 (patch) | |
tree | 5184af75f2fd27ca6b81c24a06b1676d17ca2c76 /src/Mask.js | |
parent | b1b776a710d0ce0a6259043b8ce0665e205195fa (diff) | |
download | svg.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.js | 58 |
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') + } } -}) +} |