@next-libs/cmdb-instances 6.29.2 → 6.30.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/CHANGELOG.md CHANGED
@@ -3,6 +3,36 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [6.30.0](https://github.com/easyops-cn/next-libs/compare/@next-libs/cmdb-instances@6.29.4...@next-libs/cmdb-instances@6.30.0) (2022-06-10)
7
+
8
+
9
+ ### Features
10
+
11
+ * **CmdbInstancesInputFormItem:** add pageSizeOptions property ([dc5bdb2](https://github.com/easyops-cn/next-libs/commit/dc5bdb231f4051ae6f1bba91038ba9deff21d63b))
12
+
13
+
14
+
15
+
16
+
17
+ ## [6.29.4](https://github.com/easyops-cn/next-libs/compare/@next-libs/cmdb-instances@6.29.3...@next-libs/cmdb-instances@6.29.4) (2022-06-09)
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * **CmdbInstancesInputFormItem:** unified handling change logic for Select and Input ([32a27fa](https://github.com/easyops-cn/next-libs/commit/32a27fa60d3b8bbfa50d9b7eceb097605bb9657b))
23
+
24
+
25
+
26
+
27
+
28
+ ## [6.29.3](https://github.com/easyops-cn/next-libs/compare/@next-libs/cmdb-instances@6.29.2...@next-libs/cmdb-instances@6.29.3) (2022-06-08)
29
+
30
+ **Note:** Version bump only for package @next-libs/cmdb-instances
31
+
32
+
33
+
34
+
35
+
6
36
  ## [6.29.2](https://github.com/easyops-cn/next-libs/compare/@next-libs/cmdb-instances@6.29.1...@next-libs/cmdb-instances@6.29.2) (2022-06-08)
7
37
 
8
38
 
@@ -90,13 +90,13 @@ const LegacyCmdbInstancesInputFormItem = (props, ref) => {
90
90
  [props.fieldId]: true
91
91
  }
92
92
  })).list;
93
- const instanceIds = instances.map(instance => instance.instanceId);
94
- const selectedInstancesMap = (0, _lodash.groupBy)(selectedInstances, selectedInstance => instanceIds.includes(selectedInstance.instanceId));
93
+ const instanceIdSet = new Set(instances.map(instance => instance.instanceId));
94
+ const selectedInstancesMap = (0, _lodash.groupBy)(selectedInstances, selectedInstance => instanceIdSet.has(selectedInstance.instanceId));
95
95
  setSelectedInstances({
96
96
  valid: selectedInstancesMap.true || [],
97
97
  invalid: (selectedInstancesMap.false || []).map(invalidSelectedInstance => invalidSelectedInstance[props.fieldId])
98
98
  });
99
- return selectedInstancesMap.true ? selectedInstancesMap.true.map(instance => instance.instanceId) : [];
99
+ return selectedInstancesMap.true ? selectedInstancesMap.true : [];
100
100
  }
101
101
  };
102
102
 
@@ -120,13 +120,11 @@ const LegacyCmdbInstancesInputFormItem = (props, ref) => {
120
120
  }
121
121
 
122
122
  setInputValue(selectedInstances.map(instanceData => instanceData[props.fieldId]).join(separator));
123
- let keys = [];
123
+ let instances = selectedInstances;
124
124
 
125
125
  if (selectedInstances.length) {
126
126
  if (!props.checkDisabled) {
127
- keys = await checkSelectedInstances(selectedInstances);
128
- } else {
129
- keys = selectedInstances.map(instance => instance.instanceId);
127
+ instances = await checkSelectedInstances(selectedInstances);
130
128
  }
131
129
  } else {
132
130
  setSelectedInstances({
@@ -135,7 +133,7 @@ const LegacyCmdbInstancesInputFormItem = (props, ref) => {
135
133
  });
136
134
  }
137
135
 
138
- return keys;
136
+ return instances;
139
137
  };
140
138
 
