@gridsuite/commons-ui 0.280.0 → 0.282.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 (207) hide show
  1. package/dist/components/composite/customAGGrid/custom-aggrid-filters/hooks/use-custom-aggrid-comparator-filter.js +1 -0
  2. package/dist/components/composite/customAGGrid/hooks/use-custom-aggrid-sort.js +1 -0
  3. package/dist/components/composite/reactQueryBuilder/OperatorSelector.js +1 -0
  4. package/dist/components/composite/report/QuickSearch.js +1 -0
  5. package/dist/components/composite/report/report-viewer/log-table/log-table.js +1 -1
  6. package/dist/components/ui/dialogs/elementSaveDialog/ElementSaveDialog.d.ts +6 -1
  7. package/dist/components/ui/dialogs/elementSaveDialog/ElementSaveDialog.js +29 -5
  8. package/dist/components/ui/directoryItemSelector/DirectoryItemSelector.js +1 -0
  9. package/dist/components/ui/reactHookForm/booleans/RadioInput.d.ts +1 -0
  10. package/dist/components/ui/reactHookForm/booleans/RadioInput.js +2 -1
  11. package/dist/features/index.js +92 -12
  12. package/dist/features/network-modification-table/network-modifications-table.js +1 -0
  13. package/dist/features/network-modification-table/renderers/reference-link-cell.js +1 -1
  14. package/dist/features/network-modification-table/renderers/root-network-chip-cell.js +1 -0
  15. package/dist/features/network-modification-table/renderers/switch-cell.js +1 -0
  16. package/dist/features/network-modification-table/row/drag-row-clone.js +1 -0
  17. package/dist/features/network-modification-table/use-modifications-drag-and-drop.js +1 -0
  18. package/dist/features/network-modifications/battery/modification/BatteryDialogTabs.d.ts +3 -3
  19. package/dist/features/network-modifications/battery/modification/BatteryDialogTabs.js +2 -2
  20. package/dist/features/network-modifications/battery/modification/BatteryModificationForm.d.ts +4 -1
  21. package/dist/features/network-modifications/battery/modification/BatteryModificationForm.js +7 -11
  22. package/dist/features/network-modifications/generator/modification/GeneratorDialogTabs.d.ts +3 -3
  23. package/dist/features/network-modifications/generator/modification/GeneratorDialogTabs.js +2 -2
  24. package/dist/features/network-modifications/generator/modification/GeneratorModificationForm.d.ts +4 -1
  25. package/dist/features/network-modifications/generator/modification/GeneratorModificationForm.js +4 -8
  26. package/dist/features/network-modifications/index.d.ts +1 -1
  27. package/dist/features/network-modifications/index.js +81 -6
  28. package/dist/features/network-modifications/line/common/LineDialogTabs.d.ts +3 -3
  29. package/dist/features/network-modifications/line/common/LineDialogTabs.js +2 -2
  30. package/dist/features/network-modifications/line/common/LineForm.d.ts +4 -1
  31. package/dist/features/network-modifications/line/common/LineForm.js +7 -11
  32. package/dist/features/network-modifications/line/common/line.utils.d.ts +1 -1
  33. package/dist/features/network-modifications/load/common/LoadDialogTabs.d.ts +3 -3
  34. package/dist/features/network-modifications/load/common/LoadDialogTabs.js +2 -2
  35. package/dist/features/network-modifications/load/common/LoadForm.d.ts +4 -1
  36. package/dist/features/network-modifications/load/common/LoadForm.js +7 -11
  37. package/dist/features/network-modifications/static-var-compensator/common/static-var-compensator-dialog-tabs.d.ts +3 -2
  38. package/dist/features/network-modifications/static-var-compensator/common/static-var-compensator-dialog-tabs.js +2 -2
  39. package/dist/features/network-modifications/static-var-compensator/creation/static-var-compensator-creation-form.d.ts +4 -1
  40. package/dist/features/network-modifications/static-var-compensator/creation/static-var-compensator-creation-form.js +8 -11
  41. package/dist/features/network-modifications/tabular/TabularForm.d.ts +22 -0
  42. package/dist/features/network-modifications/tabular/TabularForm.js +536 -0
  43. package/dist/features/network-modifications/tabular/index.d.ts +7 -0
  44. package/dist/features/network-modifications/tabular/index.js +65 -0
  45. package/dist/features/network-modifications/tabular/properties/DefineTabularPropertiesDialog.d.ts +12 -0
  46. package/dist/features/network-modifications/tabular/properties/DefineTabularPropertiesDialog.js +123 -0
  47. package/dist/features/network-modifications/tabular/properties/TabularPropertiesForm.d.ts +1 -0
  48. package/dist/features/network-modifications/tabular/properties/TabularPropertiesForm.js +87 -0
  49. package/dist/features/network-modifications/tabular/properties/TabularPropertyForm.d.ts +5 -0
  50. package/dist/features/network-modifications/tabular/properties/TabularPropertyForm.js +91 -0
  51. package/dist/features/network-modifications/tabular/properties/index.d.ts +4 -0
  52. package/dist/features/network-modifications/tabular/properties/index.js +13 -0
  53. package/dist/features/network-modifications/tabular/properties/tabularProperty.utils.d.ts +26 -0
  54. package/dist/features/network-modifications/tabular/properties/tabularProperty.utils.js +50 -0
  55. package/dist/features/network-modifications/tabular/tabular.constants.d.ts +59 -0
  56. package/dist/features/network-modifications/tabular/tabular.constants.js +75 -0
  57. package/dist/features/network-modifications/tabular/tabular.types.d.ts +41 -0
  58. package/dist/features/network-modifications/tabular/tabular.types.js +8 -0
  59. package/dist/features/network-modifications/tabular/tabular.utils.d.ts +68 -0
  60. package/dist/features/network-modifications/tabular/tabular.utils.js +301 -0
  61. package/dist/features/network-modifications/tabular/tabularCreation.utils.d.ts +25 -0
  62. package/dist/features/network-modifications/tabular/tabularCreation.utils.js +276 -0
  63. package/dist/features/network-modifications/tabular/tabularModification.utils.d.ts +43 -0
  64. package/dist/features/network-modifications/tabular/tabularModification.utils.js +406 -0
  65. package/dist/features/network-modifications/twoWindingsTransformer/common/TwoWindingsTransformerDialogTabs.d.ts +3 -3
  66. package/dist/features/network-modifications/twoWindingsTransformer/common/TwoWindingsTransformerDialogTabs.js +2 -2
  67. package/dist/features/network-modifications/twoWindingsTransformer/common/TwoWindingsTransformerForm.d.ts +4 -1
  68. package/dist/features/network-modifications/twoWindingsTransformer/common/TwoWindingsTransformerForm.js +7 -11
  69. package/dist/features/network-modifications/voltageLevel/creation/VoltageLevelCreationForm.d.ts +4 -7
  70. package/dist/features/network-modifications/voltageLevel/creation/VoltageLevelCreationForm.js +16 -19
  71. package/dist/features/network-modifications/voltageLevel/creation/index.d.ts +1 -1
  72. package/dist/features/network-modifications/voltageLevel/creation/index.js +3 -1
  73. package/dist/features/network-modifications/voltageLevel/index.d.ts +2 -1
  74. package/dist/features/network-modifications/voltageLevel/index.js +18 -4
  75. package/dist/features/network-modifications/voltageLevel/topology/{CreateVoltageLevelTopologyForm.d.ts → creation/CreateVoltageLevelTopologyForm.d.ts} +1 -1
  76. package/dist/features/network-modifications/voltageLevel/topology/{CreateVoltageLevelTopologyForm.js → creation/CreateVoltageLevelTopologyForm.js} +38 -38
  77. package/dist/features/network-modifications/voltageLevel/topology/{voltageLevelTopologyCreation.types.d.ts → creation/voltageLevelTopologyCreation.types.d.ts} +1 -1
  78. package/dist/features/network-modifications/voltageLevel/topology/{voltageLevelTopologyCreation.utils.d.ts → creation/voltageLevelTopologyCreation.utils.d.ts} +1 -1
  79. package/dist/features/network-modifications/voltageLevel/topology/{voltageLevelTopologyCreation.utils.js → creation/voltageLevelTopologyCreation.utils.js} +5 -5
  80. package/dist/features/network-modifications/voltageLevel/topology/modification/ConnectionCellRender.d.ts +6 -0
  81. package/dist/features/network-modifications/voltageLevel/topology/modification/ConnectionCellRender.js +80 -0
  82. package/dist/features/network-modifications/voltageLevel/topology/modification/VoltageLevelTopologyModificationForm.d.ts +10 -0
  83. package/dist/features/network-modifications/voltageLevel/topology/modification/VoltageLevelTopologyModificationForm.js +284 -0
  84. package/dist/features/network-modifications/voltageLevel/topology/modification/constants.d.ts +10 -0
  85. package/dist/features/network-modifications/voltageLevel/topology/modification/constants.js +10 -0
  86. package/dist/features/network-modifications/{hooks → voltageLevel/topology/modification}/index.d.ts +4 -1
  87. package/dist/features/network-modifications/voltageLevel/topology/modification/index.js +14 -0
  88. package/dist/features/network-modifications/voltageLevel/topology/modification/voltageLevelTopologyModification.types.d.ts +28 -0
  89. package/dist/features/network-modifications/voltageLevel/topology/modification/voltageLevelTopologyModification.types.js +1 -0
  90. package/dist/features/network-modifications/voltageLevel/topology/modification/voltageLevelTopologyModification.utils.d.ts +29 -0
  91. package/dist/features/network-modifications/voltageLevel/topology/modification/voltageLevelTopologyModification.utils.js +124 -0
  92. package/dist/features/parameters/common/hook/index.d.ts +0 -1
  93. package/dist/features/parameters/common/hook/index.js +1 -3
  94. package/dist/features/parameters/common/index.d.ts +1 -0
  95. package/dist/features/parameters/common/index.js +3 -3
  96. package/dist/features/parameters/common/parameter-field.d.ts +2 -2
  97. package/dist/features/parameters/common/parameter-field.js +1 -1
  98. package/dist/features/parameters/dynamic-margin-calculation/dynamic-margin-calculation-form.d.ts +1 -1
  99. package/dist/features/parameters/dynamic-margin-calculation/dynamic-margin-calculation-form.js +1 -1
  100. package/dist/features/parameters/dynamic-margin-calculation/dynamic-margin-calculation-inline.js +10 -10
  101. package/dist/features/parameters/dynamic-margin-calculation/dynamic-margin-calculation.type.d.ts +1 -0
  102. package/dist/features/parameters/dynamic-margin-calculation/dynamic-margin-calculation.type.js +2 -0
  103. package/dist/features/parameters/dynamic-margin-calculation/loads-variations-parameters.js +1 -1
  104. package/dist/features/parameters/dynamic-margin-calculation/time-delay-parameters.js +1 -1
  105. package/dist/features/parameters/dynamic-security-analysis/contingency-parameters.js +1 -1
  106. package/dist/features/parameters/dynamic-security-analysis/dynamic-security-analysis-inline.js +9 -9
  107. package/dist/features/parameters/dynamic-security-analysis/dynamic-security-analysis-parameters-form.d.ts +1 -1
  108. package/dist/features/parameters/dynamic-security-analysis/dynamic-security-analysis-parameters-form.js +1 -1
  109. package/dist/features/parameters/dynamic-security-analysis/dynamic-security-analysis.type.d.ts +1 -0
  110. package/dist/features/parameters/dynamic-security-analysis/dynamic-security-analysis.type.js +2 -0
  111. package/dist/features/parameters/dynamic-security-analysis/scenario-parameters.js +1 -1
  112. package/dist/features/parameters/dynamic-simulation/curve/dialog/curve-preview.js +1 -0
  113. package/dist/features/parameters/dynamic-simulation/curve/dialog/equipment-filter.js +1 -0
  114. package/dist/features/parameters/dynamic-simulation/dynamic-simulation-inline.js +9 -9
  115. package/dist/features/parameters/dynamic-simulation/dynamic-simulation-parameters-form.d.ts +1 -1
  116. package/dist/features/parameters/dynamic-simulation/dynamic-simulation-parameters-form.js +1 -1
  117. package/dist/features/parameters/dynamic-simulation/dynamic-simulation.type.d.ts +1 -0
  118. package/dist/features/parameters/dynamic-simulation/dynamic-simulation.type.js +2 -0
  119. package/dist/features/parameters/dynamic-simulation/network/network-parameters.js +1 -1
  120. package/dist/features/parameters/dynamic-simulation/solver/common-solver/common-solver-parameters.js +1 -1
  121. package/dist/features/parameters/dynamic-simulation/solver/ida-solver/ida-solver-parameters.js +1 -1
  122. package/dist/features/parameters/dynamic-simulation/solver/sim-solver/simplified-solver-parameters.js +1 -1
  123. package/dist/features/parameters/dynamic-simulation/solver/solver-parameters.js +1 -1
  124. package/dist/features/parameters/dynamic-simulation/time-delay/time-delay-parameters.js +1 -1
  125. package/dist/features/parameters/index.js +12 -7
  126. package/dist/features/parameters/loadflow/load-flow-advanced-parameters.js +1 -1
  127. package/dist/features/parameters/loadflow/load-flow-general-parameters.js +1 -1
  128. package/dist/features/parameters/loadflow/load-flow-parameters-inline.js +6 -6
  129. package/dist/features/parameters/loadflow/load-flow-parameters-utils.d.ts +1 -0
  130. package/dist/features/parameters/loadflow/load-flow-parameters-utils.js +2 -0
  131. package/dist/features/parameters/loadflow/load-flow-provider-specific-parameters.js +1 -1
  132. package/dist/features/parameters/loadflow/use-load-flow-parameters-form.js +3 -3
  133. package/dist/features/parameters/network-visualizations/constants.d.ts +1 -0
  134. package/dist/features/parameters/network-visualizations/constants.js +2 -0
  135. package/dist/features/parameters/network-visualizations/index.js +2 -1
  136. package/dist/features/parameters/network-visualizations/network-visualizations-parameters-inline.js +6 -6
  137. package/dist/features/parameters/network-visualizations/use-network-visualizations-parameters-form.js +3 -7
  138. package/dist/features/parameters/pcc-min/pcc-min-parameters-inline.js +6 -6
  139. package/dist/features/parameters/security-analysis/constants.d.ts +1 -0
  140. package/dist/features/parameters/security-analysis/constants.js +2 -0
  141. package/dist/features/parameters/security-analysis/index.js +2 -1
  142. package/dist/features/parameters/security-analysis/security-analysis-parameters-content.js +1 -1
  143. package/dist/features/parameters/security-analysis/security-analysis-parameters-dialog.js +1 -1
  144. package/dist/features/parameters/security-analysis/security-analysis-parameters-inline.js +6 -6
  145. package/dist/features/parameters/security-analysis/use-security-analysis-parameters-form.js +3 -3
  146. package/dist/features/parameters/sensi/columns-definitions.d.ts +2 -0
  147. package/dist/features/parameters/sensi/columns-definitions.js +36 -1
  148. package/dist/features/parameters/sensi/index.js +3 -1
  149. package/dist/features/parameters/sensi/sensitivity-analysis-parameters-dialog.js +1 -1
  150. package/dist/features/parameters/sensi/sensitivity-analysis-parameters-form.js +2 -1
  151. package/dist/features/parameters/sensi/sensitivity-analysis-parameters-inline.js +10 -7
  152. package/dist/features/parameters/sensi/sensitivity-parameters-selector.d.ts +3 -1
  153. package/dist/features/parameters/sensi/sensitivity-parameters-selector.js +19 -35
  154. package/dist/features/parameters/sensi/use-sensitivity-analysis-parameters.d.ts +9 -1
  155. package/dist/features/parameters/sensi/use-sensitivity-analysis-parameters.js +29 -1
  156. package/dist/features/parameters/short-circuit/short-circuit-parameters-inline.js +6 -6
  157. package/dist/features/parameters/short-circuit/short-circuit-parameters-utils.d.ts +1 -0
  158. package/dist/features/parameters/short-circuit/short-circuit-parameters-utils.js +2 -0
  159. package/dist/features/parameters/short-circuit/use-short-circuit-parameters-form.js +3 -3
  160. package/dist/features/parameters/voltage-init/constants.d.ts +1 -0
  161. package/dist/features/parameters/voltage-init/constants.js +2 -0
  162. package/dist/features/parameters/voltage-init/index.js +2 -1
  163. package/dist/features/parameters/voltage-init/use-voltage-init-parameters-form.js +4 -8
  164. package/dist/features/parameters/voltage-init/voltage-init-parameters-inline.js +6 -6
  165. package/dist/features/process-configs/loadflow/lf-process-config-edition.js +7 -1
  166. package/dist/features/process-configs/security-analysis/sa-process-config-edition.js +7 -1
  167. package/dist/features/process-configs/shortcircuit/sc-process-config-edition.js +7 -1
  168. package/dist/features/results/loadflow/limit-violation-result.js +1 -1
  169. package/dist/features/results/shortcircuit/shortcircuit-analysis-result.js +1 -1
  170. package/dist/features/side-bar/AppSideBarHeader.js +20 -5
  171. package/dist/features/side-bar/EnvironmentChip.d.ts +13 -0
  172. package/dist/features/side-bar/EnvironmentChip.js +49 -0
  173. package/dist/hooks/index.d.ts +1 -0
  174. package/dist/hooks/index.js +3 -1
  175. package/dist/hooks/use-tabs.d.ts +33 -0
  176. package/dist/hooks/use-tabs.js +55 -0
  177. package/dist/index.js +97 -13
  178. package/dist/services/appsMetadata.d.ts +2 -0
  179. package/dist/services/directory.d.ts +1 -1
  180. package/dist/services/directory.js +6 -2
  181. package/dist/services/index.js +2 -1
  182. package/dist/services/userAdmin.d.ts +2 -1
  183. package/dist/services/userAdmin.js +9 -1
  184. package/dist/translations/en/businessErrorsEn.d.ts +1 -0
  185. package/dist/translations/en/businessErrorsEn.js +1 -0
  186. package/dist/translations/en/networkModificationsEn.d.ts +85 -0
  187. package/dist/translations/en/networkModificationsEn.js +91 -1
  188. package/dist/translations/fr/businessErrorsFr.d.ts +1 -0
  189. package/dist/translations/fr/businessErrorsFr.js +1 -0
  190. package/dist/translations/fr/networkModificationsFr.d.ts +85 -0
  191. package/dist/translations/fr/networkModificationsFr.js +91 -1
  192. package/dist/utils/constants/index.js +2 -1
  193. package/dist/utils/constants/notificationsProvider.d.ts +1 -0
  194. package/dist/utils/constants/notificationsProvider.js +1 -0
  195. package/dist/utils/constants/translationKeys.d.ts +1 -0
  196. package/dist/utils/constants/translationKeys.js +2 -0
  197. package/dist/utils/index.js +2 -1
  198. package/dist/utils/types/types.d.ts +4 -0
  199. package/package.json +1 -1
  200. package/dist/features/network-modifications/hooks/index.js +0 -4
  201. package/dist/features/network-modifications/hooks/useTabsWithError.d.ts +0 -15
  202. package/dist/features/network-modifications/hooks/useTabsWithError.js +0 -28
  203. package/dist/features/parameters/common/hook/use-tabs.d.ts +0 -16
  204. package/dist/features/parameters/common/hook/use-tabs.js +0 -65
  205. /package/dist/features/network-modifications/voltageLevel/topology/{index.d.ts → creation/index.d.ts} +0 -0
  206. /package/dist/features/network-modifications/voltageLevel/topology/{index.js → creation/index.js} +0 -0
  207. /package/dist/features/network-modifications/voltageLevel/topology/{voltageLevelTopologyCreation.types.js → creation/voltageLevelTopologyCreation.types.js} +0 -0
