@next-libs/cmdb-instances 6.48.0 → 6.49.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.
- package/dist/cjs/attribute-form-control-url/AttributeFormControlUrl.js +8 -23
- package/dist/cjs/attribute-form-control-url/AttributeFormControlUrl.js.map +1 -1
- package/dist/cjs/cmdb-instances-input-form/CmdbInstancesInputFormItem.js +3 -43
- package/dist/cjs/cmdb-instances-input-form/CmdbInstancesInputFormItem.js.map +1 -1
- package/dist/cjs/cmdb-instances-select-panel/CmdbInstancesSelectPanel.js +6 -45
- package/dist/cjs/cmdb-instances-select-panel/CmdbInstancesSelectPanel.js.map +1 -1
- package/dist/cjs/cmdb-url-link/CmdbUrlLink.js +0 -11
- package/dist/cjs/cmdb-url-link/CmdbUrlLink.js.map +1 -1
- package/dist/cjs/components/index.js +0 -4
- package/dist/cjs/components/index.js.map +1 -1
- package/dist/cjs/components/instance-format/index.js +0 -15
- package/dist/cjs/components/instance-format/index.js.map +1 -1
- package/dist/cjs/components/user-or-user-group-select/UserOrUserGroupSelect.js +33 -92
- package/dist/cjs/components/user-or-user-group-select/UserOrUserGroupSelect.js.map +1 -1
- package/dist/cjs/data-providers/fetchCmdbInstanceDetail.js +0 -3
- package/dist/cjs/data-providers/fetchCmdbInstanceDetail.js.map +1 -1
- package/dist/cjs/data-providers/fetchCmdbInstanceSearch.js +0 -2
- package/dist/cjs/data-providers/fetchCmdbInstanceSearch.js.map +1 -1
- package/dist/cjs/data-providers/fetchCmdbObjectDetail.js +0 -2
- package/dist/cjs/data-providers/fetchCmdbObjectDetail.js.map +1 -1
- package/dist/cjs/data-providers/fetchCmdbObjectList.js +0 -2
- package/dist/cjs/data-providers/fetchCmdbObjectList.js.map +1 -1
- package/dist/cjs/data-providers/fetchCmdbObjectRef.js +0 -2
- package/dist/cjs/data-providers/fetchCmdbObjectRef.js.map +1 -1
- package/dist/cjs/data-providers/index.js +0 -10
- package/dist/cjs/data-providers/index.js.map +1 -1
- package/dist/cjs/float-display-brick/FloatDisplayBrick.js +0 -7
- package/dist/cjs/float-display-brick/FloatDisplayBrick.js.map +1 -1
- package/dist/cjs/i18n/constants.js +0 -1
- package/dist/cjs/i18n/constants.js.map +1 -1
- package/dist/cjs/i18n/index.js +0 -7
- package/dist/cjs/i18n/index.js.map +1 -1
- package/dist/cjs/i18n/locales/en.js +0 -2
- package/dist/cjs/i18n/locales/en.js.map +1 -1
- package/dist/cjs/i18n/locales/zh.js +0 -2
- package/dist/cjs/i18n/locales/zh.js.map +1 -1
- package/dist/cjs/index.js +0 -29
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/instance-attribute-form/InstanceAttributeForm.js +4 -25
- package/dist/cjs/instance-attribute-form/InstanceAttributeForm.js.map +1 -1
- package/dist/cjs/instance-detail/InstanceDetail.js +42 -124
- package/dist/cjs/instance-detail/InstanceDetail.js.map +1 -1
- package/dist/cjs/instance-detail/components/instance-relation-field-display/constants.js.map +1 -1
- package/dist/cjs/instance-detail/components/instance-relation-field-display/instance-relation-field-display.js +4 -19
- package/dist/cjs/instance-detail/components/instance-relation-field-display/instance-relation-field-display.js.map +1 -1
- package/dist/cjs/instance-detail/components/instance-relation-table-show/instance-relation-table-show.js +4 -11
- package/dist/cjs/instance-detail/components/instance-relation-table-show/instance-relation-table-show.js.map +1 -1
- package/dist/cjs/instance-detail/constants/index.js.map +1 -1
- package/dist/cjs/instance-list/IconButton.js +0 -18
- package/dist/cjs/instance-list/IconButton.js.map +1 -1
- package/dist/cjs/instance-list/InstanceList.js +47 -212
- package/dist/cjs/instance-list/InstanceList.js.map +1 -1
- package/dist/cjs/instance-list/constants.js +0 -7
- package/dist/cjs/instance-list/constants.js.map +1 -1
- package/dist/cjs/instance-list-modal/InstanceListModal.js +8 -32
- package/dist/cjs/instance-list-modal/InstanceListModal.js.map +1 -1
- package/dist/cjs/instance-list-table/AdvancedSearch.js +12 -133
- package/dist/cjs/instance-list-table/AdvancedSearch.js.map +1 -1
- package/dist/cjs/instance-list-table/AdvancedSearchCondition.js +3 -45
- package/dist/cjs/instance-list-table/AdvancedSearchCondition.js.map +1 -1
- package/dist/cjs/instance-list-table/DisplaySettings.js +0 -24
- package/dist/cjs/instance-list-table/DisplaySettings.js.map +1 -1
- package/dist/cjs/instance-list-table/DisplaySettingsModal.js +0 -10
- package/dist/cjs/instance-list-table/DisplaySettingsModal.js.map +1 -1
- package/dist/cjs/instance-list-table/DynamicSearch.js +4 -44
- package/dist/cjs/instance-list-table/DynamicSearch.js.map +1 -1
- package/dist/cjs/instance-list-table/InstanceListTable.js +30 -151
- package/dist/cjs/instance-list-table/InstanceListTable.js.map +1 -1
- package/dist/cjs/instance-list-table/MoreButtonsContainer.js +0 -15
- package/dist/cjs/instance-list-table/MoreButtonsContainer.js.map +1 -1
- package/dist/cjs/instance-list-table/constants.js +0 -2
- package/dist/cjs/instance-list-table/constants.js.map +1 -1
- package/dist/cjs/instance-list-table/data-providers/fetchCmdbInstanceAggregateCount.js +0 -2
- package/dist/cjs/instance-list-table/data-providers/fetchCmdbInstanceAggregateCount.js.map +1 -1
- package/dist/cjs/instance-list-table/data-providers/fetchCmdbInstanceCount.js +0 -2
- package/dist/cjs/instance-list-table/data-providers/fetchCmdbInstanceCount.js.map +1 -1
- package/dist/cjs/instance-list-table/data-providers/fetchCmdbInstanceDetail.js +0 -2
- package/dist/cjs/instance-list-table/data-providers/fetchCmdbInstanceDetail.js.map +1 -1
- package/dist/cjs/instance-list-table/data-providers/fetchCmdbObjectDetail.js +0 -2
- package/dist/cjs/instance-list-table/data-providers/fetchCmdbObjectDetail.js.map +1 -1
- package/dist/cjs/instance-list-table/data-providers/fetchPermRoleList.js +0 -2
- package/dist/cjs/instance-list-table/data-providers/fetchPermRoleList.js.map +1 -1
- package/dist/cjs/instance-list-table/data-providers/fetchPermissionList.js +0 -2
- package/dist/cjs/instance-list-table/data-providers/fetchPermissionList.js.map +1 -1
- package/dist/cjs/instance-list-table/data-providers/getDefaultValueTemplate.js +1 -2
- package/dist/cjs/instance-list-table/data-providers/getDefaultValueTemplate.js.map +1 -1
- package/dist/cjs/instance-list-table/data-providers/index.js +0 -16
- package/dist/cjs/instance-list-table/data-providers/index.js.map +1 -1
- package/dist/cjs/instance-list-table/data-providers/searchCmdbInstances.js +0 -2
- package/dist/cjs/instance-list-table/data-providers/searchCmdbInstances.js.map +1 -1
- package/dist/cjs/instance-list-table/index.js +0 -12
- package/dist/cjs/instance-list-table/index.js.map +1 -1
- package/dist/cjs/instance-list-table/utils.js +0 -24
- package/dist/cjs/instance-list-table/utils.js.map +1 -1
- package/dist/cjs/model-attribute-form/ModelAttributeForm.js +27 -99
- package/dist/cjs/model-attribute-form/ModelAttributeForm.js.map +1 -1
- package/dist/cjs/model-attribute-form/constants.js.map +1 -1
- package/dist/cjs/model-attribute-form-control/ModelAttributeFormControl.js +13 -94
- package/dist/cjs/model-attribute-form-control/ModelAttributeFormControl.js.map +1 -1
- package/dist/cjs/model-relation-form/ModelRelationForm.js +0 -18
- package/dist/cjs/model-relation-form/ModelRelationForm.js.map +1 -1
- package/dist/cjs/processors.js +2 -21
- package/dist/cjs/processors.js.map +1 -1
- package/dist/cjs/struct-components/AddStruct.js +4 -15
- package/dist/cjs/struct-components/AddStruct.js.map +1 -1
- package/dist/cjs/struct-components/AddStructModal.js +0 -48
- package/dist/cjs/struct-components/AddStructModal.js.map +1 -1
- package/dist/cjs/struct-components/StructTable.js +2 -32
- package/dist/cjs/struct-components/StructTable.js.map +1 -1
- package/dist/cjs/struct-components/index.js +0 -8
- package/dist/cjs/struct-components/index.js.map +1 -1
- package/dist/cjs/struct-components/interfaces.js +0 -1
- package/dist/cjs/struct-components/interfaces.js.map +1 -1
- package/dist/cjs/struct-components/mockData.js.map +1 -1
- package/dist/esm/attribute-form-control-url/AttributeFormControlUrl.js +8 -18
- package/dist/esm/attribute-form-control-url/AttributeFormControlUrl.js.map +1 -1
- package/dist/esm/cmdb-instances-input-form/CmdbInstancesInputFormItem.js +3 -35
- package/dist/esm/cmdb-instances-input-form/CmdbInstancesInputFormItem.js.map +1 -1
- package/dist/esm/cmdb-instances-select-panel/CmdbInstancesSelectPanel.js +4 -32
- package/dist/esm/cmdb-instances-select-panel/CmdbInstancesSelectPanel.js.map +1 -1
- package/dist/esm/cmdb-url-link/CmdbUrlLink.js +0 -3
- package/dist/esm/cmdb-url-link/CmdbUrlLink.js.map +1 -1
- package/dist/esm/components/index.js.map +1 -1
- package/dist/esm/components/instance-format/index.js +0 -5
- package/dist/esm/components/instance-format/index.js.map +1 -1
- package/dist/esm/components/user-or-user-group-select/UserOrUserGroupSelect.js +19 -74
- package/dist/esm/components/user-or-user-group-select/UserOrUserGroupSelect.js.map +1 -1
- package/dist/esm/data-providers/fetchCmdbInstanceDetail.js.map +1 -1
- package/dist/esm/data-providers/fetchCmdbInstanceSearch.js.map +1 -1
- package/dist/esm/data-providers/fetchCmdbObjectDetail.js.map +1 -1
- package/dist/esm/data-providers/fetchCmdbObjectList.js.map +1 -1
- package/dist/esm/data-providers/fetchCmdbObjectRef.js.map +1 -1
- package/dist/esm/data-providers/index.js.map +1 -1
- package/dist/esm/float-display-brick/FloatDisplayBrick.js +0 -1
- package/dist/esm/float-display-brick/FloatDisplayBrick.js.map +1 -1
- package/dist/esm/i18n/constants.js +0 -1
- package/dist/esm/i18n/constants.js.map +1 -1
- package/dist/esm/i18n/index.js +2 -1
- package/dist/esm/i18n/index.js.map +1 -1
- package/dist/esm/i18n/locales/en.js.map +1 -1
- package/dist/esm/i18n/locales/zh.js.map +1 -1
- package/dist/esm/index.js +2 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/instance-attribute-form/InstanceAttributeForm.js +4 -10
- package/dist/esm/instance-attribute-form/InstanceAttributeForm.js.map +1 -1
- package/dist/esm/instance-detail/InstanceDetail.js +36 -111
- package/dist/esm/instance-detail/InstanceDetail.js.map +1 -1
- package/dist/esm/instance-detail/components/instance-relation-field-display/constants.js.map +1 -1
- package/dist/esm/instance-detail/components/instance-relation-field-display/instance-relation-field-display.js +4 -10
- package/dist/esm/instance-detail/components/instance-relation-field-display/instance-relation-field-display.js.map +1 -1
- package/dist/esm/instance-detail/components/instance-relation-table-show/instance-relation-table-show.js +2 -2
- package/dist/esm/instance-detail/components/instance-relation-table-show/instance-relation-table-show.js.map +1 -1
- package/dist/esm/instance-detail/constants/index.js.map +1 -1
- package/dist/esm/instance-list/IconButton.js +0 -8
- package/dist/esm/instance-list/IconButton.js.map +1 -1
- package/dist/esm/instance-list/InstanceList.js +41 -182
- package/dist/esm/instance-list/InstanceList.js.map +1 -1
- package/dist/esm/instance-list/constants.js +0 -2
- package/dist/esm/instance-list/constants.js.map +1 -1
- package/dist/esm/instance-list-modal/InstanceListModal.js +8 -20
- package/dist/esm/instance-list-modal/InstanceListModal.js.map +1 -1
- package/dist/esm/instance-list-table/AdvancedSearch.js +10 -119
- package/dist/esm/instance-list-table/AdvancedSearch.js.map +1 -1
- package/dist/esm/instance-list-table/AdvancedSearchCondition.js +1 -31
- package/dist/esm/instance-list-table/AdvancedSearchCondition.js.map +1 -1
- package/dist/esm/instance-list-table/DisplaySettings.js +0 -16
- package/dist/esm/instance-list-table/DisplaySettings.js.map +1 -1
- package/dist/esm/instance-list-table/DisplaySettingsModal.js +0 -3
- package/dist/esm/instance-list-table/DisplaySettingsModal.js.map +1 -1
- package/dist/esm/instance-list-table/DynamicSearch.js +0 -34
- package/dist/esm/instance-list-table/DynamicSearch.js.map +1 -1
- package/dist/esm/instance-list-table/InstanceListTable.js +23 -138
- package/dist/esm/instance-list-table/InstanceListTable.js.map +1 -1
- package/dist/esm/instance-list-table/MoreButtonsContainer.js +0 -7
- package/dist/esm/instance-list-table/MoreButtonsContainer.js.map +1 -1
- package/dist/esm/instance-list-table/constants.js +0 -2
- package/dist/esm/instance-list-table/constants.js.map +1 -1
- package/dist/esm/instance-list-table/data-providers/fetchCmdbInstanceAggregateCount.js.map +1 -1
- package/dist/esm/instance-list-table/data-providers/fetchCmdbInstanceCount.js.map +1 -1
- package/dist/esm/instance-list-table/data-providers/fetchCmdbInstanceDetail.js.map +1 -1
- package/dist/esm/instance-list-table/data-providers/fetchCmdbObjectDetail.js.map +1 -1
- package/dist/esm/instance-list-table/data-providers/fetchPermRoleList.js.map +1 -1
- package/dist/esm/instance-list-table/data-providers/fetchPermissionList.js.map +1 -1
- package/dist/esm/instance-list-table/data-providers/getDefaultValueTemplate.js +1 -1
- package/dist/esm/instance-list-table/data-providers/getDefaultValueTemplate.js.map +1 -1
- package/dist/esm/instance-list-table/data-providers/index.js.map +1 -1
- package/dist/esm/instance-list-table/data-providers/searchCmdbInstances.js.map +1 -1
- package/dist/esm/instance-list-table/index.js.map +1 -1
- package/dist/esm/instance-list-table/utils.js +0 -15
- package/dist/esm/instance-list-table/utils.js.map +1 -1
- package/dist/esm/model-attribute-form/ModelAttributeForm.js +19 -92
- package/dist/esm/model-attribute-form/ModelAttributeForm.js.map +1 -1
- package/dist/esm/model-attribute-form/constants.js.map +1 -1
- package/dist/esm/model-attribute-form-control/ModelAttributeFormControl.js +27 -102
- package/dist/esm/model-attribute-form-control/ModelAttributeFormControl.js.map +1 -1
- package/dist/esm/model-relation-form/ModelRelationForm.js +0 -10
- package/dist/esm/model-relation-form/ModelRelationForm.js.map +1 -1
- package/dist/esm/processors.js +2 -7
- package/dist/esm/processors.js.map +1 -1
- package/dist/esm/struct-components/AddStruct.js +4 -9
- package/dist/esm/struct-components/AddStruct.js.map +1 -1
- package/dist/esm/struct-components/AddStructModal.js +0 -36
- package/dist/esm/struct-components/AddStructModal.js.map +1 -1
- package/dist/esm/struct-components/StructTable.js +2 -26
- package/dist/esm/struct-components/StructTable.js.map +1 -1
- package/dist/esm/struct-components/index.js.map +1 -1
- package/dist/esm/struct-components/interfaces.js +0 -1
- package/dist/esm/struct-components/interfaces.js.map +1 -1
- package/dist/esm/struct-components/mockData.js.map +1 -1
- package/package.json +9 -9
- package/CHANGELOG.md +0 -3687
|
@@ -1,28 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.DisplaySettings = void 0;
|
|
9
|
-
|
|
10
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
-
|
|
12
9
|
var _react = _interopRequireDefault(require("react"));
|
|
13
|
-
|
|
14
10
|
var _lodash = require("lodash");
|
|
15
|
-
|
|
16
11
|
var _constants = require("./constants");
|
|
17
|
-
|
|
18
12
|
var _antd = require("antd");
|
|
19
|
-
|
|
20
13
|
var _cmdbUtils = require("@next-libs/cmdb-utils");
|
|
21
|
-
|
|
22
14
|
var _i18next = _interopRequireDefault(require("i18next"));
|
|
23
|
-
|
|
24
15
|
var _constants2 = require("../i18n/constants");
|
|
25
|
-
|
|
26
16
|
class DisplaySettings extends _react.default.Component {
|
|
27
17
|
constructor(props) {
|
|
28
18
|
super(props);
|
|
@@ -31,13 +21,11 @@ class DisplaySettings extends _react.default.Component {
|
|
|
31
21
|
(0, _defineProperty2.default)(this, "filterColTag", () => {
|
|
32
22
|
let filteredList = this.attrAndRelationList;
|
|
33
23
|
const q = this.state.q.trim().toLowerCase();
|
|
34
|
-
|
|
35
24
|
if (q) {
|
|
36
25
|
filteredList = filteredList.filter(attr => {
|
|
37
26
|
return attr.name.toLowerCase().includes(q);
|
|
38
27
|
});
|
|
39
28
|
}
|
|
40
|
-
|
|
41
29
|
this.setState({
|
|
42
30
|
filteredList
|
|
43
31
|
});
|
|
@@ -53,13 +41,11 @@ class DisplaySettings extends _react.default.Component {
|
|
|
53
41
|
let hideColumns = this.props.modelData.view.hide_columns || [];
|
|
54
42
|
const ignoredFields = (0, _lodash.get)(_cmdbUtils.CMDB_RESOURCE_FIELDS_SETTINGS, `ignoredFields.${this.props.modelData.objectId}`, []);
|
|
55
43
|
hideColumns = [...hideColumns, ...ignoredFields];
|
|
56
|
-
|
|
57
44
|
if (!(0, _lodash.isEmpty)(hideColumns)) {
|
|
58
45
|
hideColumns.forEach(hideColumn => {
|
|
59
46
|
(0, _lodash.remove)(attrAndRelationList, attr => attr.id === hideColumn);
|
|
60
47
|
});
|
|
61
48
|
}
|
|
62
|
-
|
|
63
49
|
this.attrAndRelationList = attrAndRelationList.map(attribute => ({
|
|
64
50
|
id: attribute.id,
|
|
65
51
|
name: attribute.name
|
|
@@ -72,24 +58,20 @@ class DisplaySettings extends _react.default.Component {
|
|
|
72
58
|
};
|
|
73
59
|
this.debounceHandleSearch = (0, _lodash.debounce)(this.filterColTag, 300);
|
|
74
60
|
}
|
|
75
|
-
|
|
76
61
|
componentDidUpdate(prevProps) {
|
|
77
62
|
if (this.props.currentFields !== prevProps.currentFields) {
|
|
78
63
|
this.setState({
|
|
79
64
|
nextFields: this.props.currentFields ? this.props.currentFields.slice() : []
|
|
80
65
|
});
|
|
81
66
|
}
|
|
82
|
-
|
|
83
67
|
if (this.props.extraDisabledFields !== prevProps.extraDisabledFields) {
|
|
84
68
|
this.setState({
|
|
85
69
|
extraDisabledFieldSet: new Set(this.props.extraDisabledFields)
|
|
86
70
|
});
|
|
87
71
|
}
|
|
88
72
|
}
|
|
89
|
-
|
|
90
73
|
handleChecked(event, attr) {
|
|
91
74
|
var _this$props$onChange, _this$props;
|
|
92
|
-
|
|
93
75
|
const fieldsKey = "nextFields";
|
|
94
76
|
const fields = event.target.checked ? this.state[fieldsKey].concat(attr.id) : (0, _lodash.without)(this.state[fieldsKey], attr.id);
|
|
95
77
|
this.setState({
|
|
@@ -97,7 +79,6 @@ class DisplaySettings extends _react.default.Component {
|
|
|
97
79
|
});
|
|
98
80
|
(_this$props$onChange = (_this$props = this.props).onChange) === null || _this$props$onChange === void 0 ? void 0 : _this$props$onChange.call(_this$props, fields);
|
|
99
81
|
}
|
|
100
|
-
|
|
101
82
|
renderCheckbox(attr, field) {
|
|
102
83
|
const fieldsKey = "nextFields";
|
|
103
84
|
const checked = this.state[fieldsKey].includes(attr.id);
|
|
@@ -121,12 +102,9 @@ class DisplaySettings extends _react.default.Component {
|
|
|
121
102
|
"data-testid": `${attr.id}-checkbox`
|
|
122
103
|
}, attr.name));
|
|
123
104
|
}
|
|
124
|
-
|
|
125
105
|
render() {
|
|
126
106
|
const filteredList = this.state.filteredList;
|
|
127
|
-
|
|
128
107
|
const extraAttrIds = _constants.extraFieldAttrs.map(extraFieldAttr => extraFieldAttr.id);
|
|
129
|
-
|
|
130
108
|
const attrs = filteredList.filter(attr => !extraAttrIds.includes(attr.id));
|
|
131
109
|
const extraAttrs = filteredList.filter(attr => extraAttrIds.includes(attr.id));
|
|
132
110
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_antd.Divider, {
|
|
@@ -153,8 +131,6 @@ class DisplaySettings extends _react.default.Component {
|
|
|
153
131
|
className: "nextFields"
|
|
154
132
|
}, /*#__PURE__*/_react.default.createElement(_antd.Row, null, attrs.map(attr => this.renderCheckbox(attr, "nextFields")), extraAttrs.length > 0 ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_antd.Divider, null), extraAttrs.map(attr => this.renderCheckbox(attr, "nextFields"))) : null)));
|
|
155
133
|
}
|
|
156
|
-
|
|
157
134
|
}
|
|
158
|
-
|
|
159
135
|
exports.DisplaySettings = DisplaySettings;
|
|
160
136
|
//# sourceMappingURL=DisplaySettings.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DisplaySettings.js","names":["DisplaySettings","React","Component","constructor","props","filteredList","attrAndRelationList","q","state","trim","toLowerCase","filter","attr","name","includes","setState","event","value","target","debounceHandleSearch","getBatchEditableFields","modelData","hideColumns","view","hide_columns","ignoredFields","get","CMDB_RESOURCE_FIELDS_SETTINGS","objectId","isEmpty","forEach","hideColumn","remove","id","map","attribute","nextFields","currentFields","slice","extraDisabledFieldSet","Set","extraDisabledFields","debounce","filterColTag","componentDidUpdate","prevProps","handleChecked","fieldsKey","fields","checked","concat","without","onChange","renderCheckbox","field","disabled","extraDisabledField","has","padding","stopPropagation","width","wordBreak","render","extraAttrIds","extraFieldAttrs","extraFieldAttr","attrs","extraAttrs","marginTop","i18n","t","NS_LIBS_CMDB_INSTANCES","K","FIELD_SETTINGS","SEARCH_BY_FIELD_NAME","handleSearchChange","minHeight","maxHeight","overflow","length"],"sources":["../../../src/instance-list-table/DisplaySettings.tsx"],"sourcesContent":["import React from \"react\";\nimport { debounce, remove, without, get, isEmpty } from \"lodash\";\nimport { extraFieldAttrs } from \"./constants\";\nimport { Checkbox, Col, Divider, Input, Row } from \"antd\";\nimport {\n getBatchEditableFields,\n CMDB_RESOURCE_FIELDS_SETTINGS,\n} from \"@next-libs/cmdb-utils\";\nimport { CmdbModels } from \"@next-sdk/cmdb-sdk\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nexport interface DisplaySettingsProps {\n currentFields: string[];\n modelData: Partial<CmdbModels.ModelCmdbObject>;\n objectId?: string;\n extraDisabledField?: string;\n extraDisabledFields?: string[];\n onChange?(fields: string[]): void;\n}\n\ninterface DisplaySettingsState {\n nextFields: string[];\n q: string;\n filteredList: any;\n extraDisabledFieldSet: Set<string>;\n}\n\nexport class DisplaySettings extends React.Component<\n DisplaySettingsProps,\n DisplaySettingsState\n> {\n debounceHandleSearch: () => void;\n attrAndRelationList: { id: string; name: string }[] = [];\n\n constructor(props: DisplaySettingsProps) {\n super(props);\n const attrAndRelationList = getBatchEditableFields(this.props.modelData);\n let hideColumns = this.props.modelData.view.hide_columns || [];\n const ignoredFields = get(\n CMDB_RESOURCE_FIELDS_SETTINGS,\n `ignoredFields.${this.props.modelData.objectId}`,\n []\n );\n hideColumns = [...hideColumns, ...ignoredFields];\n\n if (!isEmpty(hideColumns)) {\n hideColumns.forEach((hideColumn: string) => {\n remove(attrAndRelationList, (attr) => attr.id === hideColumn);\n });\n }\n\n this.attrAndRelationList = attrAndRelationList.map((attribute: any) => ({\n id: attribute.id,\n name: attribute.name,\n }));\n\n this.state = {\n nextFields: props.currentFields ? props.currentFields.slice() : [],\n q: \"\",\n filteredList: this.attrAndRelationList,\n extraDisabledFieldSet: new Set(props.extraDisabledFields),\n };\n this.debounceHandleSearch = debounce(this.filterColTag, 300);\n }\n\n componentDidUpdate(prevProps: DisplaySettingsProps) {\n if (this.props.currentFields !== prevProps.currentFields) {\n this.setState({\n nextFields: this.props.currentFields\n ? this.props.currentFields.slice()\n : [],\n });\n }\n\n if (this.props.extraDisabledFields !== prevProps.extraDisabledFields) {\n this.setState({\n extraDisabledFieldSet: new Set(this.props.extraDisabledFields),\n });\n }\n }\n\n handleChecked(event: any, attr: any) {\n const fieldsKey = \"nextFields\";\n const fields = event.target.checked\n ? this.state[fieldsKey].concat(attr.id)\n : without(this.state[fieldsKey], attr.id);\n\n this.setState({ [fieldsKey]: fields });\n this.props.onChange?.(fields);\n }\n\n renderCheckbox(attr: any, field: \"nextFields\" | \"otherFields\") {\n const fieldsKey = \"nextFields\";\n const checked = this.state[fieldsKey].includes(attr.id);\n const disabled =\n attr.id === this.props.extraDisabledField ||\n this.state.extraDisabledFieldSet.has(attr.id);\n return (\n <Col\n key={attr.id}\n span={8}\n style={{ padding: 5 }}\n onClick={(event) => event.stopPropagation()}\n >\n <Checkbox\n name={field}\n style={{\n width: \"100%\",\n wordBreak: \"break-all\",\n }}\n checked={checked}\n disabled={disabled}\n onChange={(event) => this.handleChecked(event, attr)}\n data-testid={`${attr.id}-checkbox`}\n >\n {attr.name}\n </Checkbox>\n </Col>\n );\n }\n\n filterColTag = () => {\n let filteredList = this.attrAndRelationList;\n const q = this.state.q.trim().toLowerCase();\n if (q) {\n filteredList = filteredList.filter((attr) => {\n return attr.name.toLowerCase().includes(q);\n });\n }\n this.setState({\n filteredList,\n });\n };\n\n handleSearchChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const value = event.target.value;\n this.setState({\n q: value,\n });\n this.debounceHandleSearch();\n };\n\n render() {\n const filteredList = this.state.filteredList;\n const extraAttrIds = extraFieldAttrs.map(\n (extraFieldAttr) => extraFieldAttr.id\n );\n const attrs = filteredList.filter(\n (attr: any) => !extraAttrIds.includes(attr.id)\n );\n const extraAttrs = filteredList.filter((attr: any) =>\n extraAttrIds.includes(attr.id)\n );\n\n return (\n <>\n <Divider orientation=\"left\" plain style={{ marginTop: 0 }}>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FIELD_SETTINGS}`)}\n </Divider>\n <div>\n <Input.Search\n value={this.state.q}\n placeholder={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.SEARCH_BY_FIELD_NAME}`\n )}\n onChange={this.handleSearchChange}\n style={{ width: 200 }}\n data-testid=\"search-input\"\n />\n </div>\n <div\n style={{\n marginTop: 15,\n minHeight: 200,\n maxHeight: 500,\n overflow: \"auto\",\n }}\n className=\"nextFields\"\n >\n <Row>\n {attrs.map((attr: any) => this.renderCheckbox(attr, \"nextFields\"))}\n {extraAttrs.length > 0 ? (\n <>\n <Divider />\n {extraAttrs.map((attr: any) =>\n this.renderCheckbox(attr, \"nextFields\")\n )}\n </>\n ) : null}\n </Row>\n </div>\n </>\n );\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DisplaySettings.js","names":["DisplaySettings","React","Component","constructor","props","filteredList","attrAndRelationList","q","state","trim","toLowerCase","filter","attr","name","includes","setState","event","value","target","debounceHandleSearch","getBatchEditableFields","modelData","hideColumns","view","hide_columns","ignoredFields","get","CMDB_RESOURCE_FIELDS_SETTINGS","objectId","isEmpty","forEach","hideColumn","remove","id","map","attribute","nextFields","currentFields","slice","extraDisabledFieldSet","Set","extraDisabledFields","debounce","filterColTag","componentDidUpdate","prevProps","handleChecked","fieldsKey","fields","checked","concat","without","onChange","renderCheckbox","field","disabled","extraDisabledField","has","padding","stopPropagation","width","wordBreak","render","extraAttrIds","extraFieldAttrs","extraFieldAttr","attrs","extraAttrs","marginTop","i18n","t","NS_LIBS_CMDB_INSTANCES","K","FIELD_SETTINGS","SEARCH_BY_FIELD_NAME","handleSearchChange","minHeight","maxHeight","overflow","length"],"sources":["../../../src/instance-list-table/DisplaySettings.tsx"],"sourcesContent":["import React from \"react\";\nimport { debounce, remove, without, get, isEmpty } from \"lodash\";\nimport { extraFieldAttrs } from \"./constants\";\nimport { Checkbox, Col, Divider, Input, Row } from \"antd\";\nimport {\n getBatchEditableFields,\n CMDB_RESOURCE_FIELDS_SETTINGS,\n} from \"@next-libs/cmdb-utils\";\nimport { CmdbModels } from \"@next-sdk/cmdb-sdk\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nexport interface DisplaySettingsProps {\n currentFields: string[];\n modelData: Partial<CmdbModels.ModelCmdbObject>;\n objectId?: string;\n extraDisabledField?: string;\n extraDisabledFields?: string[];\n onChange?(fields: string[]): void;\n}\n\ninterface DisplaySettingsState {\n nextFields: string[];\n q: string;\n filteredList: any;\n extraDisabledFieldSet: Set<string>;\n}\n\nexport class DisplaySettings extends React.Component<\n DisplaySettingsProps,\n DisplaySettingsState\n> {\n debounceHandleSearch: () => void;\n attrAndRelationList: { id: string; name: string }[] = [];\n\n constructor(props: DisplaySettingsProps) {\n super(props);\n const attrAndRelationList = getBatchEditableFields(this.props.modelData);\n let hideColumns = this.props.modelData.view.hide_columns || [];\n const ignoredFields = get(\n CMDB_RESOURCE_FIELDS_SETTINGS,\n `ignoredFields.${this.props.modelData.objectId}`,\n []\n );\n hideColumns = [...hideColumns, ...ignoredFields];\n\n if (!isEmpty(hideColumns)) {\n hideColumns.forEach((hideColumn: string) => {\n remove(attrAndRelationList, (attr) => attr.id === hideColumn);\n });\n }\n\n this.attrAndRelationList = attrAndRelationList.map((attribute: any) => ({\n id: attribute.id,\n name: attribute.name,\n }));\n\n this.state = {\n nextFields: props.currentFields ? props.currentFields.slice() : [],\n q: \"\",\n filteredList: this.attrAndRelationList,\n extraDisabledFieldSet: new Set(props.extraDisabledFields),\n };\n this.debounceHandleSearch = debounce(this.filterColTag, 300);\n }\n\n componentDidUpdate(prevProps: DisplaySettingsProps) {\n if (this.props.currentFields !== prevProps.currentFields) {\n this.setState({\n nextFields: this.props.currentFields\n ? this.props.currentFields.slice()\n : [],\n });\n }\n\n if (this.props.extraDisabledFields !== prevProps.extraDisabledFields) {\n this.setState({\n extraDisabledFieldSet: new Set(this.props.extraDisabledFields),\n });\n }\n }\n\n handleChecked(event: any, attr: any) {\n const fieldsKey = \"nextFields\";\n const fields = event.target.checked\n ? this.state[fieldsKey].concat(attr.id)\n : without(this.state[fieldsKey], attr.id);\n\n this.setState({ [fieldsKey]: fields });\n this.props.onChange?.(fields);\n }\n\n renderCheckbox(attr: any, field: \"nextFields\" | \"otherFields\") {\n const fieldsKey = \"nextFields\";\n const checked = this.state[fieldsKey].includes(attr.id);\n const disabled =\n attr.id === this.props.extraDisabledField ||\n this.state.extraDisabledFieldSet.has(attr.id);\n return (\n <Col\n key={attr.id}\n span={8}\n style={{ padding: 5 }}\n onClick={(event) => event.stopPropagation()}\n >\n <Checkbox\n name={field}\n style={{\n width: \"100%\",\n wordBreak: \"break-all\",\n }}\n checked={checked}\n disabled={disabled}\n onChange={(event) => this.handleChecked(event, attr)}\n data-testid={`${attr.id}-checkbox`}\n >\n {attr.name}\n </Checkbox>\n </Col>\n );\n }\n\n filterColTag = () => {\n let filteredList = this.attrAndRelationList;\n const q = this.state.q.trim().toLowerCase();\n if (q) {\n filteredList = filteredList.filter((attr) => {\n return attr.name.toLowerCase().includes(q);\n });\n }\n this.setState({\n filteredList,\n });\n };\n\n handleSearchChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const value = event.target.value;\n this.setState({\n q: value,\n });\n this.debounceHandleSearch();\n };\n\n render() {\n const filteredList = this.state.filteredList;\n const extraAttrIds = extraFieldAttrs.map(\n (extraFieldAttr) => extraFieldAttr.id\n );\n const attrs = filteredList.filter(\n (attr: any) => !extraAttrIds.includes(attr.id)\n );\n const extraAttrs = filteredList.filter((attr: any) =>\n extraAttrIds.includes(attr.id)\n );\n\n return (\n <>\n <Divider orientation=\"left\" plain style={{ marginTop: 0 }}>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FIELD_SETTINGS}`)}\n </Divider>\n <div>\n <Input.Search\n value={this.state.q}\n placeholder={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.SEARCH_BY_FIELD_NAME}`\n )}\n onChange={this.handleSearchChange}\n style={{ width: 200 }}\n data-testid=\"search-input\"\n />\n </div>\n <div\n style={{\n marginTop: 15,\n minHeight: 200,\n maxHeight: 500,\n overflow: \"auto\",\n }}\n className=\"nextFields\"\n >\n <Row>\n {attrs.map((attr: any) => this.renderCheckbox(attr, \"nextFields\"))}\n {extraAttrs.length > 0 ? (\n <>\n <Divider />\n {extraAttrs.map((attr: any) =>\n this.renderCheckbox(attr, \"nextFields\")\n )}\n </>\n ) : null}\n </Row>\n </div>\n </>\n );\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,22 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.DisplaySettingsModal = DisplaySettingsModal;
|
|
9
|
-
|
|
10
8
|
var _antd = require("antd");
|
|
11
|
-
|
|
12
9
|
var _react = _interopRequireWildcard(require("react"));
|
|
13
|
-
|
|
14
10
|
var _reactI18next = require("react-i18next");
|
|
15
|
-
|
|
16
11
|
var _constants = require("../i18n/constants");
|
|
17
|
-
|
|
18
12
|
var _DisplaySettings = require("./DisplaySettings");
|
|
19
|
-
|
|
20
13
|
function DisplaySettingsModal(props) {
|
|
21
14
|
const {
|
|
22
15
|
visible,
|
|
@@ -33,7 +26,6 @@ function DisplaySettingsModal(props) {
|
|
|
33
26
|
} = (0, _reactI18next.useTranslation)(_constants.NS_LIBS_CMDB_INSTANCES);
|
|
34
27
|
const [nextFields, setNextFields] = (0, _react.useState)(currentFields);
|
|
35
28
|
const count = (0, _react.useMemo)(() => nextFields === null || nextFields === void 0 ? void 0 : nextFields.filter(v => v !== "_object_id").length, [nextFields]);
|
|
36
|
-
|
|
37
29
|
const handleReset = () => {
|
|
38
30
|
const fields = defaultFields ? defaultFields.slice() : [];
|
|
39
31
|
setNextFields(fields);
|
|
@@ -42,12 +34,10 @@ function DisplaySettingsModal(props) {
|
|
|
42
34
|
isReset: true
|
|
43
35
|
});
|
|
44
36
|
};
|
|
45
|
-
|
|
46
37
|
const handleCancel = () => {
|
|
47
38
|
setNextFields(currentFields ? [...currentFields] : []);
|
|
48
39
|
onCancel === null || onCancel === void 0 ? void 0 : onCancel();
|
|
49
40
|
};
|
|
50
|
-
|
|
51
41
|
return /*#__PURE__*/_react.default.createElement(_antd.Modal, {
|
|
52
42
|
title: t(_constants.K.DISPLAY_SETTINGS),
|
|
53
43
|
visible: visible,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DisplaySettingsModal.js","names":["DisplaySettingsModal","props","visible","objectId","modelData","currentFields","defaultFields","extraDisabledFields","onOk","onCancel","t","useTranslation","NS_LIBS_CMDB_INSTANCES","nextFields","setNextFields","useState","count","useMemo","filter","v","length","handleReset","fields","slice","isReset","handleCancel","K","DISPLAY_SETTINGS","display","RESTORE_DEFAULT","marginLeft","marginRight","CANCEL","CONFIRM"],"sources":["../../../src/instance-list-table/DisplaySettingsModal.tsx"],"sourcesContent":["import { Button, Modal } from \"antd\";\nimport React, { useMemo, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport { DisplaySettings, DisplaySettingsProps } from \"./DisplaySettings\";\n\nexport interface DisplaySettingsModalData {\n fields: string[];\n isReset?: boolean;\n}\n\nexport interface DisplaySettingsModalProps extends DisplaySettingsProps {\n visible?: boolean;\n defaultFields?: string[];\n onOk?(data: DisplaySettingsModalData): void;\n onCancel?(): void;\n}\n\nexport function DisplaySettingsModal(\n props: DisplaySettingsModalProps\n): React.ReactElement {\n const {\n visible,\n objectId,\n modelData,\n currentFields,\n defaultFields,\n extraDisabledFields,\n onOk,\n onCancel,\n } = props;\n const { t } = useTranslation(NS_LIBS_CMDB_INSTANCES);\n const [nextFields, setNextFields] = useState<string[]>(currentFields);\n const count = useMemo(\n () => nextFields?.filter((v) => v !== \"_object_id\").length,\n [nextFields]\n );\n\n const handleReset = (): void => {\n const fields = defaultFields ? defaultFields.slice() : [];\n\n setNextFields(fields);\n onOk?.({ fields, isReset: true });\n };\n\n const handleCancel = (): void => {\n setNextFields(currentFields ? [...currentFields] : []);\n onCancel?.();\n };\n\n return (\n <Modal\n title={t(K.DISPLAY_SETTINGS)}\n visible={visible}\n footer={\n <div style={{ display: \"flex\" }}>\n <div>\n <Button\n type=\"default\"\n onClick={handleReset}\n data-testid=\"reset-button\"\n >\n {t(K.RESTORE_DEFAULT)}\n </Button>\n </div>\n <div style={{ marginLeft: \"auto\" }}>\n <Button\n type=\"default\"\n onClick={handleCancel}\n style={{ marginRight: 10 }}\n data-testid=\"cancel-button\"\n >\n {t(K.CANCEL)}\n </Button>\n <Button\n type=\"primary\"\n onClick={() => props?.onOk({ fields: nextFields })}\n disabled={count === 0}\n data-testid=\"ok-button\"\n >\n {t(K.CONFIRM)}\n </Button>\n </div>\n </div>\n }\n onCancel={handleCancel}\n destroyOnClose={true}\n width={780}\n centered={true}\n >\n <DisplaySettings\n objectId={objectId}\n modelData={modelData}\n currentFields={nextFields}\n extraDisabledFields={extraDisabledFields}\n onChange={(fields) => setNextFields(fields)}\n />\n </Modal>\n );\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"DisplaySettingsModal.js","names":["DisplaySettingsModal","props","visible","objectId","modelData","currentFields","defaultFields","extraDisabledFields","onOk","onCancel","t","useTranslation","NS_LIBS_CMDB_INSTANCES","nextFields","setNextFields","useState","count","useMemo","filter","v","length","handleReset","fields","slice","isReset","handleCancel","K","DISPLAY_SETTINGS","display","RESTORE_DEFAULT","marginLeft","marginRight","CANCEL","CONFIRM"],"sources":["../../../src/instance-list-table/DisplaySettingsModal.tsx"],"sourcesContent":["import { Button, Modal } from \"antd\";\nimport React, { useMemo, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport { DisplaySettings, DisplaySettingsProps } from \"./DisplaySettings\";\n\nexport interface DisplaySettingsModalData {\n fields: string[];\n isReset?: boolean;\n}\n\nexport interface DisplaySettingsModalProps extends DisplaySettingsProps {\n visible?: boolean;\n defaultFields?: string[];\n onOk?(data: DisplaySettingsModalData): void;\n onCancel?(): void;\n}\n\nexport function DisplaySettingsModal(\n props: DisplaySettingsModalProps\n): React.ReactElement {\n const {\n visible,\n objectId,\n modelData,\n currentFields,\n defaultFields,\n extraDisabledFields,\n onOk,\n onCancel,\n } = props;\n const { t } = useTranslation(NS_LIBS_CMDB_INSTANCES);\n const [nextFields, setNextFields] = useState<string[]>(currentFields);\n const count = useMemo(\n () => nextFields?.filter((v) => v !== \"_object_id\").length,\n [nextFields]\n );\n\n const handleReset = (): void => {\n const fields = defaultFields ? defaultFields.slice() : [];\n\n setNextFields(fields);\n onOk?.({ fields, isReset: true });\n };\n\n const handleCancel = (): void => {\n setNextFields(currentFields ? [...currentFields] : []);\n onCancel?.();\n };\n\n return (\n <Modal\n title={t(K.DISPLAY_SETTINGS)}\n visible={visible}\n footer={\n <div style={{ display: \"flex\" }}>\n <div>\n <Button\n type=\"default\"\n onClick={handleReset}\n data-testid=\"reset-button\"\n >\n {t(K.RESTORE_DEFAULT)}\n </Button>\n </div>\n <div style={{ marginLeft: \"auto\" }}>\n <Button\n type=\"default\"\n onClick={handleCancel}\n style={{ marginRight: 10 }}\n data-testid=\"cancel-button\"\n >\n {t(K.CANCEL)}\n </Button>\n <Button\n type=\"primary\"\n onClick={() => props?.onOk({ fields: nextFields })}\n disabled={count === 0}\n data-testid=\"ok-button\"\n >\n {t(K.CONFIRM)}\n </Button>\n </div>\n </div>\n }\n onCancel={handleCancel}\n destroyOnClose={true}\n width={780}\n centered={true}\n >\n <DisplaySettings\n objectId={objectId}\n modelData={modelData}\n currentFields={nextFields}\n extraDisabledFields={extraDisabledFields}\n onChange={(fields) => setNextFields(fields)}\n />\n </Modal>\n );\n}\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AAcO,SAASA,oBAAoB,CAClCC,KAAgC,EACZ;EACpB,MAAM;IACJC,OAAO;IACPC,QAAQ;IACRC,SAAS;IACTC,aAAa;IACbC,aAAa;IACbC,mBAAmB;IACnBC,IAAI;IACJC;EACF,CAAC,GAAGR,KAAK;EACT,MAAM;IAAES;EAAE,CAAC,GAAG,IAAAC,4BAAc,EAACC,iCAAsB,CAAC;EACpD,MAAM,CAACC,UAAU,EAAEC,aAAa,CAAC,GAAG,IAAAC,eAAQ,EAAWV,aAAa,CAAC;EACrE,MAAMW,KAAK,GAAG,IAAAC,cAAO,EACnB,MAAMJ,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEK,MAAM,CAAEC,CAAC,IAAKA,CAAC,KAAK,YAAY,CAAC,CAACC,MAAM,EAC1D,CAACP,UAAU,CAAC,CACb;EAED,MAAMQ,WAAW,GAAG,MAAY;IAC9B,MAAMC,MAAM,GAAGhB,aAAa,GAAGA,aAAa,CAACiB,KAAK,EAAE,GAAG,EAAE;IAEzDT,aAAa,CAACQ,MAAM,CAAC;IACrBd,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAG;MAAEc,MAAM;MAAEE,OAAO,EAAE;IAAK,CAAC,CAAC;EACnC,CAAC;EAED,MAAMC,YAAY,GAAG,MAAY;IAC/BX,aAAa,CAACT,aAAa,GAAG,CAAC,GAAGA,aAAa,CAAC,GAAG,EAAE,CAAC;IACtDI,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,EAAI;EACd,CAAC;EAED,oBACE,6BAAC,WAAK;IACJ,KAAK,EAAEC,CAAC,CAACgB,YAAC,CAACC,gBAAgB,CAAE;IAC7B,OAAO,EAAEzB,OAAQ;IACjB,MAAM,eACJ;MAAK,KAAK,EAAE;QAAE0B,OAAO,EAAE;MAAO;IAAE,gBAC9B,uDACE,6BAAC,YAAM;MACL,IAAI,EAAC,SAAS;MACd,OAAO,EAAEP,WAAY;MACrB,eAAY;IAAc,GAEzBX,CAAC,CAACgB,YAAC,CAACG,eAAe,CAAC,CACd,CACL,eACN;MAAK,KAAK,EAAE;QAAEC,UAAU,EAAE;MAAO;IAAE,gBACjC,6BAAC,YAAM;MACL,IAAI,EAAC,SAAS;MACd,OAAO,EAAEL,YAAa;MACtB,KAAK,EAAE;QAAEM,WAAW,EAAE;MAAG,CAAE;MAC3B,eAAY;IAAe,GAE1BrB,CAAC,CAACgB,YAAC,CAACM,MAAM,CAAC,CACL,eACT,6BAAC,YAAM;MACL,IAAI,EAAC,SAAS;MACd,OAAO,EAAE,MAAM/B,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEO,IAAI,CAAC;QAAEc,MAAM,EAAET;MAAW,CAAC,CAAE;MACnD,QAAQ,EAAEG,KAAK,KAAK,CAAE;MACtB,eAAY;IAAW,GAEtBN,CAAC,CAACgB,YAAC,CAACO,OAAO,CAAC,CACN,CACL,CAET;IACD,QAAQ,EAAER,YAAa;IACvB,cAAc,EAAE,IAAK;IACrB,KAAK,EAAE,GAAI;IACX,QAAQ,EAAE;EAAK,gBAEf,6BAAC,gCAAe;IACd,QAAQ,EAAEtB,QAAS;IACnB,SAAS,EAAEC,SAAU;IACrB,aAAa,EAAES,UAAW;IAC1B,mBAAmB,EAAEN,mBAAoB;IACzC,QAAQ,EAAGe,MAAM,IAAKR,aAAa,CAACQ,MAAM;EAAE,EAC5C,CACI;AAEZ"}
|
|
@@ -1,34 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.DynamicSearchForm = exports.DynamicSearch = void 0;
|
|
9
|
-
|
|
10
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
-
|
|
12
9
|
var _react = _interopRequireDefault(require("react"));
|
|
13
|
-
|
|
14
10
|
var _immutabilityHelper = _interopRequireDefault(require("immutability-helper"));
|
|
15
|
-
|
|
16
11
|
var _lodash = require("lodash");
|
|
17
|
-
|
|
18
12
|
var _compatible = require("@ant-design/compatible");
|
|
19
|
-
|
|
20
13
|
var _antd = require("antd");
|
|
21
|
-
|
|
22
14
|
var _cmdbUtils = require("@next-libs/cmdb-utils");
|
|
23
|
-
|
|
24
15
|
var _DynamicSearchModule = _interopRequireDefault(require("./DynamicSearch.module.css"));
|
|
25
|
-
|
|
26
16
|
var _i18next = _interopRequireDefault(require("i18next"));
|
|
27
|
-
|
|
28
17
|
var _constants = require("../i18n/constants");
|
|
29
|
-
|
|
30
18
|
var _processors = require("../processors");
|
|
31
|
-
|
|
32
19
|
class DynamicSearchForm extends _react.default.Component {
|
|
33
20
|
constructor(props) {
|
|
34
21
|
super(props);
|
|
@@ -50,7 +37,6 @@ class DynamicSearchForm extends _react.default.Component {
|
|
|
50
37
|
});
|
|
51
38
|
(0, _defineProperty2.default)(this, "handleSearch", e => {
|
|
52
39
|
e.preventDefault();
|
|
53
|
-
|
|
54
40
|
if (this.props.onSearch) {
|
|
55
41
|
let queries = [];
|
|
56
42
|
let queriesToShow = [];
|
|
@@ -77,14 +63,11 @@ class DynamicSearchForm extends _react.default.Component {
|
|
|
77
63
|
fieldQueryToShow = {
|
|
78
64
|
[fieldIdToShow]: expressions
|
|
79
65
|
};
|
|
80
|
-
|
|
81
66
|
if (value !== null && value !== "" && !(Array.isArray(value) && value.length === 0)) {
|
|
82
67
|
let values;
|
|
83
|
-
|
|
84
68
|
if (typeof value === "string") {
|
|
85
69
|
values = (0, _processors.processAttrValueWithQuote)(value, []);
|
|
86
70
|
}
|
|
87
|
-
|
|
88
71
|
if (values.length) {
|
|
89
72
|
fieldQuery = {
|
|
90
73
|
[operator.logicalOperator]: values.map(value => {
|
|
@@ -96,7 +79,6 @@ class DynamicSearchForm extends _react.default.Component {
|
|
|
96
79
|
})
|
|
97
80
|
};
|
|
98
81
|
}
|
|
99
|
-
|
|
100
82
|
fieldQueryToShow = {
|
|
101
83
|
[operator.logicalOperator]: values.map(value => {
|
|
102
84
|
return {
|
|
@@ -112,18 +94,15 @@ class DynamicSearchForm extends _react.default.Component {
|
|
|
112
94
|
});
|
|
113
95
|
}
|
|
114
96
|
});
|
|
115
|
-
|
|
116
97
|
if (hasValue) {
|
|
117
98
|
queries.push(fieldQuery);
|
|
118
99
|
queriesToShow.push(fieldQueryToShow);
|
|
119
100
|
}
|
|
120
101
|
});
|
|
121
|
-
|
|
122
102
|
if (queries.length === 0) {
|
|
123
103
|
queries = undefined;
|
|
124
104
|
queriesToShow = undefined;
|
|
125
105
|
}
|
|
126
|
-
|
|
127
106
|
if (!(0, _lodash.isEqual)(this.props.q, queries)) {
|
|
128
107
|
this.props.onSearch(queries, queriesToShow, fieldToShow);
|
|
129
108
|
}
|
|
@@ -135,7 +114,6 @@ class DynamicSearchForm extends _react.default.Component {
|
|
|
135
114
|
});
|
|
136
115
|
this.state = this.computeState();
|
|
137
116
|
}
|
|
138
|
-
|
|
139
117
|
componentDidUpdate(prevProps) {
|
|
140
118
|
if (!(0, _lodash.isEqual)(this.props.q, prevProps.q)) {
|
|
141
119
|
const newState = this.computeState();
|
|
@@ -143,11 +121,9 @@ class DynamicSearchForm extends _react.default.Component {
|
|
|
143
121
|
this.setFormFieldValues(newState.fields);
|
|
144
122
|
}
|
|
145
123
|
}
|
|
146
|
-
|
|
147
124
|
computeState() {
|
|
148
125
|
const fieldQueryOperatorExpressionsMap = {};
|
|
149
126
|
let fields = [];
|
|
150
|
-
|
|
151
127
|
if (this.props.q) {
|
|
152
128
|
this.props.q.forEach(query => {
|
|
153
129
|
Object.entries(query).forEach(([key, expressions]) => {
|
|
@@ -157,20 +133,16 @@ class DynamicSearchForm extends _react.default.Component {
|
|
|
157
133
|
const compareOperator = Object.keys(firstSubQuery[fieldId])[0];
|
|
158
134
|
let subQueryValue = "";
|
|
159
135
|
let targetField;
|
|
160
|
-
|
|
161
136
|
if (_processors.ENABLED_CMDB_ADVANCE_SEARCH_WITH_QUOTE) {
|
|
162
137
|
var _this$props$fieldToSh;
|
|
163
|
-
|
|
164
138
|
targetField = (_this$props$fieldToSh = this.props.fieldToShow) === null || _this$props$fieldToSh === void 0 ? void 0 : _this$props$fieldToSh.find(fieldItem => Object.keys(fieldItem)[0] === fieldId);
|
|
165
139
|
}
|
|
166
|
-
|
|
167
140
|
if (!(0, _lodash.isNil)(targetField)) {
|
|
168
141
|
// 二维数组会有问题,
|
|
169
142
|
subQueryValue = (0, _lodash.isArray)(targetField[fieldId]) ? targetField[fieldId].map(item => (0, _lodash.isArray)(item) ? item.join(" ") : item).join("") : targetField[fieldId];
|
|
170
143
|
} else {
|
|
171
144
|
subQueryValue = expressions.map(query => {
|
|
172
145
|
const targetValue = query[fieldId][compareOperator];
|
|
173
|
-
|
|
174
146
|
if (compareOperator === _cmdbUtils.ComparisonOperators.Like || compareOperator === _cmdbUtils.ComparisonOperators.NotLike) {
|
|
175
147
|
return (0, _lodash.isString)(targetValue) && targetValue.includes(" ") ? `${targetValue[0]}"${targetValue.slice(1, targetValue.length - 1)}"${targetValue[targetValue.length - 1]}` : targetValue;
|
|
176
148
|
} else {
|
|
@@ -178,44 +150,38 @@ class DynamicSearchForm extends _react.default.Component {
|
|
|
178
150
|
}
|
|
179
151
|
}).join(" ");
|
|
180
152
|
}
|
|
181
|
-
|
|
182
153
|
key = fieldId;
|
|
183
154
|
expressions = {
|
|
184
155
|
[compareOperator]: subQueryValue
|
|
185
156
|
};
|
|
186
157
|
}
|
|
187
|
-
|
|
188
158
|
fieldQueryOperatorExpressionsMap[key] = expressions;
|
|
189
159
|
});
|
|
190
160
|
});
|
|
191
161
|
}
|
|
192
|
-
|
|
193
162
|
if (this.props.fields) {
|
|
194
|
-
fields = this.props.fields.map(v => ({
|
|
163
|
+
fields = this.props.fields.map(v => ({
|
|
164
|
+
...v,
|
|
195
165
|
values: [null]
|
|
196
166
|
}));
|
|
197
|
-
|
|
198
167
|
if (!(0, _lodash.isEmpty)(fieldQueryOperatorExpressionsMap)) {
|
|
199
168
|
fields = this.props.fields.map(v => {
|
|
200
169
|
let str = null;
|
|
201
|
-
|
|
202
170
|
if (fieldQueryOperatorExpressionsMap[v.id]) {
|
|
203
171
|
const expressions = fieldQueryOperatorExpressionsMap[v.id]["$like"];
|
|
204
172
|
str = expressions.replace(/%/g, "");
|
|
205
173
|
}
|
|
206
|
-
|
|
207
|
-
|
|
174
|
+
return {
|
|
175
|
+
...v,
|
|
208
176
|
values: [str]
|
|
209
177
|
};
|
|
210
178
|
});
|
|
211
179
|
}
|
|
212
180
|
}
|
|
213
|
-
|
|
214
181
|
return {
|
|
215
182
|
fields
|
|
216
183
|
};
|
|
217
184
|
}
|
|
218
|
-
|
|
219
185
|
setFormFieldValues(fields) {
|
|
220
186
|
const values = fields.reduce((acc, field) => {
|
|
221
187
|
acc[`${field.id}`] = field.values.join("");
|
|
@@ -223,7 +189,6 @@ class DynamicSearchForm extends _react.default.Component {
|
|
|
223
189
|
}, {});
|
|
224
190
|
this.props.form.setFieldsValue(values);
|
|
225
191
|
}
|
|
226
|
-
|
|
227
192
|
getFields() {
|
|
228
193
|
const {
|
|
229
194
|
getFieldDecorator
|
|
@@ -244,7 +209,6 @@ class DynamicSearchForm extends _react.default.Component {
|
|
|
244
209
|
}))));
|
|
245
210
|
});
|
|
246
211
|
}
|
|
247
|
-
|
|
248
212
|
render() {
|
|
249
213
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
250
214
|
className: _DynamicSearchModule.default.dynamicSearch
|
|
@@ -271,14 +235,10 @@ class DynamicSearchForm extends _react.default.Component {
|
|
|
271
235
|
"data-testid": "reset-button"
|
|
272
236
|
}, _i18next.default.t(`${_constants.NS_LIBS_CMDB_INSTANCES}:${_constants.K.RESET}`))))));
|
|
273
237
|
}
|
|
274
|
-
|
|
275
238
|
}
|
|
276
|
-
|
|
277
239
|
exports.DynamicSearchForm = DynamicSearchForm;
|
|
278
|
-
|
|
279
240
|
const DynamicSearch = _compatible.Form.create({
|
|
280
241
|
name: "dynamic_search"
|
|
281
242
|
})(DynamicSearchForm);
|
|
282
|
-
|
|
283
243
|
exports.DynamicSearch = DynamicSearch;
|
|
284
244
|
//# sourceMappingURL=DynamicSearch.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DynamicSearch.js","names":["DynamicSearchForm","React","Component","constructor","props","value","fieldIndex","valueIndex","setState","fields","update","state","values","$set","e","onValueChange","target","preventDefault","onSearch","queries","queriesToShow","fieldToShow","forEach","field","expressions","fieldId","id","fieldQuery","fieldQueryToShow","hasValue","operator","comparisonOperator","ComparisonOperators","Like","logicalOperator","LogicalOperators","Or","fieldIdToShow","Array","isArray","length","processAttrValueWithQuote","map","push","undefined","isEqual","q","form","resetFields","computeState","componentDidUpdate","prevProps","newState","setFormFieldValues","fieldQueryOperatorExpressionsMap","query","Object","entries","key","And","firstSubQuery","keys","compareOperator","subQueryValue","targetField","ENABLED_CMDB_ADVANCE_SEARCH_WITH_QUOTE","find","fieldItem","isNil","item","join","targetValue","NotLike","isString","includes","slice","v","isEmpty","str","replace","reduce","acc","setFieldsValue","getFields","getFieldDecorator","name","initialValue","styles","conditionInput","i18n","t","NS_LIBS_CMDB_INSTANCES","K","OPERATOR_CONTAIN_DEFINE","ADVANCE_SEARCH_SINGLE_INPUT_PLACEHOLDER","handleValueChange","render","dynamicSearch","dynamicSearchForm","handleSearch","textAlign","SEARCH","marginLeft","handleReset","RESET","DynamicSearch","Form","create"],"sources":["../../../src/instance-list-table/DynamicSearch.tsx"],"sourcesContent":["import React, { FormEvent } from \"react\";\nimport update from \"immutability-helper\";\nimport { isEqual, isNil, isString, isArray, isEmpty } from \"lodash\";\nimport { Form } from \"@ant-design/compatible\";\nimport { Button, Col, Input, Row, Select } from \"antd\";\nimport { FormComponentProps } from \"@ant-design/compatible/lib/form\";\nimport {\n ComparisonOperators,\n LogicalOperators,\n Query,\n QueryOperatorExpressions,\n} from \"@next-libs/cmdb-utils\";\nimport styles from \"./DynamicSearch.module.css\";\nimport i18n from \"i18next\";\nimport { NS_LIBS_CMDB_INSTANCES, K } from \"../i18n/constants\";\nimport {\n processAttrValueWithQuote,\n ENABLED_CMDB_ADVANCE_SEARCH_WITH_QUOTE,\n} from \"../processors\";\n\nexport interface Field {\n id: string;\n name: string;\n values?: any[];\n}\n\nexport interface DynamicSearchFormProps extends FormComponentProps {\n fields: Record<string, any>[];\n q?: Query[];\n onSearch?(\n queries: Query[],\n queriesToShow?: Query[],\n fieldToShow?: Record<string, any[]>[]\n ): void;\n fieldToShow?: Record<string, any[]>[]; // 回填高级搜索的field值(根据query回填丢失了引号信息)\n}\n\nexport interface DynamicSearchFormState {\n fields: Field[];\n}\n\nexport class DynamicSearchForm extends React.Component<\n DynamicSearchFormProps,\n DynamicSearchFormState\n> {\n constructor(props: DynamicSearchFormProps) {\n super(props);\n\n this.state = this.computeState();\n }\n\n componentDidUpdate(prevProps: Readonly<DynamicSearchFormProps>): void {\n if (!isEqual(this.props.q, prevProps.q)) {\n const newState = this.computeState();\n this.setState(newState);\n this.setFormFieldValues(newState.fields);\n }\n }\n\n computeState(): { fields: Field[] } {\n const fieldQueryOperatorExpressionsMap: Record<\n string,\n QueryOperatorExpressions\n > = {};\n let fields: Field[] = [];\n if (this.props.q) {\n this.props.q.forEach((query) => {\n Object.entries(query).forEach(([key, expressions]) => {\n if (key === LogicalOperators.Or || key === LogicalOperators.And) {\n const firstSubQuery = (expressions as Query[])[0];\n const fieldId = Object.keys(firstSubQuery)[0];\n const compareOperator = Object.keys(firstSubQuery[fieldId])[0];\n let subQueryValue = \"\";\n let targetField;\n if (ENABLED_CMDB_ADVANCE_SEARCH_WITH_QUOTE) {\n targetField = this.props.fieldToShow?.find(\n (fieldItem) => Object.keys(fieldItem)[0] === fieldId\n );\n }\n if (!isNil(targetField)) {\n // 二维数组会有问题,\n subQueryValue = isArray(targetField[fieldId])\n ? targetField[fieldId]\n .map((item) => (isArray(item) ? item.join(\" \") : item))\n .join(\"\")\n : (targetField[fieldId] as any);\n } else {\n subQueryValue = (expressions as Query[])\n .map((query) => {\n const targetValue = (\n query[fieldId] as Record<ComparisonOperators, any>\n )[compareOperator as ComparisonOperators];\n if (\n compareOperator === ComparisonOperators.Like ||\n compareOperator === ComparisonOperators.NotLike\n ) {\n return isString(targetValue) && targetValue.includes(\" \")\n ? `${targetValue[0]}\"${targetValue.slice(\n 1,\n targetValue.length - 1\n )}\"${targetValue[targetValue.length - 1]}`\n : targetValue;\n } else {\n return isString(targetValue) && targetValue.includes(\" \")\n ? `\"${targetValue}\"`\n : targetValue;\n }\n })\n .join(\" \");\n }\n key = fieldId;\n expressions = {\n [compareOperator]: subQueryValue,\n };\n }\n\n fieldQueryOperatorExpressionsMap[key] =\n expressions as QueryOperatorExpressions;\n });\n });\n }\n if (this.props.fields) {\n fields = this.props.fields.map(\n (v) => ({ ...v, values: [null] } as Field)\n );\n if (!isEmpty(fieldQueryOperatorExpressionsMap)) {\n fields = this.props.fields.map((v) => {\n let str: any = null;\n if (fieldQueryOperatorExpressionsMap[v.id]) {\n const expressions = fieldQueryOperatorExpressionsMap[v.id][\"$like\"];\n str = expressions.replace(/%/g, \"\");\n }\n return {\n ...v,\n values: [str],\n } as Field;\n });\n }\n }\n return { fields };\n }\n\n setFormFieldValues(fields: Field[]): void {\n const values = fields.reduce<{ [key: string]: any }>((acc, field) => {\n acc[`${field.id}`] = field.values.join(\"\");\n return acc;\n }, {});\n this.props.form.setFieldsValue(values);\n }\n\n onValueChange = (value: any, fieldIndex: number, valueIndex: number) => {\n this.setState({\n fields: update(this.state.fields, {\n [fieldIndex]: { values: { [valueIndex]: { $set: value } } },\n }),\n });\n };\n\n getFields() {\n const { getFieldDecorator } = this.props.form;\n return this.state.fields.map((field, fieldIndex) => {\n return (\n <Col span={12} key={field.id}>\n <Form.Item label={field.name}>\n {getFieldDecorator(`${field.id}`, {\n initialValue: field.values || \"\",\n })(\n <Input\n className={styles.conditionInput}\n addonBefore={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.OPERATOR_CONTAIN_DEFINE}`\n )}\n placeholder={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ADVANCE_SEARCH_SINGLE_INPUT_PLACEHOLDER}`\n )}\n onChange={(e) => this.handleValueChange(e, fieldIndex)}\n />\n )}\n </Form.Item>\n </Col>\n );\n });\n }\n\n handleValueChange = (e: any, fieldIndex: number) => {\n this.onValueChange(e.target.value, fieldIndex, 0);\n };\n\n handleSearch = (e: FormEvent<any>): void => {\n e.preventDefault();\n if (this.props.onSearch) {\n let queries: Query[] = [];\n let queriesToShow: Query[] = [];\n const fieldToShow: Record<string, any[]>[] = [];\n this.state.fields.forEach((field) => {\n const expressions: QueryOperatorExpressions = {};\n const fieldId = field.id;\n let fieldQuery: Query = { [fieldId]: expressions };\n let fieldQueryToShow: Query = { [fieldId]: expressions };\n let hasValue = false;\n const operator = {\n comparisonOperator: ComparisonOperators.Like,\n logicalOperator: LogicalOperators.Or,\n };\n field.values.forEach((value) => {\n fieldQuery = { [field.id]: expressions };\n const fieldIdToShow = field.id;\n fieldQueryToShow = { [fieldIdToShow]: expressions };\n if (\n value !== null &&\n value !== \"\" &&\n !(Array.isArray(value) && value.length === 0)\n ) {\n let values: any[];\n if (typeof value === \"string\") {\n values = processAttrValueWithQuote(value, []);\n }\n if (values.length) {\n fieldQuery = {\n [operator.logicalOperator]: values.map((value) => {\n return {\n [fieldId]: {\n [operator.comparisonOperator]: `%${value}%`,\n },\n };\n }),\n };\n }\n fieldQueryToShow = {\n [operator.logicalOperator]: values.map((value) => {\n return {\n [fieldIdToShow]: {\n [operator.comparisonOperator]: `%${value}%`,\n },\n };\n }),\n };\n hasValue = true;\n fieldToShow.push({ [field.id]: field.values });\n }\n });\n if (hasValue) {\n queries.push(fieldQuery);\n queriesToShow.push(fieldQueryToShow);\n }\n });\n if (queries.length === 0) {\n queries = undefined;\n queriesToShow = undefined;\n }\n if (!isEqual(this.props.q, queries)) {\n this.props.onSearch(queries, queriesToShow, fieldToShow);\n }\n }\n };\n\n handleReset = () => {\n this.props.onSearch([], [], []);\n this.props.form.resetFields();\n };\n\n render(): React.ReactNode {\n return (\n <div className={styles.dynamicSearch}>\n <Form\n layout=\"vertical\"\n className={styles.dynamicSearchForm}\n onSubmit={this.handleSearch}\n >\n <Row gutter={50}>{this.getFields()}</Row>\n <Row>\n <Col span={24} style={{ textAlign: \"right\" }}>\n <Button\n type=\"primary\"\n htmlType=\"submit\"\n data-testid=\"submit-button\"\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.SEARCH}`)}\n </Button>\n <Button\n style={{ marginLeft: 8 }}\n onClick={this.handleReset}\n data-testid=\"reset-button\"\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.RESET}`)}\n </Button>\n </Col>\n </Row>\n </Form>\n </div>\n );\n }\n}\n\nexport const DynamicSearch = Form.create<DynamicSearchFormProps>({\n name: \"dynamic_search\",\n})(DynamicSearchForm);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DynamicSearch.js","names":["DynamicSearchForm","React","Component","constructor","props","value","fieldIndex","valueIndex","setState","fields","update","state","values","$set","e","onValueChange","target","preventDefault","onSearch","queries","queriesToShow","fieldToShow","forEach","field","expressions","fieldId","id","fieldQuery","fieldQueryToShow","hasValue","operator","comparisonOperator","ComparisonOperators","Like","logicalOperator","LogicalOperators","Or","fieldIdToShow","Array","isArray","length","processAttrValueWithQuote","map","push","undefined","isEqual","q","form","resetFields","computeState","componentDidUpdate","prevProps","newState","setFormFieldValues","fieldQueryOperatorExpressionsMap","query","Object","entries","key","And","firstSubQuery","keys","compareOperator","subQueryValue","targetField","ENABLED_CMDB_ADVANCE_SEARCH_WITH_QUOTE","find","fieldItem","isNil","item","join","targetValue","NotLike","isString","includes","slice","v","isEmpty","str","replace","reduce","acc","setFieldsValue","getFields","getFieldDecorator","name","initialValue","styles","conditionInput","i18n","t","NS_LIBS_CMDB_INSTANCES","K","OPERATOR_CONTAIN_DEFINE","ADVANCE_SEARCH_SINGLE_INPUT_PLACEHOLDER","handleValueChange","render","dynamicSearch","dynamicSearchForm","handleSearch","textAlign","SEARCH","marginLeft","handleReset","RESET","DynamicSearch","Form","create"],"sources":["../../../src/instance-list-table/DynamicSearch.tsx"],"sourcesContent":["import React, { FormEvent } from \"react\";\nimport update from \"immutability-helper\";\nimport { isEqual, isNil, isString, isArray, isEmpty } from \"lodash\";\nimport { Form } from \"@ant-design/compatible\";\nimport { Button, Col, Input, Row, Select } from \"antd\";\nimport { FormComponentProps } from \"@ant-design/compatible/lib/form\";\nimport {\n ComparisonOperators,\n LogicalOperators,\n Query,\n QueryOperatorExpressions,\n} from \"@next-libs/cmdb-utils\";\nimport styles from \"./DynamicSearch.module.css\";\nimport i18n from \"i18next\";\nimport { NS_LIBS_CMDB_INSTANCES, K } from \"../i18n/constants\";\nimport {\n processAttrValueWithQuote,\n ENABLED_CMDB_ADVANCE_SEARCH_WITH_QUOTE,\n} from \"../processors\";\n\nexport interface Field {\n id: string;\n name: string;\n values?: any[];\n}\n\nexport interface DynamicSearchFormProps extends FormComponentProps {\n fields: Record<string, any>[];\n q?: Query[];\n onSearch?(\n queries: Query[],\n queriesToShow?: Query[],\n fieldToShow?: Record<string, any[]>[]\n ): void;\n fieldToShow?: Record<string, any[]>[]; // 回填高级搜索的field值(根据query回填丢失了引号信息)\n}\n\nexport interface DynamicSearchFormState {\n fields: Field[];\n}\n\nexport class DynamicSearchForm extends React.Component<\n DynamicSearchFormProps,\n DynamicSearchFormState\n> {\n constructor(props: DynamicSearchFormProps) {\n super(props);\n\n this.state = this.computeState();\n }\n\n componentDidUpdate(prevProps: Readonly<DynamicSearchFormProps>): void {\n if (!isEqual(this.props.q, prevProps.q)) {\n const newState = this.computeState();\n this.setState(newState);\n this.setFormFieldValues(newState.fields);\n }\n }\n\n computeState(): { fields: Field[] } {\n const fieldQueryOperatorExpressionsMap: Record<\n string,\n QueryOperatorExpressions\n > = {};\n let fields: Field[] = [];\n if (this.props.q) {\n this.props.q.forEach((query) => {\n Object.entries(query).forEach(([key, expressions]) => {\n if (key === LogicalOperators.Or || key === LogicalOperators.And) {\n const firstSubQuery = (expressions as Query[])[0];\n const fieldId = Object.keys(firstSubQuery)[0];\n const compareOperator = Object.keys(firstSubQuery[fieldId])[0];\n let subQueryValue = \"\";\n let targetField;\n if (ENABLED_CMDB_ADVANCE_SEARCH_WITH_QUOTE) {\n targetField = this.props.fieldToShow?.find(\n (fieldItem) => Object.keys(fieldItem)[0] === fieldId\n );\n }\n if (!isNil(targetField)) {\n // 二维数组会有问题,\n subQueryValue = isArray(targetField[fieldId])\n ? targetField[fieldId]\n .map((item) => (isArray(item) ? item.join(\" \") : item))\n .join(\"\")\n : (targetField[fieldId] as any);\n } else {\n subQueryValue = (expressions as Query[])\n .map((query) => {\n const targetValue = (\n query[fieldId] as Record<ComparisonOperators, any>\n )[compareOperator as ComparisonOperators];\n if (\n compareOperator === ComparisonOperators.Like ||\n compareOperator === ComparisonOperators.NotLike\n ) {\n return isString(targetValue) && targetValue.includes(\" \")\n ? `${targetValue[0]}\"${targetValue.slice(\n 1,\n targetValue.length - 1\n )}\"${targetValue[targetValue.length - 1]}`\n : targetValue;\n } else {\n return isString(targetValue) && targetValue.includes(\" \")\n ? `\"${targetValue}\"`\n : targetValue;\n }\n })\n .join(\" \");\n }\n key = fieldId;\n expressions = {\n [compareOperator]: subQueryValue,\n };\n }\n\n fieldQueryOperatorExpressionsMap[key] =\n expressions as QueryOperatorExpressions;\n });\n });\n }\n if (this.props.fields) {\n fields = this.props.fields.map(\n (v) => ({ ...v, values: [null] } as Field)\n );\n if (!isEmpty(fieldQueryOperatorExpressionsMap)) {\n fields = this.props.fields.map((v) => {\n let str: any = null;\n if (fieldQueryOperatorExpressionsMap[v.id]) {\n const expressions = fieldQueryOperatorExpressionsMap[v.id][\"$like\"];\n str = expressions.replace(/%/g, \"\");\n }\n return {\n ...v,\n values: [str],\n } as Field;\n });\n }\n }\n return { fields };\n }\n\n setFormFieldValues(fields: Field[]): void {\n const values = fields.reduce<{ [key: string]: any }>((acc, field) => {\n acc[`${field.id}`] = field.values.join(\"\");\n return acc;\n }, {});\n this.props.form.setFieldsValue(values);\n }\n\n onValueChange = (value: any, fieldIndex: number, valueIndex: number) => {\n this.setState({\n fields: update(this.state.fields, {\n [fieldIndex]: { values: { [valueIndex]: { $set: value } } },\n }),\n });\n };\n\n getFields() {\n const { getFieldDecorator } = this.props.form;\n return this.state.fields.map((field, fieldIndex) => {\n return (\n <Col span={12} key={field.id}>\n <Form.Item label={field.name}>\n {getFieldDecorator(`${field.id}`, {\n initialValue: field.values || \"\",\n })(\n <Input\n className={styles.conditionInput}\n addonBefore={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.OPERATOR_CONTAIN_DEFINE}`\n )}\n placeholder={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ADVANCE_SEARCH_SINGLE_INPUT_PLACEHOLDER}`\n )}\n onChange={(e) => this.handleValueChange(e, fieldIndex)}\n />\n )}\n </Form.Item>\n </Col>\n );\n });\n }\n\n handleValueChange = (e: any, fieldIndex: number) => {\n this.onValueChange(e.target.value, fieldIndex, 0);\n };\n\n handleSearch = (e: FormEvent<any>): void => {\n e.preventDefault();\n if (this.props.onSearch) {\n let queries: Query[] = [];\n let queriesToShow: Query[] = [];\n const fieldToShow: Record<string, any[]>[] = [];\n this.state.fields.forEach((field) => {\n const expressions: QueryOperatorExpressions = {};\n const fieldId = field.id;\n let fieldQuery: Query = { [fieldId]: expressions };\n let fieldQueryToShow: Query = { [fieldId]: expressions };\n let hasValue = false;\n const operator = {\n comparisonOperator: ComparisonOperators.Like,\n logicalOperator: LogicalOperators.Or,\n };\n field.values.forEach((value) => {\n fieldQuery = { [field.id]: expressions };\n const fieldIdToShow = field.id;\n fieldQueryToShow = { [fieldIdToShow]: expressions };\n if (\n value !== null &&\n value !== \"\" &&\n !(Array.isArray(value) && value.length === 0)\n ) {\n let values: any[];\n if (typeof value === \"string\") {\n values = processAttrValueWithQuote(value, []);\n }\n if (values.length) {\n fieldQuery = {\n [operator.logicalOperator]: values.map((value) => {\n return {\n [fieldId]: {\n [operator.comparisonOperator]: `%${value}%`,\n },\n };\n }),\n };\n }\n fieldQueryToShow = {\n [operator.logicalOperator]: values.map((value) => {\n return {\n [fieldIdToShow]: {\n [operator.comparisonOperator]: `%${value}%`,\n },\n };\n }),\n };\n hasValue = true;\n fieldToShow.push({ [field.id]: field.values });\n }\n });\n if (hasValue) {\n queries.push(fieldQuery);\n queriesToShow.push(fieldQueryToShow);\n }\n });\n if (queries.length === 0) {\n queries = undefined;\n queriesToShow = undefined;\n }\n if (!isEqual(this.props.q, queries)) {\n this.props.onSearch(queries, queriesToShow, fieldToShow);\n }\n }\n };\n\n handleReset = () => {\n this.props.onSearch([], [], []);\n this.props.form.resetFields();\n };\n\n render(): React.ReactNode {\n return (\n <div className={styles.dynamicSearch}>\n <Form\n layout=\"vertical\"\n className={styles.dynamicSearchForm}\n onSubmit={this.handleSearch}\n >\n <Row gutter={50}>{this.getFields()}</Row>\n <Row>\n <Col span={24} style={{ textAlign: \"right\" }}>\n <Button\n type=\"primary\"\n htmlType=\"submit\"\n data-testid=\"submit-button\"\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.SEARCH}`)}\n </Button>\n <Button\n style={{ marginLeft: 8 }}\n onClick={this.handleReset}\n data-testid=\"reset-button\"\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.RESET}`)}\n </Button>\n </Col>\n </Row>\n </Form>\n </div>\n );\n }\n}\n\nexport const DynamicSearch = Form.create<DynamicSearchFormProps>({\n name: \"dynamic_search\",\n})(DynamicSearchForm);\n"],"mappings":"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"}
|