@banch0u/core-project-test-repository 2.3.25 → 2.3.26

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.
@@ -77,6 +77,25 @@ var Filter = function Filter(_ref) {
77
77
  var filteredColumns = columns.filter(function (col) {
78
78
  return selectedColumns.includes(col.dataIndex) && col.filter !== false && col.filterDisable !== true || col.dataIndex === "filterOnly";
79
79
  });
80
+ var getFieldName = function getFieldName(col) {
81
+ return col.queryName ? col.queryName : col.dataIndex;
82
+ };
83
+
84
+ // ✅ dependent selects: a column with `dependsOn: "<parent field name>"`
85
+ // stays disabled until the parent has a value, and is cleared when it changes
86
+ var formValues = Form.useWatch([], filterForm) || {};
87
+ var isEmptyValue = function isEmptyValue(v) {
88
+ return v === undefined || v === null || v === "" || Array.isArray(v) && v.length === 0;
89
+ };
90
+ var _clearDependents = function clearDependents(parentName) {
91
+ columns.filter(function (dep) {
92
+ return dep.dependsOn === parentName;
93
+ }).forEach(function (dep) {
94
+ var depName = getFieldName(dep);
95
+ filterForm.setFieldValue(depName, undefined);
96
+ _clearDependents(depName);
97
+ });
98
+ };
80
99
  var getGrid = function getGrid() {
81
100
  var elementCount = selectedColumns.length - disabledElementCount;
82
101
  if (elementCount >= 5) return style.grid5;
@@ -105,17 +124,21 @@ var Filter = function Filter(_ref) {
105
124
  return /*#__PURE__*/React.createElement(Form.Item, {
106
125
  key: col.dataIndex,
107
126
  label: col.title,
108
- name: col.queryName ? col.queryName : col.dataIndex,
127
+ name: getFieldName(col),
109
128
  className: gridSpanClass
110
129
  }, /*#__PURE__*/React.createElement(Select, {
111
130
  size: "sm",
112
131
  style: {
113
132
  height: "32px"
114
133
  },
134
+ disabled: !!col.dependsOn && isEmptyValue(formValues[col.dependsOn]),
115
135
  onChange: function onChange(value) {
136
+ var _col$onFilterChange;
116
137
  if (col.dataIndex === "topic" || col.dataIndex === "contractTypeId" || col.dataIndex === "contractType") {
117
138
  setSelectedTopic(value);
118
139
  }
140
+ _clearDependents(getFieldName(col));
141
+ (_col$onFilterChange = col.onFilterChange) === null || _col$onFilterChange === void 0 || _col$onFilterChange.call(col, value);
119
142
  },
120
143
  mode: col.selectType === "multiple" ? "multiple" : "single",
121
144
  optionFilterProp: "label"
@@ -168,7 +191,11 @@ var Filter = function Filter(_ref) {
168
191
  className: style.buttons
169
192
  }, /*#__PURE__*/React.createElement(Button, {
170
193
  onClick: function onClick() {
171
- return filterForm.resetFields();
194
+ filterForm.resetFields();
195
+ columns.forEach(function (col) {
196
+ var _col$onFilterChange2;
197
+ return (_col$onFilterChange2 = col.onFilterChange) === null || _col$onFilterChange2 === void 0 ? void 0 : _col$onFilterChange2.call(col, undefined);
198
+ });
172
199
  },
173
200
  color: "white"
174
201
  }, c === null || c === void 0 ? void 0 : c.clear), /*#__PURE__*/React.createElement(Button, {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@banch0u/core-project-test-repository",
3
- "version": "2.3.25",
3
+ "version": "2.3.26",
4
4
  "description": "Shared core features for all projects",
5
5
  "main": "dist/index.js",
6
6
  "files": [