@enervance/insight-cim-model 0.0.372 → 0.0.373-beta1

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 (206) hide show
  1. package/dist/analysis/analysis-neplan/contingency-analysis.neplan.westnetz.js +1 -1
  2. package/dist/analysis/analysis-neplan/contingency-analysis.neplan.westnetz.js.map +1 -1
  3. package/dist/config/load.confings.js +1 -2
  4. package/dist/config/load.confings.js.map +1 -1
  5. package/dist/constants/cim-class-names.d.ts +2 -1
  6. package/dist/constants/cim-class-names.js +2 -1
  7. package/dist/constants/cim-class-names.js.map +1 -1
  8. package/dist/converter/integral7/config/integral-prefix.d.ts +6 -0
  9. package/dist/converter/integral7/config/integral-prefix.js +7 -1
  10. package/dist/converter/integral7/config/integral-prefix.js.map +1 -1
  11. package/dist/converter/integral7/converter.integral7.d.ts +1 -0
  12. package/dist/converter/integral7/converter.integral7.js +198 -62
  13. package/dist/converter/integral7/converter.integral7.js.map +1 -1
  14. package/dist/converter/integral7/dl-convert/db/database.interface.types.d.ts +28 -0
  15. package/dist/converter/integral7/dl-convert/dl-converter-i7.d.ts +11 -4
  16. package/dist/converter/integral7/dl-convert/dl-converter-i7.js +308 -31
  17. package/dist/converter/integral7/dl-convert/dl-converter-i7.js.map +1 -1
  18. package/dist/converter/integral7/dl-convert/dl-graphs/convert-graph-keys.d.ts +10 -1
  19. package/dist/converter/integral7/dl-convert/dl-graphs/convert-graph-keys.js +6 -0
  20. package/dist/converter/integral7/dl-convert/dl-graphs/convert-graph-keys.js.map +1 -1
  21. package/dist/converter/integral7/dl-convert/dl-graphs/db-object-graph.js +5 -12
  22. package/dist/converter/integral7/dl-convert/dl-graphs/db-object-graph.js.map +1 -1
  23. package/dist/converter/integral7/dl-convert/executor.js +15 -3
  24. package/dist/converter/integral7/dl-convert/executor.js.map +1 -1
  25. package/dist/converter/integral7/interface-i7/data-structures-i7.d.ts +3 -1
  26. package/dist/converter/integral7/interface-i7/data-structures-i7.js.map +1 -1
  27. package/dist/converter/integral7/interface-i7/default-values-config.interface.d.ts +8 -0
  28. package/dist/converter/integral7/interface-i7/export-frame-i7.d.ts +3 -1
  29. package/dist/converter/integral7/interface-i7/export-frame-i7.js +3 -2
  30. package/dist/converter/integral7/interface-i7/export-frame-i7.js.map +1 -1
  31. package/dist/converter/integral7/model/dl-utils/util-functions.d.ts +9 -1
  32. package/dist/converter/integral7/model/dl-utils/util-functions.js +32 -3
  33. package/dist/converter/integral7/model/dl-utils/util-functions.js.map +1 -1
  34. package/dist/converter/integral7/model/integral/BaseClass.d.ts +0 -2
  35. package/dist/converter/integral7/model/integral/BaseClass.js +0 -3
  36. package/dist/converter/integral7/model/integral/BaseClass.js.map +1 -1
  37. package/dist/converter/integral7/model/integral/KnotenZw.d.ts +7 -0
  38. package/dist/converter/integral7/model/integral/KnotenZw.js +13 -0
  39. package/dist/converter/integral7/model/integral/KnotenZw.js.map +1 -0
  40. package/dist/converter/integral7/model/integral/Netzbereich.d.ts +15 -0
  41. package/dist/converter/integral7/model/integral/Netzbereich.js +23 -0
  42. package/dist/converter/integral7/model/integral/Netzbereich.js.map +1 -0
  43. package/dist/converter/integral7/model/integral/NetzbereichAussen.d.ts +7 -0
  44. package/dist/converter/integral7/model/integral/NetzbereichAussen.js +12 -0
  45. package/dist/converter/integral7/model/integral/NetzbereichAussen.js.map +1 -0
  46. package/dist/converter/integral7/model/integral/NetzbereichInnen.d.ts +7 -0
  47. package/dist/converter/integral7/model/integral/NetzbereichInnen.js +12 -0
  48. package/dist/converter/integral7/model/integral/NetzbereichInnen.js.map +1 -0
  49. package/dist/converter/integral7/model/integral/NetzbereichRand.d.ts +7 -0
  50. package/dist/converter/integral7/model/integral/NetzbereichRand.js +12 -0
  51. package/dist/converter/integral7/model/integral/NetzbereichRand.js.map +1 -0
  52. package/dist/converter/integral7/sql/integral.sql.js +3 -0
  53. package/dist/converter/integral7/sql/integral.sql.js.map +1 -1
  54. package/dist/converter/integral7/tp-bd-profile/convert-functions/convert-netzbereiche.d.ts +0 -0
  55. package/dist/converter/integral7/tp-bd-profile/convert-functions/convert-netzbereiche.js +2 -0
  56. package/dist/converter/integral7/tp-bd-profile/convert-functions/convert-netzbereiche.js.map +1 -0
  57. package/dist/converter/integral7/tp-bd-profile/model/BoundaryPoint.d.ts +8 -0
  58. package/dist/converter/integral7/tp-bd-profile/model/BoundaryPoint.js +13 -0
  59. package/dist/converter/integral7/tp-bd-profile/model/BoundaryPoint.js.map +1 -0
  60. package/dist/converter/integral7/tp-bd-profile/model/BoundarySet.d.ts +15 -0
  61. package/dist/converter/integral7/tp-bd-profile/model/BoundarySet.js +38 -0
  62. package/dist/converter/integral7/tp-bd-profile/model/BoundarySet.js.map +1 -0
  63. package/dist/converter/integral7/tp-bd-profile/model/ExternalPoint.d.ts +8 -0
  64. package/dist/converter/integral7/tp-bd-profile/model/ExternalPoint.js +13 -0
  65. package/dist/converter/integral7/tp-bd-profile/model/ExternalPoint.js.map +1 -0
  66. package/dist/converter/integral7/tp-bd-profile/model/InternalPoint.d.ts +8 -0
  67. package/dist/converter/integral7/tp-bd-profile/model/InternalPoint.js +13 -0
  68. package/dist/converter/integral7/tp-bd-profile/model/InternalPoint.js.map +1 -0
  69. package/dist/converter/integral7/tp-bd-profile/model/convert-net-equivalent.model.d.ts +8 -0
  70. package/dist/converter/integral7/tp-bd-profile/model/convert-net-equivalent.model.js +9 -0
  71. package/dist/converter/integral7/tp-bd-profile/model/convert-net-equivalent.model.js.map +1 -0
  72. package/dist/converter/integral7/tp-bd-profile/tb-bd-converter.utilities.d.ts +9 -0
  73. package/dist/converter/integral7/tp-bd-profile/tb-bd-converter.utilities.js +82 -0
  74. package/dist/converter/integral7/tp-bd-profile/tb-bd-converter.utilities.js.map +1 -0
  75. package/dist/converter/integral7/tp-bd-profile/tb-bd-converter.utilities.types.d.ts +25 -0
  76. package/dist/converter/integral7/tp-bd-profile/tb-bd-converter.utilities.types.js +3 -0
  77. package/dist/converter/integral7/tp-bd-profile/tb-bd-converter.utilities.types.js.map +1 -0
  78. package/dist/converter/integral7/tp-bd-profile/tp-bd-converter.d.ts +23 -0
  79. package/dist/converter/integral7/tp-bd-profile/tp-bd-converter.js +244 -0
  80. package/dist/converter/integral7/tp-bd-profile/tp-bd-converter.js.map +1 -0
  81. package/dist/converter/integral7/utils-cgmes-export.js +2 -0
  82. package/dist/converter/integral7/utils-cgmes-export.js.map +1 -1
  83. package/dist/converter/integral7/utils.d.ts +1 -0
  84. package/dist/converter/integral7/utils.js +28 -2
  85. package/dist/converter/integral7/utils.js.map +1 -1
  86. package/dist/etl/etl-neplan/etl-neplan-feederline.js.map +1 -1
  87. package/dist/interfaces/model/core/IConnectivityNode.d.ts +6 -6
  88. package/dist/interfaces/model/core/ISubstation.d.ts +2 -2
  89. package/dist/interfaces/model/core/IVoltageLevel.d.ts +2 -0
  90. package/dist/model/assetinfo/SwitchInfo.d.ts +2 -0
  91. package/dist/model/assetinfo/SwitchInfo.js +6 -1
  92. package/dist/model/assetinfo/SwitchInfo.js.map +1 -1
  93. package/dist/model/core/BaseVoltage.d.ts +3 -0
  94. package/dist/model/core/BaseVoltage.js +6 -0
  95. package/dist/model/core/BaseVoltage.js.map +1 -1
  96. package/dist/model/core/ConnectivityNode.js +1 -2
  97. package/dist/model/core/ConnectivityNode.js.map +1 -1
  98. package/dist/model/core/ConnectivityNodeContainer.d.ts +3 -3
  99. package/dist/model/core/ConnectivityNodeContainer.js.map +1 -1
  100. package/dist/model/core/Substation.d.ts +2 -1
  101. package/dist/model/core/Substation.js +1 -2
  102. package/dist/model/core/Substation.js.map +1 -1
  103. package/dist/model/core/VoltageLevel.d.ts +9 -3
  104. package/dist/model/core/VoltageLevel.js +12 -3
  105. package/dist/model/core/VoltageLevel.js.map +1 -1
  106. package/dist/model/dc/DCNode.js +3 -3
  107. package/dist/model/dc/DCNode.js.map +1 -1
  108. package/dist/model/extensions/amprion/additionalassetvalue/AMPRIONAdditionalBayValue.js +1 -1
  109. package/dist/model/extensions/amprion/core/AMPRIONConnectivityNode.js +1 -1
  110. package/dist/model/extensions/amprion/core/AMPRIONConnectivityNode.js.map +1 -1
  111. package/dist/model/extensions/amprion/core/AMPRIONSubstation.d.ts +25 -0
  112. package/dist/model/extensions/amprion/core/AMPRIONSubstation.js +114 -0
  113. package/dist/model/extensions/amprion/core/AMPRIONSubstation.js.map +1 -0
  114. package/dist/model/extensions/integral/core/INTEGRALTerminal.d.ts +12 -0
  115. package/dist/model/extensions/integral/core/INTEGRALTerminal.js +37 -0
  116. package/dist/model/extensions/integral/core/INTEGRALTerminal.js.map +1 -0
  117. package/dist/model/extensions/integral/dc/DCConverterUnit.d.ts +11 -0
  118. package/dist/model/extensions/integral/dc/DCConverterUnit.js +34 -0
  119. package/dist/model/extensions/integral/dc/DCConverterUnit.js.map +1 -0
  120. package/dist/model/extensions/integral/dc/DCLineSegment.d.ts +10 -0
  121. package/dist/model/extensions/integral/dc/DCLineSegment.js +31 -0
  122. package/dist/model/extensions/integral/dc/DCLineSegment.js.map +1 -0
  123. package/dist/model/extensions/neplan-westnetz/assets/WNFacility.d.ts +30 -0
  124. package/dist/model/extensions/neplan-westnetz/assets/WNFacility.js +189 -0
  125. package/dist/model/extensions/neplan-westnetz/assets/WNFacility.js.map +1 -0
  126. package/dist/model/extensions/neplan-westnetz/assets/WNFacilityKind.d.ts +12 -0
  127. package/dist/model/extensions/neplan-westnetz/assets/WNFacilityKind.js +21 -0
  128. package/dist/model/extensions/neplan-westnetz/assets/WNFacilityKind.js.map +1 -0
  129. package/dist/model/extensions/neplan-westnetz/assets/WNWireInfo.d.ts +21 -0
  130. package/dist/model/extensions/neplan-westnetz/assets/WNWireInfo.js +102 -0
  131. package/dist/model/extensions/neplan-westnetz/assets/WNWireInfo.js.map +1 -0
  132. package/dist/model/extensions/neplan-westnetz/assets/WNZUWOHealthScore.d.ts +12 -0
  133. package/dist/model/extensions/neplan-westnetz/assets/WNZUWOHealthScore.js +60 -0
  134. package/dist/model/extensions/neplan-westnetz/assets/WNZUWOHealthScore.js.map +1 -0
  135. package/dist/model/extensions/neplan-westnetz/assets/WNZUWOImportanceScore.d.ts +11 -0
  136. package/dist/model/extensions/neplan-westnetz/assets/WNZUWOImportanceScore.js +55 -0
  137. package/dist/model/extensions/neplan-westnetz/assets/WNZUWOImportanceScore.js.map +1 -0
  138. package/dist/model/extensions/neplan-westnetz/assets/WNZUWOPriority.d.ts +12 -0
  139. package/dist/model/extensions/neplan-westnetz/assets/WNZUWOPriority.js +60 -0
  140. package/dist/model/extensions/neplan-westnetz/assets/WNZUWOPriority.js.map +1 -0
  141. package/dist/model/extensions/neplan-westnetz/assets/WNZUWOState.d.ts +7 -0
  142. package/dist/model/extensions/neplan-westnetz/assets/WNZUWOState.js +12 -0
  143. package/dist/model/extensions/neplan-westnetz/assets/WNZUWOState.js.map +1 -0
  144. package/dist/model/extensions/neplan-westnetz/common/WNLocation.d.ts +24 -0
  145. package/dist/model/extensions/neplan-westnetz/common/WNLocation.js +89 -0
  146. package/dist/model/extensions/neplan-westnetz/common/WNLocation.js.map +1 -0
  147. package/dist/model/extensions/neplan-westnetz/core/WNBay.d.ts +22 -0
  148. package/dist/model/extensions/neplan-westnetz/core/WNBay.js +87 -0
  149. package/dist/model/extensions/neplan-westnetz/core/WNBay.js.map +1 -0
  150. package/dist/model/extensions/neplan-westnetz/core/WNConnectivityNode.d.ts +71 -0
  151. package/dist/model/extensions/neplan-westnetz/core/WNConnectivityNode.js +570 -0
  152. package/dist/model/extensions/neplan-westnetz/core/WNConnectivityNode.js.map +1 -0
  153. package/dist/model/extensions/neplan-westnetz/core/WNFeeder.d.ts +44 -0
  154. package/dist/model/extensions/neplan-westnetz/core/WNFeeder.js +234 -0
  155. package/dist/model/extensions/neplan-westnetz/core/WNFeeder.js.map +1 -0
  156. package/dist/model/extensions/neplan-westnetz/core/WNSwitchTypeKind.d.ts +5 -0
  157. package/dist/model/extensions/neplan-westnetz/core/WNSwitchTypeKind.js +10 -0
  158. package/dist/model/extensions/neplan-westnetz/core/WNSwitchTypeKind.js.map +1 -0
  159. package/dist/model/extensions/neplan-westnetz/faults/WNFaultConnectivityNode.d.ts +22 -0
  160. package/dist/model/extensions/neplan-westnetz/faults/WNFaultConnectivityNode.js +98 -0
  161. package/dist/model/extensions/neplan-westnetz/faults/WNFaultConnectivityNode.js.map +1 -0
  162. package/dist/model/extensions/neplan-westnetz/operations/WNOutage.d.ts +21 -0
  163. package/dist/model/extensions/neplan-westnetz/operations/WNOutage.js +100 -0
  164. package/dist/model/extensions/neplan-westnetz/operations/WNOutage.js.map +1 -0
  165. package/dist/model/extensions/neplan-westnetz/wires/WNACLineSegment.d.ts +20 -0
  166. package/dist/model/extensions/neplan-westnetz/wires/WNACLineSegment.js +105 -0
  167. package/dist/model/extensions/neplan-westnetz/wires/WNACLineSegment.js.map +1 -0
  168. package/dist/model/extensions/neplan-westnetz/wires/WNEnergyConsumer.d.ts +75 -0
  169. package/dist/model/extensions/neplan-westnetz/wires/WNEnergyConsumer.js +505 -0
  170. package/dist/model/extensions/neplan-westnetz/wires/WNEnergyConsumer.js.map +1 -0
  171. package/dist/model/generic-data-set/ChangeSetMember.d.ts +0 -5
  172. package/dist/model/generic-data-set/ChangeSetMember.js +0 -10
  173. package/dist/model/generic-data-set/ChangeSetMember.js.map +1 -1
  174. package/dist/model/generic-data-set/ObjectCreation.js.map +1 -1
  175. package/dist/model/generic-data-set/ObjectInsertion.d.ts +10 -0
  176. package/dist/model/generic-data-set/ObjectInsertion.js +60 -0
  177. package/dist/model/generic-data-set/ObjectInsertion.js.map +1 -0
  178. package/dist/model/generic-data-set/ObjectRemoval.d.ts +10 -0
  179. package/dist/model/generic-data-set/ObjectRemoval.js +60 -0
  180. package/dist/model/generic-data-set/ObjectRemoval.js.map +1 -0
  181. package/dist/model/topology/TopologicalNode.d.ts +2 -0
  182. package/dist/model/topology/TopologicalNode.js +62 -0
  183. package/dist/model/topology/TopologicalNode.js.map +1 -1
  184. package/dist/model/wires/Breaker.js +1 -1
  185. package/dist/model/wires/Breaker.js.map +1 -1
  186. package/dist/model/wires/Disconnector.js +1 -1
  187. package/dist/model/wires/Disconnector.js.map +1 -1
  188. package/dist/model/wires/TransformerEnd.d.ts +2 -3
  189. package/dist/model/wires/TransformerEnd.js.map +1 -1
  190. package/dist/model-container/model/EVModelsContainer.d.ts +0 -2
  191. package/dist/model-container/model/EVModelsContainer.js +0 -99
  192. package/dist/model-container/model/EVModelsContainer.js.map +1 -1
  193. package/dist/model-container/model/ModelContainer.d.ts +9 -4
  194. package/dist/model-container/model/ModelContainer.js +17 -11
  195. package/dist/model-container/model/ModelContainer.js.map +1 -1
  196. package/dist/util/collection/util-graph2tree.js +2 -2
  197. package/dist/util/collection/util-graph2tree.js.map +1 -1
  198. package/dist/utils2/cim.model.utils.js +99 -6
  199. package/dist/utils2/cim.model.utils.js.map +1 -1
  200. package/dist/utils2/model.modification.utils.d.ts +13 -3
  201. package/dist/utils2/model.modification.utils.js +188 -28
  202. package/dist/utils2/model.modification.utils.js.map +1 -1
  203. package/dist/utils2/parser.utils.d.ts +0 -3
  204. package/dist/utils2/parser.utils.js +2 -5
  205. package/dist/utils2/parser.utils.js.map +1 -1
  206. package/package.json +1 -1
