@gridsuite/commons-ui 0.55.0 → 0.57.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 (162) hide show
  1. package/dist/assets/criteria-based-filter-edition-dialog.css +168 -0
  2. package/dist/chunks/criteria-based-filter-edition-dialog.BEXoNmzz.js +1673 -0
  3. package/dist/chunks/filter-properties.GRon8-ML.js +195 -0
  4. package/dist/components/DirectoryItemSelector/directory-item-selector.d.ts +13 -3
  5. package/dist/components/DirectoryItemSelector/directory-item-selector.js +14 -10
  6. package/dist/components/TopBar/TopBar.js +371 -429
  7. package/dist/components/dialogs/custom-mui-dialog.d.ts +21 -0
  8. package/dist/components/dialogs/custom-mui-dialog.js +87 -0
  9. package/dist/components/dialogs/description-modification-dialog.d.ts +11 -0
  10. package/dist/components/dialogs/description-modification-dialog.js +71 -0
  11. package/dist/components/dialogs/popup-confirmation-dialog.d.ts +11 -0
  12. package/dist/components/dialogs/popup-confirmation-dialog.js +38 -0
  13. package/dist/components/filter/constants/equipment-types.d.ts +72 -0
  14. package/dist/components/filter/constants/equipment-types.js +63 -0
  15. package/dist/components/filter/constants/expert-filter-constants.d.ts +551 -0
  16. package/dist/components/filter/constants/expert-filter-constants.js +668 -0
  17. package/dist/components/filter/constants/field-constants.d.ts +45 -0
  18. package/dist/components/filter/constants/field-constants.js +43 -0
  19. package/dist/components/filter/constants/filter-constants.d.ts +21 -0
  20. package/dist/components/filter/constants/filter-constants.js +10 -0
  21. package/dist/components/filter/criteria-based/criteria-based-filter-edition-dialog.d.ts +29 -0
  22. package/dist/components/filter/criteria-based/criteria-based-filter-edition-dialog.js +19 -0
  23. package/dist/components/filter/criteria-based/criteria-based-filter-form.d.ts +15 -0
  24. package/dist/components/filter/criteria-based/criteria-based-filter-form.js +33 -0
  25. package/dist/components/filter/criteria-based/criteria-based-filter-utils.d.ts +37 -0
  26. package/dist/components/filter/criteria-based/criteria-based-filter-utils.js +127 -0
  27. package/dist/components/filter/criteria-based/criteria-based-form.d.ts +7 -0
  28. package/dist/components/filter/criteria-based/criteria-based-form.js +50 -0
  29. package/dist/components/filter/criteria-based/filter-free-properties.d.ts +10 -0
  30. package/dist/components/filter/criteria-based/filter-free-properties.js +15 -0
  31. package/dist/components/filter/criteria-based/filter-properties.d.ts +21 -0
  32. package/dist/components/filter/criteria-based/filter-properties.js +19 -0
  33. package/dist/components/filter/criteria-based/filter-property.d.ts +19 -0
  34. package/dist/components/filter/criteria-based/filter-property.js +67 -0
  35. package/dist/components/filter/expert/expert-filter-edition-dialog.d.ts +28 -0
  36. package/dist/components/filter/expert/expert-filter-edition-dialog.js +20 -0
  37. package/dist/components/filter/expert/expert-filter-form.d.ts +21 -0
  38. package/dist/components/filter/expert/expert-filter-form.js +22 -0
  39. package/dist/components/filter/expert/expert-filter-utils.d.ts +91 -0
  40. package/dist/components/filter/expert/expert-filter-utils.js +304 -0
  41. package/dist/components/filter/expert/expert-filter.type.d.ts +114 -0
  42. package/dist/components/filter/expert/expert-filter.type.js +104 -0
  43. package/dist/components/filter/explicit-naming/explicit-naming-filter-edition-dialog.d.ts +22 -0
  44. package/dist/components/filter/explicit-naming/explicit-naming-filter-edition-dialog.js +19 -0
  45. package/dist/components/filter/explicit-naming/explicit-naming-filter-form.d.ts +22 -0
  46. package/dist/components/filter/explicit-naming/explicit-naming-filter-form.js +23 -0
  47. package/dist/components/filter/filter-context.d.ts +12 -0
  48. package/dist/components/filter/filter-context.js +10 -0
  49. package/dist/components/filter/filter-creation-dialog.d.ts +21 -0
  50. package/dist/components/filter/filter-creation-dialog.js +17 -0
  51. package/dist/components/filter/filter-form.d.ts +11 -0
  52. package/dist/components/filter/filter-form.js +14 -0
  53. package/dist/components/filter/utils/criteria-based-utils.d.ts +28 -0
  54. package/dist/components/filter/utils/criteria-based-utils.js +197 -0
  55. package/dist/components/filter/utils/filters-utils.d.ts +5 -0
  56. package/dist/components/filter/utils/filters-utils.js +99 -0
  57. package/dist/components/inputs/select-clearable.d.ts +14 -0
  58. package/dist/components/inputs/select-clearable.js +40 -0
  59. package/dist/components/react-hook-form/ExpandingTextField.d.ts +1 -1
  60. package/dist/components/react-hook-form/ExpandingTextField.js +0 -37
  61. package/dist/components/react-hook-form/ag-grid-table-rhf/bottom-right-buttons.d.ts +17 -0
  62. package/dist/components/react-hook-form/ag-grid-table-rhf/bottom-right-buttons.js +15 -0
  63. package/dist/components/react-hook-form/ag-grid-table-rhf/cell-editors/numericEditor.d.ts +23 -0
  64. package/dist/components/react-hook-form/ag-grid-table-rhf/cell-editors/numericEditor.js +70 -0
  65. package/dist/components/react-hook-form/ag-grid-table-rhf/csv-uploader/csv-uploader.d.ts +16 -0
  66. package/dist/components/react-hook-form/ag-grid-table-rhf/csv-uploader/csv-uploader.js +69 -0
  67. package/dist/components/react-hook-form/ag-grid-table-rhf/custom-ag-grid-table.d.ts +23 -0
  68. package/dist/components/react-hook-form/ag-grid-table-rhf/custom-ag-grid-table.js +15 -0
  69. package/dist/components/react-hook-form/autocomplete-input.d.ts +17 -29
  70. package/dist/components/react-hook-form/autocomplete-input.js +4 -15
  71. package/dist/components/react-hook-form/autocomplete-inputs/multiple-autocomplete-input.d.ts +2 -0
  72. package/dist/components/react-hook-form/autocomplete-inputs/multiple-autocomplete-input.js +46 -0
  73. package/dist/components/react-hook-form/directory-items-input.d.ts +0 -3
  74. package/dist/components/react-hook-form/directory-items-input.js +5 -6
  75. package/dist/components/react-hook-form/error-management/error-input.d.ts +13 -4
  76. package/dist/components/react-hook-form/error-management/error-input.js +7 -7
  77. package/dist/components/react-hook-form/error-management/field-error-alert.d.ts +6 -3
  78. package/dist/components/react-hook-form/error-management/field-error-alert.js +3 -1
  79. package/dist/components/react-hook-form/numbers/float-input.d.ts +5 -17
  80. package/dist/components/react-hook-form/numbers/float-input.js +3 -5
  81. package/dist/components/react-hook-form/numbers/integer-input.d.ts +15 -12
  82. package/dist/components/react-hook-form/numbers/utils.d.ts +8 -2
  83. package/dist/components/react-hook-form/provider/custom-form-provider.d.ts +1 -0
  84. package/dist/components/react-hook-form/provider/custom-form-provider.js +12 -3
  85. package/dist/components/react-hook-form/radio-input.d.ts +14 -17
  86. package/dist/components/react-hook-form/radio-input.js +7 -9
  87. package/dist/components/react-hook-form/range-input.d.ts +54 -0
  88. package/dist/components/react-hook-form/range-input.js +118 -0
  89. package/dist/components/react-hook-form/select-inputs/countries-input.d.ts +8 -0
  90. package/dist/components/react-hook-form/select-inputs/countries-input.js +36 -0
  91. package/dist/components/react-hook-form/select-inputs/input-with-popup-confirmation.d.ts +2 -0
  92. package/dist/components/react-hook-form/select-inputs/input-with-popup-confirmation.js +61 -0
  93. package/dist/components/react-hook-form/select-inputs/mui-select-input.d.ts +12 -0
  94. package/dist/components/react-hook-form/select-inputs/mui-select-input.js +25 -0
  95. package/dist/components/react-hook-form/select-inputs/select-input.d.ts +9 -0
  96. package/dist/components/react-hook-form/select-inputs/select-input.js +37 -0
  97. package/dist/components/react-hook-form/text-input.d.ts +23 -32
  98. package/dist/components/react-hook-form/text-input.js +6 -20
  99. package/dist/components/react-hook-form/unique-name-input.d.ts +21 -0
  100. package/dist/components/react-hook-form/unique-name-input.js +129 -0
  101. package/dist/components/react-hook-form/utils/cancel-button.d.ts +9 -8
  102. package/dist/components/react-hook-form/utils/field-label.d.ts +12 -5
  103. package/dist/components/react-hook-form/utils/field-label.js +5 -1
  104. package/dist/components/react-hook-form/utils/functions.d.ts +12 -4
  105. package/dist/components/react-hook-form/utils/functions.js +21 -1
  106. package/dist/components/react-hook-form/utils/submit-button.d.ts +9 -8
  107. package/dist/components/react-hook-form/utils/text-field-with-adornment.d.ts +11 -11
  108. package/dist/components/react-hook-form/utils/text-field-with-adornment.js +18 -23
  109. package/dist/components/react-query-builder-inputs/add-button.d.ts +8 -0
  110. package/dist/components/react-query-builder-inputs/add-button.js +17 -0
  111. package/dist/components/react-query-builder-inputs/combinator-selector.d.ts +5 -0
  112. package/dist/components/react-query-builder-inputs/combinator-selector.js +38 -0
  113. package/dist/components/react-query-builder-inputs/country-value-editor.d.ts +5 -0
  114. package/dist/components/react-query-builder-inputs/country-value-editor.js +46 -0
  115. package/dist/components/react-query-builder-inputs/custom-react-query-builder.d.ts +8 -0
  116. package/dist/components/react-query-builder-inputs/custom-react-query-builder.js +21 -0
  117. package/dist/components/react-query-builder-inputs/element-value-editor.d.ts +14 -0
  118. package/dist/components/react-query-builder-inputs/element-value-editor.js +69 -0
  119. package/dist/components/react-query-builder-inputs/property-value-editor.d.ts +9 -0
  120. package/dist/components/react-query-builder-inputs/property-value-editor.js +100 -0
  121. package/dist/components/react-query-builder-inputs/remove-button.d.ts +5 -0
  122. package/dist/components/react-query-builder-inputs/remove-button.js +9 -0
  123. package/dist/components/react-query-builder-inputs/text-value-editor.d.ts +5 -0
  124. package/dist/components/react-query-builder-inputs/text-value-editor.js +34 -0
  125. package/dist/components/react-query-builder-inputs/translated-value-editor.d.ts +5 -0
  126. package/dist/components/react-query-builder-inputs/translated-value-editor.js +58 -0
  127. package/dist/components/react-query-builder-inputs/use-convert-value.d.ts +9 -0
  128. package/dist/components/react-query-builder-inputs/use-convert-value.js +24 -0
  129. package/dist/components/react-query-builder-inputs/use-valid.d.ts +7 -0
  130. package/dist/components/react-query-builder-inputs/use-valid.js +13 -0
  131. package/dist/components/react-query-builder-inputs/value-editor.d.ts +5 -0
  132. package/dist/components/react-query-builder-inputs/value-editor.js +18 -0
  133. package/dist/components/react-query-builder-inputs/value-selector.d.ts +4 -0
  134. package/dist/components/react-query-builder-inputs/value-selector.js +14 -0
  135. package/dist/components/translations/filter-en.d.ts +22 -0
  136. package/dist/components/translations/filter-en.js +23 -0
  137. package/dist/components/translations/filter-fr.d.ts +22 -0
  138. package/dist/components/translations/filter-fr.js +23 -0
  139. package/dist/hooks/localized-countries-hook.d.ts +6 -0
  140. package/dist/hooks/localized-countries-hook.js +45 -0
  141. package/dist/hooks/predefined-properties-hook.d.ts +18 -0
  142. package/dist/hooks/predefined-properties-hook.js +43 -0
  143. package/dist/hooks/useDebounce.d.ts +7 -1
  144. package/dist/hooks/useSnackMessage.d.ts +23 -5
  145. package/dist/hooks/useSnackMessage.js +14 -12
  146. package/dist/index.d.ts +89 -142
  147. package/dist/index.js +172 -91
  148. package/dist/utils/FetchStatus.d.ts +12 -0
  149. package/dist/utils/FetchStatus.js +9 -0
  150. package/dist/utils/conversion-utils.d.ts +12 -0
  151. package/dist/utils/conversion-utils.js +22 -0
  152. package/dist/utils/equipment-types-for-predefined-properties-mapper.d.ts +3 -0
  153. package/dist/utils/equipment-types-for-predefined-properties-mapper.js +31 -0
  154. package/dist/utils/functions.d.ts +14 -0
  155. package/dist/utils/functions.js +16 -0
  156. package/dist/utils/types.d.ts +21 -0
  157. package/dist/utils/types.js +1 -0
  158. package/dist/utils/yup-config.d.ts +8 -0
  159. package/dist/utils/yup-config.js +16 -0
  160. package/package.json +15 -3
  161. package/dist/components/react-hook-form/select-input.d.ts +0 -17
  162. package/dist/components/react-hook-form/select-input.js +0 -30
