@openscd/scl-lib 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENCE +201 -0
- package/README.md +20 -0
- package/dist/foundation/codecomponents/nsds.d.ts +5 -0
- package/dist/foundation/codecomponents/nsds.js +22435 -0
- package/dist/foundation/codecomponents/nsds.js.map +1 -0
- package/dist/foundation/nsd.json +137748 -0
- package/dist/foundation/uniqueElementName.d.ts +2 -0
- package/dist/foundation/uniqueElementName.js +18 -0
- package/dist/foundation/uniqueElementName.js.map +1 -0
- package/dist/foundation/utils.d.ts +20 -0
- package/dist/foundation/utils.js +14 -0
- package/dist/foundation/utils.js.map +1 -0
- package/dist/generator/appIdGenerator.d.ts +21 -0
- package/dist/generator/appIdGenerator.js +53 -0
- package/dist/generator/appIdGenerator.js.map +1 -0
- package/dist/generator/lnInstGenerator.d.ts +16 -0
- package/dist/generator/lnInstGenerator.js +41 -0
- package/dist/generator/lnInstGenerator.js.map +1 -0
- package/dist/generator/macAddressGenerator.d.ts +14 -0
- package/dist/generator/macAddressGenerator.js +39 -0
- package/dist/generator/macAddressGenerator.js.map +1 -0
- package/dist/index.d.ts +61 -0
- package/dist/index.js +55 -0
- package/dist/index.js.map +1 -0
- package/dist/tAddress/changeGseOrSmvAddress.d.ts +14 -0
- package/dist/tAddress/changeGseOrSmvAddress.js +43 -0
- package/dist/tAddress/changeGseOrSmvAddress.js.map +1 -0
- package/dist/tBaseElement/find.d.ts +6 -0
- package/dist/tBaseElement/find.js +529 -0
- package/dist/tBaseElement/find.js.map +1 -0
- package/dist/tBaseElement/getChildren.d.ts +5 -0
- package/dist/tBaseElement/getChildren.js +12 -0
- package/dist/tBaseElement/getChildren.js.map +1 -0
- package/dist/tBaseElement/getReference.d.ts +9 -0
- package/dist/tBaseElement/getReference.js +31 -0
- package/dist/tBaseElement/getReference.js.map +1 -0
- package/dist/tBaseElement/identity.d.ts +2 -0
- package/dist/tBaseElement/identity.js +566 -0
- package/dist/tBaseElement/identity.js.map +1 -0
- package/dist/tBaseElement/isPublic.d.ts +2 -0
- package/dist/tBaseElement/isPublic.js +5 -0
- package/dist/tBaseElement/isPublic.js.map +1 -0
- package/dist/tBaseElement/parentTags.d.ts +3 -0
- package/dist/tBaseElement/parentTags.js +8 -0
- package/dist/tBaseElement/parentTags.js.map +1 -0
- package/dist/tBaseElement/tags.d.ts +8 -0
- package/dist/tBaseElement/tags.js +807 -0
- package/dist/tBaseElement/tags.js.map +1 -0
- package/dist/tBay/updateBay.d.ts +5 -0
- package/dist/tBay/updateBay.js +81 -0
- package/dist/tBay/updateBay.js.map +1 -0
- package/dist/tControl/controlBlockGseOrSmv.d.ts +7 -0
- package/dist/tControl/controlBlockGseOrSmv.js +26 -0
- package/dist/tControl/controlBlockGseOrSmv.js.map +1 -0
- package/dist/tControl/controlBlockObjRef.d.ts +2 -0
- package/dist/tControl/controlBlockObjRef.js +14 -0
- package/dist/tControl/controlBlockObjRef.js.map +1 -0
- package/dist/tControl/controlBlocks.d.ts +2 -0
- package/dist/tControl/controlBlocks.js +9 -0
- package/dist/tControl/controlBlocks.js.map +1 -0
- package/dist/tControl/findControlSubscription.d.ts +2 -0
- package/dist/tControl/findControlSubscription.js +8 -0
- package/dist/tControl/findControlSubscription.js.map +1 -0
- package/dist/tControl/pathId.d.ts +1 -0
- package/dist/tControl/pathId.js +9 -0
- package/dist/tControl/pathId.js.map +1 -0
- package/dist/tControl/removeControlBlock.d.ts +14 -0
- package/dist/tControl/removeControlBlock.js +35 -0
- package/dist/tControl/removeControlBlock.js.map +1 -0
- package/dist/tControl/updateConfRev.d.ts +2 -0
- package/dist/tControl/updateConfRev.js +8 -0
- package/dist/tControl/updateConfRev.js.map +1 -0
- package/dist/tControl/updateDatSet.d.ts +6 -0
- package/dist/tControl/updateDatSet.js +22 -0
- package/dist/tControl/updateDatSet.js.map +1 -0
- package/dist/tControlWithIEDName/connctedAp.d.ts +2 -0
- package/dist/tControlWithIEDName/connctedAp.js +7 -0
- package/dist/tControlWithIEDName/connctedAp.js.map +1 -0
- package/dist/tDataSet/canAddDataSet.d.ts +4 -0
- package/dist/tDataSet/canAddDataSet.js +44 -0
- package/dist/tDataSet/canAddDataSet.js.map +1 -0
- package/dist/tDataSet/createDataSet.d.ts +9 -0
- package/dist/tDataSet/createDataSet.js +33 -0
- package/dist/tDataSet/createDataSet.js.map +1 -0
- package/dist/tDataSet/removeDataSet.d.ts +10 -0
- package/dist/tDataSet/removeDataSet.js +27 -0
- package/dist/tDataSet/removeDataSet.js.map +1 -0
- package/dist/tDataSet/updateDataSet.d.ts +7 -0
- package/dist/tDataSet/updateDataSet.js +28 -0
- package/dist/tDataSet/updateDataSet.js.map +1 -0
- package/dist/tDataTypeTemplates/foundation.d.ts +2 -0
- package/dist/tDataTypeTemplates/foundation.js +118 -0
- package/dist/tDataTypeTemplates/foundation.js.map +1 -0
- package/dist/tDataTypeTemplates/importLNodeType.d.ts +13 -0
- package/dist/tDataTypeTemplates/importLNodeType.js +88 -0
- package/dist/tDataTypeTemplates/importLNodeType.js.map +1 -0
- package/dist/tDataTypeTemplates/insertSelectedLNodeType.d.ts +20 -0
- package/dist/tDataTypeTemplates/insertSelectedLNodeType.js +187 -0
- package/dist/tDataTypeTemplates/insertSelectedLNodeType.js.map +1 -0
- package/dist/tDataTypeTemplates/lNodeTypeToSelection.d.ts +8 -0
- package/dist/tDataTypeTemplates/lNodeTypeToSelection.js +67 -0
- package/dist/tDataTypeTemplates/lNodeTypeToSelection.js.map +1 -0
- package/dist/tDataTypeTemplates/nsdToJson.d.ts +101 -0
- package/dist/tDataTypeTemplates/nsdToJson.js +433 -0
- package/dist/tDataTypeTemplates/nsdToJson.js.map +1 -0
- package/dist/tDataTypeTemplates/removeDataType.d.ts +12 -0
- package/dist/tDataTypeTemplates/removeDataType.js +62 -0
- package/dist/tDataTypeTemplates/removeDataType.js.map +1 -0
- package/dist/tDataTypeTemplates/updateLNodeType.d.ts +2 -0
- package/dist/tDataTypeTemplates/updateLNodeType.js +22 -0
- package/dist/tDataTypeTemplates/updateLNodeType.js.map +1 -0
- package/dist/tExtRef/doesFcdaMeetExtRefRestrictions.d.ts +16 -0
- package/dist/tExtRef/doesFcdaMeetExtRefRestrictions.js +52 -0
- package/dist/tExtRef/doesFcdaMeetExtRefRestrictions.js.map +1 -0
- package/dist/tExtRef/extRefTypeRestrictions.d.ts +17 -0
- package/dist/tExtRef/extRefTypeRestrictions.js +32 -0
- package/dist/tExtRef/extRefTypeRestrictions.js.map +1 -0
- package/dist/tExtRef/isSubscribed.d.ts +7 -0
- package/dist/tExtRef/isSubscribed.js +23 -0
- package/dist/tExtRef/isSubscribed.js.map +1 -0
- package/dist/tExtRef/matchDataAttributes.d.ts +2 -0
- package/dist/tExtRef/matchDataAttributes.js +13 -0
- package/dist/tExtRef/matchDataAttributes.js.map +1 -0
- package/dist/tExtRef/matchSrcAttributes.d.ts +2 -0
- package/dist/tExtRef/matchSrcAttributes.js +28 -0
- package/dist/tExtRef/matchSrcAttributes.js.map +1 -0
- package/dist/tExtRef/sourceControlBlock.d.ts +8 -0
- package/dist/tExtRef/sourceControlBlock.js +52 -0
- package/dist/tExtRef/sourceControlBlock.js.map +1 -0
- package/dist/tExtRef/subscribe.d.ts +47 -0
- package/dist/tExtRef/subscribe.js +187 -0
- package/dist/tExtRef/subscribe.js.map +1 -0
- package/dist/tExtRef/unsubscribe.d.ts +27 -0
- package/dist/tExtRef/unsubscribe.js +55 -0
- package/dist/tExtRef/unsubscribe.js.map +1 -0
- package/dist/tFCDA/canAddFCDA.d.ts +10 -0
- package/dist/tFCDA/canAddFCDA.js +42 -0
- package/dist/tFCDA/canAddFCDA.js.map +1 -0
- package/dist/tFCDA/fcdaBaseTypes.d.ts +11 -0
- package/dist/tFCDA/fcdaBaseTypes.js +56 -0
- package/dist/tFCDA/fcdaBaseTypes.js.map +1 -0
- package/dist/tFCDA/removeFCDA.d.ts +8 -0
- package/dist/tFCDA/removeFCDA.js +33 -0
- package/dist/tFCDA/removeFCDA.js.map +1 -0
- package/dist/tGSE/changeGSEContent.d.ts +17 -0
- package/dist/tGSE/changeGSEContent.js +53 -0
- package/dist/tGSE/changeGSEContent.js.map +1 -0
- package/dist/tGSE/createGSE.d.ts +20 -0
- package/dist/tGSE/createGSE.js +44 -0
- package/dist/tGSE/createGSE.js.map +1 -0
- package/dist/tGSEControl/canAddGSEControl.d.ts +4 -0
- package/dist/tGSEControl/canAddGSEControl.js +27 -0
- package/dist/tGSEControl/canAddGSEControl.js.map +1 -0
- package/dist/tGSEControl/createGSEControl.d.ts +49 -0
- package/dist/tGSEControl/createGSEControl.js +65 -0
- package/dist/tGSEControl/createGSEControl.js.map +1 -0
- package/dist/tGSEControl/updateGSEControl.d.ts +15 -0
- package/dist/tGSEControl/updateGSEControl.js +61 -0
- package/dist/tGSEControl/updateGSEControl.js.map +1 -0
- package/dist/tIED/insertIED.d.ts +13 -0
- package/dist/tIED/insertIED.js +245 -0
- package/dist/tIED/insertIED.js.map +1 -0
- package/dist/tIED/removeIED.d.ts +14 -0
- package/dist/tIED/removeIED.js +70 -0
- package/dist/tIED/removeIED.js.map +1 -0
- package/dist/tIED/updateIED.d.ts +17 -0
- package/dist/tIED/updateIED.js +185 -0
- package/dist/tIED/updateIED.js.map +1 -0
- package/dist/tInputs/removeInputs.d.ts +7 -0
- package/dist/tInputs/removeInputs.js +25 -0
- package/dist/tInputs/removeInputs.js.map +1 -0
- package/dist/tLN/removeSubscriptionSupervision.d.ts +7 -0
- package/dist/tLN/removeSubscriptionSupervision.js +94 -0
- package/dist/tLN/removeSubscriptionSupervision.js.map +1 -0
- package/dist/tLN/supervision/canInstantiateSubscriptionSupervision.d.ts +13 -0
- package/dist/tLN/supervision/canInstantiateSubscriptionSupervision.js +116 -0
- package/dist/tLN/supervision/canInstantiateSubscriptionSupervision.js.map +1 -0
- package/dist/tLN/supervision/createSupervisionEdit.d.ts +20 -0
- package/dist/tLN/supervision/createSupervisionEdit.js +129 -0
- package/dist/tLN/supervision/createSupervisionEdit.js.map +1 -0
- package/dist/tLN/supervision/findControlBlockOnSrcAttributes.d.ts +10 -0
- package/dist/tLN/supervision/findControlBlockOnSrcAttributes.js +13 -0
- package/dist/tLN/supervision/findControlBlockOnSrcAttributes.js.map +1 -0
- package/dist/tLN/supervision/foundation.d.ts +37 -0
- package/dist/tLN/supervision/foundation.js +43 -0
- package/dist/tLN/supervision/foundation.js.map +1 -0
- package/dist/tLN/supervision/insertSubscriptionSupervisions.d.ts +11 -0
- package/dist/tLN/supervision/insertSubscriptionSupervisions.js +98 -0
- package/dist/tLN/supervision/insertSubscriptionSupervisions.js.map +1 -0
- package/dist/tLN/supervision/instantiateSubscriptionSupervision.d.ts +10 -0
- package/dist/tLN/supervision/instantiateSubscriptionSupervision.js +36 -0
- package/dist/tLN/supervision/instantiateSubscriptionSupervision.js.map +1 -0
- package/dist/tLN/supervision/removeSupervision.d.ts +7 -0
- package/dist/tLN/supervision/removeSupervision.js +39 -0
- package/dist/tLN/supervision/removeSupervision.js.map +1 -0
- package/dist/tReportControl/canAddReportControl.d.ts +11 -0
- package/dist/tReportControl/canAddReportControl.js +24 -0
- package/dist/tReportControl/canAddReportControl.js.map +1 -0
- package/dist/tReportControl/createReportControl.d.ts +68 -0
- package/dist/tReportControl/createReportControl.js +78 -0
- package/dist/tReportControl/createReportControl.js.map +1 -0
- package/dist/tReportControl/numberReportControlInstances.d.ts +5 -0
- package/dist/tReportControl/numberReportControlInstances.js +19 -0
- package/dist/tReportControl/numberReportControlInstances.js.map +1 -0
- package/dist/tReportControl/updateReportControl.d.ts +5 -0
- package/dist/tReportControl/updateReportControl.js +24 -0
- package/dist/tReportControl/updateReportControl.js.map +1 -0
- package/dist/tSMV/changeSMVContent.d.ts +3 -0
- package/dist/tSMV/changeSMVContent.js +5 -0
- package/dist/tSMV/changeSMVContent.js.map +1 -0
- package/dist/tSMV/createSMV.d.ts +16 -0
- package/dist/tSMV/createSMV.js +32 -0
- package/dist/tSMV/createSMV.js.map +1 -0
- package/dist/tSampledValueControl/canAddSampledValueControl.d.ts +4 -0
- package/dist/tSampledValueControl/canAddSampledValueControl.js +27 -0
- package/dist/tSampledValueControl/canAddSampledValueControl.js.map +1 -0
- package/dist/tSampledValueControl/createSampledValueControl.d.ts +66 -0
- package/dist/tSampledValueControl/createSampledValueControl.js +74 -0
- package/dist/tSampledValueControl/createSampledValueControl.js.map +1 -0
- package/dist/tSampledValueControl/updateSampledValueControl.d.ts +14 -0
- package/dist/tSampledValueControl/updateSampledValueControl.js +60 -0
- package/dist/tSampledValueControl/updateSampledValueControl.js.map +1 -0
- package/dist/tServices/tConfReportControl/maxReportControl.d.ts +9 -0
- package/dist/tServices/tConfReportControl/maxReportControl.js +14 -0
- package/dist/tServices/tConfReportControl/maxReportControl.js.map +1 -0
- package/dist/tSubstation/removeProcessElement.d.ts +9 -0
- package/dist/tSubstation/removeProcessElement.js +50 -0
- package/dist/tSubstation/removeProcessElement.js.map +1 -0
- package/dist/tSubstation/updateLnType.d.ts +8 -0
- package/dist/tSubstation/updateLnType.js +96 -0
- package/dist/tSubstation/updateLnType.js.map +1 -0
- package/dist/tSubstation/updateSubstation.d.ts +5 -0
- package/dist/tSubstation/updateSubstation.js +75 -0
- package/dist/tSubstation/updateSubstation.js.map +1 -0
- package/dist/tVoltageLevel/updateVoltageLevel.d.ts +5 -0
- package/dist/tVoltageLevel/updateVoltageLevel.js +83 -0
- package/dist/tVoltageLevel/updateVoltageLevel.js.map +1 -0
- package/package.json +43 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tags.js","sourceRoot":"","sources":["../../tBaseElement/tags.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { SetAttributes } from "@openscd/oscd-api";
|
|
2
|
+
/** Updates `Bay` attributes and cross-referenced elements
|
|
3
|
+
* @param setAttributes - setAttributes edit on `Bay` attributes
|
|
4
|
+
* @returns Completed update edit array */
|
|
5
|
+
export declare function updateBay(setAttributes: SetAttributes): SetAttributes[];
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
function updateSourceRef(element, { oldSubstation, oldVoltageLevel, oldBay, newBay, }) {
|
|
2
|
+
const sourceRefs = Array.from(element.ownerDocument.querySelectorAll('Private[type="eIEC61850-6-100"]>LNodeInputs>SourceRef'));
|
|
3
|
+
const setAttributes = [];
|
|
4
|
+
sourceRefs.forEach((srcRef) => {
|
|
5
|
+
const source = srcRef.getAttribute("source");
|
|
6
|
+
if (!source)
|
|
7
|
+
return;
|
|
8
|
+
const oldPath = `${oldSubstation}/${oldVoltageLevel}/${oldBay}`;
|
|
9
|
+
if (!source.startsWith(oldPath))
|
|
10
|
+
return;
|
|
11
|
+
const newPath = `${oldSubstation}/${oldVoltageLevel}/${newBay}`;
|
|
12
|
+
setAttributes.push({
|
|
13
|
+
element: srcRef,
|
|
14
|
+
attributes: { source: source.replace(oldPath, newPath) },
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
return setAttributes.filter((update) => update);
|
|
18
|
+
}
|
|
19
|
+
function updateConnectivityNodes(element, { substation, voltageLevel, bayName, }) {
|
|
20
|
+
const cNodes = Array.from(element.getElementsByTagName("ConnectivityNode"));
|
|
21
|
+
const updates = [];
|
|
22
|
+
cNodes.forEach((cNode) => {
|
|
23
|
+
const cNodeName = cNode.getAttribute("name");
|
|
24
|
+
if (!cNodeName)
|
|
25
|
+
return;
|
|
26
|
+
const connectivityNode = `${substation}/${voltageLevel}/${bayName}/${cNodeName}`;
|
|
27
|
+
updates.push({
|
|
28
|
+
element: cNode,
|
|
29
|
+
attributes: { pathName: connectivityNode },
|
|
30
|
+
});
|
|
31
|
+
const oldConnectivityNode = cNode.getAttribute("pathName");
|
|
32
|
+
if (!oldConnectivityNode)
|
|
33
|
+
return;
|
|
34
|
+
updates.push(...updateTerminals(element, {
|
|
35
|
+
oldConnectivityNode,
|
|
36
|
+
connectivityNode,
|
|
37
|
+
bayName,
|
|
38
|
+
}));
|
|
39
|
+
});
|
|
40
|
+
return updates.filter((update) => update);
|
|
41
|
+
}
|
|
42
|
+
function updateTerminals(element, { oldConnectivityNode, connectivityNode, bayName, }) {
|
|
43
|
+
const terminals = Array.from(element.closest("Substation").querySelectorAll(`Terminal[connectivityNode="${oldConnectivityNode}"],
|
|
44
|
+
NeutralPoint[connectivityNode="${oldConnectivityNode}"]`));
|
|
45
|
+
const setAttributes = terminals.map((terminal) => ({
|
|
46
|
+
element: terminal,
|
|
47
|
+
attributes: {
|
|
48
|
+
connectivityNode,
|
|
49
|
+
bayName,
|
|
50
|
+
},
|
|
51
|
+
}));
|
|
52
|
+
return setAttributes;
|
|
53
|
+
}
|
|
54
|
+
/** Updates `Bay` attributes and cross-referenced elements
|
|
55
|
+
* @param setAttributes - setAttributes edit on `Bay` attributes
|
|
56
|
+
* @returns Completed update edit array */
|
|
57
|
+
export function updateBay(setAttributes) {
|
|
58
|
+
if (setAttributes.element.tagName !== "Bay")
|
|
59
|
+
return [setAttributes];
|
|
60
|
+
const bay = setAttributes.element;
|
|
61
|
+
const attributes = setAttributes.attributes;
|
|
62
|
+
if (!attributes || !attributes.name)
|
|
63
|
+
return [setAttributes];
|
|
64
|
+
const oldName = bay.getAttribute("name");
|
|
65
|
+
const substationName = bay.closest("Substation")?.getAttribute("name");
|
|
66
|
+
const voltageLevelName = bay.closest("VoltageLevel")?.getAttribute("name");
|
|
67
|
+
const newName = attributes.name;
|
|
68
|
+
if (!substationName || !voltageLevelName || !oldName || oldName === newName)
|
|
69
|
+
return [setAttributes];
|
|
70
|
+
return [setAttributes].concat(...updateConnectivityNodes(bay, {
|
|
71
|
+
substation: substationName,
|
|
72
|
+
voltageLevel: voltageLevelName,
|
|
73
|
+
bayName: newName,
|
|
74
|
+
}), ...updateSourceRef(bay, {
|
|
75
|
+
oldSubstation: substationName,
|
|
76
|
+
oldVoltageLevel: voltageLevelName,
|
|
77
|
+
oldBay: oldName,
|
|
78
|
+
newBay: newName,
|
|
79
|
+
}));
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=updateBay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateBay.js","sourceRoot":"","sources":["../../tBay/updateBay.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Looks up Communication section GSE or SMV addresses based on the control block
|
|
3
|
+
* within the IED section (GSEControl or SampledValueControl).
|
|
4
|
+
* @param ctrlBlock - SCL control block element (GSEControl or SampledValueControl)
|
|
5
|
+
* @returns SCL GSE or SMV address element or null if not found.
|
|
6
|
+
*/
|
|
7
|
+
export declare function controlBlockGseOrSmv(ctrlBlock: Element): Element | null;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { crossProduct } from "../foundation/utils.js";
|
|
2
|
+
/**
|
|
3
|
+
* Looks up Communication section GSE or SMV addresses based on the control block
|
|
4
|
+
* within the IED section (GSEControl or SampledValueControl).
|
|
5
|
+
* @param ctrlBlock - SCL control block element (GSEControl or SampledValueControl)
|
|
6
|
+
* @returns SCL GSE or SMV address element or null if not found.
|
|
7
|
+
*/
|
|
8
|
+
export function controlBlockGseOrSmv(ctrlBlock) {
|
|
9
|
+
const doc = ctrlBlock.ownerDocument;
|
|
10
|
+
const ctrlLdInst = ctrlBlock.closest("LDevice")?.getAttribute("inst");
|
|
11
|
+
const ied = ctrlBlock.closest("IED");
|
|
12
|
+
const addressTag = ctrlBlock.tagName === "GSEControl" ? "GSE" : "SMV";
|
|
13
|
+
const apName = ctrlBlock.closest("AccessPoint")?.getAttribute("name");
|
|
14
|
+
if (!ctrlLdInst || !ied || !apName)
|
|
15
|
+
return null;
|
|
16
|
+
const serverAts = Array.from(ied.querySelectorAll(`AccessPoint > ServerAt[apName="${apName}"`)).map((ap) => ap.closest("AccessPoint").getAttribute("name"));
|
|
17
|
+
const iedName = ied.getAttribute("name");
|
|
18
|
+
const connectedAps = `:root > Communication > SubNetwork > ConnectedAP[iedName="${iedName}"]`;
|
|
19
|
+
const connectedApNames = [apName, ...serverAts].map((ap) => `[apName="${ap}"]`);
|
|
20
|
+
const cbName = ctrlBlock.getAttribute("name");
|
|
21
|
+
const addressElement = `${addressTag}[ldInst="${ctrlLdInst}"][cbName="${cbName}"]`;
|
|
22
|
+
return doc.querySelector(crossProduct([connectedAps], connectedApNames, [">"], [addressElement])
|
|
23
|
+
.map((strings) => strings.join(""))
|
|
24
|
+
.join(","));
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=controlBlockGseOrSmv.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controlBlockGseOrSmv.js","sourceRoot":"","sources":["../../tControl/controlBlockGseOrSmv.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,SAAkB;IACrD,MAAM,GAAG,GAAG,SAAS,CAAC,aAAa,CAAC;IAEpC,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IACtE,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACrC,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,KAAK,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IAEtE,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAEtE,IAAI,CAAC,UAAU,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAEhD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAC1B,GAAG,CAAC,gBAAgB,CAAC,kCAAkC,MAAM,GAAG,CAAC,CAClE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,aAAa,CAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IAE/D,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,YAAY,GAAG,6DAA6D,OAAO,IAAI,CAAC;IAC9F,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,GAAG,CACjD,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,EAAE,IAAI,CAC3B,CAAC;IACF,MAAM,MAAM,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,cAAc,GAAG,GAAG,UAAU,YAAY,UAAU,cAAc,MAAM,IAAI,CAAC;IAEnF,OAAO,GAAG,CAAC,aAAa,CACtB,YAAY,CAAC,CAAC,YAAY,CAAC,EAAE,gBAAgB,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC;SACpE,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAClC,IAAI,CAAC,GAAG,CAAC,CACb,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** @returns object reference acc. IEC 61850-7-3 for control block elements */
|
|
2
|
+
export function controlBlockObjRef(ctrlBlock) {
|
|
3
|
+
const iedName = ctrlBlock.closest("IED")?.getAttribute("name");
|
|
4
|
+
const ldInst = ctrlBlock.closest("LDevice")?.getAttribute("inst");
|
|
5
|
+
const parentLn = ctrlBlock.closest("LN,LN0");
|
|
6
|
+
const prefix = parentLn?.getAttribute("prefix") ?? "";
|
|
7
|
+
const lnClass = parentLn?.getAttribute("lnClass");
|
|
8
|
+
const lnInst = parentLn?.getAttribute("inst") ?? "";
|
|
9
|
+
const cbName = ctrlBlock.getAttribute("name");
|
|
10
|
+
if (!iedName || !ldInst || !lnClass || !cbName)
|
|
11
|
+
return null;
|
|
12
|
+
return `${iedName}${ldInst}/${prefix}${lnClass}${lnInst}.${cbName}`;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=controlBlockObjRef.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controlBlockObjRef.js","sourceRoot":"","sources":["../../tControl/controlBlockObjRef.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,MAAM,UAAU,kBAAkB,CAAC,SAAkB;IACnD,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAElE,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE7C,MAAM,MAAM,GAAG,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACtD,MAAM,OAAO,GAAG,QAAQ,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,QAAQ,EAAE,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAEpD,MAAM,MAAM,GAAG,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAC9C,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAE5D,OAAO,GAAG,OAAO,GAAG,MAAM,IAAI,MAAM,GAAG,OAAO,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC;AACtE,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** @returns control blocks for a given data attribute or data set */
|
|
2
|
+
export function controlBlocks(fcdaOrDataSet) {
|
|
3
|
+
const datSet = fcdaOrDataSet.closest("DataSet")?.getAttribute("name");
|
|
4
|
+
const parentLn = fcdaOrDataSet.closest("LN0, LN");
|
|
5
|
+
return Array.from(parentLn?.querySelectorAll(`:scope > ReportControl[datSet="${datSet}"],
|
|
6
|
+
:scope > GSEControl[datSet="${datSet}"],
|
|
7
|
+
:scope > SampledValueControl[datSet="${datSet}"]`) ?? []);
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=controlBlocks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controlBlocks.js","sourceRoot":"","sources":["../../tControl/controlBlocks.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,MAAM,UAAU,aAAa,CAAC,aAAsB;IAClD,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IACtE,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAElD,OAAO,KAAK,CAAC,IAAI,CACf,QAAQ,EAAE,gBAAgB,CACxB,kCAAkC,MAAM;oCACV,MAAM;6CACG,MAAM,IAAI,CAClD,IAAI,EAAE,CACR,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { matchSrcAttributes } from "../tExtRef/matchSrcAttributes.js";
|
|
2
|
+
/** @returns all ExtRef element subscribed to a control block element */
|
|
3
|
+
export function findControlBlockSubscription(control) {
|
|
4
|
+
const doc = control.ownerDocument;
|
|
5
|
+
const iedName = control.closest("IED")?.getAttribute("name");
|
|
6
|
+
return Array.from(doc.querySelectorAll(`ExtRef[iedName="${iedName}"]`)).filter((extRef) => matchSrcAttributes(extRef, control));
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=findControlSubscription.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"findControlSubscription.js","sourceRoot":"","sources":["../../tControl/findControlSubscription.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEtE,wEAAwE;AACxE,MAAM,UAAU,4BAA4B,CAAC,OAAgB;IAC3D,MAAM,GAAG,GAAG,OAAO,CAAC,aAAa,CAAC;IAClC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAE7D,OAAO,KAAK,CAAC,IAAI,CACf,GAAG,CAAC,gBAAgB,CAAC,mBAAmB,OAAO,IAAI,CAAC,CACrD,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAC5D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function pathId(ln0: Element, cbName: string): string;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export function pathId(ln0, cbName) {
|
|
2
|
+
const iedName = ln0.closest("IED")?.getAttribute("name");
|
|
3
|
+
const ldInst = ln0.closest("LDevice")?.getAttribute("inst");
|
|
4
|
+
const prefix = ln0.getAttribute("prefix") ?? "";
|
|
5
|
+
const lnClass = ln0.getAttribute("lnClass");
|
|
6
|
+
const inst = ln0.getAttribute("inst");
|
|
7
|
+
return `${iedName}/${ldInst}/${prefix}${lnClass}${inst}/${cbName}`;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=pathId.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pathId.js","sourceRoot":"","sources":["../../tControl/pathId.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,MAAM,CAAC,GAAY,EAAE,MAAc;IACjD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IAChD,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAEtC,OAAO,GAAG,OAAO,IAAI,MAAM,IAAI,MAAM,GAAG,OAAO,GAAG,IAAI,IAAI,MAAM,EAAE,CAAC;AACrE,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Remove, SetAttributes } from "@openscd/oscd-api";
|
|
2
|
+
/**
|
|
3
|
+
* Utility function to remove a `ReportControl`, `GSEControl`, `SampledValueControl`
|
|
4
|
+
* element aka control blocks.
|
|
5
|
+
* ```md
|
|
6
|
+
* - removes the control block element itself
|
|
7
|
+
* - removes DataSet element if only used by the control block exclusively
|
|
8
|
+
* - unsubscribe data, if necessary
|
|
9
|
+
* - remove subscription supervision, if necessary
|
|
10
|
+
* ```
|
|
11
|
+
* @param remove - Remove edit for the control block element
|
|
12
|
+
* @returns Action array removing control block and its referenced data
|
|
13
|
+
* */
|
|
14
|
+
export declare function removeControlBlock(remove: Remove): (Remove | SetAttributes)[];
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { removeDataSet } from "../tDataSet/removeDataSet.js";
|
|
2
|
+
import { unsubscribe } from "../tExtRef/unsubscribe.js";
|
|
3
|
+
import { controlBlockGseOrSmv } from "./controlBlockGseOrSmv.js";
|
|
4
|
+
import { controlBlocks } from "./controlBlocks.js";
|
|
5
|
+
import { findControlBlockSubscription } from "./findControlSubscription.js";
|
|
6
|
+
/**
|
|
7
|
+
* Utility function to remove a `ReportControl`, `GSEControl`, `SampledValueControl`
|
|
8
|
+
* element aka control blocks.
|
|
9
|
+
* ```md
|
|
10
|
+
* - removes the control block element itself
|
|
11
|
+
* - removes DataSet element if only used by the control block exclusively
|
|
12
|
+
* - unsubscribe data, if necessary
|
|
13
|
+
* - remove subscription supervision, if necessary
|
|
14
|
+
* ```
|
|
15
|
+
* @param remove - Remove edit for the control block element
|
|
16
|
+
* @returns Action array removing control block and its referenced data
|
|
17
|
+
* */
|
|
18
|
+
export function removeControlBlock(remove) {
|
|
19
|
+
if (!["ReportControl", "GSEControl", "SampledValueControl"].includes(remove.node.tagName))
|
|
20
|
+
return [];
|
|
21
|
+
const controlBlock = remove.node;
|
|
22
|
+
const ctrlBlockRemoveAction = [{ node: controlBlock }];
|
|
23
|
+
const dataSet = controlBlock.parentElement?.querySelector(`DataSet[name="${controlBlock.getAttribute("datSet")}"]`);
|
|
24
|
+
const dataSetRemove = [];
|
|
25
|
+
if (dataSet && controlBlocks(dataSet).length > 1) {
|
|
26
|
+
dataSetRemove.push(...unsubscribe(findControlBlockSubscription(controlBlock)));
|
|
27
|
+
}
|
|
28
|
+
else if (dataSet) {
|
|
29
|
+
dataSetRemove.push(...removeDataSet({ node: dataSet }));
|
|
30
|
+
}
|
|
31
|
+
const gse = controlBlockGseOrSmv(controlBlock);
|
|
32
|
+
const gseRemove = gse ? [{ node: gse }] : [];
|
|
33
|
+
return ctrlBlockRemoveAction.concat(dataSetRemove, gseRemove);
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=removeControlBlock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"removeControlBlock.js","sourceRoot":"","sources":["../../tControl/removeControlBlock.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAE5E;;;;;;;;;;;KAWK;AACL,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,IACE,CAAC,CAAC,eAAe,EAAE,YAAY,EAAE,qBAAqB,CAAC,CAAC,QAAQ,CAC7D,MAAM,CAAC,IAAgB,CAAC,OAAO,CACjC;QAED,OAAO,EAAE,CAAC;IAEZ,MAAM,YAAY,GAAG,MAAM,CAAC,IAAe,CAAC;IAE5C,MAAM,qBAAqB,GAA+B,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;IAEnF,MAAM,OAAO,GAAG,YAAY,CAAC,aAAa,EAAE,aAAa,CACvD,iBAAiB,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CACzD,CAAC;IACF,MAAM,aAAa,GAA+B,EAAE,CAAC;IACrD,IAAI,OAAO,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;QAChD,aAAa,CAAC,IAAI,CAChB,GAAG,WAAW,CAAC,4BAA4B,CAAC,YAAY,CAAC,CAAC,CAC3D,CAAC;KACH;SAAM,IAAI,OAAO,EAAE;QAClB,aAAa,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;KACzD;IAED,MAAM,GAAG,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE7C,OAAO,qBAAqB,CAAC,MAAM,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;AAChE,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** @returns Updated confRev attribute of control block */
|
|
2
|
+
export function updatedConfRev(control) {
|
|
3
|
+
const confRev = parseInt(control.getAttribute("confRev") ?? "0", 10);
|
|
4
|
+
if (confRev === 0)
|
|
5
|
+
return `${confRev + 1}`;
|
|
6
|
+
return `${confRev + 10000}`;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=updateConfRev.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateConfRev.js","sourceRoot":"","sources":["../../tControl/updateConfRev.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,MAAM,UAAU,cAAc,CAAC,OAAgB;IAC7C,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;IAErE,IAAI,OAAO,KAAK,CAAC;QAAE,OAAO,GAAG,OAAO,GAAG,CAAC,EAAE,CAAC;IAC3C,OAAO,GAAG,OAAO,GAAG,KAAK,EAAE,CAAC;AAC9B,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { SetAttributes } from "@openscd/oscd-api";
|
|
2
|
+
/**
|
|
3
|
+
* On update the `datSet` attribute of a given control block this function will change
|
|
4
|
+
* `DataSet.name` attribute as well if the `DataSet` is only used by this control block.
|
|
5
|
+
*/
|
|
6
|
+
export declare function updateDatSet(setAttributes: SetAttributes): SetAttributes | null;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
const controlBlockTags = ["ReportControl", "GSEControl", "SampledValueControl"];
|
|
2
|
+
/**
|
|
3
|
+
* On update the `datSet` attribute of a given control block this function will change
|
|
4
|
+
* `DataSet.name` attribute as well if the `DataSet` is only used by this control block.
|
|
5
|
+
*/
|
|
6
|
+
export function updateDatSet(setAttributes) {
|
|
7
|
+
const newDatSet = setAttributes?.attributes?.datSet;
|
|
8
|
+
const controlBlock = setAttributes.element;
|
|
9
|
+
const oldDatSet = controlBlock.getAttribute("datSet");
|
|
10
|
+
if (!newDatSet || !controlBlockTags.includes(controlBlock.tagName))
|
|
11
|
+
return null;
|
|
12
|
+
const isDataSetUsedByThisElementOnly = Array.from(controlBlock.parentElement?.querySelectorAll(`:scope > ReportControl[datSet="${oldDatSet}"],
|
|
13
|
+
:scope > GSEControl[datSet="${oldDatSet}"],
|
|
14
|
+
:scope > SampledValueControl[datSet="${oldDatSet}"]`) ?? []).length === 1;
|
|
15
|
+
if (!isDataSetUsedByThisElementOnly)
|
|
16
|
+
return null;
|
|
17
|
+
const dataSet = setAttributes.element.parentElement?.querySelector(`DataSet[name="${oldDatSet}"]`);
|
|
18
|
+
if (!dataSet)
|
|
19
|
+
return null;
|
|
20
|
+
return { element: dataSet, attributes: { name: newDatSet } };
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=updateDatSet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateDatSet.js","sourceRoot":"","sources":["../../tControl/updateDatSet.ts"],"names":[],"mappings":"AAEA,MAAM,gBAAgB,GAAG,CAAC,eAAe,EAAE,YAAY,EAAE,qBAAqB,CAAC,CAAC;AAEhF;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,aAA4B;IACvD,MAAM,SAAS,GAAG,aAAa,EAAE,UAAU,EAAE,MAAM,CAAC;IACpD,MAAM,YAAY,GAAG,aAAa,CAAC,OAAO,CAAC;IAC3C,MAAM,SAAS,GAAG,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAEtD,IAAI,CAAC,SAAS,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC;QAChE,OAAO,IAAI,CAAC;IAEd,MAAM,8BAA8B,GAClC,KAAK,CAAC,IAAI,CACR,YAAY,CAAC,aAAa,EAAE,gBAAgB,CAC1C,kCAAkC,SAAS;uCACZ,SAAS;gDACA,SAAS,IAAI,CACtD,IAAI,EAAE,CACR,CAAC,MAAM,KAAK,CAAC,CAAC;IACjB,IAAI,CAAC,8BAA8B;QAAE,OAAO,IAAI,CAAC;IAEjD,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,aAAa,EAAE,aAAa,CAChE,iBAAiB,SAAS,IAAI,CAC/B,CAAC;IACF,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAE1B,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC;AAC/D,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** @returns ConnectedAP element for LN0 within AccessPoint */
|
|
2
|
+
export function connectedAp(ln0, apName) {
|
|
3
|
+
const accessPointName = apName ?? ln0.closest("AccessPoint")?.getAttribute("name");
|
|
4
|
+
const iedName = ln0.closest("IED")?.getAttribute("name");
|
|
5
|
+
return ln0.ownerDocument.querySelector(`:root > Communication > SubNetwork > ConnectedAP[iedName="${iedName}"][apName="${accessPointName}"]`);
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=connctedAp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connctedAp.js","sourceRoot":"","sources":["../../tControlWithIEDName/connctedAp.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,MAAM,UAAU,WAAW,CACzB,GAAY,EACZ,MAA0B;IAE1B,MAAM,eAAe,GACnB,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAC7D,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAEzD,OAAO,GAAG,CAAC,aAAa,CAAC,aAAa,CACpC,6DAA6D,OAAO,cAAc,eAAe,IAAI,CACtG,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
function maxDataSet(parent) {
|
|
2
|
+
{
|
|
3
|
+
const validInp = !!parent.closest("AccessPoint") || !!parent.closest("IED");
|
|
4
|
+
if (!validInp)
|
|
5
|
+
return { max: -1, scope: "IED" };
|
|
6
|
+
const selector = `:scope > Services > ConfDataSet`;
|
|
7
|
+
const apMaxAllowed = parent
|
|
8
|
+
.closest("AccessPoint")
|
|
9
|
+
?.querySelector(selector)
|
|
10
|
+
?.getAttribute("max");
|
|
11
|
+
if (apMaxAllowed)
|
|
12
|
+
return {
|
|
13
|
+
max: parseInt(apMaxAllowed, 10),
|
|
14
|
+
scope: "AccessPoint",
|
|
15
|
+
};
|
|
16
|
+
const iedMaxAllowed = parent
|
|
17
|
+
.closest("IED")
|
|
18
|
+
?.querySelector(selector)
|
|
19
|
+
?.getAttribute("max");
|
|
20
|
+
if (iedMaxAllowed)
|
|
21
|
+
return {
|
|
22
|
+
max: parseInt(iedMaxAllowed, 10),
|
|
23
|
+
scope: "IED",
|
|
24
|
+
};
|
|
25
|
+
const existing = parent
|
|
26
|
+
.closest("IED")
|
|
27
|
+
.querySelectorAll(":scope > AccessPoint > Server > LDevice DataSet").length;
|
|
28
|
+
return {
|
|
29
|
+
max: existing,
|
|
30
|
+
scope: "IED",
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/** Checks Services>ConfDataSet AccessPoint or on IED if the first is not present
|
|
35
|
+
* @param parent - parent `LN0`
|
|
36
|
+
* @returns Whether new `DataSet` is exceeding ConfDataSet.max attribute */
|
|
37
|
+
export function canAddDataSet(ln0) {
|
|
38
|
+
const { max, scope } = maxDataSet(ln0);
|
|
39
|
+
const existingDataSets = Array.from(ln0
|
|
40
|
+
.closest(scope)
|
|
41
|
+
?.querySelectorAll(":scope Server > LDevice > LN0 > DataSet, :scope Server > LDevice > LN > DataSet") ?? []).length;
|
|
42
|
+
return max > existingDataSets;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=canAddDataSet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canAddDataSet.js","sourceRoot":"","sources":["../../tDataSet/canAddDataSet.ts"],"names":[],"mappings":"AAAA,SAAS,UAAU,CAAC,MAAe;IACjC;QACE,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC5E,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QAEhD,MAAM,QAAQ,GAAG,iCAAiC,CAAC;QACnD,MAAM,YAAY,GAAG,MAAM;aACxB,OAAO,CAAC,aAAa,CAAC;YACvB,EAAE,aAAa,CAAC,QAAQ,CAAC;YACzB,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,YAAY;YACd,OAAO;gBACL,GAAG,EAAE,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC;gBAC/B,KAAK,EAAE,aAAa;aACrB,CAAC;QAEJ,MAAM,aAAa,GAAG,MAAM;aACzB,OAAO,CAAC,KAAK,CAAC;YACf,EAAE,aAAa,CAAC,QAAQ,CAAC;YACzB,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,aAAa;YACf,OAAO;gBACL,GAAG,EAAE,QAAQ,CAAC,aAAa,EAAE,EAAE,CAAC;gBAChC,KAAK,EAAE,KAAK;aACb,CAAC;QAEJ,MAAM,QAAQ,GAAG,MAAM;aACpB,OAAO,CAAC,KAAK,CAAE;aACf,gBAAgB,CACf,iDAAiD,CAClD,CAAC,MAAM,CAAC;QAEX,OAAO;YACL,GAAG,EAAE,QAAQ;YACb,KAAK,EAAE,KAAK;SACb,CAAC;KACH;AACH,CAAC;AAED;;2EAE2E;AAC3E,MAAM,UAAU,aAAa,CAAC,GAAY;IACxC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAEvC,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,CACjC,GAAG;SACA,OAAO,CAAC,KAAK,CAAC;QACf,EAAE,gBAAgB,CAChB,iFAAiF,CAClF,IAAI,EAAE,CACV,CAAC,MAAM,CAAC;IAET,OAAO,GAAG,GAAG,gBAAgB,CAAC;AAChC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Insert } from "@openscd/oscd-api";
|
|
2
|
+
export type CreateDataSetOptions = {
|
|
3
|
+
attributes: {
|
|
4
|
+
name?: string;
|
|
5
|
+
desc?: string;
|
|
6
|
+
};
|
|
7
|
+
skipCheck?: boolean;
|
|
8
|
+
};
|
|
9
|
+
export declare function createDataSet(parent: Element, options?: CreateDataSetOptions): Insert | null;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { createElement } from "../foundation/utils.js";
|
|
2
|
+
import { getReference } from "../tBaseElement/getReference.js";
|
|
3
|
+
import { uniqueElementName } from "../foundation/uniqueElementName.js";
|
|
4
|
+
import { canAddDataSet } from "./canAddDataSet.js";
|
|
5
|
+
function invalid(anyLn, name) {
|
|
6
|
+
const uniqueName = name
|
|
7
|
+
? !anyLn.querySelector(`:scope > DataSet[name="${name}"]`)
|
|
8
|
+
: true;
|
|
9
|
+
return !(uniqueName && canAddDataSet(anyLn));
|
|
10
|
+
}
|
|
11
|
+
export function createDataSet(parent, options = { attributes: {} }) {
|
|
12
|
+
const anyLn = parent.tagName === "LN0" || parent.tagName === "LN"
|
|
13
|
+
? parent
|
|
14
|
+
: parent.querySelector("LN0, LN");
|
|
15
|
+
if (!anyLn)
|
|
16
|
+
return null;
|
|
17
|
+
if (!options.skipCheck && invalid(anyLn, options.attributes.name))
|
|
18
|
+
return null;
|
|
19
|
+
const dataSetAttributes = {
|
|
20
|
+
...options.attributes,
|
|
21
|
+
};
|
|
22
|
+
if (!options.attributes.name)
|
|
23
|
+
dataSetAttributes.name = uniqueElementName(anyLn, "DataSet");
|
|
24
|
+
const dataSet = createElement(anyLn.ownerDocument, "DataSet", {
|
|
25
|
+
...dataSetAttributes,
|
|
26
|
+
});
|
|
27
|
+
return {
|
|
28
|
+
parent: anyLn,
|
|
29
|
+
node: dataSet,
|
|
30
|
+
reference: getReference(anyLn, "DataSet"),
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=createDataSet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createDataSet.js","sourceRoot":"","sources":["../../tDataSet/createDataSet.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAEvE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAOnD,SAAS,OAAO,CAAC,KAAc,EAAE,IAA+B;IAC9D,MAAM,UAAU,GAAG,IAAI;QACrB,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,0BAA0B,IAAI,IAAI,CAAC;QAC1D,CAAC,CAAC,IAAI,CAAC;IAET,OAAO,CAAC,CAAC,UAAU,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,MAAe,EACf,UAAgC,EAAE,UAAU,EAAE,EAAE,EAAE;IAElD,MAAM,KAAK,GACT,MAAM,CAAC,OAAO,KAAK,KAAK,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI;QACjD,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IACtC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAExB,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;QAC/D,OAAO,IAAI,CAAC;IAEd,MAAM,iBAAiB,GAAkC;QACvD,GAAG,OAAO,CAAC,UAAU;KACtB,CAAC;IAEF,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI;QAC1B,iBAAiB,CAAC,IAAI,GAAG,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAE/D,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,aAAa,EAAE,SAAS,EAAE;QAC5D,GAAG,iBAAiB;KACrB,CAAC,CAAC;IAEH,OAAO;QACL,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,OAAO;QACb,SAAS,EAAE,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;KAC1C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Remove } from "@openscd/oscd-api";
|
|
2
|
+
import { SetAttributes } from "@openscd/oscd-api";
|
|
3
|
+
/**
|
|
4
|
+
* Utility function to remove the element `DataSet`.
|
|
5
|
+
* Also checks if data must be unsubscribed, subscription supervision need
|
|
6
|
+
* to be removed and changes on control blocks must be done.
|
|
7
|
+
* @param remove - Remove edit of a DataSet
|
|
8
|
+
* @returns Edit array with remove edit and additional edits
|
|
9
|
+
*/
|
|
10
|
+
export declare function removeDataSet(remove: Remove): (Remove | SetAttributes)[];
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { controlBlocks } from "../tControl/controlBlocks.js";
|
|
2
|
+
import { fCDAsSubscription } from "../tFCDA/removeFCDA.js";
|
|
3
|
+
import { unsubscribe } from "../tExtRef/unsubscribe.js";
|
|
4
|
+
import { updatedConfRev } from "../tControl/updateConfRev.js";
|
|
5
|
+
/**
|
|
6
|
+
* Utility function to remove the element `DataSet`.
|
|
7
|
+
* Also checks if data must be unsubscribed, subscription supervision need
|
|
8
|
+
* to be removed and changes on control blocks must be done.
|
|
9
|
+
* @param remove - Remove edit of a DataSet
|
|
10
|
+
* @returns Edit array with remove edit and additional edits
|
|
11
|
+
*/
|
|
12
|
+
export function removeDataSet(remove) {
|
|
13
|
+
if (remove.node.tagName !== "DataSet")
|
|
14
|
+
return [];
|
|
15
|
+
const dataSet = remove.node;
|
|
16
|
+
const dataSetRemove = [{ node: dataSet }];
|
|
17
|
+
const fCDAs = Array.from(dataSet.querySelectorAll(":scope > FCDA"));
|
|
18
|
+
const extRefs = fCDAs.flatMap((fcda) => fCDAsSubscription(fcda));
|
|
19
|
+
const extRefEdits = [];
|
|
20
|
+
extRefEdits.push(...unsubscribe(extRefs));
|
|
21
|
+
const ctrlBlockUpdates = controlBlocks(dataSet).map((ctrlBlock) => ({
|
|
22
|
+
element: ctrlBlock,
|
|
23
|
+
attributes: { datSet: null, confRev: updatedConfRev(ctrlBlock) },
|
|
24
|
+
}));
|
|
25
|
+
return dataSetRemove.concat(extRefEdits, ctrlBlockUpdates);
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=removeDataSet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"removeDataSet.js","sourceRoot":"","sources":["../../tDataSet/removeDataSet.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,IAAK,MAAM,CAAC,IAAgB,CAAC,OAAO,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IAC9D,MAAM,OAAO,GAAG,MAAM,CAAC,IAAe,CAAC;IAEvC,MAAM,aAAa,GAA+B,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAEtE,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAAC;IACpE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;IAEjE,MAAM,WAAW,GAA+B,EAAE,CAAC;IACnD,WAAW,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;IAE1C,MAAM,gBAAgB,GAA+B,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,CAC7E,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACd,OAAO,EAAE,SAAS;QAClB,UAAU,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,CAAC,SAAS,CAAC,EAAE;KACjE,CAAC,CACH,CAAC;IAEF,OAAO,aAAa,CAAC,MAAM,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;AAC7D,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { SetAttributes } from "@openscd/oscd-api";
|
|
2
|
+
/** Utility function to update `DataSet` element and the `datSet` attribute of
|
|
3
|
+
* all referenced control blocks
|
|
4
|
+
* @param setAttributes - SetAttributes edit for the `DataSet` element
|
|
5
|
+
* @returns SetAttributes actions for `DataSet`s attributes and its `datSet` references
|
|
6
|
+
* */
|
|
7
|
+
export declare function updateDataSet(setAttributes: SetAttributes): SetAttributes[];
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { updatedConfRev } from "../tControl/updateConfRev.js";
|
|
2
|
+
import { controlBlocks } from "../tControl/controlBlocks.js";
|
|
3
|
+
/** Utility function to update `DataSet` element and the `datSet` attribute of
|
|
4
|
+
* all referenced control blocks
|
|
5
|
+
* @param setAttributes - SetAttributes edit for the `DataSet` element
|
|
6
|
+
* @returns SetAttributes actions for `DataSet`s attributes and its `datSet` references
|
|
7
|
+
* */
|
|
8
|
+
export function updateDataSet(setAttributes) {
|
|
9
|
+
if (setAttributes.element.tagName !== "DataSet")
|
|
10
|
+
return [];
|
|
11
|
+
const dataSet = setAttributes.element;
|
|
12
|
+
const parent = dataSet.parentElement;
|
|
13
|
+
if (!parent)
|
|
14
|
+
return [];
|
|
15
|
+
const dataSetUpdate = {
|
|
16
|
+
element: dataSet,
|
|
17
|
+
attributes: setAttributes.attributes,
|
|
18
|
+
};
|
|
19
|
+
const newName = setAttributes?.attributes?.name;
|
|
20
|
+
if (!newName)
|
|
21
|
+
return [dataSetUpdate];
|
|
22
|
+
const controlBlockUpdates = controlBlocks(dataSet).map((element) => ({
|
|
23
|
+
element,
|
|
24
|
+
attributes: { datSet: newName, confRev: updatedConfRev(element) },
|
|
25
|
+
}));
|
|
26
|
+
return [dataSetUpdate].concat(controlBlockUpdates);
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=updateDataSet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateDataSet.js","sourceRoot":"","sources":["../../tDataSet/updateDataSet.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAE7D;;;;KAIK;AACL,MAAM,UAAU,aAAa,CAAC,aAA4B;IACxD,IAAI,aAAa,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IAE3D,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC;IAEtC,MAAM,MAAM,GAAG,OAAO,CAAC,aAAwB,CAAC;IAChD,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAEvB,MAAM,aAAa,GAAG;QACpB,OAAO,EAAE,OAAO;QAChB,UAAU,EAAE,aAAa,CAAC,UAAU;KACpB,CAAC;IAEnB,MAAM,OAAO,GAAG,aAAa,EAAE,UAAU,EAAE,IAAI,CAAC;IAChD,IAAI,CAAC,OAAO;QAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAErC,MAAM,mBAAmB,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACnE,OAAO;QACP,UAAU,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,EAAE;KAClE,CAAC,CAAoB,CAAC;IAEvB,OAAO,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;AACrD,CAAC"}
|