@@ -429,7 +429,97 @@ const networkModificationsEn = {
429
429
  MissingConnectionsInVoltageLevel: "Missing connections in voltage level (Connections removed from list on validation)",
430
430
  builtNodeTooltipVlTopoModif: "Switches list taking into account all applied modifications",
431
431
  notBuiltNodeTooltipVlTopoModif: "Switches list from last built node in current branch",
432
- Undefined: "Undefined"
432
+ Undefined: "Undefined",
433
+ // Tabular creation / modification - dialog
434
+ TabularCreation: "Tabular creation",
435
+ TabularModification: "Tabular modification",
436
+ TabularCreationError: "Error while creating tabular creation",
437
+ TabularModificationError: "Error while creating tabular modification",
438
+ DefinePropertiesButton: "Define properties",
439
+ DefinePropertiesTitle: "Additional properties",
440
+ // Tabular creation / modification - CSV validation
441
+ ModificationsRequiredTabError: "At least one modification must be imported",
442
+ FieldRequired: 'At least one value is missing for required field : "{requiredFieldNameInError}"',
443
+ DependantFieldMissing: '"{requiredField}" is required if the following field is set : "{dependantField}"',
444
+ WrongFieldType: '"{field}" should be of type {type}',
445
+ WrongEnumValue: 'At least one value is unexpected for field : "{field}", expected values : {expectedValues}',
446
+ WrongBooleanValueWarning: 'At least one invalid value for boolean field : "{field}" was automatically replaced by false.',
447
+ "fieldType.boolean": "boolean (true/false)",
448
+ "fieldType.number": "numerical",
449
+ TabularCreationShuntWarning: "Both maximum reactive power (and/or type) and maximum susceptance have been submitted for the same shunt compensator. Maximum susceptance will thus be ignored.",
450
+ TabularModificationShuntWarning: "Both maximum reactive power (and/or type) and maximum susceptance have been submitted for the same shunt compensator. Maximum susceptance will thus be ignored.",
451
+ // Tabular creation / modification - CSV columns
452
+ equipmentId: "ID",
453
+ equipmentName: "Name",
454
+ voltageLevelId: "Voltage level ID",
455
+ busOrBusbarSectionId: "Bus bar section / bus",
456
+ terminalConnected: "Connected",
457
+ connectionName: "Connection name",
458
+ connectionName1: "Connection name 1",
459
+ connectionDirection1: "Connection direction 1",
460
+ connectionPosition1: "Connection position 1",
461
+ connectionName2: "Connection name 2",
462
+ connectionDirection2: "Connection direction 2",
463
+ connectionPosition2: "Connection position 2",
464
+ minQ: "Q min",
465
+ maxQ: "Q max",
466
+ reactiveCapabilityCurve: "Reactive capability curve",
467
+ reactiveCapabilityCurvePmin: "Pmin",
468
+ reactiveCapabilityCurveQminPmin: "QminPmin",
469
+ reactiveCapabilityCurveQmaxPmin: "QmaxPmin",
470
+ reactiveCapabilityCurveP0: "P0",
471
+ reactiveCapabilityCurveQminP0: "QminP0",
472
+ reactiveCapabilityCurveQmaxP0: "QmaxP0",
473
+ reactiveCapabilityCurvePmax: "Pmax",
474
+ reactiveCapabilityCurveQminPmax: "QminPmax",
475
+ reactiveCapabilityCurveQmaxPmax: "QmaxPmax",
476
+ regulatingTerminalId: "Regulated equipment",
477
+ regulatingTerminalType: "Regulated equipment type",
478
+ regulatingTerminalVlId: "Regulated voltage level",
479
+ qPercent: "Reactive percentage",
480
+ participate: "Active power regulation",
481
+ droop: "Droop",
482
+ directTransX: "Transient reactance (Ω)",
483
+ stepUpTransformerX: "Transformer reactance (Ω)",
484
+ plannedActivePowerSetPoint: "Planning P (MW)",
485
+ nominalV: "Nominal voltage (kV)",
486
+ ipMin: "ISC min (kA)",
487
+ ipMax: "ISC max (kA)",
488
+ r: "Series resistance (Ω)",
489
+ x: "Series reactance (Ω)",
490
+ g: "Magnetizing conductance (μS)",
491
+ b: "Magnetizing susceptance (μS)",
492
+ g1: "Shunt conductance 1 (μS)",
493
+ g2: "Shunt conductance 2 (μS)",
494
+ b1: "Shunt susceptance 1 (μS)",
495
+ b2: "Shunt susceptance 2 (μS)",
496
+ ratedU1: "Rated voltage 1 (kV)",
497
+ ratedU2: "Rated voltage 2 (kV)",
498
+ ratioTapChangerLoadTapChangingCapabilities: "Ratio tap changer on-load",
499
+ ratioTapChangerRegulationSide: "Ratio tap changer regulated side",
500
+ // Tabular creation / modification - CSV template comments
501
+ "TabularCreationSkeletonComment.GENERATOR": "#,,HYDRO | NUCLEAR | WIND | THERMAL | SOLAR | OTHER,,,true | false,,TOP | BOTTOM,,,,,,,true | false,,,,,,,,,,,,true | false,required if voltageRegulationOn is true,,LINE | TWO_WINDINGS_TRANSFORMER | GENERATOR | LOAD | BATTERY | SHUNT_COMPENSATOR | STATIC_VAR_COMPENSATOR | BOUNDARY_LINE | HVDC_CONVERTER_STATION,,,true | false,,,,,,,",
502
+ "TabularCreationSkeletonComment.BATTERY": "#,,,,true | false,,TOP | BOTTOM,,,,,,true | false,,,,,,,,,,,,true | false,",
503
+ "TabularCreationSkeletonComment.LOAD": "#,,AUXILIARY | FICTITIOUS | UNDEFINED,,,true | false,,TOP | BOTTOM,,,",
504
+ "TabularCreationSkeletonComment.SHUNT_COMPENSATOR": "#For each shunt compensator it is possible to modify either the maximum reactive power (and the type) or the maximum susceptance. In case of conflicting input the maximum susceptance will be ignored.,,,,true | false,,TOP | BOTTOM,,,,REACTOR | CAPACITOR | required if maxQAtNominalV is set,,",
505
+ "TabularModificationSkeletonComment.SUBSTATION": "#,,2-letter code from ISO 3166-1 standard (FR ES PT IT CH DE BE LU NL GB ...)",
506
+ "TabularModificationSkeletonComment.LINE": "#,,,,,,,,true | false,,TOP | BOTTOM,,true | false,,TOP | BOTTOM,",
507
+ "TabularModificationSkeletonComment.TWO_WINDINGS_TRANSFORMER": "#,,,,,,,,,true | false,,TOP | BOTTOM,,true | false,,TOP | BOTTOM,,true | false,SIDE1 | SIDE2",
508
+ "TabularModificationSkeletonComment.GENERATOR": "#,,HYDRO | NUCLEAR | WIND | THERMAL | SOLAR | OTHER,true | false,,TOP | BOTTOM,,,,,,,true | false,,,,,,,,,,,,true | false,,,LINE | TWO_WINDINGS_TRANSFORMER | GENERATOR | LOAD | BATTERY | SHUNT_COMPENSATOR | STATIC_VAR_COMPENSATOR | BOUNDARY_LINE | HVDC_CONVERTER_STATION,,,true | false,,,,,,,",
509
+ "TabularModificationSkeletonComment.BATTERY": "#,,true | false,,TOP | BOTTOM,,,,,,true | false,,,,,,,,,,,,true | false,",
510
+ "TabularModificationSkeletonComment.LOAD": "#,,AUXILIARY | FICTITIOUS | UNDEFINED,true | false,,TOP | BOTTOM,,,",
511
+ "TabularModificationSkeletonComment.SHUNT_COMPENSATOR": "#For each shunt compensator it is possible to modify either the maximum reactive power (and the type) or the maximum susceptance. In case of conflicting input the maximum susceptance will be ignored.,,true | false,,TOP | BOTTOM,,,,REACTOR | CAPACITOR,,",
512
+ // Voltage level modification
513
+ ModifyVoltageLevelTopology: "Modify voltage level topology",
514
+ VoltageLevelTopologyModificationError: "Voltage level topology modification error",
515
+ switchId: "Switch ID",
516
+ Open: "Open",
517
+ Closed: "Closed",
518
+ previousStatus: "Previous status",
519
+ currentStatus: "Modified status",
520
+ copyPreviousTopologyStatus: "Fill with previous status",
521
+ modifiedSwitchesSeparatorTitle: "Modification",
522
+ unModifiedSwitchesSeparatorTitle: "No-modification"
433
523
  };