@@ -128,7 +128,6 @@ const RdfEnum_1 = require("../rdf/RdfEnum.js");
128
128
  const EVModelsContainer_1 = require("../model-container/model/EVModelsContainer.js");
129
129
  const VoltageLimit_1 = require("../model/operationallimits/VoltageLimit.js");
130
130
  const EVSourceSystemKind_1 = require("../model-container/enum/EVSourceSystemKind.js");
131
- const EVMetaObject_1 = require("../model/extensions/enervance/generic-data-set/EVMetaObject.js");
132
131
  const parser_utils_1 = require("./parser.utils.js");
133
132
  const fuseki_utils_1 = require("./fuseki.utils.js");
134
133
  const AggregateScore_1 = require("../model/assets/AggregateScore.js");
@@ -180,6 +179,8 @@ const TapChangerControl_1 = require("../model/wires/TapChangerControl.js");
180
179
  const INTEGRALPetersenCoilInfo_1 = require("../model/extensions/integral/assetinfo/INTEGRALPetersenCoilInfo.js");
181
180
  const AMPRIONAdditionalBayValue_1 = require("../model/extensions/amprion/additionalassetvalue/AMPRIONAdditionalBayValue.js");
182
181
  const model_modification_utils_1 = require("./model.modification.utils.js");
