slightning-coco-widget
Version:
SLIGHTNING 的 CoCo 控件框架。
104 lines (103 loc) • 2.72 kB
JavaScript
import { betterToString } from "../../utils";
import { TypeValidateError } from "./type-validate-error";
import { typeToString } from "./utils";
export class IntegerType {
constructor(props = {}) {
var _a;
if (typeof props == "number") {
props = { defaultValue: props };
}
this.defaultValue = (_a = props.defaultValue) !== null && _a !== void 0 ? _a : 0;
this.range = props.range;
}
validate(value) {
if (typeof value != "number") {
throw new TypeValidateError(`不能将 ${betterToString(value)} 分配给 ${typeToString(this)}`, value, this);
}
if (this.range != null && !this.range.includes(value)) {
throw new TypeValidateError(`不能将 ${betterToString(value)} 分配给 ${typeToString(this)}:整数超出范围`, value, this);
}
return true;
}
getSameDirectionChildren() {
return [];
}
getReverseDirectionChildren() {
return [];
}
isVoid() {
return false;
}
typeToString() {
return "整数";
}
inlineTypeToString() {
return this.typeToString();
}
toCoCoPropertyValueTypes() {
return {
valueType: "number",
defaultValue: this.defaultValue
};
}
toCoCoMethodParamValueTypes() {
return {
valueType: "number",
defaultValue: this.defaultValue
};
}
toCoCoMethodValueTypes() {
return {
valueType: "number"
};
}
toCoCoEventParamValueTypes() {
return {
valueType: "number"
};
}
toCreationProject1PropValueTypes() {
return {
valueType: "number",
defaultValue: this.defaultValue
};
}
toCreationProject1MethodParamValueTypes() {
return {
valueType: "number",
defaultValue: this.defaultValue
};
}
toCreationProject1MethodValueTypes() {
return {
valueType: "number"
};
}
toCreationProject1EmitParamValueTypes() {
return {
valueType: "number"
};
}
toCreationProject2PropValueTypes() {
return {
valueType: "number",
defaultValue: this.defaultValue
};
}
toCreationProject2MethodParamValueTypes() {
return {
valueType: "number",
defaultValue: this.defaultValue
};
}
toCreationProject2MethodValueTypes() {
return {
valueType: "number"
};
}
toCreationProject2EmitParamValueTypes() {
return {
valueType: "number"
};
}
}