@next-libs/cmdb-instances 6.37.1 → 6.38.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,17 @@
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.38.0](https://github.com/easyops-cn/next-libs/compare/@next-libs/cmdb-instances@6.37.1...@next-libs/cmdb-instances@6.38.0) (2022-07-22)
7
+
8
+
9
+ ### Features
10
+
11
+ * **cmdb-instances:** 实例列表的presetConfigs添加一个额外固定列的选项 ([b55e667](https://github.com/easyops-cn/next-libs/commit/b55e667a87fac79b0495d391b3a77967c67db7ca))
12
+
13
+
14
+
15
+
16
+
6
17
  ## [6.37.1](https://github.com/easyops-cn/next-libs/compare/@next-libs/cmdb-instances@6.37.0...@next-libs/cmdb-instances@6.37.1) (2022-07-22)
7
18
 
8
19
 
@@ -385,9 +385,10 @@ function LegacyInstanceList(props) {
385
385
  };
386
386
 
387
387
  const getFields = () => {
388
- var _props$presetConfigs2;
388
+ var _props$presetConfigs2, _props$extraFixedFiel;
389
389
 
390
390
  let fieldIds = (_props$presetConfigs2 = props.presetConfigs) === null || _props$presetConfigs2 === void 0 ? void 0 : _props$presetConfigs2.fieldIds;
391
+ const extraFixedFieldIds = (_props$extraFixedFiel = props.extraFixedFields) !== null && _props$extraFixedFiel !== void 0 ? _props$extraFixedFiel : [];
391
392
 
392
393
  if ((0, _lodash.isEmpty)(fieldIds)) {
393
394
  fieldIds = jsonLocalStorage.getItem(`${modelData.objectId}-selectAttrIds`);
@@ -397,6 +398,10 @@ function LegacyInstanceList(props) {
397
398
  fieldIds = computeDefaultFields().fieldIds;
398
399
  }
399
400
 
401
+ if (!(0, _lodash.isEmpty)(extraFixedFieldIds)) {
402
+ fieldIds = (0, _lodash.uniq)([...fieldIds, ...extraFixedFieldIds]);
403
+ }
404
+
400
405
  fieldIds = props.extraDisabledField ? (0, _lodash.uniq)([...fieldIds, props.extraDisabledField]) : fieldIds;
401
406
  fieldIds = _sortFieldIds(fieldIds);
402
407
  const hideModelData = modelData.view.hide_columns || [];
@@ -824,16 +829,22 @@ function LegacyInstanceList(props) {
824
829
  };
825
830
 
826
831
  const defaultFields = (0, _react.useMemo)(() => {
827
- var _props$presetConfigs3;
832
+ var _props$presetConfigs3, _props$extraFixedFiel2;
828
833
 
829
834
  let defaultFields;
835
+ const fieldIds = (_props$presetConfigs3 = props.presetConfigs) === null || _props$presetConfigs3 === void 0 ? void 0 : _props$presetConfigs3.fieldIds,
836
+ extraFixedFieldIds = (_props$extraFixedFiel2 = props.extraFixedFields) !== null && _props$extraFixedFiel2 !== void 0 ? _props$extraFixedFiel2 : [];
830
837
 
831
- if (!(0, _lodash.isEmpty)((_props$presetConfigs3 = props.presetConfigs) === null || _props$presetConfigs3 === void 0 ? void 0 : _props$presetConfigs3.fieldIds)) {
838
+ if (!(0, _lodash.isEmpty)(fieldIds)) {
832
839
  defaultFields = props.presetConfigs.fieldIds;
833
840
  } else {
834
841
  defaultFields = computeDefaultFields().fieldIds;
835
842
  }
836
843
 
844
+ if (!(0, _lodash.isEmpty)(extraFixedFieldIds)) {
845
+ defaultFields = (0, _lodash.uniq)([...defaultFields, ...extraFixedFieldIds]);
846
+ }
847
+
837
848
  return defaultFields;
838
849
  }, [props.presetConfigs, modelData]); // istanbul ignore next
839
850
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/instance-list/InstanceList.tsx"],"names":["getQuery","modelData","idObjectMap","q","fields","onlySearchByIp","query","$or","queryValues","trim","split","push","ip","$like","attr","forEach","queryValue","id","relation","sides","this","nameKeys","that","nameKey","isSpecialFn","attrId","Object","keys","some","v","isValueEqualFn","valuesStr","isSpecial","values","join","translateConditions","aq","t","conditions","relations","relation_list","sidesArr","objectId","relationObject","nameOfNameKey","attrList","name","value","type","relationSideId","attrAndRelationList","queries","key","find","ElementOperators","Exists","info","undefined","ConditionType","Between","Empty","NotEmpty","False","True","includes","currentCondition","map","replace","condition","label","curCondition","queryValuesStr","every","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","objectList","object","disabledDefaultFields","extraFieldAttrs","inheritanceModelIdNameMap","setInheritanceModelIdNameMap","fixedHeader","setFixHeader","fetchInheritanceModelIdNameMap","idNameMap","isAbstract","parentObjectId","computeDefaultFields","inModal","settings","CMDB_MODAL_FIELDS_SETTINGS","CMDB_RESOURCE_FIELDS_SETTINGS","ignoredFields","slice","hideModelData","view","hide_columns","field","_sortFieldIds","frontFields","restFields","presetConfigs","foundIndex","attr_order","orderId","getFields","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","permission","sortType","default_type","order","defaultQuery","$and","fromEntries","ignore_missing_field_error","_agentStatus","_object_id","useAutoDiscoveryProvider","extraParams","assign","only_my_instance","promise","onSearchExecute","refreshInstanceList","instanceListData","hideInstanceList","list","i","current","set","e","skip","onPaginationChange","onChange","target","onSelectionChange","selected","selectedItems","selectedKeys","ids","has","resp","params","$in","page_size","get","onSearch","onAdvancedSearch","queriesToShow","fieldToShow","onSortingChange","pagination","onInstanceSourceChange","onRelatedToMeChange","checked","onAliveHostsChange","toggleAutoBreakLine","toggleSearchMode","React","useCallback","appListResp","clusters","appSelectChange","r","clusterSelectChange","defaultFields","handleConfirm","isReset","removeItem","onFieldsModalConfirm","setItem","notifyCurrentFields","handleToggleFixHeader","onAdvancedSearchCloseGen","filterAq","specialQueryHandler","filteredSubQueries","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","extraFilterBricks","useBrick","detailUrlTemplates","selectDisabled","sortDisabled","propertyDisplayConfigs","onClickItem","onClickItemV2","filterInstanceSourceDisabled","relationLinkDisabled","pageSizeOptions","showSizeChanger","extraColumns","ipCopy","separatorUsedInRelationData","rowSelectionType","InstanceList","setObjectList","cacheData","objectListCache","ref_object"],"mappings":"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","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 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} 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}\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\n const queryValues = q.trim().split(/\\s+/);\n if (onlySearchByIp) {\n query.$or.push({ ip: { $like: `%${q.trim()}%` } });\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 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?: PropertyDisplayConfig[];\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}\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 if (isEmpty(fieldIds)) {\n fieldIds = jsonLocalStorage.getItem(\n `${modelData.objectId}-selectAttrIds`\n );\n }\n\n if (isEmpty(fieldIds)) {\n fieldIds = computeDefaultFields().fieldIds;\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: [\"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 (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 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 ...(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 });\n } else {\n setState({ searchByApp: false });\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 if (!isEmpty(props.presetConfigs?.fieldIds)) {\n defaultFields = props.presetConfigs.fieldIds;\n } else {\n defaultFields = computeDefaultFields().fieldIds;\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 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 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 queries.push(query);\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"],"file":"InstanceList.js"}
1
+ {"version":3,"sources":["../../../src/instance-list/InstanceList.tsx"],"names":["getQuery","modelData","idObjectMap","q","fields","onlySearchByIp","query","$or","queryValues","trim","split","push","ip","$like","attr","forEach","queryValue","id","relation","sides","this","nameKeys","that","nameKey","isSpecialFn","attrId","Object","keys","some","v","isValueEqualFn","valuesStr","isSpecial","values","join","translateConditions","aq","t","conditions","relations","relation_list","sidesArr","objectId","relationObject","nameOfNameKey","attrList","name","value","type","relationSideId","attrAndRelationList","queries","key","find","ElementOperators","Exists","info","undefined","ConditionType","Between","Empty","NotEmpty","False","True","includes","currentCondition","map","replace","condition","label","curCondition","queryValuesStr","every","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","objectList","object","disabledDefaultFields","extraFieldAttrs","inheritanceModelIdNameMap","setInheritanceModelIdNameMap","fixedHeader","setFixHeader","fetchInheritanceModelIdNameMap","idNameMap","isAbstract","parentObjectId","computeDefaultFields","inModal","settings","CMDB_MODAL_FIELDS_SETTINGS","CMDB_RESOURCE_FIELDS_SETTINGS","ignoredFields","slice","hideModelData","view","hide_columns","field","_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","permission","sortType","default_type","order","defaultQuery","$and","fromEntries","ignore_missing_field_error","_agentStatus","_object_id","useAutoDiscoveryProvider","extraParams","assign","only_my_instance","promise","onSearchExecute","refreshInstanceList","instanceListData","hideInstanceList","list","i","current","set","e","skip","onPaginationChange","onChange","target","onSelectionChange","selected","selectedItems","selectedKeys","ids","has","resp","params","$in","page_size","get","onSearch","onAdvancedSearch","queriesToShow","fieldToShow","onSortingChange","pagination","onInstanceSourceChange","onRelatedToMeChange","checked","onAliveHostsChange","toggleAutoBreakLine","toggleSearchMode","React","useCallback","appListResp","clusters","appSelectChange","r","clusterSelectChange","defaultFields","handleConfirm","isReset","removeItem","onFieldsModalConfirm","setItem","notifyCurrentFields","handleToggleFixHeader","onAdvancedSearchCloseGen","filterAq","specialQueryHandler","filteredSubQueries","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","extraFilterBricks","useBrick","detailUrlTemplates","selectDisabled","sortDisabled","propertyDisplayConfigs","onClickItem","onClickItemV2","filterInstanceSourceDisabled","relationLinkDisabled","pageSizeOptions","showSizeChanger","extraColumns","ipCopy","separatorUsedInRelationData","rowSelectionType","InstanceList","setObjectList","cacheData","objectListCache","ref_object"],"mappings":"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","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 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} 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}\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\n const queryValues = q.trim().split(/\\s+/);\n if (onlySearchByIp) {\n query.$or.push({ ip: { $like: `%${q.trim()}%` } });\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 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?: PropertyDisplayConfig[];\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}\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: [\"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 (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 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 ...(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 });\n } else {\n setState({ searchByApp: false });\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 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 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 queries.push(query);\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"],"file":"InstanceList.js"}
@@ -354,9 +354,10 @@ export function LegacyInstanceList(props) {
354
354
  };
355
355
 
356
356
  var getFields = () => {
357
- var _props$presetConfigs2;
357
+ var _props$presetConfigs2, _props$extraFixedFiel;
358
358
 
359
359
  var fieldIds = (_props$presetConfigs2 = props.presetConfigs) === null || _props$presetConfigs2 === void 0 ? void 0 : _props$presetConfigs2.fieldIds;
360
+ var extraFixedFieldIds = (_props$extraFixedFiel = props.extraFixedFields) !== null && _props$extraFixedFiel !== void 0 ? _props$extraFixedFiel : [];
360
361
 
361
362
  if (isEmpty(fieldIds)) {
362
363
  fieldIds = jsonLocalStorage.getItem("".concat(modelData.objectId, "-selectAttrIds"));
@@ -366,6 +367,10 @@ export function LegacyInstanceList(props) {
366
367
  fieldIds = computeDefaultFields().fieldIds;
367
368
  }
368
369
 
370
+ if (!isEmpty(extraFixedFieldIds)) {
371
+ fieldIds = uniq([...fieldIds, ...extraFixedFieldIds]);
372
+ }
373
+
369
374
  fieldIds = props.extraDisabledField ? uniq([...fieldIds, props.extraDisabledField]) : fieldIds;
370
375
  fieldIds = _sortFieldIds(fieldIds);
371
376
  var hideModelData = modelData.view.hide_columns || [];
@@ -809,16 +814,22 @@ export function LegacyInstanceList(props) {
809
814
  };
810
815
 
811
816
  var defaultFields = useMemo(() => {
812
- var _props$presetConfigs3;
817
+ var _props$presetConfigs3, _props$extraFixedFiel2;
813
818
 
814
819
  var defaultFields;
820
+ var fieldIds = (_props$presetConfigs3 = props.presetConfigs) === null || _props$presetConfigs3 === void 0 ? void 0 : _props$presetConfigs3.fieldIds,
821
+ extraFixedFieldIds = (_props$extraFixedFiel2 = props.extraFixedFields) !== null && _props$extraFixedFiel2 !== void 0 ? _props$extraFixedFiel2 : [];
815
822
 
816
- if (!isEmpty((_props$presetConfigs3 = props.presetConfigs) === null || _props$presetConfigs3 === void 0 ? void 0 : _props$presetConfigs3.fieldIds)) {
823
+ if (!isEmpty(fieldIds)) {
817
824
  defaultFields = props.presetConfigs.fieldIds;
818
825
  } else {
819
826
  defaultFields = computeDefaultFields().fieldIds;
820
827
  }
821
828
 
829
+ if (!isEmpty(extraFixedFieldIds)) {
830
+ defaultFields = uniq([...defaultFields, ...extraFixedFieldIds]);
831
+ }
832
+
822
833
  return defaultFields;
823
834
  }, [props.presetConfigs, modelData]); // istanbul ignore next
824
835
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/instance-list/InstanceList.tsx"],"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","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","getQuery","modelData","idObjectMap","q","fields","onlySearchByIp","query","$or","queryValues","trim","split","push","ip","$like","attr","forEach","queryValue","id","relation","sides","this","nameKeys","that","nameKey","isSpecialFn","attrId","Object","keys","some","v","isValueEqualFn","valuesStr","isSpecial","values","join","translateConditions","aq","t","conditions","relations","relation_list","sidesArr","objectId","relationObject","nameOfNameKey","attrList","name","value","type","relationSideId","attrAndRelationList","queries","key","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","objectList","object","disabledDefaultFields","inheritanceModelIdNameMap","setInheritanceModelIdNameMap","fixedHeader","setFixHeader","fetchInheritanceModelIdNameMap","idNameMap","isAbstract","parentObjectId","computeDefaultFields","inModal","settings","ignoredFields","slice","hideModelData","view","hide_columns","field","_sortFieldIds","frontFields","restFields","presetConfigs","foundIndex","attr_order","orderId","getFields","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","permission","sortType","default_type","order","defaultQuery","$and","fromEntries","ignore_missing_field_error","_agentStatus","_object_id","useAutoDiscoveryProvider","extraParams","assign","only_my_instance","promise","onSearchExecute","refreshInstanceList","instanceListData","hideInstanceList","list","i","current","set","e","skip","onPaginationChange","onChange","target","onSelectionChange","selected","selectedItems","selectedKeys","ids","has","resp","params","$in","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","specialQueryHandler","filteredSubQueries","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"],"mappings":"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","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 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} 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}\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\n const queryValues = q.trim().split(/\\s+/);\n if (onlySearchByIp) {\n query.$or.push({ ip: { $like: `%${q.trim()}%` } });\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 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?: PropertyDisplayConfig[];\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}\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 if (isEmpty(fieldIds)) {\n fieldIds = jsonLocalStorage.getItem(\n `${modelData.objectId}-selectAttrIds`\n );\n }\n\n if (isEmpty(fieldIds)) {\n fieldIds = computeDefaultFields().fieldIds;\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: [\"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 (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 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 ...(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 });\n } else {\n setState({ searchByApp: false });\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 if (!isEmpty(props.presetConfigs?.fieldIds)) {\n defaultFields = props.presetConfigs.fieldIds;\n } else {\n defaultFields = computeDefaultFields().fieldIds;\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 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 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 queries.push(query);\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"],"file":"InstanceList.js"}
1
+ {"version":3,"sources":["../../../src/instance-list/InstanceList.tsx"],"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","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","getQuery","modelData","idObjectMap","q","fields","onlySearchByIp","query","$or","queryValues","trim","split","push","ip","$like","attr","forEach","queryValue","id","relation","sides","this","nameKeys","that","nameKey","isSpecialFn","attrId","Object","keys","some","v","isValueEqualFn","valuesStr","isSpecial","values","join","translateConditions","aq","t","conditions","relations","relation_list","sidesArr","objectId","relationObject","nameOfNameKey","attrList","name","value","type","relationSideId","attrAndRelationList","queries","key","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","objectList","object","disabledDefaultFields","inheritanceModelIdNameMap","setInheritanceModelIdNameMap","fixedHeader","setFixHeader","fetchInheritanceModelIdNameMap","idNameMap","isAbstract","parentObjectId","computeDefaultFields","inModal","settings","ignoredFields","slice","hideModelData","view","hide_columns","field","_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","permission","sortType","default_type","order","defaultQuery","$and","fromEntries","ignore_missing_field_error","_agentStatus","_object_id","useAutoDiscoveryProvider","extraParams","assign","only_my_instance","promise","onSearchExecute","refreshInstanceList","instanceListData","hideInstanceList","list","i","current","set","e","skip","onPaginationChange","onChange","target","onSelectionChange","selected","selectedItems","selectedKeys","ids","has","resp","params","$in","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","specialQueryHandler","filteredSubQueries","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"],"mappings":"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","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 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} 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}\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\n const queryValues = q.trim().split(/\\s+/);\n if (onlySearchByIp) {\n query.$or.push({ ip: { $like: `%${q.trim()}%` } });\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 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?: PropertyDisplayConfig[];\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}\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: [\"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 (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 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 ...(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 });\n } else {\n setState({ searchByApp: false });\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 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 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 queries.push(query);\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"],"file":"InstanceList.js"}
@@ -84,6 +84,7 @@ interface InstanceListProps {
84
84
  rowSelectionType?: "checkbox" | "radio";
85
85
  useAutoDiscoveryProvider?: boolean;
86
86
  extraParams?: Record<string, any>;
87
+ extraFixedFields?: string[];
87
88
  }
88
89
  export declare function LegacyInstanceList(props: InstanceListProps): React.ReactElement;
89
90
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@next-libs/cmdb-instances",
3
- "version": "6.37.1",
3
+ "version": "6.38.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",
@@ -50,5 +50,5 @@
50
50
  "immutability-helper": "^3.1.1",
51
51
  "marked": "^2.1.3"
52
52
  },
53
- "gitHead": "c647451d2549afbeeec6e3ba88f825d9bfe74762"
53
+ "gitHead": "d8deafdeadb2e35ad5aaf7fc397b83672629e087"
54
54
  }