From c437f5acaf5a45032cfae559ecf70de968913d45 Mon Sep 17 00:00:00 2001 From: Nora Blomaard Date: Mon, 4 Aug 2025 12:34:19 +0200 Subject: [PATCH 1/4] feat: update nsd files (#1691) * feat: update nsd files to B5 * test: update tests --- ...-2_2007B3.nsd => IEC_61850-7-2_2007B5.nsd} | 19 ++- .../public/xml/IEC_61850-7-3_2007B5.nsd} | 73 ++++++---- .../public/xml/IEC_61850-7-4_2007B5.nsd} | 136 ++++++++++++------ .../openscd/public/md/Validate-template.md | 21 ++- .../public/xml/IEC_61850-7-2_2007B5.nsd} | 19 ++- .../public/xml/IEC_61850-7-3_2007B5.nsd} | 73 ++++++---- .../public/xml/IEC_61850-7-4_2007B5.nsd} | 136 ++++++++++++------ packages/openscd/src/foundation/nsd.ts | 8 +- packages/openscd/src/translations/de.ts | 8 +- packages/openscd/src/translations/en.ts | 8 +- .../openscd/test/integration/Setting.test.ts | 10 +- .../__snapshots__/Setting.test.snap.js | 2 +- ...-7-2-B-5.nsdoc => IEC_61850-7-2-B-3.nsdoc} | 2 +- .../test/testfiles/nsdoc/IEC_61850-7-2.nsdoc | 2 +- packages/openscd/test/unit/Setting.test.ts | 2 +- .../unit/__snapshots__/Setting.test.snap.js | 4 +- .../public/xml/IEC_61850-7-2_2007B5.nsd} | 19 ++- ...-3_2007B3.nsd => IEC_61850-7-3_2007B5.nsd} | 73 ++++++---- .../public/xml/IEC_61850-7-4_2007B5.nsd} | 136 ++++++++++++------ packages/plugins/src/editors/Templates.ts | 11 +- .../src/validators/ValidateTemplates.ts | 4 +- .../src/validators/templates/foundation.ts | 6 +- .../lnodetype-wizard.test.snap.js | 4 +- .../validators/ValidateTemplates.test.ts | 25 ++-- .../ValidateTemplates.test.snap.js | 8 +- .../test/testfiles/templates/dotypes.scd | 2 +- .../validators/datatypetemplateerrors.scd | 2 +- .../test/testfiles/validators/zeroissues.scd | 2 +- .../unit/validators/ValidateTemplates.test.ts | 6 +- 29 files changed, 512 insertions(+), 309 deletions(-) rename packages/distribution/public/xml/{IEC_61850-7-2_2007B3.nsd => IEC_61850-7-2_2007B5.nsd} (98%) rename packages/{openscd/public/xml/IEC_61850-7-3_2007B3.nsd => distribution/public/xml/IEC_61850-7-3_2007B5.nsd} (99%) rename packages/{plugins/public/xml/IEC_61850-7-4_2007B3.nsd => distribution/public/xml/IEC_61850-7-4_2007B5.nsd} (99%) rename packages/{plugins/public/xml/IEC_61850-7-2_2007B3.nsd => openscd/public/xml/IEC_61850-7-2_2007B5.nsd} (98%) rename packages/{distribution/public/xml/IEC_61850-7-3_2007B3.nsd => openscd/public/xml/IEC_61850-7-3_2007B5.nsd} (99%) rename packages/{distribution/public/xml/IEC_61850-7-4_2007B3.nsd => openscd/public/xml/IEC_61850-7-4_2007B5.nsd} (99%) rename packages/openscd/test/testfiles/nsdoc/{IEC_61850-7-2-B-5.nsdoc => IEC_61850-7-2-B-3.nsdoc} (87%) rename packages/{openscd/public/xml/IEC_61850-7-2_2007B3.nsd => plugins/public/xml/IEC_61850-7-2_2007B5.nsd} (98%) rename packages/plugins/public/xml/{IEC_61850-7-3_2007B3.nsd => IEC_61850-7-3_2007B5.nsd} (99%) rename packages/{openscd/public/xml/IEC_61850-7-4_2007B3.nsd => plugins/public/xml/IEC_61850-7-4_2007B5.nsd} (99%) diff --git a/packages/distribution/public/xml/IEC_61850-7-2_2007B3.nsd b/packages/distribution/public/xml/IEC_61850-7-2_2007B5.nsd similarity index 98% rename from packages/distribution/public/xml/IEC_61850-7-2_2007B3.nsd rename to packages/distribution/public/xml/IEC_61850-7-2_2007B5.nsd index 9635bf57ce..ba98cb1ef4 100644 --- a/packages/distribution/public/xml/IEC_61850-7-2_2007B3.nsd +++ b/packages/distribution/public/xml/IEC_61850-7-2_2007B5.nsd @@ -5,10 +5,15 @@ id="IEC 61850-7-2" version="2007" revision="B" - release="3" - umlVersion="WG10built4" - umlDate="2019-10-02T00:00:00Z" - publicationStage="IS"> + release="5" + umlVersion="WG10built12" + umlDate="2024-01-15" + publicationStage="IS" + appVersion="j61850DocBuilder 02.03 based on jCleanCim noNS beta9.3 (derived from jCleanCim 02-02)" + namespaceType="basic" + nsdVersion="2017" + nsdRevision="B" + nsdRelease="5"> COPYRIGHT (c) IEC, www.iec.ch/tc57/supportdocuments. This version of this NSD is part of IEC_61850-7-2:2010 Edition 2.1; see the IEC_61850-7-2:2010 Edition 2.1 for full legal notices. In case of any differences between the here-below code and the IEC published content, the here-below definition supersedes the IEC publication; it may contain updates. See history files. The whole document has to be taken into account to have a full description of this code component. @@ -17,8 +22,8 @@ + revision="B" + tissues="1781, 1782, 1801, 1841, 1847, 1822"/> @@ -531,4 +536,4 @@ presCond="M"/> - \ No newline at end of file + diff --git a/packages/openscd/public/xml/IEC_61850-7-3_2007B3.nsd b/packages/distribution/public/xml/IEC_61850-7-3_2007B5.nsd similarity index 99% rename from packages/openscd/public/xml/IEC_61850-7-3_2007B3.nsd rename to packages/distribution/public/xml/IEC_61850-7-3_2007B5.nsd index 777a13cf59..7ec83fc09f 100644 --- a/packages/openscd/public/xml/IEC_61850-7-3_2007B3.nsd +++ b/packages/distribution/public/xml/IEC_61850-7-3_2007B5.nsd @@ -5,10 +5,15 @@ id="IEC 61850-7-3" version="2007" revision="B" - release="3" - umlVersion="WG10built3" - umlDate="2019-10-02T00:00:00Z" - publicationStage="IS"> + release="5" + umlVersion="WG10built12" + umlDate="2024-02-12" + publicationStage="IS" + appVersion="j61850DocBuilder 02.03 based on jCleanCim noNS beta9.3 (derived from jCleanCim 02-02)" + namespaceType="basic" + nsdVersion="2017" + nsdRevision="B" + nsdRelease="5"> COPYRIGHT (c) IEC, www.iec.ch/tc57/supportdocuments. This version of this NSD is part of IEC_61850-7-3:2010 Edition 2.1; see the IEC_61850-7-3:2010 Edition 2.1 for full legal notices. In case of any differences between the here-below code and the IEC published content, the here-below definition supersedes the IEC publication; it may contain updates. See history files. The whole document has to be taken into account to have a full description of this code component. @@ -17,9 +22,12 @@ - + revision="B" + tissues="1716, 1730, 1783, 1785, 1807, 1829, 1840, 1851, 1852, 1889, 1900"/> + @@ -232,7 +240,7 @@ descID="IEC61850_7_3.DAEnums::MultiplierKind.n.desc"/> + descID="IEC61850_7_3.DAEnums::MultiplierKind.µ.desc"/> @@ -385,7 +393,7 @@ descID="IEC61850_7_3.DAEnums::SIUnitKind.Bq.desc"/> + descID="IEC61850_7_3.DAEnums::SIUnitKind.°C.desc"/> @@ -436,31 +444,31 @@ descID="IEC61850_7_3.DAEnums::SIUnitKind.Pa.desc"/> + descID="IEC61850_7_3.DAEnums::SIUnitKind.m².desc"/> + descID="IEC61850_7_3.DAEnums::SIUnitKind.m³.desc"/> + descID="IEC61850_7_3.DAEnums::SIUnitKind.m_per_s².desc"/> + descID="IEC61850_7_3.DAEnums::SIUnitKind.m³_per_s.desc"/> + descID="IEC61850_7_3.DAEnums::SIUnitKind.m_per_m³.desc"/> + descID="IEC61850_7_3.DAEnums::SIUnitKind.kg_per_m³.desc"/> + descID="IEC61850_7_3.DAEnums::SIUnitKind.m²_per_s.desc"/> @@ -478,10 +486,10 @@ descID="IEC61850_7_3.DAEnums::SIUnitKind.rad_per_s.desc"/> + descID="IEC61850_7_3.DAEnums::SIUnitKind.W_per_m².desc"/> + descID="IEC61850_7_3.DAEnums::SIUnitKind.J_per_m².desc"/> @@ -516,16 +524,16 @@ descID="IEC61850_7_3.DAEnums::SIUnitKind.Vs.desc"/> + descID="IEC61850_7_3.DAEnums::SIUnitKind.V².desc"/> + descID="IEC61850_7_3.DAEnums::SIUnitKind.A².desc"/> + descID="IEC61850_7_3.DAEnums::SIUnitKind.A²t.desc"/> @@ -549,7 +557,7 @@ descID="IEC61850_7_3.DAEnums::SIUnitKind.char_per_s.desc"/> + descID="IEC61850_7_3.DAEnums::SIUnitKind.kgm².desc"/> @@ -1429,7 +1437,8 @@ type="Timestamp" dchg="true" descID="IEC61850_7_3.CDCStatusInfo::BCR.strTm.desc" - presCond="O"/> + presCond="OF" + presCondArgs="frVal"/> + presCond="MO" + presCondArgs="db"/> + presCond="MO" + presCondArgs="db"/> - + - + + release="5" + umlVersion="WG10built12" + umlDate="2024-02-14" + publicationStage="IS" + appVersion="j61850DocBuilder 02.03 based on jCleanCim noNS beta9.3 (derived from jCleanCim 02-02)" + namespaceType="basic" + nsdVersion="2017" + nsdRevision="B" + nsdRelease="5"> - COPYRIGHT (c) IEC, www.iec.ch/tc57/supportdocuments. This version of this NSD is part of IEC_61850-7-4:2007; see the IEC_61850-7-4:2007 for full legal notices. In case of any differences between the here-below code and the IEC published content, the here-below definition supersedes the IEC publication; it may contain updates. See history files. The whole document has to be taken into account to have a full description of this code component. + COPYRIGHT (c) IEC, www.iec.ch/tc57/supportdocuments. This version of this NSD is part of IEC_61850-7-4:2020 Edition 2.1; see the IEC_61850-7-4:2020 Edition 2.1 for full legal notices. In case of any differences between the here-below code and the IEC published content, the here-below definition supersedes the IEC publication; it may contain updates. See history files. The whole document has to be taken into account to have a full description of this code component. See www.iec.ch/CCv1 for copyright details. - + + @@ -953,6 +962,7 @@ + @@ -1164,11 +1174,9 @@ - - - + + + @@ -1611,7 +1619,8 @@ - + + @@ -1957,12 +1966,6 @@ - @@ -3547,6 +3554,20 @@ descID="IEC61850_7_4.LNGroupL::LTRK.SgcbTrk.desc" presCond="O" dsPresCond="na"/> + + - - - + - - - + + - + + + NOTE: OpenSCD is using name space description (NSD) files as a reference (how it should be). These files are provided by the standard but not for all Editions. That is why we only validate the `DataTypeTemplate` section for projects 2007B3 and higher (Edition 2.1). - - +> NOTE: OpenSCD is using name space description (NSD) files as a reference (how it should be). These files are provided by the standard but not for all Editions. That is why we only validate the `DataTypeTemplate` section for projects 2007B5 and higher (Edition 2.1). The validator is triggered on every change in the project basis and the results are displayed in the **diagnostics** pane like so: ![grafik](https://user-images.githubusercontent.com/66802940/133213707-80789ca7-b23f-467e-9142-711e54ffe70c.png) - There rules we have implemented so far cover the following issues: - Mandatory `DO` is missing in `LNodeType` @@ -16,12 +13,12 @@ There rules we have implemented so far cover the following issues: - Mandatory `SDO` is missing in the `DOType` - Mandatory `BDA` is missing in the `DAType` - Missing `DA` needed for control operation depending in ctlModel - - `sbo-with-enhanced-security`: Missing `Oper`, `SBOw` - - `sbo-with-normal-security`: Missing `Oper`, `SBO` - - `direct-with-enhanced-security`: Missing `Oper` - - `direct-with-normal-security`: Missing `Oper` -- Check for correct service data implementation `Oper`, + - `sbo-with-enhanced-security`: Missing `Oper`, `SBOw` + - `sbo-with-normal-security`: Missing `Oper`, `SBO` + - `direct-with-enhanced-security`: Missing `Oper` + - `direct-with-normal-security`: Missing `Oper` +- Check for correct service data implementation `Oper`, - Broken reference of `DO` to `DOType` - missing type or invalid type -- Broken reference of `SDO` to `DOType` - missing type or invalid type -- Broken reference of `DA` to `DAType` - missing type or invalid type -- Broken reference of `BDA` to `DAType` - missing type or invalid type +- Broken reference of `SDO` to `DOType` - missing type or invalid type +- Broken reference of `DA` to `DAType` - missing type or invalid type +- Broken reference of `BDA` to `DAType` - missing type or invalid type diff --git a/packages/plugins/public/xml/IEC_61850-7-2_2007B3.nsd b/packages/openscd/public/xml/IEC_61850-7-2_2007B5.nsd similarity index 98% rename from packages/plugins/public/xml/IEC_61850-7-2_2007B3.nsd rename to packages/openscd/public/xml/IEC_61850-7-2_2007B5.nsd index 9635bf57ce..ba98cb1ef4 100644 --- a/packages/plugins/public/xml/IEC_61850-7-2_2007B3.nsd +++ b/packages/openscd/public/xml/IEC_61850-7-2_2007B5.nsd @@ -5,10 +5,15 @@ id="IEC 61850-7-2" version="2007" revision="B" - release="3" - umlVersion="WG10built4" - umlDate="2019-10-02T00:00:00Z" - publicationStage="IS"> + release="5" + umlVersion="WG10built12" + umlDate="2024-01-15" + publicationStage="IS" + appVersion="j61850DocBuilder 02.03 based on jCleanCim noNS beta9.3 (derived from jCleanCim 02-02)" + namespaceType="basic" + nsdVersion="2017" + nsdRevision="B" + nsdRelease="5"> COPYRIGHT (c) IEC, www.iec.ch/tc57/supportdocuments. This version of this NSD is part of IEC_61850-7-2:2010 Edition 2.1; see the IEC_61850-7-2:2010 Edition 2.1 for full legal notices. In case of any differences between the here-below code and the IEC published content, the here-below definition supersedes the IEC publication; it may contain updates. See history files. The whole document has to be taken into account to have a full description of this code component. @@ -17,8 +22,8 @@ + revision="B" + tissues="1781, 1782, 1801, 1841, 1847, 1822"/> @@ -531,4 +536,4 @@ presCond="M"/> - \ No newline at end of file + diff --git a/packages/distribution/public/xml/IEC_61850-7-3_2007B3.nsd b/packages/openscd/public/xml/IEC_61850-7-3_2007B5.nsd similarity index 99% rename from packages/distribution/public/xml/IEC_61850-7-3_2007B3.nsd rename to packages/openscd/public/xml/IEC_61850-7-3_2007B5.nsd index 777a13cf59..7ec83fc09f 100644 --- a/packages/distribution/public/xml/IEC_61850-7-3_2007B3.nsd +++ b/packages/openscd/public/xml/IEC_61850-7-3_2007B5.nsd @@ -5,10 +5,15 @@ id="IEC 61850-7-3" version="2007" revision="B" - release="3" - umlVersion="WG10built3" - umlDate="2019-10-02T00:00:00Z" - publicationStage="IS"> + release="5" + umlVersion="WG10built12" + umlDate="2024-02-12" + publicationStage="IS" + appVersion="j61850DocBuilder 02.03 based on jCleanCim noNS beta9.3 (derived from jCleanCim 02-02)" + namespaceType="basic" + nsdVersion="2017" + nsdRevision="B" + nsdRelease="5"> COPYRIGHT (c) IEC, www.iec.ch/tc57/supportdocuments. This version of this NSD is part of IEC_61850-7-3:2010 Edition 2.1; see the IEC_61850-7-3:2010 Edition 2.1 for full legal notices. In case of any differences between the here-below code and the IEC published content, the here-below definition supersedes the IEC publication; it may contain updates. See history files. The whole document has to be taken into account to have a full description of this code component. @@ -17,9 +22,12 @@ - + revision="B" + tissues="1716, 1730, 1783, 1785, 1807, 1829, 1840, 1851, 1852, 1889, 1900"/> + @@ -232,7 +240,7 @@ descID="IEC61850_7_3.DAEnums::MultiplierKind.n.desc"/> + descID="IEC61850_7_3.DAEnums::MultiplierKind.µ.desc"/> @@ -385,7 +393,7 @@ descID="IEC61850_7_3.DAEnums::SIUnitKind.Bq.desc"/> + descID="IEC61850_7_3.DAEnums::SIUnitKind.°C.desc"/> @@ -436,31 +444,31 @@ descID="IEC61850_7_3.DAEnums::SIUnitKind.Pa.desc"/> + descID="IEC61850_7_3.DAEnums::SIUnitKind.m².desc"/> + descID="IEC61850_7_3.DAEnums::SIUnitKind.m³.desc"/> + descID="IEC61850_7_3.DAEnums::SIUnitKind.m_per_s².desc"/> + descID="IEC61850_7_3.DAEnums::SIUnitKind.m³_per_s.desc"/> + descID="IEC61850_7_3.DAEnums::SIUnitKind.m_per_m³.desc"/> + descID="IEC61850_7_3.DAEnums::SIUnitKind.kg_per_m³.desc"/> + descID="IEC61850_7_3.DAEnums::SIUnitKind.m²_per_s.desc"/> @@ -478,10 +486,10 @@ descID="IEC61850_7_3.DAEnums::SIUnitKind.rad_per_s.desc"/> + descID="IEC61850_7_3.DAEnums::SIUnitKind.W_per_m².desc"/> + descID="IEC61850_7_3.DAEnums::SIUnitKind.J_per_m².desc"/> @@ -516,16 +524,16 @@ descID="IEC61850_7_3.DAEnums::SIUnitKind.Vs.desc"/> + descID="IEC61850_7_3.DAEnums::SIUnitKind.V².desc"/> + descID="IEC61850_7_3.DAEnums::SIUnitKind.A².desc"/> + descID="IEC61850_7_3.DAEnums::SIUnitKind.A²t.desc"/> @@ -549,7 +557,7 @@ descID="IEC61850_7_3.DAEnums::SIUnitKind.char_per_s.desc"/> + descID="IEC61850_7_3.DAEnums::SIUnitKind.kgm².desc"/> @@ -1429,7 +1437,8 @@ type="Timestamp" dchg="true" descID="IEC61850_7_3.CDCStatusInfo::BCR.strTm.desc" - presCond="O"/> + presCond="OF" + presCondArgs="frVal"/> + presCond="MO" + presCondArgs="db"/> + presCond="MO" + presCondArgs="db"/> - + - + + release="5" + umlVersion="WG10built12" + umlDate="2024-02-14" + publicationStage="IS" + appVersion="j61850DocBuilder 02.03 based on jCleanCim noNS beta9.3 (derived from jCleanCim 02-02)" + namespaceType="basic" + nsdVersion="2017" + nsdRevision="B" + nsdRelease="5"> - COPYRIGHT (c) IEC, www.iec.ch/tc57/supportdocuments. This version of this NSD is part of IEC_61850-7-4:2007; see the IEC_61850-7-4:2007 for full legal notices. In case of any differences between the here-below code and the IEC published content, the here-below definition supersedes the IEC publication; it may contain updates. See history files. The whole document has to be taken into account to have a full description of this code component. + COPYRIGHT (c) IEC, www.iec.ch/tc57/supportdocuments. This version of this NSD is part of IEC_61850-7-4:2020 Edition 2.1; see the IEC_61850-7-4:2020 Edition 2.1 for full legal notices. In case of any differences between the here-below code and the IEC published content, the here-below definition supersedes the IEC publication; it may contain updates. See history files. The whole document has to be taken into account to have a full description of this code component. See www.iec.ch/CCv1 for copyright details. - + + @@ -953,6 +962,7 @@ + @@ -1164,11 +1174,9 @@ - - - + + + @@ -1611,7 +1619,8 @@ - + + @@ -1957,12 +1966,6 @@ - @@ -3547,6 +3554,20 @@ descID="IEC61850_7_4.LNGroupL::LTRK.SgcbTrk.desc" presCond="O" dsPresCond="na"/> + + - - - + - - - + + - + + + response.text()) .then(str => new DOMParser().parseFromString(str, 'application/xml')); -export const iec6185073 = fetch('public/xml/IEC_61850-7-3_2007B3.nsd') +export const iec6185073 = fetch('public/xml/IEC_61850-7-3_2007B5.nsd') .then(response => response.text()) .then(str => new DOMParser().parseFromString(str, 'application/xml')); -export const iec6185072 = fetch('public/xml/IEC_61850-7-2_2007B3.nsd') +export const iec6185072 = fetch('public/xml/IEC_61850-7-2_2007B5.nsd') .then(response => response.text()) .then(str => new DOMParser().parseFromString(str, 'application/xml')); export const iec6185081 = fetch('public/xml/IEC_61850-8-1_2003A2.nsd') .then(response => response.text()) - .then(str => new DOMParser().parseFromString(str, 'application/xml')); \ No newline at end of file + .then(str => new DOMParser().parseFromString(str, 'application/xml')); diff --git a/packages/openscd/src/translations/de.ts b/packages/openscd/src/translations/de.ts index 8cca3e42bb..b4cef871fd 100644 --- a/packages/openscd/src/translations/de.ts +++ b/packages/openscd/src/translations/de.ts @@ -93,7 +93,7 @@ export const de: Translations = { select: '{{tagName}} auswählen', edit: '{{tagName}} bearbeiten', add: '{{tagName}} hinzufügen', - selectAp: 'ConnectedAP auswählen' + selectAp: 'ConnectedAP auswählen', }, }, openSCD: { @@ -180,7 +180,7 @@ export const de: Translations = { zeroissues: 'Es konnten keine Fehler in dem Projekt gefunden werden.', placeholder: 'Hier werden Validierungsfehler angezeigt.', missingnsd: - 'DataTypeTemplates können nicht validiert werden. Das Projekt muss die Version 2007B3 oder höher haben.', + 'DataTypeTemplates können nicht validiert werden. Das Projekt muss die Version 2007B5 oder höher haben.', }, plugins: { heading: 'Plug-ins', @@ -284,7 +284,7 @@ export const de: Translations = { prefixHelper: 'Prefix des Logical Nodes', lnClassHelper: 'Logical Node Klasse', instHelper: 'Instanz', - } + }, }, ln0: { wizard: { @@ -295,7 +295,7 @@ export const de: Translations = { lnTypeHelper: 'Logical Node Typ', lnClassHelper: 'Logical Node Klasse', instHelper: 'Instanz', - } + }, }, powertransformer: { wizard: { diff --git a/packages/openscd/src/translations/en.ts b/packages/openscd/src/translations/en.ts index 5291895a73..ecf7cb4ca0 100644 --- a/packages/openscd/src/translations/en.ts +++ b/packages/openscd/src/translations/en.ts @@ -91,7 +91,7 @@ export const en = { select: 'Select {{tagName}}', edit: 'Edit {{tagName}}', add: 'Add {{tagName}}', - selectAp: 'Select New ConnectedAP' + selectAp: 'Select New ConnectedAP', }, }, openSCD: { @@ -157,7 +157,7 @@ export const en = { zeroissues: 'No errors found in the project', placeholder: 'Issues found during validation will show up here', missingnsd: - 'Cannot validate DataTypeTemplates. The version of the project must be higher than or equal to 2007B3', + 'Cannot validate DataTypeTemplates. The version of the project must be higher than or equal to 2007B5', }, plugins: { heading: 'Plug-ins', @@ -281,7 +281,7 @@ export const en = { prefixHelper: 'Prefix of the logical node', lnClassHelper: 'Logical node class', instHelper: 'Instance', - } + }, }, ln0: { wizard: { @@ -292,7 +292,7 @@ export const en = { lnTypeHelper: 'Logical node type', lnClassHelper: 'Logical node class', instHelper: 'Instance', - } + }, }, powertransformer: { wizard: { diff --git a/packages/openscd/test/integration/Setting.test.ts b/packages/openscd/test/integration/Setting.test.ts index 363370576d..e5e7483e24 100644 --- a/packages/openscd/test/integration/Setting.test.ts +++ b/packages/openscd/test/integration/Setting.test.ts @@ -18,7 +18,7 @@ describe('Oscd-Settings', () => { ` ); - + settings = logger.querySelector('oscd-settings')!; }); @@ -67,18 +67,18 @@ describe('Oscd-Settings', () => { settings.settingsUI.show(); await settings.settingsUI.updateComplete; - const nsdocFile = await fetch('/test/testfiles/nsdoc/IEC_61850-7-2-B-5.nsdoc').then( + const nsdocFile = await fetch('/test/testfiles/nsdoc/IEC_61850-7-2-B-3.nsdoc').then( response => response.text() ); - logger.dispatchEvent(newLoadNsdocEvent(nsdocFile, 'IEC_61850-7-2-B-5.nsdoc')); + logger.dispatchEvent(newLoadNsdocEvent(nsdocFile, 'IEC_61850-7-2-B-3.nsdoc')); await logger.requestUpdate(); await logger.updateComplete; expect(logger.log.length).to.be.equal(1); expect(logger.log[0].title).to.be.equal( - "The version of IEC 61850-7-2 NSD (2007B3) does not correlate with the version of the corresponding NSDoc (IEC_61850-7-2-B-5.nsdoc, 2007B5)" + "The version of IEC 61850-7-2 NSD (2007B5) does not correlate with the version of the corresponding NSDoc (IEC_61850-7-2-B-3.nsdoc, 2007B3)" ); }); @@ -97,7 +97,7 @@ describe('Oscd-Settings', () => { expect(logger.log.length).to.be.equal(1); expect(logger.log[0].title).to.be.equal( - 'The version of IEC 61850-7-3 NSD (2007B3) does not correlate ' + + 'The version of IEC 61850-7-3 NSD (2007B5) does not correlate ' + 'with the version of the corresponding NSDoc (wrong-version.nsdoc, 2007B4)' ); }); diff --git a/packages/openscd/test/integration/__snapshots__/Setting.test.snap.js b/packages/openscd/test/integration/__snapshots__/Setting.test.snap.js index 4872c19b31..b0c2def188 100644 --- a/packages/openscd/test/integration/__snapshots__/Setting.test.snap.js +++ b/packages/openscd/test/integration/__snapshots__/Setting.test.snap.js @@ -85,7 +85,7 @@ snapshots["Oscd-Settings upload .nsdoc file using event and looks like latest sn IEC 61850-7-2 - 2007B3 + 2007B5 diff --git a/packages/openscd/test/testfiles/nsdoc/IEC_61850-7-2.nsdoc b/packages/openscd/test/testfiles/nsdoc/IEC_61850-7-2.nsdoc index d10a9893cb..6b92041b5f 100644 --- a/packages/openscd/test/testfiles/nsdoc/IEC_61850-7-2.nsdoc +++ b/packages/openscd/test/testfiles/nsdoc/IEC_61850-7-2.nsdoc @@ -2,6 +2,6 @@ diff --git a/packages/openscd/test/unit/Setting.test.ts b/packages/openscd/test/unit/Setting.test.ts index 7f4d0130c7..44a46ba7b4 100644 --- a/packages/openscd/test/unit/Setting.test.ts +++ b/packages/openscd/test/unit/Setting.test.ts @@ -75,7 +75,7 @@ describe('OSCD-Settings', () => { await element.settingsUI.updateComplete; const nsdocFile = await fetch( - '/test/testfiles/nsdoc/IEC_61850-7-2-B-5.nsdoc' + '/test/testfiles/nsdoc/IEC_61850-7-2-B-3.nsdoc' ).then(response => response.text()); element.setSetting('IEC 61850-7-2', nsdocFile); diff --git a/packages/openscd/test/unit/__snapshots__/Setting.test.snap.js b/packages/openscd/test/unit/__snapshots__/Setting.test.snap.js index 75f2ff1516..e06a7e93d9 100644 --- a/packages/openscd/test/unit/__snapshots__/Setting.test.snap.js +++ b/packages/openscd/test/unit/__snapshots__/Setting.test.snap.js @@ -422,7 +422,7 @@ snapshots["OSCD-Settings saves chosen .nsdoc file and looks like latest snapshot IEC 61850-7-2 - 2007B3 + 2007B5 - 2007B5 + 2007B3 + release="5" + umlVersion="WG10built12" + umlDate="2024-01-15" + publicationStage="IS" + appVersion="j61850DocBuilder 02.03 based on jCleanCim noNS beta9.3 (derived from jCleanCim 02-02)" + namespaceType="basic" + nsdVersion="2017" + nsdRevision="B" + nsdRelease="5"> COPYRIGHT (c) IEC, www.iec.ch/tc57/supportdocuments. This version of this NSD is part of IEC_61850-7-2:2010 Edition 2.1; see the IEC_61850-7-2:2010 Edition 2.1 for full legal notices. In case of any differences between the here-below code and the IEC published content, the here-below definition supersedes the IEC publication; it may contain updates. See history files. The whole document has to be taken into account to have a full description of this code component. @@ -17,8 +22,8 @@ + revision="B" + tissues="1781, 1782, 1801, 1841, 1847, 1822"/> @@ -531,4 +536,4 @@ presCond="M"/> - \ No newline at end of file + diff --git a/packages/plugins/public/xml/IEC_61850-7-3_2007B3.nsd b/packages/plugins/public/xml/IEC_61850-7-3_2007B5.nsd similarity index 99% rename from packages/plugins/public/xml/IEC_61850-7-3_2007B3.nsd rename to packages/plugins/public/xml/IEC_61850-7-3_2007B5.nsd index 777a13cf59..7ec83fc09f 100644 --- a/packages/plugins/public/xml/IEC_61850-7-3_2007B3.nsd +++ b/packages/plugins/public/xml/IEC_61850-7-3_2007B5.nsd @@ -5,10 +5,15 @@ id="IEC 61850-7-3" version="2007" revision="B" - release="3" - umlVersion="WG10built3" - umlDate="2019-10-02T00:00:00Z" - publicationStage="IS"> + release="5" + umlVersion="WG10built12" + umlDate="2024-02-12" + publicationStage="IS" + appVersion="j61850DocBuilder 02.03 based on jCleanCim noNS beta9.3 (derived from jCleanCim 02-02)" + namespaceType="basic" + nsdVersion="2017" + nsdRevision="B" + nsdRelease="5"> COPYRIGHT (c) IEC, www.iec.ch/tc57/supportdocuments. This version of this NSD is part of IEC_61850-7-3:2010 Edition 2.1; see the IEC_61850-7-3:2010 Edition 2.1 for full legal notices. In case of any differences between the here-below code and the IEC published content, the here-below definition supersedes the IEC publication; it may contain updates. See history files. The whole document has to be taken into account to have a full description of this code component. @@ -17,9 +22,12 @@ - + revision="B" + tissues="1716, 1730, 1783, 1785, 1807, 1829, 1840, 1851, 1852, 1889, 1900"/> + @@ -232,7 +240,7 @@ descID="IEC61850_7_3.DAEnums::MultiplierKind.n.desc"/> + descID="IEC61850_7_3.DAEnums::MultiplierKind.µ.desc"/> @@ -385,7 +393,7 @@ descID="IEC61850_7_3.DAEnums::SIUnitKind.Bq.desc"/> + descID="IEC61850_7_3.DAEnums::SIUnitKind.°C.desc"/> @@ -436,31 +444,31 @@ descID="IEC61850_7_3.DAEnums::SIUnitKind.Pa.desc"/> + descID="IEC61850_7_3.DAEnums::SIUnitKind.m².desc"/> + descID="IEC61850_7_3.DAEnums::SIUnitKind.m³.desc"/> + descID="IEC61850_7_3.DAEnums::SIUnitKind.m_per_s².desc"/> + descID="IEC61850_7_3.DAEnums::SIUnitKind.m³_per_s.desc"/> + descID="IEC61850_7_3.DAEnums::SIUnitKind.m_per_m³.desc"/> + descID="IEC61850_7_3.DAEnums::SIUnitKind.kg_per_m³.desc"/> + descID="IEC61850_7_3.DAEnums::SIUnitKind.m²_per_s.desc"/> @@ -478,10 +486,10 @@ descID="IEC61850_7_3.DAEnums::SIUnitKind.rad_per_s.desc"/> + descID="IEC61850_7_3.DAEnums::SIUnitKind.W_per_m².desc"/> + descID="IEC61850_7_3.DAEnums::SIUnitKind.J_per_m².desc"/> @@ -516,16 +524,16 @@ descID="IEC61850_7_3.DAEnums::SIUnitKind.Vs.desc"/> + descID="IEC61850_7_3.DAEnums::SIUnitKind.V².desc"/> + descID="IEC61850_7_3.DAEnums::SIUnitKind.A².desc"/> + descID="IEC61850_7_3.DAEnums::SIUnitKind.A²t.desc"/> @@ -549,7 +557,7 @@ descID="IEC61850_7_3.DAEnums::SIUnitKind.char_per_s.desc"/> + descID="IEC61850_7_3.DAEnums::SIUnitKind.kgm².desc"/> @@ -1429,7 +1437,8 @@ type="Timestamp" dchg="true" descID="IEC61850_7_3.CDCStatusInfo::BCR.strTm.desc" - presCond="O"/> + presCond="OF" + presCondArgs="frVal"/> + presCond="MO" + presCondArgs="db"/> + presCond="MO" + presCondArgs="db"/> - + - + + release="5" + umlVersion="WG10built12" + umlDate="2024-02-14" + publicationStage="IS" + appVersion="j61850DocBuilder 02.03 based on jCleanCim noNS beta9.3 (derived from jCleanCim 02-02)" + namespaceType="basic" + nsdVersion="2017" + nsdRevision="B" + nsdRelease="5"> - COPYRIGHT (c) IEC, www.iec.ch/tc57/supportdocuments. This version of this NSD is part of IEC_61850-7-4:2007; see the IEC_61850-7-4:2007 for full legal notices. In case of any differences between the here-below code and the IEC published content, the here-below definition supersedes the IEC publication; it may contain updates. See history files. The whole document has to be taken into account to have a full description of this code component. + COPYRIGHT (c) IEC, www.iec.ch/tc57/supportdocuments. This version of this NSD is part of IEC_61850-7-4:2020 Edition 2.1; see the IEC_61850-7-4:2020 Edition 2.1 for full legal notices. In case of any differences between the here-below code and the IEC published content, the here-below definition supersedes the IEC publication; it may contain updates. See history files. The whole document has to be taken into account to have a full description of this code component. See www.iec.ch/CCv1 for copyright details. - + + @@ -953,6 +962,7 @@ + @@ -1164,11 +1174,9 @@ - - - + + + @@ -1611,7 +1619,8 @@ - + + @@ -1957,12 +1966,6 @@ - @@ -3547,6 +3554,20 @@ descID="IEC61850_7_4.LNGroupL::LTRK.SgcbTrk.desc" presCond="O" dsPresCond="na"/> + + - - - + - - - + + - + + + response.text()) .then(str => new DOMParser().parseFromString(str, 'application/xml')); -const nsd74 = fetch('public/xml/IEC_61850-7-4_2007B3.nsd') +const nsd74 = fetch('public/xml/IEC_61850-7-4_2007B5.nsd') .then(response => response.text()) .then(str => new DOMParser().parseFromString(str, 'application/xml')); diff --git a/packages/plugins/src/validators/ValidateTemplates.ts b/packages/plugins/src/validators/ValidateTemplates.ts index c064e203d2..a8becfc2a2 100644 --- a/packages/plugins/src/validators/ValidateTemplates.ts +++ b/packages/plugins/src/validators/ValidateTemplates.ts @@ -36,15 +36,13 @@ export default class ValidateTemplates extends LitElement { } async validate(): Promise { - const promises: Promise[] = []; - const [version, revision, release] = [ this.doc.documentElement.getAttribute('version') ?? '', this.doc.documentElement.getAttribute('revision') ?? '', this.doc.documentElement.getAttribute('release') ?? '', ]; - if (!(version === '2007' && revision === 'B' && Number(release) > 3)) { + if (!(version === '2007' && revision === 'B' && Number(release) >= 5)) { this.dispatchEvent( newIssueEvent({ validatorId: this.pluginId, diff --git a/packages/plugins/src/validators/templates/foundation.ts b/packages/plugins/src/validators/templates/foundation.ts index 70a1b7bc05..89affaffe8 100644 --- a/packages/plugins/src/validators/templates/foundation.ts +++ b/packages/plugins/src/validators/templates/foundation.ts @@ -6,15 +6,15 @@ import { dOValidator } from './dosdo.js'; import { dOTypeValidator } from './dotype.js'; import { lNodeTypeValidator } from './lnodetype.js'; -export const iec6185074 = fetch('public/xml/IEC_61850-7-4_2007B3.nsd') +export const iec6185074 = fetch('public/xml/IEC_61850-7-4_2007B5.nsd') .then(response => response.text()) .then(str => new DOMParser().parseFromString(str, 'application/xml')); -export const iec6185073 = fetch('public/xml/IEC_61850-7-3_2007B3.nsd') +export const iec6185073 = fetch('public/xml/IEC_61850-7-3_2007B5.nsd') .then(response => response.text()) .then(str => new DOMParser().parseFromString(str, 'application/xml')); -export const iec6185072 = fetch('public/xml/IEC_61850-7-2_2007B3.nsd') +export const iec6185072 = fetch('public/xml/IEC_61850-7-2_2007B5.nsd') .then(response => response.text()) .then(str => new DOMParser().parseFromString(str, 'application/xml')); diff --git a/packages/plugins/test/integration/editors/templates/__snapshots__/lnodetype-wizard.test.snap.js b/packages/plugins/test/integration/editors/templates/__snapshots__/lnodetype-wizard.test.snap.js index 2f56575d35..88bb1f55b2 100644 --- a/packages/plugins/test/integration/editors/templates/__snapshots__/lnodetype-wizard.test.snap.js +++ b/packages/plugins/test/integration/editors/templates/__snapshots__/lnodetype-wizard.test.snap.js @@ -976,7 +976,7 @@ snapshots["LNodeType wizards defines a createLNodeTypeWizard looks like the late LTRK - 23 + 25 - 24 + 26 { > `); element = parent.getActivePlugin(); - element.pluginId = 'http://localhost:8000/plugins/src/validators/ValidateTemplates.js'; + element.pluginId = + 'http://localhost:8000/plugins/src/validators/ValidateTemplates.js'; await element.validate(); await parent.updateComplete; @@ -52,7 +53,8 @@ describe('ValidateTemplates OpenSCD integration test ', () => { > `); element = parent.getActivePlugin(); - element.pluginId = 'http://localhost:8000/plugins/src/validators/ValidateTemplates.js'; + element.pluginId = + 'http://localhost:8000/plugins/src/validators/ValidateTemplates.js'; await element.validate(); await parent.updateComplete; @@ -68,7 +70,7 @@ describe('ValidateTemplates OpenSCD integration test ', () => { await expect(parent.historyAddon.diagnosticUI).to.equalSnapshot(); }); }); - describe('with schema version smaller "2007B3"', () => { + describe('with schema version smaller "2007B5"', () => { beforeEach(async () => { doc = await fetch('/test/testfiles/valid2007B.scd') .then(response => response.text()) @@ -80,7 +82,8 @@ describe('ValidateTemplates OpenSCD integration test ', () => { > `); element = parent.getActivePlugin(); - element.pluginId = 'http://localhost:8000/plugins/src/validators/ValidateTemplates.js'; + element.pluginId = + 'http://localhost:8000/plugins/src/validators/ValidateTemplates.js'; await element.validate(); await parent.updateComplete; @@ -128,7 +131,9 @@ const builtinPlugins: Plugin[] = [ }, { name: 'Subscriber Message Binding (GOOSE)', - src: generatePluginPath('plugins/src/editors/GooseSubscriberMessageBinding.js'), + src: generatePluginPath( + 'plugins/src/editors/GooseSubscriberMessageBinding.js' + ), icon: 'link', default: false, kind: 'editor', @@ -137,7 +142,9 @@ const builtinPlugins: Plugin[] = [ }, { name: 'Subscriber Data Binding (GOOSE)', - src: generatePluginPath('plugins/src/editors/GooseSubscriberDataBinding.js'), + src: generatePluginPath( + 'plugins/src/editors/GooseSubscriberDataBinding.js' + ), icon: 'link', default: false, kind: 'editor', @@ -146,7 +153,9 @@ const builtinPlugins: Plugin[] = [ }, { name: 'Subscriber Message Binding (SMV)', - src: generatePluginPath('plugins/src/editors/SMVSubscriberMessageBinding.js'), + src: generatePluginPath( + 'plugins/src/editors/SMVSubscriberMessageBinding.js' + ), icon: 'link', default: false, kind: 'editor', @@ -363,5 +372,5 @@ const builtinPlugins: Plugin[] = [ ]; export function generatePluginPath(plugin: string): string { - return location.origin+location.pathname+plugin; + return location.origin + location.pathname + plugin; } diff --git a/packages/plugins/test/integration/validators/__snapshots__/ValidateTemplates.test.snap.js b/packages/plugins/test/integration/validators/__snapshots__/ValidateTemplates.test.snap.js index 3d74c2db94..6ce742050f 100644 --- a/packages/plugins/test/integration/validators/__snapshots__/ValidateTemplates.test.snap.js +++ b/packages/plugins/test/integration/validators/__snapshots__/ValidateTemplates.test.snap.js @@ -529,7 +529,7 @@ snapshots["ValidateTemplates OpenSCD integration test with issues in the DataTy `; /* end snapshot ValidateTemplates OpenSCD integration test with issues in the DataTypeTemplates section pushes issues to the diagnostics pane that look like the latest snapshot */ -snapshots["ValidateTemplates OpenSCD integration test with schema version smaller \"2007B3\" looks like the latest snapshot"] = +snapshots["ValidateTemplates OpenSCD integration test with schema version smaller \"2007B5\" looks like the latest snapshot"] = ` - - Cannot validate DataTypeTemplates. The version of the project must be higher than or equal to 2007B3 + Cannot validate DataTypeTemplates. The version of the project must be higher than or equal to 2007B5 @@ -574,5 +574,5 @@ snapshots["ValidateTemplates OpenSCD integration test with schema version small `; -/* end snapshot ValidateTemplates OpenSCD integration test with schema version smaller "2007B3" looks like the latest snapshot */ +/* end snapshot ValidateTemplates OpenSCD integration test with schema version smaller "2007B5" looks like the latest snapshot */ diff --git a/packages/plugins/test/testfiles/templates/dotypes.scd b/packages/plugins/test/testfiles/templates/dotypes.scd index b26c94203d..61d96017e7 100644 --- a/packages/plugins/test/testfiles/templates/dotypes.scd +++ b/packages/plugins/test/testfiles/templates/dotypes.scd @@ -1,5 +1,5 @@ - +
TrainingIEC61850 diff --git a/packages/plugins/test/testfiles/validators/datatypetemplateerrors.scd b/packages/plugins/test/testfiles/validators/datatypetemplateerrors.scd index 4fcc8359ac..719cc2b7f2 100644 --- a/packages/plugins/test/testfiles/validators/datatypetemplateerrors.scd +++ b/packages/plugins/test/testfiles/validators/datatypetemplateerrors.scd @@ -1,5 +1,5 @@ - +
TrainingIEC61850 diff --git a/packages/plugins/test/testfiles/validators/zeroissues.scd b/packages/plugins/test/testfiles/validators/zeroissues.scd index c432616962..de2bb22a0a 100644 --- a/packages/plugins/test/testfiles/validators/zeroissues.scd +++ b/packages/plugins/test/testfiles/validators/zeroissues.scd @@ -1,5 +1,5 @@ - +
diff --git a/packages/plugins/test/unit/validators/ValidateTemplates.test.ts b/packages/plugins/test/unit/validators/ValidateTemplates.test.ts index 3154a8655d..96f80598af 100644 --- a/packages/plugins/test/unit/validators/ValidateTemplates.test.ts +++ b/packages/plugins/test/unit/validators/ValidateTemplates.test.ts @@ -127,12 +127,12 @@ describe('ValidateTemplates', () => { ); }); - it('pushes only diag.missingnsd issue to diagnostics pane for SCL version < 2007B3', async () => { + it('pushes only diag.missingnsd issue to diagnostics pane for SCL version < 2007B5', async () => { element.doc.querySelector('SCL')?.setAttribute('version', '2003'); await element.validate(); expect(issueEvent).to.have.been.calledOnce; expect(issueEvent.args[0][0].detail.title).to.contain( - 'Cannot validate DataTypeTemplates. The version of the project must be higher than or equal to 2007B3' + 'Cannot validate DataTypeTemplates. The version of the project must be higher than or equal to 2007B5' ); }); @@ -142,7 +142,7 @@ describe('ValidateTemplates', () => { await element.validate(); expect(issueEvent).to.have.been.calledOnce; expect(issueEvent.args[0][0].detail.title).to.contain( - 'Cannot validate DataTypeTemplates. The version of the project must be higher than or equal to 2007B3' + 'Cannot validate DataTypeTemplates. The version of the project must be higher than or equal to 2007B5' ); }); From 5205a9f751d8e9dbc0cb5b2630af39c31dc09460 Mon Sep 17 00:00:00 2001 From: Christopher Lepski <139237321+clepski@users.noreply.github.com> Date: Mon, 4 Aug 2025 12:42:57 +0200 Subject: [PATCH 2/4] fix(Settings): Make language loader configureable (#1693) --- packages/openscd/src/addons/Layout.ts | 2 +- packages/openscd/src/addons/Settings.ts | 23 +++++++++++-------- packages/openscd/src/translations/loader.ts | 12 +++++++++- ...GooseSubscriberMessageBinding.test.snap.js | 8 +++---- .../SMVSubscriberMessageBinding.test.snap.js | 4 ++-- 5 files changed, 32 insertions(+), 17 deletions(-) diff --git a/packages/openscd/src/addons/Layout.ts b/packages/openscd/src/addons/Layout.ts index 30b21b5dd6..659c3f15fa 100644 --- a/packages/openscd/src/addons/Layout.ts +++ b/packages/openscd/src/addons/Layout.ts @@ -378,7 +378,7 @@ export class OscdLayout extends LitElement { `; } - private renderActionItem(me: MenuItem | 'divider'): TemplateResult { + protected renderActionItem(me: MenuItem | 'divider'): TemplateResult { if(me === 'divider' || !me.actionItem){ return html`` } return html` diff --git a/packages/openscd/src/addons/Settings.ts b/packages/openscd/src/addons/Settings.ts index ed69377c5c..5cea7d51e6 100644 --- a/packages/openscd/src/addons/Settings.ts +++ b/packages/openscd/src/addons/Settings.ts @@ -7,7 +7,7 @@ import { LitElement, css, } from 'lit-element'; -import { get, registerTranslateConfig, use } from 'lit-translate'; +import { get, registerTranslateConfig, Strings, use } from 'lit-translate'; import '@material/mwc-button'; import '@material/mwc-dialog'; @@ -32,7 +32,7 @@ import { LoadNsdocEvent, newLoadNsdocEvent } from '@openscd/core/foundation/deprecated/settings.js'; -import { languages, loader } from '../translations/loader.js'; +import { Languages, languages, loader } from '../translations/loader.js'; import '../WizardDivider.js'; import { WizardDialog } from '../wizard-dialog.js'; @@ -45,6 +45,11 @@ import { } from '../foundation/nsd.js'; import { initializeNsdoc, Nsdoc } from '../foundation/nsdoc.js'; +interface LanguageConfig { + loader(lang: string): Promise; + languages: Languages; +} + export const defaults: Settings = { language: 'en', theme: 'light', @@ -84,6 +89,9 @@ export class OscdSettings extends LitElement { @property({ type: Boolean }) nsdUploadButton = true; + @property({ type: Object }) + languageConfig: LanguageConfig = { languages, loader }; + /** * Get the versions of the current OpenSCD NSD files. * @returns Current version, revision and release for all current OpenSCD NSD files. @@ -333,15 +341,12 @@ export class OscdSettings extends LitElement { return new DOMParser().parseFromString(text, 'application/xml'); } - constructor() { - super(); + connectedCallback(): void { + super.connectedCallback(); - registerTranslateConfig({ loader, empty: key => key }); + registerTranslateConfig({ loader: this.languageConfig.loader, empty: key => key }); use(this.settings.language); - } - connectedCallback(): void { - super.connectedCallback(); if (this.host) { this.host!.addEventListener('oscd-settings', (evt: SettingsUIEvent) => { evt.detail.show ? this.settingsUI.show() : this.settingsUI.close(); @@ -365,7 +370,7 @@ export class OscdSettings extends LitElement { icon="language" label="${get('settings.language')}" > - ${Object.keys(languages).map( + ${Object.keys(this.languageConfig.languages).map( lang => html` - + - + - + - + - + - + Date: Mon, 4 Aug 2025 14:07:01 +0200 Subject: [PATCH 3/4] chore(main): release 0.41.0 (#1694) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .release-please-manifest.json | 2 +- CHANGELOG.md | 12 ++++++++++++ package-lock.json | 4 ++-- package.json | 2 +- 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index f968a95f5f..a35290123c 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,5 +1,5 @@ { "packages/openscd": "0.37.0", "packages/core": "0.1.4", - ".": "0.40.0" + ".": "0.41.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 4159866670..17e2c8249d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +## [0.41.0](https://github.com/openscd/open-scd/compare/v0.40.0...v0.41.0) (2025-08-04) + + +### Features + +* update nsd files ([#1691](https://github.com/openscd/open-scd/issues/1691)) ([c437f5a](https://github.com/openscd/open-scd/commit/c437f5acaf5a45032cfae559ecf70de968913d45)) + + +### Bug Fixes + +* **Settings:** Make language loader configureable ([#1693](https://github.com/openscd/open-scd/issues/1693)) ([5205a9f](https://github.com/openscd/open-scd/commit/5205a9f751d8e9dbc0cb5b2630af39c31dc09460)) + ## [0.40.0](https://github.com/openscd/open-scd/compare/v0.39.0...v0.40.0) (2025-07-31) diff --git a/package-lock.json b/package-lock.json index 1aca2646e2..b4b477009c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "openscd-monorepo", - "version": "0.40.0", + "version": "0.41.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "openscd-monorepo", - "version": "0.40.0", + "version": "0.41.0", "license": "Apache-2.0", "workspaces": [ "packages/*" diff --git a/package.json b/package.json index 73a8e66a23..0381cd62df 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "openscd-monorepo", - "version": "0.40.0", + "version": "0.41.0", "description": "OpenSCD base distribution and plugins", "private": true, "workspaces": [ From 7c027d2af43d5cc15db13e5beec4831f1e82007d Mon Sep 17 00:00:00 2001 From: Christopher Lepski <139237321+clepski@users.noreply.github.com> Date: Mon, 4 Aug 2025 14:11:43 +0200 Subject: [PATCH 4/4] chore: Update package.json Signed-off-by: Christopher Lepski <139237321+clepski@users.noreply.github.com> --- packages/compas-open-scd/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/compas-open-scd/package.json b/packages/compas-open-scd/package.json index b5ebb7b2af..6c9774552a 100644 --- a/packages/compas-open-scd/package.json +++ b/packages/compas-open-scd/package.json @@ -1,6 +1,6 @@ { "name": "compas-open-scd", - "version": "0.40.0-1", + "version": "0.41.0-1", "repository": "https://github.com/openscd/open-scd.git", "description": "OpenSCD CoMPAS Edition", "directory": "packages/compas-open-scd",