@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.
Files changed (238) hide show
  1. package/LICENCE +201 -0
  2. package/README.md +20 -0
  3. package/dist/foundation/codecomponents/nsds.d.ts +5 -0
  4. package/dist/foundation/codecomponents/nsds.js +22435 -0
  5. package/dist/foundation/codecomponents/nsds.js.map +1 -0
  6. package/dist/foundation/nsd.json +137748 -0
  7. package/dist/foundation/uniqueElementName.d.ts +2 -0
  8. package/dist/foundation/uniqueElementName.js +18 -0
  9. package/dist/foundation/uniqueElementName.js.map +1 -0
  10. package/dist/foundation/utils.d.ts +20 -0
  11. package/dist/foundation/utils.js +14 -0
  12. package/dist/foundation/utils.js.map +1 -0
  13. package/dist/generator/appIdGenerator.d.ts +21 -0
  14. package/dist/generator/appIdGenerator.js +53 -0
  15. package/dist/generator/appIdGenerator.js.map +1 -0
  16. package/dist/generator/lnInstGenerator.d.ts +16 -0
  17. package/dist/generator/lnInstGenerator.js +41 -0
  18. package/dist/generator/lnInstGenerator.js.map +1 -0
  19. package/dist/generator/macAddressGenerator.d.ts +14 -0
  20. package/dist/generator/macAddressGenerator.js +39 -0
  21. package/dist/generator/macAddressGenerator.js.map +1 -0
  22. package/dist/index.d.ts +61 -0
  23. package/dist/index.js +55 -0
  24. package/dist/index.js.map +1 -0
  25. package/dist/tAddress/changeGseOrSmvAddress.d.ts +14 -0
  26. package/dist/tAddress/changeGseOrSmvAddress.js +43 -0
  27. package/dist/tAddress/changeGseOrSmvAddress.js.map +1 -0
  28. package/dist/tBaseElement/find.d.ts +6 -0
  29. package/dist/tBaseElement/find.js +529 -0
  30. package/dist/tBaseElement/find.js.map +1 -0
  31. package/dist/tBaseElement/getChildren.d.ts +5 -0
  32. package/dist/tBaseElement/getChildren.js +12 -0
  33. package/dist/tBaseElement/getChildren.js.map +1 -0
  34. package/dist/tBaseElement/getReference.d.ts +9 -0
  35. package/dist/tBaseElement/getReference.js +31 -0
  36. package/dist/tBaseElement/getReference.js.map +1 -0
  37. package/dist/tBaseElement/identity.d.ts +2 -0
  38. package/dist/tBaseElement/identity.js +566 -0
  39. package/dist/tBaseElement/identity.js.map +1 -0
  40. package/dist/tBaseElement/isPublic.d.ts +2 -0
  41. package/dist/tBaseElement/isPublic.js +5 -0
  42. package/dist/tBaseElement/isPublic.js.map +1 -0
  43. package/dist/tBaseElement/parentTags.d.ts +3 -0
  44. package/dist/tBaseElement/parentTags.js +8 -0
  45. package/dist/tBaseElement/parentTags.js.map +1 -0
  46. package/dist/tBaseElement/tags.d.ts +8 -0
  47. package/dist/tBaseElement/tags.js +807 -0
  48. package/dist/tBaseElement/tags.js.map +1 -0
  49. package/dist/tBay/updateBay.d.ts +5 -0
  50. package/dist/tBay/updateBay.js +81 -0
  51. package/dist/tBay/updateBay.js.map +1 -0
  52. package/dist/tControl/controlBlockGseOrSmv.d.ts +7 -0
  53. package/dist/tControl/controlBlockGseOrSmv.js +26 -0
  54. package/dist/tControl/controlBlockGseOrSmv.js.map +1 -0
  55. package/dist/tControl/controlBlockObjRef.d.ts +2 -0
  56. package/dist/tControl/controlBlockObjRef.js +14 -0
  57. package/dist/tControl/controlBlockObjRef.js.map +1 -0
  58. package/dist/tControl/controlBlocks.d.ts +2 -0
  59. package/dist/tControl/controlBlocks.js +9 -0
  60. package/dist/tControl/controlBlocks.js.map +1 -0
  61. package/dist/tControl/findControlSubscription.d.ts +2 -0
  62. package/dist/tControl/findControlSubscription.js +8 -0
  63. package/dist/tControl/findControlSubscription.js.map +1 -0
  64. package/dist/tControl/pathId.d.ts +1 -0
  65. package/dist/tControl/pathId.js +9 -0
  66. package/dist/tControl/pathId.js.map +1 -0
  67. package/dist/tControl/removeControlBlock.d.ts +14 -0
  68. package/dist/tControl/removeControlBlock.js +35 -0
  69. package/dist/tControl/removeControlBlock.js.map +1 -0
  70. package/dist/tControl/updateConfRev.d.ts +2 -0
  71. package/dist/tControl/updateConfRev.js +8 -0
  72. package/dist/tControl/updateConfRev.js.map +1 -0
  73. package/dist/tControl/updateDatSet.d.ts +6 -0
  74. package/dist/tControl/updateDatSet.js +22 -0
  75. package/dist/tControl/updateDatSet.js.map +1 -0
  76. package/dist/tControlWithIEDName/connctedAp.d.ts +2 -0
  77. package/dist/tControlWithIEDName/connctedAp.js +7 -0
  78. package/dist/tControlWithIEDName/connctedAp.js.map +1 -0
  79. package/dist/tDataSet/canAddDataSet.d.ts +4 -0
  80. package/dist/tDataSet/canAddDataSet.js +44 -0
  81. package/dist/tDataSet/canAddDataSet.js.map +1 -0
  82. package/dist/tDataSet/createDataSet.d.ts +9 -0
  83. package/dist/tDataSet/createDataSet.js +33 -0
  84. package/dist/tDataSet/createDataSet.js.map +1 -0
  85. package/dist/tDataSet/removeDataSet.d.ts +10 -0
  86. package/dist/tDataSet/removeDataSet.js +27 -0
  87. package/dist/tDataSet/removeDataSet.js.map +1 -0
  88. package/dist/tDataSet/updateDataSet.d.ts +7 -0
  89. package/dist/tDataSet/updateDataSet.js +28 -0
  90. package/dist/tDataSet/updateDataSet.js.map +1 -0
  91. package/dist/tDataTypeTemplates/foundation.d.ts +2 -0
  92. package/dist/tDataTypeTemplates/foundation.js +118 -0
  93. package/dist/tDataTypeTemplates/foundation.js.map +1 -0
  94. package/dist/tDataTypeTemplates/importLNodeType.d.ts +13 -0
  95. package/dist/tDataTypeTemplates/importLNodeType.js +88 -0
  96. package/dist/tDataTypeTemplates/importLNodeType.js.map +1 -0
  97. package/dist/tDataTypeTemplates/insertSelectedLNodeType.d.ts +20 -0
  98. package/dist/tDataTypeTemplates/insertSelectedLNodeType.js +187 -0
  99. package/dist/tDataTypeTemplates/insertSelectedLNodeType.js.map +1 -0
  100. package/dist/tDataTypeTemplates/lNodeTypeToSelection.d.ts +8 -0
  101. package/dist/tDataTypeTemplates/lNodeTypeToSelection.js +67 -0
  102. package/dist/tDataTypeTemplates/lNodeTypeToSelection.js.map +1 -0
  103. package/dist/tDataTypeTemplates/nsdToJson.d.ts +101 -0
  104. package/dist/tDataTypeTemplates/nsdToJson.js +433 -0
  105. package/dist/tDataTypeTemplates/nsdToJson.js.map +1 -0
  106. package/dist/tDataTypeTemplates/removeDataType.d.ts +12 -0
  107. package/dist/tDataTypeTemplates/removeDataType.js +62 -0
  108. package/dist/tDataTypeTemplates/removeDataType.js.map +1 -0
  109. package/dist/tDataTypeTemplates/updateLNodeType.d.ts +2 -0
  110. package/dist/tDataTypeTemplates/updateLNodeType.js +22 -0
  111. package/dist/tDataTypeTemplates/updateLNodeType.js.map +1 -0
  112. package/dist/tExtRef/doesFcdaMeetExtRefRestrictions.d.ts +16 -0
  113. package/dist/tExtRef/doesFcdaMeetExtRefRestrictions.js +52 -0
  114. package/dist/tExtRef/doesFcdaMeetExtRefRestrictions.js.map +1 -0
  115. package/dist/tExtRef/extRefTypeRestrictions.d.ts +17 -0
  116. package/dist/tExtRef/extRefTypeRestrictions.js +32 -0
  117. package/dist/tExtRef/extRefTypeRestrictions.js.map +1 -0
  118. package/dist/tExtRef/isSubscribed.d.ts +7 -0
  119. package/dist/tExtRef/isSubscribed.js +23 -0
  120. package/dist/tExtRef/isSubscribed.js.map +1 -0
  121. package/dist/tExtRef/matchDataAttributes.d.ts +2 -0
  122. package/dist/tExtRef/matchDataAttributes.js +13 -0
  123. package/dist/tExtRef/matchDataAttributes.js.map +1 -0
  124. package/dist/tExtRef/matchSrcAttributes.d.ts +2 -0
  125. package/dist/tExtRef/matchSrcAttributes.js +28 -0
  126. package/dist/tExtRef/matchSrcAttributes.js.map +1 -0
  127. package/dist/tExtRef/sourceControlBlock.d.ts +8 -0
  128. package/dist/tExtRef/sourceControlBlock.js +52 -0
  129. package/dist/tExtRef/sourceControlBlock.js.map +1 -0
  130. package/dist/tExtRef/subscribe.d.ts +47 -0
  131. package/dist/tExtRef/subscribe.js +187 -0
  132. package/dist/tExtRef/subscribe.js.map +1 -0
  133. package/dist/tExtRef/unsubscribe.d.ts +27 -0
  134. package/dist/tExtRef/unsubscribe.js +55 -0
  135. package/dist/tExtRef/unsubscribe.js.map +1 -0
  136. package/dist/tFCDA/canAddFCDA.d.ts +10 -0
  137. package/dist/tFCDA/canAddFCDA.js +42 -0
  138. package/dist/tFCDA/canAddFCDA.js.map +1 -0
  139. package/dist/tFCDA/fcdaBaseTypes.d.ts +11 -0
  140. package/dist/tFCDA/fcdaBaseTypes.js +56 -0
  141. package/dist/tFCDA/fcdaBaseTypes.js.map +1 -0
  142. package/dist/tFCDA/removeFCDA.d.ts +8 -0
  143. package/dist/tFCDA/removeFCDA.js +33 -0
  144. package/dist/tFCDA/removeFCDA.js.map +1 -0
  145. package/dist/tGSE/changeGSEContent.d.ts +17 -0
  146. package/dist/tGSE/changeGSEContent.js +53 -0
  147. package/dist/tGSE/changeGSEContent.js.map +1 -0
  148. package/dist/tGSE/createGSE.d.ts +20 -0
  149. package/dist/tGSE/createGSE.js +44 -0
  150. package/dist/tGSE/createGSE.js.map +1 -0
  151. package/dist/tGSEControl/canAddGSEControl.d.ts +4 -0
  152. package/dist/tGSEControl/canAddGSEControl.js +27 -0
  153. package/dist/tGSEControl/canAddGSEControl.js.map +1 -0
  154. package/dist/tGSEControl/createGSEControl.d.ts +49 -0
  155. package/dist/tGSEControl/createGSEControl.js +65 -0
  156. package/dist/tGSEControl/createGSEControl.js.map +1 -0
  157. package/dist/tGSEControl/updateGSEControl.d.ts +15 -0
  158. package/dist/tGSEControl/updateGSEControl.js +61 -0
  159. package/dist/tGSEControl/updateGSEControl.js.map +1 -0
  160. package/dist/tIED/insertIED.d.ts +13 -0
  161. package/dist/tIED/insertIED.js +245 -0
  162. package/dist/tIED/insertIED.js.map +1 -0
  163. package/dist/tIED/removeIED.d.ts +14 -0
  164. package/dist/tIED/removeIED.js +70 -0
  165. package/dist/tIED/removeIED.js.map +1 -0
  166. package/dist/tIED/updateIED.d.ts +17 -0
  167. package/dist/tIED/updateIED.js +185 -0
  168. package/dist/tIED/updateIED.js.map +1 -0
  169. package/dist/tInputs/removeInputs.d.ts +7 -0
  170. package/dist/tInputs/removeInputs.js +25 -0
  171. package/dist/tInputs/removeInputs.js.map +1 -0
  172. package/dist/tLN/removeSubscriptionSupervision.d.ts +7 -0
  173. package/dist/tLN/removeSubscriptionSupervision.js +94 -0
  174. package/dist/tLN/removeSubscriptionSupervision.js.map +1 -0
  175. package/dist/tLN/supervision/canInstantiateSubscriptionSupervision.d.ts +13 -0
  176. package/dist/tLN/supervision/canInstantiateSubscriptionSupervision.js +116 -0
  177. package/dist/tLN/supervision/canInstantiateSubscriptionSupervision.js.map +1 -0
  178. package/dist/tLN/supervision/createSupervisionEdit.d.ts +20 -0
  179. package/dist/tLN/supervision/createSupervisionEdit.js +129 -0
  180. package/dist/tLN/supervision/createSupervisionEdit.js.map +1 -0
  181. package/dist/tLN/supervision/findControlBlockOnSrcAttributes.d.ts +10 -0
  182. package/dist/tLN/supervision/findControlBlockOnSrcAttributes.js +13 -0
  183. package/dist/tLN/supervision/findControlBlockOnSrcAttributes.js.map +1 -0
  184. package/dist/tLN/supervision/foundation.d.ts +37 -0
  185. package/dist/tLN/supervision/foundation.js +43 -0
  186. package/dist/tLN/supervision/foundation.js.map +1 -0
  187. package/dist/tLN/supervision/insertSubscriptionSupervisions.d.ts +11 -0
  188. package/dist/tLN/supervision/insertSubscriptionSupervisions.js +98 -0
  189. package/dist/tLN/supervision/insertSubscriptionSupervisions.js.map +1 -0
  190. package/dist/tLN/supervision/instantiateSubscriptionSupervision.d.ts +10 -0
  191. package/dist/tLN/supervision/instantiateSubscriptionSupervision.js +36 -0
  192. package/dist/tLN/supervision/instantiateSubscriptionSupervision.js.map +1 -0
  193. package/dist/tLN/supervision/removeSupervision.d.ts +7 -0
  194. package/dist/tLN/supervision/removeSupervision.js +39 -0
  195. package/dist/tLN/supervision/removeSupervision.js.map +1 -0
  196. package/dist/tReportControl/canAddReportControl.d.ts +11 -0
  197. package/dist/tReportControl/canAddReportControl.js +24 -0
  198. package/dist/tReportControl/canAddReportControl.js.map +1 -0
  199. package/dist/tReportControl/createReportControl.d.ts +68 -0
  200. package/dist/tReportControl/createReportControl.js +78 -0
  201. package/dist/tReportControl/createReportControl.js.map +1 -0
  202. package/dist/tReportControl/numberReportControlInstances.d.ts +5 -0
  203. package/dist/tReportControl/numberReportControlInstances.js +19 -0
  204. package/dist/tReportControl/numberReportControlInstances.js.map +1 -0
  205. package/dist/tReportControl/updateReportControl.d.ts +5 -0
  206. package/dist/tReportControl/updateReportControl.js +24 -0
  207. package/dist/tReportControl/updateReportControl.js.map +1 -0
  208. package/dist/tSMV/changeSMVContent.d.ts +3 -0
  209. package/dist/tSMV/changeSMVContent.js +5 -0
  210. package/dist/tSMV/changeSMVContent.js.map +1 -0
  211. package/dist/tSMV/createSMV.d.ts +16 -0
  212. package/dist/tSMV/createSMV.js +32 -0
  213. package/dist/tSMV/createSMV.js.map +1 -0
  214. package/dist/tSampledValueControl/canAddSampledValueControl.d.ts +4 -0
  215. package/dist/tSampledValueControl/canAddSampledValueControl.js +27 -0
  216. package/dist/tSampledValueControl/canAddSampledValueControl.js.map +1 -0
  217. package/dist/tSampledValueControl/createSampledValueControl.d.ts +66 -0
  218. package/dist/tSampledValueControl/createSampledValueControl.js +74 -0
  219. package/dist/tSampledValueControl/createSampledValueControl.js.map +1 -0
  220. package/dist/tSampledValueControl/updateSampledValueControl.d.ts +14 -0
  221. package/dist/tSampledValueControl/updateSampledValueControl.js +60 -0
  222. package/dist/tSampledValueControl/updateSampledValueControl.js.map +1 -0
  223. package/dist/tServices/tConfReportControl/maxReportControl.d.ts +9 -0
  224. package/dist/tServices/tConfReportControl/maxReportControl.js +14 -0
  225. package/dist/tServices/tConfReportControl/maxReportControl.js.map +1 -0
  226. package/dist/tSubstation/removeProcessElement.d.ts +9 -0
  227. package/dist/tSubstation/removeProcessElement.js +50 -0
  228. package/dist/tSubstation/removeProcessElement.js.map +1 -0
  229. package/dist/tSubstation/updateLnType.d.ts +8 -0
  230. package/dist/tSubstation/updateLnType.js +96 -0
  231. package/dist/tSubstation/updateLnType.js.map +1 -0
  232. package/dist/tSubstation/updateSubstation.d.ts +5 -0
  233. package/dist/tSubstation/updateSubstation.js +75 -0
  234. package/dist/tSubstation/updateSubstation.js.map +1 -0
  235. package/dist/tVoltageLevel/updateVoltageLevel.d.ts +5 -0
  236. package/dist/tVoltageLevel/updateVoltageLevel.js +83 -0
  237. package/dist/tVoltageLevel/updateVoltageLevel.js.map +1 -0
  238. 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,2 @@
