@next-libs/cmdb-instances 6.45.0 → 6.46.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,25 @@
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.46.0](https://github.com/easyops-cn/next-libs/compare/@next-libs/cmdb-instances@6.45.1...@next-libs/cmdb-instances@6.46.0) (2022-10-17)
7
+
8
+
9
+ ### Features
10
+
11
+ * instanceList support presetConfigs.query refresh ([#441](https://github.com/easyops-cn/next-libs/issues/441)) ([cc94329](https://github.com/easyops-cn/next-libs/commit/cc9432976165d5a4069bed9c4d18923c1ebf8db7))
12
+
13
+
14
+
15
+
16
+
17
+ ## [6.45.1](https://github.com/easyops-cn/next-libs/compare/@next-libs/cmdb-instances@6.45.0...@next-libs/cmdb-instances@6.45.1) (2022-10-17)
18
+
19
+ **Note:** Version bump only for package @next-libs/cmdb-instances
20
+
21
+
22
+
23
+
24
+
6
25
  # [6.45.0](https://github.com/easyops-cn/next-libs/compare/@next-libs/cmdb-instances@6.44.2...@next-libs/cmdb-instances@6.45.0) (2022-10-15)
7
26
 
8
27
 
@@ -457,7 +457,7 @@ function LegacyInstanceList(props) {
457
457
 
458
458
  const [q, setQ] = (0, _react.useState)(props.q);
459
459
  const [state, setState] = (0, _react.useReducer)(reducer, undefined, () => {
460
- var _ref, _props$dataSource$pag, _props$dataSource, _ref2, _props$dataSource$pag2, _props$dataSource2;
460
+ var _ref, _props$dataSource$pag, _props$dataSource, _ref2, _props$dataSource$pag2, _props$dataSource2, _props$presetConfigs3;
461
461
 
462
462
  return {
463
463
  objectId: props.objectId,
@@ -476,6 +476,7 @@ function LegacyInstanceList(props) {
476
476
  failed: false,
477
477
  isAdvancedSearchVisible: false,
478
478
  fieldIds: getFields(),
479
+ presetConfigsQuery: (_props$presetConfigs3 = props.presetConfigs) === null || _props$presetConfigs3 === void 0 ? void 0 : _props$presetConfigs3.query,
479
480
  autoBreakLine: false,
480
481
  appSearchInstanceId: "",
481
482
  currentChangeSelect: "App",
@@ -583,9 +584,9 @@ function LegacyInstanceList(props) {
583
584
 
584
585
 
585
586
  if (state.searchByApp) {
586
- var _props$presetConfigs3, _props$presetConfigs4, _props$presetConfigs5, _props$presetConfigs6, _props$presetConfigs7;
587
+ var _props$presetConfigs4, _props$presetConfigs5, _props$presetConfigs6, _props$presetConfigs7, _props$presetConfigs8;
587
588
 
588
- const hostRange = (_props$presetConfigs3 = props.presetConfigs) === null || _props$presetConfigs3 === void 0 ? void 0 : (_props$presetConfigs4 = _props$presetConfigs3.query) === null || _props$presetConfigs4 === void 0 ? void 0 : (_props$presetConfigs5 = _props$presetConfigs4["$and"]) === null || _props$presetConfigs5 === void 0 ? void 0 : (_props$presetConfigs6 = _props$presetConfigs5.find(i => i.instanceId)) === null || _props$presetConfigs6 === void 0 ? void 0 : (_props$presetConfigs7 = _props$presetConfigs6.instanceId) === null || _props$presetConfigs7 === void 0 ? void 0 : _props$presetConfigs7["$in"];
589
+ const hostRange = (_props$presetConfigs4 = props.presetConfigs) === null || _props$presetConfigs4 === void 0 ? void 0 : (_props$presetConfigs5 = _props$presetConfigs4.query) === null || _props$presetConfigs5 === void 0 ? void 0 : (_props$presetConfigs6 = _props$presetConfigs5["$and"]) === null || _props$presetConfigs6 === void 0 ? void 0 : (_props$presetConfigs7 = _props$presetConfigs6.find(i => i.instanceId)) === null || _props$presetConfigs7 === void 0 ? void 0 : (_props$presetConfigs8 = _props$presetConfigs7.instanceId) === null || _props$presetConfigs8 === void 0 ? void 0 : _props$presetConfigs8["$in"];
589
590
  v3Data.query = {
590
591
  [state.currentChangeSelect === "App" || state.currentChangeSelect === "Cluster" && state.clusterValue === "all" ? "_deviceList_CLUSTER.appId.instanceId" : "_deviceList_CLUSTER.instanceId"]: state.appSearchInstanceId,
591
592
  ...(!(0, _lodash.isEmpty)(hostRange) && props.limitInstanceRange ? {
@@ -644,12 +645,17 @@ function LegacyInstanceList(props) {
644
645
  };
645
646
 
646
647
  (0, _react.useEffect)(() => {
648
+ var _props$presetConfigs9;
649
+
647
650
  const fieldIds = getFields();
648
651
 
649
652
  if ( // 当 props.objectId 改变时,总是更新 state.fieldIds
650
- props.objectId !== state.objectId || !(0, _lodash.isEqual)(fieldIds, state.fieldIds)) {
653
+ props.objectId !== state.objectId || !(0, _lodash.isEqual)(fieldIds, state.fieldIds) || !(0, _lodash.isEqual)((_props$presetConfigs9 = props.presetConfigs) === null || _props$presetConfigs9 === void 0 ? void 0 : _props$presetConfigs9.query, state.presetConfigsQuery)) {
654
+ var _props$presetConfigs10;
655
+
651
656
  setState({
652
- fieldIds
657
+ fieldIds,
658
+ presetConfigsQuery: (_props$presetConfigs10 = props.presetConfigs) === null || _props$presetConfigs10 === void 0 ? void 0 : _props$presetConfigs10.query
653
659
  });
654
660
  }
655
661
  }, [props.objectId, props.presetConfigs]);
@@ -698,7 +704,7 @@ function LegacyInstanceList(props) {
698
704
  (0, _react.useEffect)(() => {
699
705
  if ((0, _lodash.isEmpty)(state.fieldIds)) return;
700
706
  refreshInstanceList(state.sort, state.asc, state.page);
701
- }, [state.page, state.sort, state.asc, state.fieldIds, state.appSearchInstanceId, state.currentChangeSelect, state.searchByApp, props.dataSource]);
707
+ }, [state.page, state.sort, state.asc, state.fieldIds, state.appSearchInstanceId, state.currentChangeSelect, state.searchByApp, props.dataSource, state.presetConfigsQuery]);
702
708
 
703
709
  const onChange = e => {
704
710
  setQ(e.target.value);
@@ -888,10 +894,10 @@ function LegacyInstanceList(props) {
888
894
  };
889
895
 
890
896
  const defaultFields = (0, _react.useMemo)(() => {
891
- var _props$presetConfigs8, _props$extraFixedFiel2;
897
+ var _props$presetConfigs11, _props$extraFixedFiel2;
892
898
 
893
899
  let defaultFields;
894
- const fieldIds = (_props$presetConfigs8 = props.presetConfigs) === null || _props$presetConfigs8 === void 0 ? void 0 : _props$presetConfigs8.fieldIds,
900
+ const fieldIds = (_props$presetConfigs11 = props.presetConfigs) === null || _props$presetConfigs11 === void 0 ? void 0 : _props$presetConfigs11.fieldIds,
895
901
  extraFixedFieldIds = (_props$extraFixedFiel2 = props.extraFixedFields) !== null && _props$extraFixedFiel2 !== void 0 ? _props$extraFixedFiel2 : [];
896
902
 
897
903
  if (!(0, _lodash.isEmpty)(fieldIds)) {
@@ -1 +1 @@
1
- {"version":3,"file":"InstanceList.js","names":["joinRelationFieldAndShowkey","fields","modelData","objectList","attrIdMap","keyBy","attrList","map","field","relation","relation_list","find","left_id","right_id","isLeft","left_object_id","objectId","otherSideObjectId","right_object_id","otherSideObject","object","showKey","view","show_key","getQuery","idObjectMap","q","onlySearchByIp","query","$or","queryValues","trim","split","searchIpFields","getRuntime","getCurrentApp","config","queryOrs","Set","searchValue","$like","forEach","key","push","forEachAvailableFields","attr","queryValue","id","sides","this","nameKeys","getInstanceNameKeys","that","nameKey","isSpecialFn","attrId","Object","keys","some","v","specialQueryHandler","queries","isSpecial","isValueEqualFn","valuesStr","values","join","translateConditions","aq","t","conditions","relations","sidesArr","isSelfRelation","getRelationObjectSides","relationObject","nameOfNameKey","name","value","type","relationSideId","attrAndRelationList","isEmpty","ElementOperators","Exists","changeQueryWithCustomRules","info","getFieldConditionsAndValues","undefined","ConditionType","Between","Empty","NotEmpty","False","True","includes","currentCondition","isString","replace","condition","label","curCondition","queryValuesStr","every","isEqual","omit","newKey","fieldIds","length","isOfStruct","fieldId","structFields","filter","structs","struct_define","struct","flat","isOfBoolean","keyAttrMap","ModelAttributeValueType","BOOLEAN","initAqToShow","isToShow","newAqToShow","aqToShow","entries","expressions","newExpressions","LogicalOperators","Or","And","firstSubQuery","isStruct","isBool","structQueries","expression","structExpressions","item","boolExpressions","targetValue","LegacyInstanceList","props","showTooltip","baseList","instanceId","i18n","NS_LIBS_CMDB_INSTANCES","K","ALL_CLUSTER","jsonLocalStorage","JsonStorage","localStorage","reducer","prevState","updatedProperty","listProvider","useProvider","useMemo","disabledDefaultFields","union","extraFieldAttrs","inheritanceModelIdNameMap","setInheritanceModelIdNameMap","useState","fixedHeader","setFixHeader","fetchInheritanceModelIdNameMap","idNameMap","isAbstract","CmdbObjectApi_getIdMapName","parentObjectId","useEffect","computeDefaultFields","inModal","settings","CMDB_MODAL_FIELDS_SETTINGS","CMDB_RESOURCE_FIELDS_SETTINGS","ignoredFields","difference","uniq","slice","hideModelData","hide_columns","_sortFieldIds","frontFields","restFields","presetConfigs","sortBy","reject","foundIndex","findIndex","attr_order","orderId","getFields","extraFixedFieldIds","extraFixedFields","getItem","extraDisabledField","setQ","state","setState","useReducer","instanceSourceQuery","asc","sort","page","dataSource","pageSize","aliveHosts","relatedToMe","inited","loading","failed","isAdvancedSearchVisible","autoBreakLine","appSearchInstanceId","currentChangeSelect","appSelectValue","clusterValue","appList","clusterList","searchByApp","selectedRowKeys","setSelectedRowKeys","cache","useRef","Map","isFirstRunRef","getInstanceListData","data","v3Data","concat","permission","sortType","default_type","order","defaultQuery","$and","fromEntries","ignore_missing_field_error","useAutoDiscoveryProvider","_agentStatus","_object_id","extraParams","assign","only_my_instance","hostRange","i","limitInstanceRange","$in","promise","onSearchExecute","InstanceApi_postSearchV3","refreshInstanceList","instanceListData","hideInstanceList","list","current","set","e","handleHttpError","skip","onPaginationChange","onChange","target","onSelectionChange","useCallback","selected","selectedItems","selectedKeys","compact","ids","has","resp","params","page_size","get","onSearch","onAdvancedSearch","queriesToShow","fieldToShow","onSortingChange","pagination","onInstanceSourceChange","onRelatedToMeChange","checked","onAliveHostsChange","toggleAutoBreakLine","toggleSearchMode","React","appListResp","clusters","appSelectChange","r","clusterSelectChange","defaultFields","handleConfirm","isReset","removeItem","onFieldsModalConfirm","setItem","notifyCurrentFields","handleToggleFixHeader","onAdvancedSearchCloseGen","filterAq","filteredSubQueries","startsWith","Array","isArray","isInstanceFilterForm","searchDisabled","advancedSearchDisabled","relatedToMeDisabled","aliveHostsDisabled","moreButtonsDisabled","styles","instanceListToolbar","searchRelated","marginLeft","marginRight","ADVANCED_SEARCH","width","options","CHOSEN_OPTIONS","count","CLEAR","enableSearchByApp","FREE_SELECTION","APP_SELECTION","fixAliveHosts","NORMAL_HOST","RELATED_TO_ME","showHiddenInfoDisabled","DISPLAY_OMITTED_INFORMATION","showFixedHeader","marginBottom","autoSearch","hideSearchConditions","searchConditions","CURRENT_FILTER_REQUIREMENTS","FUZZY_SEARCH","INSTANCE_SOURCE_TAG_TEXT","uniqueId","extraFilterBricks","useBrick","detailUrlTemplates","selectDisabled","sortDisabled","propertyDisplayConfigs","onClickItem","onClickItemV2","filterInstanceSourceDisabled","relationLinkDisabled","pageSizeOptions","showSizeChanger","extraColumns","ipCopy","separatorUsedInRelationData","rowSelectionType","InstanceList","setObjectList","cacheData","objectListCache","CmdbObjectApi_getObjectRef","ref_object"],"sources":["../../../src/instance-list/InstanceList.tsx"],"sourcesContent":["import React, {\n useEffect,\n useReducer,\n useState,\n useRef,\n useMemo,\n useCallback,\n} from \"react\";\nimport {\n difference,\n isEmpty,\n isEqual,\n isString,\n map,\n uniq,\n union,\n filter,\n reject,\n sortBy,\n uniqueId,\n findIndex,\n find,\n startsWith,\n compact,\n omit,\n keyBy,\n} from \"lodash\";\nimport {\n BrickAsComponent,\n getRuntime,\n handleHttpError,\n useProvider,\n} from \"@next-core/brick-kit\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport {\n PropertyDisplayConfig,\n ReadPaginationChangeDetail,\n ReadSelectionChangeDetail,\n ReadSortingChangeDetail,\n UseBrickConf,\n} from \"@next-core/brick-types\";\nimport {\n CmdbModels,\n InstanceApi_PostSearchRequestBody,\n InstanceApi_PostSearchV3RequestBody,\n InstanceApi_PostSearchV3ResponseBody,\n InstanceApi_postSearchV3,\n CmdbObjectApi_getIdMapName,\n CmdbObjectApi_getObjectRef,\n} from \"@next-sdk/cmdb-sdk\";\nimport { Icon as LegacyIcon } from \"@ant-design/compatible\";\nimport { Button, Spin, Input, Tag, Select } from \"antd\";\nimport {\n getRelationObjectSides,\n forEachAvailableFields,\n getInstanceNameKeys,\n RelationIdKeys,\n RelationNameKeys,\n RelationObjectIdKeys,\n RelationObjectSides,\n isSelfRelation,\n Query,\n ElementOperators,\n LogicalOperators,\n ComparisonOperators,\n} from \"@next-libs/cmdb-utils\";\nimport { JsonStorage } from \"@next-libs/storage\";\nimport { ModelObjectAttr } from \"@next-sdk/cmdb-sdk/dist/types/model/cmdb\";\n\nimport {\n ConditionType,\n AdvancedSearch,\n getFieldConditionsAndValues,\n MoreButtonsContainer,\n InstanceListTable,\n CustomColumn,\n Field,\n UseBrickAndPropertyDisplayConfig,\n} from \"../instance-list-table\";\nimport styles from \"./InstanceList.module.css\";\nimport {\n extraFieldAttrs,\n CMDB_MODAL_FIELDS_SETTINGS,\n CMDB_RESOURCE_FIELDS_SETTINGS,\n objectListCache,\n} from \"./constants\";\nimport { ModelAttributeValueType } from \"../model-attribute-form-control/ModelAttributeFormControl\";\nimport { IconButton } from \"./IconButton\";\nimport { changeQueryWithCustomRules } from \"../processors\";\nimport { DisplaySettingsModalData } from \"../instance-list-table/DisplaySettingsModal\";\nexport interface InstanceListPresetConfigs {\n query?: Record<string, any>;\n fieldIds?: string[];\n}\nexport function joinRelationFieldAndShowkey(\n fields: string[],\n modelData: Record<string, any>,\n objectList: Record<string, any>[]\n) {\n const attrIdMap = keyBy(modelData.attrList, \"id\");\n return fields.map((field) => {\n if (attrIdMap[field]) {\n return field;\n } else {\n const relation = modelData.relation_list.find(\n (relation: any) =>\n relation.left_id === field || relation.right_id === field\n );\n if (relation) {\n const isLeft = relation.left_object_id === modelData.objectId;\n const otherSideObjectId = isLeft\n ? relation.right_object_id\n : relation.left_object_id;\n const otherSideObject = objectList.find(\n (object) => object.objectId === otherSideObjectId\n );\n const showKey = otherSideObject?.view?.show_key?.[0] ?? \"\";\n return `${field}.${showKey}`;\n } else {\n return field;\n }\n }\n });\n}\n\nexport function getQuery(\n modelData: Partial<CmdbModels.ModelCmdbObject>,\n idObjectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>,\n q: string,\n fields?: string[],\n onlySearchByIp?: boolean\n) {\n const query: Record<string, any> = { $or: [] };\n const queryValues = q.trim().split(/\\s+/);\n if (onlySearchByIp) {\n const searchIpFields =\n (getRuntime().getCurrentApp().config?.searchIpFields as string[]) || [];\n const queryOrs = [...new Set([\"ip\", ...searchIpFields])];\n const searchValue = { $like: `%${q.trim()}%` };\n queryOrs.forEach((key) => {\n query.$or.push({ [key]: searchValue });\n });\n return query;\n }\n forEachAvailableFields(\n modelData,\n (attr) => {\n queryValues.forEach((queryValue) =>\n query.$or.push({ [attr.id]: { $like: `%${queryValue}%` } })\n );\n },\n (relation, sides) => {\n const id = relation[`${sides.this}_id` as RelationIdKeys];\n const nameKeys = getInstanceNameKeys(\n idObjectMap[relation[`${sides.that}_object_id` as RelationObjectIdKeys]]\n );\n\n queryValues.forEach((queryValue) => {\n nameKeys.forEach((nameKey) => {\n query.$or.push({\n [`${id}.${nameKey}`]: { $like: `%${queryValue}%` },\n });\n });\n });\n },\n fields\n );\n\n return query;\n}\n\nexport const isSpecialFn = (query: any, attrId: string) => {\n return Object.keys(query[attrId] as Query[]).some(\n (v) => v === \"$exists\" || v === \"$gte\" || v === \"$lte\"\n );\n};\n\nexport const specialQueryHandler = (query: any, key: any, queries: Query[]) => {\n // $exists $gte $lte 针对为空,不为空,时间范围特殊处理\n const isSpecial = isSpecialFn(query, key);\n if (isSpecial) {\n return;\n }\n queries.push(query);\n};\n\nexport const isValueEqualFn = (\n query: any,\n attrId: string,\n valuesStr?: string\n) => {\n const isSpecial = isSpecialFn(query, attrId);\n if (isSpecial) return false;\n return query[attrId]\n ? valuesStr && Object.values(query[attrId]).join(\" \") !== valuesStr // 当条件是为空和不为空时,需要判断valuesStr是否存在\n : false;\n};\n\nfunction translateConditions(\n aq: Query[],\n idObjectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>,\n modelData: Partial<CmdbModels.ModelCmdbObject>,\n t?: () => string\n): { attrId: string; condition: string; valuesStr: string }[] {\n const conditions: {\n attrId: string;\n condition: string;\n valuesStr: string;\n }[] = [];\n const relations: any[] = [];\n modelData.relation_list.forEach((relation) => {\n let sidesArr: RelationObjectSides[] = [];\n if (isSelfRelation(relation)) {\n sidesArr = [\n { this: \"left\", that: \"right\" },\n { this: \"right\", that: \"left\" },\n ];\n } else {\n sidesArr = [getRelationObjectSides(relation, modelData)];\n }\n sidesArr.forEach((sides) => {\n const objectId = relation[`${sides.this}_id` as RelationIdKeys];\n const relationObject =\n idObjectMap[\n relation[`${sides.that}_object_id` as RelationObjectIdKeys]\n ];\n const nameKeys = getInstanceNameKeys(relationObject);\n nameKeys.forEach((nameKey) => {\n const nameOfNameKey =\n find(relationObject?.attrList, [\"id\", nameKey])?.name ?? nameKey;\n const id = `${objectId}.${nameKey}`;\n const name = `${\n relation[`${sides.this}_name` as RelationNameKeys]\n }(${nameOfNameKey})`;\n relations.push({\n id,\n name,\n value: { type: \"str\" },\n relationSideId: relation[`${sides.this}_id` as RelationIdKeys],\n });\n });\n relations.push({\n id: `${objectId}.`,\n name: `${relation[`${sides.this}_name` as RelationNameKeys]}`,\n value: { type: \"str\" },\n relationSideId: relation[`${sides.this}_id` as RelationIdKeys],\n });\n });\n });\n const attrAndRelationList = [...modelData.attrList, ...relations];\n if (!isEmpty(aq)) {\n for (const query of aq) {\n let queries: Query[] = [query];\n if (Object.keys(query)[0] === \"$or\" || Object.keys(query)[0] === \"$and\") {\n queries = query[Object.keys(query)[0]] as Query[];\n }\n\n queries.forEach((query) => {\n const key = Object.keys(query)[0];\n const value = Object.values(query)[0];\n let attr = attrAndRelationList.find(\n (attr) => attr.id === key || attr.relationSideId === key\n );\n if (\n Object.keys(value)[0] === ElementOperators.Exists &&\n attr.relationSideId\n ) {\n const relationSideId = attr.relationSideId;\n attr =\n attrAndRelationList.find(\n (attr) => attr.id === `${relationSideId}.`\n ) || attr;\n }\n if (attr) {\n query = changeQueryWithCustomRules(\n modelData.objectId,\n attr.id,\n query\n );\n const info = getFieldConditionsAndValues(\n query as any,\n key,\n attr.value.type as ModelAttributeValueType,\n undefined,\n undefined,\n modelData.objectId,\n attr.id\n );\n if (\n ![\n ConditionType.Between,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ConditionType.False,\n ConditionType.True,\n ].includes(info.currentCondition.type)\n ) {\n info.values = info.values.map((v) =>\n isString(v) && v.includes(\" \") ? v.replace(/^\"+|\"+$/g, \"\") : v\n );\n }\n\n let condition = `${attr.name}: ${info.currentCondition.label}`;\n if (\n ![ConditionType.Empty, ConditionType.NotEmpty].includes(\n info.currentCondition.type\n )\n ) {\n condition += `\"${info.values.join(\" ~ \")}\"`;\n }\n const curCondition = {\n attrId: key,\n condition,\n valuesStr: info.queryValuesStr,\n };\n if (\n conditions.every(\n (v) => !isEqual(omit(v, \"attrId\"), omit(curCondition, \"attrId\"))\n )\n ) {\n conditions.push(curCondition);\n }\n }\n });\n }\n }\n\n return conditions;\n}\n\nfunction newKey(fieldIds: string[], aq: Query[]): string {\n let key = \"\";\n if (!isEmpty(fieldIds)) {\n key += fieldIds.join(\"-\");\n }\n if (!isEmpty(aq)) {\n key += `-${aq.length}`;\n }\n return key;\n}\nconst isOfStruct = (\n modelData: Partial<CmdbModels.ModelCmdbObject>,\n fieldId: string\n) => {\n const structFields = modelData.attrList\n .filter(\n (attr: Partial<ModelObjectAttr>) =>\n attr.value.type === \"struct\" || attr.value.type === \"structs\"\n )\n ?.map((attr) => {\n const structs: string[] = [];\n attr.value.struct_define.forEach((struct) => {\n structs.push(`${attr.id}.${struct.id}`);\n });\n return structs;\n })\n .flat();\n return structFields.includes(fieldId);\n};\n\nconst isOfBoolean = (\n attrList: Partial<CmdbModels.ModelObjectAttr>[],\n fieldId: string\n): boolean => {\n const keyAttrMap = keyBy(attrList, \"id\");\n return keyAttrMap[fieldId]?.value.type === ModelAttributeValueType.BOOLEAN;\n};\n\nexport const initAqToShow = (\n aq: Query[],\n modelData: Partial<CmdbModels.ModelCmdbObject>,\n isToShow = true\n) => {\n let newAqToShow: any[] = [];\n if (aq) {\n aq.forEach((query) => {\n const aqToShow = Object.entries(query).map(([key, expressions]) => {\n let newExpressions: any[] = [];\n if (key === LogicalOperators.Or || key === LogicalOperators.And) {\n const firstSubQuery = (expressions as Query[])[0];\n const fieldId = Object.keys(firstSubQuery)[0];\n const isStruct = isOfStruct(modelData, fieldId);\n const isBool = isOfBoolean(modelData.attrList, fieldId);\n const structQueries: Record<string, any> = (\n expressions as Query[]\n ).filter((expression) => Object.keys(expression)[0] === fieldId);\n if (isStruct && isToShow) {\n const structExpressions = structQueries.map((item: any) => ({\n [fieldId.split(\".\")[0]]: item[fieldId],\n }));\n newExpressions = [...newExpressions, ...structExpressions];\n } else if (isBool && !isToShow) {\n const boolExpressions = (expressions as Query[]).map(\n (expression) => {\n const targetValue = expression[fieldId] as Record<\n ComparisonOperators,\n any\n >;\n if (typeof Object.values(targetValue)[0] === \"string\") {\n return {\n [fieldId]: {\n [Object.keys(targetValue)[0]]:\n Object.values(targetValue)[0] === \"true\",\n },\n };\n } else {\n return expression;\n }\n }\n );\n newExpressions = [...newExpressions, ...boolExpressions];\n } else {\n newExpressions = [...newExpressions, ...(expressions as Query[])];\n }\n return { [key]: newExpressions };\n } else {\n return query;\n }\n });\n newAqToShow = [...newAqToShow, ...aqToShow];\n });\n return newAqToShow;\n }\n return;\n};\n\ninterface InstanceListProps {\n objectId: string;\n objectList?: Partial<CmdbModels.ModelCmdbObject>[];\n detailUrlTemplates?: Record<string, string>;\n presetConfigs?: InstanceListPresetConfigs;\n permission?: string[];\n q?: string;\n searchDisabled?: boolean;\n sortDisabled?: boolean;\n aq?: Query[];\n aqToShow?: Query[];\n advancedSearchDisabled?: boolean;\n page?: number;\n pageSize?: number;\n sort?: string;\n asc?: boolean;\n relatedToMe?: boolean;\n relatedToMeDisabled?: boolean;\n showHiddenInfoDisabled?: boolean;\n moreButtonsDisabled?: boolean;\n aliveHosts?: boolean;\n fixAliveHosts?: boolean;\n aliveHostsDisabled?: boolean;\n propertyDisplayConfigs?: UseBrickAndPropertyDisplayConfig[];\n selectedRowKeys?: string[];\n selectDisabled?: boolean;\n pageSizeOptions?: string[];\n showSizeChanger?: boolean;\n filterInstanceSourceDisabled?: boolean;\n instanceSourceQuery?: string;\n isInstanceFilterForm?: boolean;\n onSearchExecute?(\n data: InstanceApi_PostSearchRequestBody,\n v3Data: InstanceApi_PostSearchV3RequestBody\n ): Promise<InstanceApi_PostSearchV3ResponseBody> | void;\n onSearch?(value: string): void;\n onAdvancedSearch?(queries: Query[]): void;\n onClickItem?(\n evt: React.MouseEvent<HTMLAnchorElement, MouseEvent>,\n id: string\n ): void;\n onClickItemV2?(\n evt: React.MouseEvent<HTMLAnchorElement, MouseEvent>,\n record: Record<string, any>\n ): void;\n onPaginationChange?(pagination: ReadPaginationChangeDetail): void;\n onSortingChange?(sorting: ReadSortingChangeDetail): void;\n onSelectionChange?(selection: ReadSelectionChangeDetail): void;\n onRelatedToMeChange?(value: boolean): void;\n onAliveHostsChange?(value: boolean): void;\n onInstanceSourceChange?(instanceResource: string): void;\n onFieldsModalConfirm?(fields: Record<string, any>): void;\n relationLinkDisabled?: boolean;\n notifyCurrentFields?: (fiels: string[]) => void;\n defaultQuery?: { [fieldId: string]: any }[];\n extraFilterBricks?: {\n useBrick: UseBrickConf;\n };\n extraColumns?: CustomColumn[];\n extraDisabledField?: string;\n hideSearchConditions?: boolean;\n onlySearchByIp?: boolean;\n target?: string;\n ipCopy?: boolean;\n enableSearchByApp?: boolean;\n dataSource?: {\n list: Record<string, any>[];\n total?: number;\n page?: number;\n pageSize?: number;\n };\n separatorUsedInRelationData?: string;\n hideInstanceList?: boolean;\n autoSearch?: (fields: Field[]) => void;\n disabledDefaultFields?: boolean;\n showTooltip?: boolean;\n showFixedHeader?: boolean;\n rowSelectionType?: \"checkbox\" | \"radio\";\n useAutoDiscoveryProvider?: boolean;\n extraParams?: Record<string, any>;\n // 指定固定显示的field,与presetConfigs的fieldIds同时生效\n extraFixedFields?: string[];\n // 如果在presetConfigs的query参数中指定了资源的范围,“按应用筛选”的功能是否也要限定资源的范围\n limitInstanceRange?: boolean;\n}\n\ninterface InstanceListState {\n objectId: string;\n q: string;\n aq: Query[];\n aqToShow?: Query[];\n instanceSourceQuery: string;\n asc: boolean;\n sort: string;\n page: number;\n pageSize: number;\n aliveHosts: boolean;\n relatedToMe: boolean;\n inited: boolean;\n loading: boolean;\n failed: boolean;\n idObjectMap?: Record<string, Partial<CmdbModels.ModelCmdbObject>>;\n instanceListData?: InstanceApi_PostSearchV3ResponseBody;\n isAdvancedSearchVisible: boolean;\n fieldIds: string[];\n autoBreakLine: boolean;\n fieldToShow?: Record<string, any[]>[];\n appSearchInstanceId?: string;\n currentChangeSelect?: string;\n appSelectValue?: string;\n clusterValue?: string;\n appList?: Record<string, any>[];\n clusterList?: Record<string, any>[];\n searchByApp?: boolean;\n showTooltip?: boolean;\n}\n\nexport function LegacyInstanceList(\n props: InstanceListProps\n): React.ReactElement {\n const { showTooltip = true } = props;\n const baseList = [\n {\n instanceId: \"all\",\n name: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.ALL_CLUSTER}`),\n },\n ];\n const jsonLocalStorage = new JsonStorage(localStorage);\n const reducer = (\n prevState: InstanceListState,\n updatedProperty: Partial<InstanceListState>\n ): InstanceListState => {\n return {\n ...prevState,\n ...updatedProperty,\n };\n };\n // 资源自动发现页面24小时发现主机抽屉的实例列表处,通用的postSearchV3接口无法查到正确结果,需要用下面的接口替换,参数里也要加上jobId:***\n // 为了不影响其他地方的实例列表,在该处加一个useAutoDiscoveryProvider参数,该参数为undefined或false的,仍调用原接口\n\n const listProvider = useProvider(\"easyops.api.cmdb.job@SearchResource:1.0.1\");\n const { modelData, idObjectMap } = useMemo(() => {\n let modelData: Partial<CmdbModels.ModelCmdbObject>;\n const idObjectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>> = {};\n props.objectList.forEach((object) => {\n idObjectMap[object.objectId] = object;\n if (object.objectId === props.objectId) {\n modelData = object;\n modelData.attrList = !props.disabledDefaultFields\n ? union(object.attrList, extraFieldAttrs)\n : object.attrList;\n }\n });\n\n return { modelData, idObjectMap };\n }, [props.objectList, props.objectId]);\n\n const [inheritanceModelIdNameMap, setInheritanceModelIdNameMap] = useState<\n Record<string, string>\n >({});\n const [fixedHeader, setFixHeader] = useState(false);\n\n const fetchInheritanceModelIdNameMap = async (\n modelData: Partial<CmdbModels.ModelCmdbObject>\n ): Promise<void> => {\n let idNameMap = {};\n if (modelData.isAbstract) {\n idNameMap = await CmdbObjectApi_getIdMapName({\n parentObjectId: modelData.objectId,\n } as any);\n }\n setInheritanceModelIdNameMap(idNameMap);\n };\n\n useEffect(() => {\n fetchInheritanceModelIdNameMap(modelData);\n }, [modelData]);\n\n const computeDefaultFields = (\n { inModal } = { inModal: false }\n ): { fieldIds: string[] } => {\n // 原来有隐藏逻辑,针对 APP、HOST、USER、USER_GROUP模型,默认字段特殊处理了,现产品要求干掉,统一取8个默认字段,也不区分是否是内置模型\n const settings: any = inModal\n ? CMDB_MODAL_FIELDS_SETTINGS\n : CMDB_RESOURCE_FIELDS_SETTINGS;\n const ignoredFields: string[] =\n settings.ignoredFields[modelData.objectId] || [];\n let fieldIds: string[] = difference(\n uniq(map(modelData.attrList, \"id\")),\n ignoredFields\n ).slice(0, 8);\n const hideModelData: string[] = modelData.view.hide_columns || [];\n fieldIds = fieldIds.filter((field) => !hideModelData.includes(field));\n return { fieldIds };\n };\n\n // 根据用户预定义的 presetConfigs.fieldIds 进行排序,如果不在预定义的字段,则根据 modelData.view.attr_order 进行排序\n const _sortFieldIds = (fieldIds: any[]) => {\n let frontFields: any[] = [];\n let restFields: any[] = [];\n if (props.presetConfigs?.fieldIds) {\n frontFields = filter(props.presetConfigs.fieldIds, (id) =>\n fieldIds.includes(id)\n );\n }\n restFields = sortBy(\n reject(fieldIds, (id) => frontFields.includes(id)),\n (fieldId) => {\n const foundIndex = findIndex(\n modelData.view.attr_order,\n (orderId) => orderId === fieldId\n );\n if (foundIndex === -1) {\n return null;\n } else {\n return foundIndex;\n }\n }\n );\n return [...frontFields, ...restFields];\n };\n\n const getFields = () => {\n let fieldIds = props.presetConfigs?.fieldIds;\n const extraFixedFieldIds = props.extraFixedFields ?? [];\n if (isEmpty(fieldIds)) {\n fieldIds = jsonLocalStorage.getItem(\n `${modelData.objectId}-selectAttrIds`\n );\n }\n if (isEmpty(fieldIds)) {\n fieldIds = computeDefaultFields().fieldIds;\n }\n if (!isEmpty(extraFixedFieldIds)) {\n fieldIds = uniq([...fieldIds, ...extraFixedFieldIds]);\n }\n fieldIds = props.extraDisabledField\n ? uniq([...fieldIds, props.extraDisabledField])\n : fieldIds;\n fieldIds = _sortFieldIds(fieldIds);\n const hideModelData: string[] = modelData.view.hide_columns || [];\n fieldIds = fieldIds.filter((field) => !hideModelData.includes(field));\n modelData.isAbstract && fieldIds.push(\"_object_id\");\n return fieldIds;\n };\n\n const [q, setQ] = useState(props.q);\n const [state, setState] = useReducer(reducer, undefined, () => ({\n objectId: props.objectId,\n q: props.q,\n aq: initAqToShow(props.aq, modelData, false),\n aqToShow: props.aqToShow || initAqToShow(props.aq, modelData),\n instanceSourceQuery: props.instanceSourceQuery,\n asc: props.asc,\n sort: props.sort,\n page: props.dataSource?.page ?? props.page ?? 1,\n pageSize: props.dataSource?.pageSize ?? props.pageSize ?? 10,\n aliveHosts: props.aliveHosts,\n relatedToMe: props.relatedToMe,\n inited: false,\n loading: false,\n failed: false,\n isAdvancedSearchVisible: false,\n fieldIds: getFields(),\n autoBreakLine: false,\n appSearchInstanceId: \"\",\n currentChangeSelect: \"App\",\n appSelectValue: \"\",\n clusterValue: \"all\",\n appList: [],\n clusterList: [\n {\n instanceId: \"all\",\n name: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.ALL_CLUSTER}`),\n },\n ],\n searchByApp: false,\n }));\n const [selectedRowKeys, setSelectedRowKeys] = useState(\n props.selectedRowKeys ?? []\n );\n const cache = useRef(new Map<string, InstanceApi_PostSearchV3ResponseBody>());\n const isFirstRunRef = useRef(true);\n\n const getInstanceListData = async (\n sort: string,\n asc: boolean,\n page: number\n ): Promise<InstanceApi_PostSearchV3ResponseBody> => {\n const data: InstanceApi_PostSearchRequestBody = {};\n const v3Data: InstanceApi_PostSearchV3RequestBody = {\n fields: props?.extraFixedFields\n ? uniq([\"instanceId\"].concat(props?.extraFixedFields))\n : [\"instanceId\"],\n };\n if (!isEmpty(props.permission)) {\n v3Data.permission = data.permission = props.permission;\n }\n\n let query: Record<string, any> = {};\n\n v3Data.page = data.page = page;\n v3Data[\"page_size\"] = data[\"page_size\"] = state.pageSize;\n const sortType = modelData?.attrList?.find((attr) => attr.id === sort)\n ?.value?.default_type;\n const order = [\"series-number\", \"auto-increment-id\"].includes(sortType)\n ? asc\n ? 2\n : -2\n : asc\n ? 1\n : -1;\n if (sort) {\n data.sort = { [sort]: order };\n v3Data.sort = [{ key: sort, order }];\n }\n\n if (state.q) {\n query = getQuery(\n modelData,\n idObjectMap,\n state.q,\n state.fieldIds,\n props.onlySearchByIp\n );\n }\n\n if (!isEmpty(state.aq)) {\n query[LogicalOperators.And] = state.aq;\n }\n\n if (!isEmpty(props.defaultQuery)) {\n query[LogicalOperators.And] = [\n ...(query[LogicalOperators.And] || []),\n ...props.defaultQuery,\n ];\n }\n if (props.presetConfigs) {\n if (!isEmpty(props.presetConfigs.query)) {\n if (Object.keys(query).length) {\n query = {\n $and: [query, props.presetConfigs.query],\n };\n } else {\n query = props.presetConfigs.query;\n }\n }\n }\n if (state.fieldIds) {\n data.fields = Object.fromEntries(\n state.fieldIds.map((fieldId) => [fieldId, true])\n );\n v3Data.fields = [...state.fieldIds, ...v3Data.fields];\n (v3Data as any).ignore_missing_field_error = true;\n }\n if (props.useAutoDiscoveryProvider) {\n v3Data.fields = joinRelationFieldAndShowkey(\n v3Data.fields,\n modelData,\n props.objectList\n );\n }\n if (state.aliveHosts && props.objectId === \"HOST\") {\n query = { ...query, _agentStatus: \"正常\" };\n }\n if (state.instanceSourceQuery) {\n query = { ...query, _object_id: state.instanceSourceQuery };\n }\n\n if (!isEmpty(query)) {\n v3Data.query = data.query = query;\n }\n // useAutoDiscoveryProvider=true, 使用useProvider的接口,请求参数里加上extraParams\n\n if (props.useAutoDiscoveryProvider && !isEmpty(props.extraParams)) {\n Object.assign(v3Data, props.extraParams);\n }\n if (state.relatedToMe) {\n v3Data.only_my_instance = data.only_my_instance = state.relatedToMe;\n }\n //按应用筛选\n // istanbul ignore next (state is not updated)\n if (state.searchByApp) {\n const hostRange = props.presetConfigs?.query?.[\"$and\"]?.find(\n (i: any) => i.instanceId\n )?.instanceId?.[\"$in\"];\n v3Data.query = {\n [state.currentChangeSelect === \"App\" ||\n (state.currentChangeSelect === \"Cluster\" &&\n state.clusterValue === \"all\")\n ? \"_deviceList_CLUSTER.appId.instanceId\"\n : \"_deviceList_CLUSTER.instanceId\"]: state.appSearchInstanceId,\n ...(!isEmpty(hostRange) && props.limitInstanceRange\n ? {\n instanceId: { $in: hostRange },\n }\n : {}),\n ...(state.aliveHosts && props.objectId === \"HOST\"\n ? { _agentStatus: \"正常\" }\n : {}),\n };\n }\n const promise = props.onSearchExecute?.(data, v3Data);\n // useAutoDiscoveryProvider=true, 使用useProvider的接口\n return promise\n ? promise\n : props.useAutoDiscoveryProvider\n ? listProvider.query([props.objectId, v3Data])\n : InstanceApi_postSearchV3(props.objectId, v3Data);\n };\n\n const refreshInstanceList = async (\n sort: string,\n asc: boolean,\n page: number\n ): Promise<void> => {\n setState({ loading: true });\n try {\n if (props.dataSource) {\n setState({\n idObjectMap: idObjectMap,\n instanceListData: props.dataSource,\n });\n } else {\n if (!props.hideInstanceList) {\n const instanceListData = await getInstanceListData(sort, asc, page);\n instanceListData.list.forEach((i) =>\n cache.current.set(i.instanceId, i)\n );\n setState({ idObjectMap: idObjectMap, instanceListData });\n } else {\n setState({\n idObjectMap: idObjectMap,\n instanceListData: [] as InstanceApi_PostSearchV3ResponseBody,\n });\n }\n }\n } catch (e) {\n handleHttpError(e);\n setState({ failed: true });\n } finally {\n setState({ inited: true, loading: false });\n }\n };\n\n useEffect(() => {\n const fieldIds = getFields();\n if (\n // 当 props.objectId 改变时,总是更新 state.fieldIds\n props.objectId !== state.objectId ||\n !isEqual(fieldIds, state.fieldIds)\n ) {\n setState({\n fieldIds,\n });\n }\n }, [props.objectId, props.presetConfigs]);\n\n useEffect(() => {\n setSelectedRowKeys(props.selectedRowKeys ?? []);\n }, [props.objectId, props.selectedRowKeys]);\n\n // on filter condition change\n useEffect(() => {\n if (isFirstRunRef.current) {\n isFirstRunRef.current = false;\n return;\n }\n\n let skip = false;\n\n if (state.page !== 1) {\n setState({ page: 1 });\n props.onPaginationChange?.({ page: 1, pageSize: state.pageSize });\n skip = true;\n }\n\n // 当 prop.objectId 改变时先跳过,等 state.fieldIds 更新后再获取数据\n if (props.objectId !== state.objectId) {\n setState({ objectId: props.objectId });\n skip = true;\n }\n\n if (skip) {\n return;\n }\n\n refreshInstanceList(state.sort, state.asc, 1);\n }, [\n state.q,\n state.aq,\n state.instanceSourceQuery,\n state.pageSize,\n state.aliveHosts,\n state.relatedToMe,\n props.objectId,\n props.permission,\n props.defaultQuery,\n ]);\n\n // on other condition change\n useEffect(() => {\n if (isEmpty(state.fieldIds)) return;\n\n refreshInstanceList(state.sort, state.asc, state.page);\n }, [\n state.page,\n state.sort,\n state.asc,\n state.fieldIds,\n state.appSearchInstanceId,\n state.currentChangeSelect,\n state.searchByApp,\n props.dataSource,\n ]);\n\n const onChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setQ(e.target.value);\n };\n\n // istanbul ignore next\n const onSelectionChange = useCallback(\n async (selected: { selectedKeys: string[]; selectedItems: any[] }) => {\n let { selectedItems, selectedKeys } = selected;\n setSelectedRowKeys(selectedKeys);\n if (selectedKeys.length > compact(selectedItems).length) {\n const ids = selectedKeys.filter((id) => !cache.current.has(id));\n if (ids.length) {\n let resp;\n const params = {\n fields: [\"instanceId\"],\n query: {\n instanceId: {\n $in: ids,\n },\n },\n page_size: ids.length,\n };\n // useAutoDiscoveryProvider=true, 使用useProvider的接口,虽然这里列表用不到选择功能,但还是加上保持统一\n if (props.useAutoDiscoveryProvider) {\n resp = await listProvider.query([\n props.objectId,\n Object.assign(params, props.extraParams),\n ]);\n } else {\n resp = await InstanceApi_postSearchV3(props.objectId, params);\n }\n resp.list.forEach((i: Record<string, any>) =>\n cache.current.set(i.instanceId, i)\n );\n }\n selectedItems = selectedKeys.map((id) => cache.current.get(id));\n }\n props.onSelectionChange?.({ selectedItems, selectedKeys });\n },\n []\n );\n\n const onSearch = (value: string) => {\n const q = value.trim();\n setState({ q });\n props.onSearch?.(q);\n };\n\n const onAdvancedSearch = (\n queries: Query[],\n queriesToShow: Query[],\n fieldToShow: Record<string, any[]>[]\n ) => {\n setState({\n aq: queries,\n fieldToShow,\n aqToShow: queriesToShow,\n });\n props.onAdvancedSearch?.(queries);\n };\n\n const onSortingChange = useCallback(\n (info: ReadSortingChangeDetail) => {\n let asc: boolean;\n let sort: string;\n if (info.asc === undefined) {\n if (!state.sort) {\n return;\n }\n\n setState({ asc: undefined, sort: undefined });\n } else {\n setState({ asc: info.asc, sort: info.sort });\n asc = info.asc;\n sort = info.sort;\n }\n props.onSortingChange?.(info);\n },\n [state.sort]\n );\n\n const onPaginationChange = useCallback(\n (pagination: ReadPaginationChangeDetail) => {\n setState({ page: pagination.page, pageSize: pagination.pageSize });\n props.onPaginationChange?.(pagination);\n },\n []\n );\n\n const onInstanceSourceChange = useCallback((instanceSourceQuery: string) => {\n setState({ instanceSourceQuery });\n props.onInstanceSourceChange?.(instanceSourceQuery);\n }, []);\n\n const onRelatedToMeChange = (checked: boolean) => {\n setState({ relatedToMe: checked });\n props.onRelatedToMeChange?.(checked);\n };\n\n const onAliveHostsChange = (checked: boolean) => {\n setState({ aliveHosts: checked });\n props.onAliveHostsChange?.(checked);\n };\n\n const toggleAutoBreakLine = (autoBreakLine: boolean) => {\n setState({ autoBreakLine });\n };\n // istanbul ignore next (state is not updated)\n const toggleSearchMode = React.useCallback(async () => {\n if (!state.searchByApp) {\n const appListResp = await InstanceApi_postSearchV3(\"APP\", {\n fields: [\"clusters\", \"instanceId\", \"name\"],\n sort: [{ key: \"name\", order: 1 }],\n page: 1,\n page_size: 3000,\n });\n setState({\n appSearchInstanceId: appListResp.list?.[0].instanceId || \"\",\n appList: appListResp.list,\n clusterList: [...baseList, ...(appListResp.list?.[0].clusters || [])],\n searchByApp: true,\n appSelectValue: appListResp.list?.[0].instanceId || \"\",\n clusterValue: \"all\",\n page: 1,\n });\n } else {\n setState({ searchByApp: false, page: 1 });\n }\n }, [state.searchByApp]);\n // istanbul ignore next (state is not updated)\n const appSelectChange = (v: string) => {\n setState({\n appSearchInstanceId: v,\n currentChangeSelect: \"App\",\n appSelectValue: v,\n clusterValue: \"all\",\n clusterList: [\n ...baseList,\n ...state.appList.find((r) => r.instanceId === v).clusters,\n ],\n });\n };\n // istanbul ignore next (state is not updated)\n const clusterSelectChange = (v: string) => {\n setState({\n appSearchInstanceId: v === \"all\" ? state.appSelectValue : v,\n currentChangeSelect: \"Cluster\",\n clusterValue: v,\n });\n };\n const defaultFields = useMemo(() => {\n let defaultFields: string[];\n const fieldIds = props.presetConfigs?.fieldIds,\n extraFixedFieldIds = props.extraFixedFields ?? [];\n if (!isEmpty(fieldIds)) {\n defaultFields = props.presetConfigs.fieldIds;\n } else {\n defaultFields = computeDefaultFields().fieldIds;\n }\n if (!isEmpty(extraFixedFieldIds)) {\n defaultFields = uniq([...defaultFields, ...extraFixedFieldIds]);\n }\n return defaultFields;\n }, [props.presetConfigs, modelData]);\n\n // istanbul ignore next\n const handleConfirm = ({ fields, isReset }: DisplaySettingsModalData) => {\n if (isReset) {\n const fieldIds = defaultFields;\n modelData.isAbstract && fieldIds.push(\"_object_id\");\n setState({ fieldIds });\n jsonLocalStorage.removeItem(`${modelData.objectId}-selectAttrIds`);\n props.onFieldsModalConfirm(fieldIds);\n } else {\n setState({\n fieldIds: _sortFieldIds(fields),\n });\n jsonLocalStorage.setItem(`${modelData.objectId}-selectAttrIds`, fields);\n props.onFieldsModalConfirm(fields);\n }\n };\n\n useEffect(() => {\n props.notifyCurrentFields?.(state.fieldIds);\n }, [props.notifyCurrentFields]);\n\n // istanbul ignore next\n useEffect(() => {\n props.selectedRowKeys?.length &&\n (async () => {\n const data: InstanceApi_PostSearchRequestBody = {};\n const v3Data: InstanceApi_PostSearchV3RequestBody = {\n fields: [\"instanceId\"],\n };\n if (!isEmpty(props.permission)) {\n v3Data.permission = data.permission = props.permission;\n }\n\n if (state.fieldIds) {\n data.fields = Object.fromEntries(\n state.fieldIds.map((fieldId) => [fieldId, true])\n );\n v3Data.fields = [...state.fieldIds, ...v3Data.fields];\n (v3Data as any).ignore_missing_field_error = true;\n }\n\n v3Data.query = {\n instanceId: {\n $in: props.selectedRowKeys,\n },\n };\n v3Data.page_size = props.selectedRowKeys.length;\n\n if (state.relatedToMe) {\n v3Data.only_my_instance = data.only_my_instance = state.relatedToMe;\n }\n if (props.extraParams) {\n Object.assign(v3Data, props.extraParams);\n }\n let resp;\n if (props.useAutoDiscoveryProvider) {\n resp = await listProvider.query([props.objectId, v3Data]);\n } else {\n resp = await InstanceApi_postSearchV3(props.objectId, v3Data);\n }\n resp.list.forEach((i: Record<string, any>) =>\n cache.current.set(i.instanceId, i)\n );\n })();\n }, [props.selectedRowKeys]);\n const handleToggleFixHeader = () => {\n setFixHeader(!fixedHeader);\n };\n const onAdvancedSearchCloseGen = (attrId: string, valuesStr: string) => {\n return () => {\n const queries: Query[] = [];\n const queriesToShow: Query[] = [];\n const filterAq = (queries: any[]) =>\n queries.filter((v: any) => isValueEqualFn(v, attrId, valuesStr));\n state.aq.forEach((query) => {\n const key = Object.keys(query)[0];\n if (\n (key === \"$or\" || key === \"$and\") &&\n Object.keys((query[key] as Query[])[0])[0] === attrId\n ) {\n const filteredSubQueries = filterAq(query[key] as Query[]);\n if (filteredSubQueries.length > 0) {\n queries.push({\n [key]: filteredSubQueries,\n });\n }\n } else if (key !== attrId && !startsWith(attrId, `${key}.`)) {\n // $exists $gte $lte 针对为空,不为空,时间范围特殊处理\n if (!Array.isArray(query[key]) && isSpecialFn(query, key)) {\n queries.push(query);\n } else {\n const fieldId = Object.keys((query[key] as Query[])[0])[0];\n // 判断是否为结构体\n const isStruct = isOfStruct(modelData, fieldId);\n // 结构体情况处理\n if (\n !(\n (key === \"$or\" || key === \"$and\") &&\n startsWith(fieldId, `${attrId}.`) &&\n isStruct\n )\n ) {\n queries.push(query);\n }\n }\n } else if (\n props.isInstanceFilterForm &&\n key === attrId &&\n isValueEqualFn(query, attrId, valuesStr)\n ) {\n specialQueryHandler(query, key, queries);\n }\n });\n state.aqToShow.forEach((query) => {\n const key = Object.keys(query)[0];\n if (\n (key === \"$or\" || key === \"$and\") &&\n Object.keys((query[key] as Query[])[0])[0] === attrId\n ) {\n const filteredSubQueries = filterAq(query[key] as Query[]);\n if (filteredSubQueries.length > 0) {\n queriesToShow.push({\n [key]: filteredSubQueries,\n });\n }\n } else if (key !== attrId) {\n queriesToShow.push(query);\n } else if (\n props.isInstanceFilterForm &&\n key === attrId &&\n isValueEqualFn(query, attrId, valuesStr)\n ) {\n specialQueryHandler(query, key, queriesToShow);\n }\n });\n setState({\n aq: queries,\n aqToShow: queriesToShow,\n });\n props.onAdvancedSearch?.(queries);\n };\n };\n const conditions = translateConditions(\n state.aqToShow,\n idObjectMap,\n modelData\n );\n\n return (\n <Spin spinning={state.loading}>\n {state.inited && !state.failed ? (\n <React.Fragment>\n {(!props.searchDisabled ||\n !props.advancedSearchDisabled ||\n !props.relatedToMeDisabled ||\n !props.aliveHostsDisabled ||\n !props.moreButtonsDisabled) && (\n <div className={styles.instanceListToolbar}>\n <div className={styles.searchRelated}>\n {/* istanbul ignore next (state is not updated) */}\n {!state.searchByApp ? (\n <>\n {!props.searchDisabled && (\n <Input.Search\n enterButton\n value={q}\n onChange={onChange}\n onSearch={onSearch}\n />\n )}\n {!props.advancedSearchDisabled && (\n <Button\n type=\"link\"\n size=\"small\"\n style={{\n marginLeft: \"8px\",\n marginRight: \"auto\",\n }}\n onClick={() =>\n setState({\n isAdvancedSearchVisible:\n !state.isAdvancedSearchVisible,\n })\n }\n data-testid=\"advanced-search-toggle-btn\"\n >\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ADVANCED_SEARCH}`\n )}\n <LegacyIcon\n type={state.isAdvancedSearchVisible ? \"up\" : \"down\"}\n />\n </Button>\n )}\n </>\n ) : (\n <>\n <Select\n style={{ width: \"150px\", marginRight: \"10px\" }}\n value={state.appSelectValue}\n onChange={appSelectChange}\n showSearch={true}\n optionFilterProp=\"children\"\n >\n {state.appList?.map((r) => (\n <Select.Option key={r.instanceId} value={r.instanceId}>\n {r.name}\n </Select.Option>\n ))}\n </Select>\n <Select\n style={{ width: \"150px\" }}\n value={state.clusterValue}\n onChange={clusterSelectChange}\n showSearch={true}\n optionFilterProp=\"children\"\n >\n {state.clusterList.map((r) => (\n <Select.Option key={r.instanceId} value={r.instanceId}>\n {r.name}\n </Select.Option>\n ))}\n </Select>\n </>\n )}\n </div>\n <div className={styles.options}>\n {selectedRowKeys.length > 0 && (\n <div style={{ marginRight: 20 }}>\n <span>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CHOSEN_OPTIONS}`, {\n count: selectedRowKeys.length,\n })}\n </span>\n <a\n role=\"button\"\n onClick={() =>\n onSelectionChange({\n selectedKeys: [],\n selectedItems: [],\n })\n }\n >\n {\" \"}\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLEAR}`)}\n </a>\n </div>\n )}\n {props.objectId === \"HOST\" && props.enableSearchByApp && (\n <Button type={\"link\"} onClick={toggleSearchMode}>\n {/* istanbul ignore next (state is not updated) */}\n {state.searchByApp\n ? i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FREE_SELECTION}`)\n : i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.APP_SELECTION}`)}\n </Button>\n )}\n {props.objectId === \"HOST\" && !props.aliveHostsDisabled && (\n <IconButton\n checked={state.aliveHosts}\n onChange={onAliveHostsChange}\n style={{ marginRight: 10 }}\n disabled={props.fixAliveHosts}\n type=\"normalHost\"\n label={i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.NORMAL_HOST}`)}\n data-testid=\"alive-hosts\"\n />\n )}\n {!props.relatedToMeDisabled && (\n <IconButton\n checked={state.relatedToMe}\n onChange={onRelatedToMeChange}\n style={{ marginRight: 10 }}\n type=\"relateToMe\"\n label={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.RELATED_TO_ME}`\n )}\n data-testid=\"related-to-me\"\n />\n )}\n {!props.showHiddenInfoDisabled && (\n <IconButton\n checked={state.autoBreakLine}\n onChange={toggleAutoBreakLine}\n style={{ marginRight: 10 }}\n type=\"showHiddenInfo\"\n label={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.DISPLAY_OMITTED_INFORMATION}`\n )}\n data-testid=\"show-hidden-info\"\n />\n )}\n {!props.moreButtonsDisabled && (\n <MoreButtonsContainer\n modelData={modelData}\n onConfirm={handleConfirm}\n fieldIds={state.fieldIds}\n defaultFields={defaultFields}\n extraDisabledField={props.extraDisabledField}\n handleToggleFixHeader={handleToggleFixHeader}\n fixedHeader={fixedHeader}\n showFixedHeader={props.showFixedHeader}\n />\n )}\n </div>\n </div>\n )}\n {!props.advancedSearchDisabled && !state.searchByApp && (\n <div\n style={{ marginBottom: \"18px\" }}\n hidden={!state.isAdvancedSearchVisible}\n >\n <AdvancedSearch\n key={newKey(state.fieldIds, state.aq)}\n fieldIds={state.fieldIds}\n idObjectMap={state.idObjectMap}\n modelData={modelData}\n q={state.aqToShow}\n fieldToShow={state.fieldToShow}\n onSearch={onAdvancedSearch}\n {...(props.autoSearch\n ? {\n autoSearch: props.autoSearch,\n }\n : null)}\n />\n </div>\n )}\n {!props.hideSearchConditions &&\n !state.searchByApp &&\n (state.instanceSourceQuery || state.q || !isEmpty(conditions)) && (\n <div className={styles.searchConditions}>\n <span>\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.CURRENT_FILTER_REQUIREMENTS}`\n )}\n </span>\n {state.q && (\n <Tag\n closable\n onClose={() => {\n setQ(\"\");\n onSearch(\"\");\n }}\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FUZZY_SEARCH}`, {\n query: state.q,\n })}\n </Tag>\n )}\n {state.instanceSourceQuery && (\n <Tag\n closable\n onClose={() => {\n onInstanceSourceChange(null);\n }}\n >\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.INSTANCE_SOURCE_TAG_TEXT}`,\n {\n query:\n inheritanceModelIdNameMap?.[\n state.instanceSourceQuery\n ] || state.instanceSourceQuery,\n }\n )}\n </Tag>\n )}\n {conditions.map((condition) => (\n <Tag\n key={`${condition.attrId}${\n condition.valuesStr\n }-${uniqueId()}`}\n closable\n onClose={onAdvancedSearchCloseGen(\n condition.attrId,\n condition.valuesStr\n )}\n >\n {condition.condition}\n </Tag>\n ))}\n </div>\n )}\n {props.extraFilterBricks?.useBrick && (\n <BrickAsComponent useBrick={props.extraFilterBricks.useBrick} />\n )}\n {!props.hideInstanceList && (\n <InstanceListTable\n detailUrlTemplates={props.detailUrlTemplates}\n fieldIds={state.fieldIds}\n idObjectMap={state.idObjectMap}\n modelData={modelData}\n instanceListData={state.instanceListData}\n sort={state.sort}\n asc={state.asc}\n selectedRowKeys={selectedRowKeys}\n selectDisabled={props.selectDisabled}\n sortDisabled={props.sortDisabled}\n propertyDisplayConfigs={props.propertyDisplayConfigs}\n onClickItem={props.onClickItem}\n onClickItemV2={props.onClickItemV2}\n onPaginationChange={onPaginationChange}\n onSortingChange={onSortingChange}\n onSelectionChange={onSelectionChange}\n onInstanceSourceChange={onInstanceSourceChange}\n instanceSourceQuery={state.instanceSourceQuery}\n inheritanceModelIdNameMap={inheritanceModelIdNameMap}\n filterInstanceSourceDisabled={props.filterInstanceSourceDisabled}\n autoBreakLine={state.autoBreakLine}\n relationLinkDisabled={props.relationLinkDisabled}\n pageSizeOptions={props.pageSizeOptions}\n showSizeChanger={props.showSizeChanger}\n extraColumns={props.extraColumns}\n target={props.target}\n ipCopy={props.ipCopy}\n fixedHeader={fixedHeader}\n separatorUsedInRelationData={props.separatorUsedInRelationData}\n showTooltip={showTooltip}\n rowSelectionType={props.rowSelectionType}\n />\n )}\n </React.Fragment>\n ) : null}\n </Spin>\n );\n}\n\n/**\n * 把 objectList 封装到构件中请求,废弃掉通过老模板使用的方式,可直接使用构件。\n * 同时也兼容之前的使用方式,对于外部传进来的会优先使用外部的数据,构件内部不会额外请求,\n * 不传的话构件内部做请求,并作缓存\n */\nexport function InstanceList(props: InstanceListProps): React.ReactElement {\n const [objectList, setObjectList] = useState<\n Partial<CmdbModels.ModelCmdbObject>[]\n >(props.objectList);\n\n useEffect(() => {\n if (props.objectList) {\n setObjectList(props.objectList);\n } else {\n (async () => {\n if (!props.objectList) {\n const cacheData = objectListCache.get(props.objectId);\n if (cacheData) {\n setObjectList(cacheData);\n } else {\n try {\n const list = (\n await CmdbObjectApi_getObjectRef({ ref_object: props.objectId })\n ).data;\n setObjectList(list);\n objectListCache.set(props.objectId, list);\n } catch (e) {\n // istanbul ignore next\n handleHttpError(e);\n }\n }\n }\n })();\n }\n }, [props.objectId, props.objectList]);\n\n if (\n !objectList ||\n !objectList.find((item) => item.objectId === props.objectId)\n )\n return null;\n\n return <LegacyInstanceList {...props} objectList={objectList} />;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"InstanceList.js","names":["joinRelationFieldAndShowkey","fields","modelData","objectList","attrIdMap","keyBy","attrList","map","field","relation","relation_list","find","left_id","right_id","isLeft","left_object_id","objectId","otherSideObjectId","right_object_id","otherSideObject","object","showKey","view","show_key","getQuery","idObjectMap","q","onlySearchByIp","query","$or","queryValues","trim","split","searchIpFields","getRuntime","getCurrentApp","config","queryOrs","Set","searchValue","$like","forEach","key","push","forEachAvailableFields","attr","queryValue","id","sides","this","nameKeys","getInstanceNameKeys","that","nameKey","isSpecialFn","attrId","Object","keys","some","v","specialQueryHandler","queries","isSpecial","isValueEqualFn","valuesStr","values","join","translateConditions","aq","t","conditions","relations","sidesArr","isSelfRelation","getRelationObjectSides","relationObject","nameOfNameKey","name","value","type","relationSideId","attrAndRelationList","isEmpty","ElementOperators","Exists","changeQueryWithCustomRules","info","getFieldConditionsAndValues","undefined","ConditionType","Between","Empty","NotEmpty","False","True","includes","currentCondition","isString","replace","condition","label","curCondition","queryValuesStr","every","isEqual","omit","newKey","fieldIds","length","isOfStruct","fieldId","structFields","filter","structs","struct_define","struct","flat","isOfBoolean","keyAttrMap","ModelAttributeValueType","BOOLEAN","initAqToShow","isToShow","newAqToShow","aqToShow","entries","expressions","newExpressions","LogicalOperators","Or","And","firstSubQuery","isStruct","isBool","structQueries","expression","structExpressions","item","boolExpressions","targetValue","LegacyInstanceList","props","showTooltip","baseList","instanceId","i18n","NS_LIBS_CMDB_INSTANCES","K","ALL_CLUSTER","jsonLocalStorage","JsonStorage","localStorage","reducer","prevState","updatedProperty","listProvider","useProvider","useMemo","disabledDefaultFields","union","extraFieldAttrs","inheritanceModelIdNameMap","setInheritanceModelIdNameMap","useState","fixedHeader","setFixHeader","fetchInheritanceModelIdNameMap","idNameMap","isAbstract","CmdbObjectApi_getIdMapName","parentObjectId","useEffect","computeDefaultFields","inModal","settings","CMDB_MODAL_FIELDS_SETTINGS","CMDB_RESOURCE_FIELDS_SETTINGS","ignoredFields","difference","uniq","slice","hideModelData","hide_columns","_sortFieldIds","frontFields","restFields","presetConfigs","sortBy","reject","foundIndex","findIndex","attr_order","orderId","getFields","extraFixedFieldIds","extraFixedFields","getItem","extraDisabledField","setQ","state","setState","useReducer","instanceSourceQuery","asc","sort","page","dataSource","pageSize","aliveHosts","relatedToMe","inited","loading","failed","isAdvancedSearchVisible","presetConfigsQuery","autoBreakLine","appSearchInstanceId","currentChangeSelect","appSelectValue","clusterValue","appList","clusterList","searchByApp","selectedRowKeys","setSelectedRowKeys","cache","useRef","Map","isFirstRunRef","getInstanceListData","data","v3Data","concat","permission","sortType","default_type","order","defaultQuery","$and","fromEntries","ignore_missing_field_error","useAutoDiscoveryProvider","_agentStatus","_object_id","extraParams","assign","only_my_instance","hostRange","i","limitInstanceRange","$in","promise","onSearchExecute","InstanceApi_postSearchV3","refreshInstanceList","instanceListData","hideInstanceList","list","current","set","e","handleHttpError","skip","onPaginationChange","onChange","target","onSelectionChange","useCallback","selected","selectedItems","selectedKeys","compact","ids","has","resp","params","page_size","get","onSearch","onAdvancedSearch","queriesToShow","fieldToShow","onSortingChange","pagination","onInstanceSourceChange","onRelatedToMeChange","checked","onAliveHostsChange","toggleAutoBreakLine","toggleSearchMode","React","appListResp","clusters","appSelectChange","r","clusterSelectChange","defaultFields","handleConfirm","isReset","removeItem","onFieldsModalConfirm","setItem","notifyCurrentFields","handleToggleFixHeader","onAdvancedSearchCloseGen","filterAq","filteredSubQueries","startsWith","Array","isArray","isInstanceFilterForm","searchDisabled","advancedSearchDisabled","relatedToMeDisabled","aliveHostsDisabled","moreButtonsDisabled","styles","instanceListToolbar","searchRelated","marginLeft","marginRight","ADVANCED_SEARCH","width","options","CHOSEN_OPTIONS","count","CLEAR","enableSearchByApp","FREE_SELECTION","APP_SELECTION","fixAliveHosts","NORMAL_HOST","RELATED_TO_ME","showHiddenInfoDisabled","DISPLAY_OMITTED_INFORMATION","showFixedHeader","marginBottom","autoSearch","hideSearchConditions","searchConditions","CURRENT_FILTER_REQUIREMENTS","FUZZY_SEARCH","INSTANCE_SOURCE_TAG_TEXT","uniqueId","extraFilterBricks","useBrick","detailUrlTemplates","selectDisabled","sortDisabled","propertyDisplayConfigs","onClickItem","onClickItemV2","filterInstanceSourceDisabled","relationLinkDisabled","pageSizeOptions","showSizeChanger","extraColumns","ipCopy","separatorUsedInRelationData","rowSelectionType","InstanceList","setObjectList","cacheData","objectListCache","CmdbObjectApi_getObjectRef","ref_object"],"sources":["../../../src/instance-list/InstanceList.tsx"],"sourcesContent":["import React, {\n useEffect,\n useReducer,\n useState,\n useRef,\n useMemo,\n useCallback,\n} from \"react\";\nimport {\n difference,\n isEmpty,\n isEqual,\n isString,\n map,\n uniq,\n union,\n filter,\n reject,\n sortBy,\n uniqueId,\n findIndex,\n find,\n startsWith,\n compact,\n omit,\n keyBy,\n} from \"lodash\";\nimport {\n BrickAsComponent,\n getRuntime,\n handleHttpError,\n useProvider,\n} from \"@next-core/brick-kit\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport {\n PropertyDisplayConfig,\n ReadPaginationChangeDetail,\n ReadSelectionChangeDetail,\n ReadSortingChangeDetail,\n UseBrickConf,\n} from \"@next-core/brick-types\";\nimport {\n CmdbModels,\n InstanceApi_PostSearchRequestBody,\n InstanceApi_PostSearchV3RequestBody,\n InstanceApi_PostSearchV3ResponseBody,\n InstanceApi_postSearchV3,\n CmdbObjectApi_getIdMapName,\n CmdbObjectApi_getObjectRef,\n} from \"@next-sdk/cmdb-sdk\";\nimport { Icon as LegacyIcon } from \"@ant-design/compatible\";\nimport { Button, Spin, Input, Tag, Select } from \"antd\";\nimport {\n getRelationObjectSides,\n forEachAvailableFields,\n getInstanceNameKeys,\n RelationIdKeys,\n RelationNameKeys,\n RelationObjectIdKeys,\n RelationObjectSides,\n isSelfRelation,\n Query,\n ElementOperators,\n LogicalOperators,\n ComparisonOperators,\n} from \"@next-libs/cmdb-utils\";\nimport { JsonStorage } from \"@next-libs/storage\";\nimport { ModelObjectAttr } from \"@next-sdk/cmdb-sdk/dist/types/model/cmdb\";\n\nimport {\n ConditionType,\n AdvancedSearch,\n getFieldConditionsAndValues,\n MoreButtonsContainer,\n InstanceListTable,\n CustomColumn,\n Field,\n UseBrickAndPropertyDisplayConfig,\n} from \"../instance-list-table\";\nimport styles from \"./InstanceList.module.css\";\nimport {\n extraFieldAttrs,\n CMDB_MODAL_FIELDS_SETTINGS,\n CMDB_RESOURCE_FIELDS_SETTINGS,\n objectListCache,\n} from \"./constants\";\nimport { ModelAttributeValueType } from \"../model-attribute-form-control/ModelAttributeFormControl\";\nimport { IconButton } from \"./IconButton\";\nimport { changeQueryWithCustomRules } from \"../processors\";\nimport { DisplaySettingsModalData } from \"../instance-list-table/DisplaySettingsModal\";\nexport interface InstanceListPresetConfigs {\n query?: Record<string, any>;\n fieldIds?: string[];\n}\nexport function joinRelationFieldAndShowkey(\n fields: string[],\n modelData: Record<string, any>,\n objectList: Record<string, any>[]\n) {\n const attrIdMap = keyBy(modelData.attrList, \"id\");\n return fields.map((field) => {\n if (attrIdMap[field]) {\n return field;\n } else {\n const relation = modelData.relation_list.find(\n (relation: any) =>\n relation.left_id === field || relation.right_id === field\n );\n if (relation) {\n const isLeft = relation.left_object_id === modelData.objectId;\n const otherSideObjectId = isLeft\n ? relation.right_object_id\n : relation.left_object_id;\n const otherSideObject = objectList.find(\n (object) => object.objectId === otherSideObjectId\n );\n const showKey = otherSideObject?.view?.show_key?.[0] ?? \"\";\n return `${field}.${showKey}`;\n } else {\n return field;\n }\n }\n });\n}\n\nexport function getQuery(\n modelData: Partial<CmdbModels.ModelCmdbObject>,\n idObjectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>,\n q: string,\n fields?: string[],\n onlySearchByIp?: boolean\n) {\n const query: Record<string, any> = { $or: [] };\n const queryValues = q.trim().split(/\\s+/);\n if (onlySearchByIp) {\n const searchIpFields =\n (getRuntime().getCurrentApp().config?.searchIpFields as string[]) || [];\n const queryOrs = [...new Set([\"ip\", ...searchIpFields])];\n const searchValue = { $like: `%${q.trim()}%` };\n queryOrs.forEach((key) => {\n query.$or.push({ [key]: searchValue });\n });\n return query;\n }\n forEachAvailableFields(\n modelData,\n (attr) => {\n queryValues.forEach((queryValue) =>\n query.$or.push({ [attr.id]: { $like: `%${queryValue}%` } })\n );\n },\n (relation, sides) => {\n const id = relation[`${sides.this}_id` as RelationIdKeys];\n const nameKeys = getInstanceNameKeys(\n idObjectMap[relation[`${sides.that}_object_id` as RelationObjectIdKeys]]\n );\n\n queryValues.forEach((queryValue) => {\n nameKeys.forEach((nameKey) => {\n query.$or.push({\n [`${id}.${nameKey}`]: { $like: `%${queryValue}%` },\n });\n });\n });\n },\n fields\n );\n\n return query;\n}\n\nexport const isSpecialFn = (query: any, attrId: string) => {\n return Object.keys(query[attrId] as Query[]).some(\n (v) => v === \"$exists\" || v === \"$gte\" || v === \"$lte\"\n );\n};\n\nexport const specialQueryHandler = (query: any, key: any, queries: Query[]) => {\n // $exists $gte $lte 针对为空,不为空,时间范围特殊处理\n const isSpecial = isSpecialFn(query, key);\n if (isSpecial) {\n return;\n }\n queries.push(query);\n};\n\nexport const isValueEqualFn = (\n query: any,\n attrId: string,\n valuesStr?: string\n) => {\n const isSpecial = isSpecialFn(query, attrId);\n if (isSpecial) return false;\n return query[attrId]\n ? valuesStr && Object.values(query[attrId]).join(\" \") !== valuesStr // 当条件是为空和不为空时,需要判断valuesStr是否存在\n : false;\n};\n\nfunction translateConditions(\n aq: Query[],\n idObjectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>,\n modelData: Partial<CmdbModels.ModelCmdbObject>,\n t?: () => string\n): { attrId: string; condition: string; valuesStr: string }[] {\n const conditions: {\n attrId: string;\n condition: string;\n valuesStr: string;\n }[] = [];\n const relations: any[] = [];\n modelData.relation_list.forEach((relation) => {\n let sidesArr: RelationObjectSides[] = [];\n if (isSelfRelation(relation)) {\n sidesArr = [\n { this: \"left\", that: \"right\" },\n { this: \"right\", that: \"left\" },\n ];\n } else {\n sidesArr = [getRelationObjectSides(relation, modelData)];\n }\n sidesArr.forEach((sides) => {\n const objectId = relation[`${sides.this}_id` as RelationIdKeys];\n const relationObject =\n idObjectMap[\n relation[`${sides.that}_object_id` as RelationObjectIdKeys]\n ];\n const nameKeys = getInstanceNameKeys(relationObject);\n nameKeys.forEach((nameKey) => {\n const nameOfNameKey =\n find(relationObject?.attrList, [\"id\", nameKey])?.name ?? nameKey;\n const id = `${objectId}.${nameKey}`;\n const name = `${\n relation[`${sides.this}_name` as RelationNameKeys]\n }(${nameOfNameKey})`;\n relations.push({\n id,\n name,\n value: { type: \"str\" },\n relationSideId: relation[`${sides.this}_id` as RelationIdKeys],\n });\n });\n relations.push({\n id: `${objectId}.`,\n name: `${relation[`${sides.this}_name` as RelationNameKeys]}`,\n value: { type: \"str\" },\n relationSideId: relation[`${sides.this}_id` as RelationIdKeys],\n });\n });\n });\n const attrAndRelationList = [...modelData.attrList, ...relations];\n if (!isEmpty(aq)) {\n for (const query of aq) {\n let queries: Query[] = [query];\n if (Object.keys(query)[0] === \"$or\" || Object.keys(query)[0] === \"$and\") {\n queries = query[Object.keys(query)[0]] as Query[];\n }\n\n queries.forEach((query) => {\n const key = Object.keys(query)[0];\n const value = Object.values(query)[0];\n let attr = attrAndRelationList.find(\n (attr) => attr.id === key || attr.relationSideId === key\n );\n if (\n Object.keys(value)[0] === ElementOperators.Exists &&\n attr.relationSideId\n ) {\n const relationSideId = attr.relationSideId;\n attr =\n attrAndRelationList.find(\n (attr) => attr.id === `${relationSideId}.`\n ) || attr;\n }\n if (attr) {\n query = changeQueryWithCustomRules(\n modelData.objectId,\n attr.id,\n query\n );\n const info = getFieldConditionsAndValues(\n query as any,\n key,\n attr.value.type as ModelAttributeValueType,\n undefined,\n undefined,\n modelData.objectId,\n attr.id\n );\n if (\n ![\n ConditionType.Between,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ConditionType.False,\n ConditionType.True,\n ].includes(info.currentCondition.type)\n ) {\n info.values = info.values.map((v) =>\n isString(v) && v.includes(\" \") ? v.replace(/^\"+|\"+$/g, \"\") : v\n );\n }\n\n let condition = `${attr.name}: ${info.currentCondition.label}`;\n if (\n ![ConditionType.Empty, ConditionType.NotEmpty].includes(\n info.currentCondition.type\n )\n ) {\n condition += `\"${info.values.join(\" ~ \")}\"`;\n }\n const curCondition = {\n attrId: key,\n condition,\n valuesStr: info.queryValuesStr,\n };\n if (\n conditions.every(\n (v) => !isEqual(omit(v, \"attrId\"), omit(curCondition, \"attrId\"))\n )\n ) {\n conditions.push(curCondition);\n }\n }\n });\n }\n }\n\n return conditions;\n}\n\nfunction newKey(fieldIds: string[], aq: Query[]): string {\n let key = \"\";\n if (!isEmpty(fieldIds)) {\n key += fieldIds.join(\"-\");\n }\n if (!isEmpty(aq)) {\n key += `-${aq.length}`;\n }\n return key;\n}\nconst isOfStruct = (\n modelData: Partial<CmdbModels.ModelCmdbObject>,\n fieldId: string\n) => {\n const structFields = modelData.attrList\n .filter(\n (attr: Partial<ModelObjectAttr>) =>\n attr.value.type === \"struct\" || attr.value.type === \"structs\"\n )\n ?.map((attr) => {\n const structs: string[] = [];\n attr.value.struct_define.forEach((struct) => {\n structs.push(`${attr.id}.${struct.id}`);\n });\n return structs;\n })\n .flat();\n return structFields.includes(fieldId);\n};\n\nconst isOfBoolean = (\n attrList: Partial<CmdbModels.ModelObjectAttr>[],\n fieldId: string\n): boolean => {\n const keyAttrMap = keyBy(attrList, \"id\");\n return keyAttrMap[fieldId]?.value.type === ModelAttributeValueType.BOOLEAN;\n};\n\nexport const initAqToShow = (\n aq: Query[],\n modelData: Partial<CmdbModels.ModelCmdbObject>,\n isToShow = true\n) => {\n let newAqToShow: any[] = [];\n if (aq) {\n aq.forEach((query) => {\n const aqToShow = Object.entries(query).map(([key, expressions]) => {\n let newExpressions: any[] = [];\n if (key === LogicalOperators.Or || key === LogicalOperators.And) {\n const firstSubQuery = (expressions as Query[])[0];\n const fieldId = Object.keys(firstSubQuery)[0];\n const isStruct = isOfStruct(modelData, fieldId);\n const isBool = isOfBoolean(modelData.attrList, fieldId);\n const structQueries: Record<string, any> = (\n expressions as Query[]\n ).filter((expression) => Object.keys(expression)[0] === fieldId);\n if (isStruct && isToShow) {\n const structExpressions = structQueries.map((item: any) => ({\n [fieldId.split(\".\")[0]]: item[fieldId],\n }));\n newExpressions = [...newExpressions, ...structExpressions];\n } else if (isBool && !isToShow) {\n const boolExpressions = (expressions as Query[]).map(\n (expression) => {\n const targetValue = expression[fieldId] as Record<\n ComparisonOperators,\n any\n >;\n if (typeof Object.values(targetValue)[0] === \"string\") {\n return {\n [fieldId]: {\n [Object.keys(targetValue)[0]]:\n Object.values(targetValue)[0] === \"true\",\n },\n };\n } else {\n return expression;\n }\n }\n );\n newExpressions = [...newExpressions, ...boolExpressions];\n } else {\n newExpressions = [...newExpressions, ...(expressions as Query[])];\n }\n return { [key]: newExpressions };\n } else {\n return query;\n }\n });\n newAqToShow = [...newAqToShow, ...aqToShow];\n });\n return newAqToShow;\n }\n return;\n};\n\ninterface InstanceListProps {\n objectId: string;\n objectList?: Partial<CmdbModels.ModelCmdbObject>[];\n detailUrlTemplates?: Record<string, string>;\n presetConfigs?: InstanceListPresetConfigs;\n permission?: string[];\n q?: string;\n searchDisabled?: boolean;\n sortDisabled?: boolean;\n aq?: Query[];\n aqToShow?: Query[];\n advancedSearchDisabled?: boolean;\n page?: number;\n pageSize?: number;\n sort?: string;\n asc?: boolean;\n relatedToMe?: boolean;\n relatedToMeDisabled?: boolean;\n showHiddenInfoDisabled?: boolean;\n moreButtonsDisabled?: boolean;\n aliveHosts?: boolean;\n fixAliveHosts?: boolean;\n aliveHostsDisabled?: boolean;\n propertyDisplayConfigs?: UseBrickAndPropertyDisplayConfig[];\n selectedRowKeys?: string[];\n selectDisabled?: boolean;\n pageSizeOptions?: string[];\n showSizeChanger?: boolean;\n filterInstanceSourceDisabled?: boolean;\n instanceSourceQuery?: string;\n isInstanceFilterForm?: boolean;\n onSearchExecute?(\n data: InstanceApi_PostSearchRequestBody,\n v3Data: InstanceApi_PostSearchV3RequestBody\n ): Promise<InstanceApi_PostSearchV3ResponseBody> | void;\n onSearch?(value: string): void;\n onAdvancedSearch?(queries: Query[]): void;\n onClickItem?(\n evt: React.MouseEvent<HTMLAnchorElement, MouseEvent>,\n id: string\n ): void;\n onClickItemV2?(\n evt: React.MouseEvent<HTMLAnchorElement, MouseEvent>,\n record: Record<string, any>\n ): void;\n onPaginationChange?(pagination: ReadPaginationChangeDetail): void;\n onSortingChange?(sorting: ReadSortingChangeDetail): void;\n onSelectionChange?(selection: ReadSelectionChangeDetail): void;\n onRelatedToMeChange?(value: boolean): void;\n onAliveHostsChange?(value: boolean): void;\n onInstanceSourceChange?(instanceResource: string): void;\n onFieldsModalConfirm?(fields: Record<string, any>): void;\n relationLinkDisabled?: boolean;\n notifyCurrentFields?: (fiels: string[]) => void;\n defaultQuery?: { [fieldId: string]: any }[];\n extraFilterBricks?: {\n useBrick: UseBrickConf;\n };\n extraColumns?: CustomColumn[];\n extraDisabledField?: string;\n hideSearchConditions?: boolean;\n onlySearchByIp?: boolean;\n target?: string;\n ipCopy?: boolean;\n enableSearchByApp?: boolean;\n dataSource?: {\n list: Record<string, any>[];\n total?: number;\n page?: number;\n pageSize?: number;\n };\n separatorUsedInRelationData?: string;\n hideInstanceList?: boolean;\n autoSearch?: (fields: Field[]) => void;\n disabledDefaultFields?: boolean;\n showTooltip?: boolean;\n showFixedHeader?: boolean;\n rowSelectionType?: \"checkbox\" | \"radio\";\n useAutoDiscoveryProvider?: boolean;\n extraParams?: Record<string, any>;\n // 指定固定显示的field,与presetConfigs的fieldIds同时生效\n extraFixedFields?: string[];\n // 如果在presetConfigs的query参数中指定了资源的范围,“按应用筛选”的功能是否也要限定资源的范围\n limitInstanceRange?: boolean;\n}\n\ninterface InstanceListState {\n objectId: string;\n q: string;\n aq: Query[];\n aqToShow?: Query[];\n instanceSourceQuery: string;\n asc: boolean;\n sort: string;\n page: number;\n pageSize: number;\n aliveHosts: boolean;\n relatedToMe: boolean;\n inited: boolean;\n loading: boolean;\n failed: boolean;\n idObjectMap?: Record<string, Partial<CmdbModels.ModelCmdbObject>>;\n instanceListData?: InstanceApi_PostSearchV3ResponseBody;\n isAdvancedSearchVisible: boolean;\n fieldIds: string[];\n autoBreakLine: boolean;\n fieldToShow?: Record<string, any[]>[];\n appSearchInstanceId?: string;\n currentChangeSelect?: string;\n appSelectValue?: string;\n clusterValue?: string;\n appList?: Record<string, any>[];\n clusterList?: Record<string, any>[];\n searchByApp?: boolean;\n showTooltip?: boolean;\n presetConfigsQuery?: Record<string, any>;\n}\n\nexport function LegacyInstanceList(\n props: InstanceListProps\n): React.ReactElement {\n const { showTooltip = true } = props;\n const baseList = [\n {\n instanceId: \"all\",\n name: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.ALL_CLUSTER}`),\n },\n ];\n const jsonLocalStorage = new JsonStorage(localStorage);\n const reducer = (\n prevState: InstanceListState,\n updatedProperty: Partial<InstanceListState>\n ): InstanceListState => {\n return {\n ...prevState,\n ...updatedProperty,\n };\n };\n // 资源自动发现页面24小时发现主机抽屉的实例列表处,通用的postSearchV3接口无法查到正确结果,需要用下面的接口替换,参数里也要加上jobId:***\n // 为了不影响其他地方的实例列表,在该处加一个useAutoDiscoveryProvider参数,该参数为undefined或false的,仍调用原接口\n\n const listProvider = useProvider(\"easyops.api.cmdb.job@SearchResource:1.0.1\");\n const { modelData, idObjectMap } = useMemo(() => {\n let modelData: Partial<CmdbModels.ModelCmdbObject>;\n const idObjectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>> = {};\n props.objectList.forEach((object) => {\n idObjectMap[object.objectId] = object;\n if (object.objectId === props.objectId) {\n modelData = object;\n modelData.attrList = !props.disabledDefaultFields\n ? union(object.attrList, extraFieldAttrs)\n : object.attrList;\n }\n });\n\n return { modelData, idObjectMap };\n }, [props.objectList, props.objectId]);\n\n const [inheritanceModelIdNameMap, setInheritanceModelIdNameMap] = useState<\n Record<string, string>\n >({});\n const [fixedHeader, setFixHeader] = useState(false);\n\n const fetchInheritanceModelIdNameMap = async (\n modelData: Partial<CmdbModels.ModelCmdbObject>\n ): Promise<void> => {\n let idNameMap = {};\n if (modelData.isAbstract) {\n idNameMap = await CmdbObjectApi_getIdMapName({\n parentObjectId: modelData.objectId,\n } as any);\n }\n setInheritanceModelIdNameMap(idNameMap);\n };\n\n useEffect(() => {\n fetchInheritanceModelIdNameMap(modelData);\n }, [modelData]);\n\n const computeDefaultFields = (\n { inModal } = { inModal: false }\n ): { fieldIds: string[] } => {\n // 原来有隐藏逻辑,针对 APP、HOST、USER、USER_GROUP模型,默认字段特殊处理了,现产品要求干掉,统一取8个默认字段,也不区分是否是内置模型\n const settings: any = inModal\n ? CMDB_MODAL_FIELDS_SETTINGS\n : CMDB_RESOURCE_FIELDS_SETTINGS;\n const ignoredFields: string[] =\n settings.ignoredFields[modelData.objectId] || [];\n let fieldIds: string[] = difference(\n uniq(map(modelData.attrList, \"id\")),\n ignoredFields\n ).slice(0, 8);\n const hideModelData: string[] = modelData.view.hide_columns || [];\n fieldIds = fieldIds.filter((field) => !hideModelData.includes(field));\n return { fieldIds };\n };\n\n // 根据用户预定义的 presetConfigs.fieldIds 进行排序,如果不在预定义的字段,则根据 modelData.view.attr_order 进行排序\n const _sortFieldIds = (fieldIds: any[]) => {\n let frontFields: any[] = [];\n let restFields: any[] = [];\n if (props.presetConfigs?.fieldIds) {\n frontFields = filter(props.presetConfigs.fieldIds, (id) =>\n fieldIds.includes(id)\n );\n }\n restFields = sortBy(\n reject(fieldIds, (id) => frontFields.includes(id)),\n (fieldId) => {\n const foundIndex = findIndex(\n modelData.view.attr_order,\n (orderId) => orderId === fieldId\n );\n if (foundIndex === -1) {\n return null;\n } else {\n return foundIndex;\n }\n }\n );\n return [...frontFields, ...restFields];\n };\n\n const getFields = () => {\n let fieldIds = props.presetConfigs?.fieldIds;\n const extraFixedFieldIds = props.extraFixedFields ?? [];\n if (isEmpty(fieldIds)) {\n fieldIds = jsonLocalStorage.getItem(\n `${modelData.objectId}-selectAttrIds`\n );\n }\n if (isEmpty(fieldIds)) {\n fieldIds = computeDefaultFields().fieldIds;\n }\n if (!isEmpty(extraFixedFieldIds)) {\n fieldIds = uniq([...fieldIds, ...extraFixedFieldIds]);\n }\n fieldIds = props.extraDisabledField\n ? uniq([...fieldIds, props.extraDisabledField])\n : fieldIds;\n fieldIds = _sortFieldIds(fieldIds);\n const hideModelData: string[] = modelData.view.hide_columns || [];\n fieldIds = fieldIds.filter((field) => !hideModelData.includes(field));\n modelData.isAbstract && fieldIds.push(\"_object_id\");\n return fieldIds;\n };\n\n const [q, setQ] = useState(props.q);\n const [state, setState] = useReducer(reducer, undefined, () => ({\n objectId: props.objectId,\n q: props.q,\n aq: initAqToShow(props.aq, modelData, false),\n aqToShow: props.aqToShow || initAqToShow(props.aq, modelData),\n instanceSourceQuery: props.instanceSourceQuery,\n asc: props.asc,\n sort: props.sort,\n page: props.dataSource?.page ?? props.page ?? 1,\n pageSize: props.dataSource?.pageSize ?? props.pageSize ?? 10,\n aliveHosts: props.aliveHosts,\n relatedToMe: props.relatedToMe,\n inited: false,\n loading: false,\n failed: false,\n isAdvancedSearchVisible: false,\n fieldIds: getFields(),\n presetConfigsQuery: props.presetConfigs?.query,\n autoBreakLine: false,\n appSearchInstanceId: \"\",\n currentChangeSelect: \"App\",\n appSelectValue: \"\",\n clusterValue: \"all\",\n appList: [],\n clusterList: [\n {\n instanceId: \"all\",\n name: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.ALL_CLUSTER}`),\n },\n ],\n searchByApp: false,\n }));\n const [selectedRowKeys, setSelectedRowKeys] = useState(\n props.selectedRowKeys ?? []\n );\n const cache = useRef(new Map<string, InstanceApi_PostSearchV3ResponseBody>());\n const isFirstRunRef = useRef(true);\n\n const getInstanceListData = async (\n sort: string,\n asc: boolean,\n page: number\n ): Promise<InstanceApi_PostSearchV3ResponseBody> => {\n const data: InstanceApi_PostSearchRequestBody = {};\n const v3Data: InstanceApi_PostSearchV3RequestBody = {\n fields: props?.extraFixedFields\n ? uniq([\"instanceId\"].concat(props?.extraFixedFields))\n : [\"instanceId\"],\n };\n if (!isEmpty(props.permission)) {\n v3Data.permission = data.permission = props.permission;\n }\n\n let query: Record<string, any> = {};\n\n v3Data.page = data.page = page;\n v3Data[\"page_size\"] = data[\"page_size\"] = state.pageSize;\n const sortType = modelData?.attrList?.find((attr) => attr.id === sort)\n ?.value?.default_type;\n const order = [\"series-number\", \"auto-increment-id\"].includes(sortType)\n ? asc\n ? 2\n : -2\n : asc\n ? 1\n : -1;\n if (sort) {\n data.sort = { [sort]: order };\n v3Data.sort = [{ key: sort, order }];\n }\n\n if (state.q) {\n query = getQuery(\n modelData,\n idObjectMap,\n state.q,\n state.fieldIds,\n props.onlySearchByIp\n );\n }\n\n if (!isEmpty(state.aq)) {\n query[LogicalOperators.And] = state.aq;\n }\n\n if (!isEmpty(props.defaultQuery)) {\n query[LogicalOperators.And] = [\n ...(query[LogicalOperators.And] || []),\n ...props.defaultQuery,\n ];\n }\n if (props.presetConfigs) {\n if (!isEmpty(props.presetConfigs.query)) {\n if (Object.keys(query).length) {\n query = {\n $and: [query, props.presetConfigs.query],\n };\n } else {\n query = props.presetConfigs.query;\n }\n }\n }\n if (state.fieldIds) {\n data.fields = Object.fromEntries(\n state.fieldIds.map((fieldId) => [fieldId, true])\n );\n v3Data.fields = [...state.fieldIds, ...v3Data.fields];\n (v3Data as any).ignore_missing_field_error = true;\n }\n if (props.useAutoDiscoveryProvider) {\n v3Data.fields = joinRelationFieldAndShowkey(\n v3Data.fields,\n modelData,\n props.objectList\n );\n }\n if (state.aliveHosts && props.objectId === \"HOST\") {\n query = { ...query, _agentStatus: \"正常\" };\n }\n if (state.instanceSourceQuery) {\n query = { ...query, _object_id: state.instanceSourceQuery };\n }\n\n if (!isEmpty(query)) {\n v3Data.query = data.query = query;\n }\n // useAutoDiscoveryProvider=true, 使用useProvider的接口,请求参数里加上extraParams\n\n if (props.useAutoDiscoveryProvider && !isEmpty(props.extraParams)) {\n Object.assign(v3Data, props.extraParams);\n }\n if (state.relatedToMe) {\n v3Data.only_my_instance = data.only_my_instance = state.relatedToMe;\n }\n //按应用筛选\n // istanbul ignore next (state is not updated)\n if (state.searchByApp) {\n const hostRange = props.presetConfigs?.query?.[\"$and\"]?.find(\n (i: any) => i.instanceId\n )?.instanceId?.[\"$in\"];\n v3Data.query = {\n [state.currentChangeSelect === \"App\" ||\n (state.currentChangeSelect === \"Cluster\" &&\n state.clusterValue === \"all\")\n ? \"_deviceList_CLUSTER.appId.instanceId\"\n : \"_deviceList_CLUSTER.instanceId\"]: state.appSearchInstanceId,\n ...(!isEmpty(hostRange) && props.limitInstanceRange\n ? {\n instanceId: { $in: hostRange },\n }\n : {}),\n ...(state.aliveHosts && props.objectId === \"HOST\"\n ? { _agentStatus: \"正常\" }\n : {}),\n };\n }\n const promise = props.onSearchExecute?.(data, v3Data);\n // useAutoDiscoveryProvider=true, 使用useProvider的接口\n return promise\n ? promise\n : props.useAutoDiscoveryProvider\n ? listProvider.query([props.objectId, v3Data])\n : InstanceApi_postSearchV3(props.objectId, v3Data);\n };\n\n const refreshInstanceList = async (\n sort: string,\n asc: boolean,\n page: number\n ): Promise<void> => {\n setState({ loading: true });\n try {\n if (props.dataSource) {\n setState({\n idObjectMap: idObjectMap,\n instanceListData: props.dataSource,\n });\n } else {\n if (!props.hideInstanceList) {\n const instanceListData = await getInstanceListData(sort, asc, page);\n instanceListData.list.forEach((i) =>\n cache.current.set(i.instanceId, i)\n );\n setState({ idObjectMap: idObjectMap, instanceListData });\n } else {\n setState({\n idObjectMap: idObjectMap,\n instanceListData: [] as InstanceApi_PostSearchV3ResponseBody,\n });\n }\n }\n } catch (e) {\n handleHttpError(e);\n setState({ failed: true });\n } finally {\n setState({ inited: true, loading: false });\n }\n };\n\n useEffect(() => {\n const fieldIds = getFields();\n if (\n // 当 props.objectId 改变时,总是更新 state.fieldIds\n props.objectId !== state.objectId ||\n !isEqual(fieldIds, state.fieldIds) ||\n !isEqual(props.presetConfigs?.query, state.presetConfigsQuery)\n ) {\n setState({\n fieldIds,\n presetConfigsQuery: props.presetConfigs?.query,\n });\n }\n }, [props.objectId, props.presetConfigs]);\n\n useEffect(() => {\n setSelectedRowKeys(props.selectedRowKeys ?? []);\n }, [props.objectId, props.selectedRowKeys]);\n\n // on filter condition change\n useEffect(() => {\n if (isFirstRunRef.current) {\n isFirstRunRef.current = false;\n return;\n }\n\n let skip = false;\n\n if (state.page !== 1) {\n setState({ page: 1 });\n props.onPaginationChange?.({ page: 1, pageSize: state.pageSize });\n skip = true;\n }\n\n // 当 prop.objectId 改变时先跳过,等 state.fieldIds 更新后再获取数据\n if (props.objectId !== state.objectId) {\n setState({ objectId: props.objectId });\n skip = true;\n }\n\n if (skip) {\n return;\n }\n\n refreshInstanceList(state.sort, state.asc, 1);\n }, [\n state.q,\n state.aq,\n state.instanceSourceQuery,\n state.pageSize,\n state.aliveHosts,\n state.relatedToMe,\n props.objectId,\n props.permission,\n props.defaultQuery,\n ]);\n\n // on other condition change\n useEffect(() => {\n if (isEmpty(state.fieldIds)) return;\n\n refreshInstanceList(state.sort, state.asc, state.page);\n }, [\n state.page,\n state.sort,\n state.asc,\n state.fieldIds,\n state.appSearchInstanceId,\n state.currentChangeSelect,\n state.searchByApp,\n props.dataSource,\n state.presetConfigsQuery,\n ]);\n\n const onChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setQ(e.target.value);\n };\n\n // istanbul ignore next\n const onSelectionChange = useCallback(\n async (selected: { selectedKeys: string[]; selectedItems: any[] }) => {\n let { selectedItems, selectedKeys } = selected;\n setSelectedRowKeys(selectedKeys);\n if (selectedKeys.length > compact(selectedItems).length) {\n const ids = selectedKeys.filter((id) => !cache.current.has(id));\n if (ids.length) {\n let resp;\n const params = {\n fields: [\"instanceId\"],\n query: {\n instanceId: {\n $in: ids,\n },\n },\n page_size: ids.length,\n };\n // useAutoDiscoveryProvider=true, 使用useProvider的接口,虽然这里列表用不到选择功能,但还是加上保持统一\n if (props.useAutoDiscoveryProvider) {\n resp = await listProvider.query([\n props.objectId,\n Object.assign(params, props.extraParams),\n ]);\n } else {\n resp = await InstanceApi_postSearchV3(props.objectId, params);\n }\n resp.list.forEach((i: Record<string, any>) =>\n cache.current.set(i.instanceId, i)\n );\n }\n selectedItems = selectedKeys.map((id) => cache.current.get(id));\n }\n props.onSelectionChange?.({ selectedItems, selectedKeys });\n },\n []\n );\n\n const onSearch = (value: string) => {\n const q = value.trim();\n setState({ q });\n props.onSearch?.(q);\n };\n\n const onAdvancedSearch = (\n queries: Query[],\n queriesToShow: Query[],\n fieldToShow: Record<string, any[]>[]\n ) => {\n setState({\n aq: queries,\n fieldToShow,\n aqToShow: queriesToShow,\n });\n props.onAdvancedSearch?.(queries);\n };\n\n const onSortingChange = useCallback(\n (info: ReadSortingChangeDetail) => {\n let asc: boolean;\n let sort: string;\n if (info.asc === undefined) {\n if (!state.sort) {\n return;\n }\n\n setState({ asc: undefined, sort: undefined });\n } else {\n setState({ asc: info.asc, sort: info.sort });\n asc = info.asc;\n sort = info.sort;\n }\n props.onSortingChange?.(info);\n },\n [state.sort]\n );\n\n const onPaginationChange = useCallback(\n (pagination: ReadPaginationChangeDetail) => {\n setState({ page: pagination.page, pageSize: pagination.pageSize });\n props.onPaginationChange?.(pagination);\n },\n []\n );\n\n const onInstanceSourceChange = useCallback((instanceSourceQuery: string) => {\n setState({ instanceSourceQuery });\n props.onInstanceSourceChange?.(instanceSourceQuery);\n }, []);\n\n const onRelatedToMeChange = (checked: boolean) => {\n setState({ relatedToMe: checked });\n props.onRelatedToMeChange?.(checked);\n };\n\n const onAliveHostsChange = (checked: boolean) => {\n setState({ aliveHosts: checked });\n props.onAliveHostsChange?.(checked);\n };\n\n const toggleAutoBreakLine = (autoBreakLine: boolean) => {\n setState({ autoBreakLine });\n };\n // istanbul ignore next (state is not updated)\n const toggleSearchMode = React.useCallback(async () => {\n if (!state.searchByApp) {\n const appListResp = await InstanceApi_postSearchV3(\"APP\", {\n fields: [\"clusters\", \"instanceId\", \"name\"],\n sort: [{ key: \"name\", order: 1 }],\n page: 1,\n page_size: 3000,\n });\n setState({\n appSearchInstanceId: appListResp.list?.[0].instanceId || \"\",\n appList: appListResp.list,\n clusterList: [...baseList, ...(appListResp.list?.[0].clusters || [])],\n searchByApp: true,\n appSelectValue: appListResp.list?.[0].instanceId || \"\",\n clusterValue: \"all\",\n page: 1,\n });\n } else {\n setState({ searchByApp: false, page: 1 });\n }\n }, [state.searchByApp]);\n // istanbul ignore next (state is not updated)\n const appSelectChange = (v: string) => {\n setState({\n appSearchInstanceId: v,\n currentChangeSelect: \"App\",\n appSelectValue: v,\n clusterValue: \"all\",\n clusterList: [\n ...baseList,\n ...state.appList.find((r) => r.instanceId === v).clusters,\n ],\n });\n };\n // istanbul ignore next (state is not updated)\n const clusterSelectChange = (v: string) => {\n setState({\n appSearchInstanceId: v === \"all\" ? state.appSelectValue : v,\n currentChangeSelect: \"Cluster\",\n clusterValue: v,\n });\n };\n const defaultFields = useMemo(() => {\n let defaultFields: string[];\n const fieldIds = props.presetConfigs?.fieldIds,\n extraFixedFieldIds = props.extraFixedFields ?? [];\n if (!isEmpty(fieldIds)) {\n defaultFields = props.presetConfigs.fieldIds;\n } else {\n defaultFields = computeDefaultFields().fieldIds;\n }\n if (!isEmpty(extraFixedFieldIds)) {\n defaultFields = uniq([...defaultFields, ...extraFixedFieldIds]);\n }\n return defaultFields;\n }, [props.presetConfigs, modelData]);\n\n // istanbul ignore next\n const handleConfirm = ({ fields, isReset }: DisplaySettingsModalData) => {\n if (isReset) {\n const fieldIds = defaultFields;\n modelData.isAbstract && fieldIds.push(\"_object_id\");\n setState({ fieldIds });\n jsonLocalStorage.removeItem(`${modelData.objectId}-selectAttrIds`);\n props.onFieldsModalConfirm(fieldIds);\n } else {\n setState({\n fieldIds: _sortFieldIds(fields),\n });\n jsonLocalStorage.setItem(`${modelData.objectId}-selectAttrIds`, fields);\n props.onFieldsModalConfirm(fields);\n }\n };\n\n useEffect(() => {\n props.notifyCurrentFields?.(state.fieldIds);\n }, [props.notifyCurrentFields]);\n\n // istanbul ignore next\n useEffect(() => {\n props.selectedRowKeys?.length &&\n (async () => {\n const data: InstanceApi_PostSearchRequestBody = {};\n const v3Data: InstanceApi_PostSearchV3RequestBody = {\n fields: [\"instanceId\"],\n };\n if (!isEmpty(props.permission)) {\n v3Data.permission = data.permission = props.permission;\n }\n\n if (state.fieldIds) {\n data.fields = Object.fromEntries(\n state.fieldIds.map((fieldId) => [fieldId, true])\n );\n v3Data.fields = [...state.fieldIds, ...v3Data.fields];\n (v3Data as any).ignore_missing_field_error = true;\n }\n\n v3Data.query = {\n instanceId: {\n $in: props.selectedRowKeys,\n },\n };\n v3Data.page_size = props.selectedRowKeys.length;\n\n if (state.relatedToMe) {\n v3Data.only_my_instance = data.only_my_instance = state.relatedToMe;\n }\n if (props.extraParams) {\n Object.assign(v3Data, props.extraParams);\n }\n let resp;\n if (props.useAutoDiscoveryProvider) {\n resp = await listProvider.query([props.objectId, v3Data]);\n } else {\n resp = await InstanceApi_postSearchV3(props.objectId, v3Data);\n }\n resp.list.forEach((i: Record<string, any>) =>\n cache.current.set(i.instanceId, i)\n );\n })();\n }, [props.selectedRowKeys]);\n const handleToggleFixHeader = () => {\n setFixHeader(!fixedHeader);\n };\n const onAdvancedSearchCloseGen = (attrId: string, valuesStr: string) => {\n return () => {\n const queries: Query[] = [];\n const queriesToShow: Query[] = [];\n const filterAq = (queries: any[]) =>\n queries.filter((v: any) => isValueEqualFn(v, attrId, valuesStr));\n state.aq.forEach((query) => {\n const key = Object.keys(query)[0];\n if (\n (key === \"$or\" || key === \"$and\") &&\n Object.keys((query[key] as Query[])[0])[0] === attrId\n ) {\n const filteredSubQueries = filterAq(query[key] as Query[]);\n if (filteredSubQueries.length > 0) {\n queries.push({\n [key]: filteredSubQueries,\n });\n }\n } else if (key !== attrId && !startsWith(attrId, `${key}.`)) {\n // $exists $gte $lte 针对为空,不为空,时间范围特殊处理\n if (!Array.isArray(query[key]) && isSpecialFn(query, key)) {\n queries.push(query);\n } else {\n const fieldId = Object.keys((query[key] as Query[])[0])[0];\n // 判断是否为结构体\n const isStruct = isOfStruct(modelData, fieldId);\n // 结构体情况处理\n if (\n !(\n (key === \"$or\" || key === \"$and\") &&\n startsWith(fieldId, `${attrId}.`) &&\n isStruct\n )\n ) {\n queries.push(query);\n }\n }\n } else if (\n props.isInstanceFilterForm &&\n key === attrId &&\n isValueEqualFn(query, attrId, valuesStr)\n ) {\n specialQueryHandler(query, key, queries);\n }\n });\n state.aqToShow.forEach((query) => {\n const key = Object.keys(query)[0];\n if (\n (key === \"$or\" || key === \"$and\") &&\n Object.keys((query[key] as Query[])[0])[0] === attrId\n ) {\n const filteredSubQueries = filterAq(query[key] as Query[]);\n if (filteredSubQueries.length > 0) {\n queriesToShow.push({\n [key]: filteredSubQueries,\n });\n }\n } else if (key !== attrId) {\n queriesToShow.push(query);\n } else if (\n props.isInstanceFilterForm &&\n key === attrId &&\n isValueEqualFn(query, attrId, valuesStr)\n ) {\n specialQueryHandler(query, key, queriesToShow);\n }\n });\n setState({\n aq: queries,\n aqToShow: queriesToShow,\n });\n props.onAdvancedSearch?.(queries);\n };\n };\n const conditions = translateConditions(\n state.aqToShow,\n idObjectMap,\n modelData\n );\n\n return (\n <Spin spinning={state.loading}>\n {state.inited && !state.failed ? (\n <React.Fragment>\n {(!props.searchDisabled ||\n !props.advancedSearchDisabled ||\n !props.relatedToMeDisabled ||\n !props.aliveHostsDisabled ||\n !props.moreButtonsDisabled) && (\n <div className={styles.instanceListToolbar}>\n <div className={styles.searchRelated}>\n {/* istanbul ignore next (state is not updated) */}\n {!state.searchByApp ? (\n <>\n {!props.searchDisabled && (\n <Input.Search\n enterButton\n value={q}\n onChange={onChange}\n onSearch={onSearch}\n />\n )}\n {!props.advancedSearchDisabled && (\n <Button\n type=\"link\"\n size=\"small\"\n style={{\n marginLeft: \"8px\",\n marginRight: \"auto\",\n }}\n onClick={() =>\n setState({\n isAdvancedSearchVisible:\n !state.isAdvancedSearchVisible,\n })\n }\n data-testid=\"advanced-search-toggle-btn\"\n >\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ADVANCED_SEARCH}`\n )}\n <LegacyIcon\n type={state.isAdvancedSearchVisible ? \"up\" : \"down\"}\n />\n </Button>\n )}\n </>\n ) : (\n <>\n <Select\n style={{ width: \"150px\", marginRight: \"10px\" }}\n value={state.appSelectValue}\n onChange={appSelectChange}\n showSearch={true}\n optionFilterProp=\"children\"\n >\n {state.appList?.map((r) => (\n <Select.Option key={r.instanceId} value={r.instanceId}>\n {r.name}\n </Select.Option>\n ))}\n </Select>\n <Select\n style={{ width: \"150px\" }}\n value={state.clusterValue}\n onChange={clusterSelectChange}\n showSearch={true}\n optionFilterProp=\"children\"\n >\n {state.clusterList.map((r) => (\n <Select.Option key={r.instanceId} value={r.instanceId}>\n {r.name}\n </Select.Option>\n ))}\n </Select>\n </>\n )}\n </div>\n <div className={styles.options}>\n {selectedRowKeys.length > 0 && (\n <div style={{ marginRight: 20 }}>\n <span>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CHOSEN_OPTIONS}`, {\n count: selectedRowKeys.length,\n })}\n </span>\n <a\n role=\"button\"\n onClick={() =>\n onSelectionChange({\n selectedKeys: [],\n selectedItems: [],\n })\n }\n >\n {\" \"}\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLEAR}`)}\n </a>\n </div>\n )}\n {props.objectId === \"HOST\" && props.enableSearchByApp && (\n <Button type={\"link\"} onClick={toggleSearchMode}>\n {/* istanbul ignore next (state is not updated) */}\n {state.searchByApp\n ? i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FREE_SELECTION}`)\n : i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.APP_SELECTION}`)}\n </Button>\n )}\n {props.objectId === \"HOST\" && !props.aliveHostsDisabled && (\n <IconButton\n checked={state.aliveHosts}\n onChange={onAliveHostsChange}\n style={{ marginRight: 10 }}\n disabled={props.fixAliveHosts}\n type=\"normalHost\"\n label={i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.NORMAL_HOST}`)}\n data-testid=\"alive-hosts\"\n />\n )}\n {!props.relatedToMeDisabled && (\n <IconButton\n checked={state.relatedToMe}\n onChange={onRelatedToMeChange}\n style={{ marginRight: 10 }}\n type=\"relateToMe\"\n label={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.RELATED_TO_ME}`\n )}\n data-testid=\"related-to-me\"\n />\n )}\n {!props.showHiddenInfoDisabled && (\n <IconButton\n checked={state.autoBreakLine}\n onChange={toggleAutoBreakLine}\n style={{ marginRight: 10 }}\n type=\"showHiddenInfo\"\n label={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.DISPLAY_OMITTED_INFORMATION}`\n )}\n data-testid=\"show-hidden-info\"\n />\n )}\n {!props.moreButtonsDisabled && (\n <MoreButtonsContainer\n modelData={modelData}\n onConfirm={handleConfirm}\n fieldIds={state.fieldIds}\n defaultFields={defaultFields}\n extraDisabledField={props.extraDisabledField}\n handleToggleFixHeader={handleToggleFixHeader}\n fixedHeader={fixedHeader}\n showFixedHeader={props.showFixedHeader}\n />\n )}\n </div>\n </div>\n )}\n {!props.advancedSearchDisabled && !state.searchByApp && (\n <div\n style={{ marginBottom: \"18px\" }}\n hidden={!state.isAdvancedSearchVisible}\n >\n <AdvancedSearch\n key={newKey(state.fieldIds, state.aq)}\n fieldIds={state.fieldIds}\n idObjectMap={state.idObjectMap}\n modelData={modelData}\n q={state.aqToShow}\n fieldToShow={state.fieldToShow}\n onSearch={onAdvancedSearch}\n {...(props.autoSearch\n ? {\n autoSearch: props.autoSearch,\n }\n : null)}\n />\n </div>\n )}\n {!props.hideSearchConditions &&\n !state.searchByApp &&\n (state.instanceSourceQuery || state.q || !isEmpty(conditions)) && (\n <div className={styles.searchConditions}>\n <span>\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.CURRENT_FILTER_REQUIREMENTS}`\n )}\n </span>\n {state.q && (\n <Tag\n closable\n onClose={() => {\n setQ(\"\");\n onSearch(\"\");\n }}\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FUZZY_SEARCH}`, {\n query: state.q,\n })}\n </Tag>\n )}\n {state.instanceSourceQuery && (\n <Tag\n closable\n onClose={() => {\n onInstanceSourceChange(null);\n }}\n >\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.INSTANCE_SOURCE_TAG_TEXT}`,\n {\n query:\n inheritanceModelIdNameMap?.[\n state.instanceSourceQuery\n ] || state.instanceSourceQuery,\n }\n )}\n </Tag>\n )}\n {conditions.map((condition) => (\n <Tag\n key={`${condition.attrId}${\n condition.valuesStr\n }-${uniqueId()}`}\n closable\n onClose={onAdvancedSearchCloseGen(\n condition.attrId,\n condition.valuesStr\n )}\n >\n {condition.condition}\n </Tag>\n ))}\n </div>\n )}\n {props.extraFilterBricks?.useBrick && (\n <BrickAsComponent useBrick={props.extraFilterBricks.useBrick} />\n )}\n {!props.hideInstanceList && (\n <InstanceListTable\n detailUrlTemplates={props.detailUrlTemplates}\n fieldIds={state.fieldIds}\n idObjectMap={state.idObjectMap}\n modelData={modelData}\n instanceListData={state.instanceListData}\n sort={state.sort}\n asc={state.asc}\n selectedRowKeys={selectedRowKeys}\n selectDisabled={props.selectDisabled}\n sortDisabled={props.sortDisabled}\n propertyDisplayConfigs={props.propertyDisplayConfigs}\n onClickItem={props.onClickItem}\n onClickItemV2={props.onClickItemV2}\n onPaginationChange={onPaginationChange}\n onSortingChange={onSortingChange}\n onSelectionChange={onSelectionChange}\n onInstanceSourceChange={onInstanceSourceChange}\n instanceSourceQuery={state.instanceSourceQuery}\n inheritanceModelIdNameMap={inheritanceModelIdNameMap}\n filterInstanceSourceDisabled={props.filterInstanceSourceDisabled}\n autoBreakLine={state.autoBreakLine}\n relationLinkDisabled={props.relationLinkDisabled}\n pageSizeOptions={props.pageSizeOptions}\n showSizeChanger={props.showSizeChanger}\n extraColumns={props.extraColumns}\n target={props.target}\n ipCopy={props.ipCopy}\n fixedHeader={fixedHeader}\n separatorUsedInRelationData={props.separatorUsedInRelationData}\n showTooltip={showTooltip}\n rowSelectionType={props.rowSelectionType}\n />\n )}\n </React.Fragment>\n ) : null}\n </Spin>\n );\n}\n\n/**\n * 把 objectList 封装到构件中请求,废弃掉通过老模板使用的方式,可直接使用构件。\n * 同时也兼容之前的使用方式,对于外部传进来的会优先使用外部的数据,构件内部不会额外请求,\n * 不传的话构件内部做请求,并作缓存\n */\nexport function InstanceList(props: InstanceListProps): React.ReactElement {\n const [objectList, setObjectList] = useState<\n Partial<CmdbModels.ModelCmdbObject>[]\n >(props.objectList);\n\n useEffect(() => {\n if (props.objectList) {\n setObjectList(props.objectList);\n } else {\n (async () => {\n if (!props.objectList) {\n const cacheData = objectListCache.get(props.objectId);\n if (cacheData) {\n setObjectList(cacheData);\n } else {\n try {\n const list = (\n await CmdbObjectApi_getObjectRef({ ref_object: props.objectId })\n ).data;\n setObjectList(list);\n objectListCache.set(props.objectId, list);\n } catch (e) {\n // istanbul ignore next\n handleHttpError(e);\n }\n }\n }\n })();\n }\n }, [props.objectId, props.objectList]);\n\n if (\n !objectList ||\n !objectList.find((item) => item.objectId === props.objectId)\n )\n return null;\n\n return <LegacyInstanceList {...props} objectList={objectList} />;\n}\n"],"mappings":"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"}
@@ -420,7 +420,7 @@ export function LegacyInstanceList(props) {
420
420
 
421
421
  var [q, setQ] = useState(props.q);
422
422
  var [state, setState] = useReducer(reducer, undefined, () => {
423
- var _ref3, _props$dataSource$pag, _props$dataSource, _ref4, _props$dataSource$pag2, _props$dataSource2;
423
+ var _ref3, _props$dataSource$pag, _props$dataSource, _ref4, _props$dataSource$pag2, _props$dataSource2, _props$presetConfigs3;
424
424
 
425
425
  return {
426
426
  objectId: props.objectId,
@@ -439,6 +439,7 @@ export function LegacyInstanceList(props) {
439
439
  failed: false,
440
440
  isAdvancedSearchVisible: false,
441
441
  fieldIds: getFields(),
442
+ presetConfigsQuery: (_props$presetConfigs3 = props.presetConfigs) === null || _props$presetConfigs3 === void 0 ? void 0 : _props$presetConfigs3.query,
442
443
  autoBreakLine: false,
443
444
  appSearchInstanceId: "",
444
445
  currentChangeSelect: "App",
@@ -547,9 +548,9 @@ export function LegacyInstanceList(props) {
547
548
 
548
549
 
549
550
  if (state.searchByApp) {
550
- var _props$presetConfigs3, _props$presetConfigs4, _props$presetConfigs5, _props$presetConfigs6, _props$presetConfigs7;
551
+ var _props$presetConfigs4, _props$presetConfigs5, _props$presetConfigs6, _props$presetConfigs7, _props$presetConfigs8;
551
552
 
552
- var hostRange = (_props$presetConfigs3 = props.presetConfigs) === null || _props$presetConfigs3 === void 0 ? void 0 : (_props$presetConfigs4 = _props$presetConfigs3.query) === null || _props$presetConfigs4 === void 0 ? void 0 : (_props$presetConfigs5 = _props$presetConfigs4["$and"]) === null || _props$presetConfigs5 === void 0 ? void 0 : (_props$presetConfigs6 = _props$presetConfigs5.find(i => i.instanceId)) === null || _props$presetConfigs6 === void 0 ? void 0 : (_props$presetConfigs7 = _props$presetConfigs6.instanceId) === null || _props$presetConfigs7 === void 0 ? void 0 : _props$presetConfigs7["$in"];
553
+ var hostRange = (_props$presetConfigs4 = props.presetConfigs) === null || _props$presetConfigs4 === void 0 ? void 0 : (_props$presetConfigs5 = _props$presetConfigs4.query) === null || _props$presetConfigs5 === void 0 ? void 0 : (_props$presetConfigs6 = _props$presetConfigs5["$and"]) === null || _props$presetConfigs6 === void 0 ? void 0 : (_props$presetConfigs7 = _props$presetConfigs6.find(i => i.instanceId)) === null || _props$presetConfigs7 === void 0 ? void 0 : (_props$presetConfigs8 = _props$presetConfigs7.instanceId) === null || _props$presetConfigs8 === void 0 ? void 0 : _props$presetConfigs8["$in"];
553
554
  v3Data.query = _objectSpread(_objectSpread({
554
555
  [state.currentChangeSelect === "App" || state.currentChangeSelect === "Cluster" && state.clusterValue === "all" ? "_deviceList_CLUSTER.appId.instanceId" : "_deviceList_CLUSTER.instanceId"]: state.appSearchInstanceId
555
556
  }, !isEmpty(hostRange) && props.limitInstanceRange ? {
@@ -617,12 +618,17 @@ export function LegacyInstanceList(props) {
617
618
  }();
618
619
 
619
620
  useEffect(() => {
621
+ var _props$presetConfigs9;
622
+
620
623
  var fieldIds = getFields();
621
624
 
622
625
  if ( // 当 props.objectId 改变时,总是更新 state.fieldIds
623
- props.objectId !== state.objectId || !isEqual(fieldIds, state.fieldIds)) {
626
+ props.objectId !== state.objectId || !isEqual(fieldIds, state.fieldIds) || !isEqual((_props$presetConfigs9 = props.presetConfigs) === null || _props$presetConfigs9 === void 0 ? void 0 : _props$presetConfigs9.query, state.presetConfigsQuery)) {
627
+ var _props$presetConfigs10;
628
+
624
629
  setState({
625
- fieldIds
630
+ fieldIds,
631
+ presetConfigsQuery: (_props$presetConfigs10 = props.presetConfigs) === null || _props$presetConfigs10 === void 0 ? void 0 : _props$presetConfigs10.query
626
632
  });
627
633
  }
628
634
  }, [props.objectId, props.presetConfigs]);
@@ -671,7 +677,7 @@ export function LegacyInstanceList(props) {
671
677
  useEffect(() => {
672
678
  if (isEmpty(state.fieldIds)) return;
673
679
  refreshInstanceList(state.sort, state.asc, state.page);
674
- }, [state.page, state.sort, state.asc, state.fieldIds, state.appSearchInstanceId, state.currentChangeSelect, state.searchByApp, props.dataSource]);
680
+ }, [state.page, state.sort, state.asc, state.fieldIds, state.appSearchInstanceId, state.currentChangeSelect, state.searchByApp, props.dataSource, state.presetConfigsQuery]);
675
681
 
676
682
  var onChange = e => {
677
683
  setQ(e.target.value);
@@ -866,10 +872,10 @@ export function LegacyInstanceList(props) {
866
872
  };
867
873
 
868
874
  var defaultFields = useMemo(() => {
869
- var _props$presetConfigs8, _props$extraFixedFiel2;
875
+ var _props$presetConfigs11, _props$extraFixedFiel2;
870
876
 
871
877
  var defaultFields;
872
- var fieldIds = (_props$presetConfigs8 = props.presetConfigs) === null || _props$presetConfigs8 === void 0 ? void 0 : _props$presetConfigs8.fieldIds,
878
+ var fieldIds = (_props$presetConfigs11 = props.presetConfigs) === null || _props$presetConfigs11 === void 0 ? void 0 : _props$presetConfigs11.fieldIds,
873
879
  extraFixedFieldIds = (_props$extraFixedFiel2 = props.extraFixedFields) !== null && _props$extraFixedFiel2 !== void 0 ? _props$extraFixedFiel2 : [];
874
880
 
875
881
  if (!isEmpty(fieldIds)) {
@@ -1 +1 @@
1
- {"version":3,"file":"InstanceList.js","names":["React","useEffect","useReducer","useState","useRef","useMemo","useCallback","difference","isEmpty","isEqual","isString","map","uniq","union","filter","reject","sortBy","uniqueId","findIndex","find","startsWith","compact","omit","keyBy","BrickAsComponent","getRuntime","handleHttpError","useProvider","i18n","K","NS_LIBS_CMDB_INSTANCES","InstanceApi_postSearchV3","CmdbObjectApi_getIdMapName","CmdbObjectApi_getObjectRef","Icon","LegacyIcon","Button","Spin","Input","Tag","Select","getRelationObjectSides","forEachAvailableFields","getInstanceNameKeys","isSelfRelation","ElementOperators","LogicalOperators","JsonStorage","ConditionType","AdvancedSearch","getFieldConditionsAndValues","MoreButtonsContainer","InstanceListTable","styles","extraFieldAttrs","CMDB_MODAL_FIELDS_SETTINGS","CMDB_RESOURCE_FIELDS_SETTINGS","objectListCache","ModelAttributeValueType","IconButton","changeQueryWithCustomRules","joinRelationFieldAndShowkey","fields","modelData","objectList","attrIdMap","attrList","field","relation","relation_list","left_id","right_id","isLeft","left_object_id","objectId","otherSideObjectId","right_object_id","otherSideObject","object","showKey","view","show_key","getQuery","idObjectMap","q","onlySearchByIp","query","$or","queryValues","trim","split","searchIpFields","getCurrentApp","config","queryOrs","Set","searchValue","$like","forEach","key","push","attr","queryValue","id","sides","this","nameKeys","that","nameKey","isSpecialFn","attrId","Object","keys","some","v","specialQueryHandler","queries","isSpecial","isValueEqualFn","valuesStr","values","join","translateConditions","aq","t","conditions","relations","sidesArr","relationObject","nameOfNameKey","name","value","type","relationSideId","attrAndRelationList","Exists","info","undefined","Between","Empty","NotEmpty","False","True","includes","currentCondition","replace","condition","label","curCondition","queryValuesStr","every","newKey","fieldIds","length","isOfStruct","fieldId","structFields","structs","struct_define","struct","flat","isOfBoolean","keyAttrMap","BOOLEAN","initAqToShow","isToShow","newAqToShow","aqToShow","entries","expressions","newExpressions","Or","And","firstSubQuery","isStruct","isBool","structQueries","expression","structExpressions","item","boolExpressions","targetValue","LegacyInstanceList","props","showTooltip","baseList","instanceId","ALL_CLUSTER","jsonLocalStorage","localStorage","reducer","prevState","updatedProperty","listProvider","disabledDefaultFields","inheritanceModelIdNameMap","setInheritanceModelIdNameMap","fixedHeader","setFixHeader","fetchInheritanceModelIdNameMap","idNameMap","isAbstract","parentObjectId","computeDefaultFields","inModal","settings","ignoredFields","slice","hideModelData","hide_columns","_sortFieldIds","frontFields","restFields","presetConfigs","foundIndex","attr_order","orderId","getFields","extraFixedFieldIds","extraFixedFields","getItem","extraDisabledField","setQ","state","setState","instanceSourceQuery","asc","sort","page","dataSource","pageSize","aliveHosts","relatedToMe","inited","loading","failed","isAdvancedSearchVisible","autoBreakLine","appSearchInstanceId","currentChangeSelect","appSelectValue","clusterValue","appList","clusterList","searchByApp","selectedRowKeys","setSelectedRowKeys","cache","Map","isFirstRunRef","getInstanceListData","data","v3Data","concat","permission","sortType","default_type","order","defaultQuery","$and","fromEntries","ignore_missing_field_error","useAutoDiscoveryProvider","_agentStatus","_object_id","extraParams","assign","only_my_instance","hostRange","i","limitInstanceRange","$in","promise","onSearchExecute","refreshInstanceList","instanceListData","hideInstanceList","list","current","set","e","skip","onPaginationChange","onChange","target","onSelectionChange","selected","selectedItems","selectedKeys","ids","has","resp","params","page_size","get","onSearch","onAdvancedSearch","queriesToShow","fieldToShow","onSortingChange","pagination","onInstanceSourceChange","onRelatedToMeChange","checked","onAliveHostsChange","toggleAutoBreakLine","toggleSearchMode","appListResp","clusters","appSelectChange","r","clusterSelectChange","defaultFields","handleConfirm","isReset","removeItem","onFieldsModalConfirm","setItem","notifyCurrentFields","handleToggleFixHeader","onAdvancedSearchCloseGen","filterAq","filteredSubQueries","Array","isArray","isInstanceFilterForm","searchDisabled","advancedSearchDisabled","relatedToMeDisabled","aliveHostsDisabled","moreButtonsDisabled","instanceListToolbar","searchRelated","marginLeft","marginRight","ADVANCED_SEARCH","width","options","CHOSEN_OPTIONS","count","CLEAR","enableSearchByApp","FREE_SELECTION","APP_SELECTION","fixAliveHosts","NORMAL_HOST","RELATED_TO_ME","showHiddenInfoDisabled","DISPLAY_OMITTED_INFORMATION","showFixedHeader","marginBottom","autoSearch","hideSearchConditions","searchConditions","CURRENT_FILTER_REQUIREMENTS","FUZZY_SEARCH","INSTANCE_SOURCE_TAG_TEXT","extraFilterBricks","useBrick","detailUrlTemplates","selectDisabled","sortDisabled","propertyDisplayConfigs","onClickItem","onClickItemV2","filterInstanceSourceDisabled","relationLinkDisabled","pageSizeOptions","showSizeChanger","extraColumns","ipCopy","separatorUsedInRelationData","rowSelectionType","InstanceList","setObjectList","cacheData","ref_object"],"sources":["../../../src/instance-list/InstanceList.tsx"],"sourcesContent":["import React, {\n useEffect,\n useReducer,\n useState,\n useRef,\n useMemo,\n useCallback,\n} from \"react\";\nimport {\n difference,\n isEmpty,\n isEqual,\n isString,\n map,\n uniq,\n union,\n filter,\n reject,\n sortBy,\n uniqueId,\n findIndex,\n find,\n startsWith,\n compact,\n omit,\n keyBy,\n} from \"lodash\";\nimport {\n BrickAsComponent,\n getRuntime,\n handleHttpError,\n useProvider,\n} from \"@next-core/brick-kit\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport {\n PropertyDisplayConfig,\n ReadPaginationChangeDetail,\n ReadSelectionChangeDetail,\n ReadSortingChangeDetail,\n UseBrickConf,\n} from \"@next-core/brick-types\";\nimport {\n CmdbModels,\n InstanceApi_PostSearchRequestBody,\n InstanceApi_PostSearchV3RequestBody,\n InstanceApi_PostSearchV3ResponseBody,\n InstanceApi_postSearchV3,\n CmdbObjectApi_getIdMapName,\n CmdbObjectApi_getObjectRef,\n} from \"@next-sdk/cmdb-sdk\";\nimport { Icon as LegacyIcon } from \"@ant-design/compatible\";\nimport { Button, Spin, Input, Tag, Select } from \"antd\";\nimport {\n getRelationObjectSides,\n forEachAvailableFields,\n getInstanceNameKeys,\n RelationIdKeys,\n RelationNameKeys,\n RelationObjectIdKeys,\n RelationObjectSides,\n isSelfRelation,\n Query,\n ElementOperators,\n LogicalOperators,\n ComparisonOperators,\n} from \"@next-libs/cmdb-utils\";\nimport { JsonStorage } from \"@next-libs/storage\";\nimport { ModelObjectAttr } from \"@next-sdk/cmdb-sdk/dist/types/model/cmdb\";\n\nimport {\n ConditionType,\n AdvancedSearch,\n getFieldConditionsAndValues,\n MoreButtonsContainer,\n InstanceListTable,\n CustomColumn,\n Field,\n UseBrickAndPropertyDisplayConfig,\n} from \"../instance-list-table\";\nimport styles from \"./InstanceList.module.css\";\nimport {\n extraFieldAttrs,\n CMDB_MODAL_FIELDS_SETTINGS,\n CMDB_RESOURCE_FIELDS_SETTINGS,\n objectListCache,\n} from \"./constants\";\nimport { ModelAttributeValueType } from \"../model-attribute-form-control/ModelAttributeFormControl\";\nimport { IconButton } from \"./IconButton\";\nimport { changeQueryWithCustomRules } from \"../processors\";\nimport { DisplaySettingsModalData } from \"../instance-list-table/DisplaySettingsModal\";\nexport interface InstanceListPresetConfigs {\n query?: Record<string, any>;\n fieldIds?: string[];\n}\nexport function joinRelationFieldAndShowkey(\n fields: string[],\n modelData: Record<string, any>,\n objectList: Record<string, any>[]\n) {\n const attrIdMap = keyBy(modelData.attrList, \"id\");\n return fields.map((field) => {\n if (attrIdMap[field]) {\n return field;\n } else {\n const relation = modelData.relation_list.find(\n (relation: any) =>\n relation.left_id === field || relation.right_id === field\n );\n if (relation) {\n const isLeft = relation.left_object_id === modelData.objectId;\n const otherSideObjectId = isLeft\n ? relation.right_object_id\n : relation.left_object_id;\n const otherSideObject = objectList.find(\n (object) => object.objectId === otherSideObjectId\n );\n const showKey = otherSideObject?.view?.show_key?.[0] ?? \"\";\n return `${field}.${showKey}`;\n } else {\n return field;\n }\n }\n });\n}\n\nexport function getQuery(\n modelData: Partial<CmdbModels.ModelCmdbObject>,\n idObjectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>,\n q: string,\n fields?: string[],\n onlySearchByIp?: boolean\n) {\n const query: Record<string, any> = { $or: [] };\n const queryValues = q.trim().split(/\\s+/);\n if (onlySearchByIp) {\n const searchIpFields =\n (getRuntime().getCurrentApp().config?.searchIpFields as string[]) || [];\n const queryOrs = [...new Set([\"ip\", ...searchIpFields])];\n const searchValue = { $like: `%${q.trim()}%` };\n queryOrs.forEach((key) => {\n query.$or.push({ [key]: searchValue });\n });\n return query;\n }\n forEachAvailableFields(\n modelData,\n (attr) => {\n queryValues.forEach((queryValue) =>\n query.$or.push({ [attr.id]: { $like: `%${queryValue}%` } })\n );\n },\n (relation, sides) => {\n const id = relation[`${sides.this}_id` as RelationIdKeys];\n const nameKeys = getInstanceNameKeys(\n idObjectMap[relation[`${sides.that}_object_id` as RelationObjectIdKeys]]\n );\n\n queryValues.forEach((queryValue) => {\n nameKeys.forEach((nameKey) => {\n query.$or.push({\n [`${id}.${nameKey}`]: { $like: `%${queryValue}%` },\n });\n });\n });\n },\n fields\n );\n\n return query;\n}\n\nexport const isSpecialFn = (query: any, attrId: string) => {\n return Object.keys(query[attrId] as Query[]).some(\n (v) => v === \"$exists\" || v === \"$gte\" || v === \"$lte\"\n );\n};\n\nexport const specialQueryHandler = (query: any, key: any, queries: Query[]) => {\n // $exists $gte $lte 针对为空,不为空,时间范围特殊处理\n const isSpecial = isSpecialFn(query, key);\n if (isSpecial) {\n return;\n }\n queries.push(query);\n};\n\nexport const isValueEqualFn = (\n query: any,\n attrId: string,\n valuesStr?: string\n) => {\n const isSpecial = isSpecialFn(query, attrId);\n if (isSpecial) return false;\n return query[attrId]\n ? valuesStr && Object.values(query[attrId]).join(\" \") !== valuesStr // 当条件是为空和不为空时,需要判断valuesStr是否存在\n : false;\n};\n\nfunction translateConditions(\n aq: Query[],\n idObjectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>,\n modelData: Partial<CmdbModels.ModelCmdbObject>,\n t?: () => string\n): { attrId: string; condition: string; valuesStr: string }[] {\n const conditions: {\n attrId: string;\n condition: string;\n valuesStr: string;\n }[] = [];\n const relations: any[] = [];\n modelData.relation_list.forEach((relation) => {\n let sidesArr: RelationObjectSides[] = [];\n if (isSelfRelation(relation)) {\n sidesArr = [\n { this: \"left\", that: \"right\" },\n { this: \"right\", that: \"left\" },\n ];\n } else {\n sidesArr = [getRelationObjectSides(relation, modelData)];\n }\n sidesArr.forEach((sides) => {\n const objectId = relation[`${sides.this}_id` as RelationIdKeys];\n const relationObject =\n idObjectMap[\n relation[`${sides.that}_object_id` as RelationObjectIdKeys]\n ];\n const nameKeys = getInstanceNameKeys(relationObject);\n nameKeys.forEach((nameKey) => {\n const nameOfNameKey =\n find(relationObject?.attrList, [\"id\", nameKey])?.name ?? nameKey;\n const id = `${objectId}.${nameKey}`;\n const name = `${\n relation[`${sides.this}_name` as RelationNameKeys]\n }(${nameOfNameKey})`;\n relations.push({\n id,\n name,\n value: { type: \"str\" },\n relationSideId: relation[`${sides.this}_id` as RelationIdKeys],\n });\n });\n relations.push({\n id: `${objectId}.`,\n name: `${relation[`${sides.this}_name` as RelationNameKeys]}`,\n value: { type: \"str\" },\n relationSideId: relation[`${sides.this}_id` as RelationIdKeys],\n });\n });\n });\n const attrAndRelationList = [...modelData.attrList, ...relations];\n if (!isEmpty(aq)) {\n for (const query of aq) {\n let queries: Query[] = [query];\n if (Object.keys(query)[0] === \"$or\" || Object.keys(query)[0] === \"$and\") {\n queries = query[Object.keys(query)[0]] as Query[];\n }\n\n queries.forEach((query) => {\n const key = Object.keys(query)[0];\n const value = Object.values(query)[0];\n let attr = attrAndRelationList.find(\n (attr) => attr.id === key || attr.relationSideId === key\n );\n if (\n Object.keys(value)[0] === ElementOperators.Exists &&\n attr.relationSideId\n ) {\n const relationSideId = attr.relationSideId;\n attr =\n attrAndRelationList.find(\n (attr) => attr.id === `${relationSideId}.`\n ) || attr;\n }\n if (attr) {\n query = changeQueryWithCustomRules(\n modelData.objectId,\n attr.id,\n query\n );\n const info = getFieldConditionsAndValues(\n query as any,\n key,\n attr.value.type as ModelAttributeValueType,\n undefined,\n undefined,\n modelData.objectId,\n attr.id\n );\n if (\n ![\n ConditionType.Between,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ConditionType.False,\n ConditionType.True,\n ].includes(info.currentCondition.type)\n ) {\n info.values = info.values.map((v) =>\n isString(v) && v.includes(\" \") ? v.replace(/^\"+|\"+$/g, \"\") : v\n );\n }\n\n let condition = `${attr.name}: ${info.currentCondition.label}`;\n if (\n ![ConditionType.Empty, ConditionType.NotEmpty].includes(\n info.currentCondition.type\n )\n ) {\n condition += `\"${info.values.join(\" ~ \")}\"`;\n }\n const curCondition = {\n attrId: key,\n condition,\n valuesStr: info.queryValuesStr,\n };\n if (\n conditions.every(\n (v) => !isEqual(omit(v, \"attrId\"), omit(curCondition, \"attrId\"))\n )\n ) {\n conditions.push(curCondition);\n }\n }\n });\n }\n }\n\n return conditions;\n}\n\nfunction newKey(fieldIds: string[], aq: Query[]): string {\n let key = \"\";\n if (!isEmpty(fieldIds)) {\n key += fieldIds.join(\"-\");\n }\n if (!isEmpty(aq)) {\n key += `-${aq.length}`;\n }\n return key;\n}\nconst isOfStruct = (\n modelData: Partial<CmdbModels.ModelCmdbObject>,\n fieldId: string\n) => {\n const structFields = modelData.attrList\n .filter(\n (attr: Partial<ModelObjectAttr>) =>\n attr.value.type === \"struct\" || attr.value.type === \"structs\"\n )\n ?.map((attr) => {\n const structs: string[] = [];\n attr.value.struct_define.forEach((struct) => {\n structs.push(`${attr.id}.${struct.id}`);\n });\n return structs;\n })\n .flat();\n return structFields.includes(fieldId);\n};\n\nconst isOfBoolean = (\n attrList: Partial<CmdbModels.ModelObjectAttr>[],\n fieldId: string\n): boolean => {\n const keyAttrMap = keyBy(attrList, \"id\");\n return keyAttrMap[fieldId]?.value.type === ModelAttributeValueType.BOOLEAN;\n};\n\nexport const initAqToShow = (\n aq: Query[],\n modelData: Partial<CmdbModels.ModelCmdbObject>,\n isToShow = true\n) => {\n let newAqToShow: any[] = [];\n if (aq) {\n aq.forEach((query) => {\n const aqToShow = Object.entries(query).map(([key, expressions]) => {\n let newExpressions: any[] = [];\n if (key === LogicalOperators.Or || key === LogicalOperators.And) {\n const firstSubQuery = (expressions as Query[])[0];\n const fieldId = Object.keys(firstSubQuery)[0];\n const isStruct = isOfStruct(modelData, fieldId);\n const isBool = isOfBoolean(modelData.attrList, fieldId);\n const structQueries: Record<string, any> = (\n expressions as Query[]\n ).filter((expression) => Object.keys(expression)[0] === fieldId);\n if (isStruct && isToShow) {\n const structExpressions = structQueries.map((item: any) => ({\n [fieldId.split(\".\")[0]]: item[fieldId],\n }));\n newExpressions = [...newExpressions, ...structExpressions];\n } else if (isBool && !isToShow) {\n const boolExpressions = (expressions as Query[]).map(\n (expression) => {\n const targetValue = expression[fieldId] as Record<\n ComparisonOperators,\n any\n >;\n if (typeof Object.values(targetValue)[0] === \"string\") {\n return {\n [fieldId]: {\n [Object.keys(targetValue)[0]]:\n Object.values(targetValue)[0] === \"true\",\n },\n };\n } else {\n return expression;\n }\n }\n );\n newExpressions = [...newExpressions, ...boolExpressions];\n } else {\n newExpressions = [...newExpressions, ...(expressions as Query[])];\n }\n return { [key]: newExpressions };\n } else {\n return query;\n }\n });\n newAqToShow = [...newAqToShow, ...aqToShow];\n });\n return newAqToShow;\n }\n return;\n};\n\ninterface InstanceListProps {\n objectId: string;\n objectList?: Partial<CmdbModels.ModelCmdbObject>[];\n detailUrlTemplates?: Record<string, string>;\n presetConfigs?: InstanceListPresetConfigs;\n permission?: string[];\n q?: string;\n searchDisabled?: boolean;\n sortDisabled?: boolean;\n aq?: Query[];\n aqToShow?: Query[];\n advancedSearchDisabled?: boolean;\n page?: number;\n pageSize?: number;\n sort?: string;\n asc?: boolean;\n relatedToMe?: boolean;\n relatedToMeDisabled?: boolean;\n showHiddenInfoDisabled?: boolean;\n moreButtonsDisabled?: boolean;\n aliveHosts?: boolean;\n fixAliveHosts?: boolean;\n aliveHostsDisabled?: boolean;\n propertyDisplayConfigs?: UseBrickAndPropertyDisplayConfig[];\n selectedRowKeys?: string[];\n selectDisabled?: boolean;\n pageSizeOptions?: string[];\n showSizeChanger?: boolean;\n filterInstanceSourceDisabled?: boolean;\n instanceSourceQuery?: string;\n isInstanceFilterForm?: boolean;\n onSearchExecute?(\n data: InstanceApi_PostSearchRequestBody,\n v3Data: InstanceApi_PostSearchV3RequestBody\n ): Promise<InstanceApi_PostSearchV3ResponseBody> | void;\n onSearch?(value: string): void;\n onAdvancedSearch?(queries: Query[]): void;\n onClickItem?(\n evt: React.MouseEvent<HTMLAnchorElement, MouseEvent>,\n id: string\n ): void;\n onClickItemV2?(\n evt: React.MouseEvent<HTMLAnchorElement, MouseEvent>,\n record: Record<string, any>\n ): void;\n onPaginationChange?(pagination: ReadPaginationChangeDetail): void;\n onSortingChange?(sorting: ReadSortingChangeDetail): void;\n onSelectionChange?(selection: ReadSelectionChangeDetail): void;\n onRelatedToMeChange?(value: boolean): void;\n onAliveHostsChange?(value: boolean): void;\n onInstanceSourceChange?(instanceResource: string): void;\n onFieldsModalConfirm?(fields: Record<string, any>): void;\n relationLinkDisabled?: boolean;\n notifyCurrentFields?: (fiels: string[]) => void;\n defaultQuery?: { [fieldId: string]: any }[];\n extraFilterBricks?: {\n useBrick: UseBrickConf;\n };\n extraColumns?: CustomColumn[];\n extraDisabledField?: string;\n hideSearchConditions?: boolean;\n onlySearchByIp?: boolean;\n target?: string;\n ipCopy?: boolean;\n enableSearchByApp?: boolean;\n dataSource?: {\n list: Record<string, any>[];\n total?: number;\n page?: number;\n pageSize?: number;\n };\n separatorUsedInRelationData?: string;\n hideInstanceList?: boolean;\n autoSearch?: (fields: Field[]) => void;\n disabledDefaultFields?: boolean;\n showTooltip?: boolean;\n showFixedHeader?: boolean;\n rowSelectionType?: \"checkbox\" | \"radio\";\n useAutoDiscoveryProvider?: boolean;\n extraParams?: Record<string, any>;\n // 指定固定显示的field,与presetConfigs的fieldIds同时生效\n extraFixedFields?: string[];\n // 如果在presetConfigs的query参数中指定了资源的范围,“按应用筛选”的功能是否也要限定资源的范围\n limitInstanceRange?: boolean;\n}\n\ninterface InstanceListState {\n objectId: string;\n q: string;\n aq: Query[];\n aqToShow?: Query[];\n instanceSourceQuery: string;\n asc: boolean;\n sort: string;\n page: number;\n pageSize: number;\n aliveHosts: boolean;\n relatedToMe: boolean;\n inited: boolean;\n loading: boolean;\n failed: boolean;\n idObjectMap?: Record<string, Partial<CmdbModels.ModelCmdbObject>>;\n instanceListData?: InstanceApi_PostSearchV3ResponseBody;\n isAdvancedSearchVisible: boolean;\n fieldIds: string[];\n autoBreakLine: boolean;\n fieldToShow?: Record<string, any[]>[];\n appSearchInstanceId?: string;\n currentChangeSelect?: string;\n appSelectValue?: string;\n clusterValue?: string;\n appList?: Record<string, any>[];\n clusterList?: Record<string, any>[];\n searchByApp?: boolean;\n showTooltip?: boolean;\n}\n\nexport function LegacyInstanceList(\n props: InstanceListProps\n): React.ReactElement {\n const { showTooltip = true } = props;\n const baseList = [\n {\n instanceId: \"all\",\n name: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.ALL_CLUSTER}`),\n },\n ];\n const jsonLocalStorage = new JsonStorage(localStorage);\n const reducer = (\n prevState: InstanceListState,\n updatedProperty: Partial<InstanceListState>\n ): InstanceListState => {\n return {\n ...prevState,\n ...updatedProperty,\n };\n };\n // 资源自动发现页面24小时发现主机抽屉的实例列表处,通用的postSearchV3接口无法查到正确结果,需要用下面的接口替换,参数里也要加上jobId:***\n // 为了不影响其他地方的实例列表,在该处加一个useAutoDiscoveryProvider参数,该参数为undefined或false的,仍调用原接口\n\n const listProvider = useProvider(\"easyops.api.cmdb.job@SearchResource:1.0.1\");\n const { modelData, idObjectMap } = useMemo(() => {\n let modelData: Partial<CmdbModels.ModelCmdbObject>;\n const idObjectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>> = {};\n props.objectList.forEach((object) => {\n idObjectMap[object.objectId] = object;\n if (object.objectId === props.objectId) {\n modelData = object;\n modelData.attrList = !props.disabledDefaultFields\n ? union(object.attrList, extraFieldAttrs)\n : object.attrList;\n }\n });\n\n return { modelData, idObjectMap };\n }, [props.objectList, props.objectId]);\n\n const [inheritanceModelIdNameMap, setInheritanceModelIdNameMap] = useState<\n Record<string, string>\n >({});\n const [fixedHeader, setFixHeader] = useState(false);\n\n const fetchInheritanceModelIdNameMap = async (\n modelData: Partial<CmdbModels.ModelCmdbObject>\n ): Promise<void> => {\n let idNameMap = {};\n if (modelData.isAbstract) {\n idNameMap = await CmdbObjectApi_getIdMapName({\n parentObjectId: modelData.objectId,\n } as any);\n }\n setInheritanceModelIdNameMap(idNameMap);\n };\n\n useEffect(() => {\n fetchInheritanceModelIdNameMap(modelData);\n }, [modelData]);\n\n const computeDefaultFields = (\n { inModal } = { inModal: false }\n ): { fieldIds: string[] } => {\n // 原来有隐藏逻辑,针对 APP、HOST、USER、USER_GROUP模型,默认字段特殊处理了,现产品要求干掉,统一取8个默认字段,也不区分是否是内置模型\n const settings: any = inModal\n ? CMDB_MODAL_FIELDS_SETTINGS\n : CMDB_RESOURCE_FIELDS_SETTINGS;\n const ignoredFields: string[] =\n settings.ignoredFields[modelData.objectId] || [];\n let fieldIds: string[] = difference(\n uniq(map(modelData.attrList, \"id\")),\n ignoredFields\n ).slice(0, 8);\n const hideModelData: string[] = modelData.view.hide_columns || [];\n fieldIds = fieldIds.filter((field) => !hideModelData.includes(field));\n return { fieldIds };\n };\n\n // 根据用户预定义的 presetConfigs.fieldIds 进行排序,如果不在预定义的字段,则根据 modelData.view.attr_order 进行排序\n const _sortFieldIds = (fieldIds: any[]) => {\n let frontFields: any[] = [];\n let restFields: any[] = [];\n if (props.presetConfigs?.fieldIds) {\n frontFields = filter(props.presetConfigs.fieldIds, (id) =>\n fieldIds.includes(id)\n );\n }\n restFields = sortBy(\n reject(fieldIds, (id) => frontFields.includes(id)),\n (fieldId) => {\n const foundIndex = findIndex(\n modelData.view.attr_order,\n (orderId) => orderId === fieldId\n );\n if (foundIndex === -1) {\n return null;\n } else {\n return foundIndex;\n }\n }\n );\n return [...frontFields, ...restFields];\n };\n\n const getFields = () => {\n let fieldIds = props.presetConfigs?.fieldIds;\n const extraFixedFieldIds = props.extraFixedFields ?? [];\n if (isEmpty(fieldIds)) {\n fieldIds = jsonLocalStorage.getItem(\n `${modelData.objectId}-selectAttrIds`\n );\n }\n if (isEmpty(fieldIds)) {\n fieldIds = computeDefaultFields().fieldIds;\n }\n if (!isEmpty(extraFixedFieldIds)) {\n fieldIds = uniq([...fieldIds, ...extraFixedFieldIds]);\n }\n fieldIds = props.extraDisabledField\n ? uniq([...fieldIds, props.extraDisabledField])\n : fieldIds;\n fieldIds = _sortFieldIds(fieldIds);\n const hideModelData: string[] = modelData.view.hide_columns || [];\n fieldIds = fieldIds.filter((field) => !hideModelData.includes(field));\n modelData.isAbstract && fieldIds.push(\"_object_id\");\n return fieldIds;\n };\n\n const [q, setQ] = useState(props.q);\n const [state, setState] = useReducer(reducer, undefined, () => ({\n objectId: props.objectId,\n q: props.q,\n aq: initAqToShow(props.aq, modelData, false),\n aqToShow: props.aqToShow || initAqToShow(props.aq, modelData),\n instanceSourceQuery: props.instanceSourceQuery,\n asc: props.asc,\n sort: props.sort,\n page: props.dataSource?.page ?? props.page ?? 1,\n pageSize: props.dataSource?.pageSize ?? props.pageSize ?? 10,\n aliveHosts: props.aliveHosts,\n relatedToMe: props.relatedToMe,\n inited: false,\n loading: false,\n failed: false,\n isAdvancedSearchVisible: false,\n fieldIds: getFields(),\n autoBreakLine: false,\n appSearchInstanceId: \"\",\n currentChangeSelect: \"App\",\n appSelectValue: \"\",\n clusterValue: \"all\",\n appList: [],\n clusterList: [\n {\n instanceId: \"all\",\n name: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.ALL_CLUSTER}`),\n },\n ],\n searchByApp: false,\n }));\n const [selectedRowKeys, setSelectedRowKeys] = useState(\n props.selectedRowKeys ?? []\n );\n const cache = useRef(new Map<string, InstanceApi_PostSearchV3ResponseBody>());\n const isFirstRunRef = useRef(true);\n\n const getInstanceListData = async (\n sort: string,\n asc: boolean,\n page: number\n ): Promise<InstanceApi_PostSearchV3ResponseBody> => {\n const data: InstanceApi_PostSearchRequestBody = {};\n const v3Data: InstanceApi_PostSearchV3RequestBody = {\n fields: props?.extraFixedFields\n ? uniq([\"instanceId\"].concat(props?.extraFixedFields))\n : [\"instanceId\"],\n };\n if (!isEmpty(props.permission)) {\n v3Data.permission = data.permission = props.permission;\n }\n\n let query: Record<string, any> = {};\n\n v3Data.page = data.page = page;\n v3Data[\"page_size\"] = data[\"page_size\"] = state.pageSize;\n const sortType = modelData?.attrList?.find((attr) => attr.id === sort)\n ?.value?.default_type;\n const order = [\"series-number\", \"auto-increment-id\"].includes(sortType)\n ? asc\n ? 2\n : -2\n : asc\n ? 1\n : -1;\n if (sort) {\n data.sort = { [sort]: order };\n v3Data.sort = [{ key: sort, order }];\n }\n\n if (state.q) {\n query = getQuery(\n modelData,\n idObjectMap,\n state.q,\n state.fieldIds,\n props.onlySearchByIp\n );\n }\n\n if (!isEmpty(state.aq)) {\n query[LogicalOperators.And] = state.aq;\n }\n\n if (!isEmpty(props.defaultQuery)) {\n query[LogicalOperators.And] = [\n ...(query[LogicalOperators.And] || []),\n ...props.defaultQuery,\n ];\n }\n if (props.presetConfigs) {\n if (!isEmpty(props.presetConfigs.query)) {\n if (Object.keys(query).length) {\n query = {\n $and: [query, props.presetConfigs.query],\n };\n } else {\n query = props.presetConfigs.query;\n }\n }\n }\n if (state.fieldIds) {\n data.fields = Object.fromEntries(\n state.fieldIds.map((fieldId) => [fieldId, true])\n );\n v3Data.fields = [...state.fieldIds, ...v3Data.fields];\n (v3Data as any).ignore_missing_field_error = true;\n }\n if (props.useAutoDiscoveryProvider) {\n v3Data.fields = joinRelationFieldAndShowkey(\n v3Data.fields,\n modelData,\n props.objectList\n );\n }\n if (state.aliveHosts && props.objectId === \"HOST\") {\n query = { ...query, _agentStatus: \"正常\" };\n }\n if (state.instanceSourceQuery) {\n query = { ...query, _object_id: state.instanceSourceQuery };\n }\n\n if (!isEmpty(query)) {\n v3Data.query = data.query = query;\n }\n // useAutoDiscoveryProvider=true, 使用useProvider的接口,请求参数里加上extraParams\n\n if (props.useAutoDiscoveryProvider && !isEmpty(props.extraParams)) {\n Object.assign(v3Data, props.extraParams);\n }\n if (state.relatedToMe) {\n v3Data.only_my_instance = data.only_my_instance = state.relatedToMe;\n }\n //按应用筛选\n // istanbul ignore next (state is not updated)\n if (state.searchByApp) {\n const hostRange = props.presetConfigs?.query?.[\"$and\"]?.find(\n (i: any) => i.instanceId\n )?.instanceId?.[\"$in\"];\n v3Data.query = {\n [state.currentChangeSelect === \"App\" ||\n (state.currentChangeSelect === \"Cluster\" &&\n state.clusterValue === \"all\")\n ? \"_deviceList_CLUSTER.appId.instanceId\"\n : \"_deviceList_CLUSTER.instanceId\"]: state.appSearchInstanceId,\n ...(!isEmpty(hostRange) && props.limitInstanceRange\n ? {\n instanceId: { $in: hostRange },\n }\n : {}),\n ...(state.aliveHosts && props.objectId === \"HOST\"\n ? { _agentStatus: \"正常\" }\n : {}),\n };\n }\n const promise = props.onSearchExecute?.(data, v3Data);\n // useAutoDiscoveryProvider=true, 使用useProvider的接口\n return promise\n ? promise\n : props.useAutoDiscoveryProvider\n ? listProvider.query([props.objectId, v3Data])\n : InstanceApi_postSearchV3(props.objectId, v3Data);\n };\n\n const refreshInstanceList = async (\n sort: string,\n asc: boolean,\n page: number\n ): Promise<void> => {\n setState({ loading: true });\n try {\n if (props.dataSource) {\n setState({\n idObjectMap: idObjectMap,\n instanceListData: props.dataSource,\n });\n } else {\n if (!props.hideInstanceList) {\n const instanceListData = await getInstanceListData(sort, asc, page);\n instanceListData.list.forEach((i) =>\n cache.current.set(i.instanceId, i)\n );\n setState({ idObjectMap: idObjectMap, instanceListData });\n } else {\n setState({\n idObjectMap: idObjectMap,\n instanceListData: [] as InstanceApi_PostSearchV3ResponseBody,\n });\n }\n }\n } catch (e) {\n handleHttpError(e);\n setState({ failed: true });\n } finally {\n setState({ inited: true, loading: false });\n }\n };\n\n useEffect(() => {\n const fieldIds = getFields();\n if (\n // 当 props.objectId 改变时,总是更新 state.fieldIds\n props.objectId !== state.objectId ||\n !isEqual(fieldIds, state.fieldIds)\n ) {\n setState({\n fieldIds,\n });\n }\n }, [props.objectId, props.presetConfigs]);\n\n useEffect(() => {\n setSelectedRowKeys(props.selectedRowKeys ?? []);\n }, [props.objectId, props.selectedRowKeys]);\n\n // on filter condition change\n useEffect(() => {\n if (isFirstRunRef.current) {\n isFirstRunRef.current = false;\n return;\n }\n\n let skip = false;\n\n if (state.page !== 1) {\n setState({ page: 1 });\n props.onPaginationChange?.({ page: 1, pageSize: state.pageSize });\n skip = true;\n }\n\n // 当 prop.objectId 改变时先跳过,等 state.fieldIds 更新后再获取数据\n if (props.objectId !== state.objectId) {\n setState({ objectId: props.objectId });\n skip = true;\n }\n\n if (skip) {\n return;\n }\n\n refreshInstanceList(state.sort, state.asc, 1);\n }, [\n state.q,\n state.aq,\n state.instanceSourceQuery,\n state.pageSize,\n state.aliveHosts,\n state.relatedToMe,\n props.objectId,\n props.permission,\n props.defaultQuery,\n ]);\n\n // on other condition change\n useEffect(() => {\n if (isEmpty(state.fieldIds)) return;\n\n refreshInstanceList(state.sort, state.asc, state.page);\n }, [\n state.page,\n state.sort,\n state.asc,\n state.fieldIds,\n state.appSearchInstanceId,\n state.currentChangeSelect,\n state.searchByApp,\n props.dataSource,\n ]);\n\n const onChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setQ(e.target.value);\n };\n\n // istanbul ignore next\n const onSelectionChange = useCallback(\n async (selected: { selectedKeys: string[]; selectedItems: any[] }) => {\n let { selectedItems, selectedKeys } = selected;\n setSelectedRowKeys(selectedKeys);\n if (selectedKeys.length > compact(selectedItems).length) {\n const ids = selectedKeys.filter((id) => !cache.current.has(id));\n if (ids.length) {\n let resp;\n const params = {\n fields: [\"instanceId\"],\n query: {\n instanceId: {\n $in: ids,\n },\n },\n page_size: ids.length,\n };\n // useAutoDiscoveryProvider=true, 使用useProvider的接口,虽然这里列表用不到选择功能,但还是加上保持统一\n if (props.useAutoDiscoveryProvider) {\n resp = await listProvider.query([\n props.objectId,\n Object.assign(params, props.extraParams),\n ]);\n } else {\n resp = await InstanceApi_postSearchV3(props.objectId, params);\n }\n resp.list.forEach((i: Record<string, any>) =>\n cache.current.set(i.instanceId, i)\n );\n }\n selectedItems = selectedKeys.map((id) => cache.current.get(id));\n }\n props.onSelectionChange?.({ selectedItems, selectedKeys });\n },\n []\n );\n\n const onSearch = (value: string) => {\n const q = value.trim();\n setState({ q });\n props.onSearch?.(q);\n };\n\n const onAdvancedSearch = (\n queries: Query[],\n queriesToShow: Query[],\n fieldToShow: Record<string, any[]>[]\n ) => {\n setState({\n aq: queries,\n fieldToShow,\n aqToShow: queriesToShow,\n });\n props.onAdvancedSearch?.(queries);\n };\n\n const onSortingChange = useCallback(\n (info: ReadSortingChangeDetail) => {\n let asc: boolean;\n let sort: string;\n if (info.asc === undefined) {\n if (!state.sort) {\n return;\n }\n\n setState({ asc: undefined, sort: undefined });\n } else {\n setState({ asc: info.asc, sort: info.sort });\n asc = info.asc;\n sort = info.sort;\n }\n props.onSortingChange?.(info);\n },\n [state.sort]\n );\n\n const onPaginationChange = useCallback(\n (pagination: ReadPaginationChangeDetail) => {\n setState({ page: pagination.page, pageSize: pagination.pageSize });\n props.onPaginationChange?.(pagination);\n },\n []\n );\n\n const onInstanceSourceChange = useCallback((instanceSourceQuery: string) => {\n setState({ instanceSourceQuery });\n props.onInstanceSourceChange?.(instanceSourceQuery);\n }, []);\n\n const onRelatedToMeChange = (checked: boolean) => {\n setState({ relatedToMe: checked });\n props.onRelatedToMeChange?.(checked);\n };\n\n const onAliveHostsChange = (checked: boolean) => {\n setState({ aliveHosts: checked });\n props.onAliveHostsChange?.(checked);\n };\n\n const toggleAutoBreakLine = (autoBreakLine: boolean) => {\n setState({ autoBreakLine });\n };\n // istanbul ignore next (state is not updated)\n const toggleSearchMode = React.useCallback(async () => {\n if (!state.searchByApp) {\n const appListResp = await InstanceApi_postSearchV3(\"APP\", {\n fields: [\"clusters\", \"instanceId\", \"name\"],\n sort: [{ key: \"name\", order: 1 }],\n page: 1,\n page_size: 3000,\n });\n setState({\n appSearchInstanceId: appListResp.list?.[0].instanceId || \"\",\n appList: appListResp.list,\n clusterList: [...baseList, ...(appListResp.list?.[0].clusters || [])],\n searchByApp: true,\n appSelectValue: appListResp.list?.[0].instanceId || \"\",\n clusterValue: \"all\",\n page: 1,\n });\n } else {\n setState({ searchByApp: false, page: 1 });\n }\n }, [state.searchByApp]);\n // istanbul ignore next (state is not updated)\n const appSelectChange = (v: string) => {\n setState({\n appSearchInstanceId: v,\n currentChangeSelect: \"App\",\n appSelectValue: v,\n clusterValue: \"all\",\n clusterList: [\n ...baseList,\n ...state.appList.find((r) => r.instanceId === v).clusters,\n ],\n });\n };\n // istanbul ignore next (state is not updated)\n const clusterSelectChange = (v: string) => {\n setState({\n appSearchInstanceId: v === \"all\" ? state.appSelectValue : v,\n currentChangeSelect: \"Cluster\",\n clusterValue: v,\n });\n };\n const defaultFields = useMemo(() => {\n let defaultFields: string[];\n const fieldIds = props.presetConfigs?.fieldIds,\n extraFixedFieldIds = props.extraFixedFields ?? [];\n if (!isEmpty(fieldIds)) {\n defaultFields = props.presetConfigs.fieldIds;\n } else {\n defaultFields = computeDefaultFields().fieldIds;\n }\n if (!isEmpty(extraFixedFieldIds)) {\n defaultFields = uniq([...defaultFields, ...extraFixedFieldIds]);\n }\n return defaultFields;\n }, [props.presetConfigs, modelData]);\n\n // istanbul ignore next\n const handleConfirm = ({ fields, isReset }: DisplaySettingsModalData) => {\n if (isReset) {\n const fieldIds = defaultFields;\n modelData.isAbstract && fieldIds.push(\"_object_id\");\n setState({ fieldIds });\n jsonLocalStorage.removeItem(`${modelData.objectId}-selectAttrIds`);\n props.onFieldsModalConfirm(fieldIds);\n } else {\n setState({\n fieldIds: _sortFieldIds(fields),\n });\n jsonLocalStorage.setItem(`${modelData.objectId}-selectAttrIds`, fields);\n props.onFieldsModalConfirm(fields);\n }\n };\n\n useEffect(() => {\n props.notifyCurrentFields?.(state.fieldIds);\n }, [props.notifyCurrentFields]);\n\n // istanbul ignore next\n useEffect(() => {\n props.selectedRowKeys?.length &&\n (async () => {\n const data: InstanceApi_PostSearchRequestBody = {};\n const v3Data: InstanceApi_PostSearchV3RequestBody = {\n fields: [\"instanceId\"],\n };\n if (!isEmpty(props.permission)) {\n v3Data.permission = data.permission = props.permission;\n }\n\n if (state.fieldIds) {\n data.fields = Object.fromEntries(\n state.fieldIds.map((fieldId) => [fieldId, true])\n );\n v3Data.fields = [...state.fieldIds, ...v3Data.fields];\n (v3Data as any).ignore_missing_field_error = true;\n }\n\n v3Data.query = {\n instanceId: {\n $in: props.selectedRowKeys,\n },\n };\n v3Data.page_size = props.selectedRowKeys.length;\n\n if (state.relatedToMe) {\n v3Data.only_my_instance = data.only_my_instance = state.relatedToMe;\n }\n if (props.extraParams) {\n Object.assign(v3Data, props.extraParams);\n }\n let resp;\n if (props.useAutoDiscoveryProvider) {\n resp = await listProvider.query([props.objectId, v3Data]);\n } else {\n resp = await InstanceApi_postSearchV3(props.objectId, v3Data);\n }\n resp.list.forEach((i: Record<string, any>) =>\n cache.current.set(i.instanceId, i)\n );\n })();\n }, [props.selectedRowKeys]);\n const handleToggleFixHeader = () => {\n setFixHeader(!fixedHeader);\n };\n const onAdvancedSearchCloseGen = (attrId: string, valuesStr: string) => {\n return () => {\n const queries: Query[] = [];\n const queriesToShow: Query[] = [];\n const filterAq = (queries: any[]) =>\n queries.filter((v: any) => isValueEqualFn(v, attrId, valuesStr));\n state.aq.forEach((query) => {\n const key = Object.keys(query)[0];\n if (\n (key === \"$or\" || key === \"$and\") &&\n Object.keys((query[key] as Query[])[0])[0] === attrId\n ) {\n const filteredSubQueries = filterAq(query[key] as Query[]);\n if (filteredSubQueries.length > 0) {\n queries.push({\n [key]: filteredSubQueries,\n });\n }\n } else if (key !== attrId && !startsWith(attrId, `${key}.`)) {\n // $exists $gte $lte 针对为空,不为空,时间范围特殊处理\n if (!Array.isArray(query[key]) && isSpecialFn(query, key)) {\n queries.push(query);\n } else {\n const fieldId = Object.keys((query[key] as Query[])[0])[0];\n // 判断是否为结构体\n const isStruct = isOfStruct(modelData, fieldId);\n // 结构体情况处理\n if (\n !(\n (key === \"$or\" || key === \"$and\") &&\n startsWith(fieldId, `${attrId}.`) &&\n isStruct\n )\n ) {\n queries.push(query);\n }\n }\n } else if (\n props.isInstanceFilterForm &&\n key === attrId &&\n isValueEqualFn(query, attrId, valuesStr)\n ) {\n specialQueryHandler(query, key, queries);\n }\n });\n state.aqToShow.forEach((query) => {\n const key = Object.keys(query)[0];\n if (\n (key === \"$or\" || key === \"$and\") &&\n Object.keys((query[key] as Query[])[0])[0] === attrId\n ) {\n const filteredSubQueries = filterAq(query[key] as Query[]);\n if (filteredSubQueries.length > 0) {\n queriesToShow.push({\n [key]: filteredSubQueries,\n });\n }\n } else if (key !== attrId) {\n queriesToShow.push(query);\n } else if (\n props.isInstanceFilterForm &&\n key === attrId &&\n isValueEqualFn(query, attrId, valuesStr)\n ) {\n specialQueryHandler(query, key, queriesToShow);\n }\n });\n setState({\n aq: queries,\n aqToShow: queriesToShow,\n });\n props.onAdvancedSearch?.(queries);\n };\n };\n const conditions = translateConditions(\n state.aqToShow,\n idObjectMap,\n modelData\n );\n\n return (\n <Spin spinning={state.loading}>\n {state.inited && !state.failed ? (\n <React.Fragment>\n {(!props.searchDisabled ||\n !props.advancedSearchDisabled ||\n !props.relatedToMeDisabled ||\n !props.aliveHostsDisabled ||\n !props.moreButtonsDisabled) && (\n <div className={styles.instanceListToolbar}>\n <div className={styles.searchRelated}>\n {/* istanbul ignore next (state is not updated) */}\n {!state.searchByApp ? (\n <>\n {!props.searchDisabled && (\n <Input.Search\n enterButton\n value={q}\n onChange={onChange}\n onSearch={onSearch}\n />\n )}\n {!props.advancedSearchDisabled && (\n <Button\n type=\"link\"\n size=\"small\"\n style={{\n marginLeft: \"8px\",\n marginRight: \"auto\",\n }}\n onClick={() =>\n setState({\n isAdvancedSearchVisible:\n !state.isAdvancedSearchVisible,\n })\n }\n data-testid=\"advanced-search-toggle-btn\"\n >\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ADVANCED_SEARCH}`\n )}\n <LegacyIcon\n type={state.isAdvancedSearchVisible ? \"up\" : \"down\"}\n />\n </Button>\n )}\n </>\n ) : (\n <>\n <Select\n style={{ width: \"150px\", marginRight: \"10px\" }}\n value={state.appSelectValue}\n onChange={appSelectChange}\n showSearch={true}\n optionFilterProp=\"children\"\n >\n {state.appList?.map((r) => (\n <Select.Option key={r.instanceId} value={r.instanceId}>\n {r.name}\n </Select.Option>\n ))}\n </Select>\n <Select\n style={{ width: \"150px\" }}\n value={state.clusterValue}\n onChange={clusterSelectChange}\n showSearch={true}\n optionFilterProp=\"children\"\n >\n {state.clusterList.map((r) => (\n <Select.Option key={r.instanceId} value={r.instanceId}>\n {r.name}\n </Select.Option>\n ))}\n </Select>\n </>\n )}\n </div>\n <div className={styles.options}>\n {selectedRowKeys.length > 0 && (\n <div style={{ marginRight: 20 }}>\n <span>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CHOSEN_OPTIONS}`, {\n count: selectedRowKeys.length,\n })}\n </span>\n <a\n role=\"button\"\n onClick={() =>\n onSelectionChange({\n selectedKeys: [],\n selectedItems: [],\n })\n }\n >\n {\" \"}\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLEAR}`)}\n </a>\n </div>\n )}\n {props.objectId === \"HOST\" && props.enableSearchByApp && (\n <Button type={\"link\"} onClick={toggleSearchMode}>\n {/* istanbul ignore next (state is not updated) */}\n {state.searchByApp\n ? i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FREE_SELECTION}`)\n : i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.APP_SELECTION}`)}\n </Button>\n )}\n {props.objectId === \"HOST\" && !props.aliveHostsDisabled && (\n <IconButton\n checked={state.aliveHosts}\n onChange={onAliveHostsChange}\n style={{ marginRight: 10 }}\n disabled={props.fixAliveHosts}\n type=\"normalHost\"\n label={i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.NORMAL_HOST}`)}\n data-testid=\"alive-hosts\"\n />\n )}\n {!props.relatedToMeDisabled && (\n <IconButton\n checked={state.relatedToMe}\n onChange={onRelatedToMeChange}\n style={{ marginRight: 10 }}\n type=\"relateToMe\"\n label={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.RELATED_TO_ME}`\n )}\n data-testid=\"related-to-me\"\n />\n )}\n {!props.showHiddenInfoDisabled && (\n <IconButton\n checked={state.autoBreakLine}\n onChange={toggleAutoBreakLine}\n style={{ marginRight: 10 }}\n type=\"showHiddenInfo\"\n label={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.DISPLAY_OMITTED_INFORMATION}`\n )}\n data-testid=\"show-hidden-info\"\n />\n )}\n {!props.moreButtonsDisabled && (\n <MoreButtonsContainer\n modelData={modelData}\n onConfirm={handleConfirm}\n fieldIds={state.fieldIds}\n defaultFields={defaultFields}\n extraDisabledField={props.extraDisabledField}\n handleToggleFixHeader={handleToggleFixHeader}\n fixedHeader={fixedHeader}\n showFixedHeader={props.showFixedHeader}\n />\n )}\n </div>\n </div>\n )}\n {!props.advancedSearchDisabled && !state.searchByApp && (\n <div\n style={{ marginBottom: \"18px\" }}\n hidden={!state.isAdvancedSearchVisible}\n >\n <AdvancedSearch\n key={newKey(state.fieldIds, state.aq)}\n fieldIds={state.fieldIds}\n idObjectMap={state.idObjectMap}\n modelData={modelData}\n q={state.aqToShow}\n fieldToShow={state.fieldToShow}\n onSearch={onAdvancedSearch}\n {...(props.autoSearch\n ? {\n autoSearch: props.autoSearch,\n }\n : null)}\n />\n </div>\n )}\n {!props.hideSearchConditions &&\n !state.searchByApp &&\n (state.instanceSourceQuery || state.q || !isEmpty(conditions)) && (\n <div className={styles.searchConditions}>\n <span>\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.CURRENT_FILTER_REQUIREMENTS}`\n )}\n </span>\n {state.q && (\n <Tag\n closable\n onClose={() => {\n setQ(\"\");\n onSearch(\"\");\n }}\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FUZZY_SEARCH}`, {\n query: state.q,\n })}\n </Tag>\n )}\n {state.instanceSourceQuery && (\n <Tag\n closable\n onClose={() => {\n onInstanceSourceChange(null);\n }}\n >\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.INSTANCE_SOURCE_TAG_TEXT}`,\n {\n query:\n inheritanceModelIdNameMap?.[\n state.instanceSourceQuery\n ] || state.instanceSourceQuery,\n }\n )}\n </Tag>\n )}\n {conditions.map((condition) => (\n <Tag\n key={`${condition.attrId}${\n condition.valuesStr\n }-${uniqueId()}`}\n closable\n onClose={onAdvancedSearchCloseGen(\n condition.attrId,\n condition.valuesStr\n )}\n >\n {condition.condition}\n </Tag>\n ))}\n </div>\n )}\n {props.extraFilterBricks?.useBrick && (\n <BrickAsComponent useBrick={props.extraFilterBricks.useBrick} />\n )}\n {!props.hideInstanceList && (\n <InstanceListTable\n detailUrlTemplates={props.detailUrlTemplates}\n fieldIds={state.fieldIds}\n idObjectMap={state.idObjectMap}\n modelData={modelData}\n instanceListData={state.instanceListData}\n sort={state.sort}\n asc={state.asc}\n selectedRowKeys={selectedRowKeys}\n selectDisabled={props.selectDisabled}\n sortDisabled={props.sortDisabled}\n propertyDisplayConfigs={props.propertyDisplayConfigs}\n onClickItem={props.onClickItem}\n onClickItemV2={props.onClickItemV2}\n onPaginationChange={onPaginationChange}\n onSortingChange={onSortingChange}\n onSelectionChange={onSelectionChange}\n onInstanceSourceChange={onInstanceSourceChange}\n instanceSourceQuery={state.instanceSourceQuery}\n inheritanceModelIdNameMap={inheritanceModelIdNameMap}\n filterInstanceSourceDisabled={props.filterInstanceSourceDisabled}\n autoBreakLine={state.autoBreakLine}\n relationLinkDisabled={props.relationLinkDisabled}\n pageSizeOptions={props.pageSizeOptions}\n showSizeChanger={props.showSizeChanger}\n extraColumns={props.extraColumns}\n target={props.target}\n ipCopy={props.ipCopy}\n fixedHeader={fixedHeader}\n separatorUsedInRelationData={props.separatorUsedInRelationData}\n showTooltip={showTooltip}\n rowSelectionType={props.rowSelectionType}\n />\n )}\n </React.Fragment>\n ) : null}\n </Spin>\n );\n}\n\n/**\n * 把 objectList 封装到构件中请求,废弃掉通过老模板使用的方式,可直接使用构件。\n * 同时也兼容之前的使用方式,对于外部传进来的会优先使用外部的数据,构件内部不会额外请求,\n * 不传的话构件内部做请求,并作缓存\n */\nexport function InstanceList(props: InstanceListProps): React.ReactElement {\n const [objectList, setObjectList] = useState<\n Partial<CmdbModels.ModelCmdbObject>[]\n >(props.objectList);\n\n useEffect(() => {\n if (props.objectList) {\n setObjectList(props.objectList);\n } else {\n (async () => {\n if (!props.objectList) {\n const cacheData = objectListCache.get(props.objectId);\n if (cacheData) {\n setObjectList(cacheData);\n } else {\n try {\n const list = (\n await CmdbObjectApi_getObjectRef({ ref_object: props.objectId })\n ).data;\n setObjectList(list);\n objectListCache.set(props.objectId, list);\n } catch (e) {\n // istanbul ignore next\n handleHttpError(e);\n }\n }\n }\n })();\n }\n }, [props.objectId, props.objectList]);\n\n if (\n !objectList ||\n !objectList.find((item) => item.objectId === props.objectId)\n )\n return null;\n\n return <LegacyInstanceList {...props} objectList={objectList} />;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"InstanceList.js","names":["React","useEffect","useReducer","useState","useRef","useMemo","useCallback","difference","isEmpty","isEqual","isString","map","uniq","union","filter","reject","sortBy","uniqueId","findIndex","find","startsWith","compact","omit","keyBy","BrickAsComponent","getRuntime","handleHttpError","useProvider","i18n","K","NS_LIBS_CMDB_INSTANCES","InstanceApi_postSearchV3","CmdbObjectApi_getIdMapName","CmdbObjectApi_getObjectRef","Icon","LegacyIcon","Button","Spin","Input","Tag","Select","getRelationObjectSides","forEachAvailableFields","getInstanceNameKeys","isSelfRelation","ElementOperators","LogicalOperators","JsonStorage","ConditionType","AdvancedSearch","getFieldConditionsAndValues","MoreButtonsContainer","InstanceListTable","styles","extraFieldAttrs","CMDB_MODAL_FIELDS_SETTINGS","CMDB_RESOURCE_FIELDS_SETTINGS","objectListCache","ModelAttributeValueType","IconButton","changeQueryWithCustomRules","joinRelationFieldAndShowkey","fields","modelData","objectList","attrIdMap","attrList","field","relation","relation_list","left_id","right_id","isLeft","left_object_id","objectId","otherSideObjectId","right_object_id","otherSideObject","object","showKey","view","show_key","getQuery","idObjectMap","q","onlySearchByIp","query","$or","queryValues","trim","split","searchIpFields","getCurrentApp","config","queryOrs","Set","searchValue","$like","forEach","key","push","attr","queryValue","id","sides","this","nameKeys","that","nameKey","isSpecialFn","attrId","Object","keys","some","v","specialQueryHandler","queries","isSpecial","isValueEqualFn","valuesStr","values","join","translateConditions","aq","t","conditions","relations","sidesArr","relationObject","nameOfNameKey","name","value","type","relationSideId","attrAndRelationList","Exists","info","undefined","Between","Empty","NotEmpty","False","True","includes","currentCondition","replace","condition","label","curCondition","queryValuesStr","every","newKey","fieldIds","length","isOfStruct","fieldId","structFields","structs","struct_define","struct","flat","isOfBoolean","keyAttrMap","BOOLEAN","initAqToShow","isToShow","newAqToShow","aqToShow","entries","expressions","newExpressions","Or","And","firstSubQuery","isStruct","isBool","structQueries","expression","structExpressions","item","boolExpressions","targetValue","LegacyInstanceList","props","showTooltip","baseList","instanceId","ALL_CLUSTER","jsonLocalStorage","localStorage","reducer","prevState","updatedProperty","listProvider","disabledDefaultFields","inheritanceModelIdNameMap","setInheritanceModelIdNameMap","fixedHeader","setFixHeader","fetchInheritanceModelIdNameMap","idNameMap","isAbstract","parentObjectId","computeDefaultFields","inModal","settings","ignoredFields","slice","hideModelData","hide_columns","_sortFieldIds","frontFields","restFields","presetConfigs","foundIndex","attr_order","orderId","getFields","extraFixedFieldIds","extraFixedFields","getItem","extraDisabledField","setQ","state","setState","instanceSourceQuery","asc","sort","page","dataSource","pageSize","aliveHosts","relatedToMe","inited","loading","failed","isAdvancedSearchVisible","presetConfigsQuery","autoBreakLine","appSearchInstanceId","currentChangeSelect","appSelectValue","clusterValue","appList","clusterList","searchByApp","selectedRowKeys","setSelectedRowKeys","cache","Map","isFirstRunRef","getInstanceListData","data","v3Data","concat","permission","sortType","default_type","order","defaultQuery","$and","fromEntries","ignore_missing_field_error","useAutoDiscoveryProvider","_agentStatus","_object_id","extraParams","assign","only_my_instance","hostRange","i","limitInstanceRange","$in","promise","onSearchExecute","refreshInstanceList","instanceListData","hideInstanceList","list","current","set","e","skip","onPaginationChange","onChange","target","onSelectionChange","selected","selectedItems","selectedKeys","ids","has","resp","params","page_size","get","onSearch","onAdvancedSearch","queriesToShow","fieldToShow","onSortingChange","pagination","onInstanceSourceChange","onRelatedToMeChange","checked","onAliveHostsChange","toggleAutoBreakLine","toggleSearchMode","appListResp","clusters","appSelectChange","r","clusterSelectChange","defaultFields","handleConfirm","isReset","removeItem","onFieldsModalConfirm","setItem","notifyCurrentFields","handleToggleFixHeader","onAdvancedSearchCloseGen","filterAq","filteredSubQueries","Array","isArray","isInstanceFilterForm","searchDisabled","advancedSearchDisabled","relatedToMeDisabled","aliveHostsDisabled","moreButtonsDisabled","instanceListToolbar","searchRelated","marginLeft","marginRight","ADVANCED_SEARCH","width","options","CHOSEN_OPTIONS","count","CLEAR","enableSearchByApp","FREE_SELECTION","APP_SELECTION","fixAliveHosts","NORMAL_HOST","RELATED_TO_ME","showHiddenInfoDisabled","DISPLAY_OMITTED_INFORMATION","showFixedHeader","marginBottom","autoSearch","hideSearchConditions","searchConditions","CURRENT_FILTER_REQUIREMENTS","FUZZY_SEARCH","INSTANCE_SOURCE_TAG_TEXT","extraFilterBricks","useBrick","detailUrlTemplates","selectDisabled","sortDisabled","propertyDisplayConfigs","onClickItem","onClickItemV2","filterInstanceSourceDisabled","relationLinkDisabled","pageSizeOptions","showSizeChanger","extraColumns","ipCopy","separatorUsedInRelationData","rowSelectionType","InstanceList","setObjectList","cacheData","ref_object"],"sources":["../../../src/instance-list/InstanceList.tsx"],"sourcesContent":["import React, {\n useEffect,\n useReducer,\n useState,\n useRef,\n useMemo,\n useCallback,\n} from \"react\";\nimport {\n difference,\n isEmpty,\n isEqual,\n isString,\n map,\n uniq,\n union,\n filter,\n reject,\n sortBy,\n uniqueId,\n findIndex,\n find,\n startsWith,\n compact,\n omit,\n keyBy,\n} from \"lodash\";\nimport {\n BrickAsComponent,\n getRuntime,\n handleHttpError,\n useProvider,\n} from \"@next-core/brick-kit\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport {\n PropertyDisplayConfig,\n ReadPaginationChangeDetail,\n ReadSelectionChangeDetail,\n ReadSortingChangeDetail,\n UseBrickConf,\n} from \"@next-core/brick-types\";\nimport {\n CmdbModels,\n InstanceApi_PostSearchRequestBody,\n InstanceApi_PostSearchV3RequestBody,\n InstanceApi_PostSearchV3ResponseBody,\n InstanceApi_postSearchV3,\n CmdbObjectApi_getIdMapName,\n CmdbObjectApi_getObjectRef,\n} from \"@next-sdk/cmdb-sdk\";\nimport { Icon as LegacyIcon } from \"@ant-design/compatible\";\nimport { Button, Spin, Input, Tag, Select } from \"antd\";\nimport {\n getRelationObjectSides,\n forEachAvailableFields,\n getInstanceNameKeys,\n RelationIdKeys,\n RelationNameKeys,\n RelationObjectIdKeys,\n RelationObjectSides,\n isSelfRelation,\n Query,\n ElementOperators,\n LogicalOperators,\n ComparisonOperators,\n} from \"@next-libs/cmdb-utils\";\nimport { JsonStorage } from \"@next-libs/storage\";\nimport { ModelObjectAttr } from \"@next-sdk/cmdb-sdk/dist/types/model/cmdb\";\n\nimport {\n ConditionType,\n AdvancedSearch,\n getFieldConditionsAndValues,\n MoreButtonsContainer,\n InstanceListTable,\n CustomColumn,\n Field,\n UseBrickAndPropertyDisplayConfig,\n} from \"../instance-list-table\";\nimport styles from \"./InstanceList.module.css\";\nimport {\n extraFieldAttrs,\n CMDB_MODAL_FIELDS_SETTINGS,\n CMDB_RESOURCE_FIELDS_SETTINGS,\n objectListCache,\n} from \"./constants\";\nimport { ModelAttributeValueType } from \"../model-attribute-form-control/ModelAttributeFormControl\";\nimport { IconButton } from \"./IconButton\";\nimport { changeQueryWithCustomRules } from \"../processors\";\nimport { DisplaySettingsModalData } from \"../instance-list-table/DisplaySettingsModal\";\nexport interface InstanceListPresetConfigs {\n query?: Record<string, any>;\n fieldIds?: string[];\n}\nexport function joinRelationFieldAndShowkey(\n fields: string[],\n modelData: Record<string, any>,\n objectList: Record<string, any>[]\n) {\n const attrIdMap = keyBy(modelData.attrList, \"id\");\n return fields.map((field) => {\n if (attrIdMap[field]) {\n return field;\n } else {\n const relation = modelData.relation_list.find(\n (relation: any) =>\n relation.left_id === field || relation.right_id === field\n );\n if (relation) {\n const isLeft = relation.left_object_id === modelData.objectId;\n const otherSideObjectId = isLeft\n ? relation.right_object_id\n : relation.left_object_id;\n const otherSideObject = objectList.find(\n (object) => object.objectId === otherSideObjectId\n );\n const showKey = otherSideObject?.view?.show_key?.[0] ?? \"\";\n return `${field}.${showKey}`;\n } else {\n return field;\n }\n }\n });\n}\n\nexport function getQuery(\n modelData: Partial<CmdbModels.ModelCmdbObject>,\n idObjectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>,\n q: string,\n fields?: string[],\n onlySearchByIp?: boolean\n) {\n const query: Record<string, any> = { $or: [] };\n const queryValues = q.trim().split(/\\s+/);\n if (onlySearchByIp) {\n const searchIpFields =\n (getRuntime().getCurrentApp().config?.searchIpFields as string[]) || [];\n const queryOrs = [...new Set([\"ip\", ...searchIpFields])];\n const searchValue = { $like: `%${q.trim()}%` };\n queryOrs.forEach((key) => {\n query.$or.push({ [key]: searchValue });\n });\n return query;\n }\n forEachAvailableFields(\n modelData,\n (attr) => {\n queryValues.forEach((queryValue) =>\n query.$or.push({ [attr.id]: { $like: `%${queryValue}%` } })\n );\n },\n (relation, sides) => {\n const id = relation[`${sides.this}_id` as RelationIdKeys];\n const nameKeys = getInstanceNameKeys(\n idObjectMap[relation[`${sides.that}_object_id` as RelationObjectIdKeys]]\n );\n\n queryValues.forEach((queryValue) => {\n nameKeys.forEach((nameKey) => {\n query.$or.push({\n [`${id}.${nameKey}`]: { $like: `%${queryValue}%` },\n });\n });\n });\n },\n fields\n );\n\n return query;\n}\n\nexport const isSpecialFn = (query: any, attrId: string) => {\n return Object.keys(query[attrId] as Query[]).some(\n (v) => v === \"$exists\" || v === \"$gte\" || v === \"$lte\"\n );\n};\n\nexport const specialQueryHandler = (query: any, key: any, queries: Query[]) => {\n // $exists $gte $lte 针对为空,不为空,时间范围特殊处理\n const isSpecial = isSpecialFn(query, key);\n if (isSpecial) {\n return;\n }\n queries.push(query);\n};\n\nexport const isValueEqualFn = (\n query: any,\n attrId: string,\n valuesStr?: string\n) => {\n const isSpecial = isSpecialFn(query, attrId);\n if (isSpecial) return false;\n return query[attrId]\n ? valuesStr && Object.values(query[attrId]).join(\" \") !== valuesStr // 当条件是为空和不为空时,需要判断valuesStr是否存在\n : false;\n};\n\nfunction translateConditions(\n aq: Query[],\n idObjectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>,\n modelData: Partial<CmdbModels.ModelCmdbObject>,\n t?: () => string\n): { attrId: string; condition: string; valuesStr: string }[] {\n const conditions: {\n attrId: string;\n condition: string;\n valuesStr: string;\n }[] = [];\n const relations: any[] = [];\n modelData.relation_list.forEach((relation) => {\n let sidesArr: RelationObjectSides[] = [];\n if (isSelfRelation(relation)) {\n sidesArr = [\n { this: \"left\", that: \"right\" },\n { this: \"right\", that: \"left\" },\n ];\n } else {\n sidesArr = [getRelationObjectSides(relation, modelData)];\n }\n sidesArr.forEach((sides) => {\n const objectId = relation[`${sides.this}_id` as RelationIdKeys];\n const relationObject =\n idObjectMap[\n relation[`${sides.that}_object_id` as RelationObjectIdKeys]\n ];\n const nameKeys = getInstanceNameKeys(relationObject);\n nameKeys.forEach((nameKey) => {\n const nameOfNameKey =\n find(relationObject?.attrList, [\"id\", nameKey])?.name ?? nameKey;\n const id = `${objectId}.${nameKey}`;\n const name = `${\n relation[`${sides.this}_name` as RelationNameKeys]\n }(${nameOfNameKey})`;\n relations.push({\n id,\n name,\n value: { type: \"str\" },\n relationSideId: relation[`${sides.this}_id` as RelationIdKeys],\n });\n });\n relations.push({\n id: `${objectId}.`,\n name: `${relation[`${sides.this}_name` as RelationNameKeys]}`,\n value: { type: \"str\" },\n relationSideId: relation[`${sides.this}_id` as RelationIdKeys],\n });\n });\n });\n const attrAndRelationList = [...modelData.attrList, ...relations];\n if (!isEmpty(aq)) {\n for (const query of aq) {\n let queries: Query[] = [query];\n if (Object.keys(query)[0] === \"$or\" || Object.keys(query)[0] === \"$and\") {\n queries = query[Object.keys(query)[0]] as Query[];\n }\n\n queries.forEach((query) => {\n const key = Object.keys(query)[0];\n const value = Object.values(query)[0];\n let attr = attrAndRelationList.find(\n (attr) => attr.id === key || attr.relationSideId === key\n );\n if (\n Object.keys(value)[0] === ElementOperators.Exists &&\n attr.relationSideId\n ) {\n const relationSideId = attr.relationSideId;\n attr =\n attrAndRelationList.find(\n (attr) => attr.id === `${relationSideId}.`\n ) || attr;\n }\n if (attr) {\n query = changeQueryWithCustomRules(\n modelData.objectId,\n attr.id,\n query\n );\n const info = getFieldConditionsAndValues(\n query as any,\n key,\n attr.value.type as ModelAttributeValueType,\n undefined,\n undefined,\n modelData.objectId,\n attr.id\n );\n if (\n ![\n ConditionType.Between,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ConditionType.False,\n ConditionType.True,\n ].includes(info.currentCondition.type)\n ) {\n info.values = info.values.map((v) =>\n isString(v) && v.includes(\" \") ? v.replace(/^\"+|\"+$/g, \"\") : v\n );\n }\n\n let condition = `${attr.name}: ${info.currentCondition.label}`;\n if (\n ![ConditionType.Empty, ConditionType.NotEmpty].includes(\n info.currentCondition.type\n )\n ) {\n condition += `\"${info.values.join(\" ~ \")}\"`;\n }\n const curCondition = {\n attrId: key,\n condition,\n valuesStr: info.queryValuesStr,\n };\n if (\n conditions.every(\n (v) => !isEqual(omit(v, \"attrId\"), omit(curCondition, \"attrId\"))\n )\n ) {\n conditions.push(curCondition);\n }\n }\n });\n }\n }\n\n return conditions;\n}\n\nfunction newKey(fieldIds: string[], aq: Query[]): string {\n let key = \"\";\n if (!isEmpty(fieldIds)) {\n key += fieldIds.join(\"-\");\n }\n if (!isEmpty(aq)) {\n key += `-${aq.length}`;\n }\n return key;\n}\nconst isOfStruct = (\n modelData: Partial<CmdbModels.ModelCmdbObject>,\n fieldId: string\n) => {\n const structFields = modelData.attrList\n .filter(\n (attr: Partial<ModelObjectAttr>) =>\n attr.value.type === \"struct\" || attr.value.type === \"structs\"\n )\n ?.map((attr) => {\n const structs: string[] = [];\n attr.value.struct_define.forEach((struct) => {\n structs.push(`${attr.id}.${struct.id}`);\n });\n return structs;\n })\n .flat();\n return structFields.includes(fieldId);\n};\n\nconst isOfBoolean = (\n attrList: Partial<CmdbModels.ModelObjectAttr>[],\n fieldId: string\n): boolean => {\n const keyAttrMap = keyBy(attrList, \"id\");\n return keyAttrMap[fieldId]?.value.type === ModelAttributeValueType.BOOLEAN;\n};\n\nexport const initAqToShow = (\n aq: Query[],\n modelData: Partial<CmdbModels.ModelCmdbObject>,\n isToShow = true\n) => {\n let newAqToShow: any[] = [];\n if (aq) {\n aq.forEach((query) => {\n const aqToShow = Object.entries(query).map(([key, expressions]) => {\n let newExpressions: any[] = [];\n if (key === LogicalOperators.Or || key === LogicalOperators.And) {\n const firstSubQuery = (expressions as Query[])[0];\n const fieldId = Object.keys(firstSubQuery)[0];\n const isStruct = isOfStruct(modelData, fieldId);\n const isBool = isOfBoolean(modelData.attrList, fieldId);\n const structQueries: Record<string, any> = (\n expressions as Query[]\n ).filter((expression) => Object.keys(expression)[0] === fieldId);\n if (isStruct && isToShow) {\n const structExpressions = structQueries.map((item: any) => ({\n [fieldId.split(\".\")[0]]: item[fieldId],\n }));\n newExpressions = [...newExpressions, ...structExpressions];\n } else if (isBool && !isToShow) {\n const boolExpressions = (expressions as Query[]).map(\n (expression) => {\n const targetValue = expression[fieldId] as Record<\n ComparisonOperators,\n any\n >;\n if (typeof Object.values(targetValue)[0] === \"string\") {\n return {\n [fieldId]: {\n [Object.keys(targetValue)[0]]:\n Object.values(targetValue)[0] === \"true\",\n },\n };\n } else {\n return expression;\n }\n }\n );\n newExpressions = [...newExpressions, ...boolExpressions];\n } else {\n newExpressions = [...newExpressions, ...(expressions as Query[])];\n }\n return { [key]: newExpressions };\n } else {\n return query;\n }\n });\n newAqToShow = [...newAqToShow, ...aqToShow];\n });\n return newAqToShow;\n }\n return;\n};\n\ninterface InstanceListProps {\n objectId: string;\n objectList?: Partial<CmdbModels.ModelCmdbObject>[];\n detailUrlTemplates?: Record<string, string>;\n presetConfigs?: InstanceListPresetConfigs;\n permission?: string[];\n q?: string;\n searchDisabled?: boolean;\n sortDisabled?: boolean;\n aq?: Query[];\n aqToShow?: Query[];\n advancedSearchDisabled?: boolean;\n page?: number;\n pageSize?: number;\n sort?: string;\n asc?: boolean;\n relatedToMe?: boolean;\n relatedToMeDisabled?: boolean;\n showHiddenInfoDisabled?: boolean;\n moreButtonsDisabled?: boolean;\n aliveHosts?: boolean;\n fixAliveHosts?: boolean;\n aliveHostsDisabled?: boolean;\n propertyDisplayConfigs?: UseBrickAndPropertyDisplayConfig[];\n selectedRowKeys?: string[];\n selectDisabled?: boolean;\n pageSizeOptions?: string[];\n showSizeChanger?: boolean;\n filterInstanceSourceDisabled?: boolean;\n instanceSourceQuery?: string;\n isInstanceFilterForm?: boolean;\n onSearchExecute?(\n data: InstanceApi_PostSearchRequestBody,\n v3Data: InstanceApi_PostSearchV3RequestBody\n ): Promise<InstanceApi_PostSearchV3ResponseBody> | void;\n onSearch?(value: string): void;\n onAdvancedSearch?(queries: Query[]): void;\n onClickItem?(\n evt: React.MouseEvent<HTMLAnchorElement, MouseEvent>,\n id: string\n ): void;\n onClickItemV2?(\n evt: React.MouseEvent<HTMLAnchorElement, MouseEvent>,\n record: Record<string, any>\n ): void;\n onPaginationChange?(pagination: ReadPaginationChangeDetail): void;\n onSortingChange?(sorting: ReadSortingChangeDetail): void;\n onSelectionChange?(selection: ReadSelectionChangeDetail): void;\n onRelatedToMeChange?(value: boolean): void;\n onAliveHostsChange?(value: boolean): void;\n onInstanceSourceChange?(instanceResource: string): void;\n onFieldsModalConfirm?(fields: Record<string, any>): void;\n relationLinkDisabled?: boolean;\n notifyCurrentFields?: (fiels: string[]) => void;\n defaultQuery?: { [fieldId: string]: any }[];\n extraFilterBricks?: {\n useBrick: UseBrickConf;\n };\n extraColumns?: CustomColumn[];\n extraDisabledField?: string;\n hideSearchConditions?: boolean;\n onlySearchByIp?: boolean;\n target?: string;\n ipCopy?: boolean;\n enableSearchByApp?: boolean;\n dataSource?: {\n list: Record<string, any>[];\n total?: number;\n page?: number;\n pageSize?: number;\n };\n separatorUsedInRelationData?: string;\n hideInstanceList?: boolean;\n autoSearch?: (fields: Field[]) => void;\n disabledDefaultFields?: boolean;\n showTooltip?: boolean;\n showFixedHeader?: boolean;\n rowSelectionType?: \"checkbox\" | \"radio\";\n useAutoDiscoveryProvider?: boolean;\n extraParams?: Record<string, any>;\n // 指定固定显示的field,与presetConfigs的fieldIds同时生效\n extraFixedFields?: string[];\n // 如果在presetConfigs的query参数中指定了资源的范围,“按应用筛选”的功能是否也要限定资源的范围\n limitInstanceRange?: boolean;\n}\n\ninterface InstanceListState {\n objectId: string;\n q: string;\n aq: Query[];\n aqToShow?: Query[];\n instanceSourceQuery: string;\n asc: boolean;\n sort: string;\n page: number;\n pageSize: number;\n aliveHosts: boolean;\n relatedToMe: boolean;\n inited: boolean;\n loading: boolean;\n failed: boolean;\n idObjectMap?: Record<string, Partial<CmdbModels.ModelCmdbObject>>;\n instanceListData?: InstanceApi_PostSearchV3ResponseBody;\n isAdvancedSearchVisible: boolean;\n fieldIds: string[];\n autoBreakLine: boolean;\n fieldToShow?: Record<string, any[]>[];\n appSearchInstanceId?: string;\n currentChangeSelect?: string;\n appSelectValue?: string;\n clusterValue?: string;\n appList?: Record<string, any>[];\n clusterList?: Record<string, any>[];\n searchByApp?: boolean;\n showTooltip?: boolean;\n presetConfigsQuery?: Record<string, any>;\n}\n\nexport function LegacyInstanceList(\n props: InstanceListProps\n): React.ReactElement {\n const { showTooltip = true } = props;\n const baseList = [\n {\n instanceId: \"all\",\n name: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.ALL_CLUSTER}`),\n },\n ];\n const jsonLocalStorage = new JsonStorage(localStorage);\n const reducer = (\n prevState: InstanceListState,\n updatedProperty: Partial<InstanceListState>\n ): InstanceListState => {\n return {\n ...prevState,\n ...updatedProperty,\n };\n };\n // 资源自动发现页面24小时发现主机抽屉的实例列表处,通用的postSearchV3接口无法查到正确结果,需要用下面的接口替换,参数里也要加上jobId:***\n // 为了不影响其他地方的实例列表,在该处加一个useAutoDiscoveryProvider参数,该参数为undefined或false的,仍调用原接口\n\n const listProvider = useProvider(\"easyops.api.cmdb.job@SearchResource:1.0.1\");\n const { modelData, idObjectMap } = useMemo(() => {\n let modelData: Partial<CmdbModels.ModelCmdbObject>;\n const idObjectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>> = {};\n props.objectList.forEach((object) => {\n idObjectMap[object.objectId] = object;\n if (object.objectId === props.objectId) {\n modelData = object;\n modelData.attrList = !props.disabledDefaultFields\n ? union(object.attrList, extraFieldAttrs)\n : object.attrList;\n }\n });\n\n return { modelData, idObjectMap };\n }, [props.objectList, props.objectId]);\n\n const [inheritanceModelIdNameMap, setInheritanceModelIdNameMap] = useState<\n Record<string, string>\n >({});\n const [fixedHeader, setFixHeader] = useState(false);\n\n const fetchInheritanceModelIdNameMap = async (\n modelData: Partial<CmdbModels.ModelCmdbObject>\n ): Promise<void> => {\n let idNameMap = {};\n if (modelData.isAbstract) {\n idNameMap = await CmdbObjectApi_getIdMapName({\n parentObjectId: modelData.objectId,\n } as any);\n }\n setInheritanceModelIdNameMap(idNameMap);\n };\n\n useEffect(() => {\n fetchInheritanceModelIdNameMap(modelData);\n }, [modelData]);\n\n const computeDefaultFields = (\n { inModal } = { inModal: false }\n ): { fieldIds: string[] } => {\n // 原来有隐藏逻辑,针对 APP、HOST、USER、USER_GROUP模型,默认字段特殊处理了,现产品要求干掉,统一取8个默认字段,也不区分是否是内置模型\n const settings: any = inModal\n ? CMDB_MODAL_FIELDS_SETTINGS\n : CMDB_RESOURCE_FIELDS_SETTINGS;\n const ignoredFields: string[] =\n settings.ignoredFields[modelData.objectId] || [];\n let fieldIds: string[] = difference(\n uniq(map(modelData.attrList, \"id\")),\n ignoredFields\n ).slice(0, 8);\n const hideModelData: string[] = modelData.view.hide_columns || [];\n fieldIds = fieldIds.filter((field) => !hideModelData.includes(field));\n return { fieldIds };\n };\n\n // 根据用户预定义的 presetConfigs.fieldIds 进行排序,如果不在预定义的字段,则根据 modelData.view.attr_order 进行排序\n const _sortFieldIds = (fieldIds: any[]) => {\n let frontFields: any[] = [];\n let restFields: any[] = [];\n if (props.presetConfigs?.fieldIds) {\n frontFields = filter(props.presetConfigs.fieldIds, (id) =>\n fieldIds.includes(id)\n );\n }\n restFields = sortBy(\n reject(fieldIds, (id) => frontFields.includes(id)),\n (fieldId) => {\n const foundIndex = findIndex(\n modelData.view.attr_order,\n (orderId) => orderId === fieldId\n );\n if (foundIndex === -1) {\n return null;\n } else {\n return foundIndex;\n }\n }\n );\n return [...frontFields, ...restFields];\n };\n\n const getFields = () => {\n let fieldIds = props.presetConfigs?.fieldIds;\n const extraFixedFieldIds = props.extraFixedFields ?? [];\n if (isEmpty(fieldIds)) {\n fieldIds = jsonLocalStorage.getItem(\n `${modelData.objectId}-selectAttrIds`\n );\n }\n if (isEmpty(fieldIds)) {\n fieldIds = computeDefaultFields().fieldIds;\n }\n if (!isEmpty(extraFixedFieldIds)) {\n fieldIds = uniq([...fieldIds, ...extraFixedFieldIds]);\n }\n fieldIds = props.extraDisabledField\n ? uniq([...fieldIds, props.extraDisabledField])\n : fieldIds;\n fieldIds = _sortFieldIds(fieldIds);\n const hideModelData: string[] = modelData.view.hide_columns || [];\n fieldIds = fieldIds.filter((field) => !hideModelData.includes(field));\n modelData.isAbstract && fieldIds.push(\"_object_id\");\n return fieldIds;\n };\n\n const [q, setQ] = useState(props.q);\n const [state, setState] = useReducer(reducer, undefined, () => ({\n objectId: props.objectId,\n q: props.q,\n aq: initAqToShow(props.aq, modelData, false),\n aqToShow: props.aqToShow || initAqToShow(props.aq, modelData),\n instanceSourceQuery: props.instanceSourceQuery,\n asc: props.asc,\n sort: props.sort,\n page: props.dataSource?.page ?? props.page ?? 1,\n pageSize: props.dataSource?.pageSize ?? props.pageSize ?? 10,\n aliveHosts: props.aliveHosts,\n relatedToMe: props.relatedToMe,\n inited: false,\n loading: false,\n failed: false,\n isAdvancedSearchVisible: false,\n fieldIds: getFields(),\n presetConfigsQuery: props.presetConfigs?.query,\n autoBreakLine: false,\n appSearchInstanceId: \"\",\n currentChangeSelect: \"App\",\n appSelectValue: \"\",\n clusterValue: \"all\",\n appList: [],\n clusterList: [\n {\n instanceId: \"all\",\n name: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.ALL_CLUSTER}`),\n },\n ],\n searchByApp: false,\n }));\n const [selectedRowKeys, setSelectedRowKeys] = useState(\n props.selectedRowKeys ?? []\n );\n const cache = useRef(new Map<string, InstanceApi_PostSearchV3ResponseBody>());\n const isFirstRunRef = useRef(true);\n\n const getInstanceListData = async (\n sort: string,\n asc: boolean,\n page: number\n ): Promise<InstanceApi_PostSearchV3ResponseBody> => {\n const data: InstanceApi_PostSearchRequestBody = {};\n const v3Data: InstanceApi_PostSearchV3RequestBody = {\n fields: props?.extraFixedFields\n ? uniq([\"instanceId\"].concat(props?.extraFixedFields))\n : [\"instanceId\"],\n };\n if (!isEmpty(props.permission)) {\n v3Data.permission = data.permission = props.permission;\n }\n\n let query: Record<string, any> = {};\n\n v3Data.page = data.page = page;\n v3Data[\"page_size\"] = data[\"page_size\"] = state.pageSize;\n const sortType = modelData?.attrList?.find((attr) => attr.id === sort)\n ?.value?.default_type;\n const order = [\"series-number\", \"auto-increment-id\"].includes(sortType)\n ? asc\n ? 2\n : -2\n : asc\n ? 1\n : -1;\n if (sort) {\n data.sort = { [sort]: order };\n v3Data.sort = [{ key: sort, order }];\n }\n\n if (state.q) {\n query = getQuery(\n modelData,\n idObjectMap,\n state.q,\n state.fieldIds,\n props.onlySearchByIp\n );\n }\n\n if (!isEmpty(state.aq)) {\n query[LogicalOperators.And] = state.aq;\n }\n\n if (!isEmpty(props.defaultQuery)) {\n query[LogicalOperators.And] = [\n ...(query[LogicalOperators.And] || []),\n ...props.defaultQuery,\n ];\n }\n if (props.presetConfigs) {\n if (!isEmpty(props.presetConfigs.query)) {\n if (Object.keys(query).length) {\n query = {\n $and: [query, props.presetConfigs.query],\n };\n } else {\n query = props.presetConfigs.query;\n }\n }\n }\n if (state.fieldIds) {\n data.fields = Object.fromEntries(\n state.fieldIds.map((fieldId) => [fieldId, true])\n );\n v3Data.fields = [...state.fieldIds, ...v3Data.fields];\n (v3Data as any).ignore_missing_field_error = true;\n }\n if (props.useAutoDiscoveryProvider) {\n v3Data.fields = joinRelationFieldAndShowkey(\n v3Data.fields,\n modelData,\n props.objectList\n );\n }\n if (state.aliveHosts && props.objectId === \"HOST\") {\n query = { ...query, _agentStatus: \"正常\" };\n }\n if (state.instanceSourceQuery) {\n query = { ...query, _object_id: state.instanceSourceQuery };\n }\n\n if (!isEmpty(query)) {\n v3Data.query = data.query = query;\n }\n // useAutoDiscoveryProvider=true, 使用useProvider的接口,请求参数里加上extraParams\n\n if (props.useAutoDiscoveryProvider && !isEmpty(props.extraParams)) {\n Object.assign(v3Data, props.extraParams);\n }\n if (state.relatedToMe) {\n v3Data.only_my_instance = data.only_my_instance = state.relatedToMe;\n }\n //按应用筛选\n // istanbul ignore next (state is not updated)\n if (state.searchByApp) {\n const hostRange = props.presetConfigs?.query?.[\"$and\"]?.find(\n (i: any) => i.instanceId\n )?.instanceId?.[\"$in\"];\n v3Data.query = {\n [state.currentChangeSelect === \"App\" ||\n (state.currentChangeSelect === \"Cluster\" &&\n state.clusterValue === \"all\")\n ? \"_deviceList_CLUSTER.appId.instanceId\"\n : \"_deviceList_CLUSTER.instanceId\"]: state.appSearchInstanceId,\n ...(!isEmpty(hostRange) && props.limitInstanceRange\n ? {\n instanceId: { $in: hostRange },\n }\n : {}),\n ...(state.aliveHosts && props.objectId === \"HOST\"\n ? { _agentStatus: \"正常\" }\n : {}),\n };\n }\n const promise = props.onSearchExecute?.(data, v3Data);\n // useAutoDiscoveryProvider=true, 使用useProvider的接口\n return promise\n ? promise\n : props.useAutoDiscoveryProvider\n ? listProvider.query([props.objectId, v3Data])\n : InstanceApi_postSearchV3(props.objectId, v3Data);\n };\n\n const refreshInstanceList = async (\n sort: string,\n asc: boolean,\n page: number\n ): Promise<void> => {\n setState({ loading: true });\n try {\n if (props.dataSource) {\n setState({\n idObjectMap: idObjectMap,\n instanceListData: props.dataSource,\n });\n } else {\n if (!props.hideInstanceList) {\n const instanceListData = await getInstanceListData(sort, asc, page);\n instanceListData.list.forEach((i) =>\n cache.current.set(i.instanceId, i)\n );\n setState({ idObjectMap: idObjectMap, instanceListData });\n } else {\n setState({\n idObjectMap: idObjectMap,\n instanceListData: [] as InstanceApi_PostSearchV3ResponseBody,\n });\n }\n }\n } catch (e) {\n handleHttpError(e);\n setState({ failed: true });\n } finally {\n setState({ inited: true, loading: false });\n }\n };\n\n useEffect(() => {\n const fieldIds = getFields();\n if (\n // 当 props.objectId 改变时,总是更新 state.fieldIds\n props.objectId !== state.objectId ||\n !isEqual(fieldIds, state.fieldIds) ||\n !isEqual(props.presetConfigs?.query, state.presetConfigsQuery)\n ) {\n setState({\n fieldIds,\n presetConfigsQuery: props.presetConfigs?.query,\n });\n }\n }, [props.objectId, props.presetConfigs]);\n\n useEffect(() => {\n setSelectedRowKeys(props.selectedRowKeys ?? []);\n }, [props.objectId, props.selectedRowKeys]);\n\n // on filter condition change\n useEffect(() => {\n if (isFirstRunRef.current) {\n isFirstRunRef.current = false;\n return;\n }\n\n let skip = false;\n\n if (state.page !== 1) {\n setState({ page: 1 });\n props.onPaginationChange?.({ page: 1, pageSize: state.pageSize });\n skip = true;\n }\n\n // 当 prop.objectId 改变时先跳过,等 state.fieldIds 更新后再获取数据\n if (props.objectId !== state.objectId) {\n setState({ objectId: props.objectId });\n skip = true;\n }\n\n if (skip) {\n return;\n }\n\n refreshInstanceList(state.sort, state.asc, 1);\n }, [\n state.q,\n state.aq,\n state.instanceSourceQuery,\n state.pageSize,\n state.aliveHosts,\n state.relatedToMe,\n props.objectId,\n props.permission,\n props.defaultQuery,\n ]);\n\n // on other condition change\n useEffect(() => {\n if (isEmpty(state.fieldIds)) return;\n\n refreshInstanceList(state.sort, state.asc, state.page);\n }, [\n state.page,\n state.sort,\n state.asc,\n state.fieldIds,\n state.appSearchInstanceId,\n state.currentChangeSelect,\n state.searchByApp,\n props.dataSource,\n state.presetConfigsQuery,\n ]);\n\n const onChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setQ(e.target.value);\n };\n\n // istanbul ignore next\n const onSelectionChange = useCallback(\n async (selected: { selectedKeys: string[]; selectedItems: any[] }) => {\n let { selectedItems, selectedKeys } = selected;\n setSelectedRowKeys(selectedKeys);\n if (selectedKeys.length > compact(selectedItems).length) {\n const ids = selectedKeys.filter((id) => !cache.current.has(id));\n if (ids.length) {\n let resp;\n const params = {\n fields: [\"instanceId\"],\n query: {\n instanceId: {\n $in: ids,\n },\n },\n page_size: ids.length,\n };\n // useAutoDiscoveryProvider=true, 使用useProvider的接口,虽然这里列表用不到选择功能,但还是加上保持统一\n if (props.useAutoDiscoveryProvider) {\n resp = await listProvider.query([\n props.objectId,\n Object.assign(params, props.extraParams),\n ]);\n } else {\n resp = await InstanceApi_postSearchV3(props.objectId, params);\n }\n resp.list.forEach((i: Record<string, any>) =>\n cache.current.set(i.instanceId, i)\n );\n }\n selectedItems = selectedKeys.map((id) => cache.current.get(id));\n }\n props.onSelectionChange?.({ selectedItems, selectedKeys });\n },\n []\n );\n\n const onSearch = (value: string) => {\n const q = value.trim();\n setState({ q });\n props.onSearch?.(q);\n };\n\n const onAdvancedSearch = (\n queries: Query[],\n queriesToShow: Query[],\n fieldToShow: Record<string, any[]>[]\n ) => {\n setState({\n aq: queries,\n fieldToShow,\n aqToShow: queriesToShow,\n });\n props.onAdvancedSearch?.(queries);\n };\n\n const onSortingChange = useCallback(\n (info: ReadSortingChangeDetail) => {\n let asc: boolean;\n let sort: string;\n if (info.asc === undefined) {\n if (!state.sort) {\n return;\n }\n\n setState({ asc: undefined, sort: undefined });\n } else {\n setState({ asc: info.asc, sort: info.sort });\n asc = info.asc;\n sort = info.sort;\n }\n props.onSortingChange?.(info);\n },\n [state.sort]\n );\n\n const onPaginationChange = useCallback(\n (pagination: ReadPaginationChangeDetail) => {\n setState({ page: pagination.page, pageSize: pagination.pageSize });\n props.onPaginationChange?.(pagination);\n },\n []\n );\n\n const onInstanceSourceChange = useCallback((instanceSourceQuery: string) => {\n setState({ instanceSourceQuery });\n props.onInstanceSourceChange?.(instanceSourceQuery);\n }, []);\n\n const onRelatedToMeChange = (checked: boolean) => {\n setState({ relatedToMe: checked });\n props.onRelatedToMeChange?.(checked);\n };\n\n const onAliveHostsChange = (checked: boolean) => {\n setState({ aliveHosts: checked });\n props.onAliveHostsChange?.(checked);\n };\n\n const toggleAutoBreakLine = (autoBreakLine: boolean) => {\n setState({ autoBreakLine });\n };\n // istanbul ignore next (state is not updated)\n const toggleSearchMode = React.useCallback(async () => {\n if (!state.searchByApp) {\n const appListResp = await InstanceApi_postSearchV3(\"APP\", {\n fields: [\"clusters\", \"instanceId\", \"name\"],\n sort: [{ key: \"name\", order: 1 }],\n page: 1,\n page_size: 3000,\n });\n setState({\n appSearchInstanceId: appListResp.list?.[0].instanceId || \"\",\n appList: appListResp.list,\n clusterList: [...baseList, ...(appListResp.list?.[0].clusters || [])],\n searchByApp: true,\n appSelectValue: appListResp.list?.[0].instanceId || \"\",\n clusterValue: \"all\",\n page: 1,\n });\n } else {\n setState({ searchByApp: false, page: 1 });\n }\n }, [state.searchByApp]);\n // istanbul ignore next (state is not updated)\n const appSelectChange = (v: string) => {\n setState({\n appSearchInstanceId: v,\n currentChangeSelect: \"App\",\n appSelectValue: v,\n clusterValue: \"all\",\n clusterList: [\n ...baseList,\n ...state.appList.find((r) => r.instanceId === v).clusters,\n ],\n });\n };\n // istanbul ignore next (state is not updated)\n const clusterSelectChange = (v: string) => {\n setState({\n appSearchInstanceId: v === \"all\" ? state.appSelectValue : v,\n currentChangeSelect: \"Cluster\",\n clusterValue: v,\n });\n };\n const defaultFields = useMemo(() => {\n let defaultFields: string[];\n const fieldIds = props.presetConfigs?.fieldIds,\n extraFixedFieldIds = props.extraFixedFields ?? [];\n if (!isEmpty(fieldIds)) {\n defaultFields = props.presetConfigs.fieldIds;\n } else {\n defaultFields = computeDefaultFields().fieldIds;\n }\n if (!isEmpty(extraFixedFieldIds)) {\n defaultFields = uniq([...defaultFields, ...extraFixedFieldIds]);\n }\n return defaultFields;\n }, [props.presetConfigs, modelData]);\n\n // istanbul ignore next\n const handleConfirm = ({ fields, isReset }: DisplaySettingsModalData) => {\n if (isReset) {\n const fieldIds = defaultFields;\n modelData.isAbstract && fieldIds.push(\"_object_id\");\n setState({ fieldIds });\n jsonLocalStorage.removeItem(`${modelData.objectId}-selectAttrIds`);\n props.onFieldsModalConfirm(fieldIds);\n } else {\n setState({\n fieldIds: _sortFieldIds(fields),\n });\n jsonLocalStorage.setItem(`${modelData.objectId}-selectAttrIds`, fields);\n props.onFieldsModalConfirm(fields);\n }\n };\n\n useEffect(() => {\n props.notifyCurrentFields?.(state.fieldIds);\n }, [props.notifyCurrentFields]);\n\n // istanbul ignore next\n useEffect(() => {\n props.selectedRowKeys?.length &&\n (async () => {\n const data: InstanceApi_PostSearchRequestBody = {};\n const v3Data: InstanceApi_PostSearchV3RequestBody = {\n fields: [\"instanceId\"],\n };\n if (!isEmpty(props.permission)) {\n v3Data.permission = data.permission = props.permission;\n }\n\n if (state.fieldIds) {\n data.fields = Object.fromEntries(\n state.fieldIds.map((fieldId) => [fieldId, true])\n );\n v3Data.fields = [...state.fieldIds, ...v3Data.fields];\n (v3Data as any).ignore_missing_field_error = true;\n }\n\n v3Data.query = {\n instanceId: {\n $in: props.selectedRowKeys,\n },\n };\n v3Data.page_size = props.selectedRowKeys.length;\n\n if (state.relatedToMe) {\n v3Data.only_my_instance = data.only_my_instance = state.relatedToMe;\n }\n if (props.extraParams) {\n Object.assign(v3Data, props.extraParams);\n }\n let resp;\n if (props.useAutoDiscoveryProvider) {\n resp = await listProvider.query([props.objectId, v3Data]);\n } else {\n resp = await InstanceApi_postSearchV3(props.objectId, v3Data);\n }\n resp.list.forEach((i: Record<string, any>) =>\n cache.current.set(i.instanceId, i)\n );\n })();\n }, [props.selectedRowKeys]);\n const handleToggleFixHeader = () => {\n setFixHeader(!fixedHeader);\n };\n const onAdvancedSearchCloseGen = (attrId: string, valuesStr: string) => {\n return () => {\n const queries: Query[] = [];\n const queriesToShow: Query[] = [];\n const filterAq = (queries: any[]) =>\n queries.filter((v: any) => isValueEqualFn(v, attrId, valuesStr));\n state.aq.forEach((query) => {\n const key = Object.keys(query)[0];\n if (\n (key === \"$or\" || key === \"$and\") &&\n Object.keys((query[key] as Query[])[0])[0] === attrId\n ) {\n const filteredSubQueries = filterAq(query[key] as Query[]);\n if (filteredSubQueries.length > 0) {\n queries.push({\n [key]: filteredSubQueries,\n });\n }\n } else if (key !== attrId && !startsWith(attrId, `${key}.`)) {\n // $exists $gte $lte 针对为空,不为空,时间范围特殊处理\n if (!Array.isArray(query[key]) && isSpecialFn(query, key)) {\n queries.push(query);\n } else {\n const fieldId = Object.keys((query[key] as Query[])[0])[0];\n // 判断是否为结构体\n const isStruct = isOfStruct(modelData, fieldId);\n // 结构体情况处理\n if (\n !(\n (key === \"$or\" || key === \"$and\") &&\n startsWith(fieldId, `${attrId}.`) &&\n isStruct\n )\n ) {\n queries.push(query);\n }\n }\n } else if (\n props.isInstanceFilterForm &&\n key === attrId &&\n isValueEqualFn(query, attrId, valuesStr)\n ) {\n specialQueryHandler(query, key, queries);\n }\n });\n state.aqToShow.forEach((query) => {\n const key = Object.keys(query)[0];\n if (\n (key === \"$or\" || key === \"$and\") &&\n Object.keys((query[key] as Query[])[0])[0] === attrId\n ) {\n const filteredSubQueries = filterAq(query[key] as Query[]);\n if (filteredSubQueries.length > 0) {\n queriesToShow.push({\n [key]: filteredSubQueries,\n });\n }\n } else if (key !== attrId) {\n queriesToShow.push(query);\n } else if (\n props.isInstanceFilterForm &&\n key === attrId &&\n isValueEqualFn(query, attrId, valuesStr)\n ) {\n specialQueryHandler(query, key, queriesToShow);\n }\n });\n setState({\n aq: queries,\n aqToShow: queriesToShow,\n });\n props.onAdvancedSearch?.(queries);\n };\n };\n const conditions = translateConditions(\n state.aqToShow,\n idObjectMap,\n modelData\n );\n\n return (\n <Spin spinning={state.loading}>\n {state.inited && !state.failed ? (\n <React.Fragment>\n {(!props.searchDisabled ||\n !props.advancedSearchDisabled ||\n !props.relatedToMeDisabled ||\n !props.aliveHostsDisabled ||\n !props.moreButtonsDisabled) && (\n <div className={styles.instanceListToolbar}>\n <div className={styles.searchRelated}>\n {/* istanbul ignore next (state is not updated) */}\n {!state.searchByApp ? (\n <>\n {!props.searchDisabled && (\n <Input.Search\n enterButton\n value={q}\n onChange={onChange}\n onSearch={onSearch}\n />\n )}\n {!props.advancedSearchDisabled && (\n <Button\n type=\"link\"\n size=\"small\"\n style={{\n marginLeft: \"8px\",\n marginRight: \"auto\",\n }}\n onClick={() =>\n setState({\n isAdvancedSearchVisible:\n !state.isAdvancedSearchVisible,\n })\n }\n data-testid=\"advanced-search-toggle-btn\"\n >\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ADVANCED_SEARCH}`\n )}\n <LegacyIcon\n type={state.isAdvancedSearchVisible ? \"up\" : \"down\"}\n />\n </Button>\n )}\n </>\n ) : (\n <>\n <Select\n style={{ width: \"150px\", marginRight: \"10px\" }}\n value={state.appSelectValue}\n onChange={appSelectChange}\n showSearch={true}\n optionFilterProp=\"children\"\n >\n {state.appList?.map((r) => (\n <Select.Option key={r.instanceId} value={r.instanceId}>\n {r.name}\n </Select.Option>\n ))}\n </Select>\n <Select\n style={{ width: \"150px\" }}\n value={state.clusterValue}\n onChange={clusterSelectChange}\n showSearch={true}\n optionFilterProp=\"children\"\n >\n {state.clusterList.map((r) => (\n <Select.Option key={r.instanceId} value={r.instanceId}>\n {r.name}\n </Select.Option>\n ))}\n </Select>\n </>\n )}\n </div>\n <div className={styles.options}>\n {selectedRowKeys.length > 0 && (\n <div style={{ marginRight: 20 }}>\n <span>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CHOSEN_OPTIONS}`, {\n count: selectedRowKeys.length,\n })}\n </span>\n <a\n role=\"button\"\n onClick={() =>\n onSelectionChange({\n selectedKeys: [],\n selectedItems: [],\n })\n }\n >\n {\" \"}\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLEAR}`)}\n </a>\n </div>\n )}\n {props.objectId === \"HOST\" && props.enableSearchByApp && (\n <Button type={\"link\"} onClick={toggleSearchMode}>\n {/* istanbul ignore next (state is not updated) */}\n {state.searchByApp\n ? i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FREE_SELECTION}`)\n : i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.APP_SELECTION}`)}\n </Button>\n )}\n {props.objectId === \"HOST\" && !props.aliveHostsDisabled && (\n <IconButton\n checked={state.aliveHosts}\n onChange={onAliveHostsChange}\n style={{ marginRight: 10 }}\n disabled={props.fixAliveHosts}\n type=\"normalHost\"\n label={i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.NORMAL_HOST}`)}\n data-testid=\"alive-hosts\"\n />\n )}\n {!props.relatedToMeDisabled && (\n <IconButton\n checked={state.relatedToMe}\n onChange={onRelatedToMeChange}\n style={{ marginRight: 10 }}\n type=\"relateToMe\"\n label={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.RELATED_TO_ME}`\n )}\n data-testid=\"related-to-me\"\n />\n )}\n {!props.showHiddenInfoDisabled && (\n <IconButton\n checked={state.autoBreakLine}\n onChange={toggleAutoBreakLine}\n style={{ marginRight: 10 }}\n type=\"showHiddenInfo\"\n label={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.DISPLAY_OMITTED_INFORMATION}`\n )}\n data-testid=\"show-hidden-info\"\n />\n )}\n {!props.moreButtonsDisabled && (\n <MoreButtonsContainer\n modelData={modelData}\n onConfirm={handleConfirm}\n fieldIds={state.fieldIds}\n defaultFields={defaultFields}\n extraDisabledField={props.extraDisabledField}\n handleToggleFixHeader={handleToggleFixHeader}\n fixedHeader={fixedHeader}\n showFixedHeader={props.showFixedHeader}\n />\n )}\n </div>\n </div>\n )}\n {!props.advancedSearchDisabled && !state.searchByApp && (\n <div\n style={{ marginBottom: \"18px\" }}\n hidden={!state.isAdvancedSearchVisible}\n >\n <AdvancedSearch\n key={newKey(state.fieldIds, state.aq)}\n fieldIds={state.fieldIds}\n idObjectMap={state.idObjectMap}\n modelData={modelData}\n q={state.aqToShow}\n fieldToShow={state.fieldToShow}\n onSearch={onAdvancedSearch}\n {...(props.autoSearch\n ? {\n autoSearch: props.autoSearch,\n }\n : null)}\n />\n </div>\n )}\n {!props.hideSearchConditions &&\n !state.searchByApp &&\n (state.instanceSourceQuery || state.q || !isEmpty(conditions)) && (\n <div className={styles.searchConditions}>\n <span>\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.CURRENT_FILTER_REQUIREMENTS}`\n )}\n </span>\n {state.q && (\n <Tag\n closable\n onClose={() => {\n setQ(\"\");\n onSearch(\"\");\n }}\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FUZZY_SEARCH}`, {\n query: state.q,\n })}\n </Tag>\n )}\n {state.instanceSourceQuery && (\n <Tag\n closable\n onClose={() => {\n onInstanceSourceChange(null);\n }}\n >\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.INSTANCE_SOURCE_TAG_TEXT}`,\n {\n query:\n inheritanceModelIdNameMap?.[\n state.instanceSourceQuery\n ] || state.instanceSourceQuery,\n }\n )}\n </Tag>\n )}\n {conditions.map((condition) => (\n <Tag\n key={`${condition.attrId}${\n condition.valuesStr\n }-${uniqueId()}`}\n closable\n onClose={onAdvancedSearchCloseGen(\n condition.attrId,\n condition.valuesStr\n )}\n >\n {condition.condition}\n </Tag>\n ))}\n </div>\n )}\n {props.extraFilterBricks?.useBrick && (\n <BrickAsComponent useBrick={props.extraFilterBricks.useBrick} />\n )}\n {!props.hideInstanceList && (\n <InstanceListTable\n detailUrlTemplates={props.detailUrlTemplates}\n fieldIds={state.fieldIds}\n idObjectMap={state.idObjectMap}\n modelData={modelData}\n instanceListData={state.instanceListData}\n sort={state.sort}\n asc={state.asc}\n selectedRowKeys={selectedRowKeys}\n selectDisabled={props.selectDisabled}\n sortDisabled={props.sortDisabled}\n propertyDisplayConfigs={props.propertyDisplayConfigs}\n onClickItem={props.onClickItem}\n onClickItemV2={props.onClickItemV2}\n onPaginationChange={onPaginationChange}\n onSortingChange={onSortingChange}\n onSelectionChange={onSelectionChange}\n onInstanceSourceChange={onInstanceSourceChange}\n instanceSourceQuery={state.instanceSourceQuery}\n inheritanceModelIdNameMap={inheritanceModelIdNameMap}\n filterInstanceSourceDisabled={props.filterInstanceSourceDisabled}\n autoBreakLine={state.autoBreakLine}\n relationLinkDisabled={props.relationLinkDisabled}\n pageSizeOptions={props.pageSizeOptions}\n showSizeChanger={props.showSizeChanger}\n extraColumns={props.extraColumns}\n target={props.target}\n ipCopy={props.ipCopy}\n fixedHeader={fixedHeader}\n separatorUsedInRelationData={props.separatorUsedInRelationData}\n showTooltip={showTooltip}\n rowSelectionType={props.rowSelectionType}\n />\n )}\n </React.Fragment>\n ) : null}\n </Spin>\n );\n}\n\n/**\n * 把 objectList 封装到构件中请求,废弃掉通过老模板使用的方式,可直接使用构件。\n * 同时也兼容之前的使用方式,对于外部传进来的会优先使用外部的数据,构件内部不会额外请求,\n * 不传的话构件内部做请求,并作缓存\n */\nexport function InstanceList(props: InstanceListProps): React.ReactElement {\n const [objectList, setObjectList] = useState<\n Partial<CmdbModels.ModelCmdbObject>[]\n >(props.objectList);\n\n useEffect(() => {\n if (props.objectList) {\n setObjectList(props.objectList);\n } else {\n (async () => {\n if (!props.objectList) {\n const cacheData = objectListCache.get(props.objectId);\n if (cacheData) {\n setObjectList(cacheData);\n } else {\n try {\n const list = (\n await CmdbObjectApi_getObjectRef({ ref_object: props.objectId })\n ).data;\n setObjectList(list);\n objectListCache.set(props.objectId, list);\n } catch (e) {\n // istanbul ignore next\n handleHttpError(e);\n }\n }\n }\n })();\n }\n }, [props.objectId, props.objectList]);\n\n if (\n !objectList ||\n !objectList.find((item) => item.objectId === props.objectId)\n )\n return null;\n\n return <LegacyInstanceList {...props} objectList={objectList} />;\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@next-libs/cmdb-instances",
3
- "version": "6.45.0",
3
+ "version": "6.46.0",
4
4
  "description": "> TODO: description",
5
5
  "homepage": "https://github.com/easyops-cn/next-libs/tree/master/libs/cmdb-instances",
6
6
  "license": "GPL-3.0",
@@ -36,10 +36,10 @@
36
36
  },
37
37
  "dependencies": {
38
38
  "@next-core/brick-types": "^2.16.0",
39
- "@next-libs/basic-components": "^3.6.0",
39
+ "@next-libs/basic-components": "^4.0.0",
40
40
  "@next-libs/cmdb-utils": "^3.3.0",
41
- "@next-libs/code-editor-components": "^4.1.5",
42
- "@next-libs/forms": "^3.2.29",
41
+ "@next-libs/code-editor-components": "^4.1.6",
42
+ "@next-libs/forms": "^3.2.30",
43
43
  "@next-libs/storage": "^2.0.2",
44
44
  "@next-sdk/cmdb-sdk": "^3.1.0",
45
45
  "@next-sdk/permission-sdk": "^2.1.1",
@@ -50,5 +50,5 @@
50
50
  "immutability-helper": "^3.1.1",
51
51
  "marked": "^2.1.3"
52
52
  },
53
- "gitHead": "781dce30c839a601b1f7c6f9963b670026acaf1f"
53
+ "gitHead": "702d106466fac121b0d5ab13db3d814a79f62e52"
54
54
  }