@next-libs/cmdb-instances 6.47.12 → 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 +60 -210
- 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 +54 -180
- 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/dist/types/instance-list/InstanceList.d.ts +10 -0
- package/package.json +9 -9
- package/CHANGELOG.md +0 -3676
|
@@ -1,26 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
-
|
|
5
4
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
6
|
-
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
8
|
exports.AttributeFormControlUrl = void 0;
|
|
11
|
-
|
|
12
9
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
|
-
|
|
14
10
|
var _antd = require("antd");
|
|
15
|
-
|
|
16
11
|
var _i18next = _interopRequireDefault(require("i18next"));
|
|
17
|
-
|
|
18
12
|
var _constants = require("../i18n/constants");
|
|
19
|
-
|
|
20
13
|
var _react = _interopRequireWildcard(require("react"));
|
|
21
|
-
|
|
22
14
|
require("./AttributeFormControlUrl.module.css");
|
|
23
|
-
|
|
24
15
|
class AttributeFormControlUrl extends _react.Component {
|
|
25
16
|
constructor(props) {
|
|
26
17
|
super(props);
|
|
@@ -41,24 +32,20 @@ class AttributeFormControlUrl extends _react.Component {
|
|
|
41
32
|
this.title = _title;
|
|
42
33
|
this.url = _url;
|
|
43
34
|
}
|
|
44
|
-
|
|
45
35
|
static breakDownValue(value) {
|
|
46
36
|
const pattern = /^\[(.*)\]\((.*)\)$/;
|
|
47
37
|
const arr = value && value.match(pattern);
|
|
48
|
-
|
|
49
38
|
if (arr) {
|
|
50
39
|
return {
|
|
51
40
|
title: arr[1],
|
|
52
41
|
url: AttributeFormControlUrl.getFormattedUrl(arr[2])
|
|
53
42
|
};
|
|
54
43
|
}
|
|
55
|
-
|
|
56
44
|
return {
|
|
57
45
|
title: value,
|
|
58
46
|
url: value
|
|
59
47
|
};
|
|
60
48
|
}
|
|
61
|
-
|
|
62
49
|
static getFormattedUrl(url) {
|
|
63
50
|
/* istanbul ignore if */
|
|
64
51
|
if (url) {
|
|
@@ -72,10 +59,12 @@ class AttributeFormControlUrl extends _react.Component {
|
|
|
72
59
|
const origin = window.location.origin;
|
|
73
60
|
return reg.test(url) ? `${origin}${url}` : url;
|
|
74
61
|
}
|
|
75
|
-
|
|
76
62
|
return "";
|
|
77
|
-
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// preSetValidation = () => {
|
|
78
66
|
// const url = AttributeFormControlUrl.getFormattedUrl(this.url);
|
|
67
|
+
|
|
79
68
|
// if (this.url !== url) {
|
|
80
69
|
// this.url = url;
|
|
81
70
|
// this.composeUrl();
|
|
@@ -83,17 +72,13 @@ class AttributeFormControlUrl extends _react.Component {
|
|
|
83
72
|
// };
|
|
84
73
|
|
|
85
74
|
/* istanbul ignore next */
|
|
86
|
-
|
|
87
|
-
|
|
88
75
|
composeUrl() {
|
|
89
76
|
var _this$title;
|
|
90
|
-
|
|
91
77
|
const title = (_this$title = this.title) !== null && _this$title !== void 0 ? _this$title : "";
|
|
92
78
|
const url = AttributeFormControlUrl.getFormattedUrl(this.url);
|
|
93
79
|
const value = url || title ? `[${title}](${url})` : "";
|
|
94
80
|
this.props.onChange(value);
|
|
95
81
|
}
|
|
96
|
-
|
|
97
82
|
render() {
|
|
98
83
|
const {
|
|
99
84
|
readOnly,
|
|
@@ -111,7 +96,8 @@ class AttributeFormControlUrl extends _react.Component {
|
|
|
111
96
|
readOnly: readOnly,
|
|
112
97
|
value: url,
|
|
113
98
|
type: "url",
|
|
114
|
-
onChange: e => this.handleUrlChange(e.target.value)
|
|
99
|
+
onChange: e => this.handleUrlChange(e.target.value)
|
|
100
|
+
// onBlur={this.preSetValidation}
|
|
115
101
|
,
|
|
116
102
|
placeholder: placeholder || _i18next.default.t(`${_constants.NS_LIBS_CMDB_INSTANCES}:${_constants.K.LINK_PLACEHOLDER}`)
|
|
117
103
|
})), /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -121,13 +107,12 @@ class AttributeFormControlUrl extends _react.Component {
|
|
|
121
107
|
}, _i18next.default.t(`${_constants.NS_LIBS_CMDB_INSTANCES}:${_constants.K.TITLE}`)), /*#__PURE__*/_react.default.createElement(_antd.Input, {
|
|
122
108
|
defaultValue: title,
|
|
123
109
|
type: "text",
|
|
124
|
-
onChange: e => this.handleTitleChange(e.target.value)
|
|
110
|
+
onChange: e => this.handleTitleChange(e.target.value)
|
|
111
|
+
// onBlur={this.preSetValidation}
|
|
125
112
|
,
|
|
126
113
|
placeholder: _i18next.default.t(`${_constants.NS_LIBS_CMDB_INSTANCES}:${_constants.K.TITLE_PLACEHOLDER}`)
|
|
127
114
|
})));
|
|
128
115
|
}
|
|
129
|
-
|
|
130
116
|
}
|
|
131
|
-
|
|
132
117
|
exports.AttributeFormControlUrl = AttributeFormControlUrl;
|
|
133
118
|
//# sourceMappingURL=AttributeFormControlUrl.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AttributeFormControlUrl.js","names":["AttributeFormControlUrl","Component","constructor","props","url","composeUrl","title","breakDownValue","value","pattern","arr","match","getFormattedUrl","reg","origin","window","location","test","onChange","render","readOnly","placeholder","i18n","t","NS_LIBS_CMDB_INSTANCES","K","LINK","e","handleUrlChange","target","LINK_PLACEHOLDER","TITLE","handleTitleChange","TITLE_PLACEHOLDER"],"sources":["../../../src/attribute-form-control-url/AttributeFormControlUrl.tsx"],"sourcesContent":["import { FormControl } from \"../model-attribute-form-control/ModelAttributeFormControl\";\nimport { Input } from \"antd\";\nimport i18n from \"i18next\";\nimport { NS_LIBS_CMDB_INSTANCES, K } from \"../i18n/constants\";\nimport React, { Component, ReactNode } from \"react\";\nimport \"./AttributeFormControlUrl.module.css\";\n\nexport interface AttributeFormControlUrlProps extends Partial<FormControl> {\n value: string;\n onChange: (value: string) => void;\n}\n\nexport class AttributeFormControlUrl extends Component<AttributeFormControlUrlProps> {\n private url: string;\n private title: string;\n\n constructor(props: AttributeFormControlUrlProps) {\n super(props);\n\n const { title, url } = AttributeFormControlUrl.breakDownValue(props.value);\n this.title = title;\n this.url = url;\n }\n\n static breakDownValue(value: string): { title: string; url: string } {\n const pattern = /^\\[(.*)\\]\\((.*)\\)$/;\n const arr = value && value.match(pattern);\n if (arr) {\n return {\n title: arr[1],\n url: AttributeFormControlUrl.getFormattedUrl(arr[2]),\n };\n }\n\n return {\n title: value,\n url: value,\n };\n }\n\n static getFormattedUrl(url: string): string {\n /* istanbul ignore if */\n if (url) {\n // const pattern = /^(http|https):\\/\\/.*$/;\n // // return pattern.test(url) ? url : \"http://\" + url;\n // const urlReg = /^((http|https):\\/\\/)?(([A-Za-z0-9]+-[A-Za-z0-9]+|[A-Za-z0-9]+)\\.)+([A-Za-z]+)[/\\?\\:]?.*|^((2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(2[0-4]\\d|25[0-5]|[01]?\\d\\d?)$/;\n // const reg = /^\\//\n // const origin = window.location.origin;\n // return pattern.test(url) ? url : urlReg.test(url) ? url : `${origin}${reg.test(url) ? url : '/' + url} `;\n const reg = /^\\//\n const origin = window.location.origin;\n return reg.test(url) ? `${origin}${url}` : url;\n }\n return \"\";\n }\n\n // preSetValidation = () => {\n // const url = AttributeFormControlUrl.getFormattedUrl(this.url);\n\n // if (this.url !== url) {\n // this.url = url;\n // this.composeUrl();\n // }\n // };\n\n /* istanbul ignore next */\n composeUrl(): void {\n const title = this.title ?? \"\";\n const url = AttributeFormControlUrl.getFormattedUrl(this.url);\n const value = url || title ? `[${title}](${url})` : \"\";\n this.props.onChange(value);\n }\n\n handleUrlChange = (url: string) => {\n this.url = url;\n this.composeUrl();\n };\n\n handleTitleChange = (title: string) => {\n this.title = title;\n this.composeUrl();\n };\n\n render(): ReactNode {\n const { readOnly, placeholder } = this.props;\n const { title, url } = this;\n\n return (\n <div>\n <div className=\"singleContainer\">\n <label className=\"presetTitle\">\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.LINK}`)}\n </label>\n <Input\n readOnly={readOnly}\n value={url}\n type=\"url\"\n onChange={(e) => this.handleUrlChange(e.target.value)}\n // onBlur={this.preSetValidation}\n placeholder={\n placeholder ||\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.LINK_PLACEHOLDER}`)\n }\n />\n </div>\n\n <div className=\"singleContainer\">\n <label className=\"presetTitle\">\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.TITLE}`)}\n </label>\n <Input\n defaultValue={title}\n type=\"text\"\n onChange={(e) => this.handleTitleChange(e.target.value)}\n // onBlur={this.preSetValidation}\n placeholder={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.TITLE_PLACEHOLDER}`\n )}\n />\n </div>\n </div>\n );\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"AttributeFormControlUrl.js","names":["AttributeFormControlUrl","Component","constructor","props","url","composeUrl","title","breakDownValue","value","pattern","arr","match","getFormattedUrl","reg","origin","window","location","test","onChange","render","readOnly","placeholder","i18n","t","NS_LIBS_CMDB_INSTANCES","K","LINK","e","handleUrlChange","target","LINK_PLACEHOLDER","TITLE","handleTitleChange","TITLE_PLACEHOLDER"],"sources":["../../../src/attribute-form-control-url/AttributeFormControlUrl.tsx"],"sourcesContent":["import { FormControl } from \"../model-attribute-form-control/ModelAttributeFormControl\";\nimport { Input } from \"antd\";\nimport i18n from \"i18next\";\nimport { NS_LIBS_CMDB_INSTANCES, K } from \"../i18n/constants\";\nimport React, { Component, ReactNode } from \"react\";\nimport \"./AttributeFormControlUrl.module.css\";\n\nexport interface AttributeFormControlUrlProps extends Partial<FormControl> {\n value: string;\n onChange: (value: string) => void;\n}\n\nexport class AttributeFormControlUrl extends Component<AttributeFormControlUrlProps> {\n private url: string;\n private title: string;\n\n constructor(props: AttributeFormControlUrlProps) {\n super(props);\n\n const { title, url } = AttributeFormControlUrl.breakDownValue(props.value);\n this.title = title;\n this.url = url;\n }\n\n static breakDownValue(value: string): { title: string; url: string } {\n const pattern = /^\\[(.*)\\]\\((.*)\\)$/;\n const arr = value && value.match(pattern);\n if (arr) {\n return {\n title: arr[1],\n url: AttributeFormControlUrl.getFormattedUrl(arr[2]),\n };\n }\n\n return {\n title: value,\n url: value,\n };\n }\n\n static getFormattedUrl(url: string): string {\n /* istanbul ignore if */\n if (url) {\n // const pattern = /^(http|https):\\/\\/.*$/;\n // // return pattern.test(url) ? url : \"http://\" + url;\n // const urlReg = /^((http|https):\\/\\/)?(([A-Za-z0-9]+-[A-Za-z0-9]+|[A-Za-z0-9]+)\\.)+([A-Za-z]+)[/\\?\\:]?.*|^((2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(2[0-4]\\d|25[0-5]|[01]?\\d\\d?)$/;\n // const reg = /^\\//\n // const origin = window.location.origin;\n // return pattern.test(url) ? url : urlReg.test(url) ? url : `${origin}${reg.test(url) ? url : '/' + url} `;\n const reg = /^\\//\n const origin = window.location.origin;\n return reg.test(url) ? `${origin}${url}` : url;\n }\n return \"\";\n }\n\n // preSetValidation = () => {\n // const url = AttributeFormControlUrl.getFormattedUrl(this.url);\n\n // if (this.url !== url) {\n // this.url = url;\n // this.composeUrl();\n // }\n // };\n\n /* istanbul ignore next */\n composeUrl(): void {\n const title = this.title ?? \"\";\n const url = AttributeFormControlUrl.getFormattedUrl(this.url);\n const value = url || title ? `[${title}](${url})` : \"\";\n this.props.onChange(value);\n }\n\n handleUrlChange = (url: string) => {\n this.url = url;\n this.composeUrl();\n };\n\n handleTitleChange = (title: string) => {\n this.title = title;\n this.composeUrl();\n };\n\n render(): ReactNode {\n const { readOnly, placeholder } = this.props;\n const { title, url } = this;\n\n return (\n <div>\n <div className=\"singleContainer\">\n <label className=\"presetTitle\">\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.LINK}`)}\n </label>\n <Input\n readOnly={readOnly}\n value={url}\n type=\"url\"\n onChange={(e) => this.handleUrlChange(e.target.value)}\n // onBlur={this.preSetValidation}\n placeholder={\n placeholder ||\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.LINK_PLACEHOLDER}`)\n }\n />\n </div>\n\n <div className=\"singleContainer\">\n <label className=\"presetTitle\">\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.TITLE}`)}\n </label>\n <Input\n defaultValue={title}\n type=\"text\"\n onChange={(e) => this.handleTitleChange(e.target.value)}\n // onBlur={this.preSetValidation}\n placeholder={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.TITLE_PLACEHOLDER}`\n )}\n />\n </div>\n </div>\n );\n }\n}\n"],"mappings":";;;;;;;;;AACA;AACA;AACA;AACA;AACA;AAOO,MAAMA,uBAAuB,SAASC,gBAAS,CAA+B;EAInFC,WAAW,CAACC,KAAmC,EAAE;IAC/C,KAAK,CAACA,KAAK,CAAC;IAAC;IAAA;IAAA,uDAwDIC,GAAW,IAAK;MACjC,IAAI,CAACA,GAAG,GAAGA,GAAG;MACd,IAAI,CAACC,UAAU,EAAE;IACnB,CAAC;IAAA,yDAEoBC,KAAa,IAAK;MACrC,IAAI,CAACA,KAAK,GAAGA,KAAK;MAClB,IAAI,CAACD,UAAU,EAAE;IACnB,CAAC;IA9DC,MAAM;MAAEC,KAAK,EAALA,MAAK;MAAEF,GAAG,EAAHA;IAAI,CAAC,GAAGJ,uBAAuB,CAACO,cAAc,CAACJ,KAAK,CAACK,KAAK,CAAC;IAC1E,IAAI,CAACF,KAAK,GAAGA,MAAK;IAClB,IAAI,CAACF,GAAG,GAAGA,IAAG;EAChB;EAEA,OAAOG,cAAc,CAACC,KAAa,EAAkC;IACnE,MAAMC,OAAO,GAAG,oBAAoB;IACpC,MAAMC,GAAG,GAAGF,KAAK,IAAIA,KAAK,CAACG,KAAK,CAACF,OAAO,CAAC;IACzC,IAAIC,GAAG,EAAE;MACP,OAAO;QACLJ,KAAK,EAAEI,GAAG,CAAC,CAAC,CAAC;QACbN,GAAG,EAAEJ,uBAAuB,CAACY,eAAe,CAACF,GAAG,CAAC,CAAC,CAAC;MACrD,CAAC;IACH;IAEA,OAAO;MACLJ,KAAK,EAAEE,KAAK;MACZJ,GAAG,EAAEI;IACP,CAAC;EACH;EAEA,OAAOI,eAAe,CAACR,GAAW,EAAU;IAC1C;IACA,IAAIA,GAAG,EAAE;MACP;MACA;MACA;MACA;MACA;MACA;MACA,MAAMS,GAAG,GAAG,KAAK;MACjB,MAAMC,MAAM,GAAGC,MAAM,CAACC,QAAQ,CAACF,MAAM;MACrC,OAAOD,GAAG,CAACI,IAAI,CAACb,GAAG,CAAC,GAAI,GAAEU,MAAO,GAAEV,GAAI,EAAC,GAAGA,GAAG;IAChD;IACA,OAAO,EAAE;EACX;;EAEA;EACA;;EAEA;EACA;EACA;EACA;EACA;;EAEA;EACAC,UAAU,GAAS;IAAA;IACjB,MAAMC,KAAK,kBAAG,IAAI,CAACA,KAAK,qDAAI,EAAE;IAC9B,MAAMF,GAAG,GAAGJ,uBAAuB,CAACY,eAAe,CAAC,IAAI,CAACR,GAAG,CAAC;IAC7D,MAAMI,KAAK,GAAGJ,GAAG,IAAIE,KAAK,GAAI,IAAGA,KAAM,KAAIF,GAAI,GAAE,GAAG,EAAE;IACtD,IAAI,CAACD,KAAK,CAACe,QAAQ,CAACV,KAAK,CAAC;EAC5B;EAYAW,MAAM,GAAc;IAClB,MAAM;MAAEC,QAAQ;MAAEC;IAAY,CAAC,GAAG,IAAI,CAAClB,KAAK;IAC5C,MAAM;MAAEG,KAAK;MAAEF;IAAI,CAAC,GAAG,IAAI;IAE3B,oBACE,uDACE;MAAK,SAAS,EAAC;IAAiB,gBAC9B;MAAO,SAAS,EAAC;IAAa,GAC3BkB,gBAAI,CAACC,CAAC,CAAE,GAAEC,iCAAuB,IAAGC,YAAC,CAACC,IAAK,EAAC,CAAC,CACxC,eACR,6BAAC,WAAK;MACJ,QAAQ,EAAEN,QAAS;MACnB,KAAK,EAAEhB,GAAI;MACX,IAAI,EAAC,KAAK;MACV,QAAQ,EAAGuB,CAAC,IAAK,IAAI,CAACC,eAAe,CAACD,CAAC,CAACE,MAAM,CAACrB,KAAK;MACpD;MAAA;MACA,WAAW,EACTa,WAAW,IACXC,gBAAI,CAACC,CAAC,CAAE,GAAEC,iCAAuB,IAAGC,YAAC,CAACK,gBAAiB,EAAC;IACzD,EACD,CACE,eAEN;MAAK,SAAS,EAAC;IAAiB,gBAC9B;MAAO,SAAS,EAAC;IAAa,GAC3BR,gBAAI,CAACC,CAAC,CAAE,GAAEC,iCAAuB,IAAGC,YAAC,CAACM,KAAM,EAAC,CAAC,CACzC,eACR,6BAAC,WAAK;MACJ,YAAY,EAAEzB,KAAM;MACpB,IAAI,EAAC,MAAM;MACX,QAAQ,EAAGqB,CAAC,IAAK,IAAI,CAACK,iBAAiB,CAACL,CAAC,CAACE,MAAM,CAACrB,KAAK;MACtD;MAAA;MACA,WAAW,EAAEc,gBAAI,CAACC,CAAC,CAChB,GAAEC,iCAAuB,IAAGC,YAAC,CAACQ,iBAAkB,EAAC;IAClD,EACF,CACE,CACF;EAEV;AACF;AAAC"}
|
|
@@ -1,35 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
|
|
5
4
|
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
6
|
-
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
8
|
exports.LegacyCmdbInstancesInputFormItem = exports.CmdbInstancesInputFormItem = void 0;
|
|
11
|
-
|
|
12
9
|
var _react = _interopRequireWildcard(require("react"));
|
|
13
|
-
|
|
14
10
|
var _antd = require("antd");
|
|
15
|
-
|
|
16
11
|
var _lodash = require("lodash");
|
|
17
|
-
|
|
18
12
|
var _InstanceListModal = require("../instance-list-modal/InstanceListModal");
|
|
19
|
-
|
|
20
13
|
var _cmdbUtils = require("@next-libs/cmdb-utils");
|
|
21
|
-
|
|
22
14
|
var _cmdbSdk = require("@next-sdk/cmdb-sdk");
|
|
23
|
-
|
|
24
15
|
var _reactI18next = require("react-i18next");
|
|
25
|
-
|
|
26
16
|
var _constants = require("../i18n/constants");
|
|
27
|
-
|
|
28
17
|
var _cmdbInstancesInputFormModule = _interopRequireDefault(require("./cmdb-instances-input-form.module.css"));
|
|
29
|
-
|
|
30
18
|
/* eslint-disable react-hooks/exhaustive-deps */
|
|
31
|
-
const separator = " ";
|
|
32
19
|
|
|
20
|
+
const separator = " ";
|
|
33
21
|
const LegacyCmdbInstancesInputFormItem = (props, ref) => {
|
|
34
22
|
const {
|
|
35
23
|
t
|
|
@@ -40,17 +28,14 @@ const LegacyCmdbInstancesInputFormItem = (props, ref) => {
|
|
|
40
28
|
} = (0, _react.useMemo)(() => {
|
|
41
29
|
const presetQuery = {};
|
|
42
30
|
const permission = [];
|
|
43
|
-
|
|
44
31
|
if (props.objectId === "HOST") {
|
|
45
32
|
if (props.checkAgentStatus) {
|
|
46
33
|
presetQuery._agentStatus = "正常";
|
|
47
34
|
}
|
|
48
|
-
|
|
49
35
|
if (props.checkPermission) {
|
|
50
36
|
permission.push("operate");
|
|
51
37
|
}
|
|
52
38
|
}
|
|
53
|
-
|
|
54
39
|
return {
|
|
55
40
|
presetQuery,
|
|
56
41
|
permission
|
|
@@ -58,7 +43,6 @@ const LegacyCmdbInstancesInputFormItem = (props, ref) => {
|
|
|
58
43
|
}, [props.objectId, props.checkAgentStatus, props.checkPermission]);
|
|
59
44
|
const fields = (0, _react.useMemo)(() => {
|
|
60
45
|
var _props$fields;
|
|
61
|
-
|
|
62
46
|
const fields = {};
|
|
63
47
|
(_props$fields = props.fields) === null || _props$fields === void 0 ? void 0 : _props$fields.forEach(field => {
|
|
64
48
|
fields[field] = true;
|
|
@@ -66,9 +50,7 @@ const LegacyCmdbInstancesInputFormItem = (props, ref) => {
|
|
|
66
50
|
return fields;
|
|
67
51
|
}, [props.fields]);
|
|
68
52
|
const objectData = (0, _cmdbUtils.modifyModelData)(props.objectMap[props.objectId]);
|
|
69
|
-
|
|
70
53
|
const fieldData = objectData.__fieldList.find(field => field.__id === props.fieldId);
|
|
71
|
-
|
|
72
54
|
const [visible, setVisible] = (0, _react.useState)(false);
|
|
73
55
|
const [selectedInstances, setSelectedInstances] = (0, _react.useState)({
|
|
74
56
|
valid: [],
|
|
@@ -83,7 +65,6 @@ const LegacyCmdbInstancesInputFormItem = (props, ref) => {
|
|
|
83
65
|
},
|
|
84
66
|
...presetQuery
|
|
85
67
|
}, ...(props.query ? props.query : [])] : undefined, [selectedInstances.valid, presetQuery, props.query]);
|
|
86
|
-
|
|
87
68
|
const checkSelectedInstances = async selectedInstances => {
|
|
88
69
|
if (selectedInstances) {
|
|
89
70
|
const instances = (await (0, _cmdbSdk.InstanceApi_postSearch)(props.objectId, {
|
|
@@ -108,10 +89,8 @@ const LegacyCmdbInstancesInputFormItem = (props, ref) => {
|
|
|
108
89
|
return selectedInstancesMap.true ? selectedInstancesMap.true : [];
|
|
109
90
|
}
|
|
110
91
|
};
|
|
111
|
-
|
|
112
92
|
const updateSelected = async instanceIds => {
|
|
113
93
|
let selectedInstances = [];
|
|
114
|
-
|
|
115
94
|
if (instanceIds.length) {
|
|
116
95
|
selectedInstances = (await (0, _cmdbSdk.InstanceApi_postSearch)(props.objectId, {
|
|
117
96
|
page: 1,
|
|
@@ -127,10 +106,8 @@ const LegacyCmdbInstancesInputFormItem = (props, ref) => {
|
|
|
127
106
|
}
|
|
128
107
|
})).list;
|
|
129
108
|
}
|
|
130
|
-
|
|
131
109
|
setInputValue(selectedInstances.map(instanceData => instanceData[props.fieldId]).join(separator));
|
|
132
110
|
let instances = selectedInstances;
|
|
133
|
-
|
|
134
111
|
if (selectedInstances.length) {
|
|
135
112
|
if (!props.checkDisabled) {
|
|
136
113
|
instances = await checkSelectedInstances(selectedInstances);
|
|
@@ -141,27 +118,21 @@ const LegacyCmdbInstancesInputFormItem = (props, ref) => {
|
|
|
141
118
|
invalid: []
|
|
142
119
|
});
|
|
143
120
|
}
|
|
144
|
-
|
|
145
121
|
return instances;
|
|
146
122
|
};
|
|
147
|
-
|
|
148
123
|
(0, _react.useEffect)(() => {
|
|
149
124
|
if (props.value) {
|
|
150
125
|
updateSelected(props.value);
|
|
151
|
-
}
|
|
152
|
-
|
|
126
|
+
}
|
|
127
|
+
// todo(ice): how formItem to change its value??????
|
|
153
128
|
}, []);
|
|
154
|
-
|
|
155
129
|
const handleChange = instances => {
|
|
156
130
|
var _props$onChange, _props$onChangeV;
|
|
157
|
-
|
|
158
131
|
(_props$onChange = props.onChange) === null || _props$onChange === void 0 ? void 0 : _props$onChange.call(props, instances.map(instance => instance.instanceId));
|
|
159
132
|
(_props$onChangeV = props.onChangeV2) === null || _props$onChangeV === void 0 ? void 0 : _props$onChangeV.call(props, instances);
|
|
160
133
|
};
|
|
161
|
-
|
|
162
134
|
const checkInputValue = async inputValue => {
|
|
163
135
|
const fieldValues = props.fieldId === "ip" ? inputValue.match(/\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b(?:\[[^[\],;\s]*\])?/g) : inputValue.split(separator);
|
|
164
|
-
|
|
165
136
|
if (fieldValues) {
|
|
166
137
|
const instances = (await (0, _cmdbSdk.InstanceApi_postSearch)(props.objectId, {
|
|
167
138
|
query: {
|
|
@@ -188,28 +159,22 @@ const LegacyCmdbInstancesInputFormItem = (props, ref) => {
|
|
|
188
159
|
handleChange(validSelectedInstances);
|
|
189
160
|
}
|
|
190
161
|
};
|
|
191
|
-
|
|
192
162
|
const openSelectInstancesModal = () => {
|
|
193
163
|
setVisible(true);
|
|
194
164
|
};
|
|
195
|
-
|
|
196
165
|
const closeSelectInstancesModal = () => {
|
|
197
166
|
setVisible(false);
|
|
198
167
|
};
|
|
199
|
-
|
|
200
168
|
const handleInstancesSelected = async selectedKeys => {
|
|
201
169
|
closeSelectInstancesModal();
|
|
202
170
|
const instances = await updateSelected(selectedKeys);
|
|
203
171
|
handleChange(instances);
|
|
204
172
|
};
|
|
205
|
-
|
|
206
173
|
const handleInputChanged = event => {
|
|
207
174
|
setInputValue(event.target.value);
|
|
208
175
|
};
|
|
209
|
-
|
|
210
176
|
const handleInputBlur = async event => {
|
|
211
177
|
const inputValue = event.target.value;
|
|
212
|
-
|
|
213
178
|
if (inputValue) {
|
|
214
179
|
if (!props.checkDisabled) {
|
|
215
180
|
await checkInputValue(inputValue);
|
|
@@ -241,13 +206,10 @@ const LegacyCmdbInstancesInputFormItem = (props, ref) => {
|
|
|
241
206
|
});
|
|
242
207
|
handleChange([]);
|
|
243
208
|
}
|
|
244
|
-
|
|
245
209
|
setInputFocused(false);
|
|
246
210
|
};
|
|
247
|
-
|
|
248
211
|
const closeInvalidFieldValuesModal = () => {
|
|
249
212
|
var _props$onChange2;
|
|
250
|
-
|
|
251
213
|
setSelectedInstances({
|
|
252
214
|
valid: selectedInstances.valid,
|
|
253
215
|
invalid: []
|
|
@@ -255,7 +217,6 @@ const LegacyCmdbInstancesInputFormItem = (props, ref) => {
|
|
|
255
217
|
setInputValue(selectedInstances.valid.map(instance => instance[props.fieldId]).join(separator));
|
|
256
218
|
(_props$onChange2 = props.onChange) === null || _props$onChange2 === void 0 ? void 0 : _props$onChange2.call(props, selectedInstances.valid.map(instance => instance.instanceId));
|
|
257
219
|
};
|
|
258
|
-
|
|
259
220
|
const text = props.selectFromText ? props.selectFromText : t(_constants.K.SELECT_FROM_CMDB);
|
|
260
221
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
261
222
|
ref: ref
|
|
@@ -336,7 +297,6 @@ const LegacyCmdbInstancesInputFormItem = (props, ref) => {
|
|
|
336
297
|
"data-testid": "preview-button"
|
|
337
298
|
}, t(_constants.K.VIEW_SPECIFIC_INSTANCES))));
|
|
338
299
|
};
|
|
339
|
-
|
|
340
300
|
exports.LegacyCmdbInstancesInputFormItem = LegacyCmdbInstancesInputFormItem;
|
|
341
301
|
const CmdbInstancesInputFormItem = /*#__PURE__*/(0, _react.forwardRef)(LegacyCmdbInstancesInputFormItem);
|
|
342
302
|
exports.CmdbInstancesInputFormItem = CmdbInstancesInputFormItem;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CmdbInstancesInputFormItem.js","names":["separator","LegacyCmdbInstancesInputFormItem","props","ref","t","useTranslation","NS_LIBS_CMDB_INSTANCES","presetQuery","permission","useMemo","objectId","checkAgentStatus","_agentStatus","checkPermission","push","fields","forEach","field","objectData","modifyModelData","objectMap","fieldData","__fieldList","find","__id","fieldId","visible","setVisible","useState","selectedInstances","setSelectedInstances","valid","invalid","inputValue","setInputValue","inputFocused","setInputFocused","previewVisible","setPreviewVisible","selectedInstancesQuery","previewEnabled","length","instanceId","$in","map","instance","query","undefined","checkSelectedInstances","instances","InstanceApi_postSearch","list","instanceIdSet","Set","selectedInstancesMap","groupBy","selectedInstance","has","true","false","invalidSelectedInstance","updateSelected","instanceIds","page","page_size","instanceData","join","checkDisabled","useEffect","value","handleChange","onChange","onChangeV2","checkInputValue","fieldValues","match","split","$and","validSelectedInstances","filter","includes","validFieldValues","invalidFieldValues","fieldValue","openSelectInstancesModal","closeSelectInstancesModal","handleInstancesSelected","selectedKeys","handleInputChanged","event","target","handleInputBlur","closeInvalidFieldValuesModal","text","selectFromText","K","SELECT_FROM_CMDB","TIP","DELETE","INVALID_OR_FORBIDDEN_IPS","INVALID","name","fieldIds","singleSelect","defaultQuery","pageSize","pageSizeOptions","showSizeChanger","style","cmdbInstancesInputFormWrapper","fieldInput","allowClear","inputDisabled","modalButton","addButtonDisabled","VIEW_SPECIFIC_INSTANCES","CmdbInstancesInputFormItem","forwardRef"],"sources":["../../../src/cmdb-instances-input-form/CmdbInstancesInputFormItem.tsx"],"sourcesContent":["/* eslint-disable react-hooks/exhaustive-deps */\n\nimport React, { forwardRef, useState, useEffect, useMemo } from \"react\";\nimport { Input, Button, Modal } from \"antd\";\nimport { groupBy } from \"lodash\";\n\nimport { InstanceListModal } from \"../instance-list-modal/InstanceListModal\";\nimport { modifyModelData, Query } from \"@next-libs/cmdb-utils\";\nimport { CmdbModels, InstanceApi_postSearch } from \"@next-sdk/cmdb-sdk\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { NS_LIBS_CMDB_INSTANCES, K } from \"../i18n/constants\";\n\nimport style from \"./cmdb-instances-input-form.module.css\";\n\nconst separator = \" \";\n\nexport interface CmdbInstancesInputFormItemProps {\n selectFromText?: string;\n objectMap?: { [objectId: string]: Partial<CmdbModels.ModelCmdbObject> };\n objectId?: string;\n fieldId?: string;\n fields?: string[];\n singleSelect?: boolean;\n inputDisabled?: boolean;\n checkDisabled?: boolean;\n checkAgentStatus?: boolean;\n checkPermission?: boolean;\n selectedInstanceIds?: string[];\n value?: string[];\n children?: React.ReactNode;\n query?: { [fieldId: string]: any }[];\n onChange?: (value: string[]) => void;\n onChangeV2?: (value: any[]) => void;\n allowClear?: boolean;\n defaultQuery?: { [fieldId: string]: any }[];\n addButtonDisabled?: boolean;\n previewEnabled?: boolean;\n pageSize?: number;\n pageSizeOptions?: string[];\n showSizeChanger?: boolean;\n}\n\nexport const LegacyCmdbInstancesInputFormItem = (\n props: CmdbInstancesInputFormItemProps,\n ref: React.Ref<HTMLDivElement>\n): React.ReactElement => {\n const { t } = useTranslation(NS_LIBS_CMDB_INSTANCES);\n\n const { presetQuery, permission } = useMemo(() => {\n const presetQuery = {} as any;\n const permission: string[] = [];\n\n if (props.objectId === \"HOST\") {\n if (props.checkAgentStatus) {\n presetQuery._agentStatus = \"正常\";\n }\n if (props.checkPermission) {\n permission.push(\"operate\");\n }\n }\n\n return { presetQuery, permission };\n }, [props.objectId, props.checkAgentStatus, props.checkPermission]);\n const fields = useMemo(() => {\n const fields: Record<string, boolean> = {};\n\n props.fields?.forEach((field) => {\n fields[field] = true;\n });\n\n return fields;\n }, [props.fields]);\n\n const objectData = modifyModelData(props.objectMap[props.objectId]);\n const fieldData = objectData.__fieldList.find(\n (field) => field.__id === props.fieldId\n );\n\n const [visible, setVisible] = useState(false);\n const [selectedInstances, setSelectedInstances] = useState({\n valid: [],\n invalid: [],\n });\n const [inputValue, setInputValue] = useState(\"\");\n const [inputFocused, setInputFocused] = useState(false);\n const [previewVisible, setPreviewVisible] = useState(false);\n const selectedInstancesQuery = useMemo<Query[]>(\n () =>\n props.previewEnabled && selectedInstances.valid.length > 0\n ? [\n {\n instanceId: {\n $in: selectedInstances.valid.map(\n (instance) => instance.instanceId\n ),\n },\n ...presetQuery,\n },\n ...(props.query ? props.query : []),\n ]\n : undefined,\n [selectedInstances.valid, presetQuery, props.query]\n );\n\n const checkSelectedInstances = async (\n selectedInstances: any[]\n ): Promise<string[]> => {\n if (selectedInstances) {\n const instances = (\n await InstanceApi_postSearch(props.objectId, {\n query: {\n instanceId: {\n $in: selectedInstances.map((instance) => instance.instanceId),\n },\n ...presetQuery,\n },\n permission,\n fields: fields || {\n instanceId: true,\n [props.fieldId]: true,\n },\n })\n ).list;\n const instanceIdSet = new Set(\n instances.map((instance) => instance.instanceId)\n );\n\n const selectedInstancesMap = groupBy(\n selectedInstances,\n (selectedInstance) => instanceIdSet.has(selectedInstance.instanceId)\n );\n\n setSelectedInstances({\n valid: selectedInstancesMap.true || [],\n invalid: (selectedInstancesMap.false || []).map(\n (invalidSelectedInstance) => invalidSelectedInstance[props.fieldId]\n ),\n });\n\n return selectedInstancesMap.true ? selectedInstancesMap.true : [];\n }\n };\n\n const updateSelected = async (instanceIds: string[]): Promise<any[]> => {\n let selectedInstances: any[] = [];\n if (instanceIds.length) {\n selectedInstances = (\n await InstanceApi_postSearch(props.objectId, {\n page: 1,\n page_size: instanceIds.length,\n query: {\n instanceId: {\n $in: instanceIds,\n },\n },\n fields: fields || {\n instanceId: true,\n [props.fieldId]: true,\n },\n })\n ).list;\n }\n\n setInputValue(\n selectedInstances\n .map((instanceData) => instanceData[props.fieldId])\n .join(separator)\n );\n\n let instances = selectedInstances;\n if (selectedInstances.length) {\n if (!props.checkDisabled) {\n instances = await checkSelectedInstances(selectedInstances);\n }\n } else {\n setSelectedInstances({ valid: [], invalid: [] });\n }\n return instances;\n };\n\n useEffect(() => {\n if (props.value) {\n updateSelected(props.value);\n }\n // todo(ice): how formItem to change its value??????\n }, []);\n\n const handleChange = (instances: any[]): void => {\n props.onChange?.(instances.map((instance) => instance.instanceId));\n props.onChangeV2?.(instances);\n };\n\n const checkInputValue = async (inputValue: string): Promise<void> => {\n const fieldValues =\n props.fieldId === \"ip\"\n ? inputValue.match(\n /\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b(?:\\[[^[\\],;\\s]*\\])?/g\n )\n : inputValue.split(separator);\n\n if (fieldValues) {\n const instances = (\n await InstanceApi_postSearch(props.objectId, {\n query: {\n $and: [\n {\n [props.fieldId]: {\n $in: fieldValues,\n },\n ...presetQuery,\n },\n ...(props.query ? props.query : []),\n ],\n },\n permission,\n fields: fields || {\n instanceId: true,\n [props.fieldId]: true,\n },\n })\n ).list;\n\n const validSelectedInstances = instances.filter((instance) =>\n fieldValues.includes(instance[props.fieldId])\n );\n\n const validFieldValues = validSelectedInstances.map(\n (instance) => instance[props.fieldId]\n );\n const invalidFieldValues = fieldValues.filter(\n (fieldValue) => !validFieldValues.includes(fieldValue)\n );\n\n setSelectedInstances({\n valid: validSelectedInstances || [],\n invalid: invalidFieldValues || [],\n });\n\n handleChange(validSelectedInstances);\n }\n };\n\n const openSelectInstancesModal = (): void => {\n setVisible(true);\n };\n\n const closeSelectInstancesModal = (): void => {\n setVisible(false);\n };\n\n const handleInstancesSelected = async (\n selectedKeys: string[]\n ): Promise<void> => {\n closeSelectInstancesModal();\n\n const instances = await updateSelected(selectedKeys);\n\n handleChange(instances);\n };\n\n const handleInputChanged = (event: { target: { value: string } }): void => {\n setInputValue(event.target.value);\n };\n\n const handleInputBlur = async (event: {\n target: { value: string };\n }): Promise<void> => {\n const inputValue = event.target.value;\n if (inputValue) {\n if (!props.checkDisabled) {\n await checkInputValue(inputValue);\n } else {\n const fieldValues =\n props.fieldId === \"ip\"\n ? inputValue.match(\n /\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b(?:\\[[^[\\],;\\s]*\\])?/g\n )\n : inputValue.split(separator);\n\n const instances = (\n await InstanceApi_postSearch(props.objectId, {\n query: {\n $and: [\n {\n [props.fieldId]: {\n $in: fieldValues,\n },\n },\n ...(props.query ? props.query : []),\n ],\n },\n fields: fields || {\n instanceId: true,\n [props.fieldId]: true,\n },\n })\n ).list;\n\n setSelectedInstances({\n valid: instances || [],\n invalid: [],\n });\n\n handleChange(instances);\n }\n } else {\n setSelectedInstances({\n valid: [],\n invalid: [],\n });\n\n handleChange([]);\n }\n\n setInputFocused(false);\n };\n\n const closeInvalidFieldValuesModal = (): void => {\n setSelectedInstances({\n valid: selectedInstances.valid,\n invalid: [],\n });\n setInputValue(\n selectedInstances.valid\n .map((instance) => instance[props.fieldId])\n .join(separator)\n );\n props.onChange?.(\n selectedInstances.valid.map((instance) => instance.instanceId)\n );\n };\n\n const text = props.selectFromText\n ? props.selectFromText\n : t(K.SELECT_FROM_CMDB);\n\n return (\n <div ref={ref}>\n <Modal\n title={t(K.TIP)}\n visible={selectedInstances.invalid.length !== 0}\n closable={false}\n maskClosable={false}\n footer={[\n <Button\n type=\"primary\"\n key=\"delete\"\n onClick={closeInvalidFieldValuesModal}\n >\n {t(K.DELETE)}\n </Button>,\n ]}\n onCancel={closeInvalidFieldValuesModal}\n >\n {props.objectId === \"HOST\" && props.fieldId === \"ip\"\n ? `${t(K.INVALID_OR_FORBIDDEN_IPS)}${selectedInstances.invalid.join(\n \", \"\n )}`\n : `${t(K.INVALID)}${fieldData.name}:${selectedInstances.invalid.join(\n \", \"\n )}`}\n </Modal>\n <InstanceListModal\n objectMap={props.objectMap}\n objectId={props.objectId}\n visible={visible}\n title={text}\n aq={props.query}\n presetConfigs={{ query: presetQuery, fieldIds: props.fields }}\n permission={permission}\n selectedRowKeys={selectedInstances.valid.map(\n (instance) => instance.instanceId\n )}\n onSelected={handleInstancesSelected}\n singleSelect={props.singleSelect}\n onCancel={closeSelectInstancesModal}\n defaultQuery={props.defaultQuery}\n pageSize={props.pageSize}\n pageSizeOptions={props.pageSizeOptions}\n showSizeChanger={props.showSizeChanger}\n data-testid=\"select-modal\"\n />\n <div className={style.cmdbInstancesInputFormWrapper}>\n <Input\n data-testid=\"field-value-input\"\n className={style.fieldInput}\n onChange={handleInputChanged}\n value={inputValue}\n onFocus={() => setInputFocused(true)}\n onBlur={handleInputBlur}\n allowClear={props.allowClear}\n disabled={props.inputDisabled}\n />\n <Button\n className={style.modalButton}\n onClick={openSelectInstancesModal}\n disabled={props.addButtonDisabled}\n >\n {text}\n </Button>\n </div>\n {props.previewEnabled && (\n <>\n <InstanceListModal\n objectMap={props.objectMap}\n objectId={props.objectId}\n visible={previewVisible}\n title={t(K.VIEW_SPECIFIC_INSTANCES)}\n aq={selectedInstancesQuery}\n presetConfigs={{ query: presetQuery, fieldIds: props.fields }}\n permission={permission}\n onCancel={() => setPreviewVisible(false)}\n defaultQuery={props.defaultQuery}\n searchDisabled\n advancedSearchDisabled\n aliveHostsDisabled\n relatedToMeDisabled\n moreButtonsDisabled\n selectDisabled\n pageSize={props.pageSize}\n pageSizeOptions={props.pageSizeOptions}\n showSizeChanger={props.showSizeChanger}\n data-testid=\"preview-modal\"\n />\n <Button\n type=\"link\"\n size=\"small\"\n disabled={!selectedInstancesQuery || inputFocused}\n onClick={() => setPreviewVisible(true)}\n data-testid=\"preview-button\"\n >\n {t(K.VIEW_SPECIFIC_INSTANCES)}\n </Button>\n </>\n )}\n </div>\n );\n};\n\nexport const CmdbInstancesInputFormItem = forwardRef<\n HTMLDivElement,\n CmdbInstancesInputFormItemProps\n>(LegacyCmdbInstancesInputFormItem);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CmdbInstancesInputFormItem.js","names":["separator","LegacyCmdbInstancesInputFormItem","props","ref","t","useTranslation","NS_LIBS_CMDB_INSTANCES","presetQuery","permission","useMemo","objectId","checkAgentStatus","_agentStatus","checkPermission","push","fields","forEach","field","objectData","modifyModelData","objectMap","fieldData","__fieldList","find","__id","fieldId","visible","setVisible","useState","selectedInstances","setSelectedInstances","valid","invalid","inputValue","setInputValue","inputFocused","setInputFocused","previewVisible","setPreviewVisible","selectedInstancesQuery","previewEnabled","length","instanceId","$in","map","instance","query","undefined","checkSelectedInstances","instances","InstanceApi_postSearch","list","instanceIdSet","Set","selectedInstancesMap","groupBy","selectedInstance","has","true","false","invalidSelectedInstance","updateSelected","instanceIds","page","page_size","instanceData","join","checkDisabled","useEffect","value","handleChange","onChange","onChangeV2","checkInputValue","fieldValues","match","split","$and","validSelectedInstances","filter","includes","validFieldValues","invalidFieldValues","fieldValue","openSelectInstancesModal","closeSelectInstancesModal","handleInstancesSelected","selectedKeys","handleInputChanged","event","target","handleInputBlur","closeInvalidFieldValuesModal","text","selectFromText","K","SELECT_FROM_CMDB","TIP","DELETE","INVALID_OR_FORBIDDEN_IPS","INVALID","name","fieldIds","singleSelect","defaultQuery","pageSize","pageSizeOptions","showSizeChanger","style","cmdbInstancesInputFormWrapper","fieldInput","allowClear","inputDisabled","modalButton","addButtonDisabled","VIEW_SPECIFIC_INSTANCES","CmdbInstancesInputFormItem","forwardRef"],"sources":["../../../src/cmdb-instances-input-form/CmdbInstancesInputFormItem.tsx"],"sourcesContent":["/* eslint-disable react-hooks/exhaustive-deps */\n\nimport React, { forwardRef, useState, useEffect, useMemo } from \"react\";\nimport { Input, Button, Modal } from \"antd\";\nimport { groupBy } from \"lodash\";\n\nimport { InstanceListModal } from \"../instance-list-modal/InstanceListModal\";\nimport { modifyModelData, Query } from \"@next-libs/cmdb-utils\";\nimport { CmdbModels, InstanceApi_postSearch } from \"@next-sdk/cmdb-sdk\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { NS_LIBS_CMDB_INSTANCES, K } from \"../i18n/constants\";\n\nimport style from \"./cmdb-instances-input-form.module.css\";\n\nconst separator = \" \";\n\nexport interface CmdbInstancesInputFormItemProps {\n selectFromText?: string;\n objectMap?: { [objectId: string]: Partial<CmdbModels.ModelCmdbObject> };\n objectId?: string;\n fieldId?: string;\n fields?: string[];\n singleSelect?: boolean;\n inputDisabled?: boolean;\n checkDisabled?: boolean;\n checkAgentStatus?: boolean;\n checkPermission?: boolean;\n selectedInstanceIds?: string[];\n value?: string[];\n children?: React.ReactNode;\n query?: { [fieldId: string]: any }[];\n onChange?: (value: string[]) => void;\n onChangeV2?: (value: any[]) => void;\n allowClear?: boolean;\n defaultQuery?: { [fieldId: string]: any }[];\n addButtonDisabled?: boolean;\n previewEnabled?: boolean;\n pageSize?: number;\n pageSizeOptions?: string[];\n showSizeChanger?: boolean;\n}\n\nexport const LegacyCmdbInstancesInputFormItem = (\n props: CmdbInstancesInputFormItemProps,\n ref: React.Ref<HTMLDivElement>\n): React.ReactElement => {\n const { t } = useTranslation(NS_LIBS_CMDB_INSTANCES);\n\n const { presetQuery, permission } = useMemo(() => {\n const presetQuery = {} as any;\n const permission: string[] = [];\n\n if (props.objectId === \"HOST\") {\n if (props.checkAgentStatus) {\n presetQuery._agentStatus = \"正常\";\n }\n if (props.checkPermission) {\n permission.push(\"operate\");\n }\n }\n\n return { presetQuery, permission };\n }, [props.objectId, props.checkAgentStatus, props.checkPermission]);\n const fields = useMemo(() => {\n const fields: Record<string, boolean> = {};\n\n props.fields?.forEach((field) => {\n fields[field] = true;\n });\n\n return fields;\n }, [props.fields]);\n\n const objectData = modifyModelData(props.objectMap[props.objectId]);\n const fieldData = objectData.__fieldList.find(\n (field) => field.__id === props.fieldId\n );\n\n const [visible, setVisible] = useState(false);\n const [selectedInstances, setSelectedInstances] = useState({\n valid: [],\n invalid: [],\n });\n const [inputValue, setInputValue] = useState(\"\");\n const [inputFocused, setInputFocused] = useState(false);\n const [previewVisible, setPreviewVisible] = useState(false);\n const selectedInstancesQuery = useMemo<Query[]>(\n () =>\n props.previewEnabled && selectedInstances.valid.length > 0\n ? [\n {\n instanceId: {\n $in: selectedInstances.valid.map(\n (instance) => instance.instanceId\n ),\n },\n ...presetQuery,\n },\n ...(props.query ? props.query : []),\n ]\n : undefined,\n [selectedInstances.valid, presetQuery, props.query]\n );\n\n const checkSelectedInstances = async (\n selectedInstances: any[]\n ): Promise<string[]> => {\n if (selectedInstances) {\n const instances = (\n await InstanceApi_postSearch(props.objectId, {\n query: {\n instanceId: {\n $in: selectedInstances.map((instance) => instance.instanceId),\n },\n ...presetQuery,\n },\n permission,\n fields: fields || {\n instanceId: true,\n [props.fieldId]: true,\n },\n })\n ).list;\n const instanceIdSet = new Set(\n instances.map((instance) => instance.instanceId)\n );\n\n const selectedInstancesMap = groupBy(\n selectedInstances,\n (selectedInstance) => instanceIdSet.has(selectedInstance.instanceId)\n );\n\n setSelectedInstances({\n valid: selectedInstancesMap.true || [],\n invalid: (selectedInstancesMap.false || []).map(\n (invalidSelectedInstance) => invalidSelectedInstance[props.fieldId]\n ),\n });\n\n return selectedInstancesMap.true ? selectedInstancesMap.true : [];\n }\n };\n\n const updateSelected = async (instanceIds: string[]): Promise<any[]> => {\n let selectedInstances: any[] = [];\n if (instanceIds.length) {\n selectedInstances = (\n await InstanceApi_postSearch(props.objectId, {\n page: 1,\n page_size: instanceIds.length,\n query: {\n instanceId: {\n $in: instanceIds,\n },\n },\n fields: fields || {\n instanceId: true,\n [props.fieldId]: true,\n },\n })\n ).list;\n }\n\n setInputValue(\n selectedInstances\n .map((instanceData) => instanceData[props.fieldId])\n .join(separator)\n );\n\n let instances = selectedInstances;\n if (selectedInstances.length) {\n if (!props.checkDisabled) {\n instances = await checkSelectedInstances(selectedInstances);\n }\n } else {\n setSelectedInstances({ valid: [], invalid: [] });\n }\n return instances;\n };\n\n useEffect(() => {\n if (props.value) {\n updateSelected(props.value);\n }\n // todo(ice): how formItem to change its value??????\n }, []);\n\n const handleChange = (instances: any[]): void => {\n props.onChange?.(instances.map((instance) => instance.instanceId));\n props.onChangeV2?.(instances);\n };\n\n const checkInputValue = async (inputValue: string): Promise<void> => {\n const fieldValues =\n props.fieldId === \"ip\"\n ? inputValue.match(\n /\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b(?:\\[[^[\\],;\\s]*\\])?/g\n )\n : inputValue.split(separator);\n\n if (fieldValues) {\n const instances = (\n await InstanceApi_postSearch(props.objectId, {\n query: {\n $and: [\n {\n [props.fieldId]: {\n $in: fieldValues,\n },\n ...presetQuery,\n },\n ...(props.query ? props.query : []),\n ],\n },\n permission,\n fields: fields || {\n instanceId: true,\n [props.fieldId]: true,\n },\n })\n ).list;\n\n const validSelectedInstances = instances.filter((instance) =>\n fieldValues.includes(instance[props.fieldId])\n );\n\n const validFieldValues = validSelectedInstances.map(\n (instance) => instance[props.fieldId]\n );\n const invalidFieldValues = fieldValues.filter(\n (fieldValue) => !validFieldValues.includes(fieldValue)\n );\n\n setSelectedInstances({\n valid: validSelectedInstances || [],\n invalid: invalidFieldValues || [],\n });\n\n handleChange(validSelectedInstances);\n }\n };\n\n const openSelectInstancesModal = (): void => {\n setVisible(true);\n };\n\n const closeSelectInstancesModal = (): void => {\n setVisible(false);\n };\n\n const handleInstancesSelected = async (\n selectedKeys: string[]\n ): Promise<void> => {\n closeSelectInstancesModal();\n\n const instances = await updateSelected(selectedKeys);\n\n handleChange(instances);\n };\n\n const handleInputChanged = (event: { target: { value: string } }): void => {\n setInputValue(event.target.value);\n };\n\n const handleInputBlur = async (event: {\n target: { value: string };\n }): Promise<void> => {\n const inputValue = event.target.value;\n if (inputValue) {\n if (!props.checkDisabled) {\n await checkInputValue(inputValue);\n } else {\n const fieldValues =\n props.fieldId === \"ip\"\n ? inputValue.match(\n /\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b(?:\\[[^[\\],;\\s]*\\])?/g\n )\n : inputValue.split(separator);\n\n const instances = (\n await InstanceApi_postSearch(props.objectId, {\n query: {\n $and: [\n {\n [props.fieldId]: {\n $in: fieldValues,\n },\n },\n ...(props.query ? props.query : []),\n ],\n },\n fields: fields || {\n instanceId: true,\n [props.fieldId]: true,\n },\n })\n ).list;\n\n setSelectedInstances({\n valid: instances || [],\n invalid: [],\n });\n\n handleChange(instances);\n }\n } else {\n setSelectedInstances({\n valid: [],\n invalid: [],\n });\n\n handleChange([]);\n }\n\n setInputFocused(false);\n };\n\n const closeInvalidFieldValuesModal = (): void => {\n setSelectedInstances({\n valid: selectedInstances.valid,\n invalid: [],\n });\n setInputValue(\n selectedInstances.valid\n .map((instance) => instance[props.fieldId])\n .join(separator)\n );\n props.onChange?.(\n selectedInstances.valid.map((instance) => instance.instanceId)\n );\n };\n\n const text = props.selectFromText\n ? props.selectFromText\n : t(K.SELECT_FROM_CMDB);\n\n return (\n <div ref={ref}>\n <Modal\n title={t(K.TIP)}\n visible={selectedInstances.invalid.length !== 0}\n closable={false}\n maskClosable={false}\n footer={[\n <Button\n type=\"primary\"\n key=\"delete\"\n onClick={closeInvalidFieldValuesModal}\n >\n {t(K.DELETE)}\n </Button>,\n ]}\n onCancel={closeInvalidFieldValuesModal}\n >\n {props.objectId === \"HOST\" && props.fieldId === \"ip\"\n ? `${t(K.INVALID_OR_FORBIDDEN_IPS)}${selectedInstances.invalid.join(\n \", \"\n )}`\n : `${t(K.INVALID)}${fieldData.name}:${selectedInstances.invalid.join(\n \", \"\n )}`}\n </Modal>\n <InstanceListModal\n objectMap={props.objectMap}\n objectId={props.objectId}\n visible={visible}\n title={text}\n aq={props.query}\n presetConfigs={{ query: presetQuery, fieldIds: props.fields }}\n permission={permission}\n selectedRowKeys={selectedInstances.valid.map(\n (instance) => instance.instanceId\n )}\n onSelected={handleInstancesSelected}\n singleSelect={props.singleSelect}\n onCancel={closeSelectInstancesModal}\n defaultQuery={props.defaultQuery}\n pageSize={props.pageSize}\n pageSizeOptions={props.pageSizeOptions}\n showSizeChanger={props.showSizeChanger}\n data-testid=\"select-modal\"\n />\n <div className={style.cmdbInstancesInputFormWrapper}>\n <Input\n data-testid=\"field-value-input\"\n className={style.fieldInput}\n onChange={handleInputChanged}\n value={inputValue}\n onFocus={() => setInputFocused(true)}\n onBlur={handleInputBlur}\n allowClear={props.allowClear}\n disabled={props.inputDisabled}\n />\n <Button\n className={style.modalButton}\n onClick={openSelectInstancesModal}\n disabled={props.addButtonDisabled}\n >\n {text}\n </Button>\n </div>\n {props.previewEnabled && (\n <>\n <InstanceListModal\n objectMap={props.objectMap}\n objectId={props.objectId}\n visible={previewVisible}\n title={t(K.VIEW_SPECIFIC_INSTANCES)}\n aq={selectedInstancesQuery}\n presetConfigs={{ query: presetQuery, fieldIds: props.fields }}\n permission={permission}\n onCancel={() => setPreviewVisible(false)}\n defaultQuery={props.defaultQuery}\n searchDisabled\n advancedSearchDisabled\n aliveHostsDisabled\n relatedToMeDisabled\n moreButtonsDisabled\n selectDisabled\n pageSize={props.pageSize}\n pageSizeOptions={props.pageSizeOptions}\n showSizeChanger={props.showSizeChanger}\n data-testid=\"preview-modal\"\n />\n <Button\n type=\"link\"\n size=\"small\"\n disabled={!selectedInstancesQuery || inputFocused}\n onClick={() => setPreviewVisible(true)}\n data-testid=\"preview-button\"\n >\n {t(K.VIEW_SPECIFIC_INSTANCES)}\n </Button>\n </>\n )}\n </div>\n );\n};\n\nexport const CmdbInstancesInputFormItem = forwardRef<\n HTMLDivElement,\n CmdbInstancesInputFormItemProps\n>(LegacyCmdbInstancesInputFormItem);\n"],"mappings":"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"}
|