182
+ const ObjectRemoval_1 = require("../model/generic-data-set/ObjectRemoval.js");
183
+ const ObjectInsertion_1 = require("../model/generic-data-set/ObjectInsertion.js");
183
184
  class CimModelUtils {
184
185
  /**
185
186
  * Erstellt eine Map mit Klassendefinitionen
@@ -354,9 +355,10 @@ class CimModelUtils {
354
355
  map.set(cim_class_names_1.ClassNames.ChangeSet, ChangeSet_1.ChangeSet);
355
356
  map.set(cim_class_names_1.ClassNames.ObjectCreation, ObjectCreation_1.ObjectCreation);
356
357
  map.set(cim_class_names_1.ClassNames.ObjectDeletion, ObjectDeletion_1.ObjectDeletion);
358
+ map.set(cim_class_names_1.ClassNames.ObjectInsertion, ObjectInsertion_1.ObjectInsertion);
359
+ map.set(cim_class_names_1.ClassNames.ObjectRemoval, ObjectRemoval_1.ObjectRemoval);
357
360
  map.set(cim_class_names_1.ClassNames.ObjectModification, ObjectModification_1.ObjectModification);
358
361
  map.set(cim_class_names_1.ClassNames.ObjectReverseModification, ObjectReverseModification_1.ObjectReverseModification);
359
- map.set(cim_class_names_1.ClassNames.EVMetaObject, EVMetaObject_1.EVMetaObject);
360
362
  map.set(cim_class_names_1.ClassNames.ModelOperationDescription, ModelOperationDescription_1.ModelOperationDescription);
361
363
  map.set(cim_class_names_1.ClassNames.ModelOperation, ModelOperation_1.ModelOperation);
362
364
  map.set(cim_class_names_1.ClassNames.IncrementalDatasetArgDescription, IncrementalDatasetArgDescription_1.IncrementalDatasetArgDescription);
@@ -462,7 +464,7 @@ class CimModelUtils {
462
464
  }
463
465
  /** Instanziiert Inhalte eines Modellobjektes */
464
466
  static loadNetworkModel(fusekiUrl, graphUri, loadConfig, modelContainer, modelType) {
465
- var _a;
467
+ var _a, _b;
466
468
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
467
469
  const classDefinitions = CimModelUtils.getClassDefinitions();
468
470
  if (!modelContainer) {
@@ -479,6 +481,52 @@ class CimModelUtils {
479
481
  (_a = classDefinitions.get(className)) === null || _a === void 0 ? void 0 : _a.resolveClassFusekiJSON(rawData, modelContainer);
480
482
  }
481
483
  modelContainer.resolveParsedAssociations();
484
+ /* ---------- ---------- ---------- ---------- ---------- */
485
+ // BEGIN
486
+ switch (modelType) {
487
+ case EVModelTypeKind_1.EVModelTypeKind.alternateModel:
488
+ case EVModelTypeKind_1.EVModelTypeKind.eActionModel:
489
+ const changeSetMembers = [
490
+ ...modelContainer.objectCreation.values(),
491
+ ...modelContainer.objectDeletion.values(),
492
+ ...modelContainer.objectInsertion.values(),
493
+ ...modelContainer.objectRemoval.values(),
494
+ ...modelContainer.objectReverseModification.values(),
495
+ ...modelContainer.objectModification.values()
496
+ ];
497
+ const propertiesObjectUUIDs = new Set();
498
+ for (const changeSetMember of changeSetMembers) {
499
+ if (changeSetMember.propertiesObject)
500
+ propertiesObjectUUIDs.add(changeSetMember.propertiesObject.getUUID());
501
+ }
502
+ for (let i = 0; i < fusekiResponse.length; i++) {
503
+ const className = fusekiResponse[i].type;
504
+ const rawData = fusekiResponse[i];
505
+ const dataValues = (_b = rawData === null || rawData === void 0 ? void 0 : rawData.results) === null || _b === void 0 ? void 0 : _b.bindings;
506
+ for (const rawDataEntry of dataValues) {
507
+ let objectUUID = parser_utils_1.ParserUtils.getValue(rawDataEntry, 'mrid');
508
+ if (!objectUUID)
509
+ objectUUID = parser_utils_1.ParserUtils.getValue(rawDataEntry, 'uuid');
510
+ // only continue for properties objects of change set members
511
+ if (!propertiesObjectUUIDs.has(objectUUID))
512
+ continue;
513
+ const propertiesObject = modelContainer.getObject(objectUUID);
514
+ if (propertiesObject === undefined) {
515
+ throw new Error(`Failed to find properties object with ${objectUUID} for the purge process!`);
516
+ }
517
+ // purge the properties object
518
+ const propertiesObjectKeys = Object.keys(propertiesObject);
519
+ for (const propertyName of propertiesObjectKeys) {
520
+ if (rawDataEntry.hasOwnProperty(propertyName))
521
+ continue;
522
+ delete propertiesObject[propertyName];
523
+ }
524
+ }
525
+ }
526
+ break;
527
+ }
528
+ // END
529
+ /* ---------- ---------- ---------- ---------- ---------- */
482
530
  return modelContainer;
483
531
  });
484
532
  }
@@ -500,7 +548,7 @@ class CimModelUtils {
500
548
  });
501
549
  }
502
550
  static loadNetworkModel2(fusekiUrl, graphUri, loadConfig, modelContainer, modelType) {
503
- var _a;
551
+ var _a, _b;
504
552
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
505
553
  const classDefinitions = CimModelUtils.getClassDefinitions();
506
554
  if (!modelContainer) {
@@ -517,6 +565,52 @@ class CimModelUtils {
517
565
  (_a = classDefinitions.get(className)) === null || _a === void 0 ? void 0 : _a.resolveClassFusekiJSON(rawData, modelContainer);
518
566
  }
519
567
  modelContainer.resolveParsedAssociations();
568
+ /* ---------- ---------- ---------- ---------- ---------- */
569
+ // BEGIN
570
+ switch (modelType) {
571
+ case EVModelTypeKind_1.EVModelTypeKind.alternateModel:
572
+ case EVModelTypeKind_1.EVModelTypeKind.eActionModel:
573
+ const changeSetMembers = [
574
+ ...modelContainer.objectCreation.values(),
575
+ ...modelContainer.objectDeletion.values(),
576
+ ...modelContainer.objectInsertion.values(),
577
+ ...modelContainer.objectRemoval.values(),
578
+ ...modelContainer.objectReverseModification.values(),
579
+ ...modelContainer.objectModification.values()
580
+ ];
581
+ const propertiesObjectUUIDs = new Set();
582
+ for (const changeSetMember of changeSetMembers) {
583
+ if (changeSetMember.propertiesObject)
584
+ propertiesObjectUUIDs.add(changeSetMember.propertiesObject.getUUID());
585
+ }
586
+ for (let i = 0; i < fusekiResponse.length; i++) {
587
+ const className = fusekiResponse[i].type;
588
+ const rawData = fusekiResponse[i];
589
+ const dataValues = (_b = rawData === null || rawData === void 0 ? void 0 : rawData.results) === null || _b === void 0 ? void 0 : _b.bindings;
590
+ for (const rawDataEntry of dataValues) {
591
+ let objectUUID = parser_utils_1.ParserUtils.getValue(rawDataEntry, 'mrid');
592
+ if (!objectUUID)
593
+ objectUUID = parser_utils_1.ParserUtils.getValue(rawDataEntry, 'uuid');
594
+ // only continue for properties objects of change set members
595
+ if (!propertiesObjectUUIDs.has(objectUUID))
596
+ continue;
597
+ const propertiesObject = modelContainer.getObject(objectUUID);
598
+ if (propertiesObject === undefined) {
599
+ throw new Error(`Failed to find properties object with ${objectUUID} for the purge process!`);
600
+ }
601
+ // purge the properties object
602
+ const propertiesObjectKeys = Object.keys(propertiesObject);
603
+ for (const propertyName of propertiesObjectKeys) {
604
+ if (rawDataEntry.hasOwnProperty(propertyName))
605
+ continue;
606
+ delete propertiesObject[propertyName];
607
+ }
608
+ }
609
+ }
610
+ break;
611
+ }
612
+ // END
613
+ /* ---------- ---------- ---------- ---------- ---------- */
520
614
  return modelContainer;
521
615
  });
522
616
  }
@@ -557,9 +651,8 @@ class CimModelUtils {
557
651
  const incrementalDatasetArgs = Array.from(changeSet.incrementalDatasetArg.values());
558
652
  const modelOperations = incrementalDatasetArgs.map(it => it.modelOperation);
559
653
  const changeSetMembers = changeSet.changeSetMember;
560
- const metaObjects = changeSetMembers.map(it => [...it.getMetaObjects().values()]).flat();
561
654
  const targetPropertiesObjects = changeSetMembers.map(it => [it.targetObject, it.propertiesObject]).flat();
562
- newObjects.push(changeSet, ...incrementalDatasetArgs, ...modelOperations, ...changeSetMembers, ...metaObjects, ...targetPropertiesObjects);
655
+ newObjects.push(changeSet, ...incrementalDatasetArgs, ...modelOperations, ...changeSetMembers, ...targetPropertiesObjects);
563
656
  break;
564
657
  }
