UNPKG

slightning-coco-widget

Version:

SLIGHTNING 的 CoCo 控件框架。

104 lines (103 loc) 2.72 kB
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" }; } }