armisa-models
Version:
models of armisa!
113 lines (112 loc) • 5.98 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.StructureCodingFactory = exports.StructureCoding = void 0;
class StructureCoding {
constructor(coding, maxLevel, maxCodingLen, levelLen1, levelLen2, levelLen3, levelLen4, levelLen5, levelLen6, levelLen7, levelLen8, levelLen9, untilLevelLen1, untilLevelLen2, untilLevelLen3, untilLevelLen4, untilLevelLen5, untilLevelLen6, untilLevelLen7, untilLevelLen8, untilLevelLen9) {
this.coding = coding;
this.maxLevel = maxLevel;
this.maxCodingLen = maxCodingLen;
this.levelLen1 = levelLen1;
this.levelLen2 = levelLen2;
this.levelLen3 = levelLen3;
this.levelLen4 = levelLen4;
this.levelLen5 = levelLen5;
this.levelLen6 = levelLen6;
this.levelLen7 = levelLen7;
this.levelLen8 = levelLen8;
this.levelLen9 = levelLen9;
this.untilLevelLen1 = untilLevelLen1;
this.untilLevelLen2 = untilLevelLen2;
this.untilLevelLen3 = untilLevelLen3;
this.untilLevelLen4 = untilLevelLen4;
this.untilLevelLen5 = untilLevelLen5;
this.untilLevelLen6 = untilLevelLen6;
this.untilLevelLen7 = untilLevelLen7;
this.untilLevelLen8 = untilLevelLen8;
this.untilLevelLen9 = untilLevelLen9;
this.normalWidth = 0;
this.editedWidth = 0;
this.lengthOfLevel = (level) => {
return level === 1
? this.untilLevelLen1
: level === 2
? this.untilLevelLen2
: level === 3
? this.untilLevelLen3
: level === 4
? this.untilLevelLen4
: level === 5
? this.untilLevelLen5
: level === 6
? this.untilLevelLen6
: level === 7
? this.untilLevelLen7
: level === 8
? this.untilLevelLen8
: level === 9
? this.untilLevelLen9
: this.untilLevelLen9 + 1;
};
this.stateOfLevel = (value, level) => {
if (!value || value === '') {
return 'clear';
}
return value.length === this.lengthOfLevel(level) ? 'ok' : 'dirty';
};
this.stateAndLevelOfCode = (value) => {
if (typeof value !== 'string' || value.length === 0) {
return ['clear', 0];
}
else if (value.length <= this.untilLevelLen1) {
return [this.stateOfLevel(value, 1), 1];
}
else if (value.length <= this.untilLevelLen2) {
return [this.stateOfLevel(value, 2), 2];
}
else if (value.length <= this.untilLevelLen3) {
return [this.stateOfLevel(value, 3), 3];
}
else if (value.length <= this.untilLevelLen4) {
return [this.stateOfLevel(value, 4), 4];
}
else if (value.length <= this.untilLevelLen5) {
return [this.stateOfLevel(value, 5), 5];
}
else if (value.length <= this.untilLevelLen6) {
return [this.stateOfLevel(value, 6), 6];
}
else if (value.length <= this.untilLevelLen7) {
return [this.stateOfLevel(value, 7), 7];
}
else if (value.length <= this.untilLevelLen8) {
return [this.stateOfLevel(value, 8), 8];
}
else if (value.length <= this.untilLevelLen9) {
return [this.stateOfLevel(value, 9), 9];
}
else {
return ['dirty', undefined];
}
};
this.changeEventOfCode = (value) => {
const [state, levelOfCode] = this.stateAndLevelOfCode(value);
return { code: value, state: state, level: levelOfCode };
};
}
static buildNew(coding) {
return new StructureCoding(coding.coding, coding.maxLevel, coding.maxCodingLen, coding.levelLen1, coding.levelLen2, coding.levelLen3, coding.levelLen4, coding.levelLen5, coding.levelLen6, coding.levelLen7, coding.levelLen8, coding.levelLen9, coding.untilLevelLen1, coding.untilLevelLen2, coding.untilLevelLen3, coding.untilLevelLen4, coding.untilLevelLen5, coding.untilLevelLen6, coding.untilLevelLen7, coding.untilLevelLen8, coding.untilLevelLen9);
}
}
exports.StructureCoding = StructureCoding;
class StructureCodingFactory {
static deserialize(json) {
return new StructureCoding(json.coding, json.maxLevel, json.maxCodingLen, json.levelLen1, json.levelLen2, json.levelLen3, json.levelLen4, json.levelLen5, json.levelLen6, json.levelLen7, json.levelLen8, json.levelLen9, json.untilLevelLen1, json.untilLevelLen2, json.untilLevelLen3, json.untilLevelLen4, json.untilLevelLen5, json.untilLevelLen6, json.untilLevelLen7, json.untilLevelLen8, json.untilLevelLen9);
}
static empty() {
return new StructureCoding('', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
}
static createCopy(old) {
return new StructureCoding(old.coding, old.maxLevel, old.maxCodingLen, old.levelLen1, old.levelLen2, old.levelLen3, old.levelLen4, old.levelLen5, old.levelLen6, old.levelLen7, old.levelLen8, old.levelLen9, old.untilLevelLen1, old.untilLevelLen2, old.untilLevelLen3, old.untilLevelLen4, old.untilLevelLen5, old.untilLevelLen6, old.untilLevelLen7, old.untilLevelLen8, old.untilLevelLen9);
}
}
exports.StructureCodingFactory = StructureCodingFactory;