Simple serialization entities fixes and tests

This commit is contained in:
barsdeveloper
2024-03-30 20:07:26 +01:00
parent acedafc339
commit 279163cd54
24 changed files with 315 additions and 146 deletions

View File

@@ -15,9 +15,8 @@ export default class IDraggableTemplate extends ITemplate {
}
createDraggableObject() {
return new MouseMoveDraggable(this.element, this.blueprint, {
draggableElement: this.getDraggableElement(),
})
const draggableElement = this.getDraggableElement()
return new MouseMoveDraggable(this.element, this.blueprint, { draggableElement })
}
createInputObjects() {

View File

@@ -1,7 +1,7 @@
import { html } from "lit"
import Configuration from "../../Configuration.js"
import IResizeableTemplate from "../IResizeableTemplate.js"
import Utility from "../../Utility.js"
import IResizeableTemplate from "../IResizeableTemplate.js"
export default class CommentNodeTemplate extends IResizeableTemplate {

View File

@@ -34,5 +34,6 @@ export default class INumericPinTemplate extends IInputPinTemplate {
*/
setDefaultValue(values = [], rawValues) {
this.element.setDefaultValue(/** @type {T} */(values[0]))
this.element.requestUpdate()
}
}

View File

@@ -1,19 +1,25 @@
import IntPinTemplate from "./IntPinTemplate.js"
import { html } from "lit"
import Integer64Entity from "../../entity/Integer64Entity.js"
import INumericPinTemplate from "./INumericPinTemplate.js"
export default class Int64PinTemplate extends IntPinTemplate {
/** @extends INumericPinTemplate<Integer64Entity> */
export default class Int64PinTemplate extends INumericPinTemplate {
/** @param {String[]} values */
setInputs(values = [], updateDefaultValue = false) {
if (!values || values.length == 0) {
values = [this.getInput()]
}
super.setInputs(values, false)
if (updateDefaultValue) {
if (!values[0].match(/[\-\+]?[0-9]+/)) {
return
}
const parsedValues = [BigInt(values[0])]
this.setDefaultValue(parsedValues, values)
}
/**
* @param {Number[]} values
* @param {String[]} rawValues
*/
setDefaultValue(values = [], rawValues) {
this.element.setDefaultValue(new Integer64Entity(values[0]))
this.element.requestUpdate()
}
renderInput() {
return html`
<div class="ueb-pin-input-wrapper ueb-pin-input">
<ueb-input .singleLine="${true}" .innerText="${this.element.getDefaultValue()?.toString() ?? "0"}">
</ueb-input>
</div>
`
}
}

View File

@@ -1,12 +1,16 @@
import { html } from "lit"
import INumericPinTemplate from "./INumericPinTemplate.js"
import IntegerEntity from "../../entity/IntegerEntity.js"
/** @extends INumericPinTemplate<IntegerEntity> */
export default class IntPinTemplate extends INumericPinTemplate {
setDefaultValue(values = [], rawValues = values) {
const integer = this.element.getDefaultValue(true)
integer.value = values[0]
/**
* @param {Number[]} values
* @param {String[]} rawValues
*/
setDefaultValue(values = [], rawValues) {
this.element.setDefaultValue(new IntegerEntity(values[0]))
this.element.requestUpdate()
}