1
+ /** @returns object reference acc. IEC 61850-7-3 for control block elements */
2
+ export declare function controlBlockObjRef(ctrlBlock: Element): string | null;
@@ -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,2 @@
1
+ /** @returns control blocks for a given data attribute or data set */
2
+ export declare function controlBlocks(fcdaOrDataSet: Element): Element[];
@@ -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,2 @@
1
+ /** @returns all ExtRef element subscribed to a control block element */
2
+ export declare function findControlBlockSubscription(control: Element): Element[];
@@ -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,2 @@
1
+ /** @returns Updated confRev attribute of control block */
2
+ export declare function updatedConfRev(control: Element): string;
@@ -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,2 @@
1
+ /** @returns ConnectedAP element for LN0 within AccessPoint */
2
+ export declare function connectedAp(ln0: Element, apName: string | undefined): Element | null;
@@ -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,4 @@
1
+ /** Checks Services>ConfDataSet AccessPoint or on IED if the first is not present
2
+ * @param parent - parent `LN0`
3
+ * @returns Whether new `DataSet` is exceeding ConfDataSet.max attribute */
4
+ export declare function canAddDataSet(ln0: Element): boolean;
@@ -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"}
@@ -0,0 +1,2 @@
1
+ export declare function hashElement(element: Element): string;
2
+ export declare function isEqualNode(ours: Element, theirs: Element): boolean;