434
524
  export {
435
525
  networkModificationsEn
@@ -89,6 +89,7 @@ export declare const businessErrorsFr: {
89
89
  'modification.container.notFound': string;
90
90
  'modification.container.badType': string;
91
91
  'modification.container.type.notFound': string;
92
+ 'modification.badType': string;
92
93
  'modification.notFound': string;
93
94
  'modifications.notFound': string;
94
95
  'modification.infos.error': string;
@@ -83,6 +83,7 @@ const businessErrorsFr = {
83
83
  "modification.container.notFound": "Le container de modification {containerId} de type {containerType} est introuvable",
84
84
  "modification.container.badType": "Le type du container {containerId} est invalide : type actuel {} -> type attendu {expectedContainerType}",
85
85
  "modification.container.type.notFound": "Le type de container pour la modification {modificationId} est introuvable",
86
+ "modification.badType": "Le type de la modification {modificationId} est invalide : type actuel {modificationType} -> type attendu {expectedModificationType}",
86
87
  "modification.notFound": "La modification {modificationId} est introuvable",
87
88
  "modifications.notFound": "Certaines modifications parmi celles ci {ids} n'ont pas été trouvée",
88
89
  "modification.infos.error": "Infos de modification erronées : {errorMessage}",
@@ -432,4 +432,89 @@ export declare const networkModificationsFr: {
432
432
  builtNodeTooltipVlTopoModif: string;
433
433
  notBuiltNodeTooltipVlTopoModif: string;
434
434
  Undefined: string;
435
+ TabularCreation: string;
436
+ TabularModification: string;
437
+ TabularCreationError: string;
438
+ TabularModificationError: string;
439
+ DefinePropertiesButton: string;
440
+ DefinePropertiesTitle: string;
441
+ ModificationsRequiredTabError: string;
442
+ FieldRequired: string;
443
+ DependantFieldMissing: string;
444
+ WrongFieldType: string;
445
+ WrongEnumValue: string;
446
+ WrongBooleanValueWarning: string;
447
+ 'fieldType.boolean': string;
448
+ 'fieldType.number': string;
449
+ TabularCreationShuntWarning: string;
450
+ TabularModificationShuntWarning: string;
451
+ equipmentId: string;
452
+ equipmentName: string;
453
+ voltageLevelId: string;
454
+ busOrBusbarSectionId: string;
455
+ terminalConnected: string;
456
+ connectionName: string;
457
+ connectionName1: string;
458
+ connectionDirection1: string;
459
+ connectionPosition1: string;
460
+ connectionName2: string;
461
+ connectionDirection2: string;
462
+ connectionPosition2: string;
463
+ minQ: string;
464
+ maxQ: string;
465
+ reactiveCapabilityCurve: string;
466
+ reactiveCapabilityCurvePmin: string;
467
+ reactiveCapabilityCurveQminPmin: string;
468
+ reactiveCapabilityCurveQmaxPmin: string;
469
+ reactiveCapabilityCurveP0: string;
470
+ reactiveCapabilityCurveQminP0: string;
471
+ reactiveCapabilityCurveQmaxP0: string;
472
+ reactiveCapabilityCurvePmax: string;
473
+ reactiveCapabilityCurveQminPmax: string;
474
+ reactiveCapabilityCurveQmaxPmax: string;
475
+ regulatingTerminalId: string;
476
+ regulatingTerminalType: string;
477
+ regulatingTerminalVlId: string;
478
+ qPercent: string;
479
+ participate: string;
480
+ droop: string;
481
+ directTransX: string;
482
+ stepUpTransformerX: string;
483
+ plannedActivePowerSetPoint: string;
484
+ nominalV: string;
485
+ ipMin: string;
486
+ ipMax: string;
487
+ r: string;
488
+ x: string;
489
+ g: string;
490
+ b: string;
491
+ g1: string;
492
+ g2: string;
493
+ b1: string;
494
+ b2: string;
495
+ ratedU1: string;
496
+ ratedU2: string;
497
+ ratioTapChangerLoadTapChangingCapabilities: string;
498
+ ratioTapChangerRegulationSide: string;
499
+ 'TabularCreationSkeletonComment.GENERATOR': string;
500
+ 'TabularCreationSkeletonComment.BATTERY': string;
501
+ 'TabularCreationSkeletonComment.LOAD': string;
502
+ 'TabularCreationSkeletonComment.SHUNT_COMPENSATOR': string;
503
+ 'TabularModificationSkeletonComment.SUBSTATION': string;
504
+ 'TabularModificationSkeletonComment.LINE': string;
505
+ 'TabularModificationSkeletonComment.TWO_WINDINGS_TRANSFORMER': string;
506
+ 'TabularModificationSkeletonComment.GENERATOR': string;
507
+ 'TabularModificationSkeletonComment.BATTERY': string;
508
+ 'TabularModificationSkeletonComment.LOAD': string;
509
+ 'TabularModificationSkeletonComment.SHUNT_COMPENSATOR': string;
510
+ ModifyVoltageLevelTopology: string;
511
+ VoltageLevelTopologyModificationError: string;
512
+ switchId: string;
513
+ Open: string;
514
+ Closed: string;
515
+ previousStatus: string;
516
+ currentStatus: string;
517
+ copyPreviousTopologyStatus: string;
518
+ modifiedSwitchesSeparatorTitle: string;
519
+ unModifiedSwitchesSeparatorTitle: string;
435
520
  };
@@ -429,7 +429,97 @@ const networkModificationsFr = {
429
429
  MissingConnectionsInVoltageLevel: "Départs absents du poste (Départs supprimés de la liste à la validation)",
430
430
  builtNodeTooltipVlTopoModif: "Liste des organes de coupure tenant compte de toutes les modifications réalisées",
431
431
  notBuiltNodeTooltipVlTopoModif: "Liste des organes de coupure d'après le dernier nœud réalisé de la branche courante",
432
- Undefined: "Non défini"
432
+ Undefined: "Non défini",
433
+ // Tabular creation / modification - dialog
434
+ TabularCreation: "Création tabulaire",
435
+ TabularModification: "Modification tabulaire",
436
+ TabularCreationError: "Erreur lors de la création tabulaire",
437
+ TabularModificationError: "Erreur lors de la modification tabulaire",
438
+ DefinePropertiesButton: "Définir propriétés",
439
+ DefinePropertiesTitle: "Propriétés complémentaires",
440
+ // Tabular creation / modification - CSV validation
441
+ ModificationsRequiredTabError: "Au moins une modification doit être importée",
442
+ FieldRequired: 'Au moins une valeur est manquante pour le champ requis : "{requiredFieldNameInError}"',
443
+ DependantFieldMissing: 'Le champ "{requiredField}" est requis si le champ suivant est défini : "{dependantField}"',
444
+ WrongFieldType: '"{field}" doit être de type {type}',
445
+ WrongEnumValue: 'Au moins une valeur est inattendue pour le champ : "{field}", valeurs attendues : {expectedValues}',
446
+ WrongBooleanValueWarning: 'Au moins une valeur invalide pour le champ booléen : "{field}" a été automatiquement remplacée par false.',
447
+ "fieldType.boolean": "booléen (true/false)",
448
+ "fieldType.number": "numérique",
449
+ TabularCreationShuntWarning: "La création tabulaire contient des valeurs pour la puissance réactive installée (et/ou le type) et la susceptance installée d'un même MCS. La susceptance installée sera donc ignorée.",
450
+ TabularModificationShuntWarning: "La modification tabulaire contient des valeurs pour la puissance réactive installée (et/ou le type) et la susceptance installée d'un même MCS. La susceptance installée sera donc ignorée.",
451
+ // Tabular creation / modification - CSV columns
452
+ equipmentId: "ID",
453
+ equipmentName: "Nom",
454
+ voltageLevelId: "ID Poste",
455
+ busOrBusbarSectionId: "SJB / nœud",
456
+ terminalConnected: "Connecté",
457
+ connectionName: "Nom départ",
458
+ connectionName1: "Nom départ 1",
459
+ connectionDirection1: "Sens départ 1",
460
+ connectionPosition1: "Position départ 1",
461
+ connectionName2: "Nom départ 2",
462
+ connectionDirection2: "Sens départ 2",
463
+ connectionPosition2: "Position départ 2",
464
+ minQ: "Q min",
465
+ maxQ: "Q max",
466
+ reactiveCapabilityCurve: "Limites de réactif par diagramme",
467
+ reactiveCapabilityCurvePmin: "Pmin",
468
+ reactiveCapabilityCurveQminPmin: "QminPmin",
469
+ reactiveCapabilityCurveQmaxPmin: "QmaxPmin",
470
+ reactiveCapabilityCurveP0: "P0",
471
+ reactiveCapabilityCurveQminP0: "QminP0",
472
+ reactiveCapabilityCurveQmaxP0: "QmaxP0",
473
+ reactiveCapabilityCurvePmax: "Pmax",
474
+ reactiveCapabilityCurveQminPmax: "QminPmax",
475
+ reactiveCapabilityCurveQmaxPmax: "QmaxPmax",
476
+ regulatingTerminalId: "Ouvrage réglé",
477
+ regulatingTerminalType: "Type d'ouvrage réglé",
478
+ regulatingTerminalVlId: "Poste réglé",
479
+ qPercent: "Cœfficient de participation",
480
+ participate: "Compensation",
481
+ droop: "Participation",
482
+ directTransX: "Réactance transitoire (Ω)",
483
+ stepUpTransformerX: "Réactance du transformateur (Ω)",
484
+ plannedActivePowerSetPoint: "P imposée (MW)",
485
+ nominalV: "Tension nominale (kV)",
486
+ ipMin: "ICC min (kA)",
487
+ ipMax: "ICC max (kA)",
488
+ r: "Résistance série (Ω)",
489
+ x: "Réactance série (Ω)",
490
+ g: "Conductance magnétisante (μS)",
491
+ b: "Susceptance magnétisante (μS)",
492
+ g1: "Conductance parallèle 1 (μS)",
493
+ g2: "Conductance parallèle 2 (μS)",
494
+ b1: "Susceptance parallèle 1 (μS)",
495
+ b2: "Susceptance parallèle 2 (μS)",
496
+ ratedU1: "Tension d'enroulement 1 (kV)",
497
+ ratedU2: "Tension d'enroulement 2 (kV)",
498
+ ratioTapChangerLoadTapChangingCapabilities: "Régleur en charge",
499
+ ratioTapChangerRegulationSide: "Côté réglé régleur",
500
+ // Tabular creation / modification - CSV template comments
501
+ "TabularCreationSkeletonComment.GENERATOR": "#;;HYDRO | NUCLEAR | WIND | THERMAL | SOLAR | OTHER;;;true | false;;TOP | BOTTOM;;;;;;;true | false;;;;;;;;;;;;true | false;required if voltageRegulationOn is true;;LINE | TWO_WINDINGS_TRANSFORMER | GENERATOR | LOAD | BATTERY | SHUNT_COMPENSATOR | STATIC_VAR_COMPENSATOR | BOUNDARY_LINE | HVDC_CONVERTER_STATION;;;true | false;;;;;;;",
502
+ "TabularCreationSkeletonComment.BATTERY": "#;;;;true | false;;TOP | BOTTOM;;;;;;true | false;;;;;;;;;;;;true | false;",
503
+ "TabularCreationSkeletonComment.LOAD": "#;;AUXILIARY | FICTITIOUS | UNDEFINED;;;true | false;;TOP | BOTTOM;;;",
504
+ "TabularCreationSkeletonComment.SHUNT_COMPENSATOR": "#Pour chaque MCS il est possible de modifier soit la puissance réactive installée (et le type) soit la susceptance installée. En cas de conflit la susceptance installée sera ignorée.;;;;true | false;;TOP | BOTTOM;;;;REACTOR | CAPACITOR | requis si maxQAtNominalV est défini;;",
505
+ "TabularModificationSkeletonComment.SUBSTATION": "#;;Code à 2 lettres de la norme ISO 3166-1 (FR ES PT IT CH DE BE LU NL GB ...)",
506
+ "TabularModificationSkeletonComment.LINE": "#;;;;;;;;true | false;;TOP | BOTTOM;;true | false;;TOP | BOTTOM;",
507
+ "TabularModificationSkeletonComment.TWO_WINDINGS_TRANSFORMER": "#;;;;;;;;;true | false;;TOP | BOTTOM;;true | false;;TOP | BOTTOM;;true | false;SIDE1 | SIDE2",
508
+ "TabularModificationSkeletonComment.GENERATOR": "#;;HYDRO | NUCLEAR | WIND | THERMAL | SOLAR | OTHER;true | false;;TOP | BOTTOM;;;;;;;true | false;;;;;;;;;;;;true | false;;;LINE | TWO_WINDINGS_TRANSFORMER | GENERATOR | LOAD | BATTERY | SHUNT_COMPENSATOR | STATIC_VAR_COMPENSATOR | BOUNDARY_LINE | HVDC_CONVERTER_STATION;;;true | false;;;;;;;",
509
+ "TabularModificationSkeletonComment.BATTERY": "#;;true | false;;TOP | BOTTOM;;;;;;true | false;;;;;;;;;;;;true | false;",
510
+ "TabularModificationSkeletonComment.LOAD": "#;;AUXILIARY | FICTITIOUS | UNDEFINED;true | false;;TOP | BOTTOM;;;",
511
+ "TabularModificationSkeletonComment.SHUNT_COMPENSATOR": "#Pour chaque MCS il est possible de modifier soit la puissance réactive installée (et le type) soit la susceptance installée. En cas de conflit la susceptance installée sera ignorée.;;true | false;;TOP | BOTTOM;;;;REACTOR | CAPACITOR;;",
512
+ // Voltage level modification
513
+ ModifyVoltageLevelTopology: "Modifier la topologie d'un poste",
514
+ VoltageLevelTopologyModificationError: "Erreur lors de la modification de la topologie de poste",
515
+ switchId: "ID de l'organe de coupure",
516
+ Open: "Ouvert",
517
+ Closed: "Fermé",
518
+ previousStatus: "État précédent",
519
+ currentStatus: "État modifié",
520
+ copyPreviousTopologyStatus: "Compléter avec la topologie précédente",
521
+ modifiedSwitchesSeparatorTitle: "OC modifiés",
522
+ unModifiedSwitchesSeparatorTitle: "OC non-modifiés"
433
523
  };
434
524
  export {
435
525
  networkModificationsFr
@@ -5,7 +5,7 @@ import { MAX_CHAR_DESCRIPTION } from "./uiConstants.js";
5
5
  import { AMPERE, DEGREE, KILO_AMPERE, KILO_METER, KILO_VOLT, MEGA_VAR, MEGA_VOLT_AMPERE, MEGA_WATT, MICRO_SIEMENS, OHM, PERCENTAGE, SIEMENS } from "./unitsConstants.js";
6
6
  import { COMMON_APP_NAME, COMMON_CONFIG_PARAMS_NAMES, LAST_SELECTED_DIRECTORY, PARAM_DEVELOPER_MODE, PARAM_LANGUAGE, PARAM_THEME } from "./configConstants.js";
7
7
  import { FILTERS, FILTER_ID, FILTER_NAME, ID } from "./filterConstant.js";
8
- import { ACTIVE_LIMITS_MIN_MAX_INVALID, CREATE_SUBSTATION_IN_VOLTAGE_LEVEL_IDENTICAL_ID, DESCRIPTION_LIMIT_ERROR, DUPLICATED_PROPS_ERROR, MAXIMUM_SECTION_COUNT_MUST_BE_GREATER_OR_EQUAL_TO_ONE, MIN_ACTIVE_POWER_MUST_BE_LESS_OR_EQUAL_TO_MAX_ACTIVE_POWER, MUST_BE_GREATER_OR_EQUAL_TO_ZERO, NAME_ALREADY_USED, NAME_EMPTY, NORMALIZED_PERCENTAGE, NUMERIC_VALUE_OR_EMPTY_FIELD, REACTIVE_LIMITS_MIN_MAX_INVALID, REAL_PERCENTAGE, SECTION_COUNT_MUST_BE_BETWEEN_ZERO_AND_MAXIMUM_SECTION_COUNT, SHORT_CIRCUIT_CURRENT_LIMIT_MUST_BE_GREATER_OR_EQUAL_TO_ZERO, SHUNT_COMPENSATOR_ERROR_Q_AT_NOMINAL_VOLTAGE_LESS_THAN_ZERO, TARGET_DEADBAND_MUST_BE_GREATER_OR_EQUAL_TO_ZERO, VALUE_MUST_BE_NUMERIC_WHEN_PERCENTAGE_ERROR, VALUE_MUST_BE_REF_WHEN_PERCENTAGE_ERROR, WRONG_REF_OR_VALUE_ERROR, YUP_DEFAULT, YUP_NOT_NULL, YUP_NOT_TYPE_DEFAULT, YUP_NOT_TYPE_NUMBER, YUP_POSITIVE, YUP_REQUIRED } from "./translationKeys.js";
8
+ import { ACTIVE_LIMITS_MIN_MAX_INVALID, CREATE_SUBSTATION_IN_VOLTAGE_LEVEL_IDENTICAL_ID, DESCRIPTION_LIMIT_ERROR, DUPLICATED_PROPS_ERROR, MAXIMUM_SECTION_COUNT_MUST_BE_GREATER_OR_EQUAL_TO_ONE, MIN_ACTIVE_POWER_MUST_BE_LESS_OR_EQUAL_TO_MAX_ACTIVE_POWER, MODIFICATIONS_REQUIRED_TAB_ERROR, MUST_BE_GREATER_OR_EQUAL_TO_ZERO, NAME_ALREADY_USED, NAME_EMPTY, NORMALIZED_PERCENTAGE, NUMERIC_VALUE_OR_EMPTY_FIELD, REACTIVE_LIMITS_MIN_MAX_INVALID, REAL_PERCENTAGE, SECTION_COUNT_MUST_BE_BETWEEN_ZERO_AND_MAXIMUM_SECTION_COUNT, SHORT_CIRCUIT_CURRENT_LIMIT_MUST_BE_GREATER_OR_EQUAL_TO_ZERO, SHUNT_COMPENSATOR_ERROR_Q_AT_NOMINAL_VOLTAGE_LESS_THAN_ZERO, TARGET_DEADBAND_MUST_BE_GREATER_OR_EQUAL_TO_ZERO, VALUE_MUST_BE_NUMERIC_WHEN_PERCENTAGE_ERROR, VALUE_MUST_BE_REF_WHEN_PERCENTAGE_ERROR, WRONG_REF_OR_VALUE_ERROR, YUP_DEFAULT, YUP_NOT_NULL, YUP_NOT_TYPE_DEFAULT, YUP_NOT_TYPE_NUMBER, YUP_POSITIVE, YUP_REQUIRED } from "./translationKeys.js";
9
9
  export {
10
10
  ACTIVE_LIMITS_MIN_MAX_INVALID,
11
11
  AMPERE,
@@ -36,6 +36,7 @@ export {
36
36
  MEGA_WATT,
37
37
  MICRO_SIEMENS,
38
38
  MIN_ACTIVE_POWER_MUST_BE_LESS_OR_EQUAL_TO_MAX_ACTIVE_POWER,
39
+ MODIFICATIONS_REQUIRED_TAB_ERROR,
39
40
  MUST_BE_GREATER_OR_EQUAL_TO_ZERO,
40
41
  MVAPowerAdornment,
41
42
  MicroSusceptanceAdornment,
@@ -2,6 +2,7 @@ export declare enum NotificationsUrlKeys {
2
2
  CONFIG = "CONFIG",
3
3
  GLOBAL_CONFIG = "GLOBAL_CONFIG",
4
4
  STUDY = "STUDY",
5
+ QUOTA = "QUOTA",
5
6
  DIRECTORY = "DIRECTORY",
6
7
  DIRECTORY_DELETE_STUDY = "DIRECTORY_DELETE_STUDY",
7
8
  MONITOR = "MONITOR"
@@ -2,6 +2,7 @@ var NotificationsUrlKeys = /* @__PURE__ */ ((NotificationsUrlKeys2) => {
2
2
  NotificationsUrlKeys2["CONFIG"] = "CONFIG";
3
3
  NotificationsUrlKeys2["GLOBAL_CONFIG"] = "GLOBAL_CONFIG";
4
4
  NotificationsUrlKeys2["STUDY"] = "STUDY";
5
+ NotificationsUrlKeys2["QUOTA"] = "QUOTA";
5
6
  NotificationsUrlKeys2["DIRECTORY"] = "DIRECTORY";
6
7
  NotificationsUrlKeys2["DIRECTORY_DELETE_STUDY"] = "DIRECTORY_DELETE_STUDY";
7
8
  NotificationsUrlKeys2["MONITOR"] = "MONITOR";
@@ -11,6 +11,7 @@ export declare const NORMALIZED_PERCENTAGE = "NormalizedPercentage";
11
11
  export declare const DESCRIPTION_LIMIT_ERROR = "descriptionLimitError";
12
12
  export declare const SHORT_CIRCUIT_CURRENT_LIMIT_MUST_BE_GREATER_OR_EQUAL_TO_ZERO = "ShortCircuitCurrentLimitMustBeGreaterOrEqualToZero";
13
13
  export declare const NAME_EMPTY = "nameEmpty";
14
+ export declare const MODIFICATIONS_REQUIRED_TAB_ERROR = "ModificationsRequiredTabError";
14
15
  export declare const ACTIVE_LIMITS_MIN_MAX_INVALID = "ActiveLimitsMinMaxInvalid";
15
16
  export declare const REACTIVE_LIMITS_MIN_MAX_INVALID = "ReactiveLimitsMinMaxInvalid";
16
17
  export declare const SHUNT_COMPENSATOR_ERROR_Q_AT_NOMINAL_VOLTAGE_LESS_THAN_ZERO = "ShuntCompensatorErrorQAtNominalVoltageLessThanZero";
@@ -11,6 +11,7 @@ const NORMALIZED_PERCENTAGE = "NormalizedPercentage";
11
11
  const DESCRIPTION_LIMIT_ERROR = "descriptionLimitError";
12
12
  const SHORT_CIRCUIT_CURRENT_LIMIT_MUST_BE_GREATER_OR_EQUAL_TO_ZERO = "ShortCircuitCurrentLimitMustBeGreaterOrEqualToZero";
13
13
  const NAME_EMPTY = "nameEmpty";
14
+ const MODIFICATIONS_REQUIRED_TAB_ERROR = "ModificationsRequiredTabError";
14
15
  const ACTIVE_LIMITS_MIN_MAX_INVALID = "ActiveLimitsMinMaxInvalid";
15
16
  const REACTIVE_LIMITS_MIN_MAX_INVALID = "ReactiveLimitsMinMaxInvalid";
16
17
  const SHUNT_COMPENSATOR_ERROR_Q_AT_NOMINAL_VOLTAGE_LESS_THAN_ZERO = "ShuntCompensatorErrorQAtNominalVoltageLessThanZero";
@@ -31,6 +32,7 @@ export {
31
32
  DUPLICATED_PROPS_ERROR,
32
33
  MAXIMUM_SECTION_COUNT_MUST_BE_GREATER_OR_EQUAL_TO_ONE,
33
34
  MIN_ACTIVE_POWER_MUST_BE_LESS_OR_EQUAL_TO_MAX_ACTIVE_POWER,
35
+ MODIFICATIONS_REQUIRED_TAB_ERROR,
34
36
  MUST_BE_GREATER_OR_EQUAL_TO_ZERO,
35
37
  NAME_ALREADY_USED,
36
38
  NAME_EMPTY,
@@ -6,7 +6,7 @@ import { MAX_CHAR_DESCRIPTION } from "./constants/uiConstants.js";
6
6
  import { AMPERE, DEGREE, KILO_AMPERE, KILO_METER, KILO_VOLT, MEGA_VAR, MEGA_VOLT_AMPERE, MEGA_WATT, MICRO_SIEMENS, OHM, PERCENTAGE, SIEMENS } from "./constants/unitsConstants.js";
7
7
  import { COMMON_APP_NAME, COMMON_CONFIG_PARAMS_NAMES, LAST_SELECTED_DIRECTORY, PARAM_DEVELOPER_MODE, PARAM_LANGUAGE, PARAM_THEME } from "./constants/configConstants.js";
8
8
  import { FILTERS, FILTER_ID, FILTER_NAME, ID } from "./constants/filterConstant.js";
9
- import { ACTIVE_LIMITS_MIN_MAX_INVALID, CREATE_SUBSTATION_IN_VOLTAGE_LEVEL_IDENTICAL_ID, DESCRIPTION_LIMIT_ERROR, DUPLICATED_PROPS_ERROR, MAXIMUM_SECTION_COUNT_MUST_BE_GREATER_OR_EQUAL_TO_ONE, MIN_ACTIVE_POWER_MUST_BE_LESS_OR_EQUAL_TO_MAX_ACTIVE_POWER, MUST_BE_GREATER_OR_EQUAL_TO_ZERO, NAME_ALREADY_USED, NAME_EMPTY, NORMALIZED_PERCENTAGE, NUMERIC_VALUE_OR_EMPTY_FIELD, REACTIVE_LIMITS_MIN_MAX_INVALID, REAL_PERCENTAGE, SECTION_COUNT_MUST_BE_BETWEEN_ZERO_AND_MAXIMUM_SECTION_COUNT, SHORT_CIRCUIT_CURRENT_LIMIT_MUST_BE_GREATER_OR_EQUAL_TO_ZERO, SHUNT_COMPENSATOR_ERROR_Q_AT_NOMINAL_VOLTAGE_LESS_THAN_ZERO, TARGET_DEADBAND_MUST_BE_GREATER_OR_EQUAL_TO_ZERO, VALUE_MUST_BE_NUMERIC_WHEN_PERCENTAGE_ERROR, VALUE_MUST_BE_REF_WHEN_PERCENTAGE_ERROR, WRONG_REF_OR_VALUE_ERROR, YUP_DEFAULT, YUP_NOT_NULL, YUP_NOT_TYPE_DEFAULT, YUP_NOT_TYPE_NUMBER, YUP_POSITIVE, YUP_REQUIRED } from "./constants/translationKeys.js";
9
+ import { ACTIVE_LIMITS_MIN_MAX_INVALID, CREATE_SUBSTATION_IN_VOLTAGE_LEVEL_IDENTICAL_ID, DESCRIPTION_LIMIT_ERROR, DUPLICATED_PROPS_ERROR, MAXIMUM_SECTION_COUNT_MUST_BE_GREATER_OR_EQUAL_TO_ONE, MIN_ACTIVE_POWER_MUST_BE_LESS_OR_EQUAL_TO_MAX_ACTIVE_POWER, MODIFICATIONS_REQUIRED_TAB_ERROR, MUST_BE_GREATER_OR_EQUAL_TO_ZERO, NAME_ALREADY_USED, NAME_EMPTY, NORMALIZED_PERCENTAGE, NUMERIC_VALUE_OR_EMPTY_FIELD, REACTIVE_LIMITS_MIN_MAX_INVALID, REAL_PERCENTAGE, SECTION_COUNT_MUST_BE_BETWEEN_ZERO_AND_MAXIMUM_SECTION_COUNT, SHORT_CIRCUIT_CURRENT_LIMIT_MUST_BE_GREATER_OR_EQUAL_TO_ZERO, SHUNT_COMPENSATOR_ERROR_Q_AT_NOMINAL_VOLTAGE_LESS_THAN_ZERO, TARGET_DEADBAND_MUST_BE_GREATER_OR_EQUAL_TO_ZERO, VALUE_MUST_BE_NUMERIC_WHEN_PERCENTAGE_ERROR, VALUE_MUST_BE_REF_WHEN_PERCENTAGE_ERROR, WRONG_REF_OR_VALUE_ERROR, YUP_DEFAULT, YUP_NOT_NULL, YUP_NOT_TYPE_DEFAULT, YUP_NOT_TYPE_NUMBER, YUP_POSITIVE, YUP_REQUIRED } from "./constants/translationKeys.js";
10
10
  import { GRIDSUITE_DEFAULT_PRECISION, convertInputValue, convertOutputValue, isBlankOrEmpty, kiloUnitToUnit, microUnitToUnit, roundToDefaultPrecision, roundToPrecision, toModificationOperation, unitToKiloUnit, unitToMicroUnit } from "./conversionUtils.js";
11
11
  import { catchErrorHandler, extractErrorMessageDescriptor, snackWithFallback } from "./error.js";
12
12
  import { isDisabledValidationButton } from "./form-utils.js";
@@ -106,6 +106,7 @@ export {
106
106
  MEGA_WATT,
107
107
  MICRO_SIEMENS,
108
108
  MIN_ACTIVE_POWER_MUST_BE_LESS_OR_EQUAL_TO_MAX_ACTIVE_POWER,
109
+ MODIFICATIONS_REQUIRED_TAB_ERROR,
109
110
  MODIFICATION_TYPES,
110
111
  MUST_BE_GREATER_OR_EQUAL_TO_ZERO,
111
112
  MVAPowerAdornment,
@@ -72,6 +72,10 @@ export type UserDetail = {
72
72
  maxAllowedDynamicSecurity?: number;
73
73
  maxAllowedDynamicMargin?: number;
74
74
  };
75
+ export type UserQuotaState = {
76
+ current: number;
77
+ max: number;
78
+ };
75
79
  export declare enum AnnouncementSeverity {
76
80
  INFO = "INFO",
77
81
  WARN = "WARN"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gridsuite/commons-ui",
3
- "version": "0.280.0",
3
+ "version": "0.282.0",
4
4
  "description": "common react components for gridsuite applications",
5
5
  "author": "gridsuite team",
6
6
  "homepage": "https://github.com/gridsuite",
@@ -1,4 +0,0 @@
1
- import { useTabsWithError } from "./useTabsWithError.js";
2
- export {
3
- useTabsWithError
4
- };
@@ -1,15 +0,0 @@
1
- import { FieldConstants } from '../../../utils';
2
- type TabFieldsMap<T extends number> = Readonly<Partial<Record<T, FieldConstants[]>>>;
3
- /**
4
- * Manages tab navigation with automatic error highlighting for react-hook-form-based tabbed forms.
5
- *
6
- * @param tabFields - Maps each tab index to the field names it owns. Must be a module-level
7
- * constant to remain stable across renders.
8
- * @param initialTab - The tab to show on first render.
9
- */
10
- export declare function useTabsWithError<T extends number>(tabFields: TabFieldsMap<T>, initialTab: T): {
11
- tabIndex: T;
12
- setTabIndex: (tab: T) => void;
13
- tabIndexesWithError: T[];
14
- };
15
- export {};
@@ -1,28 +0,0 @@
1
- import { useState, useRef, useEffect, useCallback } from "react";
2
- import { useFormState } from "react-hook-form";
3
- function useTabsWithError(tabFields, initialTab) {
4
- const { errors, submitCount } = useFormState();
5
- const [tabIndex, setTabIndex] = useState(initialTab);
6
- const tabIndexRef = useRef(tabIndex);
7
- const tabIndexesWithError = Object.keys(tabFields).map(Number).filter(
8
- (tab) => tabFields[tab].some((field) => errors[field] !== void 0)
9
- );
10
- const tabIndexesWithErrorRef = useRef(tabIndexesWithError);
11
- tabIndexesWithErrorRef.current = tabIndexesWithError;
12
- useEffect(() => {
13
- const tabs = tabIndexesWithErrorRef.current;
14
- if (tabs.length > 0 && !tabs.includes(tabIndexRef.current)) {
15
- const tab = tabs[0];
16
- tabIndexRef.current = tab;
17
- setTabIndex(tab);
18
- }
19
- }, [submitCount]);
20
- const handleSetTabIndex = useCallback((tab) => {
21
- tabIndexRef.current = tab;
22
- setTabIndex(tab);
23
- }, []);
24
- return { tabIndex, setTabIndex: handleSetTabIndex, tabIndexesWithError };
25
- }
26
- export {
27
- useTabsWithError
28
- };
@@ -1,16 +0,0 @@
1
- import { SyntheticEvent } from 'react';
2
- import { FieldErrors } from 'react-hook-form';
3
- export type UseTabsReturn<TTabValue extends string> = {
4
- selectedTab: TTabValue;
5
- setSelectedTab: (selectedTab: TTabValue) => void;
6
- tabsWithError: TTabValue[];
7
- onTabChange: (event: SyntheticEvent, newValue: TTabValue) => void;
8
- onError: (errors: FieldErrors) => void;
9
- };
10
- export type UseTabsProps<TTabValue extends string> = {
11
- defaultTab: TTabValue;
12
- tabEnum: Record<string, TTabValue>;
13
- errors: FieldErrors;
14
- tabFields?: Record<TTabValue, string[]>;
15
- };
16
- export declare function useTabs<TTabValue extends string>({ defaultTab, tabEnum, errors, tabFields, }: Readonly<UseTabsProps<TTabValue>>): UseTabsReturn<TTabValue>;
@@ -1,65 +0,0 @@
1
- import { useState, useCallback } from "react";
2
- import { get } from "react-hook-form";
3
- import { isObjectEmpty } from "../../../../utils/functions.js";
4
- function useTabs({
5
- defaultTab,
6
- tabEnum,
7
- errors,
8
- tabFields
9
- }) {
10
- const [selectedTab, setSelectedTab] = useState(defaultTab);
11
- const [tabsWithError, setTabsWithError] = useState([]);
12
- const getTabsWithError = useCallback(
13
- (_errors) => {
14
- const tabsHasError = [];
15
- Object.values(tabEnum).forEach((tabValue) => {
16
- const fields = tabFields?.[tabValue] ?? [tabValue];
17
- if (fields.some((field) => get(_errors, field))) {
18
- tabsHasError.push(tabValue);
19
- }
20
- });
21
- return tabsHasError;
22
- },
23
- [tabEnum, tabFields]
24
- );
25
- const onTabChange = useCallback(
26
- (event, newSelectedTab) => {
27
- setSelectedTab(newSelectedTab);
28
- if (!errors || isObjectEmpty(errors)) {
29
- return;
30
- }
31
- const tabsHasError = getTabsWithError(errors);
32
- if (tabsHasError.includes(newSelectedTab)) {
33
- setTabsWithError(tabsHasError.filter((errorTab) => errorTab !== newSelectedTab));
34
- } else {
35
- setTabsWithError(tabsHasError);
36
- }
37
- },
38
- [errors, getTabsWithError]
39
- );
40
- const onError = useCallback(
41
- (_errors) => {
42
- if (!_errors || isObjectEmpty(_errors)) {
43
- return;
44
- }
45
- const tabsHasError = getTabsWithError(_errors);
46
- if (tabsHasError.includes(selectedTab)) {
47
- setTabsWithError(tabsHasError.filter((errorTab) => errorTab !== selectedTab));
48
- } else if (tabsHasError.length > 0) {
49
- setSelectedTab(tabsHasError[0]);
50
- setTabsWithError(tabsHasError.filter((errorTab, index, arr) => errorTab !== arr[0]));
51
- }
52
- },
53
- [getTabsWithError, selectedTab]
54
- );
55
- return {
56
- selectedTab,
57
- setSelectedTab,
58
- tabsWithError,
59
- onTabChange,
60
- onError
61
- };
62
- }
63
- export {
64
- useTabs
65
- };