Files
ueblueprint/js/input/Copy.js
barsdeveloper 7704850cf6 Refactoring
2022-01-05 21:48:45 +01:00

27 lines
808 B
JavaScript
Executable File

import Context from "./Context"
import ObjectSerializer from "../serialization/ObjectSerializer"
export default class Copy extends Context {
constructor(target, blueprint, options = {}) {
options.wantsFocusCallback = true
super(target, blueprint, options)
this.serializer = new ObjectSerializer()
let self = this
this.copyHandler = _ => self.copied()
}
blueprintFocused() {
document.body.addEventListener("copy", this.copyHandler)
}
blueprintUnfocused() {
document.body.removeEventListener("copy", this.copyHandler)
}
copied() {
const value = this.blueprint.getNodes(true).map(node => this.serializer.write(node.entity)).join("\n")
navigator.clipboard.writeText(value)
}
}