@next-libs/cmdb-instances 6.48.0 → 6.49.1
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 +3 -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 +3 -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,7 +1,7 @@
|
|
|
1
1
|
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
2
2
|
import _objectSpread from "@babel/runtime/helpers/objectSpread2";
|
|
3
|
-
|
|
4
3
|
/* eslint-disable react-hooks/exhaustive-deps */
|
|
4
|
+
|
|
5
5
|
import React, { forwardRef, useState, useEffect, useMemo } from "react";
|
|
6
6
|
import { Input, Button, Modal } from "antd";
|
|
7
7
|
import { groupBy } from "lodash";
|
|
@@ -22,17 +22,14 @@ export var LegacyCmdbInstancesInputFormItem = (props, ref) => {
|
|
|
22
22
|
} = useMemo(() => {
|
|
23
23
|
var presetQuery = {};
|
|
24
24
|
var permission = [];
|
|
25
|
-
|
|
26
25
|
if (props.objectId === "HOST") {
|
|
27
26
|
if (props.checkAgentStatus) {
|
|
28
27
|
presetQuery._agentStatus = "正常";
|
|
29
28
|
}
|
|
30
|
-
|
|
31
29
|
if (props.checkPermission) {
|
|
32
30
|
permission.push("operate");
|
|
33
31
|
}
|
|
34
32
|
}
|
|
35
|
-
|
|
36
33
|
return {
|
|
37
34
|
presetQuery,
|
|
38
35
|
permission
|
|
@@ -40,7 +37,6 @@ export var LegacyCmdbInstancesInputFormItem = (props, ref) => {
|
|
|
40
37
|
}, [props.objectId, props.checkAgentStatus, props.checkPermission]);
|
|
41
38
|
var fields = useMemo(() => {
|
|
42
39
|
var _props$fields;
|
|
43
|
-
|
|
44
40
|
var fields = {};
|
|
45
41
|
(_props$fields = props.fields) === null || _props$fields === void 0 ? void 0 : _props$fields.forEach(field => {
|
|
46
42
|
fields[field] = true;
|
|
@@ -48,9 +44,7 @@ export var LegacyCmdbInstancesInputFormItem = (props, ref) => {
|
|
|
48
44
|
return fields;
|
|
49
45
|
}, [props.fields]);
|
|
50
46
|
var objectData = modifyModelData(props.objectMap[props.objectId]);
|
|
51
|
-
|
|
52
47
|
var fieldData = objectData.__fieldList.find(field => field.__id === props.fieldId);
|
|
53
|
-
|
|
54
48
|
var [visible, setVisible] = useState(false);
|
|
55
49
|
var [selectedInstances, setSelectedInstances] = useState({
|
|
56
50
|
valid: [],
|
|
@@ -64,7 +58,6 @@ export var LegacyCmdbInstancesInputFormItem = (props, ref) => {
|
|
|
64
58
|
$in: selectedInstances.valid.map(instance => instance.instanceId)
|
|
65
59
|
}
|
|
66
60
|
}, presetQuery), ...(props.query ? props.query : [])] : undefined, [selectedInstances.valid, presetQuery, props.query]);
|
|
67
|
-
|
|
68
61
|
var checkSelectedInstances = /*#__PURE__*/function () {
|
|
69
62
|
var _ref = _asyncToGenerator(function* (selectedInstances) {
|
|
70
63
|
if (selectedInstances) {
|
|
@@ -89,16 +82,13 @@ export var LegacyCmdbInstancesInputFormItem = (props, ref) => {
|
|
|
89
82
|
return selectedInstancesMap.true ? selectedInstancesMap.true : [];
|
|
90
83
|
}
|
|
91
84
|
});
|
|
92
|
-
|
|
93
85
|
return function checkSelectedInstances(_x) {
|
|
94
86
|
return _ref.apply(this, arguments);
|
|
95
87
|
};
|
|
96
88
|
}();
|
|
97
|
-
|
|
98
89
|
var updateSelected = /*#__PURE__*/function () {
|
|
99
90
|
var _ref2 = _asyncToGenerator(function* (instanceIds) {
|
|
100
91
|
var selectedInstances = [];
|
|
101
|
-
|
|
102
92
|
if (instanceIds.length) {
|
|
103
93
|
selectedInstances = (yield InstanceApi_postSearch(props.objectId, {
|
|
104
94
|
page: 1,
|
|
@@ -114,10 +104,8 @@ export var LegacyCmdbInstancesInputFormItem = (props, ref) => {
|
|
|
114
104
|
}
|
|
115
105
|
})).list;
|
|
116
106
|
}
|
|
117
|
-
|
|
118
107
|
setInputValue(selectedInstances.map(instanceData => instanceData[props.fieldId]).join(separator));
|
|
119
108
|
var instances = selectedInstances;
|
|
120
|
-
|
|
121
109
|
if (selectedInstances.length) {
|
|
122
110
|
if (!props.checkDisabled) {
|
|
123
111
|
instances = yield checkSelectedInstances(selectedInstances);
|
|
@@ -128,33 +116,26 @@ export var LegacyCmdbInstancesInputFormItem = (props, ref) => {
|
|
|
128
116
|
invalid: []
|
|
129
117
|
});
|
|
130
118
|
}
|
|
131
|
-
|
|
132
119
|
return instances;
|
|
133
120
|
});
|
|
134
|
-
|
|
135
121
|
return function updateSelected(_x2) {
|
|
136
122
|
return _ref2.apply(this, arguments);
|
|
137
123
|
};
|
|
138
124
|
}();
|
|
139
|
-
|
|
140
125
|
useEffect(() => {
|
|
141
126
|
if (props.value) {
|
|
142
127
|
updateSelected(props.value);
|
|
143
|
-
}
|
|
144
|
-
|
|
128
|
+
}
|
|
129
|
+
// todo(ice): how formItem to change its value??????
|
|
145
130
|
}, []);
|
|
146
|
-
|
|
147
131
|
var handleChange = instances => {
|
|
148
132
|
var _props$onChange, _props$onChangeV;
|
|
149
|
-
|
|
150
133
|
(_props$onChange = props.onChange) === null || _props$onChange === void 0 ? void 0 : _props$onChange.call(props, instances.map(instance => instance.instanceId));
|
|
151
134
|
(_props$onChangeV = props.onChangeV2) === null || _props$onChangeV === void 0 ? void 0 : _props$onChangeV.call(props, instances);
|
|
152
135
|
};
|
|
153
|
-
|
|
154
136
|
var checkInputValue = /*#__PURE__*/function () {
|
|
155
137
|
var _ref3 = _asyncToGenerator(function* (inputValue) {
|
|
156
138
|
var 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);
|
|
157
|
-
|
|
158
139
|
if (fieldValues) {
|
|
159
140
|
var instances = (yield InstanceApi_postSearch(props.objectId, {
|
|
160
141
|
query: {
|
|
@@ -180,40 +161,32 @@ export var LegacyCmdbInstancesInputFormItem = (props, ref) => {
|
|
|
180
161
|
handleChange(validSelectedInstances);
|
|
181
162
|
}
|
|
182
163
|
});
|
|
183
|
-
|
|
184
164
|
return function checkInputValue(_x3) {
|
|
185
165
|
return _ref3.apply(this, arguments);
|
|
186
166
|
};
|
|
187
167
|
}();
|
|
188
|
-
|
|
189
168
|
var openSelectInstancesModal = () => {
|
|
190
169
|
setVisible(true);
|
|
191
170
|
};
|
|
192
|
-
|
|
193
171
|
var closeSelectInstancesModal = () => {
|
|
194
172
|
setVisible(false);
|
|
195
173
|
};
|
|
196
|
-
|
|
197
174
|
var handleInstancesSelected = /*#__PURE__*/function () {
|
|
198
175
|
var _ref4 = _asyncToGenerator(function* (selectedKeys) {
|
|
199
176
|
closeSelectInstancesModal();
|
|
200
177
|
var instances = yield updateSelected(selectedKeys);
|
|
201
178
|
handleChange(instances);
|
|
202
179
|
});
|
|
203
|
-
|
|
204
180
|
return function handleInstancesSelected(_x4) {
|
|
205
181
|
return _ref4.apply(this, arguments);
|
|
206
182
|
};
|
|
207
183
|
}();
|
|
208
|
-
|
|
209
184
|
var handleInputChanged = event => {
|
|
210
185
|
setInputValue(event.target.value);
|
|
211
186
|
};
|
|
212
|
-
|
|
213
187
|
var handleInputBlur = /*#__PURE__*/function () {
|
|
214
188
|
var _ref5 = _asyncToGenerator(function* (event) {
|
|
215
189
|
var inputValue = event.target.value;
|
|
216
|
-
|
|
217
190
|
if (inputValue) {
|
|
218
191
|
if (!props.checkDisabled) {
|
|
219
192
|
yield checkInputValue(inputValue);
|
|
@@ -245,18 +218,14 @@ export var LegacyCmdbInstancesInputFormItem = (props, ref) => {
|
|
|
245
218
|
});
|
|
246
219
|
handleChange([]);
|
|
247
220
|
}
|
|
248
|
-
|
|
249
221
|
setInputFocused(false);
|
|
250
222
|
});
|
|
251
|
-
|
|
252
223
|
return function handleInputBlur(_x5) {
|
|
253
224
|
return _ref5.apply(this, arguments);
|
|
254
225
|
};
|
|
255
226
|
}();
|
|
256
|
-
|
|
257
227
|
var closeInvalidFieldValuesModal = () => {
|
|
258
228
|
var _props$onChange2;
|
|
259
|
-
|
|
260
229
|
setSelectedInstances({
|
|
261
230
|
valid: selectedInstances.valid,
|
|
262
231
|
invalid: []
|
|
@@ -264,7 +233,6 @@ export var LegacyCmdbInstancesInputFormItem = (props, ref) => {
|
|
|
264
233
|
setInputValue(selectedInstances.valid.map(instance => instance[props.fieldId]).join(separator));
|
|
265
234
|
(_props$onChange2 = props.onChange) === null || _props$onChange2 === void 0 ? void 0 : _props$onChange2.call(props, selectedInstances.valid.map(instance => instance.instanceId));
|
|
266
235
|
};
|
|
267
|
-
|
|
268
236
|
var text = props.selectFromText ? props.selectFromText : t(K.SELECT_FROM_CMDB);
|
|
269
237
|
return /*#__PURE__*/React.createElement("div", {
|
|
270
238
|
ref: ref
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CmdbInstancesInputFormItem.js","names":["React","forwardRef","useState","useEffect","useMemo","Input","Button","Modal","groupBy","InstanceListModal","modifyModelData","InstanceApi_postSearch","useTranslation","NS_LIBS_CMDB_INSTANCES","K","style","separator","LegacyCmdbInstancesInputFormItem","props","ref","t","presetQuery","permission","objectId","checkAgentStatus","_agentStatus","checkPermission","push","fields","forEach","field","objectData","objectMap","fieldData","__fieldList","find","__id","fieldId","visible","setVisible","selectedInstances","setSelectedInstances","valid","invalid","inputValue","setInputValue","inputFocused","setInputFocused","previewVisible","setPreviewVisible","selectedInstancesQuery","previewEnabled","length","instanceId","$in","map","instance","query","undefined","checkSelectedInstances","instances","list","instanceIdSet","Set","selectedInstancesMap","selectedInstance","has","true","false","invalidSelectedInstance","updateSelected","instanceIds","page","page_size","instanceData","join","checkDisabled","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","SELECT_FROM_CMDB","TIP","DELETE","INVALID_OR_FORBIDDEN_IPS","INVALID","name","fieldIds","singleSelect","defaultQuery","pageSize","pageSizeOptions","showSizeChanger","cmdbInstancesInputFormWrapper","fieldInput","allowClear","inputDisabled","modalButton","addButtonDisabled","VIEW_SPECIFIC_INSTANCES","CmdbInstancesInputFormItem"],"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":["React","forwardRef","useState","useEffect","useMemo","Input","Button","Modal","groupBy","InstanceListModal","modifyModelData","InstanceApi_postSearch","useTranslation","NS_LIBS_CMDB_INSTANCES","K","style","separator","LegacyCmdbInstancesInputFormItem","props","ref","t","presetQuery","permission","objectId","checkAgentStatus","_agentStatus","checkPermission","push","fields","forEach","field","objectData","objectMap","fieldData","__fieldList","find","__id","fieldId","visible","setVisible","selectedInstances","setSelectedInstances","valid","invalid","inputValue","setInputValue","inputFocused","setInputFocused","previewVisible","setPreviewVisible","selectedInstancesQuery","previewEnabled","length","instanceId","$in","map","instance","query","undefined","checkSelectedInstances","instances","list","instanceIdSet","Set","selectedInstancesMap","selectedInstance","has","true","false","invalidSelectedInstance","updateSelected","instanceIds","page","page_size","instanceData","join","checkDisabled","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","SELECT_FROM_CMDB","TIP","DELETE","INVALID_OR_FORBIDDEN_IPS","INVALID","name","fieldIds","singleSelect","defaultQuery","pageSize","pageSizeOptions","showSizeChanger","cmdbInstancesInputFormWrapper","fieldInput","allowClear","inputDisabled","modalButton","addButtonDisabled","VIEW_SPECIFIC_INSTANCES","CmdbInstancesInputFormItem"],"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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"}
|
|
@@ -17,18 +17,14 @@ export function isCmdbInstancesSelectPanelPropsWithObjectMap(props) {
|
|
|
17
17
|
}
|
|
18
18
|
export function CmdbInstancesSelectPanel(props, ref) {
|
|
19
19
|
var _props$previewMaxNumb, _props$value, _props$instanceQuery, _props$modalTitle, _props$addTitle;
|
|
20
|
-
|
|
21
20
|
var modelData;
|
|
22
|
-
|
|
23
21
|
if (isCmdbInstancesSelectPanelPropsWithObjectMap(props)) {
|
|
24
22
|
modelData = props.objectMap[props.objectId];
|
|
25
23
|
} else {
|
|
26
24
|
modelData = props.modelData;
|
|
27
25
|
}
|
|
28
|
-
|
|
29
26
|
if (props.isFilterView) {
|
|
30
27
|
var _modelData, _modelData$view;
|
|
31
|
-
|
|
32
28
|
//过滤掉视图不可见字段
|
|
33
29
|
var hideModelData = ((_modelData = modelData) === null || _modelData === void 0 ? void 0 : (_modelData$view = _modelData.view) === null || _modelData$view === void 0 ? void 0 : _modelData$view.hide_columns) || [];
|
|
34
30
|
modelData = _objectSpread(_objectSpread({}, modelData), {}, {
|
|
@@ -36,11 +32,10 @@ export function CmdbInstancesSelectPanel(props, ref) {
|
|
|
36
32
|
relation_list: modelData.relation_list.filter(item => !(hideModelData.includes(item.left_id) && item.left_object_id === props.objectId || hideModelData.includes(item.right_id) && item.right_object_id === props.objectId))
|
|
37
33
|
});
|
|
38
34
|
}
|
|
39
|
-
|
|
40
35
|
var displayedSelectedInstancesMaxNumber = (_props$previewMaxNumb = props.previewMaxNumber) !== null && _props$previewMaxNumb !== void 0 ? _props$previewMaxNumb : 5;
|
|
41
36
|
var [selectedInstanceList, setSelectedInstanceList] = useState([]);
|
|
42
|
-
var [partialSelectedInstances, setPartialSelectedInstances] = useState([]);
|
|
43
|
-
|
|
37
|
+
var [partialSelectedInstances, setPartialSelectedInstances] = useState([]);
|
|
38
|
+
// const [instanceTableData, setInstanceTableData] = useState({list: []})
|
|
44
39
|
var [addInstancesModal, setAddInstancesModal] = useState({
|
|
45
40
|
visible: false
|
|
46
41
|
});
|
|
@@ -48,11 +43,9 @@ export function CmdbInstancesSelectPanel(props, ref) {
|
|
|
48
43
|
visible: false
|
|
49
44
|
});
|
|
50
45
|
var [modelMap, setModelMap] = useState({});
|
|
51
|
-
|
|
52
46
|
var fetchInstances = /*#__PURE__*/function () {
|
|
53
47
|
var _ref = _asyncToGenerator(function* (instanceIdList) {
|
|
54
48
|
var instances = [];
|
|
55
|
-
|
|
56
49
|
if (instanceIdList !== null && instanceIdList !== void 0 && instanceIdList.length) {
|
|
57
50
|
instances = (yield InstanceApi_postSearch(props.objectId, {
|
|
58
51
|
query: {
|
|
@@ -68,21 +61,17 @@ export function CmdbInstancesSelectPanel(props, ref) {
|
|
|
68
61
|
}
|
|
69
62
|
})).list;
|
|
70
63
|
}
|
|
71
|
-
|
|
72
64
|
return instances;
|
|
73
65
|
});
|
|
74
|
-
|
|
75
66
|
return function fetchInstances(_x) {
|
|
76
67
|
return _ref.apply(this, arguments);
|
|
77
68
|
};
|
|
78
69
|
}();
|
|
79
|
-
|
|
80
70
|
var toLoadInstanceIds = ((_props$value = props.value) === null || _props$value === void 0 ? void 0 : _props$value.map(i => isObject(i) ? i.instanceId : i)) || [];
|
|
81
71
|
useEffect(() => {
|
|
82
72
|
var getModelMap = /*#__PURE__*/function () {
|
|
83
73
|
var _ref2 = _asyncToGenerator(function* () {
|
|
84
74
|
var modelMap;
|
|
85
|
-
|
|
86
75
|
if (isCmdbInstancesSelectPanelPropsWithObjectMap(props)) {
|
|
87
76
|
modelMap = props.objectMap;
|
|
88
77
|
} else {
|
|
@@ -93,35 +82,28 @@ export function CmdbInstancesSelectPanel(props, ref) {
|
|
|
93
82
|
});
|
|
94
83
|
modelMap = keyBy(data, "objectId");
|
|
95
84
|
}
|
|
96
|
-
|
|
97
85
|
setModelMap(modelMap);
|
|
98
86
|
});
|
|
99
|
-
|
|
100
87
|
return function getModelMap() {
|
|
101
88
|
return _ref2.apply(this, arguments);
|
|
102
89
|
};
|
|
103
90
|
}();
|
|
104
|
-
|
|
105
91
|
getModelMap();
|
|
106
92
|
}, [props.objectId]);
|
|
107
93
|
useEffect(() => {
|
|
108
94
|
var instances = [];
|
|
109
|
-
|
|
110
95
|
var initInstances = /*#__PURE__*/function () {
|
|
111
96
|
var _ref3 = _asyncToGenerator(function* () {
|
|
112
97
|
var _props$onFetchedInsta;
|
|
113
|
-
|
|
114
98
|
instances = yield fetchInstances(toLoadInstanceIds);
|
|
115
99
|
setSelectedInstanceList(instances);
|
|
116
100
|
setPartialSelectedInstances(props !== null && props !== void 0 && props.isOperate ? instances : instances.slice(0, displayedSelectedInstancesMaxNumber));
|
|
117
101
|
(_props$onFetchedInsta = props.onFetchedInstances) === null || _props$onFetchedInsta === void 0 ? void 0 : _props$onFetchedInsta.call(props, instances);
|
|
118
102
|
});
|
|
119
|
-
|
|
120
103
|
return function initInstances() {
|
|
121
104
|
return _ref3.apply(this, arguments);
|
|
122
105
|
};
|
|
123
106
|
}();
|
|
124
|
-
|
|
125
107
|
if (!isEmpty(toLoadInstanceIds)) {
|
|
126
108
|
initInstances();
|
|
127
109
|
} else {
|
|
@@ -129,47 +111,39 @@ export function CmdbInstancesSelectPanel(props, ref) {
|
|
|
129
111
|
setPartialSelectedInstances([]);
|
|
130
112
|
}
|
|
131
113
|
}, [toLoadInstanceIds.sort().join()]);
|
|
132
|
-
|
|
133
114
|
var openAddInstancesModal = () => {
|
|
134
115
|
setAddInstancesModal({
|
|
135
116
|
visible: true
|
|
136
117
|
});
|
|
137
118
|
};
|
|
138
|
-
|
|
139
119
|
var closeAddInstancesModal = () => {
|
|
140
120
|
setAddInstancesModal({
|
|
141
121
|
visible: false
|
|
142
122
|
});
|
|
143
123
|
};
|
|
144
|
-
|
|
145
124
|
var openAllSelectedInstancesModal = () => {
|
|
146
125
|
setAllSelectedInstancesModal({
|
|
147
126
|
visible: true
|
|
148
127
|
});
|
|
149
128
|
};
|
|
150
|
-
|
|
151
129
|
var closeAllSelectedInstancesModal = () => {
|
|
152
130
|
setAllSelectedInstancesModal({
|
|
153
131
|
visible: false
|
|
154
132
|
});
|
|
155
133
|
};
|
|
156
|
-
|
|
157
134
|
var handleInstancesSelected = /*#__PURE__*/function () {
|
|
158
135
|
var _ref4 = _asyncToGenerator(function* (selectedKeys) {
|
|
159
136
|
var _props$onChange;
|
|
160
|
-
|
|
161
137
|
closeAddInstancesModal();
|
|
162
138
|
var instances = yield fetchInstances(selectedKeys);
|
|
163
139
|
setSelectedInstanceList(instances);
|
|
164
140
|
setPartialSelectedInstances(props !== null && props !== void 0 && props.isOperate ? instances : instances.slice(0, displayedSelectedInstancesMaxNumber));
|
|
165
141
|
(_props$onChange = props.onChange) === null || _props$onChange === void 0 ? void 0 : _props$onChange.call(props, instances);
|
|
166
142
|
});
|
|
167
|
-
|
|
168
143
|
return function handleInstancesSelected(_x2) {
|
|
169
144
|
return _ref4.apply(this, arguments);
|
|
170
145
|
};
|
|
171
146
|
}();
|
|
172
|
-
|
|
173
147
|
var fieldIds = modifyModelData(modelData).attrList.map(attr => attr.id);
|
|
174
148
|
var showPreview = selectedInstanceList.length > displayedSelectedInstancesMaxNumber;
|
|
175
149
|
var cs = classnames({
|
|
@@ -180,7 +154,6 @@ export function CmdbInstancesSelectPanel(props, ref) {
|
|
|
180
154
|
relation
|
|
181
155
|
} = props;
|
|
182
156
|
var relationLimit;
|
|
183
|
-
|
|
184
157
|
if ((relation === null || relation === void 0 ? void 0 : relation.right_max) === 1) {
|
|
185
158
|
relationLimit = {
|
|
186
159
|
[relation.right_id]: {
|
|
@@ -190,7 +163,6 @@ export function CmdbInstancesSelectPanel(props, ref) {
|
|
|
190
163
|
}
|
|
191
164
|
};
|
|
192
165
|
}
|
|
193
|
-
|
|
194
166
|
var query = (_props$instanceQuery = props.instanceQuery) !== null && _props$instanceQuery !== void 0 ? _props$instanceQuery : relationLimit;
|
|
195
167
|
return /*#__PURE__*/React.createElement("div", {
|
|
196
168
|
className: style.wrapper,
|
|
@@ -268,12 +240,12 @@ export function CmdbInstancesSelectPanel(props, ref) {
|
|
|
268
240
|
}
|
|
269
241
|
} : {
|
|
270
242
|
pagination: false
|
|
271
|
-
}
|
|
243
|
+
}
|
|
244
|
+
//
|
|
272
245
|
,
|
|
273
246
|
isOperate: props.isOperate,
|
|
274
247
|
handleDeleteFunction: v => {
|
|
275
248
|
var _props$onChange2;
|
|
276
|
-
|
|
277
249
|
setSelectedInstanceList(v);
|
|
278
250
|
setPartialSelectedInstances(v);
|
|
279
251
|
(_props$onChange2 = props.onChange) === null || _props$onChange2 === void 0 ? void 0 : _props$onChange2.call(props, v);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CmdbInstancesSelectPanel.js","names":["React","useState","useEffect","classnames","InstanceApi_postSearch","CmdbObjectApi_getObjectRef","InstanceListTable","InstanceListModal","modifyModelData","style","i18n","K","NS_LIBS_CMDB_INSTANCES","keyBy","isEqual","isNil","isObject","isEmpty","Spin","isCmdbInstancesSelectPanelPropsWithObjectMap","props","objectMap","CmdbInstancesSelectPanel","ref","modelData","objectId","isFilterView","hideModelData","view","hide_columns","attrList","filter","item","includes","id","relation_list","left_id","left_object_id","right_id","right_object_id","displayedSelectedInstancesMaxNumber","previewMaxNumber","selectedInstanceList","setSelectedInstanceList","partialSelectedInstances","setPartialSelectedInstances","addInstancesModal","setAddInstancesModal","visible","allSelectedInstancesModal","setAllSelectedInstancesModal","modelMap","setModelMap","fetchInstances","instanceIdList","instances","length","query","instanceId","$in","page","page_size","fields","list","toLoadInstanceIds","value","map","i","getModelMap","data","ref_object","initInstances","isOperate","slice","onFetchedInstances","sort","join","openAddInstancesModal","closeAddInstancesModal","openAllSelectedInstancesModal","closeAllSelectedInstancesModal","handleInstancesSelected","selectedKeys","onChange","fieldIds","attr","showPreview","cs","selectedInstancesTableWrapper","withPreview","relation","relationLimit","right_max","$size","$lt","instanceQuery","wrapper","modalTitle","t","FILTER_FROM_CMDB","name","instance","singleSelect","addInstancesModalPageSize","searchDisabled","advancedSearchDisabled","ipCopy","showCloseBtn","showSizeChanger","pageSizeOptions","VIEW_ALL_SELECTED_INSTANCES","textAlign","marginBottom","addButton","addTitle","CHOOSE_INSTANCE","showDetailUrl","detailUrlTemplates","showPagination","pagination","v","showAllSelectedInstancesButton","VIEW_ALL_DATA","count"],"sources":["../../../src/cmdb-instances-select-panel/CmdbInstancesSelectPanel.tsx"],"sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport classnames from \"classnames\";\n\nimport {\n CmdbModels,\n InstanceApi_postSearch,\n CmdbObjectApi_getObjectRef,\n} from \"@next-sdk/cmdb-sdk\";\nimport { InstanceListTable } from \"../instance-list-table\";\nimport { InstanceListModal } from \"../instance-list-modal/InstanceListModal\";\nimport {\n modifyModelData,\n ModifiedModelObjectRelation,\n} from \"@next-libs/cmdb-utils\";\nimport style from \"./style.module.css\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport { keyBy, isEqual, isNil, isObject, isEmpty } from \"lodash\";\nimport { Spin } from \"antd\";\n\nexport interface BaseCmdbInstancesSelectPanelProps {\n objectId: string;\n value?: any[];\n onChange?: (instanceList: any[]) => void;\n instanceQuery?: any;\n fields?: string[];\n singleSelect?: boolean;\n addTitle?: React.ReactNode | string;\n modalTitle?: React.ReactNode | string;\n previewMaxNumber?: number;\n addInstancesModalPageSize?: number;\n showSizeChanger?: boolean;\n pageSizeOptions?: string[];\n isOperate?: boolean; //cmdb实例列表支持删除实例\n showDetailUrl?: boolean;\n isFilterView?: boolean; //是否过滤视图属性\n onFetchedInstances?: (instanceList: any[]) => void; // objectId改变后触发\n relation?: Partial<ModifiedModelObjectRelation>;\n searchDisabled?: boolean;\n advancedSearchDisabled?: boolean;\n showPagination?: boolean;\n}\n\nexport interface CmdbInstancesSelectPanelPropsWithObjectMap\n extends BaseCmdbInstancesSelectPanelProps {\n objectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>;\n ipCopy?: boolean;\n showSizeChanger?: boolean;\n showCloseBtn?: boolean;\n pageSizeOptions?: string[];\n}\n\nexport interface CmdbInstancesSelectPanelPropsWithModelData\n extends BaseCmdbInstancesSelectPanelProps {\n modelData: Partial<CmdbModels.ModelCmdbObject>;\n ipCopy?: boolean;\n showSizeChanger?: boolean;\n showCloseBtn?: boolean;\n pageSizeOptions?: string[];\n}\n\nexport type CmdbInstancesSelectPanelProps =\n | CmdbInstancesSelectPanelPropsWithObjectMap\n | CmdbInstancesSelectPanelPropsWithModelData;\n\nexport function isCmdbInstancesSelectPanelPropsWithObjectMap(\n props: CmdbInstancesSelectPanelProps\n): props is CmdbInstancesSelectPanelPropsWithObjectMap {\n return !isNil(\n (props as CmdbInstancesSelectPanelPropsWithObjectMap).objectMap\n );\n}\n\nexport function CmdbInstancesSelectPanel(\n props: CmdbInstancesSelectPanelProps,\n ref: any\n): React.ReactElement {\n let modelData: Partial<CmdbModels.ModelCmdbObject>;\n if (isCmdbInstancesSelectPanelPropsWithObjectMap(props)) {\n modelData = props.objectMap[props.objectId];\n } else {\n modelData = props.modelData;\n }\n\n if (props.isFilterView) {\n //过滤掉视图不可见字段\n const hideModelData = modelData?.view?.hide_columns || [];\n modelData = {\n ...modelData,\n attrList: modelData.attrList.filter(\n (item: any) => !hideModelData.includes(item.id)\n ),\n relation_list: modelData.relation_list.filter(\n (item: any) =>\n !(\n (hideModelData.includes(item.left_id) &&\n item.left_object_id === props.objectId) ||\n (hideModelData.includes(item.right_id) &&\n item.right_object_id === props.objectId)\n )\n ),\n };\n }\n\n const displayedSelectedInstancesMaxNumber = props.previewMaxNumber ?? 5;\n\n const [selectedInstanceList, setSelectedInstanceList] = useState([]);\n const [partialSelectedInstances, setPartialSelectedInstances] = useState([]);\n // const [instanceTableData, setInstanceTableData] = useState({list: []})\n const [addInstancesModal, setAddInstancesModal] = useState({\n visible: false,\n });\n const [allSelectedInstancesModal, setAllSelectedInstancesModal] = useState({\n visible: false,\n });\n const [modelMap, setModelMap] = useState({});\n\n const fetchInstances = async (instanceIdList: string[]): Promise<any[]> => {\n let instances: any[] = [];\n if (instanceIdList?.length) {\n instances = (\n await InstanceApi_postSearch(props.objectId, {\n query: {\n instanceId: {\n $in: instanceIdList,\n },\n },\n page: 1,\n page_size: instanceIdList.length,\n // todo(ice): selected confirm with instances\n fields: { \"*\": true },\n })\n ).list;\n }\n\n return instances;\n };\n const toLoadInstanceIds =\n props.value?.map((i) => (isObject(i) ? (i as any).instanceId : i)) || [];\n\n useEffect(() => {\n const getModelMap = async (): Promise<void> => {\n let modelMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>;\n\n if (isCmdbInstancesSelectPanelPropsWithObjectMap(props)) {\n modelMap = props.objectMap;\n } else {\n const { data } = await CmdbObjectApi_getObjectRef({\n ref_object: props.objectId,\n });\n modelMap = keyBy(data, \"objectId\");\n }\n setModelMap(modelMap);\n };\n getModelMap();\n }, [props.objectId]);\n\n useEffect(() => {\n let instances = [];\n\n const initInstances = async (): Promise<void> => {\n instances = await fetchInstances(toLoadInstanceIds);\n setSelectedInstanceList(instances);\n setPartialSelectedInstances(\n props?.isOperate\n ? instances\n : instances.slice(0, displayedSelectedInstancesMaxNumber)\n );\n props.onFetchedInstances?.(instances);\n };\n if (!isEmpty(toLoadInstanceIds)) {\n initInstances();\n } else {\n setSelectedInstanceList([]);\n setPartialSelectedInstances([]);\n }\n }, [toLoadInstanceIds.sort().join()]);\n const openAddInstancesModal = () => {\n setAddInstancesModal({ visible: true });\n };\n\n const closeAddInstancesModal = () => {\n setAddInstancesModal({ visible: false });\n };\n\n const openAllSelectedInstancesModal = () => {\n setAllSelectedInstancesModal({ visible: true });\n };\n\n const closeAllSelectedInstancesModal = () => {\n setAllSelectedInstancesModal({ visible: false });\n };\n\n const handleInstancesSelected = async (selectedKeys: string[]) => {\n closeAddInstancesModal();\n\n const instances = await fetchInstances(selectedKeys);\n setSelectedInstanceList(instances);\n setPartialSelectedInstances(\n props?.isOperate\n ? instances\n : instances.slice(0, displayedSelectedInstancesMaxNumber)\n );\n props.onChange?.(instances);\n };\n\n const fieldIds = modifyModelData(modelData).attrList.map(\n (attr: any) => attr.id\n );\n const showPreview =\n selectedInstanceList.length > displayedSelectedInstancesMaxNumber;\n const cs = classnames({\n [style.selectedInstancesTableWrapper]: true,\n [style.withPreview]: showPreview,\n });\n const { relation } = props;\n let relationLimit;\n if (relation?.right_max === 1) {\n relationLimit = { [relation.right_id]: { $size: { $lt: 1 } } };\n }\n const query = props.instanceQuery ?? relationLimit;\n return (\n <div className={style.wrapper} ref={ref}>\n <InstanceListModal\n objectMap={modelMap}\n objectId={props.objectId}\n visible={addInstancesModal.visible}\n title={\n props.modalTitle ??\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FILTER_FROM_CMDB}`, {\n name: modelData.name,\n })\n }\n selectedRowKeys={selectedInstanceList.map(\n (instance) => instance.instanceId\n )}\n onSelected={handleInstancesSelected}\n onCancel={closeAddInstancesModal}\n singleSelect={props.singleSelect}\n presetConfigs={{\n query,\n fieldIds: props.fields,\n }}\n pageSize={props.addInstancesModalPageSize}\n searchDisabled={props.searchDisabled}\n advancedSearchDisabled={props.advancedSearchDisabled}\n ipCopy={props.ipCopy}\n showCloseBtn={props.showCloseBtn}\n showSizeChanger={props.showSizeChanger}\n pageSizeOptions={props.pageSizeOptions}\n />\n <InstanceListModal\n objectMap={modelMap}\n objectId={props.objectId}\n visible={allSelectedInstancesModal.visible}\n title={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.VIEW_ALL_SELECTED_INSTANCES}`\n )}\n presetConfigs={{\n query: {\n instanceId: {\n $in: selectedInstanceList.map((instance) => instance.instanceId),\n },\n },\n }}\n selectDisabled={!props.ipCopy}\n ipCopy={props.ipCopy}\n showCloseBtn={props.showCloseBtn}\n showSizeChanger={props.showSizeChanger}\n pageSizeOptions={props.pageSizeOptions}\n onCancel={closeAllSelectedInstancesModal}\n />\n <Spin\n style={{ textAlign: \"left\", marginBottom: \"12px\" }}\n spinning={isEqual(modelMap, {})}\n >\n <a\n className={style.addButton}\n style={{\n marginBottom: \"12px\",\n }}\n onClick={openAddInstancesModal}\n >\n {props.addTitle ??\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CHOOSE_INSTANCE}`)}\n </a>\n </Spin>\n <div className={cs}>\n <InstanceListTable\n {...(props.showDetailUrl\n ? {\n detailUrlTemplates: {\n [props.objectId]:\n \"/next-cmdb-instance-management/next/#{objectId}/instance/#{instanceId}\",\n },\n }\n : {})}\n idObjectMap={modelMap}\n modelData={modelData}\n instanceListData={{ list: partialSelectedInstances }}\n fieldIds={props.fields || fieldIds}\n selectDisabled={true}\n sortDisabled={true}\n configProps={\n props.showPagination && partialSelectedInstances.length > 10\n ? { pagination: { showSizeChanger: true } }\n : { pagination: false }\n }\n //\n isOperate={props.isOperate}\n handleDeleteFunction={(v) => {\n setSelectedInstanceList(v);\n setPartialSelectedInstances(v);\n props.onChange?.(v);\n }}\n target={\"_blank\"}\n ></InstanceListTable>\n {!props?.isOperate && showPreview && (\n <div\n className={style.showAllSelectedInstancesButton}\n onClick={openAllSelectedInstancesModal}\n >\n <a>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.VIEW_ALL_DATA}`, {\n count: selectedInstanceList.length,\n })}\n </a>\n </div>\n )}\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CmdbInstancesSelectPanel.js","names":["React","useState","useEffect","classnames","InstanceApi_postSearch","CmdbObjectApi_getObjectRef","InstanceListTable","InstanceListModal","modifyModelData","style","i18n","K","NS_LIBS_CMDB_INSTANCES","keyBy","isEqual","isNil","isObject","isEmpty","Spin","isCmdbInstancesSelectPanelPropsWithObjectMap","props","objectMap","CmdbInstancesSelectPanel","ref","modelData","objectId","isFilterView","hideModelData","view","hide_columns","attrList","filter","item","includes","id","relation_list","left_id","left_object_id","right_id","right_object_id","displayedSelectedInstancesMaxNumber","previewMaxNumber","selectedInstanceList","setSelectedInstanceList","partialSelectedInstances","setPartialSelectedInstances","addInstancesModal","setAddInstancesModal","visible","allSelectedInstancesModal","setAllSelectedInstancesModal","modelMap","setModelMap","fetchInstances","instanceIdList","instances","length","query","instanceId","$in","page","page_size","fields","list","toLoadInstanceIds","value","map","i","getModelMap","data","ref_object","initInstances","isOperate","slice","onFetchedInstances","sort","join","openAddInstancesModal","closeAddInstancesModal","openAllSelectedInstancesModal","closeAllSelectedInstancesModal","handleInstancesSelected","selectedKeys","onChange","fieldIds","attr","showPreview","cs","selectedInstancesTableWrapper","withPreview","relation","relationLimit","right_max","$size","$lt","instanceQuery","wrapper","modalTitle","t","FILTER_FROM_CMDB","name","instance","singleSelect","addInstancesModalPageSize","searchDisabled","advancedSearchDisabled","ipCopy","showCloseBtn","showSizeChanger","pageSizeOptions","VIEW_ALL_SELECTED_INSTANCES","textAlign","marginBottom","addButton","addTitle","CHOOSE_INSTANCE","showDetailUrl","detailUrlTemplates","showPagination","pagination","v","showAllSelectedInstancesButton","VIEW_ALL_DATA","count"],"sources":["../../../src/cmdb-instances-select-panel/CmdbInstancesSelectPanel.tsx"],"sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport classnames from \"classnames\";\n\nimport {\n CmdbModels,\n InstanceApi_postSearch,\n CmdbObjectApi_getObjectRef,\n} from \"@next-sdk/cmdb-sdk\";\nimport { InstanceListTable } from \"../instance-list-table\";\nimport { InstanceListModal } from \"../instance-list-modal/InstanceListModal\";\nimport {\n modifyModelData,\n ModifiedModelObjectRelation,\n} from \"@next-libs/cmdb-utils\";\nimport style from \"./style.module.css\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport { keyBy, isEqual, isNil, isObject, isEmpty } from \"lodash\";\nimport { Spin } from \"antd\";\n\nexport interface BaseCmdbInstancesSelectPanelProps {\n objectId: string;\n value?: any[];\n onChange?: (instanceList: any[]) => void;\n instanceQuery?: any;\n fields?: string[];\n singleSelect?: boolean;\n addTitle?: React.ReactNode | string;\n modalTitle?: React.ReactNode | string;\n previewMaxNumber?: number;\n addInstancesModalPageSize?: number;\n showSizeChanger?: boolean;\n pageSizeOptions?: string[];\n isOperate?: boolean; //cmdb实例列表支持删除实例\n showDetailUrl?: boolean;\n isFilterView?: boolean; //是否过滤视图属性\n onFetchedInstances?: (instanceList: any[]) => void; // objectId改变后触发\n relation?: Partial<ModifiedModelObjectRelation>;\n searchDisabled?: boolean;\n advancedSearchDisabled?: boolean;\n showPagination?: boolean;\n}\n\nexport interface CmdbInstancesSelectPanelPropsWithObjectMap\n extends BaseCmdbInstancesSelectPanelProps {\n objectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>;\n ipCopy?: boolean;\n showSizeChanger?: boolean;\n showCloseBtn?: boolean;\n pageSizeOptions?: string[];\n}\n\nexport interface CmdbInstancesSelectPanelPropsWithModelData\n extends BaseCmdbInstancesSelectPanelProps {\n modelData: Partial<CmdbModels.ModelCmdbObject>;\n ipCopy?: boolean;\n showSizeChanger?: boolean;\n showCloseBtn?: boolean;\n pageSizeOptions?: string[];\n}\n\nexport type CmdbInstancesSelectPanelProps =\n | CmdbInstancesSelectPanelPropsWithObjectMap\n | CmdbInstancesSelectPanelPropsWithModelData;\n\nexport function isCmdbInstancesSelectPanelPropsWithObjectMap(\n props: CmdbInstancesSelectPanelProps\n): props is CmdbInstancesSelectPanelPropsWithObjectMap {\n return !isNil(\n (props as CmdbInstancesSelectPanelPropsWithObjectMap).objectMap\n );\n}\n\nexport function CmdbInstancesSelectPanel(\n props: CmdbInstancesSelectPanelProps,\n ref: any\n): React.ReactElement {\n let modelData: Partial<CmdbModels.ModelCmdbObject>;\n if (isCmdbInstancesSelectPanelPropsWithObjectMap(props)) {\n modelData = props.objectMap[props.objectId];\n } else {\n modelData = props.modelData;\n }\n\n if (props.isFilterView) {\n //过滤掉视图不可见字段\n const hideModelData = modelData?.view?.hide_columns || [];\n modelData = {\n ...modelData,\n attrList: modelData.attrList.filter(\n (item: any) => !hideModelData.includes(item.id)\n ),\n relation_list: modelData.relation_list.filter(\n (item: any) =>\n !(\n (hideModelData.includes(item.left_id) &&\n item.left_object_id === props.objectId) ||\n (hideModelData.includes(item.right_id) &&\n item.right_object_id === props.objectId)\n )\n ),\n };\n }\n\n const displayedSelectedInstancesMaxNumber = props.previewMaxNumber ?? 5;\n\n const [selectedInstanceList, setSelectedInstanceList] = useState([]);\n const [partialSelectedInstances, setPartialSelectedInstances] = useState([]);\n // const [instanceTableData, setInstanceTableData] = useState({list: []})\n const [addInstancesModal, setAddInstancesModal] = useState({\n visible: false,\n });\n const [allSelectedInstancesModal, setAllSelectedInstancesModal] = useState({\n visible: false,\n });\n const [modelMap, setModelMap] = useState({});\n\n const fetchInstances = async (instanceIdList: string[]): Promise<any[]> => {\n let instances: any[] = [];\n if (instanceIdList?.length) {\n instances = (\n await InstanceApi_postSearch(props.objectId, {\n query: {\n instanceId: {\n $in: instanceIdList,\n },\n },\n page: 1,\n page_size: instanceIdList.length,\n // todo(ice): selected confirm with instances\n fields: { \"*\": true },\n })\n ).list;\n }\n\n return instances;\n };\n const toLoadInstanceIds =\n props.value?.map((i) => (isObject(i) ? (i as any).instanceId : i)) || [];\n\n useEffect(() => {\n const getModelMap = async (): Promise<void> => {\n let modelMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>;\n\n if (isCmdbInstancesSelectPanelPropsWithObjectMap(props)) {\n modelMap = props.objectMap;\n } else {\n const { data } = await CmdbObjectApi_getObjectRef({\n ref_object: props.objectId,\n });\n modelMap = keyBy(data, \"objectId\");\n }\n setModelMap(modelMap);\n };\n getModelMap();\n }, [props.objectId]);\n\n useEffect(() => {\n let instances = [];\n\n const initInstances = async (): Promise<void> => {\n instances = await fetchInstances(toLoadInstanceIds);\n setSelectedInstanceList(instances);\n setPartialSelectedInstances(\n props?.isOperate\n ? instances\n : instances.slice(0, displayedSelectedInstancesMaxNumber)\n );\n props.onFetchedInstances?.(instances);\n };\n if (!isEmpty(toLoadInstanceIds)) {\n initInstances();\n } else {\n setSelectedInstanceList([]);\n setPartialSelectedInstances([]);\n }\n }, [toLoadInstanceIds.sort().join()]);\n const openAddInstancesModal = () => {\n setAddInstancesModal({ visible: true });\n };\n\n const closeAddInstancesModal = () => {\n setAddInstancesModal({ visible: false });\n };\n\n const openAllSelectedInstancesModal = () => {\n setAllSelectedInstancesModal({ visible: true });\n };\n\n const closeAllSelectedInstancesModal = () => {\n setAllSelectedInstancesModal({ visible: false });\n };\n\n const handleInstancesSelected = async (selectedKeys: string[]) => {\n closeAddInstancesModal();\n\n const instances = await fetchInstances(selectedKeys);\n setSelectedInstanceList(instances);\n setPartialSelectedInstances(\n props?.isOperate\n ? instances\n : instances.slice(0, displayedSelectedInstancesMaxNumber)\n );\n props.onChange?.(instances);\n };\n\n const fieldIds = modifyModelData(modelData).attrList.map(\n (attr: any) => attr.id\n );\n const showPreview =\n selectedInstanceList.length > displayedSelectedInstancesMaxNumber;\n const cs = classnames({\n [style.selectedInstancesTableWrapper]: true,\n [style.withPreview]: showPreview,\n });\n const { relation } = props;\n let relationLimit;\n if (relation?.right_max === 1) {\n relationLimit = { [relation.right_id]: { $size: { $lt: 1 } } };\n }\n const query = props.instanceQuery ?? relationLimit;\n return (\n <div className={style.wrapper} ref={ref}>\n <InstanceListModal\n objectMap={modelMap}\n objectId={props.objectId}\n visible={addInstancesModal.visible}\n title={\n props.modalTitle ??\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FILTER_FROM_CMDB}`, {\n name: modelData.name,\n })\n }\n selectedRowKeys={selectedInstanceList.map(\n (instance) => instance.instanceId\n )}\n onSelected={handleInstancesSelected}\n onCancel={closeAddInstancesModal}\n singleSelect={props.singleSelect}\n presetConfigs={{\n query,\n fieldIds: props.fields,\n }}\n pageSize={props.addInstancesModalPageSize}\n searchDisabled={props.searchDisabled}\n advancedSearchDisabled={props.advancedSearchDisabled}\n ipCopy={props.ipCopy}\n showCloseBtn={props.showCloseBtn}\n showSizeChanger={props.showSizeChanger}\n pageSizeOptions={props.pageSizeOptions}\n />\n <InstanceListModal\n objectMap={modelMap}\n objectId={props.objectId}\n visible={allSelectedInstancesModal.visible}\n title={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.VIEW_ALL_SELECTED_INSTANCES}`\n )}\n presetConfigs={{\n query: {\n instanceId: {\n $in: selectedInstanceList.map((instance) => instance.instanceId),\n },\n },\n }}\n selectDisabled={!props.ipCopy}\n ipCopy={props.ipCopy}\n showCloseBtn={props.showCloseBtn}\n showSizeChanger={props.showSizeChanger}\n pageSizeOptions={props.pageSizeOptions}\n onCancel={closeAllSelectedInstancesModal}\n />\n <Spin\n style={{ textAlign: \"left\", marginBottom: \"12px\" }}\n spinning={isEqual(modelMap, {})}\n >\n <a\n className={style.addButton}\n style={{\n marginBottom: \"12px\",\n }}\n onClick={openAddInstancesModal}\n >\n {props.addTitle ??\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CHOOSE_INSTANCE}`)}\n </a>\n </Spin>\n <div className={cs}>\n <InstanceListTable\n {...(props.showDetailUrl\n ? {\n detailUrlTemplates: {\n [props.objectId]:\n \"/next-cmdb-instance-management/next/#{objectId}/instance/#{instanceId}\",\n },\n }\n : {})}\n idObjectMap={modelMap}\n modelData={modelData}\n instanceListData={{ list: partialSelectedInstances }}\n fieldIds={props.fields || fieldIds}\n selectDisabled={true}\n sortDisabled={true}\n configProps={\n props.showPagination && partialSelectedInstances.length > 10\n ? { pagination: { showSizeChanger: true } }\n : { pagination: false }\n }\n //\n isOperate={props.isOperate}\n handleDeleteFunction={(v) => {\n setSelectedInstanceList(v);\n setPartialSelectedInstances(v);\n props.onChange?.(v);\n }}\n target={\"_blank\"}\n ></InstanceListTable>\n {!props?.isOperate && showPreview && (\n <div\n className={style.showAllSelectedInstancesButton}\n onClick={openAllSelectedInstancesModal}\n >\n <a>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.VIEW_ALL_DATA}`, {\n count: selectedInstanceList.length,\n })}\n </a>\n </div>\n )}\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -3,17 +3,14 @@ import React from "react";
|
|
|
3
3
|
export var checkUrl = urlStr => {
|
|
4
4
|
var patternSchema = /^[a-zA-Z]+:\/\/.*$/;
|
|
5
5
|
var preSlashPatty = /^\//;
|
|
6
|
-
|
|
7
6
|
if (urlStr) {
|
|
8
7
|
return patternSchema.test(urlStr) || preSlashPatty.test(urlStr) ? urlStr : "http://" + urlStr;
|
|
9
8
|
}
|
|
10
|
-
|
|
11
9
|
return "";
|
|
12
10
|
};
|
|
13
11
|
export var generateUrlLink = linkStr => {
|
|
14
12
|
var patty = /^\[(.*)\]\((.*)\)$/;
|
|
15
13
|
var arr = linkStr.match(patty);
|
|
16
|
-
|
|
17
14
|
if (isArray(arr) && arr.length > 0) {
|
|
18
15
|
return {
|
|
19
16
|
url: checkUrl(arr[2]),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CmdbUrlLink.js","names":["isArray","isString","React","checkUrl","urlStr","patternSchema","preSlashPatty","test","generateUrlLink","linkStr","patty","arr","match","length","url","title","link","CmdbUrlLink","props","collection"],"sources":["../../../src/cmdb-url-link/CmdbUrlLink.tsx"],"sourcesContent":["import { isArray, isString } from \"lodash\";\nimport React from \"react\";\n\ninterface CmdbUrlLinkProps {\n linkStr: string;\n}\n\nexport const checkUrl = (urlStr: string) => {\n const patternSchema = /^[a-zA-Z]+:\\/\\/.*$/;\n const preSlashPatty = /^\\//;\n if (urlStr) {\n return patternSchema.test(urlStr) || preSlashPatty.test(urlStr)\n ? urlStr\n : \"http://\" + urlStr;\n }\n return \"\";\n};\nexport const generateUrlLink = (linkStr: string) => {\n const patty = /^\\[(.*)\\]\\((.*)\\)$/;\n const arr = linkStr.match(patty);\n\n if (isArray(arr) && arr.length > 0) {\n return {\n url: checkUrl(arr[2]),\n title: arr[1] || arr[2],\n };\n } else {\n const link = checkUrl(linkStr);\n return {\n url: link,\n title: link,\n };\n }\n};\nexport function CmdbUrlLink(props: CmdbUrlLinkProps): React.ReactElement {\n const collection = props.linkStr && generateUrlLink(props.linkStr);\n return props.linkStr && isString(props.linkStr) ? (\n <span>\n <a href={collection.url} target=\"_blank\" rel=\"noopener noreferrer\">\n {collection.title}\n </a>\n </span>\n ) : null;\n}\n"],"mappings":"AAAA,SAASA,
|
|
1
|
+
{"version":3,"file":"CmdbUrlLink.js","names":["isArray","isString","React","checkUrl","urlStr","patternSchema","preSlashPatty","test","generateUrlLink","linkStr","patty","arr","match","length","url","title","link","CmdbUrlLink","props","collection"],"sources":["../../../src/cmdb-url-link/CmdbUrlLink.tsx"],"sourcesContent":["import { isArray, isString } from \"lodash\";\nimport React from \"react\";\n\ninterface CmdbUrlLinkProps {\n linkStr: string;\n}\n\nexport const checkUrl = (urlStr: string) => {\n const patternSchema = /^[a-zA-Z]+:\\/\\/.*$/;\n const preSlashPatty = /^\\//;\n if (urlStr) {\n return patternSchema.test(urlStr) || preSlashPatty.test(urlStr)\n ? urlStr\n : \"http://\" + urlStr;\n }\n return \"\";\n};\nexport const generateUrlLink = (linkStr: string) => {\n const patty = /^\\[(.*)\\]\\((.*)\\)$/;\n const arr = linkStr.match(patty);\n\n if (isArray(arr) && arr.length > 0) {\n return {\n url: checkUrl(arr[2]),\n title: arr[1] || arr[2],\n };\n } else {\n const link = checkUrl(linkStr);\n return {\n url: link,\n title: link,\n };\n }\n};\nexport function CmdbUrlLink(props: CmdbUrlLinkProps): React.ReactElement {\n const collection = props.linkStr && generateUrlLink(props.linkStr);\n return props.linkStr && isString(props.linkStr) ? (\n <span>\n <a href={collection.url} target=\"_blank\" rel=\"noopener noreferrer\">\n {collection.title}\n </a>\n </span>\n ) : null;\n}\n"],"mappings":"AAAA,SAASA,OAAO,EAAEC,QAAQ,QAAQ,QAAQ;AAC1C,OAAOC,KAAK,MAAM,OAAO;AAMzB,OAAO,IAAMC,QAAQ,GAAIC,MAAc,IAAK;EAC1C,IAAMC,aAAa,GAAG,oBAAoB;EAC1C,IAAMC,aAAa,GAAG,KAAK;EAC3B,IAAIF,MAAM,EAAE;IACV,OAAOC,aAAa,CAACE,IAAI,CAACH,MAAM,CAAC,IAAIE,aAAa,CAACC,IAAI,CAACH,MAAM,CAAC,GAC3DA,MAAM,GACN,SAAS,GAAGA,MAAM;EACxB;EACA,OAAO,EAAE;AACX,CAAC;AACD,OAAO,IAAMI,eAAe,GAAIC,OAAe,IAAK;EAClD,IAAMC,KAAK,GAAG,oBAAoB;EAClC,IAAMC,GAAG,GAAGF,OAAO,CAACG,KAAK,CAACF,KAAK,CAAC;EAEhC,IAAIV,OAAO,CAACW,GAAG,CAAC,IAAIA,GAAG,CAACE,MAAM,GAAG,CAAC,EAAE;IAClC,OAAO;MACLC,GAAG,EAAEX,QAAQ,CAACQ,GAAG,CAAC,CAAC,CAAC,CAAC;MACrBI,KAAK,EAAEJ,GAAG,CAAC,CAAC,CAAC,IAAIA,GAAG,CAAC,CAAC;IACxB,CAAC;EACH,CAAC,MAAM;IACL,IAAMK,IAAI,GAAGb,QAAQ,CAACM,OAAO,CAAC;IAC9B,OAAO;MACLK,GAAG,EAAEE,IAAI;MACTD,KAAK,EAAEC;IACT,CAAC;EACH;AACF,CAAC;AACD,OAAO,SAASC,WAAW,CAACC,KAAuB,EAAsB;EACvE,IAAMC,UAAU,GAAGD,KAAK,CAACT,OAAO,IAAID,eAAe,CAACU,KAAK,CAACT,OAAO,CAAC;EAClE,OAAOS,KAAK,CAACT,OAAO,IAAIR,QAAQ,CAACiB,KAAK,CAACT,OAAO,CAAC,gBAC7C,+CACE;IAAG,IAAI,EAAEU,UAAU,CAACL,GAAI;IAAC,MAAM,EAAC,QAAQ;IAAC,GAAG,EAAC;EAAqB,GAC/DK,UAAU,CAACJ,KAAK,CACf,CACC,GACL,IAAI;AACV"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../src/components/index.tsx"],"sourcesContent":["export * from \"./instance-format\";\nexport * from \"./user-or-user-group-select/UserOrUserGroupSelect\";\n"],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/components/index.tsx"],"sourcesContent":["export * from \"./instance-format\";\nexport * from \"./user-or-user-group-select/UserOrUserGroupSelect\";\n"],"mappings":"AAAA,cAAc,mBAAmB;AACjC,cAAc,mDAAmD"}
|