Improved scatter closing. Added module to eslint.

This commit is contained in:
Severin Opel 2019-07-30 13:21:17 +02:00
parent 0bcf931465
commit ca2ce289aa
2 changed files with 22 additions and 9 deletions

View File

@ -3,7 +3,8 @@
"ecmaVersion": 10, "ecmaVersion": 10,
"sourceType": "module", "sourceType": "module",
"ecmaFeatures": { "ecmaFeatures": {
"impliedStrict": true "impliedStrict": true,
"modules": true
} }
}, },
"env": { "env": {

View File

@ -370,9 +370,17 @@ export class AbstractScatter extends Throwable {
} }
close() { close() {
this._callCloseCallbacks()
this._removeSelfFromScatterContainer()
}
_callCloseCallbacks() {
if (this.onClose) { if (this.onClose) {
this.onClose.forEach(callback => callback(this)) this.onClose.forEach(callback => callback(this))
}
}
_removeSelfFromScatterContainer() {
/** /**
Removes self from container when it's closed. Removes self from container when it's closed.
*/ */
@ -380,7 +388,6 @@ export class AbstractScatter extends Throwable {
this.container.remove(this) this.container.remove(this)
} }
} }
}
gesture(interaction) { gesture(interaction) {
let delta = interaction.delta() let delta = interaction.delta()
@ -1007,7 +1014,6 @@ export class DOMScatterContainer {
} }
} }
/** /**
* Removes an element from the scatter. * Removes an element from the scatter.
* *
@ -1015,9 +1021,15 @@ export class DOMScatterContainer {
* @memberof DOMScatterContainer * @memberof DOMScatterContainer
*/ */
remove(scatter) { remove(scatter) {
this.scatter.delete(scatter.element) const element = scatter.element
} if (!this.scatter.has(element))
console.warn(
`Try removing element that is not in the scatter.`,
element
)
this.scatter.delete(element)
}
/** /**
* Adds an element to the ScatterContainer. * Adds an element to the ScatterContainer.