141
139
  (0, _react.useEffect)(() => {
@@ -145,12 +143,17 @@ const LegacyCmdbInstancesInputFormItem = (props, ref) => {
145
143
 
146
144
  }, []);
147
145
 
146
+ const handleChange = instances => {
147
+ var _props$onChange, _props$onChangeV;
148
+
149
+ (_props$onChange = props.onChange) === null || _props$onChange === void 0 ? void 0 : _props$onChange.call(props, instances.map(instance => instance.instanceId));
150
+ (_props$onChangeV = props.onChangeV2) === null || _props$onChangeV === void 0 ? void 0 : _props$onChangeV.call(props, instances);
151
+ };
152
+
148
153
  const checkInputValue = async inputValue => {
149
154
  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);
150
155
 
151
156
  if (fieldValues) {
152
- var _props$onChange;
153
-
154
157
  const instances = (await (0, _cmdbSdk.InstanceApi_postSearch)(props.objectId, {
155
158
  query: {
156
159
  $and: [{
@@ -173,7 +176,7 @@ const LegacyCmdbInstancesInputFormItem = (props, ref) => {
173
176
  valid: validSelectedInstances || [],
174
177
  invalid: invalidFieldValues || []
175
178
  });
176
- (_props$onChange = props.onChange) === null || _props$onChange === void 0 ? void 0 : _props$onChange.call(props, validSelectedInstances.map(instance => instance.instanceId));
179
+ handleChange(validSelectedInstances);
177
180
  }
178
181
  };
179
182
 
@@ -186,17 +189,9 @@ const LegacyCmdbInstancesInputFormItem = (props, ref) => {
186
189
  };
187
190
 
188
191
  const handleInstancesSelected = async selectedKeys => {
189
- var _props$onChange2;
190
-
191
192
  closeSelectInstancesModal();
192
- const keys = await updateSelected(selectedKeys);
193
- (_props$onChange2 = props.onChange) === null || _props$onChange2 === void 0 ? void 0 : _props$onChange2.call(props, keys);
194
- };
195
-
196
- const handleInstancesSelectedV2 = instanceDataList => {
197
- var _props$onChangeV;
198
-
199
- (_props$onChangeV = props.onChangeV2) === null || _props$onChangeV === void 0 ? void 0 : _props$onChangeV.call(props, instanceDataList);
193
+ const instances = await updateSelected(selectedKeys);
194
+ handleChange(instances);
200
195
  };
201
196
 
202
197
  const handleInputChanged = event => {
@@ -210,8 +205,6 @@ const LegacyCmdbInstancesInputFormItem = (props, ref) => {
210
205
  if (!props.checkDisabled) {
211
206
  await checkInputValue(inputValue);
212
207
  } else {
213
- var _props$onChange3;
214
-
215
208
  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);
216
209
  const instances = (await (0, _cmdbSdk.InstanceApi_postSearch)(props.objectId, {
217
210
  query: {
@@ -230,7 +223,7 @@ const LegacyCmdbInstancesInputFormItem = (props, ref) => {
230
223
  valid: instances || [],
231
224
  invalid: []
232
225
  });
233
- (_props$onChange3 = props.onChange) === null || _props$onChange3 === void 0 ? void 0 : _props$onChange3.call(props, instances.map(instance => instance.instanceId));
226
+ handleChange(instances);
234
227
  }
235
228
  }
236
229
 
@@ -238,14 +231,14 @@ const LegacyCmdbInstancesInputFormItem = (props, ref) => {
238
231
  };
239
232
 
240
233
  const closeInvalidFieldValuesModal = () => {
241
- var _props$onChange4;
234
+ var _props$onChange2;
242
235
 
243
236
  setSelectedInstances({
244
237
  valid: selectedInstances.valid,
245
238
  invalid: []
246
239
  });
247
240
  setInputValue(selectedInstances.valid.map(instance => instance[props.fieldId]).join(separator));
248
- (_props$onChange4 = props.onChange) === null || _props$onChange4 === void 0 ? void 0 : _props$onChange4.call(props, selectedInstances.valid.map(instance => instance.instanceId));
241
+ (_props$onChange2 = props.onChange) === null || _props$onChange2 === void 0 ? void 0 : _props$onChange2.call(props, selectedInstances.valid.map(instance => instance.instanceId));
249
242
  };
250
243
 
251
244
  const text = props.selectFromText ? props.selectFromText : t(_constants.K.SELECT_FROM_CMDB);
@@ -274,10 +267,10 @@ const LegacyCmdbInstancesInputFormItem = (props, ref) => {
274
267
  permission: permission,
275
268
  selectedRowKeys: selectedInstances.valid.map(instance => instance.instanceId),
276
269
  onSelected: handleInstancesSelected,
277
- onSelectedV2: handleInstancesSelectedV2,
278
270
  singleSelect: props.singleSelect,
279
271
  onCancel: closeSelectInstancesModal,
280
272
  defaultQuery: props.defaultQuery,
273
+ pageSizeOptions: props.pageSizeOptions,
281
274
  "data-testid": "select-modal"
282
275
  }), /*#__PURE__*/_react.default.createElement("div", {
283
276
  className: _cmdbInstancesInputFormModule.default.cmdbInstancesInputFormWrapper
@@ -311,6 +304,7 @@ const LegacyCmdbInstancesInputFormItem = (props, ref) => {
311
304
  relatedToMeDisabled: true,
312
305
  moreButtonsDisabled: true,
313
306
  selectDisabled: true,
307
+ pageSizeOptions: props.pageSizeOptions,
314
308
  "data-testid": "preview-modal"
315
309
  }), /*#__PURE__*/_react.default.createElement(_antd.Button, {
316
310
  type: "link",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/cmdb-instances-input-form/CmdbInstancesInputFormItem.tsx"],"names":["separator","LegacyCmdbInstancesInputFormItem","props","ref","t","NS_LIBS_CMDB_INSTANCES","presetQuery","permission","objectId","checkAgentStatus","_agentStatus","checkPermission","push","objectData","objectMap","fieldData","__fieldList","find","field","__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","fields","list","instanceIds","selectedInstancesMap","selectedInstance","includes","true","false","invalidSelectedInstance","updateSelected","page","page_size","instanceData","join","keys","checkDisabled","value","checkInputValue","fieldValues","match","split","$and","validSelectedInstances","filter","validFieldValues","invalidFieldValues","fieldValue","onChange","openSelectInstancesModal","closeSelectInstancesModal","handleInstancesSelected","selectedKeys","handleInstancesSelectedV2","instanceDataList","onChangeV2","handleInputChanged","event","target","handleInputBlur","closeInvalidFieldValuesModal","text","selectFromText","K","SELECT_FROM_CMDB","TIP","DELETE","INVALID_OR_FORBIDDEN_IPS","INVALID","name","singleSelect","defaultQuery","style","cmdbInstancesInputFormWrapper","fieldInput","inputDisabled","modalButton","addButtonDisabled","VIEW_SPECIFIC_INSTANCES","CmdbInstancesInputFormItem"],"mappings":"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","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 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 defaultQuery?: { [fieldId: string]: any }[];\n addButtonDisabled?: boolean;\n previewEnabled?: 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\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: {\n instanceId: true,\n [props.fieldId]: true,\n },\n })\n ).list;\n const instanceIds = instances.map((instance) => instance.instanceId);\n\n const selectedInstancesMap = groupBy(\n selectedInstances,\n (selectedInstance) => instanceIds.includes(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\n ? selectedInstancesMap.true.map((instance) => instance.instanceId)\n : [];\n }\n };\n\n const updateSelected = async (instanceIds: string[]): Promise<string[]> => {\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: {\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 keys: string[] = [];\n if (selectedInstances.length) {\n if (!props.checkDisabled) {\n keys = await checkSelectedInstances(selectedInstances);\n } else {\n keys = selectedInstances.map((instance) => instance.instanceId);\n }\n } else {\n setSelectedInstances({ valid: [], invalid: [] });\n }\n return keys;\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 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: {\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 props.onChange?.(\n validSelectedInstances.map((instance) => instance.instanceId)\n );\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 keys = await updateSelected(selectedKeys);\n\n props.onChange?.(keys);\n };\n\n const handleInstancesSelectedV2 = (instanceDataList: any[]) => {\n props.onChangeV2?.(instanceDataList);\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: {\n instanceId: true,\n [props.fieldId]: true,\n },\n })\n ).list;\n\n setSelectedInstances({\n valid: instances || [],\n invalid: [],\n });\n\n props.onChange?.(instances.map((instance) => instance.instanceId));\n }\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 }}\n permission={permission}\n selectedRowKeys={selectedInstances.valid.map(\n (instance) => instance.instanceId\n )}\n onSelected={handleInstancesSelected}\n onSelectedV2={handleInstancesSelectedV2}\n singleSelect={props.singleSelect}\n onCancel={closeSelectInstancesModal}\n defaultQuery={props.defaultQuery}\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 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 }}\n permission={permission}\n onCancel={() => setPreviewVisible(false)}\n defaultQuery={props.defaultQuery}\n searchDisabled\n advancedSearchDisabled\n aliveHostsDisabled\n relatedToMeDisabled\n moreButtonsDisabled\n selectDisabled\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"],"file":"CmdbInstancesInputFormItem.js"}
1
+ {"version":3,"sources":["../../../src/cmdb-instances-input-form/CmdbInstancesInputFormItem.tsx"],"names":["separator","LegacyCmdbInstancesInputFormItem","props","ref","t","NS_LIBS_CMDB_INSTANCES","presetQuery","permission","objectId","checkAgentStatus","_agentStatus","checkPermission","push","objectData","objectMap","fieldData","__fieldList","find","field","__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","fields","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","K","SELECT_FROM_CMDB","TIP","DELETE","INVALID_OR_FORBIDDEN_IPS","INVALID","name","singleSelect","defaultQuery","pageSizeOptions","style","cmdbInstancesInputFormWrapper","fieldInput","inputDisabled","modalButton","addButtonDisabled","VIEW_SPECIFIC_INSTANCES","CmdbInstancesInputFormItem"],"mappings":"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","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 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 defaultQuery?: { [fieldId: string]: any }[];\n addButtonDisabled?: boolean;\n previewEnabled?: boolean;\n pageSizeOptions?: string[];\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\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: {\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: {\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: {\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: {\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 }\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 }}\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 pageSizeOptions={props.pageSizeOptions}\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 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 }}\n permission={permission}\n onCancel={() => setPreviewVisible(false)}\n defaultQuery={props.defaultQuery}\n searchDisabled\n advancedSearchDisabled\n aliveHostsDisabled\n relatedToMeDisabled\n moreButtonsDisabled\n selectDisabled\n pageSizeOptions={props.pageSizeOptions}\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"],"file":"CmdbInstancesInputFormItem.js"}
@@ -273,6 +273,9 @@ exports.initAqToShow = initAqToShow;
273
273
  function InstanceList(props) {
274
274
  var _props$selectedRowKey, _props$extraFilterBri;
275
275
 
276
+ const {
277
+ showTooltip = true
278
+ } = props;
276
279
  const baseList = [{
277
280
  instanceId: "all",
278
281
  name: _i18next.default.t(`${_constants.NS_LIBS_CMDB_INSTANCES}:${_constants.K.ALL_CLUSTER}`)
@@ -1100,7 +1103,8 @@ function InstanceList(props) {
1100
1103
  target: props.target,
1101
1104
  ipCopy: props.ipCopy,
1102
1105
  fixedHeader: fixedHeader,
1103
- separatorUsedInRelationData: props.separatorUsedInRelationData
1106
+ separatorUsedInRelationData: props.separatorUsedInRelationData,
1107
+ showTooltip: showTooltip
1104
1108
  })) : null);
1105
1109
  }
1106
1110
  //# sourceMappingURL=InstanceList.js.map