565
658
  default: {
@@ -1 +1 @@
1
- {"version":3,"file":"cim.model.utils.js","sourceRoot":"","sources":["../../src/utils2/cim.model.utils.ts"],"names":[],"mappings":";;;;AAAA,kEAA0D;AAC1D,2DAAwD;AACxD,mDAAgD;AAChD,yDAAsD;AACtD,6DAA0D;AAC1D,2CAAwC;AACxC,8CAA2C;AAC3C,iDAA8C;AAC9C,gEAA6D;AAC7D,yFAAsF;AACtF,+FAA4F;AAC5F,sEAAmE;AACnE,4EAAyE;AACzE,gEAA6D;AAC7D,sDAAmD;AACnD,kDAA+C;AAC/C,0EAAuE;AACvE,8DAA2D;AAC3D,kDAA+C;AAC/C,oDAAiD;AACjD,oEAAiE;AACjE,sDAAmD;AACnD,wEAAqE;AACrE,gDAA6C;AAC7C,8DAA2D;AAC3D,kEAA+D;AAC/D,0DAAuD;AACvD,gEAA6D;AAC7D,0EAAuE;AACvE,gEAA6D;AAC7D,sFAAmF;AACnF,wEAAqE;AACrE,0EAAuE;AACvE,uEAAoE;AACpE,sEAAmE;AACnE,kFAA+E;AAC/E,wFAAqF;AACrF,0FAAuF;AACvF,0EAAuE;AACvE,qEAAkE;AAClE,qDAAkD;AAClD,2EAAwE;AACxE,uEAAoE;AACpE,qEAAkE;AAClE,iEAA8D;AAC9D,sDAAmD;AACnD,kEAA+D;AAC/D,4EAAyE;AACzE,uEAAoE;AACpE,uDAAoD;AACpD,sFAAmF;AACnF,iEAA8D;AAC9D,iDAA8C;AAC9C,uDAAoD;AACpD,qEAAkE;AAClE,uEAAoE;AACpE,6DAA0D;AAC1D,2DAAwD;AACxD,yDAAsD;AACtD,sFAAmF;AACnF,gHAA6G;AAC7G,gFAA6E;AAC7E,qEAAkE;AAClE,gGAA6F;AAC7F,mEAAgE;AAChE,oFAAiF;AACjF,mFAAgF;AAChF,wFAAqF;AACrF,8DAA2D;AAC3D,kFAA+E;AAC/E,0HAAuH;AACvH,4HAEgF;AAChF,0GAAuG;AACvG,sFAAmF;AACnF,8EAA2E;AAC3E,oGAAiG;AACjG,sFAAmF;AACnF,gFAA6E;AAC7E,iGAA8F;AAC9F,4FAAyF;AACzF,4EAAyE;AACzE,kHAA+G;AAC/G,0FAAuF;AACvF,kFAA+E;AAC/E,wFAAqF;AACrF,gFAA6E;AAC7E,iGAA8F;AAC9F,+GAA4G;AAC5G,uGAAoG;AACpG,2HAAwH;AACxH,uHAAoH;AACpH,6FAA0F;AAC1F,+GAA4G;AAC5G,gFAA6E;AAC7E,gGAA6F;AAC7F,kHAA+G;AAC/G,sHAAmH;AACnH,gIAEgF;AAChF,8HAE+E;AAC/E,8FAA2F;AAC3F,sGAAmG;AACnG,gHAA6G;AAC7G,sFAAmF;AACnF,kFAA+E;AAC/E,+EAA4E;AAG5E,8CAA2C;AAC3C,oDAAiD;AACjD,mEAAgE;AAChE,6EAA0E;AAC1E,6EAA0E;AAC1E,qFAAkF;AAClF,mGAAgG;AAChG,mGAAgG;AAChG,iHAA8G;AAC9G,2FAAwF;AACxF,6EAA0E;AAC1E,4EAAyE;AACzE,gFAA6E;AAC7E,0FAAuF;AACvF,4FAAyF;AACzF,4DAAyD;AACzD,oEAAiE;AACjE,4CAAyC;AACzC,kFAA+E;AAC/E,0EAAuE;AACvE,mFAAgF;AAEhF,8FAA2F;AAC3F,iDAA6C;AAE7C,iDAAiD;AACjD,mEAAgE;AAChE,oGAAiG;AACjG,8FAA2F;AAC3F,4GAAyG;AACzG,iDAA6C;AAC7C,6EAA0E;AAC1E,qGAAkG;AAClG,2GAAwG;AACxG,uGAAoG;AACpG,8EAA2E;AAC3E,+EAA4E;AAC5E,sEAAmE;AACnE,8DAA2D;AAC3D,4DAAyD;AACzD,oEAAiE;AACjE,iFAA8E;AAC9E,0EAAuE;AACvE,4DAAyD;AACzD,kFAA+E;AAC/E,0HAAuH;AACvH,sHAAmH;AACnH,2GAAwG;AACxG,qFAAkF;AAClF,4EAAyE;AACzE,qHAAkH;AAClH,iFAA8E;AAC9E,8GAA2G;AAC3G,kGAA+F;AAC/F,+DAA4D;AAC5D,mHAAgH;AAChH,8DAA2D;AAC3D,kGAA+F;AAC/F,qEAAkE;AAClE,0IAE4F;AAC5F,4GAAyG;AACzG,4IAE6F;AAC7F,kIAEwF;AACxF,kJAEgG;AAChG,kJAEgG;AAChG,4JAEqG;AACrG,iHAA8G;AAC9G,+FAA4F;AAC5F,mHAAgH;AAChH,sFAAmF;AACnF,wFAAqF;AACrF,wEAAqE;AACrE,8GAA2G;AAC3G,0HAAuH;AACvH,yEAAyD;AAEzD,MAAsB,aAAa;IACjC;;SAEK;IACE,MAAM,CAAC,mBAAmB;QAC/B,MAAM,GAAG,GAAqB,IAAI,GAAG,EAAE,CAAC;QAExC,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,WAAW,EAAE,yBAAW,CAAC,CAAC;QAC7C,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,OAAO,EAAE,iBAAO,CAAC,CAAC;QACrC,IAAI;QACJ,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,UAAU,EAAE,uBAAU,CAAC,CAAC;QAC3C,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,YAAY,EAAE,2BAAY,CAAC,CAAC;QAC/C,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,GAAG,EAAE,SAAG,CAAC,CAAC;QAC7B,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,IAAI,EAAE,WAAI,CAAC,CAAC;QAC/B,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,MAAM,EAAE,eAAM,CAAC,CAAC;QAEnC,qBAAqB;QACrB,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,aAAa,EAAE,6BAAa,CAAC,CAAC;QACjD,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,eAAe,EAAE,iCAAe,CAAC,CAAC;QACrD,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,kBAAkB,EAAE,uCAAkB,CAAC,CAAC;QAC3D,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,gBAAgB,EAAE,mCAAgB,CAAC,CAAC;QACvD,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,YAAY,EAAE,2BAAY,CAAC,CAAC;QAC/C,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,mBAAmB,EAAE,yCAAmB,CAAC,CAAC;QAC7D,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,eAAe,EAAE,iCAAe,CAAC,CAAC;QAErD,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,iBAAiB,EAAE,qCAAiB,CAAC,CAAC;QAEzD,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,aAAa,EAAE,6BAAa,CAAC,CAAC;QACjD,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,QAAQ,EAAE,mBAAQ,CAAC,CAAC;QACvC,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,MAAM,EAAE,eAAM,CAAC,CAAC;QACnC,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,kBAAkB,EAAE,uCAAkB,CAAC,CAAC;QAC3D,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,YAAY,EAAE,2BAAY,CAAC,CAAC;QAC/C,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,MAAM,EAAE,eAAM,CAAC,CAAC;QACnC,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,OAAO,EAAE,iBAAO,CAAC,CAAC;QACrC,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,eAAe,EAAE,iCAAe,CAAC,CAAC;QACrD,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,QAAQ,EAAE,mBAAQ,CAAC,CAAC;QACvC,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,iBAAiB,EAAE,qCAAiB,CAAC,CAAC;QACzD,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,KAAK,EAAE,aAAK,CAAC,CAAC;QACjC,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,YAAY,EAAE,2BAAY,CAAC,CAAC;QAC/C,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,cAAc,EAAE,+BAAc,CAAC,CAAC;QACnD,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,mBAAmB,EAAE,yCAAmB,CAAC,CAAC;QAC7D,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,2BAA2B,EAAE,yDAA2B,CAAC,CAAC;QAE7E,WAAW;QACX,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,QAAQ,EAAE,mBAAQ,CAAC,CAAC;QACvC,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,WAAW,EAAE,yBAAW,CAAC,CAAC;QAC7C,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,gBAAgB,EAAE,mCAAgB,CAAC,CAAC;QACvD,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,WAAW,EAAE,yBAAW,CAAC,CAAC;QAE7C,+BAA+B;QAC/B,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,wBAAwB,EAAE,mDAAwB,CAAC,CAAC;QACvE,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,gBAAgB,EAAE,mCAAgB,CAAC,CAAA;QACtD,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,iBAAiB,EAAE,qCAAiB,CAAC,CAAC;QACzD,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,kBAAkB,EAAE,uCAAkB,CAAC,CAAC;QAC3D,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,cAAc,EAAE,+BAAc,CAAC,CAAC;QAEnD,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,kBAAkB,EAAE,uCAAkB,CAAC,CAAC;QAC3D,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,mBAAmB,EAAE,yCAAmB,CAAC,CAAC;QAC7D,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,qBAAqB,EAAE,6CAAqB,CAAC,CAAC;QACjE,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,mBAAmB,EAAE,yCAAmB,CAAC,CAAC;QAE7D,kBAAkB;QAClB,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,gBAAgB,EAAE,mCAAgB,CAAC,CAAC;QACvD,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,sBAAsB,EAAE,+CAAsB,CAAC,CAAC;QAEnE,mBAAmB;QACnB,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,mBAAmB,EAAE,yCAAmB,CAAC,CAAC;QAC7D,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,oBAAoB,EAAE,2CAAoB,CAAC,CAAC;QAC/D,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,YAAY,EAAE,2BAAY,CAAC,CAAC;QAC/C,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,YAAY,EAAE,2BAAY,CAAC,CAAC;QAE/C,UAAU;QACV,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,gBAAgB,EAAE,mCAAgB,CAAC,CAAC;QACvD,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,QAAQ,EAAE,mBAAQ,CAAC,CAAC;QACvC,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,iBAAiB,EAAE,qCAAiB,CAAC,CAAC;QACzD,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,eAAe,EAAE,iCAAe,CAAC,CAAC;QACrD,IAAI;QACJ,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,WAAW,EAAE,yBAAW,CAAC,CAAC;QAC7C,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,SAAS,EAAE,qBAAS,CAAC,CAAC;QACzC,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,WAAW,EAAE,yBAAW,CAAC,CAAC;QAE7C,SAAS;QACT,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,OAAO,EAAE,iBAAO,CAAC,CAAC;QACrC,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,SAAS,EAAE,qBAAS,CAAC,CAAC;QACzC,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,aAAa,EAAE,6BAAa,CAAC,CAAC;QACjD,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,kBAAkB,EAAE,uCAAkB,CAAC,CAAC;QAE3D,KAAK;QACL,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,gBAAgB,EAAE,mCAAgB,CAAC,CAAC;QACvD,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,QAAQ,EAAE,mBAAQ,CAAC,CAAC;QACvC,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,UAAU,EAAE,uBAAU,CAAC,CAAC;QAC3C,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,aAAa,EAAE,6BAAa,CAAC,CAAC;QAEjD,QAAQ;QACR,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,KAAK,EAAE,aAAK,CAAC,CAAC;QACjC,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,QAAQ,EAAE,mBAAQ,CAAC,CAAC;QACvC,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,eAAe,EAAE,iCAAe,CAAC,CAAC;QACrD,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,gBAAgB,EAAE,mCAAgB,CAAC,CAAC;QAEvD,YAAY;QACZ,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,UAAU,EAAE,uBAAU,CAAC,CAAC;QAC3C,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,KAAK,EAAE,aAAK,CAAC,CAAC;QACjC,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,MAAM,EAAE,eAAM,CAAC,CAAC;QAEnC,WAAW;QACX,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,WAAW,EAAE,yBAAW,CAAC,CAAC;QAC7C,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,cAAc,EAAE,+BAAc,CAAC,CAAC;QACnD,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,eAAe,EAAE,iCAAe,CAAC,CAAC;QAErD,QAAQ;QACR,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,UAAU,EAAE,uBAAU,CAAC,CAAC;QAC3C,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,SAAS,EAAE,qBAAS,CAAC,CAAC;QAEzC,iBAAiB;QACjB,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,QAAQ,EAAE,mBAAQ,CAAC,CAAC;QACvC,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,uBAAuB,EAAE,iDAAuB,CAAC,CAAC;QAErE,0BAA0B;QAC1B,oBAAoB;QACpB,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,iBAAiB,EAAE,mCAAgB,CAAC,CAAC;QAExD,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,aAAa,EAAE,6BAAa,CAAC,CAAC;QACjD,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,gBAAgB,EAAE,mCAAgB,CAAC,CAAC;QACvD,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,YAAY,EAAE,2BAAY,CAAC,CAAC;QAE/C,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,YAAY,EAAE,2BAAY,CAAC,CAAC;QAC/C,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,UAAU,EAAE,uBAAU,CAAC,CAAC;QAE3C,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,UAAU,EAAE,uBAAU,CAAC,CAAC;QAE3C,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,WAAW,EAAE,yBAAW,CAAC,CAAC;QAE7C,YAAY;QACZ,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,8BAA8B,EAAE,+DAA8B,CAAC,CAAC;QACnF,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,8BAA8B,EAAE,+DAA8B,CAAC,CAAC;QACnF,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,+BAA+B,EAAE,iEAA+B,CAAC,CAAC;QACrF,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,sBAAsB,EAAE,+CAAsB,CAAC,CAAC;QACnE,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,aAAa,EAAE,6BAAa,CAAC,CAAC;QACjD,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,wBAAwB,EAAE,mDAAwB,CAAC,CAAC;QAEvE,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,UAAU,EAAE,uBAAU,CAAC,CAAC;QAC3C,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,iBAAiB,EAAE,qCAAiB,CAAC,CAAC;QACzD,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,qBAAqB,EAAE,6CAAqB,CAAC,CAAC;QACjE,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,cAAc,EAAE,+BAAc,CAAC,CAAC;QACnD,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,qBAAqB,EAAE,6CAAqB,CAAC,CAAC;QAEjE,OAAO;QACP,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,UAAU,EAAE,uBAAU,CAAC,CAAC;QAG3C,uBAAuB;QACvB,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,kBAAkB,EAAE,uCAAkB,CAAC,CAAC;QAC3D,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,UAAU,EAAE,uBAAU,CAAC,CAAC;QAC3C,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,QAAQ,EAAE,mBAAQ,CAAC,CAAC;QACvC,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,gBAAgB,EAAE,mCAAgB,CAAC,CAAC;QAEvD,SAAS;QACT,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,kBAAkB,EAAE,uCAAkB,CAAC,CAAC;QAC3D,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,UAAU,EAAE,uBAAU,CAAC,CAAC;QAC3C,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,WAAW,EAAE,yBAAW,CAAC,CAAC;QAE7C,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,4BAA4B,EAAE,2DAA4B,CAAC,CAAC;QAC/E,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,gBAAgB,EAAE,mCAAgB,CAAC,CAAC;QACvD,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,YAAY,EAAE,2BAAY,CAAC,CAAC;QAC/C,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,WAAW,EAAE,yBAAW,CAAC,CAAC;QAC7C,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,eAAe,EAAE,iCAAe,CAAC,CAAC;QACrD,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,2BAA2B,EAAE,yDAA2B,CAAC,CAAC;QAE7E,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,oBAAoB,EAAE,2CAAoB,CAAC,CAAC;QAC/D,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,uBAAuB,EAAE,iDAAuB,CAAC,CAAC;QAErE,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,0BAA0B,EAAE,uDAA0B,CAAC,CAAC;QAC3E,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,sBAAsB,EAAE,+CAAsB,CAAC,CAAC;QACnE,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,6BAA6B,EAAE,6DAA6B,CAAC,CAAC;QACjF,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,gCAAgC,EAAE,mEAAgC,CAAC,CAAC;QACvF,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,8BAA8B,EAAE,+DAA8B,CAAC,CAAC;QACnF,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,iBAAiB,EAAE,qCAAiB,CAAC,CAAC;QACzD,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,0BAA0B,EAAE,uDAA0B,CAAC,CAAC;QAC3E,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,WAAW,EAAE,yBAAW,CAAC,CAAC;QAC7C,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,YAAY,EAAE,2BAAY,CAAC,CAAC;QAE/C,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,mBAAmB,EAAE,yCAAmB,CAAC,CAAC;QAC7D,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,4BAA4B,EAAE,2DAA4B,CAAC,CAAC;QAC/E,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,8BAA8B,EAAE,+DAA8B,CAAC,CAAC;QACnF,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,mCAAmC,EAAE,yEAAmC,CAAC,CAAC;QAC7F,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,kCAAkC,EAAE,uEAAkC,CAAC,CAAC;QAC3F,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,kBAAkB,EAAE,uCAAkB,CAAC,CAAC;QAC3D,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,sBAAsB,EAAE,+CAAsB,CAAC,CAAC;QACnE,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,2BAA2B,EAAE,yDAA2B,CAAC,CAAC;QAC7E,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,iCAAiC,EAAE,qEAAiC,CAAC,CAAC;QACzF,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,kCAAkC,EAAE,uEAAkC,CAAC,CAAC;QAC3F,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,6BAA6B,EAAE,6DAA6B,CAAC,CAAC;QACjF,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,qCAAqC,EAAE,6EAAqC,CAAC,CAAC;QACjG,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,0CAA0C,EAAE,uFAA0C,CAAC,CAAC;QAC3G,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,qCAAqC,EAAE,6EAAqC,CAAC,CAAC;QACjG,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,yBAAyB,EAAE,qDAAyB,CAAC,CAAC;QAEzE,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,0BAA0B,EAAE,uDAA0B,CAAC,CAAC;QAC3E,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,iBAAiB,EAAE,qCAAiB,CAAC,CAAC;QACzD,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,2BAA2B,EAAE,yDAA2B,CAAC,CAAC;QAC7E,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,cAAc,EAAE,+BAAc,CAAC,CAAC;QACnD,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,eAAe,EAAE,iCAAe,CAAC,CAAC;QAErD,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,cAAc,EAAE,+BAAc,CAAC,CAAC;QACnD,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,YAAY,EAAE,2BAAY,CAAC,CAAC;QAE/C,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,SAAS,EAAE,qBAAS,CAAC,CAAC;QACzC,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,cAAc,EAAE,+BAAc,CAAC,CAAC;QACnD,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,cAAc,EAAE,+BAAc,CAAC,CAAC;QACnD,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,kBAAkB,EAAE,uCAAkB,CAAC,CAAC;QAC3D,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,yBAAyB,EAAE,qDAAyB,CAAC,CAAC;QACzE,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,YAAY,EAAE,2BAAY,CAAC,CAAC;QAE/C,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,yBAAyB,EAAE,qDAAyB,CAAC,CAAC;QACzE,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,cAAc,EAAE,+BAAc,CAAC,CAAC;QACnD,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,gCAAgC,EAAE,mEAAgC,CAAC,CAAC;QACvF,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,qBAAqB,EAAE,6CAAqB,CAAC,CAAC;QAEjE,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,iBAAiB,EAAE,qCAAiB,CAAC,CAAC;QACzD,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,cAAc,EAAE,+BAAc,CAAC,CAAC;QACnD,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,gBAAgB,EAAE,mCAAgB,CAAC,CAAC;QACvD,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,gBAAgB,EAAE,mCAAgB,CAAC,CAAC;QACvD,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,qBAAqB,EAAE,6CAAqB,CAAC,CAAC;QACjE,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,sBAAsB,EAAE,+CAAsB,CAAC,CAAC;QACnE,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,wBAAwB,EAAE,mDAAwB,CAAC,CAAC;QACvE,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,0BAA0B,EAAE,uDAA0B,CAAC,CAAC;QAC3E,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,oBAAoB,EAAE,2CAAoB,CAAC,CAAC;QAE/D,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,gBAAgB,EAAE,mCAAgB,CAAC,CAAC;QACvD,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,SAAS,EAAE,qBAAS,CAAC,CAAC;QAEzC,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,uBAAuB,EAAE,iDAAuB,CAAC,CAAC;QACrE,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,oBAAoB,EAAE,2CAAoB,CAAC,CAAC;QAE/D,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,KAAK,EAAE,aAAK,CAAC,CAAC;QACjC,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,SAAS,EAAE,qBAAS,CAAC,CAAC;QAEzC,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,QAAQ,EAAE,mBAAQ,CAAC,CAAC;QACvC,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,WAAW,EAAE,yBAAW,CAAC,CAAC;QAC7C,GAAG,CAAC,GAAG,CAAC,4BAAU,CAAC,OAAO,EAAE,iBAAO,CAAC,CAAC;QAErC,OAAO,GAAG,CAAC;IACb,CAAC;IAGM,MAAM,CAAO,mBAAmB,CAAC,SAAiB;;YACvD;gFACoE;YAEpE,MAAM,UAAU,GAAG,CAAC,4BAAU,CAAC,iBAAiB,EAAE,4BAAU,CAAC,gBAAgB,CAAC,CAAC;YAC/E,MAAM,gBAAgB,GAAG,aAAa,CAAC,mBAAmB,EAAE,CAAC;YAC7D,MAAM,cAAc,GAAG,8BAAe,CAAC,cAAc,CAAC,SAAS,EAAE,UAAU,EAAE,gBAAgB,CAAC,CAAA;YAC9F,MAAM,QAAQ,GAAG,MAAM,8BAAe,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YAEjE,aAAa,CAAC,oBAAoB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YAEzD,MAAM,eAAe,GAAwB,MAAM,aAAa,CAAC,iCAAiC,CAAC,QAAQ,CAAC,CAAC;YAE7G,8BAA8B;YAC9B,KAAK,MAAM,SAAS,IAAI,eAAe,EAAE;gBACvC,MAAM,aAAa,CAAC,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,4BAAU,CAAC,SAAS,CAAC,CAAC,CAAC;aACrF;YACD,OAAO,eAAe,CAAC;QACzB,CAAC;KAAA;IAED,qGAAqG;IAC9F,MAAM,CAAO,iCAAiC,CAAC,cAAqB;;;YACzE,gEAAgE;YAChE,MAAM,eAAe,GAAwB,EAAE,CAAC;YAEhD,yBAAyB;YACzB,MAAM,sBAAsB,GAAG,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,4BAAU,CAAC,iBAAiB,CAAC,CAAC;YACnG,qCAAiB,CAAC,sBAAsB,CAAC,sBAAsB,EAAE,eAAe,CAAC,CAAC;YAGlF,yBAAyB;YACzB,MAAM,qBAAqB,GAAG,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,4BAAU,CAAC,gBAAgB,CAAC,CAAC;YACjG,KAAK,MAAM,OAAO,IAAI,MAAA,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,OAAO,0CAAE,QAAQ,EAAE;gBAC9D,MAAM,mBAAmB,GAAG,0BAAW,CAAC,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;gBACjF,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,mBAAmB,CAAC,CAAC;gBAC9E,IAAI,KAAK,CAAC;gBAEV,IAAI,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,YAAY,MAAK,uCAAkB,CAAC,cAAc,EAAE;oBACjE,KAAK,GAAG,mCAAgB,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;iBAC1D;qBAAM;oBACL,KAAK,GAAG,mCAAgB,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;iBAC1D;gBAED,KAAK,CAAC,eAAe,GAAG,SAAS,CAAA;gBACjC,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;aAC5B;YACD,OAAO,eAAe,CAAC;;KACxB;IAED;;;;qFAIiF;IAC1E,MAAM,CAAO,iBAAiB,CAAC,SAAiB,EAAE,eAAkC,EAAE,UAAoB,EAAE,6BAAsC;;YAEvJ,MAAM,SAAS,GAAG,eAAe,CAAC,YAAY,EAAE,CAAC;YACjD,MAAM,aAAa,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;YAE3F,MAAM,cAAc,GAAG,eAAe,CAAC,iBAAiB,EAAE,CAAC;YAC3D,MAAM,aAAa,CAAC,gBAAgB,CAAC,SAAS,EAAE,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;YAErG,MAAM,YAAY,GAAG,eAAe,CAAC,eAAe,EAAE,CAAC;YACvD,IAAI,YAAY,EAAE;gBAChB,MAAM,aAAa,CAAC,gBAAgB,CAAC,SAAS,EAAE,YAAY,CAAC,QAAQ,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;aAClG;YAED,eAAe,CAAC,qBAAqB,EAAE,CAAC;YACxC,eAAe,CAAC,mBAAmB,EAAE,CAAC;YACtC,SAAS,CAAC,QAAQ,EAAE,CAAC;YAErB,aAAa,CAAC,8BAA8B,CAAC,eAAe,EAAE,6BAA6B,CAAC,CAAC;QAC/F,CAAC;KAAA;IAGD,uEAAuE;IAChE,MAAM,CAAC,8BAA8B,CAAC,iBAAoC,EAAE,6BAAqC;QACtH,IAAI,CAAC,6BAA6B;YAAE,OAAO;QAE3C,IAAI,CAAC,iBAAiB;YAAE,OAAO;QAE/B,MAAM,cAAc,GAAG,iBAAiB,CAAC,iBAAiB,EAAoB,CAAC;QAC/E,IAAI,CAAC,cAAc;YAAE,OAAO;QAE5B,MAAM,yBAAyB,GAAG,cAAc,CAAC,4BAA4B,CAAC,6BAA6B,CAAC,CAAC;QAC7G,IAAI,CAAC,yBAAyB;YAAE,OAAO;QAEvC,sCAAW,CAAC,8BAA8B,CAAC,yBAAyB,EAAE,iBAAiB,CAAC,CAAC;IAC3F,CAAC;IAGD,gDAAgD;IACzC,MAAM,CAAO,gBAAgB,CAAC,SAAiB,EAAE,QAAgB,EAAE,UAAoB,EAAE,cAA+B,EAAE,SAA2B;;;YAC1J,MAAM,gBAAgB,GAAG,aAAa,CAAC,mBAAmB,EAAE,CAAC;YAE7D,IAAI,CAAC,cAAc,EAAE;gBACnB,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,iCAAe,CAAC,SAAS,CAAC;gBAC9D,cAAc,GAAG,IAAI,mCAAgB,CAAC,0BAAW,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;aACxF;YACD,MAAM,WAAW,GAAG,8BAAe,CAAC,cAAc,CAAC,SAAS,EAAE,UAAU,EAAE,gBAAgB,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;YACrH,MAAM,cAAc,GAAG,MAAM,8BAAe,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAEpE,aAAa,CAAC,oBAAoB,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;YAE/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC9C,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBACzC,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;gBAClC,yBAAyB;gBACzB,MAAA,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,0CAAE,sBAAsB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;aAClF;YACD,cAAc,CAAC,yBAAyB,EAAE,CAAC;YAE3C,OAAO,cAAc,CAAC;;KACvB;IAGD;8BAC0B;IACnB,MAAM,CAAO,kBAAkB,CAAC,SAAiB,EAAE,eAAkC,EAAE,UAAoB,EAAE,eAAuB,CAAC;;YAE1I,MAAM,SAAS,GAAG,eAAe,CAAC,YAAY,EAAE,CAAC;YACjD,MAAM,aAAa,CAAC,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;YAE5F,MAAM,cAAc,GAAG,eAAe,CAAC,iBAAiB,EAAE,CAAC;YAC3D,MAAM,aAAa,CAAC,iBAAiB,CAAC,SAAS,EAAE,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;YAEtG,MAAM,YAAY,GAAG,eAAe,CAAC,eAAe,EAAE,CAAC;YACvD,IAAI,YAAY,EAAE;gBAChB,MAAM,aAAa,CAAC,iBAAiB,CAAC,SAAS,EAAE,YAAY,CAAC,QAAQ,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;aACnG;YAED,eAAe,CAAC,qBAAqB,EAAE,CAAC;YACxC,eAAe,CAAC,mBAAmB,EAAE,CAAC;YACtC,SAAS,CAAC,QAAQ,EAAE,CAAC;QACvB,CAAC;KAAA;IAEM,MAAM,CAAO,iBAAiB,CAAC,SAAiB,EAAE,QAAgB,EAAE,UAAoB,EAAE,cAA+B,EAAE,SAA2B;;;YAC3J,MAAM,gBAAgB,GAAG,aAAa,CAAC,mBAAmB,EAAE,CAAC;YAE7D,IAAI,CAAC,cAAc,EAAE;gBACnB,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,iCAAe,CAAC,SAAS,CAAC;gBAC9D,cAAc,GAAG,IAAI,mCAAgB,CAAC,0BAAW,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;aACxF;YACD,MAAM,WAAW,GAAG,8BAAe,CAAC,cAAc,CAAC,SAAS,EAAE,UAAU,EAAE,gBAAgB,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;YACrH,MAAM,cAAc,GAAG,MAAM,8BAAe,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAEtE,aAAa,CAAC,oBAAoB,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;YAE/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC9C,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBACzC,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;gBAClC,yBAAyB;gBACzB,MAAA,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,0CAAE,sBAAsB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;aAClF;YACD,cAAc,CAAC,yBAAyB,EAAE,CAAC;YAE3C,OAAO,cAAc,CAAC;;KACvB;IAGD,eAAe;IACR,MAAM,CAAO,WAAW,CAAC,SAAiB,EAAE,eAAkC,EAAE,UAAoB,EAAE,cAA6B;;;YACxI,MAAM,gBAAgB,GAAG,aAAa,CAAC,mBAAmB,EAAE,CAAC;YAE7D,MAAM,YAAY,GAAG,eAAe,CAAC,eAAe,EAAE,CAAC;YACvD,MAAM,WAAW,GAAG,8BAAe,CAAC,cAAc,CAAC,SAAS,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;YACxH,MAAM,cAAc,GAAG,MAAM,8BAAe,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAEpE,aAAa,CAAC,oBAAoB,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;YAE/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC9C,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBACzC,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;gBAClC,yBAAyB;gBACzB,MAAA,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,0CAAE,sBAAsB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;aAChF;YACD,YAAY,CAAC,yBAAyB,EAAE,CAAC;YAEzC,yBAAyB;YACzB,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;YAC3G,YAAY,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YAC/B,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;YACtE,eAAe,CAAC,mBAAmB,EAAE,CAAC;YAEtC,OAAO,YAAY,CAAC;;KACrB;IAEM,MAAM,CAAC,oBAAoB,CAAC,cAAqB,EAAE,UAAoB;QAC5E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC9C,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;SACxC;IACH,CAAC;IAEM,MAAM,CAAC,mBAAmB,CAAC,SAAoB;QACpD,MAAM,UAAU,GAAG,EAAE,CAAC;QACtB,QAAQ,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE;YAClC,KAAK,4BAAU,CAAC,SAAS,CAAC,CAAC;gBACzB,MAAM,SAAS,GAAG,SAAsB,CAAC;gBACzC,MAAM,sBAAsB,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,MAAM,EAAE,CAAC,CAAC;gBACpF,MAAM,eAAe,GAAG,sBAAsB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC;gBAC5E,MAAM,gBAAgB,GAAG,SAAS,CAAC,eAAe,CAAC;gBACnD,MAAM,WAAW,GAAG,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,cAAc,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACzF,MAAM,uBAAuB,GAAG,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC1G,UAAU,CAAC,IAAI,CACb,SAAS,EACT,GAAG,sBAAsB,EACzB,GAAG,eAAe,EAClB,GAAG,gBAAgB,EACnB,GAAG,WAAW,EACd,GAAG,uBAAuB,CAC3B,CAAC;gBACF,MAAM;aACP;YACD,OAAO,CAAC,CAAC;gBACP,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC3B,MAAM;aACP;SACF;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;CAEF;AAldD,sCAkdC"}
1
+ {"version":3,"file":"cim.model.utils.js","sourceRoot":"","sources":["../../src/utils2/cim.model.utils.ts"],"names":[],"mappings":"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"}
@@ -8,9 +8,10 @@ import { EVModelsContainer } from '../model-container/model/EVModelsContainer.js
8
8
  import { ModelOperationDescription } from '../model/model-operations/ModelOperationDescription.js';
9
9
  import { IncrementalDatasetArg } from '../model/model-operations/IncrementalDatasetArg.js';
10
10
  import { ModelOperation } from '../model/model-operations/ModelOperation.js';
11
- import { EVMetaObject } from '../model/extensions/enervance/generic-data-set/EVMetaObject.js';
12
11
  import { ChangeSetMember } from '../model/generic-data-set/ChangeSetMember.js';
13
12
  import { EVModelContainer } from '../model-container/model/EVModelContainer.js';
13
+ import { ObjectInsertion } from '../model/generic-data-set/ObjectInsertion.js';
14
+ import { ObjectRemoval } from '../model/generic-data-set/ObjectRemoval.js';
14
15
  export type CRUDBaseObjectType = {
15
16
  mrid: string;
16
17
  };
@@ -29,8 +30,9 @@ export declare abstract class ModelModificationUtils {
29
30
  export declare abstract class CRUDFactory<T> {
30
31
  static createObjectCreation<O extends CRUDStreamBaseObjectType>(targetObject: O, changeSet: ChangeSet): ObjectCreation;
31
32
  static createObjectDeletion<O extends CRUDStreamBaseObjectType>(targetObject: O, changeSet: ChangeSet): ObjectDeletion;
33
+ static createObjectInsertion<O extends CRUDStreamBaseObjectType>(targetObject: O, changeSet: ChangeSet): ObjectInsertion;
34
+ static createObjectRemoval<O extends CRUDStreamBaseObjectType>(targetObject: O, changeSet: ChangeSet): ObjectRemoval;
32
35
  static createObjectModification<O extends CRUDStreamBaseObjectType>(targetObject: O, changeSet: ChangeSet): ObjectModification;
33
- static createMetaObject<O extends CRUDStreamBaseObjectType>(changeSetMember: ChangeSetMember): EVMetaObject;
34
36
  static applyModelOperationDescription(modelOperationDescription: ModelOperationDescription, modelsContainer: EVModelsContainer): void;
35
37
  static reverseModelOperationDescription(modelOperationDescription: ModelOperationDescription, modelsContainer: EVModelsContainer): void;
36
38
  static applyChangeSets(model: EVModelsContainer, ...changeSets: ChangeSet[]): void;
@@ -40,10 +42,15 @@ export declare abstract class CRUDFactory<T> {
40
42
  static applyObjectDeletion(model: EVModelsContainer, objectDeletion: ObjectDeletion | ObjectCreation): void;
41
43
  static applyObjectModification(model: EVModelsContainer, objectModification: ObjectModification): void;
42
44
  static applyObjectReverseModification(model: EVModelsContainer, objectReverseModification: ObjectReverseModification): void;
45
+ static applyObjectInsertion(model: EVModelsContainer, objectInsertion: ObjectInsertion | ObjectRemoval): void;
46
+ static applyObjectRemoval(model: EVModelsContainer, objectRemoval: ObjectRemoval | ObjectInsertion): void;
43
47
  static applyObjectProperties(baseObject: any, propertiesObject: any, keepProperties: string[]): void;
44
48
  private static inspectAndApplyPropertyChange;
45
49
  private static instantiate;
46
50
  private static allAttributes2Undefined;
51
+ private static isDeepEqual;
52
+ private static isDeepEqualRecursive;
53
+ private static isObjectLike;
47
54
  }
48
55
  export declare enum CRUDErrorMessage {
49
56
  OPEN_WITHOUT_CLOSING = "Tried to open a new change set, but another CRUDStream is not being closed yet. Call closeChangeSet at the end of the changes (and before getting the change set)",
@@ -87,7 +94,6 @@ export declare class CRUDStream<Z extends CRUDStreamBaseObjectType> {
87
94
  * needs to be done, because if not, the (reverse) property objects will not contain the correctly changed values
88
95
  */
89
96
  closeChangeSet(): CRUDStream<Z>;
90
- private createMetaObject;
91
97
  /**
92
98
  * Creates a Object-Creation based on the given target object. Its recommended that the target object is a plain version
93
99
  * without having anything set to a specific value yet
@@ -102,6 +108,10 @@ export declare class CRUDStream<Z extends CRUDStreamBaseObjectType> {
102
108
  * Creates a Object-Deletion based on the given target object.
103
109
  */
104
110
  delete2<O extends CRUDStreamBaseObjectType, C>(targetObj: O): CRUDStream<O>;
111
+ insertIntoArray<O extends CRUDStreamBaseObjectType, P extends keyof O>(targetObj: O, attrName: typeof targetObj[P] extends (infer B)[] ? P : never, value: typeof targetObj[P] extends (infer B)[] ? B : never): CRUDStream<O>;
112
+ insertIntoMap<O extends CRUDStreamBaseObjectType, P extends keyof O>(targetObj: O, attrName: typeof targetObj[P] extends Map<infer A, infer B> ? P : never, key: typeof targetObj[P] extends Map<infer A, infer B> ? A : never, value: typeof targetObj[P] extends Map<infer A, infer B> ? B : never): CRUDStream<O>;
113
+ removeFromArray<O extends CRUDStreamBaseObjectType, P extends keyof O>(targetObj: O, attrName: typeof targetObj[P] extends (infer B)[] ? P : never, value: typeof targetObj[P] extends (infer B)[] ? B : never): CRUDStream<O>;
114
+ removeFromMap<O extends CRUDStreamBaseObjectType, P extends keyof O>(targetObj: O, attrName: typeof targetObj[P] extends Map<infer A, infer B> ? P : never, key: typeof targetObj[P] extends Map<infer A, infer B> ? A : never, value: typeof targetObj[P] extends Map<infer A, infer B> ? B : never): CRUDStream<O>;
105
115
  /**
106
116
  * Fallback version of the modify variant.
107
117
  * Modify anything inside the callback-function of the target object. But its recommended to only do atomic changes
@@ -11,7 +11,8 @@ const ModelOperationDescription_1 = require("../model/model-operations/ModelOper
11
11
  const IncrementalDatasetArg_1 = require("../model/model-operations/IncrementalDatasetArg.js");
12
12
  const ModelOperation_1 = require("../model/model-operations/ModelOperation.js");
13
13
  const cim_class_names_1 = require("../constants/cim-class-names.js");
14
- const EVMetaObject_1 = require("../model/extensions/enervance/generic-data-set/EVMetaObject.js");
14
+ const ObjectInsertion_1 = require("../model/generic-data-set/ObjectInsertion.js");
15
+ const ObjectRemoval_1 = require("../model/generic-data-set/ObjectRemoval.js");
15
16
  var CRUDChangeSetState;
16
17
  (function (CRUDChangeSetState) {
17
18
  CRUDChangeSetState[CRUDChangeSetState["open"] = 0] = "open";
@@ -103,6 +104,30 @@ class CRUDFactory {
103
104
  changeSet.changeSetMember.push(objectDeletion);
104
105
  return objectDeletion;
105
106
  }
107
+ static createObjectInsertion(targetObject, changeSet) {
108
+ const objectInsertion = new ObjectInsertion_1.ObjectInsertion(common_utils_1.CommonUtils.generateUUID());
109
+ objectInsertion.sequenceNumber = changeSet.changeSetMember.length + 1;
110
+ objectInsertion.targetObject = targetObject;
111
+ const propertiesObject = CRUDFactory.instantiate(Object.getPrototypeOf(targetObject).constructor);
112
+ CRUDFactory.allAttributes2Undefined(propertiesObject);
113
+ propertiesObject.mrid = common_utils_1.CommonUtils.generateUUID();
114
+ objectInsertion.propertiesObject = propertiesObject;
115
+ objectInsertion.setChangeSet(changeSet);
116
+ changeSet.changeSetMember.push(objectInsertion);
117
+ return objectInsertion;
118
+ }
119
+ static createObjectRemoval(targetObject, changeSet) {
120
+ const objectRemoval = new ObjectRemoval_1.ObjectRemoval(common_utils_1.CommonUtils.generateUUID());
121
+ objectRemoval.sequenceNumber = changeSet.changeSetMember.length + 1;
122
+ objectRemoval.targetObject = targetObject;
123
+ const propertiesObject = CRUDFactory.instantiate(Object.getPrototypeOf(targetObject).constructor);
124
+ CRUDFactory.allAttributes2Undefined(propertiesObject);
125
+ propertiesObject.mrid = common_utils_1.CommonUtils.generateUUID();
126
+ objectRemoval.propertiesObject = propertiesObject;
127
+ objectRemoval.setChangeSet(changeSet);
128
+ changeSet.changeSetMember.push(objectRemoval);
129
+ return objectRemoval;
130
+ }
106
131
  static createObjectModification(targetObject, changeSet) {
107
132
  const objectModification = new ObjectModification_1.ObjectModification(common_utils_1.CommonUtils.generateUUID());
108
133
  const objectReverseModification = new ObjectReverseModification_1.ObjectReverseModification(common_utils_1.CommonUtils.generateUUID());
@@ -127,12 +152,6 @@ class CRUDFactory {
127
152
  changeSet.changeSetMember.push(objectReverseModification);
128
153
  return objectModification;
129
154
  }
130
- static createMetaObject(changeSetMember) {
131
- const metaObject = new EVMetaObject_1.EVMetaObject(common_utils_1.CommonUtils.generateUUID());
132
- metaObject.setChangeSetMember(changeSetMember);
133
- changeSetMember.addMetaObject(metaObject);
134
- return metaObject;
135
- }
136
155
  static applyModelOperationDescription(modelOperationDescription, modelsContainer) {
137
156
  const changeSets = [];
138
157
  if (modelOperationDescription) {
@@ -180,6 +199,12 @@ class CRUDFactory {
180
199
  else if (changeSetMember instanceof ObjectModification_1.ObjectModification) {
181
200
  CRUDFactory.applyObjectModification(model, changeSetMember);
182
201
  }
202
+ else if (changeSetMember instanceof ObjectInsertion_1.ObjectInsertion) {
203
+ CRUDFactory.applyObjectInsertion(model, changeSetMember);
204
+ }
205
+ else if (changeSetMember instanceof ObjectRemoval_1.ObjectRemoval) {
206
+ CRUDFactory.applyObjectRemoval(model, changeSetMember);
207
+ }
183
208
  }
184
209
  }
185
210
  }
@@ -199,6 +224,12 @@ class CRUDFactory {
199
224
  else if (changeSetMember instanceof ObjectModification_1.ObjectModification) {
200
225
  CRUDFactory.applyObjectReverseModification(model, changeSetMember.objectReverseModification);
201
226
  }
227
+ else if (changeSetMember instanceof ObjectInsertion_1.ObjectInsertion) {
228
+ CRUDFactory.applyObjectRemoval(model, changeSetMember);
229
+ }
230
+ else if (changeSetMember instanceof ObjectRemoval_1.ObjectRemoval) {
231
+ CRUDFactory.applyObjectInsertion(model, changeSetMember);
232
+ }
202
233
  }
203
234
  }
204
235
  }
@@ -240,6 +271,82 @@ class CRUDFactory {
240
271
  CRUDFactory.applyObjectProperties(targetObject, objectReverseModification.propertiesObject, cim_class_names_1.keepProperties);
241
272
  }
242
273
  }
274
+ static applyObjectInsertion(model, objectInsertion) {
275
+ const targetObject = CRUDFactory.determineTargetObject(objectInsertion.getTargetObjectUUID(), model);
276
+ const propertiesObject = objectInsertion.propertiesObject;
277
+ if (propertiesObject) {
278
+ for (const propertyName of Object.keys(propertiesObject)) {
279
+ if (cim_class_names_1.keepProperties.includes(propertyName))
280
+ continue;
281
+ const propertyValue = propertiesObject[propertyName];
282
+ if (propertyValue instanceof Map) {
283
+ const targetObjectPropertyValue = targetObject[propertyName];
284
+ if (targetObjectPropertyValue instanceof Map) {
285
+ for (const [key, value] of propertyValue.entries()) {
286
+ targetObjectPropertyValue.set(key, value);
287
+ }
288
+ }
289
+ else {
290
+ targetObject[propertyName] = new Map(propertyValue);
291
+ }
292
+ }
293
+ else if (Array.isArray(propertyValue)) {
294
+ const targetObjectPropertyValue = targetObject[propertyName];
295
+ if (Array.isArray(targetObjectPropertyValue)) {
296
+ for (const value of propertyValue) {
297
+ targetObjectPropertyValue.push(value);
298
+ }
299
+ }
300
+ else {
301
+ targetObject[propertyName] = Array.from([propertyValue]);
302
+ }
303
+ }
304
+ else {
305
+ throw Error('Not supported case!');
306
+ }
307
+ }
308
+ }
309
+ }
310
+ static applyObjectRemoval(model, objectRemoval) {
311
+ const targetObject = CRUDFactory.determineTargetObject(objectRemoval.getTargetObjectUUID(), model);
312
+ const propertiesObject = objectRemoval.propertiesObject;
313
+ if (propertiesObject) {
314
+ for (const propertyName of Object.keys(propertiesObject)) {
315
+ if (cim_class_names_1.keepProperties.includes(propertyName))
316
+ continue;
317
+ const propertyValue = propertiesObject[propertyName];
318
+ if (propertyValue instanceof Map) {
319
+ const targetObjectPropertyValue = targetObject[propertyName];
320
+ if (targetObjectPropertyValue instanceof Map) {
321
+ for (const [key, _] of propertyValue.entries()) {
322
+ targetObjectPropertyValue.delete(key);
323
+ }
324
+ }
325
+ else {
326
+ targetObject[propertyName] = new Map(propertyValue);
327
+ }
328
+ }
329
+ else if (Array.isArray(propertyValue)) {
330
+ const targetObjectPropertyValue = targetObject[propertyName];
331
+ if (Array.isArray(targetObjectPropertyValue)) {
332
+ for (const value of propertyValue) {
333
+ const first = targetObjectPropertyValue.findIndex(it => this.isDeepEqual(it, value));
334
+ if (first !== -1) {
335
+ targetObjectPropertyValue.splice(first, 1);
336
+ }
337
+ targetObject[propertyName] = targetObjectPropertyValue;
338
+ }
339
+ }
340
+ else {
341
+ targetObject[propertyName] = Array.from([propertyValue]);
342
+ }
343
+ }
344
+ else {
345
+ throw Error('Not supported case!');
346
+ }
347
+ }
348
+ }
349
+ }
243
350
  static applyObjectProperties(baseObject, propertiesObject, keepProperties) {
244
351
  for (const key of Object.keys(propertiesObject)) {
245
352
  CRUDFactory.inspectAndApplyPropertyChange(key, baseObject, propertiesObject, keepProperties);
@@ -266,6 +373,32 @@ class CRUDFactory {
266
373
  delete object[key];
267
374
  }
268
375
  }
376
+ static isDeepEqual(object1, object2) {
377
+ return this.isDeepEqualRecursive(object1, object2);
378
+ }
379
+ static isDeepEqualRecursive(object1, object2) {
380
+ const both_objects = this.isObjectLike(object1) && this.isObjectLike(object2);
381
+ if (!both_objects && object1 !== object2) {
382
+ return false;
383
+ }
384
+ const object1_keys = Object.keys(object1);
385
+ const object2_keys = Object.keys(object2);
386
+ if (object1_keys.length !== object2_keys.length)
387
+ return false;
388
+ for (const key of object1_keys) {
389
+ const value1 = object1[key];
390
+ const value2 = object2[key];
391
+ const both_objects = this.isObjectLike(value1) && this.isObjectLike(value2);
392
+ if ((both_objects && !this.isDeepEqualRecursive(value1, value2))
393
+ || (!both_objects && value1 !== value2)) {
394
+ return false;
395
+ }
396
+ }
397
+ return true;
398
+ }
399
+ static isObjectLike(thing) {
400
+ return thing != null && typeof thing === "object";
401
+ }
269
402
  }
270
403
  exports.CRUDFactory = CRUDFactory;
271
404
  var CRUDErrorMessage;
@@ -332,25 +465,8 @@ class CRUDStream {
332
465
  entry[0][objectProperty.attrName] = objectProperty.value;
333
466
  }
334
467
  }
335
- /** Metainformationen erzeugen */
336
- for (const changeSetMember of this.currentChangeSet.changeSetMember) {
337
- if (changeSetMember instanceof ObjectCreation_1.ObjectCreation) {
338
- this.createMetaObject(changeSetMember);
339
- }
340
- else if (changeSetMember instanceof ObjectModification_1.ObjectModification) {
341
- this.createMetaObject(changeSetMember);
342
- this.createMetaObject(changeSetMember.objectReverseModification);
343
- }
344
- }
345
468
  return this;
346
469
  }
347
- createMetaObject(changeSetMember) {
348
- for (const entry of Object.entries(changeSetMember.propertiesObject)) {
349
- const metaObjectModification = CRUDFactory.createMetaObject(changeSetMember);
350
- metaObjectModification.setPropertyName(entry[0]);
351
- metaObjectModification.setPropertyState(entry[1]);
352
- }
353
- }
354
470
  /**
355
471
  * Creates a Object-Creation based on the given target object. Its recommended that the target object is a plain version
356
472
  * without having anything set to a specific value yet
@@ -389,6 +505,54 @@ class CRUDStream {
389
505
  this.ctxCimObject = targetObj;
390
506
  return this;
391
507
  }
508
+ insertIntoArray(targetObj, attrName, value) {
509
+ if (!this.canAddMember2ChangeSet()) {
510
+ throw new Error(CRUDErrorMessage.ACCESS_CLOSED_CHANGE_SET);
511
+ }
512
+ const objectInsertion = CRUDFactory.createObjectInsertion(targetObj, this.currentChangeSet);
513
+ // @ts-ignore
514
+ objectInsertion.propertiesObject[attrName] = [value];
515
+ this.ctxCimObject = targetObj;
516
+ this.currentChangeSetMember = objectInsertion;
517
+ return this;
518
+ }
519
+ insertIntoMap(targetObj, attrName, key, value) {
520
+ if (!this.canAddMember2ChangeSet()) {
521
+ throw new Error(CRUDErrorMessage.ACCESS_CLOSED_CHANGE_SET);
522
+ }
523
+ const objectInsertion = CRUDFactory.createObjectInsertion(targetObj, this.currentChangeSet);
524
+ const newMap = new Map();
525
+ newMap.set(key, value);
526
+ // @ts-ignore
527
+ objectInsertion.propertiesObject[attrName] = newMap;
528
+ this.ctxCimObject = targetObj;
529
+ this.currentChangeSetMember = objectInsertion;
530
+ return this;
531
+ }
532
+ removeFromArray(targetObj, attrName, value) {
533
+ if (!this.canAddMember2ChangeSet()) {
534
+ throw new Error(CRUDErrorMessage.ACCESS_CLOSED_CHANGE_SET);
535
+ }
536
+ const objectRemoval = CRUDFactory.createObjectRemoval(targetObj, this.currentChangeSet);
537
+ // @ts-ignore
538
+ objectRemoval.propertiesObject[attrName] = [value];
539
+ this.ctxCimObject = targetObj;
540
+ this.currentChangeSetMember = objectRemoval;
541
+ return this;
542
+ }
543
+ removeFromMap(targetObj, attrName, key, value) {
544
+ if (!this.canAddMember2ChangeSet()) {
545
+ throw new Error(CRUDErrorMessage.ACCESS_CLOSED_CHANGE_SET);
546
+ }
547
+ const objectRemoval = CRUDFactory.createObjectRemoval(targetObj, this.currentChangeSet);
548
+ const newMap = new Map();
549
+ newMap.set(key, value);
550
+ // @ts-ignore
551
+ objectRemoval.propertiesObject[attrName] = newMap;
552
+ this.ctxCimObject = targetObj;
553
+ this.currentChangeSetMember = objectRemoval;
554
+ return this;
555
+ }
392
556
  /**
393
557
  * Fallback version of the modify variant.
394
558
  * Modify anything inside the callback-function of the target object. But its recommended to only do atomic changes
@@ -517,10 +681,6 @@ class CRUDStream {
517
681
  }
518
682
  // @ts-ignore
519
683
  objectModification.propertiesObject[attrName] = new Map([...targetMap]);
520
- /** Metainformationen */
521
- const metaObjectModification = CRUDFactory.createMetaObject(objectModification);
522
- metaObjectModification.setPropertyName(attrName);
523
- metaObjectModification.setPropertyState(targetMap);
524
684
  }
525
685
  this.ctxCimObject = targetObj;
526
686
  this.currentChangeSetMember = objectModification;