diff options
author | Ulrich-Matthias Schäfer <ulima.ums@googlemail.com> | 2018-11-06 13:48:05 +0100 |
---|---|---|
committer | Ulrich-Matthias Schäfer <ulima.ums@googlemail.com> | 2018-11-06 13:48:05 +0100 |
commit | a0b13ebcacfd74b9f521110c7225bb404325bcd3 (patch) | |
tree | a07c5cc422645e31d7dfef81ce4e54f03f0945f6 /src/elements/A.js | |
parent | 9f2696e8a2cf7e4eebc1cc7e31027fe2070094fa (diff) | |
download | svg.js-a0b13ebcacfd74b9f521110c7225bb404325bcd3.tar.gz svg.js-a0b13ebcacfd74b9f521110c7225bb404325bcd3.zip |
reordered modules, add es6 build
Diffstat (limited to 'src/elements/A.js')
-rw-r--r-- | src/elements/A.js | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/elements/A.js b/src/elements/A.js new file mode 100644 index 0000000..68da597 --- /dev/null +++ b/src/elements/A.js @@ -0,0 +1,43 @@ +import { nodeOrNew, register } from '../utils/adopter.js' +import { registerMethods } from '../utils/methods.js' +import { xlink } from '../modules/core/namespaces.js' +import Container from './Container.js' + +export default class A extends Container { + constructor (node) { + super(nodeOrNew('a', node), A) + } + + // Link url + to (url) { + return this.attr('href', url, xlink) + } + + // Link target attribute + target (target) { + return this.attr('target', target) + } +} + +registerMethods({ + Container: { + // Create a hyperlink element + link: function (url) { + return this.put(new A()).to(url) + } + }, + Element: { + // Create a hyperlink element + linkTo: function (url) { + var link = new A() + + if (typeof url === 'function') { url.call(link, link) } else { + link.to(url) + } + + return this.parent().put(link).put(this) + } + } +}) + +register(A) |