From 7bea673b893fcef0a784c72234628d73f7ee54e0 Mon Sep 17 00:00:00 2001 From: Ivan Goethals Date: Tue, 2 Jan 2024 15:52:20 +0100 Subject: [PATCH] # Stopcontact overgezet van Keys naar Props # Nieuwe functie getLegacyKey ingevoerd omdat voor zeer oude saves er errors ontstonden bij het assignen --- builddate.js | 2 +- eendraadschema.js | 95 +++++++++++++++++++++-------------- src/List_Item/Electro_Item.ts | 10 +++- src/List_Item/Stopcontact.ts | 82 +++++++++++++++++------------- src/eendraadschema.js | 95 +++++++++++++++++++++-------------- src/main.ts | 2 +- 6 files changed, 175 insertions(+), 111 deletions(-) diff --git a/builddate.js b/builddate.js index 8222b33..5b8f61b 100644 --- a/builddate.js +++ b/builddate.js @@ -1 +1 @@ -var CONF_builddate="20240102-150647" +var CONF_builddate="20240102-155011" diff --git a/eendraadschema.js b/eendraadschema.js index 040be4b..8eaab28 100644 --- a/eendraadschema.js +++ b/eendraadschema.js @@ -412,6 +412,14 @@ var Electro_Item = /** @class */ (function (_super) { //Indien domotica gestuurde verbruiker, bool5 is de selector voor uitbreiding van de sturing met drukknop //Indien stopcontact, geeft aan dat deze in een verdeelbord zit*/ }; + Electro_Item.prototype.getLegacyKey = function (keyid) { + if ((typeof (this.keys) != 'undefined') && (this.keys.length > keyid)) { + return this.keys[keyid][2]; + } + else { + return null; + } + }; Electro_Item.prototype.getParent = function () { return _super.prototype.getParent.call(this); }; @@ -432,7 +440,7 @@ var Electro_Item = /** @class */ (function (_super) { return (this.getNumChildsWithKnownType() > 0); }; Electro_Item.prototype.isVrijeTekstZonderKader = function (item) { - return ((item.getType() == "Vrije tekst") && (item.keys[16][2] == "Zonder kader")); + return ((item.getType() == "Vrije tekst") && (item.keys[16][2] == "zonder kader")); }; Electro_Item.prototype.heeftVerbruikerAlsKind = function () { var parent = this.getParent(); @@ -3163,36 +3171,49 @@ var Stopcontact = /** @class */ (function (_super) { _this.resetKeys(); return _this; } + Stopcontact.prototype.convertLegacyKeys = function (mykeys) { + this.props.type = this.getLegacyKey(0); + this.props.is_geaard = this.getLegacyKey(1); + this.props.is_kinderveilig = this.getLegacyKey(2); + this.props.aantal = this.getLegacyKey(4); + this.props.adres = this.getLegacyKey(15); + this.props.aantal_fases_indien_meerfasig = this.getLegacyKey(16); + this.props.heeft_ingebouwde_schakelaar = this.getLegacyKey(19); + this.props.is_halfwaterdicht = this.getLegacyKey(20); + this.props.is_meerfasig = this.getLegacyKey(21); + this.props.heeft_nul_indien_meerfasig = this.getLegacyKey(25); + this.props.in_verdeelbord = this.getLegacyKey(26); + }; Stopcontact.prototype.resetKeys = function () { this.clearKeys(); - this.keys[0][2] = "Stopcontact"; // This is rather a formality as we should already have this at this stage - this.keys[1][2] = true; // Per default geaard - this.keys[2][2] = true; // Per default kinderveilig - this.keys[4][2] = "1"; // Per default 1 Stopcontact - this.keys[15][2] = ""; // Set Adres/tekst to "" when the item is cleared - this.keys[16][2] = "3"; // Indien meerfasig is de default 3 fasen - this.keys[19][2] = false; // Per default niet met ingebouwde schakelaar - this.keys[20][2] = false; // Per default niet halfwaterdicht - this.keys[21][2] = false; // Per default niet meerfasig - this.keys[25][2] = false; // Indien meerfasig, per default niet met nul - this.keys[26][2] = false; // Per default niet in verdeelbord + this.props.type = "Stopcontact"; + this.props.is_geaard = true; + this.props.is_kinderveilig = true; + this.props.aantal = "1"; + this.props.adres = ""; + this.props.aantal_fases_indien_meerfasig = "3"; + this.props.heeft_ingebouwde_schakelaar = false; + this.props.is_halfwaterdicht = false; + this.props.is_meerfasig = false; + this.props.heeft_nul_indien_meerfasig = false; + this.props.in_verdeelbord = false; }; Stopcontact.prototype.toHTML = function (mode) { var output = this.toHTMLHeader(mode); - output += " Nr: " + this.stringToHTML(10, 5) + ", " - + "Geaard: " + this.checkboxToHTML(1) + ", " - + "Kinderveiligheid: " + this.checkboxToHTML(2) + " " - + "Halfwaterdicht: " + this.checkboxToHTML(20) + ", " - + "Meerfasig: " + this.checkboxToHTML(21) + ", "; - if (this.keys[21][2]) { - output += "Aantal fasen: " + this.selectToHTML(16, ["1", "2", "3"]) + ", " - + "Met nul: " + this.checkboxToHTML(25) + ", "; + output += " Nr: " + this.stringPropToHTML('nr', 5) + ", " + + "Geaard: " + this.checkboxPropToHTML('is_geaard') + ", " + + "Kinderveiligheid: " + this.checkboxPropToHTML('is_kinderveilig') + " " + + "Halfwaterdicht: " + this.checkboxPropToHTML('is_halfwaterdicht') + ", " + + "Meerfasig: " + this.checkboxPropToHTML('is_meerfasig') + ", "; + if (this.props.is_meerfasig) { + output += "Aantal fasen: " + this.selectPropToHTML('aantal_fases_indien_meerfasig', ["1", "2", "3"]) + ", " + + "Met nul: " + this.checkboxPropToHTML('heeft_nul_indien_meerfasig') + ", "; } ; - output += "Ingebouwde schakelaar: " + this.checkboxToHTML(19) + ", " - + "Aantal: " + this.selectToHTML(4, ["1", "2", "3", "4", "5", "6"]) + ", " - + "In verdeelbord: " + this.checkboxToHTML(26) - + ", Adres/tekst: " + this.stringToHTML(15, 5); + output += "Ingebouwde schakelaar: " + this.checkboxPropToHTML('heeft_ingebouwde_schakelaar') + ", " + + "Aantal: " + this.selectPropToHTML('aantal', ["1", "2", "3", "4", "5", "6"]) + ", " + + "In verdeelbord: " + this.checkboxPropToHTML('in_verdeelbord') + + ", Adres/tekst: " + this.stringPropToHTML('adres', 5); return (output); }; Stopcontact.prototype.toSVG = function () { @@ -3203,9 +3224,9 @@ var Stopcontact = /** @class */ (function (_super) { mySVG.ydown = 25; var startx = 1; // Punt waar we aan het tekenen zijn. Schuift gaandeweg op // Teken lijnen voor meerfasig stopcontact - if (this.keys[21][2]) { + if (this.props.is_meerfasig) { mySVG.data += ''; - switch (this.keys[16][2]) { //faselijnen + switch (this.props.aantal_fases_indien_meerfasig) { //faselijnen case "1": mySVG.data += ''; break; @@ -3222,7 +3243,7 @@ var Stopcontact = /** @class */ (function (_super) { mySVG.data += ''; break; } - if (this.keys[25][2]) { //nullijn + if (this.props.heeft_nul_indien_meerfasig) { //nullijn mySVG.data += '' + ''; } @@ -3230,7 +3251,7 @@ var Stopcontact = /** @class */ (function (_super) { mySVG.xright += 34; //We schuiven alles 34 pixels op } // Teken ingebouwde schakelaar - if (this.keys[19][2]) { + if (this.props.heeft_ingebouwde_schakelaar) { mySVG.data += '' + '' + '' @@ -3239,31 +3260,31 @@ var Stopcontact = /** @class */ (function (_super) { mySVG.xright += 10; //We schuiven alles 10 pixels op } // Teken alle stopcontacten, inclusief aarding en kinderveiligheid indien van toepassing - for (var i = 0; i < this.keys[4][2]; ++i) { + for (var i = 0; i < this.props.aantal; ++i) { mySVG.data += ''; - if (this.keys[1][2]) + if (this.props.is_geaard) mySVG.data += ''; - if (this.keys[2][2]) + if (this.props.is_kinderveilig) mySVG.data += ''; startx += 20; mySVG.xright += 20; } // Teken kader indien in verdeelbord - if (this.keys[26][2]) { - mySVG.data += ''; + if (this.props.in_verdeelbord) { + mySVG.data += ''; +''; } ; // Teken halfwaterdicht indien van toepassing - if (this.keys[20][2]) - mySVG.data += 'h'; + if (this.props.is_halfwaterdicht) + mySVG.data += 'h'; // Indien het stopcontact een kind heeft, teken een streepje rechts if (this.heeftVerbruikerAlsKind()) { mySVG.data += ''; } ; // Adres helemaal onderaan plaatsen - mySVG.data += this.addAddress(mySVG, 60, 15); + mySVG.data += this.addPropAddress(mySVG, 60, 15); mySVG.data += "\n"; return (mySVG); }; @@ -5433,7 +5454,7 @@ function import_to_structure(mystring, redraw) { if (version < 2) { // Versies < 2 gebruikten enkel keys en geen props dus de code hieronder met keys zal altijd werken for (var i = 0; i < mystructure.length; i++) { // Breedte van Vrije tekst velden zonder kader met 30 verhogen sinds 16/12/2023 - if ((structure.data[i].keys[0][2] === "Vrije tekst") && (structure.data[i].keys[16][2] != "verbruiker")) { + if ((structure.data[i].getType() === "Vrije tekst") && (structure.data[i].keys[16][2] != "verbruiker")) { if (Number(structure.data[i].keys[22][2]) > 0) structure.data[i].keys[22][2] = String(Number(structure.data[i].keys[22][2]) + 30); else diff --git a/src/List_Item/Electro_Item.ts b/src/List_Item/Electro_Item.ts index 8567c5b..c789a35 100644 --- a/src/List_Item/Electro_Item.ts +++ b/src/List_Item/Electro_Item.ts @@ -88,6 +88,14 @@ class Electro_Item extends List_Item { //Indien stopcontact, geeft aan dat deze in een verdeelbord zit*/ } + getLegacyKey(keyid: number) { + if ( (typeof(this.keys) != 'undefined') && (this.keys.length>keyid) ) { + return this.keys[keyid][2]; + } else { + return null; + } + } + getParent(): Electro_Item { // Function that returns an Electro_Item and not a List_Item return(super.getParent() as Electro_Item); } @@ -111,7 +119,7 @@ class Electro_Item extends List_Item { } isVrijeTekstZonderKader(item: Electro_Item) : boolean { - return ((item.getType() == "Vrije tekst") && (item.keys[16][2] == "Zonder kader")); + return ((item.getType() == "Vrije tekst") && (item.keys[16][2] == "zonder kader")); } heeftVerbruikerAlsKind() : boolean { diff --git a/src/List_Item/Stopcontact.ts b/src/List_Item/Stopcontact.ts index 38ee67d..973a51b 100644 --- a/src/List_Item/Stopcontact.ts +++ b/src/List_Item/Stopcontact.ts @@ -5,39 +5,53 @@ class Stopcontact extends Electro_Item { this.resetKeys(); } + convertLegacyKeys(mykeys: Array<[string,string,any]>) { + this.props.type = this.getLegacyKey(0); + this.props.is_geaard = this.getLegacyKey(1); + this.props.is_kinderveilig = this.getLegacyKey(2); + this.props.aantal = this.getLegacyKey(4); + this.props.adres = this.getLegacyKey(15); + this.props.aantal_fases_indien_meerfasig = this.getLegacyKey(16); + this.props.heeft_ingebouwde_schakelaar = this.getLegacyKey(19); + this.props.is_halfwaterdicht = this.getLegacyKey(20); + this.props.is_meerfasig = this.getLegacyKey(21); + this.props.heeft_nul_indien_meerfasig = this.getLegacyKey(25); + this.props.in_verdeelbord = this.getLegacyKey(26); + } + resetKeys() { this.clearKeys(); - this.keys[0][2] = "Stopcontact"; // This is rather a formality as we should already have this at this stage - this.keys[1][2] = true; // Per default geaard - this.keys[2][2] = true; // Per default kinderveilig - this.keys[4][2] = "1"; // Per default 1 Stopcontact - this.keys[15][2] = ""; // Set Adres/tekst to "" when the item is cleared - this.keys[16][2] = "3"; // Indien meerfasig is de default 3 fasen - this.keys[19][2] = false; // Per default niet met ingebouwde schakelaar - this.keys[20][2] = false; // Per default niet halfwaterdicht - this.keys[21][2] = false; // Per default niet meerfasig - this.keys[25][2] = false; // Indien meerfasig, per default niet met nul - this.keys[26][2] = false; // Per default niet in verdeelbord + this.props.type = "Stopcontact"; + this.props.is_geaard = true; + this.props.is_kinderveilig = true; + this.props.aantal = "1"; + this.props.adres = ""; + this.props.aantal_fases_indien_meerfasig = "3"; + this.props.heeft_ingebouwde_schakelaar = false; + this.props.is_halfwaterdicht = false; + this.props.is_meerfasig = false; + this.props.heeft_nul_indien_meerfasig = false; + this.props.in_verdeelbord = false; } toHTML(mode: string) { let output = this.toHTMLHeader(mode); - output += " Nr: " + this.stringToHTML(10,5) + ", " - + "Geaard: " + this.checkboxToHTML(1) + ", " - + "Kinderveiligheid: " + this.checkboxToHTML(2) + " " - + "Halfwaterdicht: " + this.checkboxToHTML(20) + ", " - + "Meerfasig: " + this.checkboxToHTML(21) + ", "; + output += " Nr: " + this.stringPropToHTML('nr',5) + ", " + + "Geaard: " + this.checkboxPropToHTML('is_geaard') + ", " + + "Kinderveiligheid: " + this.checkboxPropToHTML('is_kinderveilig') + " " + + "Halfwaterdicht: " + this.checkboxPropToHTML('is_halfwaterdicht') + ", " + + "Meerfasig: " + this.checkboxPropToHTML('is_meerfasig') + ", "; - if (this.keys[21][2]) { - output += "Aantal fasen: " + this.selectToHTML(16,["1","2","3"]) + ", " - + "Met nul: " + this.checkboxToHTML(25) + ", "; + if (this.props.is_meerfasig) { + output += "Aantal fasen: " + this.selectPropToHTML('aantal_fases_indien_meerfasig',["1","2","3"]) + ", " + + "Met nul: " + this.checkboxPropToHTML('heeft_nul_indien_meerfasig') + ", "; }; - output += "Ingebouwde schakelaar: " + this.checkboxToHTML(19) + ", " - + "Aantal: " + this.selectToHTML(4,["1","2","3","4","5","6"]) + ", " - + "In verdeelbord: " + this.checkboxToHTML(26) - + ", Adres/tekst: " + this.stringToHTML(15,5); + output += "Ingebouwde schakelaar: " + this.checkboxPropToHTML('heeft_ingebouwde_schakelaar') + ", " + + "Aantal: " + this.selectPropToHTML('aantal',["1","2","3","4","5","6"]) + ", " + + "In verdeelbord: " + this.checkboxPropToHTML('in_verdeelbord') + + ", Adres/tekst: " + this.stringPropToHTML('adres',5); return(output); } @@ -53,10 +67,10 @@ class Stopcontact extends Electro_Item { var startx: number = 1; // Punt waar we aan het tekenen zijn. Schuift gaandeweg op // Teken lijnen voor meerfasig stopcontact - if (this.keys[21][2]) { + if (this.props.is_meerfasig) { mySVG.data += ''; - switch (this.keys[16][2]) { //faselijnen + switch (this.props.aantal_fases_indien_meerfasig) { //faselijnen case "1": mySVG.data += ''; break; @@ -74,7 +88,7 @@ class Stopcontact extends Electro_Item { break; } - if (this.keys[25][2]) { //nullijn + if (this.props.heeft_nul_indien_meerfasig) { //nullijn mySVG.data += '' + ''; } @@ -83,7 +97,7 @@ class Stopcontact extends Electro_Item { } // Teken ingebouwde schakelaar - if (this.keys[19][2]) { + if (this.props.heeft_ingebouwde_schakelaar) { mySVG.data += '' + '' + '' @@ -93,21 +107,21 @@ class Stopcontact extends Electro_Item { } // Teken alle stopcontacten, inclusief aarding en kinderveiligheid indien van toepassing - for (let i=0; i'; - if (this.keys[1][2]) mySVG.data += ''; - if (this.keys[2][2]) mySVG.data += ''; + if (this.props.is_geaard) mySVG.data += ''; + if (this.props.is_kinderveilig) mySVG.data += ''; startx += 20; mySVG.xright += 20; } // Teken kader indien in verdeelbord - if (this.keys[26][2]) { - mySVG.data += ''; + if (this.props.in_verdeelbord) { + mySVG.data += ''; + ''; }; // Teken halfwaterdicht indien van toepassing - if (this.keys[20][2]) mySVG.data += 'h'; + if (this.props.is_halfwaterdicht) mySVG.data += 'h'; // Indien het stopcontact een kind heeft, teken een streepje rechts if (this.heeftVerbruikerAlsKind()) { @@ -115,7 +129,7 @@ class Stopcontact extends Electro_Item { }; // Adres helemaal onderaan plaatsen - mySVG.data += this.addAddress(mySVG,60,15); + mySVG.data += this.addPropAddress(mySVG,60,15); mySVG.data += "\n"; return(mySVG); diff --git a/src/eendraadschema.js b/src/eendraadschema.js index 040be4b..8eaab28 100644 --- a/src/eendraadschema.js +++ b/src/eendraadschema.js @@ -412,6 +412,14 @@ var Electro_Item = /** @class */ (function (_super) { //Indien domotica gestuurde verbruiker, bool5 is de selector voor uitbreiding van de sturing met drukknop //Indien stopcontact, geeft aan dat deze in een verdeelbord zit*/ }; + Electro_Item.prototype.getLegacyKey = function (keyid) { + if ((typeof (this.keys) != 'undefined') && (this.keys.length > keyid)) { + return this.keys[keyid][2]; + } + else { + return null; + } + }; Electro_Item.prototype.getParent = function () { return _super.prototype.getParent.call(this); }; @@ -432,7 +440,7 @@ var Electro_Item = /** @class */ (function (_super) { return (this.getNumChildsWithKnownType() > 0); }; Electro_Item.prototype.isVrijeTekstZonderKader = function (item) { - return ((item.getType() == "Vrije tekst") && (item.keys[16][2] == "Zonder kader")); + return ((item.getType() == "Vrije tekst") && (item.keys[16][2] == "zonder kader")); }; Electro_Item.prototype.heeftVerbruikerAlsKind = function () { var parent = this.getParent(); @@ -3163,36 +3171,49 @@ var Stopcontact = /** @class */ (function (_super) { _this.resetKeys(); return _this; } + Stopcontact.prototype.convertLegacyKeys = function (mykeys) { + this.props.type = this.getLegacyKey(0); + this.props.is_geaard = this.getLegacyKey(1); + this.props.is_kinderveilig = this.getLegacyKey(2); + this.props.aantal = this.getLegacyKey(4); + this.props.adres = this.getLegacyKey(15); + this.props.aantal_fases_indien_meerfasig = this.getLegacyKey(16); + this.props.heeft_ingebouwde_schakelaar = this.getLegacyKey(19); + this.props.is_halfwaterdicht = this.getLegacyKey(20); + this.props.is_meerfasig = this.getLegacyKey(21); + this.props.heeft_nul_indien_meerfasig = this.getLegacyKey(25); + this.props.in_verdeelbord = this.getLegacyKey(26); + }; Stopcontact.prototype.resetKeys = function () { this.clearKeys(); - this.keys[0][2] = "Stopcontact"; // This is rather a formality as we should already have this at this stage - this.keys[1][2] = true; // Per default geaard - this.keys[2][2] = true; // Per default kinderveilig - this.keys[4][2] = "1"; // Per default 1 Stopcontact - this.keys[15][2] = ""; // Set Adres/tekst to "" when the item is cleared - this.keys[16][2] = "3"; // Indien meerfasig is de default 3 fasen - this.keys[19][2] = false; // Per default niet met ingebouwde schakelaar - this.keys[20][2] = false; // Per default niet halfwaterdicht - this.keys[21][2] = false; // Per default niet meerfasig - this.keys[25][2] = false; // Indien meerfasig, per default niet met nul - this.keys[26][2] = false; // Per default niet in verdeelbord + this.props.type = "Stopcontact"; + this.props.is_geaard = true; + this.props.is_kinderveilig = true; + this.props.aantal = "1"; + this.props.adres = ""; + this.props.aantal_fases_indien_meerfasig = "3"; + this.props.heeft_ingebouwde_schakelaar = false; + this.props.is_halfwaterdicht = false; + this.props.is_meerfasig = false; + this.props.heeft_nul_indien_meerfasig = false; + this.props.in_verdeelbord = false; }; Stopcontact.prototype.toHTML = function (mode) { var output = this.toHTMLHeader(mode); - output += " Nr: " + this.stringToHTML(10, 5) + ", " - + "Geaard: " + this.checkboxToHTML(1) + ", " - + "Kinderveiligheid: " + this.checkboxToHTML(2) + " " - + "Halfwaterdicht: " + this.checkboxToHTML(20) + ", " - + "Meerfasig: " + this.checkboxToHTML(21) + ", "; - if (this.keys[21][2]) { - output += "Aantal fasen: " + this.selectToHTML(16, ["1", "2", "3"]) + ", " - + "Met nul: " + this.checkboxToHTML(25) + ", "; + output += " Nr: " + this.stringPropToHTML('nr', 5) + ", " + + "Geaard: " + this.checkboxPropToHTML('is_geaard') + ", " + + "Kinderveiligheid: " + this.checkboxPropToHTML('is_kinderveilig') + " " + + "Halfwaterdicht: " + this.checkboxPropToHTML('is_halfwaterdicht') + ", " + + "Meerfasig: " + this.checkboxPropToHTML('is_meerfasig') + ", "; + if (this.props.is_meerfasig) { + output += "Aantal fasen: " + this.selectPropToHTML('aantal_fases_indien_meerfasig', ["1", "2", "3"]) + ", " + + "Met nul: " + this.checkboxPropToHTML('heeft_nul_indien_meerfasig') + ", "; } ; - output += "Ingebouwde schakelaar: " + this.checkboxToHTML(19) + ", " - + "Aantal: " + this.selectToHTML(4, ["1", "2", "3", "4", "5", "6"]) + ", " - + "In verdeelbord: " + this.checkboxToHTML(26) - + ", Adres/tekst: " + this.stringToHTML(15, 5); + output += "Ingebouwde schakelaar: " + this.checkboxPropToHTML('heeft_ingebouwde_schakelaar') + ", " + + "Aantal: " + this.selectPropToHTML('aantal', ["1", "2", "3", "4", "5", "6"]) + ", " + + "In verdeelbord: " + this.checkboxPropToHTML('in_verdeelbord') + + ", Adres/tekst: " + this.stringPropToHTML('adres', 5); return (output); }; Stopcontact.prototype.toSVG = function () { @@ -3203,9 +3224,9 @@ var Stopcontact = /** @class */ (function (_super) { mySVG.ydown = 25; var startx = 1; // Punt waar we aan het tekenen zijn. Schuift gaandeweg op // Teken lijnen voor meerfasig stopcontact - if (this.keys[21][2]) { + if (this.props.is_meerfasig) { mySVG.data += ''; - switch (this.keys[16][2]) { //faselijnen + switch (this.props.aantal_fases_indien_meerfasig) { //faselijnen case "1": mySVG.data += ''; break; @@ -3222,7 +3243,7 @@ var Stopcontact = /** @class */ (function (_super) { mySVG.data += ''; break; } - if (this.keys[25][2]) { //nullijn + if (this.props.heeft_nul_indien_meerfasig) { //nullijn mySVG.data += '' + ''; } @@ -3230,7 +3251,7 @@ var Stopcontact = /** @class */ (function (_super) { mySVG.xright += 34; //We schuiven alles 34 pixels op } // Teken ingebouwde schakelaar - if (this.keys[19][2]) { + if (this.props.heeft_ingebouwde_schakelaar) { mySVG.data += '' + '' + '' @@ -3239,31 +3260,31 @@ var Stopcontact = /** @class */ (function (_super) { mySVG.xright += 10; //We schuiven alles 10 pixels op } // Teken alle stopcontacten, inclusief aarding en kinderveiligheid indien van toepassing - for (var i = 0; i < this.keys[4][2]; ++i) { + for (var i = 0; i < this.props.aantal; ++i) { mySVG.data += ''; - if (this.keys[1][2]) + if (this.props.is_geaard) mySVG.data += ''; - if (this.keys[2][2]) + if (this.props.is_kinderveilig) mySVG.data += ''; startx += 20; mySVG.xright += 20; } // Teken kader indien in verdeelbord - if (this.keys[26][2]) { - mySVG.data += ''; + if (this.props.in_verdeelbord) { + mySVG.data += ''; +''; } ; // Teken halfwaterdicht indien van toepassing - if (this.keys[20][2]) - mySVG.data += 'h'; + if (this.props.is_halfwaterdicht) + mySVG.data += 'h'; // Indien het stopcontact een kind heeft, teken een streepje rechts if (this.heeftVerbruikerAlsKind()) { mySVG.data += ''; } ; // Adres helemaal onderaan plaatsen - mySVG.data += this.addAddress(mySVG, 60, 15); + mySVG.data += this.addPropAddress(mySVG, 60, 15); mySVG.data += "\n"; return (mySVG); }; @@ -5433,7 +5454,7 @@ function import_to_structure(mystring, redraw) { if (version < 2) { // Versies < 2 gebruikten enkel keys en geen props dus de code hieronder met keys zal altijd werken for (var i = 0; i < mystructure.length; i++) { // Breedte van Vrije tekst velden zonder kader met 30 verhogen sinds 16/12/2023 - if ((structure.data[i].keys[0][2] === "Vrije tekst") && (structure.data[i].keys[16][2] != "verbruiker")) { + if ((structure.data[i].getType() === "Vrije tekst") && (structure.data[i].keys[16][2] != "verbruiker")) { if (Number(structure.data[i].keys[22][2]) > 0) structure.data[i].keys[22][2] = String(Number(structure.data[i].keys[22][2]) + 30); else diff --git a/src/main.ts b/src/main.ts index ceb9abe..981d6bc 100644 --- a/src/main.ts +++ b/src/main.ts @@ -659,7 +659,7 @@ function import_to_structure(mystring: string, redraw = true) { if (version < 2) { // Versies < 2 gebruikten enkel keys en geen props dus de code hieronder met keys zal altijd werken for (var i = 0; i < mystructure.length; i++) { // Breedte van Vrije tekst velden zonder kader met 30 verhogen sinds 16/12/2023 - if ( (structure.data[i].keys[0][2] === "Vrije tekst") && (structure.data[i].keys[16][2] != "verbruiker") ) { + if ( ((structure.data[i] as Electro_Item).getType() === "Vrije tekst") && (structure.data[i].keys[16][2] != "verbruiker") ) { if (Number(structure.data[i].keys[22][2])>0) structure.data[i].keys[22][2] = String(Number(structure.data[i].keys[22][2]) + 30); else structure.data[i].keys[18][2] = "automatisch"; if (structure.data[i].keys[16][2] != "zonder kader") structure.data[i].keys[16][2] = "verbruiker";