@@ -0,0 +1,91 @@
1
+ import { DataType, RuleGroupTypeExport } from './expert-filter.type';
2
+ import { IntlShape } from 'react-intl';
3
+ import { QueryValidator, RuleGroupType, RuleGroupTypeAny } from 'react-querybuilder';
4
+
5
+ type CustomRuleGroupType = RuleGroupType & {
6
+ dataType: DataType;
7
+ };
8
+ export declare const getOperators: (fieldName: string, intl: IntlShape) => {
9
+ name: string;
10
+ label: string;
11
+ }[] | ({
12
+ readonly name: "=";
13
+ readonly value: "=";
14
+ readonly label: "=";
15
+ } | {
16
+ readonly name: "!=";
17
+ readonly value: "!=";
18
+ readonly label: "!=";
19
+ } | {
20
+ readonly name: "<";
21
+ readonly value: "<";
22
+ readonly label: "<";
23
+ } | {
24
+ readonly name: ">";
25
+ readonly value: ">";
26
+ readonly label: ">";
27
+ } | {
28
+ readonly name: "<=";
29
+ readonly value: "<=";
30
+ readonly label: "<=";
31
+ } | {
32
+ readonly name: ">=";
33
+ readonly value: ">=";
34
+ readonly label: ">=";
35
+ } | {
36
+ readonly name: "contains";
37
+ readonly value: "contains";
38
+ readonly label: "contains";
39
+ } | {
40
+ readonly name: "beginsWith";
41
+ readonly value: "beginsWith";
42
+ readonly label: "begins with";
43
+ } | {
44
+ readonly name: "endsWith";
45
+ readonly value: "endsWith";
46
+ readonly label: "ends with";
47
+ } | {
48
+ readonly name: "doesNotContain";
49
+ readonly value: "doesNotContain";
50
+ readonly label: "does not contain";
51
+ } | {
52
+ readonly name: "doesNotBeginWith";
53
+ readonly value: "doesNotBeginWith";
54
+ readonly label: "does not begin with";
55
+ } | {
56
+ readonly name: "doesNotEndWith";
57
+ readonly value: "doesNotEndWith";
58
+ readonly label: "does not end with";
59
+ } | {
60
+ readonly name: "null";
61
+ readonly value: "null";
62
+ readonly label: "is null";
63
+ } | {
64
+ readonly name: "notNull";
65
+ readonly value: "notNull";
66
+ readonly label: "is not null";
67
+ } | {
68
+ readonly name: "in";
69
+ readonly value: "in";
70
+ readonly label: "in";
71
+ } | {
72
+ readonly name: "notIn";
73
+ readonly value: "notIn";
74
+ readonly label: "not in";
75
+ } | {
76
+ readonly name: "between";
77
+ readonly value: "between";
78
+ readonly label: "between";
79
+ } | {
80
+ readonly name: "notBetween";
81
+ readonly value: "notBetween";
82
+ readonly label: "not between";
83
+ })[];
84
+ export declare function exportExpertRules(query: CustomRuleGroupType): RuleGroupTypeExport;
85
+ export declare function importExpertRules(query: RuleGroupTypeExport): CustomRuleGroupType;
86
+ export declare function countRules(query: RuleGroupTypeAny): number;
87
+ export declare const testQuery: (check: string, query: RuleGroupTypeAny) => boolean;
88
+ export declare const queryValidator: QueryValidator;
89
+ export declare function recursiveRemove(query: RuleGroupTypeAny, path: number[]): RuleGroupTypeAny;
90
+ export declare function getNumberOfSiblings(path: number[], query: RuleGroupTypeAny): number;
91
+ export {};
@@ -0,0 +1,304 @@
1
+ import { defaultOperators, getParentPath, remove, findPath } from "react-querybuilder";
2
+ import { FieldType, DataType, OperatorType } from "./expert-filter.type.js";
3
+ import { validate } from "uuid";
4
+ import { FIELDS_OPTIONS, OPERATOR_OPTIONS, RULES } from "../constants/expert-filter-constants.js";
5
+ import { isBlankOrEmpty, microUnitToUnit, unitToMicroUnit } from "../../../utils/conversion-utils.js";
6
+ const microUnits = [
7
+ FieldType.SHUNT_CONDUCTANCE_1,
8
+ FieldType.SHUNT_CONDUCTANCE_2,
9
+ FieldType.SHUNT_SUSCEPTANCE_1,
10
+ FieldType.SHUNT_SUSCEPTANCE_2
11
+ ];
12
+ const getDataType = (fieldName, operator) => {
13
+ if ((fieldName === FieldType.ID || fieldName === FieldType.VOLTAGE_LEVEL_ID || fieldName === FieldType.VOLTAGE_LEVEL_ID_1 || fieldName === FieldType.VOLTAGE_LEVEL_ID_2) && (operator === OperatorType.IS_PART_OF || operator === OperatorType.IS_NOT_PART_OF)) {
14
+ return DataType.FILTER_UUID;
15
+ }
16
+ const field = Object.values(FIELDS_OPTIONS).find(
17
+ (field2) => field2.name === fieldName
18
+ );
19
+ return field == null ? void 0 : field.dataType;
20
+ };
21
+ const getOperators = (fieldName, intl) => {
22
+ const field = Object.values(FIELDS_OPTIONS).find(
23
+ (field2) => field2.name === fieldName
24
+ );
25
+ switch (field == null ? void 0 : field.dataType) {
26
+ case DataType.STRING:
27
+ let operators = [
28
+ OPERATOR_OPTIONS.CONTAINS,
29
+ OPERATOR_OPTIONS.IS,
30
+ OPERATOR_OPTIONS.BEGINS_WITH,
31
+ OPERATOR_OPTIONS.ENDS_WITH,
32
+ OPERATOR_OPTIONS.IN,
33
+ OPERATOR_OPTIONS.EXISTS,
34
+ OPERATOR_OPTIONS.NOT_EXISTS
35
+ ];
36
+ if (field.name === FieldType.ID || field.name === FieldType.VOLTAGE_LEVEL_ID || field.name === FieldType.VOLTAGE_LEVEL_ID_1 || field.name === FieldType.VOLTAGE_LEVEL_ID_2) {
37
+ operators.push(OPERATOR_OPTIONS.IS_PART_OF);
38
+ operators.push(OPERATOR_OPTIONS.IS_NOT_PART_OF);
39
+ }
40
+ if (field.name === FieldType.ID) {
41
+ operators = operators.filter(
42
+ (field2) => field2.name !== OperatorType.EXISTS && field2.name !== OperatorType.NOT_EXISTS
43
+ );
44
+ }
45
+ return operators.map((operator) => ({
46
+ name: operator.name,
47
+ label: intl.formatMessage({ id: operator.label })
48
+ }));
49
+ case DataType.NUMBER:
50
+ return [
51
+ OPERATOR_OPTIONS.EQUALS,
52
+ OPERATOR_OPTIONS.GREATER,
53
+ OPERATOR_OPTIONS.GREATER_OR_EQUALS,
54
+ OPERATOR_OPTIONS.LOWER,
55
+ OPERATOR_OPTIONS.LOWER_OR_EQUALS,
56
+ OPERATOR_OPTIONS.BETWEEN,
57
+ OPERATOR_OPTIONS.EXISTS,
58
+ OPERATOR_OPTIONS.NOT_EXISTS
59
+ ].map((operator) => ({
60
+ name: operator.name,
61
+ label: intl.formatMessage({ id: operator.label })
62
+ }));
63
+ case DataType.BOOLEAN:
64
+ return [OPERATOR_OPTIONS.EQUALS].map((operator) => ({
65
+ name: operator.name,
66
+ label: intl.formatMessage({ id: operator.label })
67
+ }));
68
+ case DataType.ENUM:
69
+ let enumOperators = [
70
+ OPERATOR_OPTIONS.EQUALS,
71
+ OPERATOR_OPTIONS.NOT_EQUALS,
72
+ OPERATOR_OPTIONS.IN
73
+ ];
74
+ if (field.name === FieldType.SHUNT_COMPENSATOR_TYPE) {
75
+ enumOperators = enumOperators.filter(
76
+ (field2) => field2.customName !== OperatorType.IN
77
+ );
78
+ }
79
+ return enumOperators.map((operator) => ({
80
+ name: operator.name,
81
+ label: intl.formatMessage({ id: operator.label })
82
+ }));
83
+ case DataType.PROPERTY:
84
+ let propertiesOperators = [OPERATOR_OPTIONS.IS];
85
+ return propertiesOperators.map((operator) => ({
86
+ name: operator.name,
87
+ label: intl.formatMessage({ id: operator.label })
88
+ }));
89
+ }
90
+ return defaultOperators;
91
+ };
92
+ function changeValueUnit(value, field) {
93
+ if (microUnits.includes(field)) {
94
+ if (!Array.isArray(value)) {
95
+ return microUnitToUnit(value);
96
+ } else {
97
+ return value.map((a) => microUnitToUnit(a));
98
+ }
99
+ }
100
+ return value;
101
+ }
102
+ function exportExpertRules(query) {
103
+ function transformRule(rule) {
104
+ var _a;
105
+ const isValueAnArray = Array.isArray(rule.value);
106
+ const dataType = getDataType(rule.field, rule.operator);
107
+ return {
108
+ field: rule.field,
109
+ operator: dataType !== DataType.PROPERTY ? (_a = Object.values(OPERATOR_OPTIONS).find(
110
+ (operator) => operator.name === rule.operator
111
+ )) == null ? void 0 : _a.customName : rule.value.propertyOperator,
112
+ value: !isValueAnArray && rule.operator !== OperatorType.EXISTS && rule.operator !== OperatorType.NOT_EXISTS && dataType !== DataType.PROPERTY ? changeValueUnit(rule.value, rule.field) : void 0,
113
+ values: isValueAnArray && dataType !== DataType.PROPERTY ? changeValueUnit(rule.value, rule.field) : void 0,
114
+ dataType,
115
+ propertyName: dataType === DataType.PROPERTY ? rule.value.propertyName : void 0,
116
+ propertyValues: dataType === DataType.PROPERTY ? rule.value.propertyValues : void 0
117
+ };
118
+ }
119
+ function transformGroup(group) {
120
+ const transformedRules = group.rules.map((ruleOrGroup) => {
121
+ if ("rules" in ruleOrGroup) {
122
+ return transformGroup(ruleOrGroup);
123
+ } else {
124
+ return transformRule(ruleOrGroup);
125
+ }
126
+ });
127
+ return {
128
+ combinator: group.combinator,
129
+ dataType: DataType.COMBINATOR,
130
+ rules: transformedRules
131
+ };
132
+ }
133
+ return transformGroup(query);
134
+ }
135
+ function importExpertRules(query) {
136
+ function parseValue(rule) {
137
+ if (rule.propertyName) {
138
+ return {
139
+ propertyName: rule.propertyName,
140
+ propertyValues: rule.propertyValues,
141
+ propertyOperator: rule.operator
142
+ };
143
+ } else if (rule.values) {
144
+ if (rule.dataType === DataType.NUMBER) {
145
+ return rule.values.map((value) => parseFloat(value)).map((numberValue) => {
146
+ return microUnits.includes(rule.field) ? unitToMicroUnit(numberValue) : numberValue;
147
+ }).sort((a, b) => a - b);
148
+ } else {
149
+ return rule.values.sort();
150
+ }
151
+ } else {
152
+ return microUnits.includes(rule.field) ? unitToMicroUnit(parseFloat(rule.value)) : rule.value;
153
+ }
154
+ }
155
+ function transformRule(rule) {
156
+ var _a;
157
+ return {
158
+ field: rule.field,
159
+ operator: rule.dataType !== DataType.PROPERTY ? (_a = Object.values(OPERATOR_OPTIONS).find(
160
+ (operator) => operator.customName === rule.operator
161
+ )) == null ? void 0 : _a.name : OperatorType.IS,
162
+ value: parseValue(rule),
163
+ dataType: rule.operator === OperatorType.IS_PART_OF || rule.operator === OperatorType.IS_NOT_PART_OF ? DataType.STRING : rule.dataType
164
+ };
165
+ }
166
+ function transformGroup(group) {
167
+ const transformedRules = group.rules.map((ruleOrGroup) => {
168
+ if ("rules" in ruleOrGroup) {
169
+ return transformGroup(ruleOrGroup);
170
+ } else {
171
+ return transformRule(ruleOrGroup);
172
+ }
173
+ });
174
+ return {
175
+ combinator: group.combinator,
176
+ dataType: DataType.COMBINATOR,
177
+ rules: transformedRules
178
+ };
179
+ }
180
+ return transformGroup(query);
181
+ }
182
+ function countRules(query) {
183
+ if ("rules" in query) {
184
+ const group = query;
185
+ return group.rules.reduce(
186
+ (sum, ruleOrGroup) => sum + countRules(ruleOrGroup),
187
+ 0
188
+ );
189
+ } else {
190
+ return 1;
191
+ }
192
+ }
193
+ const testQuery = (check, query) => {
194
+ const queryValidatorResult = queryValidator(query);
195
+ return !Object.values(queryValidatorResult).some((ruleValidation) => {
196
+ if (typeof ruleValidation !== "boolean" && ruleValidation.reasons) {
197
+ return ruleValidation.reasons.includes(check);
198
+ }
199
+ return false;
200
+ });
201
+ };
202
+ const queryValidator = (query) => {
203
+ const result = {};
204
+ const validateRule = (rule) => {
205
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i;
206
+ const isValueAnArray = Array.isArray(rule.value);
207
+ const isNumberInput = getDataType(rule.field, rule.operator) === DataType.NUMBER && !isValueAnArray;
208
+ const isStringInput = getDataType(rule.field, rule.operator) === DataType.STRING && !isValueAnArray;
209
+ if (rule.id && (rule.operator === OPERATOR_OPTIONS.EXISTS.name || rule.operator === OPERATOR_OPTIONS.NOT_EXISTS.name)) {
210
+ result[rule.id] = {
211
+ valid: true,
212
+ reasons: void 0
213
+ };
214
+ } else if (rule.id && rule.operator === OPERATOR_OPTIONS.BETWEEN.name) {
215
+ if (!((_a = rule.value) == null ? void 0 : _a[0]) || !((_b = rule.value) == null ? void 0 : _b[1])) {
216
+ result[rule.id] = {
217
+ valid: false,
218
+ reasons: [RULES.EMPTY_RULE]
219
+ };
220
+ } else if (isNaN(parseFloat(rule.value[0])) || isNaN(parseFloat(rule.value[1]))) {
221
+ result[rule.id] = {
222
+ valid: false,
223
+ reasons: [RULES.INCORRECT_RULE]
224
+ };
225
+ } else if (parseFloat(rule.value[0]) >= parseFloat(rule.value[1])) {
226
+ result[rule.id] = {
227
+ valid: false,
228
+ reasons: [RULES.BETWEEN_RULE]
229
+ };
230
+ }
231
+ } else if (rule.id && rule.operator === OPERATOR_OPTIONS.IN.name && !((_c = rule.value) == null ? void 0 : _c.length)) {
232
+ result[rule.id] = {
233
+ valid: false,
234
+ reasons: [RULES.EMPTY_RULE]
235
+ };
236
+ } else if (rule.id && isStringInput && (rule.value || "").trim() === "") {
237
+ result[rule.id] = {
238
+ valid: false,
239
+ reasons: [RULES.EMPTY_RULE]
240
+ };
241
+ } else if (rule.id && isNumberInput && isNaN(parseFloat(rule.value))) {
242
+ result[rule.id] = {
243
+ valid: false,
244
+ reasons: [RULES.INCORRECT_RULE]
245
+ };
246
+ } else if (rule.id && (rule.operator === OPERATOR_OPTIONS.IS_PART_OF.name || rule.operator === OPERATOR_OPTIONS.IS_NOT_PART_OF.name) && (!((_d = rule.value) == null ? void 0 : _d.length) || !validate(rule.value[0]))) {
247
+ result[rule.id] = {
248
+ valid: false,
249
+ reasons: [RULES.EMPTY_RULE]
250
+ };
251
+ } else if (rule.id && getDataType(rule.field, rule.operator) === DataType.PROPERTY && (isBlankOrEmpty((_e = rule.value) == null ? void 0 : _e.propertyName) || isBlankOrEmpty((_f = rule.value) == null ? void 0 : _f.propertyOperator) || isBlankOrEmpty((_g = rule.value) == null ? void 0 : _g.propertyValues) || !((_i = (_h = rule.value) == null ? void 0 : _h.propertyValues) == null ? void 0 : _i.length))) {
252
+ result[rule.id] = {
253
+ valid: false,
254
+ reasons: [RULES.EMPTY_RULE]
255
+ };
256
+ }
257
+ };
258
+ const validateGroup = (ruleGroup) => {
259
+ const reasons = [];
260
+ if (ruleGroup.rules.length === 0) {
261
+ reasons.push(RULES.EMPTY_GROUP);
262
+ }
263
+ if (ruleGroup.id) {
264
+ if (reasons.length) {
265
+ result[ruleGroup.id] = { valid: false, reasons };
266
+ } else {
267
+ result[ruleGroup.id] = true;
268
+ }
269
+ }
270
+ ruleGroup.rules.forEach((rule) => {
271
+ if (typeof rule === "string")
272
+ ;
273
+ else if ("rules" in rule) {
274
+ validateGroup(rule);
275
+ } else {
276
+ validateRule(rule);
277
+ }
278
+ });
279
+ };
280
+ validateGroup(query);
281
+ return result;
282
+ };
283
+ function recursiveRemove(query, path) {
284
+ if (getNumberOfSiblings(path, query) === 1 && path.toString() !== [0].toString()) {
285
+ return recursiveRemove(query, getParentPath(path));
286
+ } else {
287
+ return remove(query, path);
288
+ }
289
+ }
290
+ function getNumberOfSiblings(path, query) {
291
+ const parentPath = getParentPath(path);
292
+ const parentGroup = findPath(parentPath, query);
293
+ return parentGroup.rules.length;
294
+ }
295
+ export {
296
+ countRules,
297
+ exportExpertRules,
298
+ getNumberOfSiblings,
299
+ getOperators,
300
+ importExpertRules,
301
+ queryValidator,
302
+ recursiveRemove,
303
+ testQuery
304
+ };
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Copyright (c) 2023, RTE (http://www.rte-france.com)
3
+ * This Source Code Form is subject to the terms of the Mozilla Public
4
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
5
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
6
+ */
7
+ export declare enum OperatorType {
8
+ EQUALS = "EQUALS",
9
+ NOT_EQUALS = "NOT_EQUALS",
10
+ LOWER = "LOWER",
11
+ LOWER_OR_EQUALS = "LOWER_OR_EQUALS",
12
+ GREATER = "GREATER",
13
+ GREATER_OR_EQUALS = "GREATER_OR_EQUALS",
14
+ BETWEEN = "BETWEEN",
15
+ IN = "IN",
16
+ IS = "IS",
17
+ CONTAINS = "CONTAINS",
18
+ BEGINS_WITH = "BEGINS_WITH",
19
+ ENDS_WITH = "ENDS_WITH",
20
+ EXISTS = "EXISTS",
21
+ NOT_EXISTS = "NOT_EXISTS",
22
+ IS_PART_OF = "IS_PART_OF",
23
+ IS_NOT_PART_OF = "IS_NOT_PART_OF"
24
+ }
25
+ export declare enum CombinatorType {
26
+ AND = "AND",
27
+ OR = "OR"
28
+ }
29
+ export declare enum FieldType {
30
+ ID = "ID",
31
+ NAME = "NAME",
32
+ NOMINAL_VOLTAGE = "NOMINAL_VOLTAGE",
33
+ MIN_P = "MIN_P",
34
+ MAX_P = "MAX_P",
35
+ TARGET_V = "TARGET_V",
36
+ TARGET_P = "TARGET_P",
37
+ TARGET_Q = "TARGET_Q",
38
+ ENERGY_SOURCE = "ENERGY_SOURCE",
39
+ COUNTRY = "COUNTRY",
40
+ VOLTAGE_REGULATOR_ON = "VOLTAGE_REGULATOR_ON",
41
+ PLANNED_ACTIVE_POWER_SET_POINT = "PLANNED_ACTIVE_POWER_SET_POINT",
42
+ RATED_S = "RATED_S",
43
+ MARGINAL_COST = "MARGINAL_COST",
44
+ PLANNED_OUTAGE_RATE = "PLANNED_OUTAGE_RATE",
45
+ FORCED_OUTAGE_RATE = "FORCED_OUTAGE_RATE",
46
+ VOLTAGE_LEVEL_ID = "VOLTAGE_LEVEL_ID",
47
+ P0 = "P0",
48
+ Q0 = "Q0",
49
+ LOW_VOLTAGE_LIMIT = "LOW_VOLTAGE_LIMIT",
50
+ HIGH_VOLTAGE_LIMIT = "HIGH_VOLTAGE_LIMIT",
51
+ SECTION_COUNT = "SECTION_COUNT",
52
+ MAXIMUM_SECTION_COUNT = "MAXIMUM_SECTION_COUNT",
53
+ SHUNT_COMPENSATOR_TYPE = "SHUNT_COMPENSATOR_TYPE",
54
+ CONNECTED = "CONNECTED",
55
+ MAX_Q_AT_NOMINAL_V = "MAX_Q_AT_NOMINAL_V",
56
+ SWITCHED_ON_Q_AT_NOMINAL_V = "SWITCHED_ON_Q_AT_NOMINAL_V",
57
+ MAX_SUSCEPTANCE = "MAX_SUSCEPTANCE",
58
+ SWITCHED_ON_SUSCEPTANCE = "SWITCHED_ON_SUSCEPTANCE",
59
+ CONNECTED_1 = "CONNECTED_1",
60
+ CONNECTED_2 = "CONNECTED_2",
61
+ VOLTAGE_LEVEL_ID_1 = "VOLTAGE_LEVEL_ID_1",
62
+ VOLTAGE_LEVEL_ID_2 = "VOLTAGE_LEVEL_ID_2",
63
+ NOMINAL_VOLTAGE_1 = "NOMINAL_VOLTAGE_1",
64
+ NOMINAL_VOLTAGE_2 = "NOMINAL_VOLTAGE_2",
65
+ COUNTRY_1 = "COUNTRY_1",
66
+ COUNTRY_2 = "COUNTRY_2",
67
+ SERIE_RESISTANCE = "SERIE_RESISTANCE",
68
+ SERIE_REACTANCE = "SERIE_REACTANCE",
69
+ SHUNT_CONDUCTANCE_1 = "SHUNT_CONDUCTANCE_1",
70
+ SHUNT_CONDUCTANCE_2 = "SHUNT_CONDUCTANCE_2",
71
+ SHUNT_SUSCEPTANCE_1 = "SHUNT_SUSCEPTANCE_1",
72
+ SHUNT_SUSCEPTANCE_2 = "SHUNT_SUSCEPTANCE_2",
73
+ MAGNETIZING_CONDUCTANCE = "MAGNETIZING_CONDUCTANCE",
74
+ MAGNETIZING_SUSCEPTANCE = "MAGNETIZING_SUSCEPTANCE",
75
+ LOAD_TYPE = "LOAD_TYPE",
76
+ RATED_VOLTAGE_1 = "RATED_VOLTAGE_1",
77
+ RATED_VOLTAGE_2 = "RATED_VOLTAGE_2",
78
+ HAS_RATIO_TAP_CHANGER = "HAS_RATIO_TAP_CHANGER",
79
+ RATIO_REGULATING = "RATIO_REGULATING",
80
+ LOAD_TAP_CHANGING_CAPABILITIES = "LOAD_TAP_CHANGING_CAPABILITIES",
81
+ RATIO_REGULATION_MODE = "RATIO_REGULATION_MODE",
82
+ RATIO_TARGET_V = "RATIO_TARGET_V",
83
+ HAS_PHASE_TAP_CHANGER = "HAS_PHASE_TAP_CHANGER",
84
+ PHASE_REGULATING = "PHASE_REGULATING",
85
+ PHASE_REGULATION_MODE = "PHASE_REGULATION_MODE",
86
+ PHASE_REGULATION_VALUE = "PHASE_REGULATION_VALUE",
87
+ PROPERTY = "FREE_PROPERTIES",
88
+ SUBSTATION_PROPERTY = "SUBSTATION_PROPERTIES",
89
+ SUBSTATION_PROPERTY_1 = "SUBSTATION_PROPERTIES_1",
90
+ SUBSTATION_PROPERTY_2 = "SUBSTATION_PROPERTIES_2"
91
+ }
92
+ export declare enum DataType {
93
+ STRING = "STRING",
94
+ ENUM = "ENUM",
95
+ NUMBER = "NUMBER",
96
+ BOOLEAN = "BOOLEAN",
97
+ COMBINATOR = "COMBINATOR",
98
+ FILTER_UUID = "FILTER_UUID",
99
+ PROPERTY = "PROPERTIES"
100
+ }
101
+ export interface RuleTypeExport {
102
+ field: FieldType;
103
+ operator: OperatorType;
104
+ value: string | number | undefined;
105
+ values: string[] | number[] | undefined;
106
+ dataType: DataType;
107
+ propertyName?: string;
108
+ propertyValues?: string[];
109
+ }
110
+ export interface RuleGroupTypeExport {
111
+ combinator: CombinatorType;
112
+ dataType: DataType;
113
+ rules: (RuleTypeExport | RuleGroupTypeExport)[];
114
+ }
@@ -0,0 +1,104 @@
1
+ var OperatorType = /* @__PURE__ */ ((OperatorType2) => {
2
+ OperatorType2["EQUALS"] = "EQUALS";
3
+ OperatorType2["NOT_EQUALS"] = "NOT_EQUALS";
4
+ OperatorType2["LOWER"] = "LOWER";
5
+ OperatorType2["LOWER_OR_EQUALS"] = "LOWER_OR_EQUALS";
6
+ OperatorType2["GREATER"] = "GREATER";
7
+ OperatorType2["GREATER_OR_EQUALS"] = "GREATER_OR_EQUALS";
8
+ OperatorType2["BETWEEN"] = "BETWEEN";
9
+ OperatorType2["IN"] = "IN";
10
+ OperatorType2["IS"] = "IS";
11
+ OperatorType2["CONTAINS"] = "CONTAINS";
12
+ OperatorType2["BEGINS_WITH"] = "BEGINS_WITH";
13
+ OperatorType2["ENDS_WITH"] = "ENDS_WITH";
14
+ OperatorType2["EXISTS"] = "EXISTS";
15
+ OperatorType2["NOT_EXISTS"] = "NOT_EXISTS";
16
+ OperatorType2["IS_PART_OF"] = "IS_PART_OF";
17
+ OperatorType2["IS_NOT_PART_OF"] = "IS_NOT_PART_OF";
18
+ return OperatorType2;
19
+ })(OperatorType || {});
20
+ var CombinatorType = /* @__PURE__ */ ((CombinatorType2) => {
21
+ CombinatorType2["AND"] = "AND";
22
+ CombinatorType2["OR"] = "OR";
23
+ return CombinatorType2;
24
+ })(CombinatorType || {});
25
+ var FieldType = /* @__PURE__ */ ((FieldType2) => {
26
+ FieldType2["ID"] = "ID";
27
+ FieldType2["NAME"] = "NAME";
28
+ FieldType2["NOMINAL_VOLTAGE"] = "NOMINAL_VOLTAGE";
29
+ FieldType2["MIN_P"] = "MIN_P";
30
+ FieldType2["MAX_P"] = "MAX_P";
31
+ FieldType2["TARGET_V"] = "TARGET_V";
32
+ FieldType2["TARGET_P"] = "TARGET_P";
33
+ FieldType2["TARGET_Q"] = "TARGET_Q";
34
+ FieldType2["ENERGY_SOURCE"] = "ENERGY_SOURCE";
35
+ FieldType2["COUNTRY"] = "COUNTRY";
36
+ FieldType2["VOLTAGE_REGULATOR_ON"] = "VOLTAGE_REGULATOR_ON";
37
+ FieldType2["PLANNED_ACTIVE_POWER_SET_POINT"] = "PLANNED_ACTIVE_POWER_SET_POINT";
38
+ FieldType2["RATED_S"] = "RATED_S";
39
+ FieldType2["MARGINAL_COST"] = "MARGINAL_COST";
40
+ FieldType2["PLANNED_OUTAGE_RATE"] = "PLANNED_OUTAGE_RATE";
41
+ FieldType2["FORCED_OUTAGE_RATE"] = "FORCED_OUTAGE_RATE";
42
+ FieldType2["VOLTAGE_LEVEL_ID"] = "VOLTAGE_LEVEL_ID";
43
+ FieldType2["P0"] = "P0";
44
+ FieldType2["Q0"] = "Q0";
45
+ FieldType2["LOW_VOLTAGE_LIMIT"] = "LOW_VOLTAGE_LIMIT";
46
+ FieldType2["HIGH_VOLTAGE_LIMIT"] = "HIGH_VOLTAGE_LIMIT";
47
+ FieldType2["SECTION_COUNT"] = "SECTION_COUNT";
48
+ FieldType2["MAXIMUM_SECTION_COUNT"] = "MAXIMUM_SECTION_COUNT";
49
+ FieldType2["SHUNT_COMPENSATOR_TYPE"] = "SHUNT_COMPENSATOR_TYPE";
50
+ FieldType2["CONNECTED"] = "CONNECTED";
51
+ FieldType2["MAX_Q_AT_NOMINAL_V"] = "MAX_Q_AT_NOMINAL_V";
52
+ FieldType2["SWITCHED_ON_Q_AT_NOMINAL_V"] = "SWITCHED_ON_Q_AT_NOMINAL_V";
53
+ FieldType2["MAX_SUSCEPTANCE"] = "MAX_SUSCEPTANCE";
54
+ FieldType2["SWITCHED_ON_SUSCEPTANCE"] = "SWITCHED_ON_SUSCEPTANCE";
55
+ FieldType2["CONNECTED_1"] = "CONNECTED_1";
56
+ FieldType2["CONNECTED_2"] = "CONNECTED_2";
57
+ FieldType2["VOLTAGE_LEVEL_ID_1"] = "VOLTAGE_LEVEL_ID_1";
58
+ FieldType2["VOLTAGE_LEVEL_ID_2"] = "VOLTAGE_LEVEL_ID_2";
59
+ FieldType2["NOMINAL_VOLTAGE_1"] = "NOMINAL_VOLTAGE_1";
60
+ FieldType2["NOMINAL_VOLTAGE_2"] = "NOMINAL_VOLTAGE_2";
61
+ FieldType2["COUNTRY_1"] = "COUNTRY_1";
62
+ FieldType2["COUNTRY_2"] = "COUNTRY_2";
63
+ FieldType2["SERIE_RESISTANCE"] = "SERIE_RESISTANCE";
64
+ FieldType2["SERIE_REACTANCE"] = "SERIE_REACTANCE";
65
+ FieldType2["SHUNT_CONDUCTANCE_1"] = "SHUNT_CONDUCTANCE_1";
66
+ FieldType2["SHUNT_CONDUCTANCE_2"] = "SHUNT_CONDUCTANCE_2";
67
+ FieldType2["SHUNT_SUSCEPTANCE_1"] = "SHUNT_SUSCEPTANCE_1";
68
+ FieldType2["SHUNT_SUSCEPTANCE_2"] = "SHUNT_SUSCEPTANCE_2";
69
+ FieldType2["MAGNETIZING_CONDUCTANCE"] = "MAGNETIZING_CONDUCTANCE";
70
+ FieldType2["MAGNETIZING_SUSCEPTANCE"] = "MAGNETIZING_SUSCEPTANCE";
71
+ FieldType2["LOAD_TYPE"] = "LOAD_TYPE";
72
+ FieldType2["RATED_VOLTAGE_1"] = "RATED_VOLTAGE_1";
73
+ FieldType2["RATED_VOLTAGE_2"] = "RATED_VOLTAGE_2";
74
+ FieldType2["HAS_RATIO_TAP_CHANGER"] = "HAS_RATIO_TAP_CHANGER";
75
+ FieldType2["RATIO_REGULATING"] = "RATIO_REGULATING";
76
+ FieldType2["LOAD_TAP_CHANGING_CAPABILITIES"] = "LOAD_TAP_CHANGING_CAPABILITIES";
77
+ FieldType2["RATIO_REGULATION_MODE"] = "RATIO_REGULATION_MODE";
78
+ FieldType2["RATIO_TARGET_V"] = "RATIO_TARGET_V";
79
+ FieldType2["HAS_PHASE_TAP_CHANGER"] = "HAS_PHASE_TAP_CHANGER";
80
+ FieldType2["PHASE_REGULATING"] = "PHASE_REGULATING";
81
+ FieldType2["PHASE_REGULATION_MODE"] = "PHASE_REGULATION_MODE";
82
+ FieldType2["PHASE_REGULATION_VALUE"] = "PHASE_REGULATION_VALUE";
83
+ FieldType2["PROPERTY"] = "FREE_PROPERTIES";
84
+ FieldType2["SUBSTATION_PROPERTY"] = "SUBSTATION_PROPERTIES";
85
+ FieldType2["SUBSTATION_PROPERTY_1"] = "SUBSTATION_PROPERTIES_1";
86
+ FieldType2["SUBSTATION_PROPERTY_2"] = "SUBSTATION_PROPERTIES_2";
87
+ return FieldType2;
88
+ })(FieldType || {});
89
+ var DataType = /* @__PURE__ */ ((DataType2) => {
90
+ DataType2["STRING"] = "STRING";
91
+ DataType2["ENUM"] = "ENUM";
92
+ DataType2["NUMBER"] = "NUMBER";
93
+ DataType2["BOOLEAN"] = "BOOLEAN";
94
+ DataType2["COMBINATOR"] = "COMBINATOR";
95
+ DataType2["FILTER_UUID"] = "FILTER_UUID";
96
+ DataType2["PROPERTY"] = "PROPERTIES";
97
+ return DataType2;
98
+ })(DataType || {});
99
+ export {
100
+ CombinatorType,
101
+ DataType,
102
+ FieldType,
103
+ OperatorType
104
+ };
@@ -0,0 +1,22 @@
1
+ import { elementExistsType } from '../criteria-based/criteria-based-filter-edition-dialog';
2
+ import { UUID } from 'crypto';
3
+ import { FunctionComponent } from 'react';
4
+
5
+ interface ExplicitNamingFilterEditionDialogProps {
6
+ id: string;
7
+ name: string;
8
+ titleId: string;
9
+ open: boolean;
10
+ onClose: () => void;
11
+ broadcastChannel: BroadcastChannel;
12
+ selectionForCopy: any;
13
+ setSelectionForCopy: (selection: any) => void;
14
+ getFilterById: (id: string) => Promise<any>;
15
+ createFilter: (filter: any, name: string, description: string, activeDirectory: any) => Promise<void>;
16
+ saveFilter: (filter: any, name: string) => Promise<void>;
17
+ activeDirectory?: UUID;
18
+ elementExists?: elementExistsType;
19
+ language?: string;
20
+ }
21
+ declare const ExplicitNamingFilterEditionDialog: FunctionComponent<ExplicitNamingFilterEditionDialogProps>;
22
+ export default ExplicitNamingFilterEditionDialog;
@@ -0,0 +1,19 @@
1
+ import "react/jsx-runtime";
2
+ import "react";
3
+ import "prop-types";
4
+ import "../utils/filters-utils.js";
5
+ import "react-hook-form";
6
+ import "@hookform/resolvers/yup";
7
+ import "../../../hooks/useSnackMessage.js";
8
+ import "../../dialogs/custom-mui-dialog.js";
9
+ import "../../../utils/yup-config.js";
10
+ import { a } from "../../../chunks/criteria-based-filter-edition-dialog.BEXoNmzz.js";
11
+ import "../constants/field-constants.js";
12
+ import "uuid";
13
+ import "../constants/equipment-types.js";
14
+ import "../constants/filter-constants.js";
15
+ import "../../../utils/FetchStatus.js";
16
+ import "yup";
17
+ export {
18
+ a as default
19
+ };
@@ -0,0 +1,22 @@
1
+ import { DISTRIBUTION_KEY } from '../constants/filter-constants';
2
+ import { default as yup } from '../../../utils/yup-config';
3
+ import { FieldConstants } from '../constants/field-constants';
4
+ import { FunctionComponent } from 'react';
5
+
6
+ export declare const FILTER_EQUIPMENTS_ATTRIBUTES = "filterEquipmentsAttributes";
7
+ export declare const explicitNamingFilterSchema: {
8
+ filterEquipmentsAttributes: yup.ArraySchema<{
9
+ equipmentID?: string | null | undefined;
10
+ distributionKey?: number | null | undefined;
11
+ }[] | undefined, yup.AnyObject, "", "">;
12
+ };
13
+ interface FilterTableRow {
14
+ [FieldConstants.AG_GRID_ROW_UUID]: string;
15
+ [FieldConstants.EQUIPMENT_ID]: string;
16
+ [DISTRIBUTION_KEY]: number | null;
17
+ }
18
+ export declare function getExplicitNamingFilterEmptyFormData(): {
19
+ filterEquipmentsAttributes: FilterTableRow[];
20
+ };
21
+ declare const ExplicitNamingFilterForm: FunctionComponent;
22
+ export default ExplicitNamingFilterForm;