@next-libs/cmdb-instances 7.14.0 → 7.14.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"InstanceList.js","names":["joinRelationFieldAndShowkey","fields","modelData","objectList","attrIdMap","keyBy","attrList","map","field","relation","relation_list","find","left_id","right_id","isLeft","left_object_id","objectId","otherSideObjectId","right_object_id","otherSideObject","object","showKey","view","show_key","getQuery","idObjectMap","q","onlySearchByIp","query","$or","queryValues","trim","split","searchIpFields","getRuntime","getCurrentApp","config","queryOrs","Set","searchValue","$like","forEach","key","push","forEachAvailableFields","attr","queryValue","id","sides","this","nameKeys","getInstanceNameKeys","that","nameKey","isSpecialFn","attrId","Object","keys","some","v","specialQueryHandler","queries","isSpecial","isValueEqualFn","valuesStr","values","join","mergeFields","oldFields","newFieldIds","existField","f","order","updateSortFields","sortInfo","sortType","asc","sort","isNil","includes","item","translateConditions","aq","t","conditions","relations","sidesArr","isSelfRelation","getRelationObjectSides","relationObject","nameOfNameKey","name","value","type","relationSideId","attrAndRelationList","isEmpty","ElementOperators","Exists","changeQueryWithCustomRules","info","getFieldConditionsAndValues","undefined","ConditionType","Between","Empty","NotEmpty","False","True","currentCondition","isString","replace","condition","label","curCondition","queryValuesStr","every","isEqual","omit","newKey","fieldIds","length","isOfStruct","fieldId","structFields","filter","structs","struct_define","struct","flat","isOfBoolean","keyAttrMap","ModelAttributeValueType","BOOLEAN","initAqToShow","isToShow","newAqToShow","aqToShow","entries","expressions","newExpressions","LogicalOperators","Or","And","firstSubQuery","isStruct","isBool","structQueries","expression","structExpressions","boolExpressions","targetValue","LegacyInstanceList","props","showTooltip","baseList","instanceId","i18n","NS_LIBS_CMDB_INSTANCES","K","ALL_CLUSTER","jsonLocalStorage","JsonStorage","localStorage","reducer","prevState","updatedProperty","listProvider","useProvider","cache","instanceArchiveListProvider","ignorePermissionProvider","fieldsProvider","updateFieldsProvider","externalPostSearchV3","externalGetIdMapName","externalFieldsProvider","externalUpdateFieldsProvider","useMemo","disabledDefaultFields","union","extraFieldAttrs","inheritanceModelIdNameMap","setInheritanceModelIdNameMap","useState","fixedHeader","setFixHeader","fetchInheritanceModelIdNameMap","idNameMap","isAbstract","useExternalCmdbApi","parentObjectId","sourceId","externalSourceId","CmdbObjectApi_getIdMapName","showFilterInstanceSource","setItem","presetConfigs","useEffect","computeDefaultFields","inModal","settings","CMDB_MODAL_FIELDS_SETTINGS","CMDB_RESOURCE_FIELDS_SETTINGS","ignoredFields","concat","hide_columns","sortFields","attr_order","allFields","difference","slice","_sortFieldIds","frontFields","restFields","sortBy","reject","foundIndex","findIndex","orderId","getFieldsAsync","default_type","backendDefaultFields","object_id","returnData","defaultSortFields","extraFixedFieldIds","extraFixedFields","orderField","uniq","extraDisabledField","hideModelData","getFields","getItem","setQ","state","setState","useReducer","instanceSourceQuery","page","dataSource","pageSize","aliveHosts","relatedToMe","objectIdQuery","filterInstanceSource","instanceSourcePopoverVisible","inited","loading","failed","isAdvancedSearchVisible","saveFieldsBackend","presetConfigsQuery","autoBreakLine","appSearchInstanceId","currentChangeSelect","appSelectValue","clusterValue","appList","clusterList","searchByApp","selectedRowKeys","setSelectedRowKeys","useRef","Map","isFirstRunRef","externalRequestParams","getInstanceListData","data","v3Data","permission","archiveData","useInstanceArchiveProvider","key_word","defaultQuery","$and","fromEntries","ignore_missing_field_error","useAutoDiscoveryProvider","_agentStatus","_object_id","extraParams","assign","only_my_instance","hostRange","i","limitInstanceRange","$in","promise","onSearchExecute","ignorePermission","InstanceApi_postSearchV3","refreshInstanceList","instanceListData","hideInstanceList","list","current","set","e","handleHttpError","getFieldIds","fieldConfig","skip","onPaginationChange","updateDataTime","onChange","target","onSelectionChange","useCallback","selected","selectedItems","selectedKeys","compact","ids","has","resp","params","page_size","get","onSearch","onAdvancedSearch","queriesToShow","fieldToShow","onSortingChange","oldsortFields","newSortFields","pagination","onInstanceSourceChange","onRelatedToMeChange","checked","onAliveHostsChange","toggleAutoBreakLine","toggleSearchMode","React","appListResp","clusters","appSelectChange","r","clusterSelectChange","defaultFields","getAuth","isAdmin","s","handleConfirm","isReset","isAdminSetDisplay","onFieldsModalConfirm","removeItem","isDefault","notifyCurrentFields","handleToggleFixHeader","onAdvancedSearchCloseGen","filterAq","filteredSubQueries","startsWith","Array","isArray","isInstanceFilterForm","onFilterInstanceSourceChange","onFilterObjectIdChange","onPopoverVisibleChange","visible","searchDisabled","advancedSearchDisabled","relatedToMeDisabled","aliveHostsDisabled","moreButtonsDisabled","styles","instanceListToolbar","searchRelated","placeholder","marginLeft","marginRight","ADVANCED_SEARCH","width","options","CHOSEN_OPTIONS","count","CLEAR","extraOperateBricks","useBrick","enableSearchByApp","FREE_SELECTION","APP_SELECTION","fixAliveHosts","NORMAL_HOST","RELATED_TO_ME","showHiddenInfoDisabled","DISPLAY_OMITTED_INFORMATION","showFixedHeader","marginBottom","autoSearch","hideSearchConditions","searchConditions","CURRENT_FILTER_REQUIREMENTS","FUZZY_SEARCH","INSTANCE_SOURCE_TAG_TEXT","uniqueId","extraFilterBricks","detailUrlTemplates","selectDisabled","sortDisabled","propertyDisplayConfigs","onClickItem","onClickItemV2","filterInstanceSourceDisabled","relationLinkDisabled","pageSizeOptions","showSizeChanger","extraColumns","ipCopy","separatorUsedInRelationData","rowSelectionType","onColumnsChange","virtualLoading","InstanceList","setObjectList","externalGetObjectRef","cacheData","objectListCache","ref_object","CmdbObjectApi_getObjectRef"],"sources":["../../../src/instance-list/InstanceList.tsx"],"sourcesContent":["import React, {\n useEffect,\n useReducer,\n useState,\n useRef,\n useMemo,\n useCallback,\n} from \"react\";\nimport {\n difference,\n isEmpty,\n isEqual,\n isString,\n map,\n uniq,\n union,\n filter,\n reject,\n sortBy,\n uniqueId,\n findIndex,\n find,\n startsWith,\n compact,\n omit,\n keyBy,\n cloneDeep,\n isNil,\n} from \"lodash\";\nimport {\n BrickAsComponent,\n getRuntime,\n handleHttpError,\n useProvider,\n} from \"@next-core/brick-kit\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport {\n PropertyDisplayConfig,\n ReadPaginationChangeDetail,\n ReadSelectionChangeDetail,\n ReadSortingChangeDetail,\n UseBrickConf,\n} from \"@next-core/brick-types\";\nimport {\n CmdbModels,\n InstanceApi_PostSearchRequestBody,\n InstanceApi_PostSearchV3RequestBody,\n InstanceApi_PostSearchV3ResponseBody,\n InstanceApi_postSearchV3,\n CmdbObjectApi_getIdMapName,\n CmdbObjectApi_getObjectRef,\n} from \"@next-sdk/cmdb-sdk\";\nimport { Icon as LegacyIcon } from \"@ant-design/compatible\";\nimport { Button, Spin, Input, Tag, Select, Popover, message } from \"antd\";\nimport {\n getRelationObjectSides,\n forEachAvailableFields,\n getInstanceNameKeys,\n RelationIdKeys,\n RelationNameKeys,\n RelationObjectIdKeys,\n RelationObjectSides,\n isSelfRelation,\n Query,\n ElementOperators,\n LogicalOperators,\n ComparisonOperators,\n} from \"@next-libs/cmdb-utils\";\nimport { JsonStorage } from \"@next-libs/storage\";\nimport { ModelObjectAttr } from \"@next-sdk/cmdb-sdk/dist/types/model/cmdb\";\n\nimport {\n ConditionType,\n AdvancedSearch,\n getFieldConditionsAndValues,\n MoreButtonsContainer,\n InstanceListTable,\n CustomColumn,\n Field,\n UseBrickAndPropertyDisplayConfig,\n} from \"../instance-list-table\";\nimport styles from \"./InstanceList.module.css\";\nimport {\n extraFieldAttrs,\n CMDB_MODAL_FIELDS_SETTINGS,\n CMDB_RESOURCE_FIELDS_SETTINGS,\n objectListCache,\n} from \"./constants\";\nimport { ModelAttributeValueType } from \"../model-attribute-form-control/ModelAttributeFormControl\";\nimport { IconButton } from \"./IconButton\";\nimport { changeQueryWithCustomRules } from \"../processors\";\nimport { DisplaySettingsModalData } from \"../instance-list-table/DisplaySettingsModal\";\nimport FilterInstanceSource from \"./FilterInstanceSource\";\nimport { ColumnType } from \"antd/lib/table\";\nimport { getAuth } from \"@next-core/brick-kit\";\n\nexport interface instanceArchiveRequestBody {\n // 搜索内容\n key_word?: string;\n /** 页码 */\n page?: number;\n /** 页大小 */\n page_size?: number;\n fields?: string;\n}\ninterface ISortField {\n field: string;\n order: number;\n}\nexport interface InstanceListPresetConfigs {\n query?: Record<string, any>;\n fieldIds?: string[];\n}\nexport function joinRelationFieldAndShowkey(\n fields: string[],\n modelData: Record<string, any>,\n objectList: Record<string, any>[]\n) {\n const attrIdMap = keyBy(modelData.attrList, \"id\");\n return fields.map((field) => {\n if (attrIdMap[field]) {\n return field;\n } else {\n const relation = modelData.relation_list.find(\n (relation: any) =>\n relation.left_id === field || relation.right_id === field\n );\n if (relation) {\n const isLeft = relation.left_object_id === modelData.objectId;\n const otherSideObjectId = isLeft\n ? relation.right_object_id\n : relation.left_object_id;\n const otherSideObject = objectList.find(\n (object) => object.objectId === otherSideObjectId\n );\n const showKey = otherSideObject?.view?.show_key?.[0] ?? \"\";\n return `${field}.${showKey}`;\n } else {\n return field;\n }\n }\n });\n}\n\nexport function getQuery(\n modelData: Partial<CmdbModels.ModelCmdbObject>,\n idObjectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>,\n q: string,\n fields?: string[],\n onlySearchByIp?: boolean\n) {\n const query: Record<string, any> = { $or: [] };\n const queryValues = q.trim().split(/\\s+/);\n if (onlySearchByIp) {\n const searchIpFields =\n (getRuntime().getCurrentApp().config?.searchIpFields as string[]) || [];\n const queryOrs = [...new Set([\"ip\", ...searchIpFields])];\n const searchValue = { $like: `%${q.trim()}%` };\n queryOrs.forEach((key) => {\n query.$or.push({ [key]: searchValue });\n });\n return query;\n }\n forEachAvailableFields(\n modelData,\n (attr) => {\n queryValues.forEach((queryValue) =>\n query.$or.push({ [attr.id]: { $like: `%${queryValue}%` } })\n );\n },\n (relation, sides) => {\n const id = relation[`${sides.this}_id` as RelationIdKeys];\n const nameKeys = getInstanceNameKeys(\n idObjectMap[relation[`${sides.that}_object_id` as RelationObjectIdKeys]]\n );\n\n queryValues.forEach((queryValue) => {\n nameKeys.forEach((nameKey) => {\n query.$or.push({\n [`${id}.${nameKey}`]: { $like: `%${queryValue}%` },\n });\n });\n });\n },\n fields\n );\n\n return query;\n}\n\nexport const isSpecialFn = (query: any, attrId: string) => {\n return Object.keys(query[attrId] as Query[]).some(\n (v) => v === \"$exists\" || v === \"$gte\" || v === \"$lte\"\n );\n};\n\nexport const specialQueryHandler = (query: any, key: any, queries: Query[]) => {\n // $exists $gte $lte 针对为空,不为空,时间范围特殊处理\n const isSpecial = isSpecialFn(query, key);\n if (isSpecial) {\n return;\n }\n queries.push(query);\n};\n\nexport const isValueEqualFn = (\n query: any,\n attrId: string,\n valuesStr?: string\n) => {\n const isSpecial = isSpecialFn(query, attrId);\n if (isSpecial) return false;\n return query[attrId]\n ? valuesStr && Object.values(query[attrId]).join(\" \") !== valuesStr // 当条件是为空和不为空时,需要判断valuesStr是否存在\n : false;\n};\nexport function mergeFields(\n oldFields: ISortField[],\n newFieldIds: string[]\n): ISortField[] {\n return newFieldIds.map((field) => {\n const existField = oldFields.find((f) => f.field === field);\n const order = existField ? existField.order : 0;\n return { field, order };\n });\n}\nexport function updateSortFields(\n oldFields: ISortField[],\n sortInfo: { asc?: boolean; sort?: string },\n sortType?: string\n): ISortField[] {\n const { asc, sort } = sortInfo;\n const order = isNil(asc)\n ? 0\n : [\"series-number\", \"auto-increment-id\"].includes(sortType)\n ? asc\n ? 2\n : -2\n : asc\n ? 1\n : -1;\n return oldFields.map((item) => {\n if (item.field === sort) {\n item.order = order;\n } else {\n item.order = 0;\n }\n return item;\n });\n}\n\nexport function 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\nexport interface filterObjectIdQuery {\n objectId?: string;\n objectName?: string;\n query?: Record<string, string>;\n checked?: boolean;\n}\n\ninterface InstanceListProps {\n objectId: string;\n objectList?: Partial<CmdbModels.ModelCmdbObject>[];\n detailUrlTemplates?: Record<string, string>;\n presetConfigs?: InstanceListPresetConfigs;\n permission?: string[];\n q?: string;\n searchDisabled?: boolean;\n sortDisabled?: boolean;\n aq?: Query[];\n aqToShow?: Query[];\n advancedSearchDisabled?: boolean;\n page?: number;\n pageSize?: number;\n sort?: string;\n asc?: boolean;\n relatedToMe?: boolean;\n relatedToMeDisabled?: boolean;\n showHiddenInfoDisabled?: boolean;\n moreButtonsDisabled?: boolean;\n aliveHosts?: boolean;\n fixAliveHosts?: boolean;\n aliveHostsDisabled?: boolean;\n propertyDisplayConfigs?: UseBrickAndPropertyDisplayConfig[];\n selectedRowKeys?: string[];\n selectDisabled?: boolean;\n pageSizeOptions?: string[];\n showSizeChanger?: boolean;\n filterInstanceSourceDisabled?: boolean;\n instanceSourceQuery?: string;\n isInstanceFilterForm?: boolean;\n onSearchExecute?(\n data: InstanceApi_PostSearchRequestBody,\n v3Data: InstanceApi_PostSearchV3RequestBody\n ): Promise<InstanceApi_PostSearchV3ResponseBody> | void;\n onSearch?(value: string): void;\n onAdvancedSearch?(queries: Query[]): void;\n onClickItem?(\n evt: React.MouseEvent<HTMLAnchorElement, MouseEvent>,\n id: string\n ): void;\n onClickItemV2?(\n evt: React.MouseEvent<HTMLAnchorElement, MouseEvent>,\n record: Record<string, any>\n ): void;\n onPaginationChange?(pagination: ReadPaginationChangeDetail): void;\n onSortingChange?(sorting: ReadSortingChangeDetail): void;\n onSelectionChange?(selection: ReadSelectionChangeDetail): void;\n onRelatedToMeChange?(value: boolean): void;\n onAliveHostsChange?(value: boolean): void;\n onInstanceSourceChange?(instanceResource: string): void;\n onFieldsModalConfirm?(fields: Record<string, any>): void;\n relationLinkDisabled?: boolean;\n notifyCurrentFields?: (fiels: string[]) => void;\n defaultQuery?: { [fieldId: string]: any }[];\n extraFilterBricks?: {\n useBrick: UseBrickConf;\n };\n extraColumns?: CustomColumn[];\n extraDisabledField?: string;\n hideSearchConditions?: boolean;\n onlySearchByIp?: boolean;\n target?: string;\n ipCopy?: boolean;\n enableSearchByApp?: boolean;\n dataSource?: {\n list: Record<string, any>[];\n total?: number;\n page?: number;\n pageSize?: number;\n };\n separatorUsedInRelationData?: string;\n hideInstanceList?: boolean;\n autoSearch?: (fields: Field[]) => void;\n disabledDefaultFields?: boolean;\n showTooltip?: boolean;\n showFixedHeader?: boolean;\n rowSelectionType?: \"checkbox\" | \"radio\";\n useAutoDiscoveryProvider?: boolean;\n extraParams?: Record<string, any>;\n // 指定固定显示的field,与presetConfigs的fieldIds同时生效\n extraFixedFields?: string[];\n // 如果在presetConfigs的query参数中指定了资源的范围,“按应用筛选”的功能是否也要限定资源的范围\n limitInstanceRange?: boolean;\n useInstanceArchiveProvider?: boolean;\n placeholder?: string;\n extraOperateBricks?: {\n useBrick: UseBrickConf;\n };\n updateDataTime?: number;\n // 是否开启实例来源筛选\n showFilterInstanceSource?: boolean;\n filterInstanceSource?: boolean;\n onFilterInstanceSourceChange?(value: boolean): void;\n onFilterObjectIdChange?(query: filterObjectIdQuery): void;\n objectIdQuery?: string;\n ignorePermission?: boolean;\n saveFieldsBackend?: boolean;\n onColumnsChange?: (columns: ColumnType<{ dataIndex: string }>[]) => void;\n useExternalCmdbApi?: boolean;\n externalSourceId?: 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 presetConfigsQuery?: Record<string, any>;\n filterInstanceSource?: boolean;\n objectIdQuery?: string;\n instanceSourcePopoverVisible?: boolean;\n sortFields?: { field: string; order: number }[];\n backendDefaultFields?: { field: string; order: number }[];\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(\n \"easyops.api.cmdb.job@SearchResource:1.0.1\",\n { cache: false }\n );\n const instanceArchiveListProvider = useProvider(\n \"providers-of-cmdb.instance-archive-api-list-archive-instance\",\n {\n cache: false,\n }\n );\n const ignorePermissionProvider = useProvider(\n \"easyops.api.cmdb.instance@PostSearchV3WithAdmin:1.0.0\",\n { cache: false }\n );\n // istanbul ignore next\n\n const fieldsProvider = useProvider(\n \"easyops.api.cmdb.instance@GetListDisplayView:1.0.1\",\n { cache: false }\n );\n const updateFieldsProvider = useProvider(\n \"easyops.api.cmdb.instance@UpdateListDisplayView:1.0.0\",\n { cache: false }\n );\n\n // 用于外部调用的接口, 当useExternalCmdbApi为true,才调用这些接口\n const externalPostSearchV3 = useProvider(\n \"easyops.api.cmdb.topo_center@ProxyPostSearchV3:1.0.1\",\n { cache: false }\n );\n const externalGetIdMapName = useProvider(\n \"easyops.api.cmdb.topo_center@ProxyGetIdMapName:1.0.1\",\n { cache: false }\n );\n const externalFieldsProvider = useProvider(\n \"easyops.api.cmdb.topo_center@ProxyGetListDisplayView:1.0.0\",\n { cache: false }\n );\n const externalUpdateFieldsProvider = useProvider(\n \"easyops.api.cmdb.topo_center@ProxyUpdateListDisplayView:1.0.0\",\n { cache: false }\n );\n\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 if (props.useExternalCmdbApi) {\n idNameMap = await externalGetIdMapName.query([\n {\n parentObjectId: modelData.objectId,\n sourceId: props.externalSourceId,\n },\n ]);\n } else {\n idNameMap = await CmdbObjectApi_getIdMapName({\n parentObjectId: modelData.objectId,\n } as any);\n }\n props.showFilterInstanceSource &&\n jsonLocalStorage.setItem(`instances-sources-objectId-name-map`, {\n parentObjectId: modelData.objectId,\n query: props.presetConfigs?.query,\n idNameMap,\n });\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 // 针对 显示字段,默认优先拿排序的字段,再去拿属性字段\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 ).concat(modelData.view.hide_columns || []);\n const sortFields = modelData.view.attr_order || [];\n const allFields = [\n ...new Set([...sortFields, ...map(modelData.attrList, \"id\")]),\n ];\n const fieldIds: string[] = difference(allFields, ignoredFields).slice(0, 8);\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 // istanbul ignore next\n\n const getFieldsAsync = async () => {\n let sort = props.sort;\n let fieldIds = props.presetConfigs?.fieldIds;\n const sortType = modelData?.attrList?.find((attr) => attr.id === sort)\n ?.value?.default_type;\n let asc, sortFields;\n let backendDefaultFields;\n if (props.asc === true) {\n asc = [\"series-number\", \"auto-increment-id\"].includes(sortType) ? 2 : 1;\n } else {\n asc = [\"series-number\", \"auto-increment-id\"].includes(sortType) ? -2 : -1;\n }\n if (props.useExternalCmdbApi) {\n sortFields = (\n (await externalFieldsProvider.query([\n { object_id: props.objectId, sourceId: props.externalSourceId },\n ])) as {\n sortFields: ISortField[];\n object_id: string;\n }\n ).sortFields;\n } else {\n // 获取用户配置的显示列\n const returnData = (await fieldsProvider.query([props.objectId])) as {\n sortFields: ISortField[];\n object_id: string;\n defaultSortFields: ISortField[];\n };\n sortFields = returnData.sortFields;\n backendDefaultFields = returnData.defaultSortFields;\n }\n const extraFixedFieldIds = props.extraFixedFields ?? [];\n if (isEmpty(fieldIds)) {\n fieldIds = sortFields.map((item) => item.field);\n if (isEmpty(sort) || isEmpty(asc)) {\n const orderField = sortFields.find((item) => item.order !== 0);\n if (orderField) {\n sort = orderField.field;\n asc = orderField.order;\n }\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, sort, asc, sortFields, backendDefaultFields };\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 sortFields: [],\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 objectIdQuery: props.objectIdQuery,\n filterInstanceSource: props.filterInstanceSource,\n instanceSourcePopoverVisible: false,\n inited: false,\n loading: false,\n failed: false,\n isAdvancedSearchVisible: false,\n fieldIds: props.saveFieldsBackend ? [] : getFields(),\n presetConfigsQuery: props.presetConfigs?.query,\n autoBreakLine: false,\n appSearchInstanceId: \"\",\n currentChangeSelect: \"App\",\n appSelectValue: \"\",\n clusterValue: \"all\",\n appList: [],\n clusterList: [\n {\n instanceId: \"all\",\n name: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.ALL_CLUSTER}`),\n },\n ],\n searchByApp: false,\n backendDefaultFields: [],\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 // useExternalCmdbApi为true,外部接口参数\n const externalRequestParams = useMemo(() => {\n return {\n objectId: props.objectId,\n sourceId: props.externalSourceId,\n };\n }, [props.objectId, props.externalSourceId]);\n\n const getInstanceListData = async (\n sort: string,\n asc: boolean,\n page: number\n ): Promise<InstanceApi_PostSearchV3ResponseBody> => {\n const data: InstanceApi_PostSearchRequestBody = {};\n const v3Data: InstanceApi_PostSearchV3RequestBody = {\n fields: props?.extraFixedFields\n ? uniq([\"instanceId\"].concat(props?.extraFixedFields))\n : [\"instanceId\"],\n };\n if (!isEmpty(props.permission)) {\n v3Data.permission = data.permission = props.permission;\n }\n\n const archiveData: instanceArchiveRequestBody = {};\n let query: Record<string, any> = {};\n\n v3Data.page = data.page = archiveData.page = page;\n v3Data[\"page_size\"] =\n data[\"page_size\"] =\n archiveData[\"page_size\"] =\n 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 (state.q && props.useInstanceArchiveProvider) {\n archiveData.key_word = state.q;\n }\n if (!isEmpty(state.aq)) {\n query[LogicalOperators.And] = state.aq;\n }\n\n if (!isEmpty(props.defaultQuery)) {\n query[LogicalOperators.And] = [\n ...(query[LogicalOperators.And] || []),\n ...props.defaultQuery,\n ];\n }\n if (props.presetConfigs) {\n if (!isEmpty(props.presetConfigs.query)) {\n if (Object.keys(query).length) {\n query = {\n $and: [query, props.presetConfigs.query],\n };\n } else {\n query = props.presetConfigs.query;\n }\n }\n }\n if (state.fieldIds) {\n data.fields = Object.fromEntries(\n state.fieldIds.map((fieldId) => [fieldId, true])\n );\n v3Data.fields = [...state.fieldIds, ...v3Data.fields];\n (v3Data as any).ignore_missing_field_error = true;\n }\n if (props.useAutoDiscoveryProvider) {\n v3Data.fields = joinRelationFieldAndShowkey(\n v3Data.fields,\n modelData,\n props.objectList\n );\n }\n if (props.useInstanceArchiveProvider) {\n archiveData.fields = v3Data.fields.join(\",\");\n }\n if (state.aliveHosts && props.objectId === \"HOST\") {\n query = { ...query, _agentStatus: \"正常\" };\n }\n if (state.instanceSourceQuery) {\n query = { ...query, _object_id: state.instanceSourceQuery };\n }\n\n if (!isEmpty(query)) {\n v3Data.query = data.query = query;\n }\n // useAutoDiscoveryProvider=true, 使用useProvider的接口,请求参数里加上extraParams\n\n if (props.useAutoDiscoveryProvider && !isEmpty(props.extraParams)) {\n Object.assign(v3Data, props.extraParams);\n }\n if (state.relatedToMe) {\n v3Data.only_my_instance = data.only_my_instance = state.relatedToMe;\n }\n //按应用筛选\n // istanbul ignore next (state is not updated)\n if (state.searchByApp) {\n const hostRange = props.presetConfigs?.query?.[\"$and\"]?.find(\n (i: any) => i.instanceId\n )?.instanceId?.[\"$in\"];\n v3Data.query = {\n [state.currentChangeSelect === \"App\" ||\n (state.currentChangeSelect === \"Cluster\" &&\n state.clusterValue === \"all\")\n ? \"_deviceList_CLUSTER.appId.instanceId\"\n : \"_deviceList_CLUSTER.instanceId\"]: state.appSearchInstanceId,\n ...(!isEmpty(hostRange) && props.limitInstanceRange\n ? {\n instanceId: { $in: hostRange },\n }\n : {}),\n ...(state.aliveHosts && props.objectId === \"HOST\"\n ? { _agentStatus: \"正常\" }\n : {}),\n };\n }\n if (props.useInstanceArchiveProvider) {\n return instanceArchiveListProvider.query([props.objectId, archiveData]);\n }\n const promise = props.onSearchExecute?.(data, v3Data);\n // useAutoDiscoveryProvider=true, 使用useProvider的接口\n // useExternalCmdbApi= true 使用外部接口externalPostSearchV3\n return promise\n ? promise\n : props.useExternalCmdbApi\n ? externalPostSearchV3.query([\n {\n ...v3Data,\n ...externalRequestParams,\n },\n ])\n : props.useAutoDiscoveryProvider\n ? listProvider.query([props.objectId, v3Data])\n : props.ignorePermission\n ? ignorePermissionProvider.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 // 为了接口报错,不把整页面列干掉,去掉 failed: true 这个逻辑\n setState({\n idObjectMap: idObjectMap,\n instanceListData: [] as InstanceApi_PostSearchV3ResponseBody,\n });\n } finally {\n setState({ inited: true, loading: false });\n }\n };\n // const [fieldIds,setFieldIds] = useState([]);\n // istanbul ignore next\n useEffect(() => {\n if (props.saveFieldsBackend) {\n const getFieldIds = async () => {\n const fieldConfig = await getFieldsAsync();\n const { fieldIds, sort, asc, sortFields, backendDefaultFields } =\n fieldConfig;\n if (\n // 当 props.objectId 改变时,总是更新 state.fieldIds\n props.objectId !== state.objectId ||\n !isEqual(fieldIds, state.fieldIds) ||\n !isEqual(props.presetConfigs?.query, state.presetConfigsQuery)\n )\n setState({\n fieldIds,\n presetConfigsQuery: props.presetConfigs?.query,\n sort,\n asc: [1, 2].includes(asc) ? true : false,\n sortFields,\n backendDefaultFields,\n });\n };\n getFieldIds();\n } else {\n const fieldIds = getFields();\n if (\n // 当 props.objectId 改变时,总是更新 state.fieldIds\n props.objectId !== state.objectId ||\n !isEqual(fieldIds, state.fieldIds) ||\n !isEqual(props.presetConfigs?.query, state.presetConfigsQuery)\n ) {\n setState({\n fieldIds,\n presetConfigsQuery: props.presetConfigs?.query,\n });\n }\n }\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 useEffect(() => {\n setQ(props.q);\n setState({ q: props.q });\n }, [props.q]);\n\n // on other condition change\n useEffect(() => {\n if (isEmpty(state.fieldIds)) return;\n refreshInstanceList(state.sort, state.asc, state.page);\n }, [\n state.page,\n state.sort,\n state.asc,\n state.fieldIds,\n state.appSearchInstanceId,\n state.currentChangeSelect,\n state.searchByApp,\n props.dataSource,\n state.presetConfigsQuery,\n props.updateDataTime,\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 page: 1,\n };\n // useExternalCmdbApi为true,使用外部接口PostSearchV3\n if (props.useExternalCmdbApi) {\n resp = await externalPostSearchV3.query([\n {\n ...params,\n ...externalRequestParams,\n },\n ]);\n } else if (props.useAutoDiscoveryProvider) {\n // useAutoDiscoveryProvider=true, 使用useProvider的接口,虽然这里列表用不到选择功能,但还是加上保持统一\n resp = await listProvider.query([\n props.objectId,\n Object.assign(params, props.extraParams),\n ]);\n } else if (props.ignorePermission) {\n resp = await ignorePermissionProvider.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 async (info: ReadSortingChangeDetail, sortFields?: ISortField[]) => {\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 // istanbul ignore next\n if (\n props.saveFieldsBackend &&\n sortFields.find((item) => item.field === info.sort)\n ) {\n try {\n const oldsortFields = sortFields;\n const sortType = modelData?.attrList?.find((attr) => attr.id === sort)\n ?.value?.default_type;\n const newSortFields = updateSortFields(oldsortFields, info, sortType);\n setState({\n sortFields: newSortFields,\n });\n if (props.useExternalCmdbApi) {\n await externalUpdateFieldsProvider.query([\n {\n object_id: props.objectId,\n sourceId: props.externalSourceId,\n sortFields: newSortFields,\n },\n ]);\n } else {\n await updateFieldsProvider.query([\n props.objectId,\n { sortFields: newSortFields },\n ]);\n }\n } catch (e) {\n handleHttpError;\n }\n }\n // istanbul ignore next\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 let appListResp: any;\n const params: any = {\n fields: [\"clusters\", \"instanceId\", \"name\"],\n sort: [{ key: \"name\", order: 1 }],\n page: 1,\n page_size: 3000,\n ...(props.useExternalCmdbApi ? externalRequestParams : {}),\n };\n // useExternalCmdbApi为true,使用外部接口PostSearchV3\n if (props.useExternalCmdbApi) {\n appListResp = await externalPostSearchV3.query([params]);\n } else {\n appListResp = await InstanceApi_postSearchV3(\"APP\", params);\n }\n\n setState({\n appSearchInstanceId: appListResp.list?.[0].instanceId || \"\",\n appList: appListResp.list,\n clusterList: [...baseList, ...(appListResp.list?.[0].clusters || [])],\n searchByApp: true,\n appSelectValue: appListResp.list?.[0].instanceId || \"\",\n clusterValue: \"all\",\n page: 1,\n });\n } else {\n setState({ searchByApp: false, page: 1 });\n }\n }, [state.searchByApp]);\n // istanbul ignore next (state is not updated)\n const appSelectChange = (v: string) => {\n setState({\n appSearchInstanceId: v,\n currentChangeSelect: \"App\",\n appSelectValue: v,\n clusterValue: \"all\",\n clusterList: [\n ...baseList,\n ...state.appList.find((r) => r.instanceId === v).clusters,\n ],\n });\n };\n // istanbul ignore next (state is not updated)\n const clusterSelectChange = (v: string) => {\n setState({\n appSearchInstanceId: v === \"all\" ? state.appSelectValue : v,\n currentChangeSelect: \"Cluster\",\n clusterValue: v,\n });\n };\n\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 // istanbul ignore next\n // 管理员点击恢复默认按钮是恢复到模型的前N个字段\n // 普通用户点击恢复默认按钮是恢复到 1.管理员设置的默认显示 2.管理员未设置时取前N个\n if (\n !getAuth().isAdmin &&\n props.saveFieldsBackend &&\n !props.useExternalCmdbApi &&\n state.backendDefaultFields &&\n state.backendDefaultFields?.length > 0\n ) {\n // 后台接口返回的默认字段(1. admin用户设置的,2. 前N个)\n defaultFields = compact(\n state.backendDefaultFields?.map((s) => s.field)\n );\n } else {\n defaultFields = computeDefaultFields().fieldIds;\n }\n }\n if (!isEmpty(extraFixedFieldIds)) {\n defaultFields = uniq([...defaultFields, ...extraFixedFieldIds]);\n }\n return defaultFields;\n }, [props.presetConfigs, modelData, state.backendDefaultFields]);\n\n // istanbul ignore next\n const handleConfirm = async ({\n fields,\n isReset,\n isAdminSetDisplay,\n }: DisplaySettingsModalData) => {\n if (isReset) {\n // 恢复默认操作\n const fieldIds = defaultFields;\n modelData.isAbstract && fieldIds.push(\"_object_id\");\n if (props.saveFieldsBackend) {\n const sortFields = mergeFields(state.sortFields, fieldIds);\n if (props.useExternalCmdbApi) {\n await externalUpdateFieldsProvider.query([\n {\n object_id: props.objectId,\n sourceId: props.externalSourceId,\n sortFields,\n },\n ]);\n } else {\n await updateFieldsProvider.query([props.objectId, { sortFields }]);\n }\n setState({ fieldIds, sortFields });\n props.onFieldsModalConfirm(fieldIds);\n } else {\n jsonLocalStorage.removeItem(`${modelData.objectId}-selectAttrIds`);\n setState({ fieldIds });\n props.onFieldsModalConfirm(fieldIds);\n }\n } else {\n if (!isAdminSetDisplay) {\n // 点击确定按钮触发\n if (props.saveFieldsBackend) {\n try {\n const sortFields = mergeFields(state.sortFields, fields);\n if (props.useExternalCmdbApi) {\n await externalUpdateFieldsProvider.query([\n {\n object_id: props.objectId,\n sourceId: props.externalSourceId,\n sortFields,\n },\n ]);\n } else {\n await updateFieldsProvider.query([\n props.objectId,\n { sortFields },\n ]);\n }\n setState({\n fieldIds: _sortFieldIds(fields),\n sortFields,\n });\n } catch (e) {\n handleHttpError(e);\n }\n } else {\n setState({\n fieldIds: _sortFieldIds(fields),\n });\n jsonLocalStorage.setItem(\n `${modelData.objectId}-selectAttrIds`,\n fields\n );\n }\n props.onFieldsModalConfirm(fields);\n } else {\n // 点击【默认显示】按钮触发,不影响当前列表显示。\n try {\n const sortFields = mergeFields(state.sortFields, fields);\n await updateFieldsProvider.query([\n props.objectId,\n { sortFields: sortFields, isDefault: true },\n ]);\n } catch (e) {\n handleHttpError(e);\n }\n }\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 v3Data.page = 1;\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: any;\n // useExternalCmdbApi为true,使用外部接口PostSearchV3\n if (props.useExternalCmdbApi) {\n resp = await externalPostSearchV3.query([\n {\n ...v3Data,\n ...externalRequestParams,\n },\n ]);\n } else if (props.useAutoDiscoveryProvider) {\n resp = await listProvider.query([props.objectId, v3Data]);\n } else {\n resp = await InstanceApi_postSearchV3(props.objectId, v3Data);\n }\n resp.list.forEach((i: Record<string, any>) =>\n cache.current.set(i.instanceId, i)\n );\n })();\n }, [props.selectedRowKeys]);\n const handleToggleFixHeader = () => {\n setFixHeader(!fixedHeader);\n };\n const onAdvancedSearchCloseGen = (attrId: string, valuesStr: string) => {\n return () => {\n const queries: Query[] = [];\n const queriesToShow: Query[] = [];\n const filterAq = (queries: any[]) =>\n queries.filter((v: any) => isValueEqualFn(v, attrId, valuesStr));\n state.aq.forEach((query) => {\n const key = Object.keys(query)[0];\n if (\n (key === \"$or\" || key === \"$and\") &&\n Object.keys((query[key] as Query[])[0])[0] === attrId\n ) {\n const filteredSubQueries = filterAq(query[key] as Query[]);\n if (filteredSubQueries.length > 0) {\n queries.push({\n [key]: filteredSubQueries,\n });\n }\n } else if (key !== attrId && !startsWith(attrId, `${key}.`)) {\n // $exists $gte $lte 针对为空,不为空,时间范围特殊处理\n if (!Array.isArray(query[key]) && isSpecialFn(query, key)) {\n queries.push(query);\n } else {\n const fieldId = Object.keys((query[key] as Query[])[0])[0];\n // 判断是否为结构体\n const isStruct = isOfStruct(modelData, fieldId);\n // 结构体情况处理\n if (\n !(\n (key === \"$or\" || key === \"$and\") &&\n startsWith(fieldId, `${attrId}.`) &&\n isStruct\n )\n ) {\n queries.push(query);\n }\n }\n } else if (\n props.isInstanceFilterForm &&\n key === attrId &&\n isValueEqualFn(query, attrId, valuesStr)\n ) {\n specialQueryHandler(query, key, queries);\n }\n });\n state.aqToShow.forEach((query) => {\n const key = Object.keys(query)[0];\n if (\n (key === \"$or\" || key === \"$and\") &&\n Object.keys((query[key] as Query[])[0])[0] === attrId\n ) {\n const filteredSubQueries = filterAq(query[key] as Query[]);\n if (filteredSubQueries.length > 0) {\n queriesToShow.push({\n [key]: filteredSubQueries,\n });\n }\n } else if (key !== attrId) {\n queriesToShow.push(query);\n } else if (\n props.isInstanceFilterForm &&\n key === attrId &&\n isValueEqualFn(query, attrId, valuesStr)\n ) {\n specialQueryHandler(query, key, queriesToShow);\n }\n });\n setState({\n aq: queries,\n aqToShow: queriesToShow,\n });\n props.onAdvancedSearch?.(queries);\n };\n };\n\n const onFilterInstanceSourceChange = (checked: boolean): void => {\n setState({ filterInstanceSource: checked });\n props.onFilterInstanceSourceChange?.(checked);\n };\n\n const onFilterObjectIdChange = (objectIdQuery: any): void => {\n setState({ objectIdQuery: objectIdQuery });\n props.onFilterObjectIdChange?.(objectIdQuery);\n };\n\n const onPopoverVisibleChange = (visible: boolean): void => {\n setState({ instanceSourcePopoverVisible: visible });\n };\n\n const conditions = translateConditions(\n state.aqToShow,\n idObjectMap,\n modelData\n );\n\n useEffect(() => {\n if (props.showFilterInstanceSource) {\n const aq = initAqToShow(props.aq, modelData, false);\n const aqToShow = props.aqToShow || initAqToShow(props.aq, modelData);\n setState({ aq, aqToShow });\n }\n }, [props.aq, props.aqToShow, props.showFilterInstanceSource]);\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 placeholder={props.placeholder}\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.extraOperateBricks?.useBrick && (\n <BrickAsComponent\n useBrick={props.extraOperateBricks.useBrick}\n />\n )}\n {props.showFilterInstanceSource && (\n <FilterInstanceSource\n visible={state.instanceSourcePopoverVisible}\n checked={state.filterInstanceSource}\n onPopoverVisibleChange={onPopoverVisibleChange}\n onIconClicKChange={onFilterInstanceSourceChange}\n onChange={onFilterObjectIdChange}\n inheritanceModelIdNameMap={inheritanceModelIdNameMap}\n value={state.objectIdQuery}\n jsonLocalStorage={jsonLocalStorage}\n isAbstract={modelData.isAbstract}\n />\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 useExternalCmdbApi={props.useExternalCmdbApi}\n saveFieldsBackend={props.saveFieldsBackend}\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={(info: any) => {\n onSortingChange(info, state.sortFields);\n }}\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 onColumnsChange={props.onColumnsChange}\n useExternalCmdbApi={props.useExternalCmdbApi}\n externalSourceId={props.externalSourceId}\n />\n )}\n </React.Fragment>\n ) : (\n // 加个空白的div是为了将loading效果撑起来\n <div className={styles.virtualLoading}></div>\n )}\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 const externalGetObjectRef = useProvider(\n \"easyops.api.cmdb.topo_center@ProxyGetObjectRef:1.0.0\",\n { cache: false }\n );\n\n useEffect(() => {\n if (props.objectList?.length) {\n setObjectList(props.objectList);\n } else {\n (async () => {\n const cacheData = objectListCache.get(props.objectId);\n if (cacheData) {\n setObjectList(cacheData);\n } else {\n try {\n let list;\n if (props.useExternalCmdbApi) {\n list = await externalGetObjectRef.query([\n {\n ref_object: props.objectId,\n sourceId: props.externalSourceId,\n },\n ]);\n } else {\n list = (\n await CmdbObjectApi_getObjectRef({ ref_object: props.objectId })\n ).data;\n }\n setObjectList(list);\n objectListCache.set(props.objectId, list);\n } catch (e) {\n // istanbul ignore next\n handleHttpError(e);\n }\n }\n })();\n }\n }, [props.objectId, props.objectList]);\n\n if (\n !objectList ||\n !objectList.find((item) => item.objectId === props.objectId)\n )\n return null;\n\n return <LegacyInstanceList {...props} objectList={objectList} />;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"InstanceList.js","names":["joinRelationFieldAndShowkey","fields","modelData","objectList","attrIdMap","keyBy","attrList","map","field","relation","relation_list","find","left_id","right_id","isLeft","left_object_id","objectId","otherSideObjectId","right_object_id","otherSideObject","object","showKey","view","show_key","getQuery","idObjectMap","q","onlySearchByIp","query","$or","queryValues","trim","split","searchIpFields","getRuntime","getCurrentApp","config","queryOrs","Set","searchValue","$like","forEach","key","push","forEachAvailableFields","attr","queryValue","id","sides","this","nameKeys","getInstanceNameKeys","that","nameKey","isSpecialFn","attrId","Object","keys","some","v","specialQueryHandler","queries","isSpecial","isValueEqualFn","valuesStr","values","join","mergeFields","oldFields","newFieldIds","existField","f","order","updateSortFields","sortInfo","sortType","asc","sort","isNil","includes","item","translateConditions","aq","t","conditions","relations","sidesArr","isSelfRelation","getRelationObjectSides","relationObject","nameOfNameKey","name","value","type","relationSideId","attrAndRelationList","isEmpty","ElementOperators","Exists","changeQueryWithCustomRules","info","getFieldConditionsAndValues","undefined","ConditionType","Between","Empty","NotEmpty","False","True","currentCondition","isString","replace","condition","label","curCondition","queryValuesStr","every","isEqual","omit","newKey","fieldIds","length","isOfStruct","fieldId","structFields","filter","structs","struct_define","struct","flat","isOfBoolean","keyAttrMap","ModelAttributeValueType","BOOLEAN","initAqToShow","isToShow","newAqToShow","aqToShow","entries","expressions","newExpressions","LogicalOperators","Or","And","firstSubQuery","isStruct","isBool","structQueries","expression","structExpressions","boolExpressions","targetValue","LegacyInstanceList","props","showTooltip","baseList","instanceId","i18n","NS_LIBS_CMDB_INSTANCES","K","ALL_CLUSTER","jsonLocalStorage","JsonStorage","localStorage","reducer","prevState","updatedProperty","listProvider","useProvider","cache","instanceArchiveListProvider","ignorePermissionProvider","fieldsProvider","updateFieldsProvider","onError","error","externalPostSearchV3","externalGetIdMapName","externalFieldsProvider","externalUpdateFieldsProvider","useMemo","disabledDefaultFields","union","extraFieldAttrs","inheritanceModelIdNameMap","setInheritanceModelIdNameMap","useState","fixedHeader","setFixHeader","fetchInheritanceModelIdNameMap","idNameMap","isAbstract","useExternalCmdbApi","parentObjectId","sourceId","externalSourceId","CmdbObjectApi_getIdMapName","showFilterInstanceSource","setItem","presetConfigs","useEffect","computeDefaultFields","inModal","settings","CMDB_MODAL_FIELDS_SETTINGS","CMDB_RESOURCE_FIELDS_SETTINGS","ignoredFields","concat","hide_columns","sortFields","attr_order","allFields","difference","slice","_sortFieldIds","frontFields","restFields","sortBy","reject","foundIndex","findIndex","orderId","getFieldsAsync","default_type","backendDefaultFields","object_id","returnData","defaultSortFields","extraFixedFieldIds","extraFixedFields","orderField","uniq","extraDisabledField","hideModelData","getFields","getItem","setQ","state","setState","useReducer","instanceSourceQuery","page","dataSource","pageSize","aliveHosts","relatedToMe","objectIdQuery","filterInstanceSource","instanceSourcePopoverVisible","inited","loading","failed","isAdvancedSearchVisible","saveFieldsBackend","presetConfigsQuery","autoBreakLine","appSearchInstanceId","currentChangeSelect","appSelectValue","clusterValue","appList","clusterList","searchByApp","selectedRowKeys","setSelectedRowKeys","useRef","Map","isFirstRunRef","externalRequestParams","getInstanceListData","data","v3Data","permission","archiveData","useInstanceArchiveProvider","key_word","defaultQuery","$and","fromEntries","ignore_missing_field_error","useAutoDiscoveryProvider","_agentStatus","_object_id","extraParams","assign","only_my_instance","hostRange","i","limitInstanceRange","$in","promise","onSearchExecute","ignorePermission","InstanceApi_postSearchV3","refreshInstanceList","instanceListData","hideInstanceList","list","current","set","e","handleHttpError","getFieldIds","fieldConfig","skip","onPaginationChange","updateDataTime","onChange","target","onSelectionChange","useCallback","selected","selectedItems","selectedKeys","compact","ids","has","resp","params","page_size","get","onSearch","onAdvancedSearch","queriesToShow","fieldToShow","onSortingChange","oldsortFields","newSortFields","pagination","onInstanceSourceChange","onRelatedToMeChange","checked","onAliveHostsChange","toggleAutoBreakLine","toggleSearchMode","React","appListResp","clusters","appSelectChange","r","clusterSelectChange","defaultFields","s","handleConfirm","isReset","isAdminSetDisplay","onFieldsModalConfirm","removeItem","isDefault","message","success","SET_DEFAULT_DISPLAY_SUCCESS","notifyCurrentFields","handleToggleFixHeader","onAdvancedSearchCloseGen","filterAq","filteredSubQueries","startsWith","Array","isArray","isInstanceFilterForm","onFilterInstanceSourceChange","onFilterObjectIdChange","onPopoverVisibleChange","visible","searchDisabled","advancedSearchDisabled","relatedToMeDisabled","aliveHostsDisabled","moreButtonsDisabled","styles","instanceListToolbar","searchRelated","placeholder","marginLeft","marginRight","ADVANCED_SEARCH","width","options","CHOSEN_OPTIONS","count","CLEAR","extraOperateBricks","useBrick","enableSearchByApp","FREE_SELECTION","APP_SELECTION","fixAliveHosts","NORMAL_HOST","RELATED_TO_ME","showHiddenInfoDisabled","DISPLAY_OMITTED_INFORMATION","showFixedHeader","marginBottom","autoSearch","hideSearchConditions","searchConditions","CURRENT_FILTER_REQUIREMENTS","FUZZY_SEARCH","INSTANCE_SOURCE_TAG_TEXT","uniqueId","extraFilterBricks","detailUrlTemplates","selectDisabled","sortDisabled","propertyDisplayConfigs","onClickItem","onClickItemV2","filterInstanceSourceDisabled","relationLinkDisabled","pageSizeOptions","showSizeChanger","extraColumns","ipCopy","separatorUsedInRelationData","rowSelectionType","onColumnsChange","virtualLoading","InstanceList","setObjectList","externalGetObjectRef","cacheData","objectListCache","ref_object","CmdbObjectApi_getObjectRef"],"sources":["../../../src/instance-list/InstanceList.tsx"],"sourcesContent":["import React, {\n useEffect,\n useReducer,\n useState,\n useRef,\n useMemo,\n useCallback,\n} from \"react\";\nimport {\n difference,\n isEmpty,\n isEqual,\n isString,\n map,\n uniq,\n union,\n filter,\n reject,\n sortBy,\n uniqueId,\n findIndex,\n find,\n startsWith,\n compact,\n omit,\n keyBy,\n cloneDeep,\n isNil,\n} from \"lodash\";\nimport {\n BrickAsComponent,\n getRuntime,\n handleHttpError,\n useProvider,\n} from \"@next-core/brick-kit\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport {\n PropertyDisplayConfig,\n ReadPaginationChangeDetail,\n ReadSelectionChangeDetail,\n ReadSortingChangeDetail,\n UseBrickConf,\n} from \"@next-core/brick-types\";\nimport {\n CmdbModels,\n InstanceApi_PostSearchRequestBody,\n InstanceApi_PostSearchV3RequestBody,\n InstanceApi_PostSearchV3ResponseBody,\n InstanceApi_postSearchV3,\n CmdbObjectApi_getIdMapName,\n CmdbObjectApi_getObjectRef,\n} from \"@next-sdk/cmdb-sdk\";\nimport { Icon as LegacyIcon } from \"@ant-design/compatible\";\nimport { Button, Spin, Input, Tag, Select, Popover, message } from \"antd\";\nimport {\n getRelationObjectSides,\n forEachAvailableFields,\n getInstanceNameKeys,\n RelationIdKeys,\n RelationNameKeys,\n RelationObjectIdKeys,\n RelationObjectSides,\n isSelfRelation,\n Query,\n ElementOperators,\n LogicalOperators,\n ComparisonOperators,\n} from \"@next-libs/cmdb-utils\";\nimport { JsonStorage } from \"@next-libs/storage\";\nimport { ModelObjectAttr } from \"@next-sdk/cmdb-sdk/dist/types/model/cmdb\";\n\nimport {\n ConditionType,\n AdvancedSearch,\n getFieldConditionsAndValues,\n MoreButtonsContainer,\n InstanceListTable,\n CustomColumn,\n Field,\n UseBrickAndPropertyDisplayConfig,\n} from \"../instance-list-table\";\nimport styles from \"./InstanceList.module.css\";\nimport {\n extraFieldAttrs,\n CMDB_MODAL_FIELDS_SETTINGS,\n CMDB_RESOURCE_FIELDS_SETTINGS,\n objectListCache,\n} from \"./constants\";\nimport { ModelAttributeValueType } from \"../model-attribute-form-control/ModelAttributeFormControl\";\nimport { IconButton } from \"./IconButton\";\nimport { changeQueryWithCustomRules } from \"../processors\";\nimport { DisplaySettingsModalData } from \"../instance-list-table/DisplaySettingsModal\";\nimport FilterInstanceSource from \"./FilterInstanceSource\";\nimport { ColumnType } from \"antd/lib/table\";\nimport { getAuth } from \"@next-core/brick-kit\";\n\nexport interface instanceArchiveRequestBody {\n // 搜索内容\n key_word?: string;\n /** 页码 */\n page?: number;\n /** 页大小 */\n page_size?: number;\n fields?: string;\n}\ninterface ISortField {\n field: string;\n order: number;\n}\nexport interface InstanceListPresetConfigs {\n query?: Record<string, any>;\n fieldIds?: string[];\n}\nexport function joinRelationFieldAndShowkey(\n fields: string[],\n modelData: Record<string, any>,\n objectList: Record<string, any>[]\n) {\n const attrIdMap = keyBy(modelData.attrList, \"id\");\n return fields.map((field) => {\n if (attrIdMap[field]) {\n return field;\n } else {\n const relation = modelData.relation_list.find(\n (relation: any) =>\n relation.left_id === field || relation.right_id === field\n );\n if (relation) {\n const isLeft = relation.left_object_id === modelData.objectId;\n const otherSideObjectId = isLeft\n ? relation.right_object_id\n : relation.left_object_id;\n const otherSideObject = objectList.find(\n (object) => object.objectId === otherSideObjectId\n );\n const showKey = otherSideObject?.view?.show_key?.[0] ?? \"\";\n return `${field}.${showKey}`;\n } else {\n return field;\n }\n }\n });\n}\n\nexport function getQuery(\n modelData: Partial<CmdbModels.ModelCmdbObject>,\n idObjectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>,\n q: string,\n fields?: string[],\n onlySearchByIp?: boolean\n) {\n const query: Record<string, any> = { $or: [] };\n const queryValues = q.trim().split(/\\s+/);\n if (onlySearchByIp) {\n const searchIpFields =\n (getRuntime().getCurrentApp().config?.searchIpFields as string[]) || [];\n const queryOrs = [...new Set([\"ip\", ...searchIpFields])];\n const searchValue = { $like: `%${q.trim()}%` };\n queryOrs.forEach((key) => {\n query.$or.push({ [key]: searchValue });\n });\n return query;\n }\n forEachAvailableFields(\n modelData,\n (attr) => {\n queryValues.forEach((queryValue) =>\n query.$or.push({ [attr.id]: { $like: `%${queryValue}%` } })\n );\n },\n (relation, sides) => {\n const id = relation[`${sides.this}_id` as RelationIdKeys];\n const nameKeys = getInstanceNameKeys(\n idObjectMap[relation[`${sides.that}_object_id` as RelationObjectIdKeys]]\n );\n\n queryValues.forEach((queryValue) => {\n nameKeys.forEach((nameKey) => {\n query.$or.push({\n [`${id}.${nameKey}`]: { $like: `%${queryValue}%` },\n });\n });\n });\n },\n fields\n );\n\n return query;\n}\n\nexport const isSpecialFn = (query: any, attrId: string) => {\n return Object.keys(query[attrId] as Query[]).some(\n (v) => v === \"$exists\" || v === \"$gte\" || v === \"$lte\"\n );\n};\n\nexport const specialQueryHandler = (query: any, key: any, queries: Query[]) => {\n // $exists $gte $lte 针对为空,不为空,时间范围特殊处理\n const isSpecial = isSpecialFn(query, key);\n if (isSpecial) {\n return;\n }\n queries.push(query);\n};\n\nexport const isValueEqualFn = (\n query: any,\n attrId: string,\n valuesStr?: string\n) => {\n const isSpecial = isSpecialFn(query, attrId);\n if (isSpecial) return false;\n return query[attrId]\n ? valuesStr && Object.values(query[attrId]).join(\" \") !== valuesStr // 当条件是为空和不为空时,需要判断valuesStr是否存在\n : false;\n};\nexport function mergeFields(\n oldFields: ISortField[],\n newFieldIds: string[]\n): ISortField[] {\n return newFieldIds.map((field) => {\n const existField = oldFields.find((f) => f.field === field);\n const order = existField ? existField.order : 0;\n return { field, order };\n });\n}\nexport function updateSortFields(\n oldFields: ISortField[],\n sortInfo: { asc?: boolean; sort?: string },\n sortType?: string\n): ISortField[] {\n const { asc, sort } = sortInfo;\n const order = isNil(asc)\n ? 0\n : [\"series-number\", \"auto-increment-id\"].includes(sortType)\n ? asc\n ? 2\n : -2\n : asc\n ? 1\n : -1;\n return oldFields.map((item) => {\n if (item.field === sort) {\n item.order = order;\n } else {\n item.order = 0;\n }\n return item;\n });\n}\n\nexport function 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\nexport interface filterObjectIdQuery {\n objectId?: string;\n objectName?: string;\n query?: Record<string, string>;\n checked?: boolean;\n}\n\ninterface InstanceListProps {\n objectId: string;\n objectList?: Partial<CmdbModels.ModelCmdbObject>[];\n detailUrlTemplates?: Record<string, string>;\n presetConfigs?: InstanceListPresetConfigs;\n permission?: string[];\n q?: string;\n searchDisabled?: boolean;\n sortDisabled?: boolean;\n aq?: Query[];\n aqToShow?: Query[];\n advancedSearchDisabled?: boolean;\n page?: number;\n pageSize?: number;\n sort?: string;\n asc?: boolean;\n relatedToMe?: boolean;\n relatedToMeDisabled?: boolean;\n showHiddenInfoDisabled?: boolean;\n moreButtonsDisabled?: boolean;\n aliveHosts?: boolean;\n fixAliveHosts?: boolean;\n aliveHostsDisabled?: boolean;\n propertyDisplayConfigs?: UseBrickAndPropertyDisplayConfig[];\n selectedRowKeys?: string[];\n selectDisabled?: boolean;\n pageSizeOptions?: string[];\n showSizeChanger?: boolean;\n filterInstanceSourceDisabled?: boolean;\n instanceSourceQuery?: string;\n isInstanceFilterForm?: boolean;\n onSearchExecute?(\n data: InstanceApi_PostSearchRequestBody,\n v3Data: InstanceApi_PostSearchV3RequestBody\n ): Promise<InstanceApi_PostSearchV3ResponseBody> | void;\n onSearch?(value: string): void;\n onAdvancedSearch?(queries: Query[]): void;\n onClickItem?(\n evt: React.MouseEvent<HTMLAnchorElement, MouseEvent>,\n id: string\n ): void;\n onClickItemV2?(\n evt: React.MouseEvent<HTMLAnchorElement, MouseEvent>,\n record: Record<string, any>\n ): void;\n onPaginationChange?(pagination: ReadPaginationChangeDetail): void;\n onSortingChange?(sorting: ReadSortingChangeDetail): void;\n onSelectionChange?(selection: ReadSelectionChangeDetail): void;\n onRelatedToMeChange?(value: boolean): void;\n onAliveHostsChange?(value: boolean): void;\n onInstanceSourceChange?(instanceResource: string): void;\n onFieldsModalConfirm?(fields: Record<string, any>): void;\n relationLinkDisabled?: boolean;\n notifyCurrentFields?: (fiels: string[]) => void;\n defaultQuery?: { [fieldId: string]: any }[];\n extraFilterBricks?: {\n useBrick: UseBrickConf;\n };\n extraColumns?: CustomColumn[];\n extraDisabledField?: string;\n hideSearchConditions?: boolean;\n onlySearchByIp?: boolean;\n target?: string;\n ipCopy?: boolean;\n enableSearchByApp?: boolean;\n dataSource?: {\n list: Record<string, any>[];\n total?: number;\n page?: number;\n pageSize?: number;\n };\n separatorUsedInRelationData?: string;\n hideInstanceList?: boolean;\n autoSearch?: (fields: Field[]) => void;\n disabledDefaultFields?: boolean;\n showTooltip?: boolean;\n showFixedHeader?: boolean;\n rowSelectionType?: \"checkbox\" | \"radio\";\n useAutoDiscoveryProvider?: boolean;\n extraParams?: Record<string, any>;\n // 指定固定显示的field,与presetConfigs的fieldIds同时生效\n extraFixedFields?: string[];\n // 如果在presetConfigs的query参数中指定了资源的范围,“按应用筛选”的功能是否也要限定资源的范围\n limitInstanceRange?: boolean;\n useInstanceArchiveProvider?: boolean;\n placeholder?: string;\n extraOperateBricks?: {\n useBrick: UseBrickConf;\n };\n updateDataTime?: number;\n // 是否开启实例来源筛选\n showFilterInstanceSource?: boolean;\n filterInstanceSource?: boolean;\n onFilterInstanceSourceChange?(value: boolean): void;\n onFilterObjectIdChange?(query: filterObjectIdQuery): void;\n objectIdQuery?: string;\n ignorePermission?: boolean;\n saveFieldsBackend?: boolean;\n onColumnsChange?: (columns: ColumnType<{ dataIndex: string }>[]) => void;\n useExternalCmdbApi?: boolean;\n externalSourceId?: 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 presetConfigsQuery?: Record<string, any>;\n filterInstanceSource?: boolean;\n objectIdQuery?: string;\n instanceSourcePopoverVisible?: boolean;\n sortFields?: { field: string; order: number }[];\n backendDefaultFields?: { field: string; order: number }[];\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(\n \"easyops.api.cmdb.job@SearchResource:1.0.1\",\n { cache: false }\n );\n const instanceArchiveListProvider = useProvider(\n \"providers-of-cmdb.instance-archive-api-list-archive-instance\",\n {\n cache: false,\n }\n );\n const ignorePermissionProvider = useProvider(\n \"easyops.api.cmdb.instance@PostSearchV3WithAdmin:1.0.0\",\n { cache: false }\n );\n // istanbul ignore next\n\n const fieldsProvider = useProvider(\n \"easyops.api.cmdb.instance@GetListDisplayView:1.0.1\",\n { cache: false }\n );\n\n // istanbul ignore next\n const updateFieldsProvider = useProvider(\n \"easyops.api.cmdb.instance@UpdateListDisplayView:1.0.0\",\n {\n cache: false,\n onError: (error) => {\n // istanbul ignore next\n throw error;\n },\n }\n );\n\n // 用于外部调用的接口, 当useExternalCmdbApi为true,才调用这些接口\n const externalPostSearchV3 = useProvider(\n \"easyops.api.cmdb.topo_center@ProxyPostSearchV3:1.0.1\",\n { cache: false }\n );\n const externalGetIdMapName = useProvider(\n \"easyops.api.cmdb.topo_center@ProxyGetIdMapName:1.0.1\",\n { cache: false }\n );\n const externalFieldsProvider = useProvider(\n \"easyops.api.cmdb.topo_center@ProxyGetListDisplayView:1.0.0\",\n { cache: false }\n );\n const externalUpdateFieldsProvider = useProvider(\n \"easyops.api.cmdb.topo_center@ProxyUpdateListDisplayView:1.0.0\",\n { cache: false }\n );\n\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 if (props.useExternalCmdbApi) {\n idNameMap = await externalGetIdMapName.query([\n {\n parentObjectId: modelData.objectId,\n sourceId: props.externalSourceId,\n },\n ]);\n } else {\n idNameMap = await CmdbObjectApi_getIdMapName({\n parentObjectId: modelData.objectId,\n } as any);\n }\n props.showFilterInstanceSource &&\n jsonLocalStorage.setItem(`instances-sources-objectId-name-map`, {\n parentObjectId: modelData.objectId,\n query: props.presetConfigs?.query,\n idNameMap,\n });\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 // 针对 显示字段,默认优先拿排序的字段,再去拿属性字段\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 ).concat(modelData.view.hide_columns || []);\n const sortFields = modelData.view.attr_order || [];\n const allFields = [\n ...new Set([...sortFields, ...map(modelData.attrList, \"id\")]),\n ];\n const fieldIds: string[] = difference(allFields, ignoredFields).slice(0, 8);\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 // istanbul ignore next\n\n const getFieldsAsync = async () => {\n let sort = props.sort;\n let fieldIds = props.presetConfigs?.fieldIds;\n const sortType = modelData?.attrList?.find((attr) => attr.id === sort)\n ?.value?.default_type;\n let asc, sortFields;\n let backendDefaultFields;\n if (props.asc === true) {\n asc = [\"series-number\", \"auto-increment-id\"].includes(sortType) ? 2 : 1;\n } else {\n asc = [\"series-number\", \"auto-increment-id\"].includes(sortType) ? -2 : -1;\n }\n if (props.useExternalCmdbApi) {\n sortFields = (\n (await externalFieldsProvider.query([\n { object_id: props.objectId, sourceId: props.externalSourceId },\n ])) as {\n sortFields: ISortField[];\n object_id: string;\n }\n ).sortFields;\n } else {\n // 获取用户配置的显示列\n const returnData = (await fieldsProvider.query([props.objectId])) as {\n sortFields: ISortField[];\n object_id: string;\n defaultSortFields: ISortField[];\n };\n sortFields = returnData.sortFields;\n backendDefaultFields = returnData.defaultSortFields;\n }\n const extraFixedFieldIds = props.extraFixedFields ?? [];\n if (isEmpty(fieldIds)) {\n fieldIds = sortFields.map((item) => item.field);\n if (isEmpty(sort) || isEmpty(asc)) {\n const orderField = sortFields.find((item) => item.order !== 0);\n if (orderField) {\n sort = orderField.field;\n asc = orderField.order;\n }\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, sort, asc, sortFields, backendDefaultFields };\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 sortFields: [],\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 objectIdQuery: props.objectIdQuery,\n filterInstanceSource: props.filterInstanceSource,\n instanceSourcePopoverVisible: false,\n inited: false,\n loading: false,\n failed: false,\n isAdvancedSearchVisible: false,\n fieldIds: props.saveFieldsBackend ? [] : getFields(),\n presetConfigsQuery: props.presetConfigs?.query,\n autoBreakLine: false,\n appSearchInstanceId: \"\",\n currentChangeSelect: \"App\",\n appSelectValue: \"\",\n clusterValue: \"all\",\n appList: [],\n clusterList: [\n {\n instanceId: \"all\",\n name: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.ALL_CLUSTER}`),\n },\n ],\n searchByApp: false,\n backendDefaultFields: [],\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 // useExternalCmdbApi为true,外部接口参数\n const externalRequestParams = useMemo(() => {\n return {\n objectId: props.objectId,\n sourceId: props.externalSourceId,\n };\n }, [props.objectId, props.externalSourceId]);\n\n const getInstanceListData = async (\n sort: string,\n asc: boolean,\n page: number\n ): Promise<InstanceApi_PostSearchV3ResponseBody> => {\n const data: InstanceApi_PostSearchRequestBody = {};\n const v3Data: InstanceApi_PostSearchV3RequestBody = {\n fields: props?.extraFixedFields\n ? uniq([\"instanceId\"].concat(props?.extraFixedFields))\n : [\"instanceId\"],\n };\n if (!isEmpty(props.permission)) {\n v3Data.permission = data.permission = props.permission;\n }\n\n const archiveData: instanceArchiveRequestBody = {};\n let query: Record<string, any> = {};\n\n v3Data.page = data.page = archiveData.page = page;\n v3Data[\"page_size\"] =\n data[\"page_size\"] =\n archiveData[\"page_size\"] =\n 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 (state.q && props.useInstanceArchiveProvider) {\n archiveData.key_word = state.q;\n }\n if (!isEmpty(state.aq)) {\n query[LogicalOperators.And] = state.aq;\n }\n\n if (!isEmpty(props.defaultQuery)) {\n query[LogicalOperators.And] = [\n ...(query[LogicalOperators.And] || []),\n ...props.defaultQuery,\n ];\n }\n if (props.presetConfigs) {\n if (!isEmpty(props.presetConfigs.query)) {\n if (Object.keys(query).length) {\n query = {\n $and: [query, props.presetConfigs.query],\n };\n } else {\n query = props.presetConfigs.query;\n }\n }\n }\n if (state.fieldIds) {\n data.fields = Object.fromEntries(\n state.fieldIds.map((fieldId) => [fieldId, true])\n );\n v3Data.fields = [...state.fieldIds, ...v3Data.fields];\n (v3Data as any).ignore_missing_field_error = true;\n }\n if (props.useAutoDiscoveryProvider) {\n v3Data.fields = joinRelationFieldAndShowkey(\n v3Data.fields,\n modelData,\n props.objectList\n );\n }\n if (props.useInstanceArchiveProvider) {\n archiveData.fields = v3Data.fields.join(\",\");\n }\n if (state.aliveHosts && props.objectId === \"HOST\") {\n query = { ...query, _agentStatus: \"正常\" };\n }\n if (state.instanceSourceQuery) {\n query = { ...query, _object_id: state.instanceSourceQuery };\n }\n\n if (!isEmpty(query)) {\n v3Data.query = data.query = query;\n }\n // useAutoDiscoveryProvider=true, 使用useProvider的接口,请求参数里加上extraParams\n\n if (props.useAutoDiscoveryProvider && !isEmpty(props.extraParams)) {\n Object.assign(v3Data, props.extraParams);\n }\n if (state.relatedToMe) {\n v3Data.only_my_instance = data.only_my_instance = state.relatedToMe;\n }\n //按应用筛选\n // istanbul ignore next (state is not updated)\n if (state.searchByApp) {\n const hostRange = props.presetConfigs?.query?.[\"$and\"]?.find(\n (i: any) => i.instanceId\n )?.instanceId?.[\"$in\"];\n v3Data.query = {\n [state.currentChangeSelect === \"App\" ||\n (state.currentChangeSelect === \"Cluster\" &&\n state.clusterValue === \"all\")\n ? \"_deviceList_CLUSTER.appId.instanceId\"\n : \"_deviceList_CLUSTER.instanceId\"]: state.appSearchInstanceId,\n ...(!isEmpty(hostRange) && props.limitInstanceRange\n ? {\n instanceId: { $in: hostRange },\n }\n : {}),\n ...(state.aliveHosts && props.objectId === \"HOST\"\n ? { _agentStatus: \"正常\" }\n : {}),\n };\n }\n if (props.useInstanceArchiveProvider) {\n return instanceArchiveListProvider.query([props.objectId, archiveData]);\n }\n const promise = props.onSearchExecute?.(data, v3Data);\n // useAutoDiscoveryProvider=true, 使用useProvider的接口\n // useExternalCmdbApi= true 使用外部接口externalPostSearchV3\n return promise\n ? promise\n : props.useExternalCmdbApi\n ? externalPostSearchV3.query([\n {\n ...v3Data,\n ...externalRequestParams,\n },\n ])\n : props.useAutoDiscoveryProvider\n ? listProvider.query([props.objectId, v3Data])\n : props.ignorePermission\n ? ignorePermissionProvider.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 // 为了接口报错,不把整页面列干掉,去掉 failed: true 这个逻辑\n setState({\n idObjectMap: idObjectMap,\n instanceListData: [] as InstanceApi_PostSearchV3ResponseBody,\n });\n } finally {\n setState({ inited: true, loading: false });\n }\n };\n // const [fieldIds,setFieldIds] = useState([]);\n // istanbul ignore next\n useEffect(() => {\n if (props.saveFieldsBackend) {\n const getFieldIds = async () => {\n const fieldConfig = await getFieldsAsync();\n const { fieldIds, sort, asc, sortFields, backendDefaultFields } =\n fieldConfig;\n if (\n // 当 props.objectId 改变时,总是更新 state.fieldIds\n props.objectId !== state.objectId ||\n !isEqual(fieldIds, state.fieldIds) ||\n !isEqual(props.presetConfigs?.query, state.presetConfigsQuery)\n )\n setState({\n fieldIds,\n presetConfigsQuery: props.presetConfigs?.query,\n sort,\n asc: [1, 2].includes(asc) ? true : false,\n sortFields,\n backendDefaultFields,\n });\n };\n getFieldIds();\n } else {\n const fieldIds = getFields();\n if (\n // 当 props.objectId 改变时,总是更新 state.fieldIds\n props.objectId !== state.objectId ||\n !isEqual(fieldIds, state.fieldIds) ||\n !isEqual(props.presetConfigs?.query, state.presetConfigsQuery)\n ) {\n setState({\n fieldIds,\n presetConfigsQuery: props.presetConfigs?.query,\n });\n }\n }\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 useEffect(() => {\n setQ(props.q);\n setState({ q: props.q });\n }, [props.q]);\n\n // on other condition change\n useEffect(() => {\n if (isEmpty(state.fieldIds)) return;\n refreshInstanceList(state.sort, state.asc, state.page);\n }, [\n state.page,\n state.sort,\n state.asc,\n state.fieldIds,\n state.appSearchInstanceId,\n state.currentChangeSelect,\n state.searchByApp,\n props.dataSource,\n state.presetConfigsQuery,\n props.updateDataTime,\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 page: 1,\n };\n // useExternalCmdbApi为true,使用外部接口PostSearchV3\n if (props.useExternalCmdbApi) {\n resp = await externalPostSearchV3.query([\n {\n ...params,\n ...externalRequestParams,\n },\n ]);\n } else if (props.useAutoDiscoveryProvider) {\n // useAutoDiscoveryProvider=true, 使用useProvider的接口,虽然这里列表用不到选择功能,但还是加上保持统一\n resp = await listProvider.query([\n props.objectId,\n Object.assign(params, props.extraParams),\n ]);\n } else if (props.ignorePermission) {\n resp = await ignorePermissionProvider.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 async (info: ReadSortingChangeDetail, sortFields?: ISortField[]) => {\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 // istanbul ignore next\n if (\n props.saveFieldsBackend &&\n sortFields.find((item) => item.field === info.sort)\n ) {\n try {\n const oldsortFields = sortFields;\n const sortType = modelData?.attrList?.find((attr) => attr.id === sort)\n ?.value?.default_type;\n const newSortFields = updateSortFields(oldsortFields, info, sortType);\n setState({\n sortFields: newSortFields,\n });\n if (props.useExternalCmdbApi) {\n await externalUpdateFieldsProvider.query([\n {\n object_id: props.objectId,\n sourceId: props.externalSourceId,\n sortFields: newSortFields,\n },\n ]);\n } else {\n await updateFieldsProvider.query([\n props.objectId,\n { sortFields: newSortFields },\n ]);\n }\n } catch (e) {\n handleHttpError;\n }\n }\n // istanbul ignore next\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 let appListResp: any;\n const params: any = {\n fields: [\"clusters\", \"instanceId\", \"name\"],\n sort: [{ key: \"name\", order: 1 }],\n page: 1,\n page_size: 3000,\n ...(props.useExternalCmdbApi ? externalRequestParams : {}),\n };\n // useExternalCmdbApi为true,使用外部接口PostSearchV3\n if (props.useExternalCmdbApi) {\n appListResp = await externalPostSearchV3.query([params]);\n } else {\n appListResp = await InstanceApi_postSearchV3(\"APP\", params);\n }\n\n setState({\n appSearchInstanceId: appListResp.list?.[0].instanceId || \"\",\n appList: appListResp.list,\n clusterList: [...baseList, ...(appListResp.list?.[0].clusters || [])],\n searchByApp: true,\n appSelectValue: appListResp.list?.[0].instanceId || \"\",\n clusterValue: \"all\",\n page: 1,\n });\n } else {\n setState({ searchByApp: false, page: 1 });\n }\n }, [state.searchByApp]);\n // istanbul ignore next (state is not updated)\n const appSelectChange = (v: string) => {\n setState({\n appSearchInstanceId: v,\n currentChangeSelect: \"App\",\n appSelectValue: v,\n clusterValue: \"all\",\n clusterList: [\n ...baseList,\n ...state.appList.find((r) => r.instanceId === v).clusters,\n ],\n });\n };\n // istanbul ignore next (state is not updated)\n const clusterSelectChange = (v: string) => {\n setState({\n appSearchInstanceId: v === \"all\" ? state.appSelectValue : v,\n currentChangeSelect: \"Cluster\",\n clusterValue: v,\n });\n };\n\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 // istanbul ignore next\n // 所有用户(包括管理员)点击恢复默认按钮是恢复到 1.管理员设置的默认显示 2.管理员未设置时取前N个\n if (\n props.saveFieldsBackend &&\n !props.useExternalCmdbApi &&\n state.backendDefaultFields &&\n state.backendDefaultFields?.length > 0\n ) {\n // istanbul ignore next\n // 后台接口返回的默认字段(1. admin用户设置的,2. 前N个)\n defaultFields = compact(\n state.backendDefaultFields?.map((s) => s.field)\n );\n } else {\n defaultFields = computeDefaultFields().fieldIds;\n }\n }\n if (!isEmpty(extraFixedFieldIds)) {\n defaultFields = uniq([...defaultFields, ...extraFixedFieldIds]);\n }\n return defaultFields;\n }, [props.presetConfigs, modelData, state.backendDefaultFields]);\n\n // istanbul ignore next\n const handleConfirm = async ({\n fields,\n isReset,\n isAdminSetDisplay,\n }: DisplaySettingsModalData) => {\n if (isReset) {\n // 恢复默认操作\n const fieldIds = defaultFields;\n modelData.isAbstract && fieldIds.push(\"_object_id\");\n if (props.saveFieldsBackend) {\n const sortFields = mergeFields(state.sortFields, fieldIds);\n if (props.useExternalCmdbApi) {\n await externalUpdateFieldsProvider.query([\n {\n object_id: props.objectId,\n sourceId: props.externalSourceId,\n sortFields,\n },\n ]);\n } else {\n await updateFieldsProvider.query([props.objectId, { sortFields }]);\n }\n setState({ fieldIds, sortFields });\n props.onFieldsModalConfirm(fieldIds);\n } else {\n jsonLocalStorage.removeItem(`${modelData.objectId}-selectAttrIds`);\n setState({ fieldIds });\n props.onFieldsModalConfirm(fieldIds);\n }\n } else {\n if (!isAdminSetDisplay) {\n // 点击确定按钮触发\n if (props.saveFieldsBackend) {\n try {\n const sortFields = mergeFields(state.sortFields, fields);\n if (props.useExternalCmdbApi) {\n await externalUpdateFieldsProvider.query([\n {\n object_id: props.objectId,\n sourceId: props.externalSourceId,\n sortFields,\n },\n ]);\n } else {\n await updateFieldsProvider.query([\n props.objectId,\n { sortFields },\n ]);\n }\n setState({\n fieldIds: _sortFieldIds(fields),\n sortFields,\n });\n } catch (e) {\n handleHttpError(e);\n }\n } else {\n setState({\n fieldIds: _sortFieldIds(fields),\n });\n jsonLocalStorage.setItem(\n `${modelData.objectId}-selectAttrIds`,\n fields\n );\n }\n props.onFieldsModalConfirm(fields);\n } else {\n // 点击【默认显示】按钮触发,不影响当前列表显示。\n try {\n // istanbul ignore next\n const sortFields = mergeFields(state.sortFields, fields);\n await updateFieldsProvider.query([\n props.objectId,\n { sortFields: sortFields, isDefault: true },\n ]);\n message.success(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.SET_DEFAULT_DISPLAY_SUCCESS}`)\n );\n setState({\n backendDefaultFields: sortFields,\n });\n } catch (e) {\n handleHttpError(e);\n }\n }\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 v3Data.page = 1;\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: any;\n // useExternalCmdbApi为true,使用外部接口PostSearchV3\n if (props.useExternalCmdbApi) {\n resp = await externalPostSearchV3.query([\n {\n ...v3Data,\n ...externalRequestParams,\n },\n ]);\n } else if (props.useAutoDiscoveryProvider) {\n resp = await listProvider.query([props.objectId, v3Data]);\n } else {\n resp = await InstanceApi_postSearchV3(props.objectId, v3Data);\n }\n resp.list.forEach((i: Record<string, any>) =>\n cache.current.set(i.instanceId, i)\n );\n })();\n }, [props.selectedRowKeys]);\n const handleToggleFixHeader = () => {\n setFixHeader(!fixedHeader);\n };\n const onAdvancedSearchCloseGen = (attrId: string, valuesStr: string) => {\n return () => {\n const queries: Query[] = [];\n const queriesToShow: Query[] = [];\n const filterAq = (queries: any[]) =>\n queries.filter((v: any) => isValueEqualFn(v, attrId, valuesStr));\n state.aq.forEach((query) => {\n const key = Object.keys(query)[0];\n if (\n (key === \"$or\" || key === \"$and\") &&\n Object.keys((query[key] as Query[])[0])[0] === attrId\n ) {\n const filteredSubQueries = filterAq(query[key] as Query[]);\n if (filteredSubQueries.length > 0) {\n queries.push({\n [key]: filteredSubQueries,\n });\n }\n } else if (key !== attrId && !startsWith(attrId, `${key}.`)) {\n // $exists $gte $lte 针对为空,不为空,时间范围特殊处理\n if (!Array.isArray(query[key]) && isSpecialFn(query, key)) {\n queries.push(query);\n } else {\n const fieldId = Object.keys((query[key] as Query[])[0])[0];\n // 判断是否为结构体\n const isStruct = isOfStruct(modelData, fieldId);\n // 结构体情况处理\n if (\n !(\n (key === \"$or\" || key === \"$and\") &&\n startsWith(fieldId, `${attrId}.`) &&\n isStruct\n )\n ) {\n queries.push(query);\n }\n }\n } else if (\n props.isInstanceFilterForm &&\n key === attrId &&\n isValueEqualFn(query, attrId, valuesStr)\n ) {\n specialQueryHandler(query, key, queries);\n }\n });\n state.aqToShow.forEach((query) => {\n const key = Object.keys(query)[0];\n if (\n (key === \"$or\" || key === \"$and\") &&\n Object.keys((query[key] as Query[])[0])[0] === attrId\n ) {\n const filteredSubQueries = filterAq(query[key] as Query[]);\n if (filteredSubQueries.length > 0) {\n queriesToShow.push({\n [key]: filteredSubQueries,\n });\n }\n } else if (key !== attrId) {\n queriesToShow.push(query);\n } else if (\n props.isInstanceFilterForm &&\n key === attrId &&\n isValueEqualFn(query, attrId, valuesStr)\n ) {\n specialQueryHandler(query, key, queriesToShow);\n }\n });\n setState({\n aq: queries,\n aqToShow: queriesToShow,\n });\n props.onAdvancedSearch?.(queries);\n };\n };\n\n const onFilterInstanceSourceChange = (checked: boolean): void => {\n setState({ filterInstanceSource: checked });\n props.onFilterInstanceSourceChange?.(checked);\n };\n\n const onFilterObjectIdChange = (objectIdQuery: any): void => {\n setState({ objectIdQuery: objectIdQuery });\n props.onFilterObjectIdChange?.(objectIdQuery);\n };\n\n const onPopoverVisibleChange = (visible: boolean): void => {\n setState({ instanceSourcePopoverVisible: visible });\n };\n\n const conditions = translateConditions(\n state.aqToShow,\n idObjectMap,\n modelData\n );\n\n useEffect(() => {\n if (props.showFilterInstanceSource) {\n const aq = initAqToShow(props.aq, modelData, false);\n const aqToShow = props.aqToShow || initAqToShow(props.aq, modelData);\n setState({ aq, aqToShow });\n }\n }, [props.aq, props.aqToShow, props.showFilterInstanceSource]);\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 placeholder={props.placeholder}\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.extraOperateBricks?.useBrick && (\n <BrickAsComponent\n useBrick={props.extraOperateBricks.useBrick}\n />\n )}\n {props.showFilterInstanceSource && (\n <FilterInstanceSource\n visible={state.instanceSourcePopoverVisible}\n checked={state.filterInstanceSource}\n onPopoverVisibleChange={onPopoverVisibleChange}\n onIconClicKChange={onFilterInstanceSourceChange}\n onChange={onFilterObjectIdChange}\n inheritanceModelIdNameMap={inheritanceModelIdNameMap}\n value={state.objectIdQuery}\n jsonLocalStorage={jsonLocalStorage}\n isAbstract={modelData.isAbstract}\n />\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 useExternalCmdbApi={props.useExternalCmdbApi}\n saveFieldsBackend={props.saveFieldsBackend}\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={(info: any) => {\n onSortingChange(info, state.sortFields);\n }}\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 onColumnsChange={props.onColumnsChange}\n useExternalCmdbApi={props.useExternalCmdbApi}\n externalSourceId={props.externalSourceId}\n />\n )}\n </React.Fragment>\n ) : (\n // 加个空白的div是为了将loading效果撑起来\n <div className={styles.virtualLoading}></div>\n )}\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 const externalGetObjectRef = useProvider(\n \"easyops.api.cmdb.topo_center@ProxyGetObjectRef:1.0.0\",\n { cache: false }\n );\n\n useEffect(() => {\n if (props.objectList?.length) {\n setObjectList(props.objectList);\n } else {\n (async () => {\n const cacheData = objectListCache.get(props.objectId);\n if (cacheData) {\n setObjectList(cacheData);\n } else {\n try {\n let list;\n if (props.useExternalCmdbApi) {\n list = await externalGetObjectRef.query([\n {\n ref_object: props.objectId,\n sourceId: props.externalSourceId,\n },\n ]);\n } else {\n list = (\n await CmdbObjectApi_getObjectRef({ ref_object: props.objectId })\n ).data;\n }\n setObjectList(list);\n objectListCache.set(props.objectId, list);\n } catch (e) {\n // istanbul ignore next\n handleHttpError(e);\n }\n }\n })();\n }\n }, [props.objectId, props.objectList]);\n\n if (\n !objectList ||\n !objectList.find((item) => item.objectId === props.objectId)\n )\n return null;\n\n return <LegacyInstanceList {...props} objectList={objectList} />;\n}\n"],"mappings":"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"}