@next-libs/cmdb-instances 7.3.12 → 7.3.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -329,12 +329,12 @@ function LegacyInstanceList(props) {
|
|
|
329
329
|
} = {
|
|
330
330
|
inModal: false
|
|
331
331
|
}) => {
|
|
332
|
-
//
|
|
332
|
+
// 针对 显示字段,默认优先拿排序的字段,再去拿属性字段
|
|
333
333
|
const settings = inModal ? _constants2.CMDB_MODAL_FIELDS_SETTINGS : _constants2.CMDB_RESOURCE_FIELDS_SETTINGS;
|
|
334
|
-
const ignoredFields = settings.ignoredFields[modelData.objectId] || [];
|
|
335
|
-
|
|
336
|
-
const
|
|
337
|
-
fieldIds =
|
|
334
|
+
const ignoredFields = (settings.ignoredFields[modelData.objectId] || []).concat(modelData.view.hide_columns || []);
|
|
335
|
+
const sortFields = modelData.view.attr_order || [];
|
|
336
|
+
const allFields = [...new Set([...sortFields, ...(0, _lodash.map)(modelData.attrList, "id")])];
|
|
337
|
+
const fieldIds = (0, _lodash.difference)(allFields, ignoredFields).slice(0, 8);
|
|
338
338
|
return {
|
|
339
339
|
fieldIds
|
|
340
340
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InstanceList.js","names":["joinRelationFieldAndShowkey","fields","modelData","objectList","attrIdMap","keyBy","attrList","map","field","relation","relation_list","find","left_id","right_id","isLeft","left_object_id","objectId","otherSideObjectId","right_object_id","otherSideObject","object","showKey","view","show_key","getQuery","idObjectMap","q","onlySearchByIp","query","$or","queryValues","trim","split","searchIpFields","getRuntime","getCurrentApp","config","queryOrs","Set","searchValue","$like","forEach","key","push","forEachAvailableFields","attr","queryValue","id","sides","this","nameKeys","getInstanceNameKeys","that","nameKey","isSpecialFn","attrId","Object","keys","some","v","specialQueryHandler","queries","isSpecial","isValueEqualFn","valuesStr","values","join","translateConditions","aq","t","conditions","relations","sidesArr","isSelfRelation","getRelationObjectSides","relationObject","nameOfNameKey","name","value","type","relationSideId","attrAndRelationList","isEmpty","ElementOperators","Exists","changeQueryWithCustomRules","info","getFieldConditionsAndValues","undefined","ConditionType","Between","Empty","NotEmpty","False","True","includes","currentCondition","isString","replace","condition","label","curCondition","queryValuesStr","every","isEqual","omit","newKey","fieldIds","length","isOfStruct","fieldId","structFields","filter","structs","struct_define","struct","flat","isOfBoolean","keyAttrMap","ModelAttributeValueType","BOOLEAN","initAqToShow","isToShow","newAqToShow","aqToShow","entries","expressions","newExpressions","LogicalOperators","Or","And","firstSubQuery","isStruct","isBool","structQueries","expression","structExpressions","item","boolExpressions","targetValue","LegacyInstanceList","props","showTooltip","baseList","instanceId","i18n","NS_LIBS_CMDB_INSTANCES","K","ALL_CLUSTER","jsonLocalStorage","JsonStorage","localStorage","reducer","prevState","updatedProperty","listProvider","useProvider","cache","instanceArchiveListProvider","useMemo","disabledDefaultFields","union","extraFieldAttrs","inheritanceModelIdNameMap","setInheritanceModelIdNameMap","useState","fixedHeader","setFixHeader","fetchInheritanceModelIdNameMap","idNameMap","isAbstract","CmdbObjectApi_getIdMapName","parentObjectId","useEffect","computeDefaultFields","inModal","settings","CMDB_MODAL_FIELDS_SETTINGS","CMDB_RESOURCE_FIELDS_SETTINGS","ignoredFields","difference","uniq","slice","hideModelData","hide_columns","_sortFieldIds","frontFields","restFields","presetConfigs","sortBy","reject","foundIndex","findIndex","attr_order","orderId","getFields","extraFixedFieldIds","extraFixedFields","getItem","extraDisabledField","setQ","state","setState","useReducer","instanceSourceQuery","asc","sort","page","dataSource","pageSize","aliveHosts","relatedToMe","inited","loading","failed","isAdvancedSearchVisible","presetConfigsQuery","autoBreakLine","appSearchInstanceId","currentChangeSelect","appSelectValue","clusterValue","appList","clusterList","searchByApp","selectedRowKeys","setSelectedRowKeys","useRef","Map","isFirstRunRef","getInstanceListData","data","v3Data","concat","permission","archiveData","sortType","default_type","order","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","InstanceApi_postSearchV3","refreshInstanceList","instanceListData","hideInstanceList","list","current","set","e","handleHttpError","skip","onPaginationChange","onChange","target","onSelectionChange","useCallback","selected","selectedItems","selectedKeys","compact","ids","has","resp","params","page_size","get","onSearch","onAdvancedSearch","queriesToShow","fieldToShow","onSortingChange","pagination","onInstanceSourceChange","onRelatedToMeChange","checked","onAliveHostsChange","toggleAutoBreakLine","toggleSearchMode","React","appListResp","clusters","appSelectChange","r","clusterSelectChange","defaultFields","handleConfirm","isReset","removeItem","onFieldsModalConfirm","setItem","notifyCurrentFields","handleToggleFixHeader","onAdvancedSearchCloseGen","filterAq","filteredSubQueries","startsWith","Array","isArray","isInstanceFilterForm","searchDisabled","advancedSearchDisabled","relatedToMeDisabled","aliveHostsDisabled","moreButtonsDisabled","styles","instanceListToolbar","searchRelated","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","virtualLoading","InstanceList","setObjectList","cacheData","objectListCache","CmdbObjectApi_getObjectRef","ref_object"],"sources":["../../../src/instance-list/InstanceList.tsx"],"sourcesContent":["import React, {\n useEffect,\n useReducer,\n useState,\n useRef,\n useMemo,\n useCallback,\n} from \"react\";\nimport {\n difference,\n isEmpty,\n isEqual,\n isString,\n map,\n uniq,\n union,\n filter,\n reject,\n sortBy,\n uniqueId,\n findIndex,\n find,\n startsWith,\n compact,\n omit,\n keyBy,\n} from \"lodash\";\nimport {\n BrickAsComponent,\n getRuntime,\n handleHttpError,\n useProvider,\n} from \"@next-core/brick-kit\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport {\n PropertyDisplayConfig,\n ReadPaginationChangeDetail,\n ReadSelectionChangeDetail,\n ReadSortingChangeDetail,\n UseBrickConf,\n} from \"@next-core/brick-types\";\nimport {\n CmdbModels,\n InstanceApi_PostSearchRequestBody,\n InstanceApi_PostSearchV3RequestBody,\n InstanceApi_PostSearchV3ResponseBody,\n InstanceApi_postSearchV3,\n CmdbObjectApi_getIdMapName,\n CmdbObjectApi_getObjectRef,\n} from \"@next-sdk/cmdb-sdk\";\nimport { Icon as LegacyIcon } from \"@ant-design/compatible\";\nimport { Button, Spin, Input, Tag, Select } from \"antd\";\nimport {\n getRelationObjectSides,\n forEachAvailableFields,\n getInstanceNameKeys,\n RelationIdKeys,\n RelationNameKeys,\n RelationObjectIdKeys,\n RelationObjectSides,\n isSelfRelation,\n Query,\n ElementOperators,\n LogicalOperators,\n ComparisonOperators,\n} from \"@next-libs/cmdb-utils\";\nimport { JsonStorage } from \"@next-libs/storage\";\nimport { ModelObjectAttr } from \"@next-sdk/cmdb-sdk/dist/types/model/cmdb\";\n\nimport {\n ConditionType,\n AdvancedSearch,\n getFieldConditionsAndValues,\n MoreButtonsContainer,\n InstanceListTable,\n CustomColumn,\n Field,\n UseBrickAndPropertyDisplayConfig,\n} from \"../instance-list-table\";\nimport styles from \"./InstanceList.module.css\";\nimport {\n extraFieldAttrs,\n CMDB_MODAL_FIELDS_SETTINGS,\n CMDB_RESOURCE_FIELDS_SETTINGS,\n objectListCache,\n} from \"./constants\";\nimport { ModelAttributeValueType } from \"../model-attribute-form-control/ModelAttributeFormControl\";\nimport { IconButton } from \"./IconButton\";\nimport { changeQueryWithCustomRules } from \"../processors\";\nimport { DisplaySettingsModalData } from \"../instance-list-table/DisplaySettingsModal\";\n\nexport interface instanceArchiveRequestBody {\n // 搜索内容\n key_word?: string;\n /** 页码 */\n page?: number;\n /** 页大小 */\n page_size?: number;\n fields?: string;\n}\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};\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\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}\n\ninterface InstanceListState {\n objectId: string;\n q: string;\n aq: Query[];\n aqToShow?: Query[];\n instanceSourceQuery: string;\n asc: boolean;\n sort: string;\n page: number;\n pageSize: number;\n aliveHosts: boolean;\n relatedToMe: boolean;\n inited: boolean;\n loading: boolean;\n failed: boolean;\n idObjectMap?: Record<string, Partial<CmdbModels.ModelCmdbObject>>;\n instanceListData?: InstanceApi_PostSearchV3ResponseBody;\n isAdvancedSearchVisible: boolean;\n fieldIds: string[];\n autoBreakLine: boolean;\n fieldToShow?: Record<string, any[]>[];\n appSearchInstanceId?: string;\n currentChangeSelect?: string;\n appSelectValue?: string;\n clusterValue?: string;\n appList?: Record<string, any>[];\n clusterList?: Record<string, any>[];\n searchByApp?: boolean;\n showTooltip?: boolean;\n presetConfigsQuery?: Record<string, any>;\n}\n\nexport function LegacyInstanceList(\n props: InstanceListProps\n): React.ReactElement {\n const { showTooltip = true } = props;\n const baseList = [\n {\n instanceId: \"all\",\n name: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.ALL_CLUSTER}`),\n },\n ];\n const jsonLocalStorage = new JsonStorage(localStorage);\n const reducer = (\n prevState: InstanceListState,\n updatedProperty: Partial<InstanceListState>\n ): InstanceListState => {\n return {\n ...prevState,\n ...updatedProperty,\n };\n };\n // 资源自动发现页面24小时发现主机抽屉的实例列表处,通用的postSearchV3接口无法查到正确结果,需要用下面的接口替换,参数里也要加上jobId:***\n // 为了不影响其他地方的实例列表,在该处加一个useAutoDiscoveryProvider参数,该参数为undefined或false的,仍调用原接口\n\n const listProvider = useProvider(\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 { modelData, idObjectMap } = useMemo(() => {\n let modelData: Partial<CmdbModels.ModelCmdbObject>;\n const idObjectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>> = {};\n props.objectList.forEach((object) => {\n idObjectMap[object.objectId] = object;\n if (object.objectId === props.objectId) {\n modelData = object;\n modelData.attrList = !props.disabledDefaultFields\n ? union(object.attrList, extraFieldAttrs)\n : object.attrList;\n }\n });\n\n return { modelData, idObjectMap };\n }, [props.objectList, props.objectId]);\n\n const [inheritanceModelIdNameMap, setInheritanceModelIdNameMap] = useState<\n Record<string, string>\n >({});\n const [fixedHeader, setFixHeader] = useState(false);\n\n const fetchInheritanceModelIdNameMap = async (\n modelData: Partial<CmdbModels.ModelCmdbObject>\n ): Promise<void> => {\n let idNameMap = {};\n if (modelData.isAbstract) {\n idNameMap = await CmdbObjectApi_getIdMapName({\n parentObjectId: modelData.objectId,\n } as any);\n }\n setInheritanceModelIdNameMap(idNameMap);\n };\n\n useEffect(() => {\n fetchInheritanceModelIdNameMap(modelData);\n }, [modelData]);\n\n const computeDefaultFields = (\n { inModal } = { inModal: false }\n ): { fieldIds: string[] } => {\n // 原来有隐藏逻辑,针对 APP、HOST、USER、USER_GROUP模型,默认字段特殊处理了,现产品要求干掉,统一取8个默认字段,也不区分是否是内置模型\n const settings: any = inModal\n ? CMDB_MODAL_FIELDS_SETTINGS\n : CMDB_RESOURCE_FIELDS_SETTINGS;\n const ignoredFields: string[] =\n settings.ignoredFields[modelData.objectId] || [];\n let fieldIds: string[] = difference(\n uniq(map(modelData.attrList, \"id\")),\n ignoredFields\n ).slice(0, 8);\n const hideModelData: string[] = modelData.view.hide_columns || [];\n fieldIds = fieldIds.filter((field) => !hideModelData.includes(field));\n return { fieldIds };\n };\n\n // 根据用户预定义的 presetConfigs.fieldIds 进行排序,如果不在预定义的字段,则根据 modelData.view.attr_order 进行排序\n const _sortFieldIds = (fieldIds: any[]) => {\n let frontFields: any[] = [];\n let restFields: any[] = [];\n if (props.presetConfigs?.fieldIds) {\n frontFields = filter(props.presetConfigs.fieldIds, (id) =>\n fieldIds.includes(id)\n );\n }\n restFields = sortBy(\n reject(fieldIds, (id) => frontFields.includes(id)),\n (fieldId) => {\n const foundIndex = findIndex(\n modelData.view.attr_order,\n (orderId) => orderId === fieldId\n );\n if (foundIndex === -1) {\n return null;\n } else {\n return foundIndex;\n }\n }\n );\n return [...frontFields, ...restFields];\n };\n\n const getFields = () => {\n let fieldIds = props.presetConfigs?.fieldIds;\n const extraFixedFieldIds = props.extraFixedFields ?? [];\n if (isEmpty(fieldIds)) {\n fieldIds = jsonLocalStorage.getItem(\n `${modelData.objectId}-selectAttrIds`\n );\n }\n if (isEmpty(fieldIds)) {\n fieldIds = computeDefaultFields().fieldIds;\n }\n if (!isEmpty(extraFixedFieldIds)) {\n fieldIds = uniq([...fieldIds, ...extraFixedFieldIds]);\n }\n fieldIds = props.extraDisabledField\n ? uniq([...fieldIds, props.extraDisabledField])\n : fieldIds;\n fieldIds = _sortFieldIds(fieldIds);\n const hideModelData: string[] = modelData.view.hide_columns || [];\n fieldIds = fieldIds.filter((field) => !hideModelData.includes(field));\n modelData.isAbstract && fieldIds.push(\"_object_id\");\n return fieldIds;\n };\n\n const [q, setQ] = useState(props.q);\n const [state, setState] = useReducer(reducer, undefined, () => ({\n objectId: props.objectId,\n q: props.q,\n aq: initAqToShow(props.aq, modelData, false),\n aqToShow: props.aqToShow || initAqToShow(props.aq, modelData),\n instanceSourceQuery: props.instanceSourceQuery,\n asc: props.asc,\n sort: props.sort,\n page: props.dataSource?.page ?? props.page ?? 1,\n pageSize: props.dataSource?.pageSize ?? props.pageSize ?? 10,\n aliveHosts: props.aliveHosts,\n relatedToMe: props.relatedToMe,\n inited: false,\n loading: false,\n failed: false,\n isAdvancedSearchVisible: false,\n fieldIds: getFields(),\n presetConfigsQuery: props.presetConfigs?.query,\n autoBreakLine: false,\n appSearchInstanceId: \"\",\n currentChangeSelect: \"App\",\n appSelectValue: \"\",\n clusterValue: \"all\",\n appList: [],\n clusterList: [\n {\n instanceId: \"all\",\n name: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.ALL_CLUSTER}`),\n },\n ],\n searchByApp: false,\n }));\n const [selectedRowKeys, setSelectedRowKeys] = useState(\n props.selectedRowKeys ?? []\n );\n const cache = useRef(new Map<string, InstanceApi_PostSearchV3ResponseBody>());\n const isFirstRunRef = useRef(true);\n\n const getInstanceListData = async (\n sort: string,\n asc: boolean,\n page: number\n ): Promise<InstanceApi_PostSearchV3ResponseBody> => {\n const data: InstanceApi_PostSearchRequestBody = {};\n const v3Data: InstanceApi_PostSearchV3RequestBody = {\n fields: props?.extraFixedFields\n ? uniq([\"instanceId\"].concat(props?.extraFixedFields))\n : [\"instanceId\"],\n };\n if (!isEmpty(props.permission)) {\n v3Data.permission = data.permission = props.permission;\n }\n\n 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 return promise\n ? promise\n : props.useAutoDiscoveryProvider\n ? listProvider.query([props.objectId, v3Data])\n : InstanceApi_postSearchV3(props.objectId, v3Data);\n };\n\n const refreshInstanceList = async (\n sort: string,\n asc: boolean,\n page: number\n ): Promise<void> => {\n setState({ loading: true });\n try {\n if (props.dataSource) {\n setState({\n idObjectMap: idObjectMap,\n instanceListData: props.dataSource,\n });\n } else {\n if (!props.hideInstanceList) {\n const instanceListData = await getInstanceListData(sort, asc, page);\n instanceListData.list.forEach((i) =>\n cache.current.set(i.instanceId, i)\n );\n setState({ idObjectMap: idObjectMap, instanceListData });\n } else {\n setState({\n idObjectMap: idObjectMap,\n instanceListData: [] as InstanceApi_PostSearchV3ResponseBody,\n });\n }\n }\n } catch (e) {\n handleHttpError(e);\n setState({ failed: true });\n } finally {\n setState({ inited: true, loading: false });\n }\n };\n\n useEffect(() => {\n const fieldIds = getFields();\n if (\n // 当 props.objectId 改变时,总是更新 state.fieldIds\n props.objectId !== state.objectId ||\n !isEqual(fieldIds, state.fieldIds) ||\n !isEqual(props.presetConfigs?.query, state.presetConfigsQuery)\n ) {\n setState({\n fieldIds,\n presetConfigsQuery: props.presetConfigs?.query,\n });\n }\n }, [props.objectId, props.presetConfigs]);\n\n useEffect(() => {\n setSelectedRowKeys(props.selectedRowKeys ?? []);\n }, [props.objectId, props.selectedRowKeys]);\n\n // on filter condition change\n useEffect(() => {\n if (isFirstRunRef.current) {\n isFirstRunRef.current = false;\n return;\n }\n\n let skip = false;\n\n if (state.page !== 1) {\n setState({ page: 1 });\n props.onPaginationChange?.({ page: 1, pageSize: state.pageSize });\n skip = true;\n }\n\n // 当 prop.objectId 改变时先跳过,等 state.fieldIds 更新后再获取数据\n if (props.objectId !== state.objectId) {\n setState({ objectId: props.objectId });\n skip = true;\n }\n\n if (skip) {\n return;\n }\n\n refreshInstanceList(state.sort, state.asc, 1);\n }, [\n state.q,\n state.aq,\n state.instanceSourceQuery,\n state.pageSize,\n state.aliveHosts,\n state.relatedToMe,\n props.objectId,\n props.permission,\n props.defaultQuery,\n ]);\n\n // on other condition change\n useEffect(() => {\n if (isEmpty(state.fieldIds)) return;\n refreshInstanceList(state.sort, state.asc, state.page);\n }, [\n state.page,\n state.sort,\n state.asc,\n state.fieldIds,\n state.appSearchInstanceId,\n state.currentChangeSelect,\n state.searchByApp,\n props.dataSource,\n state.presetConfigsQuery,\n ]);\n\n const onChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setQ(e.target.value);\n };\n\n // istanbul ignore next\n const onSelectionChange = useCallback(\n async (selected: { selectedKeys: string[]; selectedItems: any[] }) => {\n let { selectedItems, selectedKeys } = selected;\n setSelectedRowKeys(selectedKeys);\n if (selectedKeys.length > compact(selectedItems).length) {\n const ids = selectedKeys.filter((id) => !cache.current.has(id));\n if (ids.length) {\n let resp;\n const params = {\n fields: [\"instanceId\"],\n query: {\n instanceId: {\n $in: ids,\n },\n },\n page_size: ids.length,\n };\n // useAutoDiscoveryProvider=true, 使用useProvider的接口,虽然这里列表用不到选择功能,但还是加上保持统一\n if (props.useAutoDiscoveryProvider) {\n resp = await listProvider.query([\n props.objectId,\n Object.assign(params, props.extraParams),\n ]);\n } else {\n resp = await InstanceApi_postSearchV3(props.objectId, params);\n }\n resp.list.forEach((i: Record<string, any>) =>\n cache.current.set(i.instanceId, i)\n );\n }\n selectedItems = selectedKeys.map((id) => cache.current.get(id));\n }\n props.onSelectionChange?.({ selectedItems, selectedKeys });\n },\n []\n );\n\n const onSearch = (value: string) => {\n const q = value.trim();\n setState({ q });\n props.onSearch?.(q);\n };\n\n const onAdvancedSearch = (\n queries: Query[],\n queriesToShow: Query[],\n fieldToShow: Record<string, any[]>[]\n ) => {\n setState({\n aq: queries,\n fieldToShow,\n aqToShow: queriesToShow,\n });\n props.onAdvancedSearch?.(queries);\n };\n\n const onSortingChange = useCallback(\n (info: ReadSortingChangeDetail) => {\n let asc: boolean;\n let sort: string;\n if (info.asc === undefined) {\n if (!state.sort) {\n return;\n }\n\n setState({ asc: undefined, sort: undefined });\n } else {\n setState({ asc: info.asc, sort: info.sort });\n asc = info.asc;\n sort = info.sort;\n }\n props.onSortingChange?.(info);\n },\n [state.sort]\n );\n\n const onPaginationChange = useCallback(\n (pagination: ReadPaginationChangeDetail) => {\n setState({ page: pagination.page, pageSize: pagination.pageSize });\n props.onPaginationChange?.(pagination);\n },\n []\n );\n\n const onInstanceSourceChange = useCallback((instanceSourceQuery: string) => {\n setState({ instanceSourceQuery });\n props.onInstanceSourceChange?.(instanceSourceQuery);\n }, []);\n\n const onRelatedToMeChange = (checked: boolean) => {\n setState({ relatedToMe: checked });\n props.onRelatedToMeChange?.(checked);\n };\n\n const onAliveHostsChange = (checked: boolean) => {\n setState({ aliveHosts: checked });\n props.onAliveHostsChange?.(checked);\n };\n\n const toggleAutoBreakLine = (autoBreakLine: boolean) => {\n setState({ autoBreakLine });\n };\n // istanbul ignore next (state is not updated)\n const toggleSearchMode = React.useCallback(async () => {\n if (!state.searchByApp) {\n const appListResp = await InstanceApi_postSearchV3(\"APP\", {\n fields: [\"clusters\", \"instanceId\", \"name\"],\n sort: [{ key: \"name\", order: 1 }],\n page: 1,\n page_size: 3000,\n });\n setState({\n appSearchInstanceId: appListResp.list?.[0].instanceId || \"\",\n appList: appListResp.list,\n clusterList: [...baseList, ...(appListResp.list?.[0].clusters || [])],\n searchByApp: true,\n appSelectValue: appListResp.list?.[0].instanceId || \"\",\n clusterValue: \"all\",\n page: 1,\n });\n } else {\n setState({ searchByApp: false, page: 1 });\n }\n }, [state.searchByApp]);\n // istanbul ignore next (state is not updated)\n const appSelectChange = (v: string) => {\n setState({\n appSearchInstanceId: v,\n currentChangeSelect: \"App\",\n appSelectValue: v,\n clusterValue: \"all\",\n clusterList: [\n ...baseList,\n ...state.appList.find((r) => r.instanceId === v).clusters,\n ],\n });\n };\n // istanbul ignore next (state is not updated)\n const clusterSelectChange = (v: string) => {\n setState({\n appSearchInstanceId: v === \"all\" ? state.appSelectValue : v,\n currentChangeSelect: \"Cluster\",\n clusterValue: v,\n });\n };\n const defaultFields = useMemo(() => {\n let defaultFields: string[];\n const fieldIds = props.presetConfigs?.fieldIds,\n extraFixedFieldIds = props.extraFixedFields ?? [];\n if (!isEmpty(fieldIds)) {\n defaultFields = props.presetConfigs.fieldIds;\n } else {\n defaultFields = computeDefaultFields().fieldIds;\n }\n if (!isEmpty(extraFixedFieldIds)) {\n defaultFields = uniq([...defaultFields, ...extraFixedFieldIds]);\n }\n return defaultFields;\n }, [props.presetConfigs, modelData]);\n\n // istanbul ignore next\n const handleConfirm = ({ fields, isReset }: DisplaySettingsModalData) => {\n if (isReset) {\n const fieldIds = defaultFields;\n modelData.isAbstract && fieldIds.push(\"_object_id\");\n setState({ fieldIds });\n jsonLocalStorage.removeItem(`${modelData.objectId}-selectAttrIds`);\n props.onFieldsModalConfirm(fieldIds);\n } else {\n setState({\n fieldIds: _sortFieldIds(fields),\n });\n jsonLocalStorage.setItem(`${modelData.objectId}-selectAttrIds`, fields);\n props.onFieldsModalConfirm(fields);\n }\n };\n\n useEffect(() => {\n props.notifyCurrentFields?.(state.fieldIds);\n }, [props.notifyCurrentFields]);\n\n // istanbul ignore next\n useEffect(() => {\n props.selectedRowKeys?.length &&\n (async () => {\n const data: InstanceApi_PostSearchRequestBody = {};\n const v3Data: InstanceApi_PostSearchV3RequestBody = {\n fields: [\"instanceId\"],\n };\n if (!isEmpty(props.permission)) {\n v3Data.permission = data.permission = props.permission;\n }\n\n if (state.fieldIds) {\n data.fields = Object.fromEntries(\n state.fieldIds.map((fieldId) => [fieldId, true])\n );\n v3Data.fields = [...state.fieldIds, ...v3Data.fields];\n (v3Data as any).ignore_missing_field_error = true;\n }\n\n v3Data.query = {\n instanceId: {\n $in: props.selectedRowKeys,\n },\n };\n v3Data.page_size = props.selectedRowKeys.length;\n\n if (state.relatedToMe) {\n v3Data.only_my_instance = data.only_my_instance = state.relatedToMe;\n }\n if (props.extraParams) {\n Object.assign(v3Data, props.extraParams);\n }\n let resp;\n if (props.useAutoDiscoveryProvider) {\n resp = await listProvider.query([props.objectId, v3Data]);\n } else {\n resp = await InstanceApi_postSearchV3(props.objectId, v3Data);\n }\n resp.list.forEach((i: Record<string, any>) =>\n cache.current.set(i.instanceId, i)\n );\n })();\n }, [props.selectedRowKeys]);\n const handleToggleFixHeader = () => {\n setFixHeader(!fixedHeader);\n };\n const onAdvancedSearchCloseGen = (attrId: string, valuesStr: string) => {\n return () => {\n const queries: Query[] = [];\n const queriesToShow: Query[] = [];\n const filterAq = (queries: any[]) =>\n queries.filter((v: any) => isValueEqualFn(v, attrId, valuesStr));\n state.aq.forEach((query) => {\n const key = Object.keys(query)[0];\n if (\n (key === \"$or\" || key === \"$and\") &&\n Object.keys((query[key] as Query[])[0])[0] === attrId\n ) {\n const filteredSubQueries = filterAq(query[key] as Query[]);\n if (filteredSubQueries.length > 0) {\n queries.push({\n [key]: filteredSubQueries,\n });\n }\n } else if (key !== attrId && !startsWith(attrId, `${key}.`)) {\n // $exists $gte $lte 针对为空,不为空,时间范围特殊处理\n if (!Array.isArray(query[key]) && isSpecialFn(query, key)) {\n queries.push(query);\n } else {\n const fieldId = Object.keys((query[key] as Query[])[0])[0];\n // 判断是否为结构体\n const isStruct = isOfStruct(modelData, fieldId);\n // 结构体情况处理\n if (\n !(\n (key === \"$or\" || key === \"$and\") &&\n startsWith(fieldId, `${attrId}.`) &&\n isStruct\n )\n ) {\n queries.push(query);\n }\n }\n } else if (\n props.isInstanceFilterForm &&\n key === attrId &&\n isValueEqualFn(query, attrId, valuesStr)\n ) {\n specialQueryHandler(query, key, queries);\n }\n });\n state.aqToShow.forEach((query) => {\n const key = Object.keys(query)[0];\n if (\n (key === \"$or\" || key === \"$and\") &&\n Object.keys((query[key] as Query[])[0])[0] === attrId\n ) {\n const filteredSubQueries = filterAq(query[key] as Query[]);\n if (filteredSubQueries.length > 0) {\n queriesToShow.push({\n [key]: filteredSubQueries,\n });\n }\n } else if (key !== attrId) {\n queriesToShow.push(query);\n } else if (\n props.isInstanceFilterForm &&\n key === attrId &&\n isValueEqualFn(query, attrId, valuesStr)\n ) {\n specialQueryHandler(query, key, queriesToShow);\n }\n });\n setState({\n aq: queries,\n aqToShow: queriesToShow,\n });\n props.onAdvancedSearch?.(queries);\n };\n };\n const conditions = translateConditions(\n state.aqToShow,\n idObjectMap,\n modelData\n );\n\n return (\n <Spin spinning={state.loading}>\n {state.inited && !state.failed ? (\n <React.Fragment>\n {(!props.searchDisabled ||\n !props.advancedSearchDisabled ||\n !props.relatedToMeDisabled ||\n !props.aliveHostsDisabled ||\n !props.moreButtonsDisabled) && (\n <div className={styles.instanceListToolbar}>\n <div className={styles.searchRelated}>\n {/* istanbul ignore next (state is not updated) */}\n {!state.searchByApp ? (\n <>\n {!props.searchDisabled && (\n <Input.Search\n 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.objectId === \"HOST\" && props.enableSearchByApp && (\n <Button type={\"link\"} onClick={toggleSearchMode}>\n {/* istanbul ignore next (state is not updated) */}\n {state.searchByApp\n ? i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FREE_SELECTION}`)\n : i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.APP_SELECTION}`)}\n </Button>\n )}\n {props.objectId === \"HOST\" && !props.aliveHostsDisabled && (\n <IconButton\n checked={state.aliveHosts}\n onChange={onAliveHostsChange}\n style={{ marginRight: 10 }}\n disabled={props.fixAliveHosts}\n type=\"normalHost\"\n label={i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.NORMAL_HOST}`)}\n data-testid=\"alive-hosts\"\n />\n )}\n {!props.relatedToMeDisabled && (\n <IconButton\n checked={state.relatedToMe}\n onChange={onRelatedToMeChange}\n style={{ marginRight: 10 }}\n type=\"relateToMe\"\n label={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.RELATED_TO_ME}`\n )}\n data-testid=\"related-to-me\"\n />\n )}\n {!props.showHiddenInfoDisabled && (\n <IconButton\n checked={state.autoBreakLine}\n onChange={toggleAutoBreakLine}\n style={{ marginRight: 10 }}\n type=\"showHiddenInfo\"\n label={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.DISPLAY_OMITTED_INFORMATION}`\n )}\n data-testid=\"show-hidden-info\"\n />\n )}\n {!props.moreButtonsDisabled && (\n <MoreButtonsContainer\n modelData={modelData}\n onConfirm={handleConfirm}\n fieldIds={state.fieldIds}\n defaultFields={defaultFields}\n extraDisabledField={props.extraDisabledField}\n handleToggleFixHeader={handleToggleFixHeader}\n fixedHeader={fixedHeader}\n showFixedHeader={props.showFixedHeader}\n />\n )}\n </div>\n </div>\n )}\n {!props.advancedSearchDisabled && !state.searchByApp && (\n <div\n style={{ marginBottom: \"18px\" }}\n hidden={!state.isAdvancedSearchVisible}\n >\n <AdvancedSearch\n key={newKey(state.fieldIds, state.aq)}\n fieldIds={state.fieldIds}\n idObjectMap={state.idObjectMap}\n modelData={modelData}\n q={state.aqToShow}\n fieldToShow={state.fieldToShow}\n onSearch={onAdvancedSearch}\n {...(props.autoSearch\n ? {\n autoSearch: props.autoSearch,\n }\n : null)}\n />\n </div>\n )}\n {!props.hideSearchConditions &&\n !state.searchByApp &&\n (state.instanceSourceQuery || state.q || !isEmpty(conditions)) && (\n <div className={styles.searchConditions}>\n <span>\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.CURRENT_FILTER_REQUIREMENTS}`\n )}\n </span>\n {state.q && (\n <Tag\n closable\n onClose={() => {\n setQ(\"\");\n onSearch(\"\");\n }}\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FUZZY_SEARCH}`, {\n query: state.q,\n })}\n </Tag>\n )}\n {state.instanceSourceQuery && (\n <Tag\n closable\n onClose={() => {\n onInstanceSourceChange(null);\n }}\n >\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.INSTANCE_SOURCE_TAG_TEXT}`,\n {\n query:\n inheritanceModelIdNameMap?.[\n state.instanceSourceQuery\n ] || state.instanceSourceQuery,\n }\n )}\n </Tag>\n )}\n {conditions.map((condition) => (\n <Tag\n key={`${condition.attrId}${\n condition.valuesStr\n }-${uniqueId()}`}\n closable\n onClose={onAdvancedSearchCloseGen(\n condition.attrId,\n condition.valuesStr\n )}\n >\n {condition.condition}\n </Tag>\n ))}\n </div>\n )}\n {props.extraFilterBricks?.useBrick && (\n <BrickAsComponent useBrick={props.extraFilterBricks.useBrick} />\n )}\n {!props.hideInstanceList && (\n <InstanceListTable\n detailUrlTemplates={props.detailUrlTemplates}\n fieldIds={state.fieldIds}\n idObjectMap={state.idObjectMap}\n modelData={modelData}\n instanceListData={state.instanceListData}\n sort={state.sort}\n asc={state.asc}\n selectedRowKeys={selectedRowKeys}\n selectDisabled={props.selectDisabled}\n sortDisabled={props.sortDisabled}\n propertyDisplayConfigs={props.propertyDisplayConfigs}\n onClickItem={props.onClickItem}\n onClickItemV2={props.onClickItemV2}\n onPaginationChange={onPaginationChange}\n onSortingChange={onSortingChange}\n onSelectionChange={onSelectionChange}\n onInstanceSourceChange={onInstanceSourceChange}\n instanceSourceQuery={state.instanceSourceQuery}\n inheritanceModelIdNameMap={inheritanceModelIdNameMap}\n filterInstanceSourceDisabled={props.filterInstanceSourceDisabled}\n autoBreakLine={state.autoBreakLine}\n relationLinkDisabled={props.relationLinkDisabled}\n pageSizeOptions={props.pageSizeOptions}\n showSizeChanger={props.showSizeChanger}\n extraColumns={props.extraColumns}\n target={props.target}\n ipCopy={props.ipCopy}\n fixedHeader={fixedHeader}\n separatorUsedInRelationData={props.separatorUsedInRelationData}\n showTooltip={showTooltip}\n rowSelectionType={props.rowSelectionType}\n />\n )}\n </React.Fragment>\n ) : (\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 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 const list = (\n await CmdbObjectApi_getObjectRef({ ref_object: props.objectId })\n ).data;\n setObjectList(list);\n objectListCache.set(props.objectId, list);\n } catch (e) {\n // istanbul ignore next\n handleHttpError(e);\n }\n }\n })();\n }\n }, [props.objectId, props.objectList]);\n\n if (\n !objectList ||\n !objectList.find((item) => item.objectId === props.objectId)\n )\n return null;\n\n return <LegacyInstanceList {...props} objectList={objectList} />;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"InstanceList.js","names":["joinRelationFieldAndShowkey","fields","modelData","objectList","attrIdMap","keyBy","attrList","map","field","relation","relation_list","find","left_id","right_id","isLeft","left_object_id","objectId","otherSideObjectId","right_object_id","otherSideObject","object","showKey","view","show_key","getQuery","idObjectMap","q","onlySearchByIp","query","$or","queryValues","trim","split","searchIpFields","getRuntime","getCurrentApp","config","queryOrs","Set","searchValue","$like","forEach","key","push","forEachAvailableFields","attr","queryValue","id","sides","this","nameKeys","getInstanceNameKeys","that","nameKey","isSpecialFn","attrId","Object","keys","some","v","specialQueryHandler","queries","isSpecial","isValueEqualFn","valuesStr","values","join","translateConditions","aq","t","conditions","relations","sidesArr","isSelfRelation","getRelationObjectSides","relationObject","nameOfNameKey","name","value","type","relationSideId","attrAndRelationList","isEmpty","ElementOperators","Exists","changeQueryWithCustomRules","info","getFieldConditionsAndValues","undefined","ConditionType","Between","Empty","NotEmpty","False","True","includes","currentCondition","isString","replace","condition","label","curCondition","queryValuesStr","every","isEqual","omit","newKey","fieldIds","length","isOfStruct","fieldId","structFields","filter","structs","struct_define","struct","flat","isOfBoolean","keyAttrMap","ModelAttributeValueType","BOOLEAN","initAqToShow","isToShow","newAqToShow","aqToShow","entries","expressions","newExpressions","LogicalOperators","Or","And","firstSubQuery","isStruct","isBool","structQueries","expression","structExpressions","item","boolExpressions","targetValue","LegacyInstanceList","props","showTooltip","baseList","instanceId","i18n","NS_LIBS_CMDB_INSTANCES","K","ALL_CLUSTER","jsonLocalStorage","JsonStorage","localStorage","reducer","prevState","updatedProperty","listProvider","useProvider","cache","instanceArchiveListProvider","useMemo","disabledDefaultFields","union","extraFieldAttrs","inheritanceModelIdNameMap","setInheritanceModelIdNameMap","useState","fixedHeader","setFixHeader","fetchInheritanceModelIdNameMap","idNameMap","isAbstract","CmdbObjectApi_getIdMapName","parentObjectId","useEffect","computeDefaultFields","inModal","settings","CMDB_MODAL_FIELDS_SETTINGS","CMDB_RESOURCE_FIELDS_SETTINGS","ignoredFields","concat","hide_columns","sortFields","attr_order","allFields","difference","slice","_sortFieldIds","frontFields","restFields","presetConfigs","sortBy","reject","foundIndex","findIndex","orderId","getFields","extraFixedFieldIds","extraFixedFields","getItem","uniq","extraDisabledField","hideModelData","setQ","state","setState","useReducer","instanceSourceQuery","asc","sort","page","dataSource","pageSize","aliveHosts","relatedToMe","inited","loading","failed","isAdvancedSearchVisible","presetConfigsQuery","autoBreakLine","appSearchInstanceId","currentChangeSelect","appSelectValue","clusterValue","appList","clusterList","searchByApp","selectedRowKeys","setSelectedRowKeys","useRef","Map","isFirstRunRef","getInstanceListData","data","v3Data","permission","archiveData","sortType","default_type","order","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","InstanceApi_postSearchV3","refreshInstanceList","instanceListData","hideInstanceList","list","current","set","e","handleHttpError","skip","onPaginationChange","onChange","target","onSelectionChange","useCallback","selected","selectedItems","selectedKeys","compact","ids","has","resp","params","page_size","get","onSearch","onAdvancedSearch","queriesToShow","fieldToShow","onSortingChange","pagination","onInstanceSourceChange","onRelatedToMeChange","checked","onAliveHostsChange","toggleAutoBreakLine","toggleSearchMode","React","appListResp","clusters","appSelectChange","r","clusterSelectChange","defaultFields","handleConfirm","isReset","removeItem","onFieldsModalConfirm","setItem","notifyCurrentFields","handleToggleFixHeader","onAdvancedSearchCloseGen","filterAq","filteredSubQueries","startsWith","Array","isArray","isInstanceFilterForm","searchDisabled","advancedSearchDisabled","relatedToMeDisabled","aliveHostsDisabled","moreButtonsDisabled","styles","instanceListToolbar","searchRelated","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","virtualLoading","InstanceList","setObjectList","cacheData","objectListCache","CmdbObjectApi_getObjectRef","ref_object"],"sources":["../../../src/instance-list/InstanceList.tsx"],"sourcesContent":["import React, {\n useEffect,\n useReducer,\n useState,\n useRef,\n useMemo,\n useCallback,\n} from \"react\";\nimport {\n difference,\n isEmpty,\n isEqual,\n isString,\n map,\n uniq,\n union,\n filter,\n reject,\n sortBy,\n uniqueId,\n findIndex,\n find,\n startsWith,\n compact,\n omit,\n keyBy,\n} from \"lodash\";\nimport {\n BrickAsComponent,\n getRuntime,\n handleHttpError,\n useProvider,\n} from \"@next-core/brick-kit\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport {\n PropertyDisplayConfig,\n ReadPaginationChangeDetail,\n ReadSelectionChangeDetail,\n ReadSortingChangeDetail,\n UseBrickConf,\n} from \"@next-core/brick-types\";\nimport {\n CmdbModels,\n InstanceApi_PostSearchRequestBody,\n InstanceApi_PostSearchV3RequestBody,\n InstanceApi_PostSearchV3ResponseBody,\n InstanceApi_postSearchV3,\n CmdbObjectApi_getIdMapName,\n CmdbObjectApi_getObjectRef,\n} from \"@next-sdk/cmdb-sdk\";\nimport { Icon as LegacyIcon } from \"@ant-design/compatible\";\nimport { Button, Spin, Input, Tag, Select } from \"antd\";\nimport {\n getRelationObjectSides,\n forEachAvailableFields,\n getInstanceNameKeys,\n RelationIdKeys,\n RelationNameKeys,\n RelationObjectIdKeys,\n RelationObjectSides,\n isSelfRelation,\n Query,\n ElementOperators,\n LogicalOperators,\n ComparisonOperators,\n} from \"@next-libs/cmdb-utils\";\nimport { JsonStorage } from \"@next-libs/storage\";\nimport { ModelObjectAttr } from \"@next-sdk/cmdb-sdk/dist/types/model/cmdb\";\n\nimport {\n ConditionType,\n AdvancedSearch,\n getFieldConditionsAndValues,\n MoreButtonsContainer,\n InstanceListTable,\n CustomColumn,\n Field,\n UseBrickAndPropertyDisplayConfig,\n} from \"../instance-list-table\";\nimport styles from \"./InstanceList.module.css\";\nimport {\n extraFieldAttrs,\n CMDB_MODAL_FIELDS_SETTINGS,\n CMDB_RESOURCE_FIELDS_SETTINGS,\n objectListCache,\n} from \"./constants\";\nimport { ModelAttributeValueType } from \"../model-attribute-form-control/ModelAttributeFormControl\";\nimport { IconButton } from \"./IconButton\";\nimport { changeQueryWithCustomRules } from \"../processors\";\nimport { DisplaySettingsModalData } from \"../instance-list-table/DisplaySettingsModal\";\n\nexport interface instanceArchiveRequestBody {\n // 搜索内容\n key_word?: string;\n /** 页码 */\n page?: number;\n /** 页大小 */\n page_size?: number;\n fields?: string;\n}\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};\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\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}\n\ninterface InstanceListState {\n objectId: string;\n q: string;\n aq: Query[];\n aqToShow?: Query[];\n instanceSourceQuery: string;\n asc: boolean;\n sort: string;\n page: number;\n pageSize: number;\n aliveHosts: boolean;\n relatedToMe: boolean;\n inited: boolean;\n loading: boolean;\n failed: boolean;\n idObjectMap?: Record<string, Partial<CmdbModels.ModelCmdbObject>>;\n instanceListData?: InstanceApi_PostSearchV3ResponseBody;\n isAdvancedSearchVisible: boolean;\n fieldIds: string[];\n autoBreakLine: boolean;\n fieldToShow?: Record<string, any[]>[];\n appSearchInstanceId?: string;\n currentChangeSelect?: string;\n appSelectValue?: string;\n clusterValue?: string;\n appList?: Record<string, any>[];\n clusterList?: Record<string, any>[];\n searchByApp?: boolean;\n showTooltip?: boolean;\n presetConfigsQuery?: Record<string, any>;\n}\n\nexport function LegacyInstanceList(\n props: InstanceListProps\n): React.ReactElement {\n const { showTooltip = true } = props;\n const baseList = [\n {\n instanceId: \"all\",\n name: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.ALL_CLUSTER}`),\n },\n ];\n const jsonLocalStorage = new JsonStorage(localStorage);\n const reducer = (\n prevState: InstanceListState,\n updatedProperty: Partial<InstanceListState>\n ): InstanceListState => {\n return {\n ...prevState,\n ...updatedProperty,\n };\n };\n // 资源自动发现页面24小时发现主机抽屉的实例列表处,通用的postSearchV3接口无法查到正确结果,需要用下面的接口替换,参数里也要加上jobId:***\n // 为了不影响其他地方的实例列表,在该处加一个useAutoDiscoveryProvider参数,该参数为undefined或false的,仍调用原接口\n\n const listProvider = useProvider(\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 { modelData, idObjectMap } = useMemo(() => {\n let modelData: Partial<CmdbModels.ModelCmdbObject>;\n const idObjectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>> = {};\n props.objectList.forEach((object) => {\n idObjectMap[object.objectId] = object;\n if (object.objectId === props.objectId) {\n modelData = object;\n modelData.attrList = !props.disabledDefaultFields\n ? union(object.attrList, extraFieldAttrs)\n : object.attrList;\n }\n });\n\n return { modelData, idObjectMap };\n }, [props.objectList, props.objectId]);\n\n const [inheritanceModelIdNameMap, setInheritanceModelIdNameMap] = useState<\n Record<string, string>\n >({});\n const [fixedHeader, setFixHeader] = useState(false);\n\n const fetchInheritanceModelIdNameMap = async (\n modelData: Partial<CmdbModels.ModelCmdbObject>\n ): Promise<void> => {\n let idNameMap = {};\n if (modelData.isAbstract) {\n idNameMap = await CmdbObjectApi_getIdMapName({\n parentObjectId: modelData.objectId,\n } as any);\n }\n setInheritanceModelIdNameMap(idNameMap);\n };\n\n useEffect(() => {\n fetchInheritanceModelIdNameMap(modelData);\n }, [modelData]);\n\n const computeDefaultFields = (\n { inModal } = { inModal: false }\n ): { fieldIds: string[] } => {\n // 针对 显示字段,默认优先拿排序的字段,再去拿属性字段\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\n const getFields = () => {\n let fieldIds = props.presetConfigs?.fieldIds;\n const extraFixedFieldIds = props.extraFixedFields ?? [];\n if (isEmpty(fieldIds)) {\n fieldIds = jsonLocalStorage.getItem(\n `${modelData.objectId}-selectAttrIds`\n );\n }\n if (isEmpty(fieldIds)) {\n fieldIds = computeDefaultFields().fieldIds;\n }\n if (!isEmpty(extraFixedFieldIds)) {\n fieldIds = uniq([...fieldIds, ...extraFixedFieldIds]);\n }\n fieldIds = props.extraDisabledField\n ? uniq([...fieldIds, props.extraDisabledField])\n : fieldIds;\n fieldIds = _sortFieldIds(fieldIds);\n const hideModelData: string[] = modelData.view.hide_columns || [];\n fieldIds = fieldIds.filter((field) => !hideModelData.includes(field));\n modelData.isAbstract && fieldIds.push(\"_object_id\");\n return fieldIds;\n };\n\n const [q, setQ] = useState(props.q);\n const [state, setState] = useReducer(reducer, undefined, () => ({\n objectId: props.objectId,\n q: props.q,\n aq: initAqToShow(props.aq, modelData, false),\n aqToShow: props.aqToShow || initAqToShow(props.aq, modelData),\n instanceSourceQuery: props.instanceSourceQuery,\n asc: props.asc,\n sort: props.sort,\n page: props.dataSource?.page ?? props.page ?? 1,\n pageSize: props.dataSource?.pageSize ?? props.pageSize ?? 10,\n aliveHosts: props.aliveHosts,\n relatedToMe: props.relatedToMe,\n inited: false,\n loading: false,\n failed: false,\n isAdvancedSearchVisible: false,\n fieldIds: getFields(),\n presetConfigsQuery: props.presetConfigs?.query,\n autoBreakLine: false,\n appSearchInstanceId: \"\",\n currentChangeSelect: \"App\",\n appSelectValue: \"\",\n clusterValue: \"all\",\n appList: [],\n clusterList: [\n {\n instanceId: \"all\",\n name: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.ALL_CLUSTER}`),\n },\n ],\n searchByApp: false,\n }));\n const [selectedRowKeys, setSelectedRowKeys] = useState(\n props.selectedRowKeys ?? []\n );\n const cache = useRef(new Map<string, InstanceApi_PostSearchV3ResponseBody>());\n const isFirstRunRef = useRef(true);\n\n const getInstanceListData = async (\n sort: string,\n asc: boolean,\n page: number\n ): Promise<InstanceApi_PostSearchV3ResponseBody> => {\n const data: InstanceApi_PostSearchRequestBody = {};\n const v3Data: InstanceApi_PostSearchV3RequestBody = {\n fields: props?.extraFixedFields\n ? uniq([\"instanceId\"].concat(props?.extraFixedFields))\n : [\"instanceId\"],\n };\n if (!isEmpty(props.permission)) {\n v3Data.permission = data.permission = props.permission;\n }\n\n 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 return promise\n ? promise\n : props.useAutoDiscoveryProvider\n ? listProvider.query([props.objectId, v3Data])\n : InstanceApi_postSearchV3(props.objectId, v3Data);\n };\n\n const refreshInstanceList = async (\n sort: string,\n asc: boolean,\n page: number\n ): Promise<void> => {\n setState({ loading: true });\n try {\n if (props.dataSource) {\n setState({\n idObjectMap: idObjectMap,\n instanceListData: props.dataSource,\n });\n } else {\n if (!props.hideInstanceList) {\n const instanceListData = await getInstanceListData(sort, asc, page);\n instanceListData.list.forEach((i) =>\n cache.current.set(i.instanceId, i)\n );\n setState({ idObjectMap: idObjectMap, instanceListData });\n } else {\n setState({\n idObjectMap: idObjectMap,\n instanceListData: [] as InstanceApi_PostSearchV3ResponseBody,\n });\n }\n }\n } catch (e) {\n handleHttpError(e);\n setState({ failed: true });\n } finally {\n setState({ inited: true, loading: false });\n }\n };\n\n useEffect(() => {\n const fieldIds = getFields();\n if (\n // 当 props.objectId 改变时,总是更新 state.fieldIds\n props.objectId !== state.objectId ||\n !isEqual(fieldIds, state.fieldIds) ||\n !isEqual(props.presetConfigs?.query, state.presetConfigsQuery)\n ) {\n setState({\n fieldIds,\n presetConfigsQuery: props.presetConfigs?.query,\n });\n }\n }, [props.objectId, props.presetConfigs]);\n\n useEffect(() => {\n setSelectedRowKeys(props.selectedRowKeys ?? []);\n }, [props.objectId, props.selectedRowKeys]);\n\n // on filter condition change\n useEffect(() => {\n if (isFirstRunRef.current) {\n isFirstRunRef.current = false;\n return;\n }\n\n let skip = false;\n\n if (state.page !== 1) {\n setState({ page: 1 });\n props.onPaginationChange?.({ page: 1, pageSize: state.pageSize });\n skip = true;\n }\n\n // 当 prop.objectId 改变时先跳过,等 state.fieldIds 更新后再获取数据\n if (props.objectId !== state.objectId) {\n setState({ objectId: props.objectId });\n skip = true;\n }\n\n if (skip) {\n return;\n }\n\n refreshInstanceList(state.sort, state.asc, 1);\n }, [\n state.q,\n state.aq,\n state.instanceSourceQuery,\n state.pageSize,\n state.aliveHosts,\n state.relatedToMe,\n props.objectId,\n props.permission,\n props.defaultQuery,\n ]);\n\n // on other condition change\n useEffect(() => {\n if (isEmpty(state.fieldIds)) return;\n refreshInstanceList(state.sort, state.asc, state.page);\n }, [\n state.page,\n state.sort,\n state.asc,\n state.fieldIds,\n state.appSearchInstanceId,\n state.currentChangeSelect,\n state.searchByApp,\n props.dataSource,\n state.presetConfigsQuery,\n ]);\n\n const onChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setQ(e.target.value);\n };\n\n // istanbul ignore next\n const onSelectionChange = useCallback(\n async (selected: { selectedKeys: string[]; selectedItems: any[] }) => {\n let { selectedItems, selectedKeys } = selected;\n setSelectedRowKeys(selectedKeys);\n if (selectedKeys.length > compact(selectedItems).length) {\n const ids = selectedKeys.filter((id) => !cache.current.has(id));\n if (ids.length) {\n let resp;\n const params = {\n fields: [\"instanceId\"],\n query: {\n instanceId: {\n $in: ids,\n },\n },\n page_size: ids.length,\n };\n // useAutoDiscoveryProvider=true, 使用useProvider的接口,虽然这里列表用不到选择功能,但还是加上保持统一\n if (props.useAutoDiscoveryProvider) {\n resp = await listProvider.query([\n props.objectId,\n Object.assign(params, props.extraParams),\n ]);\n } else {\n resp = await InstanceApi_postSearchV3(props.objectId, params);\n }\n resp.list.forEach((i: Record<string, any>) =>\n cache.current.set(i.instanceId, i)\n );\n }\n selectedItems = selectedKeys.map((id) => cache.current.get(id));\n }\n props.onSelectionChange?.({ selectedItems, selectedKeys });\n },\n []\n );\n\n const onSearch = (value: string) => {\n const q = value.trim();\n setState({ q });\n props.onSearch?.(q);\n };\n\n const onAdvancedSearch = (\n queries: Query[],\n queriesToShow: Query[],\n fieldToShow: Record<string, any[]>[]\n ) => {\n setState({\n aq: queries,\n fieldToShow,\n aqToShow: queriesToShow,\n });\n props.onAdvancedSearch?.(queries);\n };\n\n const onSortingChange = useCallback(\n (info: ReadSortingChangeDetail) => {\n let asc: boolean;\n let sort: string;\n if (info.asc === undefined) {\n if (!state.sort) {\n return;\n }\n\n setState({ asc: undefined, sort: undefined });\n } else {\n setState({ asc: info.asc, sort: info.sort });\n asc = info.asc;\n sort = info.sort;\n }\n props.onSortingChange?.(info);\n },\n [state.sort]\n );\n\n const onPaginationChange = useCallback(\n (pagination: ReadPaginationChangeDetail) => {\n setState({ page: pagination.page, pageSize: pagination.pageSize });\n props.onPaginationChange?.(pagination);\n },\n []\n );\n\n const onInstanceSourceChange = useCallback((instanceSourceQuery: string) => {\n setState({ instanceSourceQuery });\n props.onInstanceSourceChange?.(instanceSourceQuery);\n }, []);\n\n const onRelatedToMeChange = (checked: boolean) => {\n setState({ relatedToMe: checked });\n props.onRelatedToMeChange?.(checked);\n };\n\n const onAliveHostsChange = (checked: boolean) => {\n setState({ aliveHosts: checked });\n props.onAliveHostsChange?.(checked);\n };\n\n const toggleAutoBreakLine = (autoBreakLine: boolean) => {\n setState({ autoBreakLine });\n };\n // istanbul ignore next (state is not updated)\n const toggleSearchMode = React.useCallback(async () => {\n if (!state.searchByApp) {\n const appListResp = await InstanceApi_postSearchV3(\"APP\", {\n fields: [\"clusters\", \"instanceId\", \"name\"],\n sort: [{ key: \"name\", order: 1 }],\n page: 1,\n page_size: 3000,\n });\n setState({\n appSearchInstanceId: appListResp.list?.[0].instanceId || \"\",\n appList: appListResp.list,\n clusterList: [...baseList, ...(appListResp.list?.[0].clusters || [])],\n searchByApp: true,\n appSelectValue: appListResp.list?.[0].instanceId || \"\",\n clusterValue: \"all\",\n page: 1,\n });\n } else {\n setState({ searchByApp: false, page: 1 });\n }\n }, [state.searchByApp]);\n // istanbul ignore next (state is not updated)\n const appSelectChange = (v: string) => {\n setState({\n appSearchInstanceId: v,\n currentChangeSelect: \"App\",\n appSelectValue: v,\n clusterValue: \"all\",\n clusterList: [\n ...baseList,\n ...state.appList.find((r) => r.instanceId === v).clusters,\n ],\n });\n };\n // istanbul ignore next (state is not updated)\n const clusterSelectChange = (v: string) => {\n setState({\n appSearchInstanceId: v === \"all\" ? state.appSelectValue : v,\n currentChangeSelect: \"Cluster\",\n clusterValue: v,\n });\n };\n const defaultFields = useMemo(() => {\n let defaultFields: string[];\n const fieldIds = props.presetConfigs?.fieldIds,\n extraFixedFieldIds = props.extraFixedFields ?? [];\n if (!isEmpty(fieldIds)) {\n defaultFields = props.presetConfigs.fieldIds;\n } else {\n defaultFields = computeDefaultFields().fieldIds;\n }\n if (!isEmpty(extraFixedFieldIds)) {\n defaultFields = uniq([...defaultFields, ...extraFixedFieldIds]);\n }\n return defaultFields;\n }, [props.presetConfigs, modelData]);\n\n // istanbul ignore next\n const handleConfirm = ({ fields, isReset }: DisplaySettingsModalData) => {\n if (isReset) {\n const fieldIds = defaultFields;\n modelData.isAbstract && fieldIds.push(\"_object_id\");\n setState({ fieldIds });\n jsonLocalStorage.removeItem(`${modelData.objectId}-selectAttrIds`);\n props.onFieldsModalConfirm(fieldIds);\n } else {\n setState({\n fieldIds: _sortFieldIds(fields),\n });\n jsonLocalStorage.setItem(`${modelData.objectId}-selectAttrIds`, fields);\n props.onFieldsModalConfirm(fields);\n }\n };\n\n useEffect(() => {\n props.notifyCurrentFields?.(state.fieldIds);\n }, [props.notifyCurrentFields]);\n\n // istanbul ignore next\n useEffect(() => {\n props.selectedRowKeys?.length &&\n (async () => {\n const data: InstanceApi_PostSearchRequestBody = {};\n const v3Data: InstanceApi_PostSearchV3RequestBody = {\n fields: [\"instanceId\"],\n };\n if (!isEmpty(props.permission)) {\n v3Data.permission = data.permission = props.permission;\n }\n\n if (state.fieldIds) {\n data.fields = Object.fromEntries(\n state.fieldIds.map((fieldId) => [fieldId, true])\n );\n v3Data.fields = [...state.fieldIds, ...v3Data.fields];\n (v3Data as any).ignore_missing_field_error = true;\n }\n\n v3Data.query = {\n instanceId: {\n $in: props.selectedRowKeys,\n },\n };\n v3Data.page_size = props.selectedRowKeys.length;\n\n if (state.relatedToMe) {\n v3Data.only_my_instance = data.only_my_instance = state.relatedToMe;\n }\n if (props.extraParams) {\n Object.assign(v3Data, props.extraParams);\n }\n let resp;\n if (props.useAutoDiscoveryProvider) {\n resp = await listProvider.query([props.objectId, v3Data]);\n } else {\n resp = await InstanceApi_postSearchV3(props.objectId, v3Data);\n }\n resp.list.forEach((i: Record<string, any>) =>\n cache.current.set(i.instanceId, i)\n );\n })();\n }, [props.selectedRowKeys]);\n const handleToggleFixHeader = () => {\n setFixHeader(!fixedHeader);\n };\n const onAdvancedSearchCloseGen = (attrId: string, valuesStr: string) => {\n return () => {\n const queries: Query[] = [];\n const queriesToShow: Query[] = [];\n const filterAq = (queries: any[]) =>\n queries.filter((v: any) => isValueEqualFn(v, attrId, valuesStr));\n state.aq.forEach((query) => {\n const key = Object.keys(query)[0];\n if (\n (key === \"$or\" || key === \"$and\") &&\n Object.keys((query[key] as Query[])[0])[0] === attrId\n ) {\n const filteredSubQueries = filterAq(query[key] as Query[]);\n if (filteredSubQueries.length > 0) {\n queries.push({\n [key]: filteredSubQueries,\n });\n }\n } else if (key !== attrId && !startsWith(attrId, `${key}.`)) {\n // $exists $gte $lte 针对为空,不为空,时间范围特殊处理\n if (!Array.isArray(query[key]) && isSpecialFn(query, key)) {\n queries.push(query);\n } else {\n const fieldId = Object.keys((query[key] as Query[])[0])[0];\n // 判断是否为结构体\n const isStruct = isOfStruct(modelData, fieldId);\n // 结构体情况处理\n if (\n !(\n (key === \"$or\" || key === \"$and\") &&\n startsWith(fieldId, `${attrId}.`) &&\n isStruct\n )\n ) {\n queries.push(query);\n }\n }\n } else if (\n props.isInstanceFilterForm &&\n key === attrId &&\n isValueEqualFn(query, attrId, valuesStr)\n ) {\n specialQueryHandler(query, key, queries);\n }\n });\n state.aqToShow.forEach((query) => {\n const key = Object.keys(query)[0];\n if (\n (key === \"$or\" || key === \"$and\") &&\n Object.keys((query[key] as Query[])[0])[0] === attrId\n ) {\n const filteredSubQueries = filterAq(query[key] as Query[]);\n if (filteredSubQueries.length > 0) {\n queriesToShow.push({\n [key]: filteredSubQueries,\n });\n }\n } else if (key !== attrId) {\n queriesToShow.push(query);\n } else if (\n props.isInstanceFilterForm &&\n key === attrId &&\n isValueEqualFn(query, attrId, valuesStr)\n ) {\n specialQueryHandler(query, key, queriesToShow);\n }\n });\n setState({\n aq: queries,\n aqToShow: queriesToShow,\n });\n props.onAdvancedSearch?.(queries);\n };\n };\n const conditions = translateConditions(\n state.aqToShow,\n idObjectMap,\n modelData\n );\n\n return (\n <Spin spinning={state.loading}>\n {state.inited && !state.failed ? (\n <React.Fragment>\n {(!props.searchDisabled ||\n !props.advancedSearchDisabled ||\n !props.relatedToMeDisabled ||\n !props.aliveHostsDisabled ||\n !props.moreButtonsDisabled) && (\n <div className={styles.instanceListToolbar}>\n <div className={styles.searchRelated}>\n {/* istanbul ignore next (state is not updated) */}\n {!state.searchByApp ? (\n <>\n {!props.searchDisabled && (\n <Input.Search\n 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.objectId === \"HOST\" && props.enableSearchByApp && (\n <Button type={\"link\"} onClick={toggleSearchMode}>\n {/* istanbul ignore next (state is not updated) */}\n {state.searchByApp\n ? i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FREE_SELECTION}`)\n : i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.APP_SELECTION}`)}\n </Button>\n )}\n {props.objectId === \"HOST\" && !props.aliveHostsDisabled && (\n <IconButton\n checked={state.aliveHosts}\n onChange={onAliveHostsChange}\n style={{ marginRight: 10 }}\n disabled={props.fixAliveHosts}\n type=\"normalHost\"\n label={i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.NORMAL_HOST}`)}\n data-testid=\"alive-hosts\"\n />\n )}\n {!props.relatedToMeDisabled && (\n <IconButton\n checked={state.relatedToMe}\n onChange={onRelatedToMeChange}\n style={{ marginRight: 10 }}\n type=\"relateToMe\"\n label={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.RELATED_TO_ME}`\n )}\n data-testid=\"related-to-me\"\n />\n )}\n {!props.showHiddenInfoDisabled && (\n <IconButton\n checked={state.autoBreakLine}\n onChange={toggleAutoBreakLine}\n style={{ marginRight: 10 }}\n type=\"showHiddenInfo\"\n label={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.DISPLAY_OMITTED_INFORMATION}`\n )}\n data-testid=\"show-hidden-info\"\n />\n )}\n {!props.moreButtonsDisabled && (\n <MoreButtonsContainer\n modelData={modelData}\n onConfirm={handleConfirm}\n fieldIds={state.fieldIds}\n defaultFields={defaultFields}\n extraDisabledField={props.extraDisabledField}\n handleToggleFixHeader={handleToggleFixHeader}\n fixedHeader={fixedHeader}\n showFixedHeader={props.showFixedHeader}\n />\n )}\n </div>\n </div>\n )}\n {!props.advancedSearchDisabled && !state.searchByApp && (\n <div\n style={{ marginBottom: \"18px\" }}\n hidden={!state.isAdvancedSearchVisible}\n >\n <AdvancedSearch\n key={newKey(state.fieldIds, state.aq)}\n fieldIds={state.fieldIds}\n idObjectMap={state.idObjectMap}\n modelData={modelData}\n q={state.aqToShow}\n fieldToShow={state.fieldToShow}\n onSearch={onAdvancedSearch}\n {...(props.autoSearch\n ? {\n autoSearch: props.autoSearch,\n }\n : null)}\n />\n </div>\n )}\n {!props.hideSearchConditions &&\n !state.searchByApp &&\n (state.instanceSourceQuery || state.q || !isEmpty(conditions)) && (\n <div className={styles.searchConditions}>\n <span>\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.CURRENT_FILTER_REQUIREMENTS}`\n )}\n </span>\n {state.q && (\n <Tag\n closable\n onClose={() => {\n setQ(\"\");\n onSearch(\"\");\n }}\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FUZZY_SEARCH}`, {\n query: state.q,\n })}\n </Tag>\n )}\n {state.instanceSourceQuery && (\n <Tag\n closable\n onClose={() => {\n onInstanceSourceChange(null);\n }}\n >\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.INSTANCE_SOURCE_TAG_TEXT}`,\n {\n query:\n inheritanceModelIdNameMap?.[\n state.instanceSourceQuery\n ] || state.instanceSourceQuery,\n }\n )}\n </Tag>\n )}\n {conditions.map((condition) => (\n <Tag\n key={`${condition.attrId}${\n condition.valuesStr\n }-${uniqueId()}`}\n closable\n onClose={onAdvancedSearchCloseGen(\n condition.attrId,\n condition.valuesStr\n )}\n >\n {condition.condition}\n </Tag>\n ))}\n </div>\n )}\n {props.extraFilterBricks?.useBrick && (\n <BrickAsComponent useBrick={props.extraFilterBricks.useBrick} />\n )}\n {!props.hideInstanceList && (\n <InstanceListTable\n detailUrlTemplates={props.detailUrlTemplates}\n fieldIds={state.fieldIds}\n idObjectMap={state.idObjectMap}\n modelData={modelData}\n instanceListData={state.instanceListData}\n sort={state.sort}\n asc={state.asc}\n selectedRowKeys={selectedRowKeys}\n selectDisabled={props.selectDisabled}\n sortDisabled={props.sortDisabled}\n propertyDisplayConfigs={props.propertyDisplayConfigs}\n onClickItem={props.onClickItem}\n onClickItemV2={props.onClickItemV2}\n onPaginationChange={onPaginationChange}\n onSortingChange={onSortingChange}\n onSelectionChange={onSelectionChange}\n onInstanceSourceChange={onInstanceSourceChange}\n instanceSourceQuery={state.instanceSourceQuery}\n inheritanceModelIdNameMap={inheritanceModelIdNameMap}\n filterInstanceSourceDisabled={props.filterInstanceSourceDisabled}\n autoBreakLine={state.autoBreakLine}\n relationLinkDisabled={props.relationLinkDisabled}\n pageSizeOptions={props.pageSizeOptions}\n showSizeChanger={props.showSizeChanger}\n extraColumns={props.extraColumns}\n target={props.target}\n ipCopy={props.ipCopy}\n fixedHeader={fixedHeader}\n separatorUsedInRelationData={props.separatorUsedInRelationData}\n showTooltip={showTooltip}\n rowSelectionType={props.rowSelectionType}\n />\n )}\n </React.Fragment>\n ) : (\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 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 const list = (\n await CmdbObjectApi_getObjectRef({ ref_object: props.objectId })\n ).data;\n setObjectList(list);\n objectListCache.set(props.objectId, list);\n } catch (e) {\n // istanbul ignore next\n handleHttpError(e);\n }\n }\n })();\n }\n }, [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":";;;;;;;;;;;;;;;AAAA;AAQA;AAmBA;AAMA;AACA;AAQA;AASA;AACA;AACA;AAcA;AAGA;AAUA;AACA;AAMA;AACA;AACA;AAiBO,SAASA,2BAA2B,CACzCC,MAAgB,EAChBC,SAA8B,EAC9BC,UAAiC,EACjC;EACA,MAAMC,SAAS,GAAG,IAAAC,aAAK,EAACH,SAAS,CAACI,QAAQ,EAAE,IAAI,CAAC;EACjD,OAAOL,MAAM,CAACM,GAAG,CAAEC,KAAK,IAAK;IAC3B,IAAIJ,SAAS,CAACI,KAAK,CAAC,EAAE;MACpB,OAAOA,KAAK;IACd,CAAC,MAAM;MACL,MAAMC,QAAQ,GAAGP,SAAS,CAACQ,aAAa,CAACC,IAAI,CAC1CF,QAAa,IACZA,QAAQ,CAACG,OAAO,KAAKJ,KAAK,IAAIC,QAAQ,CAACI,QAAQ,KAAKL,KAAK,CAC5D;MACD,IAAIC,QAAQ,EAAE;QAAA;QACZ,MAAMK,MAAM,GAAGL,QAAQ,CAACM,cAAc,KAAKb,SAAS,CAACc,QAAQ;QAC7D,MAAMC,iBAAiB,GAAGH,MAAM,GAC5BL,QAAQ,CAACS,eAAe,GACxBT,QAAQ,CAACM,cAAc;QAC3B,MAAMI,eAAe,GAAGhB,UAAU,CAACQ,IAAI,CACpCS,MAAM,IAAKA,MAAM,CAACJ,QAAQ,KAAKC,iBAAiB,CAClD;QACD,MAAMI,OAAO,4BAAGF,eAAe,aAAfA,eAAe,iDAAfA,eAAe,CAAEG,IAAI,qFAArB,uBAAuBC,QAAQ,2DAA/B,uBAAkC,CAAC,CAAC,yEAAI,EAAE;QAC1D,OAAQ,GAAEf,KAAM,IAAGa,OAAQ,EAAC;MAC9B,CAAC,MAAM;QACL,OAAOb,KAAK;MACd;IACF;EACF,CAAC,CAAC;AACJ;AAEO,SAASgB,QAAQ,CACtBtB,SAA8C,EAC9CuB,WAAgE,EAChEC,CAAS,EACTzB,MAAiB,EACjB0B,cAAwB,EACxB;EACA,MAAMC,KAA0B,GAAG;IAAEC,GAAG,EAAE;EAAG,CAAC;EAC9C,MAAMC,WAAW,GAAGJ,CAAC,CAACK,IAAI,EAAE,CAACC,KAAK,CAAC,KAAK,CAAC;EACzC,IAAIL,cAAc,EAAE;IAAA;IAClB,MAAMM,cAAc,GAClB,0BAAC,IAAAC,oBAAU,GAAE,CAACC,aAAa,EAAE,CAACC,MAAM,0DAAnC,sBAAqCH,cAAc,KAAiB,EAAE;IACzE,MAAMI,QAAQ,GAAG,CAAC,GAAG,IAAIC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAGL,cAAc,CAAC,CAAC,CAAC;IACxD,MAAMM,WAAW,GAAG;MAAEC,KAAK,EAAG,IAAGd,CAAC,CAACK,IAAI,EAAG;IAAG,CAAC;IAC9CM,QAAQ,CAACI,OAAO,CAAEC,GAAG,IAAK;MACxBd,KAAK,CAACC,GAAG,CAACc,IAAI,CAAC;QAAE,CAACD,GAAG,GAAGH;MAAY,CAAC,CAAC;IACxC,CAAC,CAAC;IACF,OAAOX,KAAK;EACd;EACA,IAAAgB,iCAAsB,EACpB1C,SAAS,EACR2C,IAAI,IAAK;IACRf,WAAW,CAACW,OAAO,CAAEK,UAAU,IAC7BlB,KAAK,CAACC,GAAG,CAACc,IAAI,CAAC;MAAE,CAACE,IAAI,CAACE,EAAE,GAAG;QAAEP,KAAK,EAAG,IAAGM,UAAW;MAAG;IAAE,CAAC,CAAC,CAC5D;EACH,CAAC,EACD,CAACrC,QAAQ,EAAEuC,KAAK,KAAK;IACnB,MAAMD,EAAE,GAAGtC,QAAQ,CAAE,GAAEuC,KAAK,CAACC,IAAK,KAAI,CAAmB;IACzD,MAAMC,QAAQ,GAAG,IAAAC,8BAAmB,EAClC1B,WAAW,CAAChB,QAAQ,CAAE,GAAEuC,KAAK,CAACI,IAAK,YAAW,CAAyB,CAAC,CACzE;IAEDtB,WAAW,CAACW,OAAO,CAAEK,UAAU,IAAK;MAClCI,QAAQ,CAACT,OAAO,CAAEY,OAAO,IAAK;QAC5BzB,KAAK,CAACC,GAAG,CAACc,IAAI,CAAC;UACb,CAAE,GAAEI,EAAG,IAAGM,OAAQ,EAAC,GAAG;YAAEb,KAAK,EAAG,IAAGM,UAAW;UAAG;QACnD,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,EACD7C,MAAM,CACP;EAED,OAAO2B,KAAK;AACd;AAEO,MAAM0B,WAAW,GAAG,CAAC1B,KAAU,EAAE2B,MAAc,KAAK;EACzD,OAAOC,MAAM,CAACC,IAAI,CAAC7B,KAAK,CAAC2B,MAAM,CAAC,CAAY,CAACG,IAAI,CAC9CC,CAAC,IAAKA,CAAC,KAAK,SAAS,IAAIA,CAAC,KAAK,MAAM,IAAIA,CAAC,KAAK,MAAM,CACvD;AACH,CAAC;AAAC;AAEK,MAAMC,mBAAmB,GAAG,CAAChC,KAAU,EAAEc,GAAQ,EAAEmB,OAAgB,KAAK;EAC7E;EACA,MAAMC,SAAS,GAAGR,WAAW,CAAC1B,KAAK,EAAEc,GAAG,CAAC;EACzC,IAAIoB,SAAS,EAAE;IACb;EACF;EACAD,OAAO,CAAClB,IAAI,CAACf,KAAK,CAAC;AACrB,CAAC;AAAC;AAEK,MAAMmC,cAAc,GAAG,CAC5BnC,KAAU,EACV2B,MAAc,EACdS,SAAkB,KACf;EACH,MAAMF,SAAS,GAAGR,WAAW,CAAC1B,KAAK,EAAE2B,MAAM,CAAC;EAC5C,IAAIO,SAAS,EAAE,OAAO,KAAK;EAC3B,OAAOlC,KAAK,CAAC2B,MAAM,CAAC,GAChBS,SAAS,IAAIR,MAAM,CAACS,MAAM,CAACrC,KAAK,CAAC2B,MAAM,CAAC,CAAC,CAACW,IAAI,CAAC,GAAG,CAAC,KAAKF,SAAS,CAAC;EAAA,EAClE,KAAK;AACX,CAAC;AAAC;AAEK,SAASG,mBAAmB,CACjCC,EAAW,EACX3C,WAAgE,EAChEvB,SAA8C,EAC9CmE,CAAgB,EAC4C;EAC5D,MAAMC,UAIH,GAAG,EAAE;EACR,MAAMC,SAAgB,GAAG,EAAE;EAC3BrE,SAAS,CAACQ,aAAa,CAAC+B,OAAO,CAAEhC,QAAQ,IAAK;IAC5C,IAAI+D,QAA+B,GAAG,EAAE;IACxC,IAAI,IAAAC,yBAAc,EAAChE,QAAQ,CAAC,EAAE;MAC5B+D,QAAQ,GAAG,CACT;QAAEvB,IAAI,EAAE,MAAM;QAAEG,IAAI,EAAE;MAAQ,CAAC,EAC/B;QAAEH,IAAI,EAAE,OAAO;QAAEG,IAAI,EAAE;MAAO,CAAC,CAChC;IACH,CAAC,MAAM;MACLoB,QAAQ,GAAG,CAAC,IAAAE,iCAAsB,EAACjE,QAAQ,EAAEP,SAAS,CAAC,CAAC;IAC1D;IACAsE,QAAQ,CAAC/B,OAAO,CAAEO,KAAK,IAAK;MAC1B,MAAMhC,QAAQ,GAAGP,QAAQ,CAAE,GAAEuC,KAAK,CAACC,IAAK,KAAI,CAAmB;MAC/D,MAAM0B,cAAc,GAClBlD,WAAW,CACThB,QAAQ,CAAE,GAAEuC,KAAK,CAACI,IAAK,YAAW,CAAyB,CAC5D;MACH,MAAMF,QAAQ,GAAG,IAAAC,8BAAmB,EAACwB,cAAc,CAAC;MACpDzB,QAAQ,CAACT,OAAO,CAAEY,OAAO,IAAK;QAAA;QAC5B,MAAMuB,aAAa,0BACjB,IAAAjE,YAAI,EAACgE,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAErE,QAAQ,EAAE,CAAC,IAAI,EAAE+C,OAAO,CAAC,CAAC,0CAA/C,MAAiDwB,IAAI,mDAAIxB,OAAO;QAClE,MAAMN,EAAE,GAAI,GAAE/B,QAAS,IAAGqC,OAAQ,EAAC;QACnC,MAAMwB,IAAI,GAAI,GACZpE,QAAQ,CAAE,GAAEuC,KAAK,CAACC,IAAK,OAAM,CAC9B,IAAG2B,aAAc,GAAE;QACpBL,SAAS,CAAC5B,IAAI,CAAC;UACbI,EAAE;UACF8B,IAAI;UACJC,KAAK,EAAE;YAAEC,IAAI,EAAE;UAAM,CAAC;UACtBC,cAAc,EAAEvE,QAAQ,CAAE,GAAEuC,KAAK,CAACC,IAAK,KAAI;QAC7C,CAAC,CAAC;MACJ,CAAC,CAAC;MACFsB,SAAS,CAAC5B,IAAI,CAAC;QACbI,EAAE,EAAG,GAAE/B,QAAS,GAAE;QAClB6D,IAAI,EAAG,GAAEpE,QAAQ,CAAE,GAAEuC,KAAK,CAACC,IAAK,OAAM,CAAsB,EAAC;QAC7D6B,KAAK,EAAE;UAAEC,IAAI,EAAE;QAAM,CAAC;QACtBC,cAAc,EAAEvE,QAAQ,CAAE,GAAEuC,KAAK,CAACC,IAAK,KAAI;MAC7C,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,CAAC;EACF,MAAMgC,mBAAmB,GAAG,CAAC,GAAG/E,SAAS,CAACI,QAAQ,EAAE,GAAGiE,SAAS,CAAC;EACjE,IAAI,CAAC,IAAAW,eAAO,EAACd,EAAE,CAAC,EAAE;IAChB,KAAK,MAAMxC,KAAK,IAAIwC,EAAE,EAAE;MACtB,IAAIP,OAAgB,GAAG,CAACjC,KAAK,CAAC;MAC9B,IAAI4B,MAAM,CAACC,IAAI,CAAC7B,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI4B,MAAM,CAACC,IAAI,CAAC7B,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE;QACvEiC,OAAO,GAAGjC,KAAK,CAAC4B,MAAM,CAACC,IAAI,CAAC7B,KAAK,CAAC,CAAC,CAAC,CAAC,CAAY;MACnD;MAEAiC,OAAO,CAACpB,OAAO,CAAEb,KAAK,IAAK;QAAA;QACzB,MAAMc,GAAG,GAAGc,MAAM,CAACC,IAAI,CAAC7B,KAAK,CAAC,CAAC,CAAC,CAAC;QACjC,MAAMkD,KAAK,GAAGtB,MAAM,CAACS,MAAM,CAACrC,KAAK,CAAC,CAAC,CAAC,CAAC;QACrC,IAAIiB,IAAI,GAAGoC,mBAAmB,CAACtE,IAAI,CAChCkC,IAAI,IAAKA,IAAI,CAACE,EAAE,KAAKL,GAAG,IAAIG,IAAI,CAACmC,cAAc,KAAKtC,GAAG,CACzD;QACD,IACEc,MAAM,CAACC,IAAI,CAACqB,KAAK,CAAC,CAAC,CAAC,CAAC,KAAKK,2BAAgB,CAACC,MAAM,aACjDvC,IAAI,kCAAJ,MAAMmC,cAAc,EACpB;UACA,MAAMA,cAAc,GAAGnC,IAAI,CAACmC,cAAc;UAC1CnC,IAAI,GACFoC,mBAAmB,CAACtE,IAAI,CACrBkC,IAAI,IAAKA,IAAI,CAACE,EAAE,KAAM,GAAEiC,cAAe,GAAE,CAC3C,IAAInC,IAAI;QACb;QACA,IAAIA,IAAI,EAAE;UACRjB,KAAK,GAAG,IAAAyD,sCAA0B,EAChCnF,SAAS,CAACc,QAAQ,EAClB6B,IAAI,CAACE,EAAE,EACPnB,KAAK,CACN;UACD,MAAM0D,IAAI,GAAG,IAAAC,8CAA2B,EACtC3D,KAAK,EACLc,GAAG,EACHG,IAAI,CAACiC,KAAK,CAACC,IAAI,EACfS,SAAS,EACTA,SAAS,EACTtF,SAAS,CAACc,QAAQ,EAClB6B,IAAI,CAACE,EAAE,CACR;UACD,IACE,CAAC,CACC0C,gCAAa,CAACC,OAAO,EACrBD,gCAAa,CAACE,KAAK,EACnBF,gCAAa,CAACG,QAAQ,EACtBH,gCAAa,CAACI,KAAK,EACnBJ,gCAAa,CAACK,IAAI,CACnB,CAACC,QAAQ,CAACT,IAAI,CAACU,gBAAgB,CAACjB,IAAI,CAAC,EACtC;YACAO,IAAI,CAACrB,MAAM,GAAGqB,IAAI,CAACrB,MAAM,CAAC1D,GAAG,CAAEoD,CAAC,IAC9B,IAAAsC,gBAAQ,EAACtC,CAAC,CAAC,IAAIA,CAAC,CAACoC,QAAQ,CAAC,GAAG,CAAC,GAAGpC,CAAC,CAACuC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,GAAGvC,CAAC,CAC/D;UACH;UAEA,IAAIwC,SAAS,GAAI,GAAEtD,IAAI,CAACgC,IAAK,KAAIS,IAAI,CAACU,gBAAgB,CAACI,KAAM,EAAC;UAC9D,IACE,CAAC,CAACX,gCAAa,CAACE,KAAK,EAAEF,gCAAa,CAACG,QAAQ,CAAC,CAACG,QAAQ,CACrDT,IAAI,CAACU,gBAAgB,CAACjB,IAAI,CAC3B,EACD;YACAoB,SAAS,IAAK,IAAGb,IAAI,CAACrB,MAAM,CAACC,IAAI,CAAC,KAAK,CAAE,GAAE;UAC7C;UACA,MAAMmC,YAAY,GAAG;YACnB9C,MAAM,EAAEb,GAAG;YACXyD,SAAS;YACTnC,SAAS,EAAEsB,IAAI,CAACgB;UAClB,CAAC;UACD,IACEhC,UAAU,CAACiC,KAAK,CACb5C,CAAC,IAAK,CAAC,IAAA6C,eAAO,EAAC,IAAAC,YAAI,EAAC9C,CAAC,EAAE,QAAQ,CAAC,EAAE,IAAA8C,YAAI,EAACJ,YAAY,EAAE,QAAQ,CAAC,CAAC,CACjE,EACD;YACA/B,UAAU,CAAC3B,IAAI,CAAC0D,YAAY,CAAC;UAC/B;QACF;MACF,CAAC,CAAC;IACJ;EACF;EAEA,OAAO/B,UAAU;AACnB;AAEA,SAASoC,MAAM,CAACC,QAAkB,EAAEvC,EAAW,EAAU;EACvD,IAAI1B,GAAG,GAAG,EAAE;EACZ,IAAI,CAAC,IAAAwC,eAAO,EAACyB,QAAQ,CAAC,EAAE;IACtBjE,GAAG,IAAIiE,QAAQ,CAACzC,IAAI,CAAC,GAAG,CAAC;EAC3B;EACA,IAAI,CAAC,IAAAgB,eAAO,EAACd,EAAE,CAAC,EAAE;IAChB1B,GAAG,IAAK,IAAG0B,EAAE,CAACwC,MAAO,EAAC;EACxB;EACA,OAAOlE,GAAG;AACZ;AACA,MAAMmE,UAAU,GAAG,CACjB3G,SAA8C,EAC9C4G,OAAe,KACZ;EAAA;EACH,MAAMC,YAAY,4BAAG7G,SAAS,CAACI,QAAQ,CACpC0G,MAAM,CACJnE,IAA8B,IAC7BA,IAAI,CAACiC,KAAK,CAACC,IAAI,KAAK,QAAQ,IAAIlC,IAAI,CAACiC,KAAK,CAACC,IAAI,KAAK,SAAS,CAChE,0DAJkB,sBAKjBxE,GAAG,CAAEsC,IAAI,IAAK;IACd,MAAMoE,OAAiB,GAAG,EAAE;IAC5BpE,IAAI,CAACiC,KAAK,CAACoC,aAAa,CAACzE,OAAO,CAAE0E,MAAM,IAAK;MAC3CF,OAAO,CAACtE,IAAI,CAAE,GAAEE,IAAI,CAACE,EAAG,IAAGoE,MAAM,CAACpE,EAAG,EAAC,CAAC;IACzC,CAAC,CAAC;IACF,OAAOkE,OAAO;EAChB,CAAC,CAAC,CACDG,IAAI,EAAE;EACT,OAAOL,YAAY,CAAChB,QAAQ,CAACe,OAAO,CAAC;AACvC,CAAC;AAED,MAAMO,WAAW,GAAG,CAClB/G,QAA+C,EAC/CwG,OAAe,KACH;EAAA;EACZ,MAAMQ,UAAU,GAAG,IAAAjH,aAAK,EAACC,QAAQ,EAAE,IAAI,CAAC;EACxC,OAAO,wBAAAgH,UAAU,CAACR,OAAO,CAAC,wDAAnB,oBAAqBhC,KAAK,CAACC,IAAI,MAAKwC,kDAAuB,CAACC,OAAO;AAC5E,CAAC;AAEM,MAAMC,YAAY,GAAG,CAC1BrD,EAAW,EACXlE,SAA8C,EAC9CwH,QAAQ,GAAG,IAAI,KACZ;EACH,IAAIC,WAAkB,GAAG,EAAE;EAC3B,IAAIvD,EAAE,EAAE;IACNA,EAAE,CAAC3B,OAAO,CAAEb,KAAK,IAAK;MACpB,MAAMgG,QAAQ,GAAGpE,MAAM,CAACqE,OAAO,CAACjG,KAAK,CAAC,CAACrB,GAAG,CAAC,CAAC,CAACmC,GAAG,EAAEoF,WAAW,CAAC,KAAK;QACjE,IAAIC,cAAqB,GAAG,EAAE;QAC9B,IAAIrF,GAAG,KAAKsF,2BAAgB,CAACC,EAAE,IAAIvF,GAAG,KAAKsF,2BAAgB,CAACE,GAAG,EAAE;UAC/D,MAAMC,aAAa,GAAIL,WAAW,CAAa,CAAC,CAAC;UACjD,MAAMhB,OAAO,GAAGtD,MAAM,CAACC,IAAI,CAAC0E,aAAa,CAAC,CAAC,CAAC,CAAC;UAC7C,MAAMC,QAAQ,GAAGvB,UAAU,CAAC3G,SAAS,EAAE4G,OAAO,CAAC;UAC/C,MAAMuB,MAAM,GAAGhB,WAAW,CAACnH,SAAS,CAACI,QAAQ,EAAEwG,OAAO,CAAC;UACvD,MAAMwB,aAAkC,GACtCR,WAAW,CACXd,MAAM,CAAEuB,UAAU,IAAK/E,MAAM,CAACC,IAAI,CAAC8E,UAAU,CAAC,CAAC,CAAC,CAAC,KAAKzB,OAAO,CAAC;UAChE,IAAIsB,QAAQ,IAAIV,QAAQ,EAAE;YACxB,MAAMc,iBAAiB,GAAGF,aAAa,CAAC/H,GAAG,CAAEkI,IAAS,KAAM;cAC1D,CAAC3B,OAAO,CAAC9E,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAGyG,IAAI,CAAC3B,OAAO;YACvC,CAAC,CAAC,CAAC;YACHiB,cAAc,GAAG,CAAC,GAAGA,cAAc,EAAE,GAAGS,iBAAiB,CAAC;UAC5D,CAAC,MAAM,IAAIH,MAAM,IAAI,CAACX,QAAQ,EAAE;YAC9B,MAAMgB,eAAe,GAAIZ,WAAW,CAAavH,GAAG,CACjDgI,UAAU,IAAK;cACd,MAAMI,WAAW,GAAGJ,UAAU,CAACzB,OAAO,CAGrC;cACD,IAAI,OAAOtD,MAAM,CAACS,MAAM,CAAC0E,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;gBACrD,OAAO;kBACL,CAAC7B,OAAO,GAAG;oBACT,CAACtD,MAAM,CAACC,IAAI,CAACkF,WAAW,CAAC,CAAC,CAAC,CAAC,GAC1BnF,MAAM,CAACS,MAAM,CAAC0E,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK;kBACtC;gBACF,CAAC;cACH,CAAC,MAAM;gBACL,OAAOJ,UAAU;cACnB;YACF,CAAC,CACF;YACDR,cAAc,GAAG,CAAC,GAAGA,cAAc,EAAE,GAAGW,eAAe,CAAC;UAC1D,CAAC,MAAM;YACLX,cAAc,GAAG,CAAC,GAAGA,cAAc,EAAE,GAAID,WAAuB,CAAC;UACnE;UACA,OAAO;YAAE,CAACpF,GAAG,GAAGqF;UAAe,CAAC;QAClC,CAAC,MAAM;UACL,OAAOnG,KAAK;QACd;MACF,CAAC,CAAC;MACF+F,WAAW,GAAG,CAAC,GAAGA,WAAW,EAAE,GAAGC,QAAQ,CAAC;IAC7C,CAAC,CAAC;IACF,OAAOD,WAAW;EACpB;EACA;AACF,CAAC;AAAC;AA6HK,SAASiB,kBAAkB,CAChCC,KAAwB,EACJ;EAAA;EACpB,MAAM;IAAEC,WAAW,GAAG;EAAK,CAAC,GAAGD,KAAK;EACpC,MAAME,QAAQ,GAAG,CACf;IACEC,UAAU,EAAE,KAAK;IACjBnE,IAAI,EAAEoE,gBAAI,CAAC5E,CAAC,CAAE,GAAE6E,iCAAuB,IAAGC,YAAC,CAACC,WAAY,EAAC;EAC3D,CAAC,CACF;EACD,MAAMC,gBAAgB,GAAG,IAAIC,oBAAW,CAACC,YAAY,CAAC;EACtD,MAAMC,OAAO,GAAG,CACdC,SAA4B,EAC5BC,eAA2C,KACrB;IACtB,OAAO;MACL,GAAGD,SAAS;MACZ,GAAGC;IACL,CAAC;EACH,CAAC;EACD;EACA;;EAEA,MAAMC,YAAY,GAAG,IAAAC,qBAAW,EAC9B,2CAA2C,EAC3C;IAAEC,KAAK,EAAE;EAAM,CAAC,CACjB;EACD,MAAMC,2BAA2B,GAAG,IAAAF,qBAAW,EAC7C,8DAA8D,EAC9D;IACEC,KAAK,EAAE;EACT,CAAC,CACF;EACD,MAAM;IAAE3J,SAAS;IAAEuB;EAAY,CAAC,GAAG,IAAAsI,cAAO,EAAC,MAAM;IAC/C,IAAI7J,SAA8C;IAClD,MAAMuB,WAAgE,GAAG,CAAC,CAAC;IAC3EoH,KAAK,CAAC1I,UAAU,CAACsC,OAAO,CAAErB,MAAM,IAAK;MACnCK,WAAW,CAACL,MAAM,CAACJ,QAAQ,CAAC,GAAGI,MAAM;MACrC,IAAIA,MAAM,CAACJ,QAAQ,KAAK6H,KAAK,CAAC7H,QAAQ,EAAE;QACtCd,SAAS,GAAGkB,MAAM;QAClBlB,SAAS,CAACI,QAAQ,GAAG,CAACuI,KAAK,CAACmB,qBAAqB,GAC7C,IAAAC,aAAK,EAAC7I,MAAM,CAACd,QAAQ,EAAE4J,2BAAe,CAAC,GACvC9I,MAAM,CAACd,QAAQ;MACrB;IACF,CAAC,CAAC;IAEF,OAAO;MAAEJ,SAAS;MAAEuB;IAAY,CAAC;EACnC,CAAC,EAAE,CAACoH,KAAK,CAAC1I,UAAU,EAAE0I,KAAK,CAAC7H,QAAQ,CAAC,CAAC;EAEtC,MAAM,CAACmJ,yBAAyB,EAAEC,4BAA4B,CAAC,GAAG,IAAAC,eAAQ,EAExE,CAAC,CAAC,CAAC;EACL,MAAM,CAACC,WAAW,EAAEC,YAAY,CAAC,GAAG,IAAAF,eAAQ,EAAC,KAAK,CAAC;EAEnD,MAAMG,8BAA8B,GAAG,MACrCtK,SAA8C,IAC5B;IAClB,IAAIuK,SAAS,GAAG,CAAC,CAAC;IAClB,IAAIvK,SAAS,CAACwK,UAAU,EAAE;MACxBD,SAAS,GAAG,MAAM,IAAAE,mCAA0B,EAAC;QAC3CC,cAAc,EAAE1K,SAAS,CAACc;MAC5B,CAAC,CAAQ;IACX;IACAoJ,4BAA4B,CAACK,SAAS,CAAC;EACzC,CAAC;EAED,IAAAI,gBAAS,EAAC,MAAM;IACdL,8BAA8B,CAACtK,SAAS,CAAC;EAC3C,CAAC,EAAE,CAACA,SAAS,CAAC,CAAC;EAEf,MAAM4K,oBAAoB,GAAG,CAC3B;IAAEC;EAAQ,CAAC,GAAG;IAAEA,OAAO,EAAE;EAAM,CAAC,KACL;IAC3B;IACA,MAAMC,QAAa,GAAGD,OAAO,GACzBE,sCAA0B,GAC1BC,yCAA6B;IACjC,MAAMC,aAAuB,GAAG,CAC9BH,QAAQ,CAACG,aAAa,CAACjL,SAAS,CAACc,QAAQ,CAAC,IAAI,EAAE,EAChDoK,MAAM,CAAClL,SAAS,CAACoB,IAAI,CAAC+J,YAAY,IAAI,EAAE,CAAC;IAC3C,MAAMC,UAAU,GAAGpL,SAAS,CAACoB,IAAI,CAACiK,UAAU,IAAI,EAAE;IAClD,MAAMC,SAAS,GAAG,CAChB,GAAG,IAAIlJ,GAAG,CAAC,CAAC,GAAGgJ,UAAU,EAAE,GAAG,IAAA/K,WAAG,EAACL,SAAS,CAACI,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAC9D;IACD,MAAMqG,QAAkB,GAAG,IAAA8E,kBAAU,EAACD,SAAS,EAAEL,aAAa,CAAC,CAACO,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IAC3E,OAAO;MAAE/E;IAAS,CAAC;EACrB,CAAC;;EAED;EACA,MAAMgF,aAAa,GAAIhF,QAAe,IAAK;IAAA;IACzC,IAAIiF,WAAkB,GAAG,EAAE;IAC3B,IAAIC,UAAiB,GAAG,EAAE;IAC1B,4BAAIhD,KAAK,CAACiD,aAAa,iDAAnB,qBAAqBnF,QAAQ,EAAE;MACjCiF,WAAW,GAAG,IAAA5E,cAAM,EAAC6B,KAAK,CAACiD,aAAa,CAACnF,QAAQ,EAAG5D,EAAE,IACpD4D,QAAQ,CAACZ,QAAQ,CAAChD,EAAE,CAAC,CACtB;IACH;IACA8I,UAAU,GAAG,IAAAE,cAAM,EACjB,IAAAC,cAAM,EAACrF,QAAQ,EAAG5D,EAAE,IAAK6I,WAAW,CAAC7F,QAAQ,CAAChD,EAAE,CAAC,CAAC,EACjD+D,OAAO,IAAK;MACX,MAAMmF,UAAU,GAAG,IAAAC,iBAAS,EAC1BhM,SAAS,CAACoB,IAAI,CAACiK,UAAU,EACxBY,OAAO,IAAKA,OAAO,KAAKrF,OAAO,CACjC;MACD,IAAImF,UAAU,KAAK,CAAC,CAAC,EAAE;QACrB,OAAO,IAAI;MACb,CAAC,MAAM;QACL,OAAOA,UAAU;MACnB;IACF,CAAC,CACF;IACD,OAAO,CAAC,GAAGL,WAAW,EAAE,GAAGC,UAAU,CAAC;EACxC,CAAC;EAED,MAAMO,SAAS,GAAG,MAAM;IAAA;IACtB,IAAIzF,QAAQ,4BAAGkC,KAAK,CAACiD,aAAa,0DAAnB,sBAAqBnF,QAAQ;IAC5C,MAAM0F,kBAAkB,4BAAGxD,KAAK,CAACyD,gBAAgB,yEAAI,EAAE;IACvD,IAAI,IAAApH,eAAO,EAACyB,QAAQ,CAAC,EAAE;MACrBA,QAAQ,GAAG0C,gBAAgB,CAACkD,OAAO,CAChC,GAAErM,SAAS,CAACc,QAAS,gBAAe,CACtC;IACH;IACA,IAAI,IAAAkE,eAAO,EAACyB,QAAQ,CAAC,EAAE;MACrBA,QAAQ,GAAGmE,oBAAoB,EAAE,CAACnE,QAAQ;IAC5C;IACA,IAAI,CAAC,IAAAzB,eAAO,EAACmH,kBAAkB,CAAC,EAAE;MAChC1F,QAAQ,GAAG,IAAA6F,YAAI,EAAC,CAAC,GAAG7F,QAAQ,EAAE,GAAG0F,kBAAkB,CAAC,CAAC;IACvD;IACA1F,QAAQ,GAAGkC,KAAK,CAAC4D,kBAAkB,GAC/B,IAAAD,YAAI,EAAC,CAAC,GAAG7F,QAAQ,EAAEkC,KAAK,CAAC4D,kBAAkB,CAAC,CAAC,GAC7C9F,QAAQ;IACZA,QAAQ,GAAGgF,aAAa,CAAChF,QAAQ,CAAC;IAClC,MAAM+F,aAAuB,GAAGxM,SAAS,CAACoB,IAAI,CAAC+J,YAAY,IAAI,EAAE;IACjE1E,QAAQ,GAAGA,QAAQ,CAACK,MAAM,CAAExG,KAAK,IAAK,CAACkM,aAAa,CAAC3G,QAAQ,CAACvF,KAAK,CAAC,CAAC;IACrEN,SAAS,CAACwK,UAAU,IAAI/D,QAAQ,CAAChE,IAAI,CAAC,YAAY,CAAC;IACnD,OAAOgE,QAAQ;EACjB,CAAC;EAED,MAAM,CAACjF,CAAC,EAAEiL,IAAI,CAAC,GAAG,IAAAtC,eAAQ,EAACxB,KAAK,CAACnH,CAAC,CAAC;EACnC,MAAM,CAACkL,KAAK,EAAEC,QAAQ,CAAC,GAAG,IAAAC,iBAAU,EAACtD,OAAO,EAAEhE,SAAS,EAAE;IAAA;IAAA,OAAO;MAC9DxE,QAAQ,EAAE6H,KAAK,CAAC7H,QAAQ;MACxBU,CAAC,EAAEmH,KAAK,CAACnH,CAAC;MACV0C,EAAE,EAAEqD,YAAY,CAACoB,KAAK,CAACzE,EAAE,EAAElE,SAAS,EAAE,KAAK,CAAC;MAC5C0H,QAAQ,EAAEiB,KAAK,CAACjB,QAAQ,IAAIH,YAAY,CAACoB,KAAK,CAACzE,EAAE,EAAElE,SAAS,CAAC;MAC7D6M,mBAAmB,EAAElE,KAAK,CAACkE,mBAAmB;MAC9CC,GAAG,EAAEnE,KAAK,CAACmE,GAAG;MACdC,IAAI,EAAEpE,KAAK,CAACoE,IAAI;MAChBC,IAAI,wDAAErE,KAAK,CAACsE,UAAU,sDAAhB,kBAAkBD,IAAI,yEAAIrE,KAAK,CAACqE,IAAI,uCAAI,CAAC;MAC/CE,QAAQ,2DAAEvE,KAAK,CAACsE,UAAU,uDAAhB,mBAAkBC,QAAQ,2EAAIvE,KAAK,CAACuE,QAAQ,yCAAI,EAAE;MAC5DC,UAAU,EAAExE,KAAK,CAACwE,UAAU;MAC5BC,WAAW,EAAEzE,KAAK,CAACyE,WAAW;MAC9BC,MAAM,EAAE,KAAK;MACbC,OAAO,EAAE,KAAK;MACdC,MAAM,EAAE,KAAK;MACbC,uBAAuB,EAAE,KAAK;MAC9B/G,QAAQ,EAAEyF,SAAS,EAAE;MACrBuB,kBAAkB,2BAAE9E,KAAK,CAACiD,aAAa,0DAAnB,sBAAqBlK,KAAK;MAC9CgM,aAAa,EAAE,KAAK;MACpBC,mBAAmB,EAAE,EAAE;MACvBC,mBAAmB,EAAE,KAAK;MAC1BC,cAAc,EAAE,EAAE;MAClBC,YAAY,EAAE,KAAK;MACnBC,OAAO,EAAE,EAAE;MACXC,WAAW,EAAE,CACX;QACElF,UAAU,EAAE,KAAK;QACjBnE,IAAI,EAAEoE,gBAAI,CAAC5E,CAAC,CAAE,GAAE6E,iCAAuB,IAAGC,YAAC,CAACC,WAAY,EAAC;MAC3D,CAAC,CACF;MACD+E,WAAW,EAAE;IACf,CAAC;EAAA,CAAC,CAAC;EACH,MAAM,CAACC,eAAe,EAAEC,kBAAkB,CAAC,GAAG,IAAAhE,eAAQ,2BACpDxB,KAAK,CAACuF,eAAe,yEAAI,EAAE,CAC5B;EACD,MAAMvE,KAAK,GAAG,IAAAyE,aAAM,EAAC,IAAIC,GAAG,EAAgD,CAAC;EAC7E,MAAMC,aAAa,GAAG,IAAAF,aAAM,EAAC,IAAI,CAAC;EAElC,MAAMG,mBAAmB,GAAG,OAC1BxB,IAAY,EACZD,GAAY,EACZE,IAAY,KACsC;IAAA;IAClD,MAAMwB,IAAuC,GAAG,CAAC,CAAC;IAClD,MAAMC,MAA2C,GAAG;MAClD1O,MAAM,EAAE4I,KAAK,aAALA,KAAK,eAALA,KAAK,CAAEyD,gBAAgB,GAC3B,IAAAE,YAAI,EAAC,CAAC,YAAY,CAAC,CAACpB,MAAM,CAACvC,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEyD,gBAAgB,CAAC,CAAC,GACpD,CAAC,YAAY;IACnB,CAAC;IACD,IAAI,CAAC,IAAApH,eAAO,EAAC2D,KAAK,CAAC+F,UAAU,CAAC,EAAE;MAC9BD,MAAM,CAACC,UAAU,GAAGF,IAAI,CAACE,UAAU,GAAG/F,KAAK,CAAC+F,UAAU;IACxD;IAEA,MAAMC,WAAuC,GAAG,CAAC,CAAC;IAClD,IAAIjN,KAA0B,GAAG,CAAC,CAAC;IAEnC+M,MAAM,CAACzB,IAAI,GAAGwB,IAAI,CAACxB,IAAI,GAAG2B,WAAW,CAAC3B,IAAI,GAAGA,IAAI;IACjDyB,MAAM,CAAC,WAAW,CAAC,GACjBD,IAAI,CAAC,WAAW,CAAC,GACjBG,WAAW,CAAC,WAAW,CAAC,GACtBjC,KAAK,CAACQ,QAAQ;IAClB,MAAM0B,QAAQ,GAAG5O,SAAS,aAATA,SAAS,8CAATA,SAAS,CAAEI,QAAQ,kFAAnB,oBAAqBK,IAAI,CAAEkC,IAAI,IAAKA,IAAI,CAACE,EAAE,KAAKkK,IAAI,CAAC,qFAArD,uBACbnI,KAAK,2DADQ,uBACNiK,YAAY;IACvB,MAAMC,KAAK,GAAG,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAACjJ,QAAQ,CAAC+I,QAAQ,CAAC,GACnE9B,GAAG,GACD,CAAC,GACD,CAAC,CAAC,GACJA,GAAG,GACH,CAAC,GACD,CAAC,CAAC;IACN,IAAIC,IAAI,EAAE;MACRyB,IAAI,CAACzB,IAAI,GAAG;QAAE,CAACA,IAAI,GAAG+B;MAAM,CAAC;MAC7BL,MAAM,CAAC1B,IAAI,GAAG,CAAC;QAAEvK,GAAG,EAAEuK,IAAI;QAAE+B;MAAM,CAAC,CAAC;IACtC;IAEA,IAAIpC,KAAK,CAAClL,CAAC,EAAE;MACXE,KAAK,GAAGJ,QAAQ,CACdtB,SAAS,EACTuB,WAAW,EACXmL,KAAK,CAAClL,CAAC,EACPkL,KAAK,CAACjG,QAAQ,EACdkC,KAAK,CAAClH,cAAc,CACrB;IACH;IAEA,IAAIiL,KAAK,CAAClL,CAAC,IAAImH,KAAK,CAACoG,0BAA0B,EAAE;MAC/CJ,WAAW,CAACK,QAAQ,GAAGtC,KAAK,CAAClL,CAAC;IAChC;IACA,IAAI,CAAC,IAAAwD,eAAO,EAAC0H,KAAK,CAACxI,EAAE,CAAC,EAAE;MACtBxC,KAAK,CAACoG,2BAAgB,CAACE,GAAG,CAAC,GAAG0E,KAAK,CAACxI,EAAE;IACxC;IAEA,IAAI,CAAC,IAAAc,eAAO,EAAC2D,KAAK,CAACsG,YAAY,CAAC,EAAE;MAChCvN,KAAK,CAACoG,2BAAgB,CAACE,GAAG,CAAC,GAAG,CAC5B,IAAItG,KAAK,CAACoG,2BAAgB,CAACE,GAAG,CAAC,IAAI,EAAE,CAAC,EACtC,GAAGW,KAAK,CAACsG,YAAY,CACtB;IACH;IACA,IAAItG,KAAK,CAACiD,aAAa,EAAE;MACvB,IAAI,CAAC,IAAA5G,eAAO,EAAC2D,KAAK,CAACiD,aAAa,CAAClK,KAAK,CAAC,EAAE;QACvC,IAAI4B,MAAM,CAACC,IAAI,CAAC7B,KAAK,CAAC,CAACgF,MAAM,EAAE;UAC7BhF,KAAK,GAAG;YACNwN,IAAI,EAAE,CAACxN,KAAK,EAAEiH,KAAK,CAACiD,aAAa,CAAClK,KAAK;UACzC,CAAC;QACH,CAAC,MAAM;UACLA,KAAK,GAAGiH,KAAK,CAACiD,aAAa,CAAClK,KAAK;QACnC;MACF;IACF;IACA,IAAIgL,KAAK,CAACjG,QAAQ,EAAE;MAClB+H,IAAI,CAACzO,MAAM,GAAGuD,MAAM,CAAC6L,WAAW,CAC9BzC,KAAK,CAACjG,QAAQ,CAACpG,GAAG,CAAEuG,OAAO,IAAK,CAACA,OAAO,EAAE,IAAI,CAAC,CAAC,CACjD;MACD6H,MAAM,CAAC1O,MAAM,GAAG,CAAC,GAAG2M,KAAK,CAACjG,QAAQ,EAAE,GAAGgI,MAAM,CAAC1O,MAAM,CAAC;MACpD0O,MAAM,CAASW,0BAA0B,GAAG,IAAI;IACnD;IACA,IAAIzG,KAAK,CAAC0G,wBAAwB,EAAE;MAClCZ,MAAM,CAAC1O,MAAM,GAAGD,2BAA2B,CACzC2O,MAAM,CAAC1O,MAAM,EACbC,SAAS,EACT2I,KAAK,CAAC1I,UAAU,CACjB;IACH;IACA,IAAI0I,KAAK,CAACoG,0BAA0B,EAAE;MACpCJ,WAAW,CAAC5O,MAAM,GAAG0O,MAAM,CAAC1O,MAAM,CAACiE,IAAI,CAAC,GAAG,CAAC;IAC9C;IACA,IAAI0I,KAAK,CAACS,UAAU,IAAIxE,KAAK,CAAC7H,QAAQ,KAAK,MAAM,EAAE;MACjDY,KAAK,GAAG;QAAE,GAAGA,KAAK;QAAE4N,YAAY,EAAE;MAAK,CAAC;IAC1C;IACA,IAAI5C,KAAK,CAACG,mBAAmB,EAAE;MAC7BnL,KAAK,GAAG;QAAE,GAAGA,KAAK;QAAE6N,UAAU,EAAE7C,KAAK,CAACG;MAAoB,CAAC;IAC7D;IAEA,IAAI,CAAC,IAAA7H,eAAO,EAACtD,KAAK,CAAC,EAAE;MACnB+M,MAAM,CAAC/M,KAAK,GAAG8M,IAAI,CAAC9M,KAAK,GAAGA,KAAK;IACnC;IACA;;IAEA,IAAIiH,KAAK,CAAC0G,wBAAwB,IAAI,CAAC,IAAArK,eAAO,EAAC2D,KAAK,CAAC6G,WAAW,CAAC,EAAE;MACjElM,MAAM,CAACmM,MAAM,CAAChB,MAAM,EAAE9F,KAAK,CAAC6G,WAAW,CAAC;IAC1C;IACA,IAAI9C,KAAK,CAACU,WAAW,EAAE;MACrBqB,MAAM,CAACiB,gBAAgB,GAAGlB,IAAI,CAACkB,gBAAgB,GAAGhD,KAAK,CAACU,WAAW;IACrE;IACA;IACA;IACA,IAAIV,KAAK,CAACuB,WAAW,EAAE;MAAA;MACrB,MAAM0B,SAAS,4BAAGhH,KAAK,CAACiD,aAAa,mFAAnB,sBAAqBlK,KAAK,mFAA1B,sBAA6B,MAAM,CAAC,mFAApC,sBAAsCjB,IAAI,CACzDmP,CAAM,IAAKA,CAAC,CAAC9G,UAAU,CACzB,mFAFiB,sBAEfA,UAAU,0DAFK,sBAEF,KAAK,CAAC;MACtB2F,MAAM,CAAC/M,KAAK,GAAG;QACb,CAACgL,KAAK,CAACkB,mBAAmB,KAAK,KAAK,IACnClB,KAAK,CAACkB,mBAAmB,KAAK,SAAS,IACtClB,KAAK,CAACoB,YAAY,KAAK,KAAM,GAC3B,sCAAsC,GACtC,gCAAgC,GAAGpB,KAAK,CAACiB,mBAAmB;QAChE,IAAI,CAAC,IAAA3I,eAAO,EAAC2K,SAAS,CAAC,IAAIhH,KAAK,CAACkH,kBAAkB,GAC/C;UACE/G,UAAU,EAAE;YAAEgH,GAAG,EAAEH;UAAU;QAC/B,CAAC,GACD,CAAC,CAAC,CAAC;QACP,IAAIjD,KAAK,CAACS,UAAU,IAAIxE,KAAK,CAAC7H,QAAQ,KAAK,MAAM,GAC7C;UAAEwO,YAAY,EAAE;QAAK,CAAC,GACtB,CAAC,CAAC;MACR,CAAC;IACH;IACA,IAAI3G,KAAK,CAACoG,0BAA0B,EAAE;MACpC,OAAOnF,2BAA2B,CAAClI,KAAK,CAAC,CAACiH,KAAK,CAAC7H,QAAQ,EAAE6N,WAAW,CAAC,CAAC;IACzE;IACA,MAAMoB,OAAO,4BAAGpH,KAAK,CAACqH,eAAe,0DAArB,2BAAArH,KAAK,EAAmB6F,IAAI,EAAEC,MAAM,CAAC;IACrD;IACA,OAAOsB,OAAO,GACVA,OAAO,GACPpH,KAAK,CAAC0G,wBAAwB,GAC9B5F,YAAY,CAAC/H,KAAK,CAAC,CAACiH,KAAK,CAAC7H,QAAQ,EAAE2N,MAAM,CAAC,CAAC,GAC5C,IAAAwB,iCAAwB,EAACtH,KAAK,CAAC7H,QAAQ,EAAE2N,MAAM,CAAC;EACtD,CAAC;EAED,MAAMyB,mBAAmB,GAAG,OAC1BnD,IAAY,EACZD,GAAY,EACZE,IAAY,KACM;IAClBL,QAAQ,CAAC;MAAEW,OAAO,EAAE;IAAK,CAAC,CAAC;IAC3B,IAAI;MACF,IAAI3E,KAAK,CAACsE,UAAU,EAAE;QACpBN,QAAQ,CAAC;UACPpL,WAAW,EAAEA,WAAW;UACxB4O,gBAAgB,EAAExH,KAAK,CAACsE;QAC1B,CAAC,CAAC;MACJ,CAAC,MAAM;QACL,IAAI,CAACtE,KAAK,CAACyH,gBAAgB,EAAE;UAC3B,MAAMD,gBAAgB,GAAG,MAAM5B,mBAAmB,CAACxB,IAAI,EAAED,GAAG,EAAEE,IAAI,CAAC;UACnEmD,gBAAgB,CAACE,IAAI,CAAC9N,OAAO,CAAEqN,CAAC,IAC9BjG,KAAK,CAAC2G,OAAO,CAACC,GAAG,CAACX,CAAC,CAAC9G,UAAU,EAAE8G,CAAC,CAAC,CACnC;UACDjD,QAAQ,CAAC;YAAEpL,WAAW,EAAEA,WAAW;YAAE4O;UAAiB,CAAC,CAAC;QAC1D,CAAC,MAAM;UACLxD,QAAQ,CAAC;YACPpL,WAAW,EAAEA,WAAW;YACxB4O,gBAAgB,EAAE;UACpB,CAAC,CAAC;QACJ;MACF;IACF,CAAC,CAAC,OAAOK,CAAC,EAAE;MACV,IAAAC,yBAAe,EAACD,CAAC,CAAC;MAClB7D,QAAQ,CAAC;QAAEY,MAAM,EAAE;MAAK,CAAC,CAAC;IAC5B,CAAC,SAAS;MACRZ,QAAQ,CAAC;QAAEU,MAAM,EAAE,IAAI;QAAEC,OAAO,EAAE;MAAM,CAAC,CAAC;IAC5C;EACF,CAAC;EAED,IAAA3C,gBAAS,EAAC,MAAM;IAAA;IACd,MAAMlE,QAAQ,GAAGyF,SAAS,EAAE;IAC5B;IACE;IACAvD,KAAK,CAAC7H,QAAQ,KAAK4L,KAAK,CAAC5L,QAAQ,IACjC,CAAC,IAAAwF,eAAO,EAACG,QAAQ,EAAEiG,KAAK,CAACjG,QAAQ,CAAC,IAClC,CAAC,IAAAH,eAAO,2BAACqC,KAAK,CAACiD,aAAa,0DAAnB,sBAAqBlK,KAAK,EAAEgL,KAAK,CAACe,kBAAkB,CAAC,EAC9D;MAAA;MACAd,QAAQ,CAAC;QACPlG,QAAQ;QACRgH,kBAAkB,4BAAE9E,KAAK,CAACiD,aAAa,2DAAnB,uBAAqBlK;MAC3C,CAAC,CAAC;IACJ;EACF,CAAC,EAAE,CAACiH,KAAK,CAAC7H,QAAQ,EAAE6H,KAAK,CAACiD,aAAa,CAAC,CAAC;EAEzC,IAAAjB,gBAAS,EAAC,MAAM;IAAA;IACdwD,kBAAkB,2BAACxF,KAAK,CAACuF,eAAe,2EAAI,EAAE,CAAC;EACjD,CAAC,EAAE,CAACvF,KAAK,CAAC7H,QAAQ,EAAE6H,KAAK,CAACuF,eAAe,CAAC,CAAC;;EAE3C;EACA,IAAAvD,gBAAS,EAAC,MAAM;IACd,IAAI2D,aAAa,CAACgC,OAAO,EAAE;MACzBhC,aAAa,CAACgC,OAAO,GAAG,KAAK;MAC7B;IACF;IAEA,IAAII,IAAI,GAAG,KAAK;IAEhB,IAAIhE,KAAK,CAACM,IAAI,KAAK,CAAC,EAAE;MAAA;MACpBL,QAAQ,CAAC;QAAEK,IAAI,EAAE;MAAE,CAAC,CAAC;MACrB,yBAAArE,KAAK,CAACgI,kBAAkB,0DAAxB,2BAAAhI,KAAK,EAAsB;QAAEqE,IAAI,EAAE,CAAC;QAAEE,QAAQ,EAAER,KAAK,CAACQ;MAAS,CAAC,CAAC;MACjEwD,IAAI,GAAG,IAAI;IACb;;IAEA;IACA,IAAI/H,KAAK,CAAC7H,QAAQ,KAAK4L,KAAK,CAAC5L,QAAQ,EAAE;MACrC6L,QAAQ,CAAC;QAAE7L,QAAQ,EAAE6H,KAAK,CAAC7H;MAAS,CAAC,CAAC;MACtC4P,IAAI,GAAG,IAAI;IACb;IAEA,IAAIA,IAAI,EAAE;MACR;IACF;IAEAR,mBAAmB,CAACxD,KAAK,CAACK,IAAI,EAAEL,KAAK,CAACI,GAAG,EAAE,CAAC,CAAC;EAC/C,CAAC,EAAE,CACDJ,KAAK,CAAClL,CAAC,EACPkL,KAAK,CAACxI,EAAE,EACRwI,KAAK,CAACG,mBAAmB,EACzBH,KAAK,CAACQ,QAAQ,EACdR,KAAK,CAACS,UAAU,EAChBT,KAAK,CAACU,WAAW,EACjBzE,KAAK,CAAC7H,QAAQ,EACd6H,KAAK,CAAC+F,UAAU,EAChB/F,KAAK,CAACsG,YAAY,CACnB,CAAC;;EAEF;EACA,IAAAtE,gBAAS,EAAC,MAAM;IACd,IAAI,IAAA3F,eAAO,EAAC0H,KAAK,CAACjG,QAAQ,CAAC,EAAE;IAC7ByJ,mBAAmB,CAACxD,KAAK,CAACK,IAAI,EAAEL,KAAK,CAACI,GAAG,EAAEJ,KAAK,CAACM,IAAI,CAAC;EACxD,CAAC,EAAE,CACDN,KAAK,CAACM,IAAI,EACVN,KAAK,CAACK,IAAI,EACVL,KAAK,CAACI,GAAG,EACTJ,KAAK,CAACjG,QAAQ,EACdiG,KAAK,CAACiB,mBAAmB,EACzBjB,KAAK,CAACkB,mBAAmB,EACzBlB,KAAK,CAACuB,WAAW,EACjBtF,KAAK,CAACsE,UAAU,EAChBP,KAAK,CAACe,kBAAkB,CACzB,CAAC;EAEF,MAAMmD,QAAQ,GAAIJ,CAAsC,IAAK;IAC3D/D,IAAI,CAAC+D,CAAC,CAACK,MAAM,CAACjM,KAAK,CAAC;EACtB,CAAC;;EAED;EACA,MAAMkM,iBAAiB,GAAG,IAAAC,kBAAW,EACnC,MAAOC,QAA0D,IAAK;IAAA;IACpE,IAAI;MAAEC,aAAa;MAAEC;IAAa,CAAC,GAAGF,QAAQ;IAC9C7C,kBAAkB,CAAC+C,YAAY,CAAC;IAChC,IAAIA,YAAY,CAACxK,MAAM,GAAG,IAAAyK,eAAO,EAACF,aAAa,CAAC,CAACvK,MAAM,EAAE;MACvD,MAAM0K,GAAG,GAAGF,YAAY,CAACpK,MAAM,CAAEjE,EAAE,IAAK,CAAC8G,KAAK,CAAC2G,OAAO,CAACe,GAAG,CAACxO,EAAE,CAAC,CAAC;MAC/D,IAAIuO,GAAG,CAAC1K,MAAM,EAAE;QACd,IAAI4K,IAAI;QACR,MAAMC,MAAM,GAAG;UACbxR,MAAM,EAAE,CAAC,YAAY,CAAC;UACtB2B,KAAK,EAAE;YACLoH,UAAU,EAAE;cACVgH,GAAG,EAAEsB;YACP;UACF,CAAC;UACDI,SAAS,EAAEJ,GAAG,CAAC1K;QACjB,CAAC;QACD;QACA,IAAIiC,KAAK,CAAC0G,wBAAwB,EAAE;UAClCiC,IAAI,GAAG,MAAM7H,YAAY,CAAC/H,KAAK,CAAC,CAC9BiH,KAAK,CAAC7H,QAAQ,EACdwC,MAAM,CAACmM,MAAM,CAAC8B,MAAM,EAAE5I,KAAK,CAAC6G,WAAW,CAAC,CACzC,CAAC;QACJ,CAAC,MAAM;UACL8B,IAAI,GAAG,MAAM,IAAArB,iCAAwB,EAACtH,KAAK,CAAC7H,QAAQ,EAAEyQ,MAAM,CAAC;QAC/D;QACAD,IAAI,CAACjB,IAAI,CAAC9N,OAAO,CAAEqN,CAAsB,IACvCjG,KAAK,CAAC2G,OAAO,CAACC,GAAG,CAACX,CAAC,CAAC9G,UAAU,EAAE8G,CAAC,CAAC,CACnC;MACH;MACAqB,aAAa,GAAGC,YAAY,CAAC7Q,GAAG,CAAEwC,EAAE,IAAK8G,KAAK,CAAC2G,OAAO,CAACmB,GAAG,CAAC5O,EAAE,CAAC,CAAC;IACjE;IACA,yBAAA8F,KAAK,CAACmI,iBAAiB,0DAAvB,2BAAAnI,KAAK,EAAqB;MAAEsI,aAAa;MAAEC;IAAa,CAAC,CAAC;EAC5D,CAAC,EACD,EAAE,CACH;EAED,MAAMQ,QAAQ,GAAI9M,KAAa,IAAK;IAAA;IAClC,MAAMpD,CAAC,GAAGoD,KAAK,CAAC/C,IAAI,EAAE;IACtB8K,QAAQ,CAAC;MAAEnL;IAAE,CAAC,CAAC;IACf,mBAAAmH,KAAK,CAAC+I,QAAQ,oDAAd,qBAAA/I,KAAK,EAAYnH,CAAC,CAAC;EACrB,CAAC;EAED,MAAMmQ,gBAAgB,GAAG,CACvBhO,OAAgB,EAChBiO,aAAsB,EACtBC,WAAoC,KACjC;IAAA;IACHlF,QAAQ,CAAC;MACPzI,EAAE,EAAEP,OAAO;MACXkO,WAAW;MACXnK,QAAQ,EAAEkK;IACZ,CAAC,CAAC;IACF,yBAAAjJ,KAAK,CAACgJ,gBAAgB,0DAAtB,2BAAAhJ,KAAK,EAAoBhF,OAAO,CAAC;EACnC,CAAC;EAED,MAAMmO,eAAe,GAAG,IAAAf,kBAAW,EAChC3L,IAA6B,IAAK;IAAA;IACjC,IAAI0H,GAAY;IAChB,IAAIC,IAAY;IAChB,IAAI3H,IAAI,CAAC0H,GAAG,KAAKxH,SAAS,EAAE;MAC1B,IAAI,CAACoH,KAAK,CAACK,IAAI,EAAE;QACf;MACF;MAEAJ,QAAQ,CAAC;QAAEG,GAAG,EAAExH,SAAS;QAAEyH,IAAI,EAAEzH;MAAU,CAAC,CAAC;IAC/C,CAAC,MAAM;MACLqH,QAAQ,CAAC;QAAEG,GAAG,EAAE1H,IAAI,CAAC0H,GAAG;QAAEC,IAAI,EAAE3H,IAAI,CAAC2H;MAAK,CAAC,CAAC;MAC5CD,GAAG,GAAG1H,IAAI,CAAC0H,GAAG;MACdC,IAAI,GAAG3H,IAAI,CAAC2H,IAAI;IAClB;IACA,yBAAApE,KAAK,CAACmJ,eAAe,0DAArB,2BAAAnJ,KAAK,EAAmBvD,IAAI,CAAC;EAC/B,CAAC,EACD,CAACsH,KAAK,CAACK,IAAI,CAAC,CACb;EAED,MAAM4D,kBAAkB,GAAG,IAAAI,kBAAW,EACnCgB,UAAsC,IAAK;IAAA;IAC1CpF,QAAQ,CAAC;MAAEK,IAAI,EAAE+E,UAAU,CAAC/E,IAAI;MAAEE,QAAQ,EAAE6E,UAAU,CAAC7E;IAAS,CAAC,CAAC;IAClE,0BAAAvE,KAAK,CAACgI,kBAAkB,2DAAxB,4BAAAhI,KAAK,EAAsBoJ,UAAU,CAAC;EACxC,CAAC,EACD,EAAE,CACH;EAED,MAAMC,sBAAsB,GAAG,IAAAjB,kBAAW,EAAElE,mBAA2B,IAAK;IAAA;IAC1EF,QAAQ,CAAC;MAAEE;IAAoB,CAAC,CAAC;IACjC,yBAAAlE,KAAK,CAACqJ,sBAAsB,0DAA5B,2BAAArJ,KAAK,EAA0BkE,mBAAmB,CAAC;EACrD,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMoF,mBAAmB,GAAIC,OAAgB,IAAK;IAAA;IAChDvF,QAAQ,CAAC;MAAES,WAAW,EAAE8E;IAAQ,CAAC,CAAC;IAClC,yBAAAvJ,KAAK,CAACsJ,mBAAmB,0DAAzB,2BAAAtJ,KAAK,EAAuBuJ,OAAO,CAAC;EACtC,CAAC;EAED,MAAMC,kBAAkB,GAAID,OAAgB,IAAK;IAAA;IAC/CvF,QAAQ,CAAC;MAAEQ,UAAU,EAAE+E;IAAQ,CAAC,CAAC;IACjC,yBAAAvJ,KAAK,CAACwJ,kBAAkB,0DAAxB,2BAAAxJ,KAAK,EAAsBuJ,OAAO,CAAC;EACrC,CAAC;EAED,MAAME,mBAAmB,GAAI1E,aAAsB,IAAK;IACtDf,QAAQ,CAAC;MAAEe;IAAc,CAAC,CAAC;EAC7B,CAAC;EACD;EACA,MAAM2E,gBAAgB,GAAGC,cAAK,CAACvB,WAAW,CAAC,YAAY;IACrD,IAAI,CAACrE,KAAK,CAACuB,WAAW,EAAE;MAAA;MACtB,MAAMsE,WAAW,GAAG,MAAM,IAAAtC,iCAAwB,EAAC,KAAK,EAAE;QACxDlQ,MAAM,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,MAAM,CAAC;QAC1CgN,IAAI,EAAE,CAAC;UAAEvK,GAAG,EAAE,MAAM;UAAEsM,KAAK,EAAE;QAAE,CAAC,CAAC;QACjC9B,IAAI,EAAE,CAAC;QACPwE,SAAS,EAAE;MACb,CAAC,CAAC;MACF7E,QAAQ,CAAC;QACPgB,mBAAmB,EAAE,sBAAA4E,WAAW,CAAClC,IAAI,sDAAhB,kBAAmB,CAAC,CAAC,CAACvH,UAAU,KAAI,EAAE;QAC3DiF,OAAO,EAAEwE,WAAW,CAAClC,IAAI;QACzBrC,WAAW,EAAE,CAAC,GAAGnF,QAAQ,EAAE,IAAI,uBAAA0J,WAAW,CAAClC,IAAI,uDAAhB,mBAAmB,CAAC,CAAC,CAACmC,QAAQ,KAAI,EAAE,CAAC,CAAC;QACrEvE,WAAW,EAAE,IAAI;QACjBJ,cAAc,EAAE,uBAAA0E,WAAW,CAAClC,IAAI,uDAAhB,mBAAmB,CAAC,CAAC,CAACvH,UAAU,KAAI,EAAE;QACtDgF,YAAY,EAAE,KAAK;QACnBd,IAAI,EAAE;MACR,CAAC,CAAC;IACJ,CAAC,MAAM;MACLL,QAAQ,CAAC;QAAEsB,WAAW,EAAE,KAAK;QAAEjB,IAAI,EAAE;MAAE,CAAC,CAAC;IAC3C;EACF,CAAC,EAAE,CAACN,KAAK,CAACuB,WAAW,CAAC,CAAC;EACvB;EACA,MAAMwE,eAAe,GAAIhP,CAAS,IAAK;IACrCkJ,QAAQ,CAAC;MACPgB,mBAAmB,EAAElK,CAAC;MACtBmK,mBAAmB,EAAE,KAAK;MAC1BC,cAAc,EAAEpK,CAAC;MACjBqK,YAAY,EAAE,KAAK;MACnBE,WAAW,EAAE,CACX,GAAGnF,QAAQ,EACX,GAAG6D,KAAK,CAACqB,OAAO,CAACtN,IAAI,CAAEiS,CAAC,IAAKA,CAAC,CAAC5J,UAAU,KAAKrF,CAAC,CAAC,CAAC+O,QAAQ;IAE7D,CAAC,CAAC;EACJ,CAAC;EACD;EACA,MAAMG,mBAAmB,GAAIlP,CAAS,IAAK;IACzCkJ,QAAQ,CAAC;MACPgB,mBAAmB,EAAElK,CAAC,KAAK,KAAK,GAAGiJ,KAAK,CAACmB,cAAc,GAAGpK,CAAC;MAC3DmK,mBAAmB,EAAE,SAAS;MAC9BE,YAAY,EAAErK;IAChB,CAAC,CAAC;EACJ,CAAC;EACD,MAAMmP,aAAa,GAAG,IAAA/I,cAAO,EAAC,MAAM;IAAA;IAClC,IAAI+I,aAAuB;IAC3B,MAAMnM,QAAQ,6BAAGkC,KAAK,CAACiD,aAAa,2DAAnB,uBAAqBnF,QAAQ;MAC5C0F,kBAAkB,6BAAGxD,KAAK,CAACyD,gBAAgB,2EAAI,EAAE;IACnD,IAAI,CAAC,IAAApH,eAAO,EAACyB,QAAQ,CAAC,EAAE;MACtBmM,aAAa,GAAGjK,KAAK,CAACiD,aAAa,CAACnF,QAAQ;IAC9C,CAAC,MAAM;MACLmM,aAAa,GAAGhI,oBAAoB,EAAE,CAACnE,QAAQ;IACjD;IACA,IAAI,CAAC,IAAAzB,eAAO,EAACmH,kBAAkB,CAAC,EAAE;MAChCyG,aAAa,GAAG,IAAAtG,YAAI,EAAC,CAAC,GAAGsG,aAAa,EAAE,GAAGzG,kBAAkB,CAAC,CAAC;IACjE;IACA,OAAOyG,aAAa;EACtB,CAAC,EAAE,CAACjK,KAAK,CAACiD,aAAa,EAAE5L,SAAS,CAAC,CAAC;;EAEpC;EACA,MAAM6S,aAAa,GAAG,CAAC;IAAE9S,MAAM;IAAE+S;EAAkC,CAAC,KAAK;IACvE,IAAIA,OAAO,EAAE;MACX,MAAMrM,QAAQ,GAAGmM,aAAa;MAC9B5S,SAAS,CAACwK,UAAU,IAAI/D,QAAQ,CAAChE,IAAI,CAAC,YAAY,CAAC;MACnDkK,QAAQ,CAAC;QAAElG;MAAS,CAAC,CAAC;MACtB0C,gBAAgB,CAAC4J,UAAU,CAAE,GAAE/S,SAAS,CAACc,QAAS,gBAAe,CAAC;MAClE6H,KAAK,CAACqK,oBAAoB,CAACvM,QAAQ,CAAC;IACtC,CAAC,MAAM;MACLkG,QAAQ,CAAC;QACPlG,QAAQ,EAAEgF,aAAa,CAAC1L,MAAM;MAChC,CAAC,CAAC;MACFoJ,gBAAgB,CAAC8J,OAAO,CAAE,GAAEjT,SAAS,CAACc,QAAS,gBAAe,EAAEf,MAAM,CAAC;MACvE4I,KAAK,CAACqK,oBAAoB,CAACjT,MAAM,CAAC;IACpC;EACF,CAAC;EAED,IAAA4K,gBAAS,EAAC,MAAM;IAAA;IACd,yBAAAhC,KAAK,CAACuK,mBAAmB,0DAAzB,2BAAAvK,KAAK,EAAuB+D,KAAK,CAACjG,QAAQ,CAAC;EAC7C,CAAC,EAAE,CAACkC,KAAK,CAACuK,mBAAmB,CAAC,CAAC;;EAE/B;EACA,IAAAvI,gBAAS,EAAC,MAAM;IAAA;IACd,2BAAAhC,KAAK,CAACuF,eAAe,2DAArB,uBAAuBxH,MAAM,KAC3B,CAAC,YAAY;MACX,MAAM8H,IAAuC,GAAG,CAAC,CAAC;MAClD,MAAMC,MAA2C,GAAG;QAClD1O,MAAM,EAAE,CAAC,YAAY;MACvB,CAAC;MACD,IAAI,CAAC,IAAAiF,eAAO,EAAC2D,KAAK,CAAC+F,UAAU,CAAC,EAAE;QAC9BD,MAAM,CAACC,UAAU,GAAGF,IAAI,CAACE,UAAU,GAAG/F,KAAK,CAAC+F,UAAU;MACxD;MAEA,IAAIhC,KAAK,CAACjG,QAAQ,EAAE;QAClB+H,IAAI,CAACzO,MAAM,GAAGuD,MAAM,CAAC6L,WAAW,CAC9BzC,KAAK,CAACjG,QAAQ,CAACpG,GAAG,CAAEuG,OAAO,IAAK,CAACA,OAAO,EAAE,IAAI,CAAC,CAAC,CACjD;QACD6H,MAAM,CAAC1O,MAAM,GAAG,CAAC,GAAG2M,KAAK,CAACjG,QAAQ,EAAE,GAAGgI,MAAM,CAAC1O,MAAM,CAAC;QACpD0O,MAAM,CAASW,0BAA0B,GAAG,IAAI;MACnD;MAEAX,MAAM,CAAC/M,KAAK,GAAG;QACboH,UAAU,EAAE;UACVgH,GAAG,EAAEnH,KAAK,CAACuF;QACb;MACF,CAAC;MACDO,MAAM,CAAC+C,SAAS,GAAG7I,KAAK,CAACuF,eAAe,CAACxH,MAAM;MAE/C,IAAIgG,KAAK,CAACU,WAAW,EAAE;QACrBqB,MAAM,CAACiB,gBAAgB,GAAGlB,IAAI,CAACkB,gBAAgB,GAAGhD,KAAK,CAACU,WAAW;MACrE;MACA,IAAIzE,KAAK,CAAC6G,WAAW,EAAE;QACrBlM,MAAM,CAACmM,MAAM,CAAChB,MAAM,EAAE9F,KAAK,CAAC6G,WAAW,CAAC;MAC1C;MACA,IAAI8B,IAAI;MACR,IAAI3I,KAAK,CAAC0G,wBAAwB,EAAE;QAClCiC,IAAI,GAAG,MAAM7H,YAAY,CAAC/H,KAAK,CAAC,CAACiH,KAAK,CAAC7H,QAAQ,EAAE2N,MAAM,CAAC,CAAC;MAC3D,CAAC,MAAM;QACL6C,IAAI,GAAG,MAAM,IAAArB,iCAAwB,EAACtH,KAAK,CAAC7H,QAAQ,EAAE2N,MAAM,CAAC;MAC/D;MACA6C,IAAI,CAACjB,IAAI,CAAC9N,OAAO,CAAEqN,CAAsB,IACvCjG,KAAK,CAAC2G,OAAO,CAACC,GAAG,CAACX,CAAC,CAAC9G,UAAU,EAAE8G,CAAC,CAAC,CACnC;IACH,CAAC,GAAG;EACR,CAAC,EAAE,CAACjH,KAAK,CAACuF,eAAe,CAAC,CAAC;EAC3B,MAAMiF,qBAAqB,GAAG,MAAM;IAClC9I,YAAY,CAAC,CAACD,WAAW,CAAC;EAC5B,CAAC;EACD,MAAMgJ,wBAAwB,GAAG,CAAC/P,MAAc,EAAES,SAAiB,KAAK;IACtE,OAAO,MAAM;MAAA;MACX,MAAMH,OAAgB,GAAG,EAAE;MAC3B,MAAMiO,aAAsB,GAAG,EAAE;MACjC,MAAMyB,QAAQ,GAAI1P,OAAc,IAC9BA,OAAO,CAACmD,MAAM,CAAErD,CAAM,IAAKI,cAAc,CAACJ,CAAC,EAAEJ,MAAM,EAAES,SAAS,CAAC,CAAC;MAClE4I,KAAK,CAACxI,EAAE,CAAC3B,OAAO,CAAEb,KAAK,IAAK;QAC1B,MAAMc,GAAG,GAAGc,MAAM,CAACC,IAAI,CAAC7B,KAAK,CAAC,CAAC,CAAC,CAAC;QACjC,IACE,CAACc,GAAG,KAAK,KAAK,IAAIA,GAAG,KAAK,MAAM,KAChCc,MAAM,CAACC,IAAI,CAAE7B,KAAK,CAACc,GAAG,CAAC,CAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAKa,MAAM,EACrD;UACA,MAAMiQ,kBAAkB,GAAGD,QAAQ,CAAC3R,KAAK,CAACc,GAAG,CAAC,CAAY;UAC1D,IAAI8Q,kBAAkB,CAAC5M,MAAM,GAAG,CAAC,EAAE;YACjC/C,OAAO,CAAClB,IAAI,CAAC;cACX,CAACD,GAAG,GAAG8Q;YACT,CAAC,CAAC;UACJ;QACF,CAAC,MAAM,IAAI9Q,GAAG,KAAKa,MAAM,IAAI,CAAC,IAAAkQ,kBAAU,EAAClQ,MAAM,EAAG,GAAEb,GAAI,GAAE,CAAC,EAAE;UAC3D;UACA,IAAI,CAACgR,KAAK,CAACC,OAAO,CAAC/R,KAAK,CAACc,GAAG,CAAC,CAAC,IAAIY,WAAW,CAAC1B,KAAK,EAAEc,GAAG,CAAC,EAAE;YACzDmB,OAAO,CAAClB,IAAI,CAACf,KAAK,CAAC;UACrB,CAAC,MAAM;YACL,MAAMkF,OAAO,GAAGtD,MAAM,CAACC,IAAI,CAAE7B,KAAK,CAACc,GAAG,CAAC,CAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1D;YACA,MAAM0F,QAAQ,GAAGvB,UAAU,CAAC3G,SAAS,EAAE4G,OAAO,CAAC;YAC/C;YACA,IACE,EACE,CAACpE,GAAG,KAAK,KAAK,IAAIA,GAAG,KAAK,MAAM,KAChC,IAAA+Q,kBAAU,EAAC3M,OAAO,EAAG,GAAEvD,MAAO,GAAE,CAAC,IACjC6E,QAAQ,CACT,EACD;cACAvE,OAAO,CAAClB,IAAI,CAACf,KAAK,CAAC;YACrB;UACF;QACF,CAAC,MAAM,IACLiH,KAAK,CAAC+K,oBAAoB,IAC1BlR,GAAG,KAAKa,MAAM,IACdQ,cAAc,CAACnC,KAAK,EAAE2B,MAAM,EAAES,SAAS,CAAC,EACxC;UACAJ,mBAAmB,CAAChC,KAAK,EAAEc,GAAG,EAAEmB,OAAO,CAAC;QAC1C;MACF,CAAC,CAAC;MACF+I,KAAK,CAAChF,QAAQ,CAACnF,OAAO,CAAEb,KAAK,IAAK;QAChC,MAAMc,GAAG,GAAGc,MAAM,CAACC,IAAI,CAAC7B,KAAK,CAAC,CAAC,CAAC,CAAC;QACjC,IACE,CAACc,GAAG,KAAK,KAAK,IAAIA,GAAG,KAAK,MAAM,KAChCc,MAAM,CAACC,IAAI,CAAE7B,KAAK,CAACc,GAAG,CAAC,CAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAKa,MAAM,EACrD;UACA,MAAMiQ,kBAAkB,GAAGD,QAAQ,CAAC3R,KAAK,CAACc,GAAG,CAAC,CAAY;UAC1D,IAAI8Q,kBAAkB,CAAC5M,MAAM,GAAG,CAAC,EAAE;YACjCkL,aAAa,CAACnP,IAAI,CAAC;cACjB,CAACD,GAAG,GAAG8Q;YACT,CAAC,CAAC;UACJ;QACF,CAAC,MAAM,IAAI9Q,GAAG,KAAKa,MAAM,EAAE;UACzBuO,aAAa,CAACnP,IAAI,CAACf,KAAK,CAAC;QAC3B,CAAC,MAAM,IACLiH,KAAK,CAAC+K,oBAAoB,IAC1BlR,GAAG,KAAKa,MAAM,IACdQ,cAAc,CAACnC,KAAK,EAAE2B,MAAM,EAAES,SAAS,CAAC,EACxC;UACAJ,mBAAmB,CAAChC,KAAK,EAAEc,GAAG,EAAEoP,aAAa,CAAC;QAChD;MACF,CAAC,CAAC;MACFjF,QAAQ,CAAC;QACPzI,EAAE,EAAEP,OAAO;QACX+D,QAAQ,EAAEkK;MACZ,CAAC,CAAC;MACF,0BAAAjJ,KAAK,CAACgJ,gBAAgB,2DAAtB,4BAAAhJ,KAAK,EAAoBhF,OAAO,CAAC;IACnC,CAAC;EACH,CAAC;EACD,MAAMS,UAAU,GAAGH,mBAAmB,CACpCyI,KAAK,CAAChF,QAAQ,EACdnG,WAAW,EACXvB,SAAS,CACV;EAED,oBACE,6BAAC,UAAI;IAAC,QAAQ,EAAE0M,KAAK,CAACY;EAAQ,GAC3BZ,KAAK,CAACW,MAAM,IAAI,CAACX,KAAK,CAACa,MAAM,gBAC5B,6BAAC,cAAK,CAAC,QAAQ,QACZ,CAAC,CAAC5E,KAAK,CAACgL,cAAc,IACrB,CAAChL,KAAK,CAACiL,sBAAsB,IAC7B,CAACjL,KAAK,CAACkL,mBAAmB,IAC1B,CAAClL,KAAK,CAACmL,kBAAkB,IACzB,CAACnL,KAAK,CAACoL,mBAAmB,kBAC1B;IAAK,SAAS,EAAEC,2BAAM,CAACC;EAAoB,gBACzC;IAAK,SAAS,EAAED,2BAAM,CAACE;EAAc,GAElC,CAACxH,KAAK,CAACuB,WAAW,gBACjB,4DACG,CAACtF,KAAK,CAACgL,cAAc,iBACpB,6BAAC,WAAK,CAAC,MAAM;IACX,WAAW,EAAEhL,KAAK,CAACwL,WAAY;IAC/B,WAAW;IACX,KAAK,EAAE3S,CAAE;IACT,QAAQ,EAAEoP,QAAS;IACnB,QAAQ,EAAEc;EAAS,EAEtB,EACA,CAAC/I,KAAK,CAACiL,sBAAsB,iBAC5B,6BAAC,YAAM;IACL,IAAI,EAAC,MAAM;IACX,IAAI,EAAC,OAAO;IACZ,KAAK,EAAE;MACLQ,UAAU,EAAE,KAAK;MACjBC,WAAW,EAAE;IACf,CAAE;IACF,OAAO,EAAE,MACP1H,QAAQ,CAAC;MACPa,uBAAuB,EACrB,CAACd,KAAK,CAACc;IACX,CAAC,CACF;IACD,eAAY;EAA4B,GAEvCzE,gBAAI,CAAC5E,CAAC,CACJ,GAAE6E,iCAAuB,IAAGC,YAAC,CAACqL,eAAgB,EAAC,CACjD,eACD,6BAAC,gBAAU;IACT,IAAI,EAAE5H,KAAK,CAACc,uBAAuB,GAAG,IAAI,GAAG;EAAO,EACpD,CAEL,CACA,gBAEH,yEACE,6BAAC,YAAM;IACL,KAAK,EAAE;MAAE+G,KAAK,EAAE,OAAO;MAAEF,WAAW,EAAE;IAAO,CAAE;IAC/C,KAAK,EAAE3H,KAAK,CAACmB,cAAe;IAC5B,QAAQ,EAAE4E,eAAgB;IAC1B,UAAU,EAAE,IAAK;IACjB,gBAAgB,EAAC;EAAU,qBAE1B/F,KAAK,CAACqB,OAAO,mDAAb,eAAe1N,GAAG,CAAEqS,CAAC,iBACpB,6BAAC,YAAM,CAAC,MAAM;IAAC,GAAG,EAAEA,CAAC,CAAC5J,UAAW;IAAC,KAAK,EAAE4J,CAAC,CAAC5J;EAAW,GACnD4J,CAAC,CAAC/N,IAAI,CAEV,CAAC,CACK,eACT,6BAAC,YAAM;IACL,KAAK,EAAE;MAAE4P,KAAK,EAAE;IAAQ,CAAE;IAC1B,KAAK,EAAE7H,KAAK,CAACoB,YAAa;IAC1B,QAAQ,EAAE6E,mBAAoB;IAC9B,UAAU,EAAE,IAAK;IACjB,gBAAgB,EAAC;EAAU,GAE1BjG,KAAK,CAACsB,WAAW,CAAC3N,GAAG,CAAEqS,CAAC,iBACvB,6BAAC,YAAM,CAAC,MAAM;IAAC,GAAG,EAAEA,CAAC,CAAC5J,UAAW;IAAC,KAAK,EAAE4J,CAAC,CAAC5J;EAAW,GACnD4J,CAAC,CAAC/N,IAAI,CAEV,CAAC,CACK,CAEZ,CACG,eACN;IAAK,SAAS,EAAEqP,2BAAM,CAACQ;EAAQ,GAC5BtG,eAAe,CAACxH,MAAM,GAAG,CAAC,iBACzB;IAAK,KAAK,EAAE;MAAE2N,WAAW,EAAE;IAAG;EAAE,gBAC9B,2CACGtL,gBAAI,CAAC5E,CAAC,CAAE,GAAE6E,iCAAuB,IAAGC,YAAC,CAACwL,cAAe,EAAC,EAAE;IACvDC,KAAK,EAAExG,eAAe,CAACxH;EACzB,CAAC,CAAC,CACG,eACP;IACE,IAAI,EAAC,QAAQ;IACb,OAAO,EAAE,MACPoK,iBAAiB,CAAC;MAChBI,YAAY,EAAE,EAAE;MAChBD,aAAa,EAAE;IACjB,CAAC;EACF,GAEA,GAAG,EACHlI,gBAAI,CAAC5E,CAAC,CAAE,GAAE6E,iCAAuB,IAAGC,YAAC,CAAC0L,KAAM,EAAC,CAAC,CAC7C,CAEP,EACA,0BAAAhM,KAAK,CAACiM,kBAAkB,0DAAxB,sBAA0BC,QAAQ,kBACjC,6BAAC,0BAAgB;IACf,QAAQ,EAAElM,KAAK,CAACiM,kBAAkB,CAACC;EAAS,EAE/C,EACAlM,KAAK,CAAC7H,QAAQ,KAAK,MAAM,IAAI6H,KAAK,CAACmM,iBAAiB,iBACnD,6BAAC,YAAM;IAAC,IAAI,EAAE,MAAO;IAAC,OAAO,EAAEzC;EAAiB,GAE7C3F,KAAK,CAACuB,WAAW,GACdlF,gBAAI,CAAC5E,CAAC,CAAE,GAAE6E,iCAAuB,IAAGC,YAAC,CAAC8L,cAAe,EAAC,CAAC,GACvDhM,gBAAI,CAAC5E,CAAC,CAAE,GAAE6E,iCAAuB,IAAGC,YAAC,CAAC+L,aAAc,EAAC,CAAC,CAE7D,EACArM,KAAK,CAAC7H,QAAQ,KAAK,MAAM,IAAI,CAAC6H,KAAK,CAACmL,kBAAkB,iBACrD,6BAAC,sBAAU;IACT,OAAO,EAAEpH,KAAK,CAACS,UAAW;IAC1B,QAAQ,EAAEgF,kBAAmB;IAC7B,KAAK,EAAE;MAAEkC,WAAW,EAAE;IAAG,CAAE;IAC3B,QAAQ,EAAE1L,KAAK,CAACsM,aAAc;IAC9B,IAAI,EAAC,YAAY;IACjB,KAAK,EAAElM,gBAAI,CAAC5E,CAAC,CAAE,GAAE6E,iCAAuB,IAAGC,YAAC,CAACiM,WAAY,EAAC,CAAE;IAC5D,eAAY;EAAa,EAE5B,EACA,CAACvM,KAAK,CAACkL,mBAAmB,iBACzB,6BAAC,sBAAU;IACT,OAAO,EAAEnH,KAAK,CAACU,WAAY;IAC3B,QAAQ,EAAE6E,mBAAoB;IAC9B,KAAK,EAAE;MAAEoC,WAAW,EAAE;IAAG,CAAE;IAC3B,IAAI,EAAC,YAAY;IACjB,KAAK,EAAEtL,gBAAI,CAAC5E,CAAC,CACV,GAAE6E,iCAAuB,IAAGC,YAAC,CAACkM,aAAc,EAAC,CAC9C;IACF,eAAY;EAAe,EAE9B,EACA,CAACxM,KAAK,CAACyM,sBAAsB,iBAC5B,6BAAC,sBAAU;IACT,OAAO,EAAE1I,KAAK,CAACgB,aAAc;IAC7B,QAAQ,EAAE0E,mBAAoB;IAC9B,KAAK,EAAE;MAAEiC,WAAW,EAAE;IAAG,CAAE;IAC3B,IAAI,EAAC,gBAAgB;IACrB,KAAK,EAAEtL,gBAAI,CAAC5E,CAAC,CACV,GAAE6E,iCAAuB,IAAGC,YAAC,CAACoM,2BAA4B,EAAC,CAC5D;IACF,eAAY;EAAkB,EAEjC,EACA,CAAC1M,KAAK,CAACoL,mBAAmB,iBACzB,6BAAC,uCAAoB;IACnB,SAAS,EAAE/T,SAAU;IACrB,SAAS,EAAE6S,aAAc;IACzB,QAAQ,EAAEnG,KAAK,CAACjG,QAAS;IACzB,aAAa,EAAEmM,aAAc;IAC7B,kBAAkB,EAAEjK,KAAK,CAAC4D,kBAAmB;IAC7C,qBAAqB,EAAE4G,qBAAsB;IAC7C,WAAW,EAAE/I,WAAY;IACzB,eAAe,EAAEzB,KAAK,CAAC2M;EAAgB,EAE1C,CACG,CAET,EACA,CAAC3M,KAAK,CAACiL,sBAAsB,IAAI,CAAClH,KAAK,CAACuB,WAAW,iBAClD;IACE,KAAK,EAAE;MAAEsH,YAAY,EAAE;IAAO,CAAE;IAChC,MAAM,EAAE,CAAC7I,KAAK,CAACc;EAAwB,gBAEvC,6BAAC,iCAAc;IACb,GAAG,EAAEhH,MAAM,CAACkG,KAAK,CAACjG,QAAQ,EAAEiG,KAAK,CAACxI,EAAE,CAAE;IACtC,QAAQ,EAAEwI,KAAK,CAACjG,QAAS;IACzB,WAAW,EAAEiG,KAAK,CAACnL,WAAY;IAC/B,SAAS,EAAEvB,SAAU;IACrB,CAAC,EAAE0M,KAAK,CAAChF,QAAS;IAClB,WAAW,EAAEgF,KAAK,CAACmF,WAAY;IAC/B,QAAQ,EAAEF;EAAiB,GACtBhJ,KAAK,CAAC6M,UAAU,GACjB;IACEA,UAAU,EAAE7M,KAAK,CAAC6M;EACpB,CAAC,GACD,IAAI,EACR,CAEL,EACA,CAAC7M,KAAK,CAAC8M,oBAAoB,IAC1B,CAAC/I,KAAK,CAACuB,WAAW,KACjBvB,KAAK,CAACG,mBAAmB,IAAIH,KAAK,CAAClL,CAAC,IAAI,CAAC,IAAAwD,eAAO,EAACZ,UAAU,CAAC,CAAC,iBAC5D;IAAK,SAAS,EAAE4P,2BAAM,CAAC0B;EAAiB,gBACtC,2CACG3M,gBAAI,CAAC5E,CAAC,CACJ,GAAE6E,iCAAuB,IAAGC,YAAC,CAAC0M,2BAA4B,EAAC,CAC7D,CACI,EACNjJ,KAAK,CAAClL,CAAC,iBACN,6BAAC,SAAG;IACF,QAAQ;IACR,OAAO,EAAE,MAAM;MACbiL,IAAI,CAAC,EAAE,CAAC;MACRiF,QAAQ,CAAC,EAAE,CAAC;IACd;EAAE,GAED3I,gBAAI,CAAC5E,CAAC,CAAE,GAAE6E,iCAAuB,IAAGC,YAAC,CAAC2M,YAAa,EAAC,EAAE;IACrDlU,KAAK,EAAEgL,KAAK,CAAClL;EACf,CAAC,CAAC,CAEL,EACAkL,KAAK,CAACG,mBAAmB,iBACxB,6BAAC,SAAG;IACF,QAAQ;IACR,OAAO,EAAE,MAAM;MACbmF,sBAAsB,CAAC,IAAI,CAAC;IAC9B;EAAE,GAEDjJ,gBAAI,CAAC5E,CAAC,CACJ,GAAE6E,iCAAuB,IAAGC,YAAC,CAAC4M,wBAAyB,EAAC,EACzD;IACEnU,KAAK,EACH,CAAAuI,yBAAyB,aAAzBA,yBAAyB,uBAAzBA,yBAAyB,CACvByC,KAAK,CAACG,mBAAmB,CAC1B,KAAIH,KAAK,CAACG;EACf,CAAC,CACF,CAEJ,EACAzI,UAAU,CAAC/D,GAAG,CAAE4F,SAAS,iBACxB,6BAAC,SAAG;IACF,GAAG,EAAG,GAAEA,SAAS,CAAC5C,MAAO,GACvB4C,SAAS,CAACnC,SACX,IAAG,IAAAgS,gBAAQ,GAAG,EAAE;IACjB,QAAQ;IACR,OAAO,EAAE1C,wBAAwB,CAC/BnN,SAAS,CAAC5C,MAAM,EAChB4C,SAAS,CAACnC,SAAS;EACnB,GAEDmC,SAAS,CAACA,SAAS,CAEvB,CAAC,CAEL,EACF,0BAAA0C,KAAK,CAACoN,iBAAiB,0DAAvB,sBAAyBlB,QAAQ,kBAChC,6BAAC,0BAAgB;IAAC,QAAQ,EAAElM,KAAK,CAACoN,iBAAiB,CAAClB;EAAS,EAC9D,EACA,CAAClM,KAAK,CAACyH,gBAAgB,iBACtB,6BAAC,oCAAiB;IAChB,kBAAkB,EAAEzH,KAAK,CAACqN,kBAAmB;IAC7C,QAAQ,EAAEtJ,KAAK,CAACjG,QAAS;IACzB,WAAW,EAAEiG,KAAK,CAACnL,WAAY;IAC/B,SAAS,EAAEvB,SAAU;IACrB,gBAAgB,EAAE0M,KAAK,CAACyD,gBAAiB;IACzC,IAAI,EAAEzD,KAAK,CAACK,IAAK;IACjB,GAAG,EAAEL,KAAK,CAACI,GAAI;IACf,eAAe,EAAEoB,eAAgB;IACjC,cAAc,EAAEvF,KAAK,CAACsN,cAAe;IACrC,YAAY,EAAEtN,KAAK,CAACuN,YAAa;IACjC,sBAAsB,EAAEvN,KAAK,CAACwN,sBAAuB;IACrD,WAAW,EAAExN,KAAK,CAACyN,WAAY;IAC/B,aAAa,EAAEzN,KAAK,CAAC0N,aAAc;IACnC,kBAAkB,EAAE1F,kBAAmB;IACvC,eAAe,EAAEmB,eAAgB;IACjC,iBAAiB,EAAEhB,iBAAkB;IACrC,sBAAsB,EAAEkB,sBAAuB;IAC/C,mBAAmB,EAAEtF,KAAK,CAACG,mBAAoB;IAC/C,yBAAyB,EAAE5C,yBAA0B;IACrD,4BAA4B,EAAEtB,KAAK,CAAC2N,4BAA6B;IACjE,aAAa,EAAE5J,KAAK,CAACgB,aAAc;IACnC,oBAAoB,EAAE/E,KAAK,CAAC4N,oBAAqB;IACjD,eAAe,EAAE5N,KAAK,CAAC6N,eAAgB;IACvC,eAAe,EAAE7N,KAAK,CAAC8N,eAAgB;IACvC,YAAY,EAAE9N,KAAK,CAAC+N,YAAa;IACjC,MAAM,EAAE/N,KAAK,CAACkI,MAAO;IACrB,MAAM,EAAElI,KAAK,CAACgO,MAAO;IACrB,WAAW,EAAEvM,WAAY;IACzB,2BAA2B,EAAEzB,KAAK,CAACiO,2BAA4B;IAC/D,WAAW,EAAEhO,WAAY;IACzB,gBAAgB,EAAED,KAAK,CAACkO;EAAiB,EAE5C,CACc;EAAA;EAEjB;EACA;IAAK,SAAS,EAAE7C,2BAAM,CAAC8C;EAAe,EACvC,CACI;AAEX;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASC,YAAY,CAACpO,KAAwB,EAAsB;EACzE,MAAM,CAAC1I,UAAU,EAAE+W,aAAa,CAAC,GAAG,IAAA7M,eAAQ,EAE1CxB,KAAK,CAAC1I,UAAU,CAAC;EAEnB,IAAA0K,gBAAS,EAAC,MAAM;IAAA;IACd,yBAAIhC,KAAK,CAAC1I,UAAU,8CAAhB,kBAAkByG,MAAM,EAAE;MAC5BsQ,aAAa,CAACrO,KAAK,CAAC1I,UAAU,CAAC;IACjC,CAAC,MAAM;MACL,CAAC,YAAY;QACX,MAAMgX,SAAS,GAAGC,2BAAe,CAACzF,GAAG,CAAC9I,KAAK,CAAC7H,QAAQ,CAAC;QACrD,IAAImW,SAAS,EAAE;UACbD,aAAa,CAACC,SAAS,CAAC;QAC1B,CAAC,MAAM;UACL,IAAI;YACF,MAAM5G,IAAI,GAAG,CACX,MAAM,IAAA8G,mCAA0B,EAAC;cAAEC,UAAU,EAAEzO,KAAK,CAAC7H;YAAS,CAAC,CAAC,EAChE0N,IAAI;YACNwI,aAAa,CAAC3G,IAAI,CAAC;YACnB6G,2BAAe,CAAC3G,GAAG,CAAC5H,KAAK,CAAC7H,QAAQ,EAAEuP,IAAI,CAAC;UAC3C,CAAC,CAAC,OAAOG,CAAC,EAAE;YACV;YACA,IAAAC,yBAAe,EAACD,CAAC,CAAC;UACpB;QACF;MACF,CAAC,GAAG;IACN;EACF,CAAC,EAAE,CAAC7H,KAAK,CAAC7H,QAAQ,EAAE6H,KAAK,CAAC1I,UAAU,CAAC,CAAC;EAEtC,IACE,CAACA,UAAU,IACX,CAACA,UAAU,CAACQ,IAAI,CAAE8H,IAAI,IAAKA,IAAI,CAACzH,QAAQ,KAAK6H,KAAK,CAAC7H,QAAQ,CAAC,EAE5D,OAAO,IAAI;EAEb,oBAAO,6BAAC,kBAAkB,6BAAK6H,KAAK;IAAE,UAAU,EAAE1I;EAAW,GAAG;AAClE"}
|
|
@@ -318,12 +318,12 @@ export function LegacyInstanceList(props) {
|
|
|
318
318
|
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
|
|
319
319
|
inModal: false
|
|
320
320
|
};
|
|
321
|
-
//
|
|
321
|
+
// 针对 显示字段,默认优先拿排序的字段,再去拿属性字段
|
|
322
322
|
var settings = inModal ? CMDB_MODAL_FIELDS_SETTINGS : CMDB_RESOURCE_FIELDS_SETTINGS;
|
|
323
|
-
var ignoredFields = settings.ignoredFields[modelData.objectId] || [];
|
|
324
|
-
var
|
|
325
|
-
var
|
|
326
|
-
fieldIds =
|
|
323
|
+
var ignoredFields = (settings.ignoredFields[modelData.objectId] || []).concat(modelData.view.hide_columns || []);
|
|
324
|
+
var sortFields = modelData.view.attr_order || [];
|
|
325
|
+
var allFields = [...new Set([...sortFields, ...map(modelData.attrList, "id")])];
|
|
326
|
+
var fieldIds = difference(allFields, ignoredFields).slice(0, 8);
|
|
327
327
|
return {
|
|
328
328
|
fieldIds
|
|
329
329
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InstanceList.js","names":["React","useEffect","useReducer","useState","useRef","useMemo","useCallback","difference","isEmpty","isEqual","isString","map","uniq","union","filter","reject","sortBy","uniqueId","findIndex","find","startsWith","compact","omit","keyBy","BrickAsComponent","getRuntime","handleHttpError","useProvider","i18n","K","NS_LIBS_CMDB_INSTANCES","InstanceApi_postSearchV3","CmdbObjectApi_getIdMapName","CmdbObjectApi_getObjectRef","Icon","LegacyIcon","Button","Spin","Input","Tag","Select","getRelationObjectSides","forEachAvailableFields","getInstanceNameKeys","isSelfRelation","ElementOperators","LogicalOperators","JsonStorage","ConditionType","AdvancedSearch","getFieldConditionsAndValues","MoreButtonsContainer","InstanceListTable","styles","extraFieldAttrs","CMDB_MODAL_FIELDS_SETTINGS","CMDB_RESOURCE_FIELDS_SETTINGS","objectListCache","ModelAttributeValueType","IconButton","changeQueryWithCustomRules","joinRelationFieldAndShowkey","fields","modelData","objectList","attrIdMap","attrList","field","relation","relation_list","left_id","right_id","isLeft","left_object_id","objectId","otherSideObjectId","right_object_id","otherSideObject","object","showKey","view","show_key","getQuery","idObjectMap","q","onlySearchByIp","query","$or","queryValues","trim","split","searchIpFields","getCurrentApp","config","queryOrs","Set","searchValue","$like","forEach","key","push","attr","queryValue","id","sides","this","nameKeys","that","nameKey","isSpecialFn","attrId","Object","keys","some","v","specialQueryHandler","queries","isSpecial","isValueEqualFn","valuesStr","values","join","translateConditions","aq","t","conditions","relations","sidesArr","relationObject","nameOfNameKey","name","value","type","relationSideId","attrAndRelationList","Exists","info","undefined","Between","Empty","NotEmpty","False","True","includes","currentCondition","replace","condition","label","curCondition","queryValuesStr","every","newKey","fieldIds","length","isOfStruct","fieldId","structFields","structs","struct_define","struct","flat","isOfBoolean","keyAttrMap","BOOLEAN","initAqToShow","isToShow","newAqToShow","aqToShow","entries","expressions","newExpressions","Or","And","firstSubQuery","isStruct","isBool","structQueries","expression","structExpressions","item","boolExpressions","targetValue","LegacyInstanceList","props","showTooltip","baseList","instanceId","ALL_CLUSTER","jsonLocalStorage","localStorage","reducer","prevState","updatedProperty","listProvider","cache","instanceArchiveListProvider","disabledDefaultFields","inheritanceModelIdNameMap","setInheritanceModelIdNameMap","fixedHeader","setFixHeader","fetchInheritanceModelIdNameMap","idNameMap","isAbstract","parentObjectId","computeDefaultFields","inModal","settings","ignoredFields","slice","hideModelData","hide_columns","_sortFieldIds","frontFields","restFields","presetConfigs","foundIndex","attr_order","orderId","getFields","extraFixedFieldIds","extraFixedFields","getItem","extraDisabledField","setQ","state","setState","instanceSourceQuery","asc","sort","page","dataSource","pageSize","aliveHosts","relatedToMe","inited","loading","failed","isAdvancedSearchVisible","presetConfigsQuery","autoBreakLine","appSearchInstanceId","currentChangeSelect","appSelectValue","clusterValue","appList","clusterList","searchByApp","selectedRowKeys","setSelectedRowKeys","Map","isFirstRunRef","getInstanceListData","data","v3Data","concat","permission","archiveData","sortType","default_type","order","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","refreshInstanceList","instanceListData","hideInstanceList","list","current","set","e","skip","onPaginationChange","onChange","target","onSelectionChange","selected","selectedItems","selectedKeys","ids","has","resp","params","page_size","get","onSearch","onAdvancedSearch","queriesToShow","fieldToShow","onSortingChange","pagination","onInstanceSourceChange","onRelatedToMeChange","checked","onAliveHostsChange","toggleAutoBreakLine","toggleSearchMode","appListResp","clusters","appSelectChange","r","clusterSelectChange","defaultFields","handleConfirm","isReset","removeItem","onFieldsModalConfirm","setItem","notifyCurrentFields","handleToggleFixHeader","onAdvancedSearchCloseGen","filterAq","filteredSubQueries","Array","isArray","isInstanceFilterForm","searchDisabled","advancedSearchDisabled","relatedToMeDisabled","aliveHostsDisabled","moreButtonsDisabled","instanceListToolbar","searchRelated","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","extraFilterBricks","detailUrlTemplates","selectDisabled","sortDisabled","propertyDisplayConfigs","onClickItem","onClickItemV2","filterInstanceSourceDisabled","relationLinkDisabled","pageSizeOptions","showSizeChanger","extraColumns","ipCopy","separatorUsedInRelationData","rowSelectionType","virtualLoading","InstanceList","setObjectList","cacheData","ref_object"],"sources":["../../../src/instance-list/InstanceList.tsx"],"sourcesContent":["import React, {\n useEffect,\n useReducer,\n useState,\n useRef,\n useMemo,\n useCallback,\n} from \"react\";\nimport {\n difference,\n isEmpty,\n isEqual,\n isString,\n map,\n uniq,\n union,\n filter,\n reject,\n sortBy,\n uniqueId,\n findIndex,\n find,\n startsWith,\n compact,\n omit,\n keyBy,\n} from \"lodash\";\nimport {\n BrickAsComponent,\n getRuntime,\n handleHttpError,\n useProvider,\n} from \"@next-core/brick-kit\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport {\n PropertyDisplayConfig,\n ReadPaginationChangeDetail,\n ReadSelectionChangeDetail,\n ReadSortingChangeDetail,\n UseBrickConf,\n} from \"@next-core/brick-types\";\nimport {\n CmdbModels,\n InstanceApi_PostSearchRequestBody,\n InstanceApi_PostSearchV3RequestBody,\n InstanceApi_PostSearchV3ResponseBody,\n InstanceApi_postSearchV3,\n CmdbObjectApi_getIdMapName,\n CmdbObjectApi_getObjectRef,\n} from \"@next-sdk/cmdb-sdk\";\nimport { Icon as LegacyIcon } from \"@ant-design/compatible\";\nimport { Button, Spin, Input, Tag, Select } from \"antd\";\nimport {\n getRelationObjectSides,\n forEachAvailableFields,\n getInstanceNameKeys,\n RelationIdKeys,\n RelationNameKeys,\n RelationObjectIdKeys,\n RelationObjectSides,\n isSelfRelation,\n Query,\n ElementOperators,\n LogicalOperators,\n ComparisonOperators,\n} from \"@next-libs/cmdb-utils\";\nimport { JsonStorage } from \"@next-libs/storage\";\nimport { ModelObjectAttr } from \"@next-sdk/cmdb-sdk/dist/types/model/cmdb\";\n\nimport {\n ConditionType,\n AdvancedSearch,\n getFieldConditionsAndValues,\n MoreButtonsContainer,\n InstanceListTable,\n CustomColumn,\n Field,\n UseBrickAndPropertyDisplayConfig,\n} from \"../instance-list-table\";\nimport styles from \"./InstanceList.module.css\";\nimport {\n extraFieldAttrs,\n CMDB_MODAL_FIELDS_SETTINGS,\n CMDB_RESOURCE_FIELDS_SETTINGS,\n objectListCache,\n} from \"./constants\";\nimport { ModelAttributeValueType } from \"../model-attribute-form-control/ModelAttributeFormControl\";\nimport { IconButton } from \"./IconButton\";\nimport { changeQueryWithCustomRules } from \"../processors\";\nimport { DisplaySettingsModalData } from \"../instance-list-table/DisplaySettingsModal\";\n\nexport interface instanceArchiveRequestBody {\n // 搜索内容\n key_word?: string;\n /** 页码 */\n page?: number;\n /** 页大小 */\n page_size?: number;\n fields?: string;\n}\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};\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\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}\n\ninterface InstanceListState {\n objectId: string;\n q: string;\n aq: Query[];\n aqToShow?: Query[];\n instanceSourceQuery: string;\n asc: boolean;\n sort: string;\n page: number;\n pageSize: number;\n aliveHosts: boolean;\n relatedToMe: boolean;\n inited: boolean;\n loading: boolean;\n failed: boolean;\n idObjectMap?: Record<string, Partial<CmdbModels.ModelCmdbObject>>;\n instanceListData?: InstanceApi_PostSearchV3ResponseBody;\n isAdvancedSearchVisible: boolean;\n fieldIds: string[];\n autoBreakLine: boolean;\n fieldToShow?: Record<string, any[]>[];\n appSearchInstanceId?: string;\n currentChangeSelect?: string;\n appSelectValue?: string;\n clusterValue?: string;\n appList?: Record<string, any>[];\n clusterList?: Record<string, any>[];\n searchByApp?: boolean;\n showTooltip?: boolean;\n presetConfigsQuery?: Record<string, any>;\n}\n\nexport function LegacyInstanceList(\n props: InstanceListProps\n): React.ReactElement {\n const { showTooltip = true } = props;\n const baseList = [\n {\n instanceId: \"all\",\n name: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.ALL_CLUSTER}`),\n },\n ];\n const jsonLocalStorage = new JsonStorage(localStorage);\n const reducer = (\n prevState: InstanceListState,\n updatedProperty: Partial<InstanceListState>\n ): InstanceListState => {\n return {\n ...prevState,\n ...updatedProperty,\n };\n };\n // 资源自动发现页面24小时发现主机抽屉的实例列表处,通用的postSearchV3接口无法查到正确结果,需要用下面的接口替换,参数里也要加上jobId:***\n // 为了不影响其他地方的实例列表,在该处加一个useAutoDiscoveryProvider参数,该参数为undefined或false的,仍调用原接口\n\n const listProvider = useProvider(\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 { modelData, idObjectMap } = useMemo(() => {\n let modelData: Partial<CmdbModels.ModelCmdbObject>;\n const idObjectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>> = {};\n props.objectList.forEach((object) => {\n idObjectMap[object.objectId] = object;\n if (object.objectId === props.objectId) {\n modelData = object;\n modelData.attrList = !props.disabledDefaultFields\n ? union(object.attrList, extraFieldAttrs)\n : object.attrList;\n }\n });\n\n return { modelData, idObjectMap };\n }, [props.objectList, props.objectId]);\n\n const [inheritanceModelIdNameMap, setInheritanceModelIdNameMap] = useState<\n Record<string, string>\n >({});\n const [fixedHeader, setFixHeader] = useState(false);\n\n const fetchInheritanceModelIdNameMap = async (\n modelData: Partial<CmdbModels.ModelCmdbObject>\n ): Promise<void> => {\n let idNameMap = {};\n if (modelData.isAbstract) {\n idNameMap = await CmdbObjectApi_getIdMapName({\n parentObjectId: modelData.objectId,\n } as any);\n }\n setInheritanceModelIdNameMap(idNameMap);\n };\n\n useEffect(() => {\n fetchInheritanceModelIdNameMap(modelData);\n }, [modelData]);\n\n const computeDefaultFields = (\n { inModal } = { inModal: false }\n ): { fieldIds: string[] } => {\n // 原来有隐藏逻辑,针对 APP、HOST、USER、USER_GROUP模型,默认字段特殊处理了,现产品要求干掉,统一取8个默认字段,也不区分是否是内置模型\n const settings: any = inModal\n ? CMDB_MODAL_FIELDS_SETTINGS\n : CMDB_RESOURCE_FIELDS_SETTINGS;\n const ignoredFields: string[] =\n settings.ignoredFields[modelData.objectId] || [];\n let fieldIds: string[] = difference(\n uniq(map(modelData.attrList, \"id\")),\n ignoredFields\n ).slice(0, 8);\n const hideModelData: string[] = modelData.view.hide_columns || [];\n fieldIds = fieldIds.filter((field) => !hideModelData.includes(field));\n return { fieldIds };\n };\n\n // 根据用户预定义的 presetConfigs.fieldIds 进行排序,如果不在预定义的字段,则根据 modelData.view.attr_order 进行排序\n const _sortFieldIds = (fieldIds: any[]) => {\n let frontFields: any[] = [];\n let restFields: any[] = [];\n if (props.presetConfigs?.fieldIds) {\n frontFields = filter(props.presetConfigs.fieldIds, (id) =>\n fieldIds.includes(id)\n );\n }\n restFields = sortBy(\n reject(fieldIds, (id) => frontFields.includes(id)),\n (fieldId) => {\n const foundIndex = findIndex(\n modelData.view.attr_order,\n (orderId) => orderId === fieldId\n );\n if (foundIndex === -1) {\n return null;\n } else {\n return foundIndex;\n }\n }\n );\n return [...frontFields, ...restFields];\n };\n\n const getFields = () => {\n let fieldIds = props.presetConfigs?.fieldIds;\n const extraFixedFieldIds = props.extraFixedFields ?? [];\n if (isEmpty(fieldIds)) {\n fieldIds = jsonLocalStorage.getItem(\n `${modelData.objectId}-selectAttrIds`\n );\n }\n if (isEmpty(fieldIds)) {\n fieldIds = computeDefaultFields().fieldIds;\n }\n if (!isEmpty(extraFixedFieldIds)) {\n fieldIds = uniq([...fieldIds, ...extraFixedFieldIds]);\n }\n fieldIds = props.extraDisabledField\n ? uniq([...fieldIds, props.extraDisabledField])\n : fieldIds;\n fieldIds = _sortFieldIds(fieldIds);\n const hideModelData: string[] = modelData.view.hide_columns || [];\n fieldIds = fieldIds.filter((field) => !hideModelData.includes(field));\n modelData.isAbstract && fieldIds.push(\"_object_id\");\n return fieldIds;\n };\n\n const [q, setQ] = useState(props.q);\n const [state, setState] = useReducer(reducer, undefined, () => ({\n objectId: props.objectId,\n q: props.q,\n aq: initAqToShow(props.aq, modelData, false),\n aqToShow: props.aqToShow || initAqToShow(props.aq, modelData),\n instanceSourceQuery: props.instanceSourceQuery,\n asc: props.asc,\n sort: props.sort,\n page: props.dataSource?.page ?? props.page ?? 1,\n pageSize: props.dataSource?.pageSize ?? props.pageSize ?? 10,\n aliveHosts: props.aliveHosts,\n relatedToMe: props.relatedToMe,\n inited: false,\n loading: false,\n failed: false,\n isAdvancedSearchVisible: false,\n fieldIds: getFields(),\n presetConfigsQuery: props.presetConfigs?.query,\n autoBreakLine: false,\n appSearchInstanceId: \"\",\n currentChangeSelect: \"App\",\n appSelectValue: \"\",\n clusterValue: \"all\",\n appList: [],\n clusterList: [\n {\n instanceId: \"all\",\n name: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.ALL_CLUSTER}`),\n },\n ],\n searchByApp: false,\n }));\n const [selectedRowKeys, setSelectedRowKeys] = useState(\n props.selectedRowKeys ?? []\n );\n const cache = useRef(new Map<string, InstanceApi_PostSearchV3ResponseBody>());\n const isFirstRunRef = useRef(true);\n\n const getInstanceListData = async (\n sort: string,\n asc: boolean,\n page: number\n ): Promise<InstanceApi_PostSearchV3ResponseBody> => {\n const data: InstanceApi_PostSearchRequestBody = {};\n const v3Data: InstanceApi_PostSearchV3RequestBody = {\n fields: props?.extraFixedFields\n ? uniq([\"instanceId\"].concat(props?.extraFixedFields))\n : [\"instanceId\"],\n };\n if (!isEmpty(props.permission)) {\n v3Data.permission = data.permission = props.permission;\n }\n\n 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 return promise\n ? promise\n : props.useAutoDiscoveryProvider\n ? listProvider.query([props.objectId, v3Data])\n : InstanceApi_postSearchV3(props.objectId, v3Data);\n };\n\n const refreshInstanceList = async (\n sort: string,\n asc: boolean,\n page: number\n ): Promise<void> => {\n setState({ loading: true });\n try {\n if (props.dataSource) {\n setState({\n idObjectMap: idObjectMap,\n instanceListData: props.dataSource,\n });\n } else {\n if (!props.hideInstanceList) {\n const instanceListData = await getInstanceListData(sort, asc, page);\n instanceListData.list.forEach((i) =>\n cache.current.set(i.instanceId, i)\n );\n setState({ idObjectMap: idObjectMap, instanceListData });\n } else {\n setState({\n idObjectMap: idObjectMap,\n instanceListData: [] as InstanceApi_PostSearchV3ResponseBody,\n });\n }\n }\n } catch (e) {\n handleHttpError(e);\n setState({ failed: true });\n } finally {\n setState({ inited: true, loading: false });\n }\n };\n\n useEffect(() => {\n const fieldIds = getFields();\n if (\n // 当 props.objectId 改变时,总是更新 state.fieldIds\n props.objectId !== state.objectId ||\n !isEqual(fieldIds, state.fieldIds) ||\n !isEqual(props.presetConfigs?.query, state.presetConfigsQuery)\n ) {\n setState({\n fieldIds,\n presetConfigsQuery: props.presetConfigs?.query,\n });\n }\n }, [props.objectId, props.presetConfigs]);\n\n useEffect(() => {\n setSelectedRowKeys(props.selectedRowKeys ?? []);\n }, [props.objectId, props.selectedRowKeys]);\n\n // on filter condition change\n useEffect(() => {\n if (isFirstRunRef.current) {\n isFirstRunRef.current = false;\n return;\n }\n\n let skip = false;\n\n if (state.page !== 1) {\n setState({ page: 1 });\n props.onPaginationChange?.({ page: 1, pageSize: state.pageSize });\n skip = true;\n }\n\n // 当 prop.objectId 改变时先跳过,等 state.fieldIds 更新后再获取数据\n if (props.objectId !== state.objectId) {\n setState({ objectId: props.objectId });\n skip = true;\n }\n\n if (skip) {\n return;\n }\n\n refreshInstanceList(state.sort, state.asc, 1);\n }, [\n state.q,\n state.aq,\n state.instanceSourceQuery,\n state.pageSize,\n state.aliveHosts,\n state.relatedToMe,\n props.objectId,\n props.permission,\n props.defaultQuery,\n ]);\n\n // on other condition change\n useEffect(() => {\n if (isEmpty(state.fieldIds)) return;\n refreshInstanceList(state.sort, state.asc, state.page);\n }, [\n state.page,\n state.sort,\n state.asc,\n state.fieldIds,\n state.appSearchInstanceId,\n state.currentChangeSelect,\n state.searchByApp,\n props.dataSource,\n state.presetConfigsQuery,\n ]);\n\n const onChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setQ(e.target.value);\n };\n\n // istanbul ignore next\n const onSelectionChange = useCallback(\n async (selected: { selectedKeys: string[]; selectedItems: any[] }) => {\n let { selectedItems, selectedKeys } = selected;\n setSelectedRowKeys(selectedKeys);\n if (selectedKeys.length > compact(selectedItems).length) {\n const ids = selectedKeys.filter((id) => !cache.current.has(id));\n if (ids.length) {\n let resp;\n const params = {\n fields: [\"instanceId\"],\n query: {\n instanceId: {\n $in: ids,\n },\n },\n page_size: ids.length,\n };\n // useAutoDiscoveryProvider=true, 使用useProvider的接口,虽然这里列表用不到选择功能,但还是加上保持统一\n if (props.useAutoDiscoveryProvider) {\n resp = await listProvider.query([\n props.objectId,\n Object.assign(params, props.extraParams),\n ]);\n } else {\n resp = await InstanceApi_postSearchV3(props.objectId, params);\n }\n resp.list.forEach((i: Record<string, any>) =>\n cache.current.set(i.instanceId, i)\n );\n }\n selectedItems = selectedKeys.map((id) => cache.current.get(id));\n }\n props.onSelectionChange?.({ selectedItems, selectedKeys });\n },\n []\n );\n\n const onSearch = (value: string) => {\n const q = value.trim();\n setState({ q });\n props.onSearch?.(q);\n };\n\n const onAdvancedSearch = (\n queries: Query[],\n queriesToShow: Query[],\n fieldToShow: Record<string, any[]>[]\n ) => {\n setState({\n aq: queries,\n fieldToShow,\n aqToShow: queriesToShow,\n });\n props.onAdvancedSearch?.(queries);\n };\n\n const onSortingChange = useCallback(\n (info: ReadSortingChangeDetail) => {\n let asc: boolean;\n let sort: string;\n if (info.asc === undefined) {\n if (!state.sort) {\n return;\n }\n\n setState({ asc: undefined, sort: undefined });\n } else {\n setState({ asc: info.asc, sort: info.sort });\n asc = info.asc;\n sort = info.sort;\n }\n props.onSortingChange?.(info);\n },\n [state.sort]\n );\n\n const onPaginationChange = useCallback(\n (pagination: ReadPaginationChangeDetail) => {\n setState({ page: pagination.page, pageSize: pagination.pageSize });\n props.onPaginationChange?.(pagination);\n },\n []\n );\n\n const onInstanceSourceChange = useCallback((instanceSourceQuery: string) => {\n setState({ instanceSourceQuery });\n props.onInstanceSourceChange?.(instanceSourceQuery);\n }, []);\n\n const onRelatedToMeChange = (checked: boolean) => {\n setState({ relatedToMe: checked });\n props.onRelatedToMeChange?.(checked);\n };\n\n const onAliveHostsChange = (checked: boolean) => {\n setState({ aliveHosts: checked });\n props.onAliveHostsChange?.(checked);\n };\n\n const toggleAutoBreakLine = (autoBreakLine: boolean) => {\n setState({ autoBreakLine });\n };\n // istanbul ignore next (state is not updated)\n const toggleSearchMode = React.useCallback(async () => {\n if (!state.searchByApp) {\n const appListResp = await InstanceApi_postSearchV3(\"APP\", {\n fields: [\"clusters\", \"instanceId\", \"name\"],\n sort: [{ key: \"name\", order: 1 }],\n page: 1,\n page_size: 3000,\n });\n setState({\n appSearchInstanceId: appListResp.list?.[0].instanceId || \"\",\n appList: appListResp.list,\n clusterList: [...baseList, ...(appListResp.list?.[0].clusters || [])],\n searchByApp: true,\n appSelectValue: appListResp.list?.[0].instanceId || \"\",\n clusterValue: \"all\",\n page: 1,\n });\n } else {\n setState({ searchByApp: false, page: 1 });\n }\n }, [state.searchByApp]);\n // istanbul ignore next (state is not updated)\n const appSelectChange = (v: string) => {\n setState({\n appSearchInstanceId: v,\n currentChangeSelect: \"App\",\n appSelectValue: v,\n clusterValue: \"all\",\n clusterList: [\n ...baseList,\n ...state.appList.find((r) => r.instanceId === v).clusters,\n ],\n });\n };\n // istanbul ignore next (state is not updated)\n const clusterSelectChange = (v: string) => {\n setState({\n appSearchInstanceId: v === \"all\" ? state.appSelectValue : v,\n currentChangeSelect: \"Cluster\",\n clusterValue: v,\n });\n };\n const defaultFields = useMemo(() => {\n let defaultFields: string[];\n const fieldIds = props.presetConfigs?.fieldIds,\n extraFixedFieldIds = props.extraFixedFields ?? [];\n if (!isEmpty(fieldIds)) {\n defaultFields = props.presetConfigs.fieldIds;\n } else {\n defaultFields = computeDefaultFields().fieldIds;\n }\n if (!isEmpty(extraFixedFieldIds)) {\n defaultFields = uniq([...defaultFields, ...extraFixedFieldIds]);\n }\n return defaultFields;\n }, [props.presetConfigs, modelData]);\n\n // istanbul ignore next\n const handleConfirm = ({ fields, isReset }: DisplaySettingsModalData) => {\n if (isReset) {\n const fieldIds = defaultFields;\n modelData.isAbstract && fieldIds.push(\"_object_id\");\n setState({ fieldIds });\n jsonLocalStorage.removeItem(`${modelData.objectId}-selectAttrIds`);\n props.onFieldsModalConfirm(fieldIds);\n } else {\n setState({\n fieldIds: _sortFieldIds(fields),\n });\n jsonLocalStorage.setItem(`${modelData.objectId}-selectAttrIds`, fields);\n props.onFieldsModalConfirm(fields);\n }\n };\n\n useEffect(() => {\n props.notifyCurrentFields?.(state.fieldIds);\n }, [props.notifyCurrentFields]);\n\n // istanbul ignore next\n useEffect(() => {\n props.selectedRowKeys?.length &&\n (async () => {\n const data: InstanceApi_PostSearchRequestBody = {};\n const v3Data: InstanceApi_PostSearchV3RequestBody = {\n fields: [\"instanceId\"],\n };\n if (!isEmpty(props.permission)) {\n v3Data.permission = data.permission = props.permission;\n }\n\n if (state.fieldIds) {\n data.fields = Object.fromEntries(\n state.fieldIds.map((fieldId) => [fieldId, true])\n );\n v3Data.fields = [...state.fieldIds, ...v3Data.fields];\n (v3Data as any).ignore_missing_field_error = true;\n }\n\n v3Data.query = {\n instanceId: {\n $in: props.selectedRowKeys,\n },\n };\n v3Data.page_size = props.selectedRowKeys.length;\n\n if (state.relatedToMe) {\n v3Data.only_my_instance = data.only_my_instance = state.relatedToMe;\n }\n if (props.extraParams) {\n Object.assign(v3Data, props.extraParams);\n }\n let resp;\n if (props.useAutoDiscoveryProvider) {\n resp = await listProvider.query([props.objectId, v3Data]);\n } else {\n resp = await InstanceApi_postSearchV3(props.objectId, v3Data);\n }\n resp.list.forEach((i: Record<string, any>) =>\n cache.current.set(i.instanceId, i)\n );\n })();\n }, [props.selectedRowKeys]);\n const handleToggleFixHeader = () => {\n setFixHeader(!fixedHeader);\n };\n const onAdvancedSearchCloseGen = (attrId: string, valuesStr: string) => {\n return () => {\n const queries: Query[] = [];\n const queriesToShow: Query[] = [];\n const filterAq = (queries: any[]) =>\n queries.filter((v: any) => isValueEqualFn(v, attrId, valuesStr));\n state.aq.forEach((query) => {\n const key = Object.keys(query)[0];\n if (\n (key === \"$or\" || key === \"$and\") &&\n Object.keys((query[key] as Query[])[0])[0] === attrId\n ) {\n const filteredSubQueries = filterAq(query[key] as Query[]);\n if (filteredSubQueries.length > 0) {\n queries.push({\n [key]: filteredSubQueries,\n });\n }\n } else if (key !== attrId && !startsWith(attrId, `${key}.`)) {\n // $exists $gte $lte 针对为空,不为空,时间范围特殊处理\n if (!Array.isArray(query[key]) && isSpecialFn(query, key)) {\n queries.push(query);\n } else {\n const fieldId = Object.keys((query[key] as Query[])[0])[0];\n // 判断是否为结构体\n const isStruct = isOfStruct(modelData, fieldId);\n // 结构体情况处理\n if (\n !(\n (key === \"$or\" || key === \"$and\") &&\n startsWith(fieldId, `${attrId}.`) &&\n isStruct\n )\n ) {\n queries.push(query);\n }\n }\n } else if (\n props.isInstanceFilterForm &&\n key === attrId &&\n isValueEqualFn(query, attrId, valuesStr)\n ) {\n specialQueryHandler(query, key, queries);\n }\n });\n state.aqToShow.forEach((query) => {\n const key = Object.keys(query)[0];\n if (\n (key === \"$or\" || key === \"$and\") &&\n Object.keys((query[key] as Query[])[0])[0] === attrId\n ) {\n const filteredSubQueries = filterAq(query[key] as Query[]);\n if (filteredSubQueries.length > 0) {\n queriesToShow.push({\n [key]: filteredSubQueries,\n });\n }\n } else if (key !== attrId) {\n queriesToShow.push(query);\n } else if (\n props.isInstanceFilterForm &&\n key === attrId &&\n isValueEqualFn(query, attrId, valuesStr)\n ) {\n specialQueryHandler(query, key, queriesToShow);\n }\n });\n setState({\n aq: queries,\n aqToShow: queriesToShow,\n });\n props.onAdvancedSearch?.(queries);\n };\n };\n const conditions = translateConditions(\n state.aqToShow,\n idObjectMap,\n modelData\n );\n\n return (\n <Spin spinning={state.loading}>\n {state.inited && !state.failed ? (\n <React.Fragment>\n {(!props.searchDisabled ||\n !props.advancedSearchDisabled ||\n !props.relatedToMeDisabled ||\n !props.aliveHostsDisabled ||\n !props.moreButtonsDisabled) && (\n <div className={styles.instanceListToolbar}>\n <div className={styles.searchRelated}>\n {/* istanbul ignore next (state is not updated) */}\n {!state.searchByApp ? (\n <>\n {!props.searchDisabled && (\n <Input.Search\n 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.objectId === \"HOST\" && props.enableSearchByApp && (\n <Button type={\"link\"} onClick={toggleSearchMode}>\n {/* istanbul ignore next (state is not updated) */}\n {state.searchByApp\n ? i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FREE_SELECTION}`)\n : i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.APP_SELECTION}`)}\n </Button>\n )}\n {props.objectId === \"HOST\" && !props.aliveHostsDisabled && (\n <IconButton\n checked={state.aliveHosts}\n onChange={onAliveHostsChange}\n style={{ marginRight: 10 }}\n disabled={props.fixAliveHosts}\n type=\"normalHost\"\n label={i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.NORMAL_HOST}`)}\n data-testid=\"alive-hosts\"\n />\n )}\n {!props.relatedToMeDisabled && (\n <IconButton\n checked={state.relatedToMe}\n onChange={onRelatedToMeChange}\n style={{ marginRight: 10 }}\n type=\"relateToMe\"\n label={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.RELATED_TO_ME}`\n )}\n data-testid=\"related-to-me\"\n />\n )}\n {!props.showHiddenInfoDisabled && (\n <IconButton\n checked={state.autoBreakLine}\n onChange={toggleAutoBreakLine}\n style={{ marginRight: 10 }}\n type=\"showHiddenInfo\"\n label={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.DISPLAY_OMITTED_INFORMATION}`\n )}\n data-testid=\"show-hidden-info\"\n />\n )}\n {!props.moreButtonsDisabled && (\n <MoreButtonsContainer\n modelData={modelData}\n onConfirm={handleConfirm}\n fieldIds={state.fieldIds}\n defaultFields={defaultFields}\n extraDisabledField={props.extraDisabledField}\n handleToggleFixHeader={handleToggleFixHeader}\n fixedHeader={fixedHeader}\n showFixedHeader={props.showFixedHeader}\n />\n )}\n </div>\n </div>\n )}\n {!props.advancedSearchDisabled && !state.searchByApp && (\n <div\n style={{ marginBottom: \"18px\" }}\n hidden={!state.isAdvancedSearchVisible}\n >\n <AdvancedSearch\n key={newKey(state.fieldIds, state.aq)}\n fieldIds={state.fieldIds}\n idObjectMap={state.idObjectMap}\n modelData={modelData}\n q={state.aqToShow}\n fieldToShow={state.fieldToShow}\n onSearch={onAdvancedSearch}\n {...(props.autoSearch\n ? {\n autoSearch: props.autoSearch,\n }\n : null)}\n />\n </div>\n )}\n {!props.hideSearchConditions &&\n !state.searchByApp &&\n (state.instanceSourceQuery || state.q || !isEmpty(conditions)) && (\n <div className={styles.searchConditions}>\n <span>\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.CURRENT_FILTER_REQUIREMENTS}`\n )}\n </span>\n {state.q && (\n <Tag\n closable\n onClose={() => {\n setQ(\"\");\n onSearch(\"\");\n }}\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FUZZY_SEARCH}`, {\n query: state.q,\n })}\n </Tag>\n )}\n {state.instanceSourceQuery && (\n <Tag\n closable\n onClose={() => {\n onInstanceSourceChange(null);\n }}\n >\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.INSTANCE_SOURCE_TAG_TEXT}`,\n {\n query:\n inheritanceModelIdNameMap?.[\n state.instanceSourceQuery\n ] || state.instanceSourceQuery,\n }\n )}\n </Tag>\n )}\n {conditions.map((condition) => (\n <Tag\n key={`${condition.attrId}${\n condition.valuesStr\n }-${uniqueId()}`}\n closable\n onClose={onAdvancedSearchCloseGen(\n condition.attrId,\n condition.valuesStr\n )}\n >\n {condition.condition}\n </Tag>\n ))}\n </div>\n )}\n {props.extraFilterBricks?.useBrick && (\n <BrickAsComponent useBrick={props.extraFilterBricks.useBrick} />\n )}\n {!props.hideInstanceList && (\n <InstanceListTable\n detailUrlTemplates={props.detailUrlTemplates}\n fieldIds={state.fieldIds}\n idObjectMap={state.idObjectMap}\n modelData={modelData}\n instanceListData={state.instanceListData}\n sort={state.sort}\n asc={state.asc}\n selectedRowKeys={selectedRowKeys}\n selectDisabled={props.selectDisabled}\n sortDisabled={props.sortDisabled}\n propertyDisplayConfigs={props.propertyDisplayConfigs}\n onClickItem={props.onClickItem}\n onClickItemV2={props.onClickItemV2}\n onPaginationChange={onPaginationChange}\n onSortingChange={onSortingChange}\n onSelectionChange={onSelectionChange}\n onInstanceSourceChange={onInstanceSourceChange}\n instanceSourceQuery={state.instanceSourceQuery}\n inheritanceModelIdNameMap={inheritanceModelIdNameMap}\n filterInstanceSourceDisabled={props.filterInstanceSourceDisabled}\n autoBreakLine={state.autoBreakLine}\n relationLinkDisabled={props.relationLinkDisabled}\n pageSizeOptions={props.pageSizeOptions}\n showSizeChanger={props.showSizeChanger}\n extraColumns={props.extraColumns}\n target={props.target}\n ipCopy={props.ipCopy}\n fixedHeader={fixedHeader}\n separatorUsedInRelationData={props.separatorUsedInRelationData}\n showTooltip={showTooltip}\n rowSelectionType={props.rowSelectionType}\n />\n )}\n </React.Fragment>\n ) : (\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 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 const list = (\n await CmdbObjectApi_getObjectRef({ ref_object: props.objectId })\n ).data;\n setObjectList(list);\n objectListCache.set(props.objectId, list);\n } catch (e) {\n // istanbul ignore next\n handleHttpError(e);\n }\n }\n })();\n }\n }, [props.objectId, props.objectList]);\n\n if (\n !objectList ||\n !objectList.find((item) => item.objectId === props.objectId)\n )\n return null;\n\n return <LegacyInstanceList {...props} objectList={objectList} />;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"InstanceList.js","names":["React","useEffect","useReducer","useState","useRef","useMemo","useCallback","difference","isEmpty","isEqual","isString","map","uniq","union","filter","reject","sortBy","uniqueId","findIndex","find","startsWith","compact","omit","keyBy","BrickAsComponent","getRuntime","handleHttpError","useProvider","i18n","K","NS_LIBS_CMDB_INSTANCES","InstanceApi_postSearchV3","CmdbObjectApi_getIdMapName","CmdbObjectApi_getObjectRef","Icon","LegacyIcon","Button","Spin","Input","Tag","Select","getRelationObjectSides","forEachAvailableFields","getInstanceNameKeys","isSelfRelation","ElementOperators","LogicalOperators","JsonStorage","ConditionType","AdvancedSearch","getFieldConditionsAndValues","MoreButtonsContainer","InstanceListTable","styles","extraFieldAttrs","CMDB_MODAL_FIELDS_SETTINGS","CMDB_RESOURCE_FIELDS_SETTINGS","objectListCache","ModelAttributeValueType","IconButton","changeQueryWithCustomRules","joinRelationFieldAndShowkey","fields","modelData","objectList","attrIdMap","attrList","field","relation","relation_list","left_id","right_id","isLeft","left_object_id","objectId","otherSideObjectId","right_object_id","otherSideObject","object","showKey","view","show_key","getQuery","idObjectMap","q","onlySearchByIp","query","$or","queryValues","trim","split","searchIpFields","getCurrentApp","config","queryOrs","Set","searchValue","$like","forEach","key","push","attr","queryValue","id","sides","this","nameKeys","that","nameKey","isSpecialFn","attrId","Object","keys","some","v","specialQueryHandler","queries","isSpecial","isValueEqualFn","valuesStr","values","join","translateConditions","aq","t","conditions","relations","sidesArr","relationObject","nameOfNameKey","name","value","type","relationSideId","attrAndRelationList","Exists","info","undefined","Between","Empty","NotEmpty","False","True","includes","currentCondition","replace","condition","label","curCondition","queryValuesStr","every","newKey","fieldIds","length","isOfStruct","fieldId","structFields","structs","struct_define","struct","flat","isOfBoolean","keyAttrMap","BOOLEAN","initAqToShow","isToShow","newAqToShow","aqToShow","entries","expressions","newExpressions","Or","And","firstSubQuery","isStruct","isBool","structQueries","expression","structExpressions","item","boolExpressions","targetValue","LegacyInstanceList","props","showTooltip","baseList","instanceId","ALL_CLUSTER","jsonLocalStorage","localStorage","reducer","prevState","updatedProperty","listProvider","cache","instanceArchiveListProvider","disabledDefaultFields","inheritanceModelIdNameMap","setInheritanceModelIdNameMap","fixedHeader","setFixHeader","fetchInheritanceModelIdNameMap","idNameMap","isAbstract","parentObjectId","computeDefaultFields","inModal","settings","ignoredFields","concat","hide_columns","sortFields","attr_order","allFields","slice","_sortFieldIds","frontFields","restFields","presetConfigs","foundIndex","orderId","getFields","extraFixedFieldIds","extraFixedFields","getItem","extraDisabledField","hideModelData","setQ","state","setState","instanceSourceQuery","asc","sort","page","dataSource","pageSize","aliveHosts","relatedToMe","inited","loading","failed","isAdvancedSearchVisible","presetConfigsQuery","autoBreakLine","appSearchInstanceId","currentChangeSelect","appSelectValue","clusterValue","appList","clusterList","searchByApp","selectedRowKeys","setSelectedRowKeys","Map","isFirstRunRef","getInstanceListData","data","v3Data","permission","archiveData","sortType","default_type","order","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","refreshInstanceList","instanceListData","hideInstanceList","list","current","set","e","skip","onPaginationChange","onChange","target","onSelectionChange","selected","selectedItems","selectedKeys","ids","has","resp","params","page_size","get","onSearch","onAdvancedSearch","queriesToShow","fieldToShow","onSortingChange","pagination","onInstanceSourceChange","onRelatedToMeChange","checked","onAliveHostsChange","toggleAutoBreakLine","toggleSearchMode","appListResp","clusters","appSelectChange","r","clusterSelectChange","defaultFields","handleConfirm","isReset","removeItem","onFieldsModalConfirm","setItem","notifyCurrentFields","handleToggleFixHeader","onAdvancedSearchCloseGen","filterAq","filteredSubQueries","Array","isArray","isInstanceFilterForm","searchDisabled","advancedSearchDisabled","relatedToMeDisabled","aliveHostsDisabled","moreButtonsDisabled","instanceListToolbar","searchRelated","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","extraFilterBricks","detailUrlTemplates","selectDisabled","sortDisabled","propertyDisplayConfigs","onClickItem","onClickItemV2","filterInstanceSourceDisabled","relationLinkDisabled","pageSizeOptions","showSizeChanger","extraColumns","ipCopy","separatorUsedInRelationData","rowSelectionType","virtualLoading","InstanceList","setObjectList","cacheData","ref_object"],"sources":["../../../src/instance-list/InstanceList.tsx"],"sourcesContent":["import React, {\n useEffect,\n useReducer,\n useState,\n useRef,\n useMemo,\n useCallback,\n} from \"react\";\nimport {\n difference,\n isEmpty,\n isEqual,\n isString,\n map,\n uniq,\n union,\n filter,\n reject,\n sortBy,\n uniqueId,\n findIndex,\n find,\n startsWith,\n compact,\n omit,\n keyBy,\n} from \"lodash\";\nimport {\n BrickAsComponent,\n getRuntime,\n handleHttpError,\n useProvider,\n} from \"@next-core/brick-kit\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport {\n PropertyDisplayConfig,\n ReadPaginationChangeDetail,\n ReadSelectionChangeDetail,\n ReadSortingChangeDetail,\n UseBrickConf,\n} from \"@next-core/brick-types\";\nimport {\n CmdbModels,\n InstanceApi_PostSearchRequestBody,\n InstanceApi_PostSearchV3RequestBody,\n InstanceApi_PostSearchV3ResponseBody,\n InstanceApi_postSearchV3,\n CmdbObjectApi_getIdMapName,\n CmdbObjectApi_getObjectRef,\n} from \"@next-sdk/cmdb-sdk\";\nimport { Icon as LegacyIcon } from \"@ant-design/compatible\";\nimport { Button, Spin, Input, Tag, Select } from \"antd\";\nimport {\n getRelationObjectSides,\n forEachAvailableFields,\n getInstanceNameKeys,\n RelationIdKeys,\n RelationNameKeys,\n RelationObjectIdKeys,\n RelationObjectSides,\n isSelfRelation,\n Query,\n ElementOperators,\n LogicalOperators,\n ComparisonOperators,\n} from \"@next-libs/cmdb-utils\";\nimport { JsonStorage } from \"@next-libs/storage\";\nimport { ModelObjectAttr } from \"@next-sdk/cmdb-sdk/dist/types/model/cmdb\";\n\nimport {\n ConditionType,\n AdvancedSearch,\n getFieldConditionsAndValues,\n MoreButtonsContainer,\n InstanceListTable,\n CustomColumn,\n Field,\n UseBrickAndPropertyDisplayConfig,\n} from \"../instance-list-table\";\nimport styles from \"./InstanceList.module.css\";\nimport {\n extraFieldAttrs,\n CMDB_MODAL_FIELDS_SETTINGS,\n CMDB_RESOURCE_FIELDS_SETTINGS,\n objectListCache,\n} from \"./constants\";\nimport { ModelAttributeValueType } from \"../model-attribute-form-control/ModelAttributeFormControl\";\nimport { IconButton } from \"./IconButton\";\nimport { changeQueryWithCustomRules } from \"../processors\";\nimport { DisplaySettingsModalData } from \"../instance-list-table/DisplaySettingsModal\";\n\nexport interface instanceArchiveRequestBody {\n // 搜索内容\n key_word?: string;\n /** 页码 */\n page?: number;\n /** 页大小 */\n page_size?: number;\n fields?: string;\n}\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};\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\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}\n\ninterface InstanceListState {\n objectId: string;\n q: string;\n aq: Query[];\n aqToShow?: Query[];\n instanceSourceQuery: string;\n asc: boolean;\n sort: string;\n page: number;\n pageSize: number;\n aliveHosts: boolean;\n relatedToMe: boolean;\n inited: boolean;\n loading: boolean;\n failed: boolean;\n idObjectMap?: Record<string, Partial<CmdbModels.ModelCmdbObject>>;\n instanceListData?: InstanceApi_PostSearchV3ResponseBody;\n isAdvancedSearchVisible: boolean;\n fieldIds: string[];\n autoBreakLine: boolean;\n fieldToShow?: Record<string, any[]>[];\n appSearchInstanceId?: string;\n currentChangeSelect?: string;\n appSelectValue?: string;\n clusterValue?: string;\n appList?: Record<string, any>[];\n clusterList?: Record<string, any>[];\n searchByApp?: boolean;\n showTooltip?: boolean;\n presetConfigsQuery?: Record<string, any>;\n}\n\nexport function LegacyInstanceList(\n props: InstanceListProps\n): React.ReactElement {\n const { showTooltip = true } = props;\n const baseList = [\n {\n instanceId: \"all\",\n name: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.ALL_CLUSTER}`),\n },\n ];\n const jsonLocalStorage = new JsonStorage(localStorage);\n const reducer = (\n prevState: InstanceListState,\n updatedProperty: Partial<InstanceListState>\n ): InstanceListState => {\n return {\n ...prevState,\n ...updatedProperty,\n };\n };\n // 资源自动发现页面24小时发现主机抽屉的实例列表处,通用的postSearchV3接口无法查到正确结果,需要用下面的接口替换,参数里也要加上jobId:***\n // 为了不影响其他地方的实例列表,在该处加一个useAutoDiscoveryProvider参数,该参数为undefined或false的,仍调用原接口\n\n const listProvider = useProvider(\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 { modelData, idObjectMap } = useMemo(() => {\n let modelData: Partial<CmdbModels.ModelCmdbObject>;\n const idObjectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>> = {};\n props.objectList.forEach((object) => {\n idObjectMap[object.objectId] = object;\n if (object.objectId === props.objectId) {\n modelData = object;\n modelData.attrList = !props.disabledDefaultFields\n ? union(object.attrList, extraFieldAttrs)\n : object.attrList;\n }\n });\n\n return { modelData, idObjectMap };\n }, [props.objectList, props.objectId]);\n\n const [inheritanceModelIdNameMap, setInheritanceModelIdNameMap] = useState<\n Record<string, string>\n >({});\n const [fixedHeader, setFixHeader] = useState(false);\n\n const fetchInheritanceModelIdNameMap = async (\n modelData: Partial<CmdbModels.ModelCmdbObject>\n ): Promise<void> => {\n let idNameMap = {};\n if (modelData.isAbstract) {\n idNameMap = await CmdbObjectApi_getIdMapName({\n parentObjectId: modelData.objectId,\n } as any);\n }\n setInheritanceModelIdNameMap(idNameMap);\n };\n\n useEffect(() => {\n fetchInheritanceModelIdNameMap(modelData);\n }, [modelData]);\n\n const computeDefaultFields = (\n { inModal } = { inModal: false }\n ): { fieldIds: string[] } => {\n // 针对 显示字段,默认优先拿排序的字段,再去拿属性字段\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\n const getFields = () => {\n let fieldIds = props.presetConfigs?.fieldIds;\n const extraFixedFieldIds = props.extraFixedFields ?? [];\n if (isEmpty(fieldIds)) {\n fieldIds = jsonLocalStorage.getItem(\n `${modelData.objectId}-selectAttrIds`\n );\n }\n if (isEmpty(fieldIds)) {\n fieldIds = computeDefaultFields().fieldIds;\n }\n if (!isEmpty(extraFixedFieldIds)) {\n fieldIds = uniq([...fieldIds, ...extraFixedFieldIds]);\n }\n fieldIds = props.extraDisabledField\n ? uniq([...fieldIds, props.extraDisabledField])\n : fieldIds;\n fieldIds = _sortFieldIds(fieldIds);\n const hideModelData: string[] = modelData.view.hide_columns || [];\n fieldIds = fieldIds.filter((field) => !hideModelData.includes(field));\n modelData.isAbstract && fieldIds.push(\"_object_id\");\n return fieldIds;\n };\n\n const [q, setQ] = useState(props.q);\n const [state, setState] = useReducer(reducer, undefined, () => ({\n objectId: props.objectId,\n q: props.q,\n aq: initAqToShow(props.aq, modelData, false),\n aqToShow: props.aqToShow || initAqToShow(props.aq, modelData),\n instanceSourceQuery: props.instanceSourceQuery,\n asc: props.asc,\n sort: props.sort,\n page: props.dataSource?.page ?? props.page ?? 1,\n pageSize: props.dataSource?.pageSize ?? props.pageSize ?? 10,\n aliveHosts: props.aliveHosts,\n relatedToMe: props.relatedToMe,\n inited: false,\n loading: false,\n failed: false,\n isAdvancedSearchVisible: false,\n fieldIds: getFields(),\n presetConfigsQuery: props.presetConfigs?.query,\n autoBreakLine: false,\n appSearchInstanceId: \"\",\n currentChangeSelect: \"App\",\n appSelectValue: \"\",\n clusterValue: \"all\",\n appList: [],\n clusterList: [\n {\n instanceId: \"all\",\n name: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.ALL_CLUSTER}`),\n },\n ],\n searchByApp: false,\n }));\n const [selectedRowKeys, setSelectedRowKeys] = useState(\n props.selectedRowKeys ?? []\n );\n const cache = useRef(new Map<string, InstanceApi_PostSearchV3ResponseBody>());\n const isFirstRunRef = useRef(true);\n\n const getInstanceListData = async (\n sort: string,\n asc: boolean,\n page: number\n ): Promise<InstanceApi_PostSearchV3ResponseBody> => {\n const data: InstanceApi_PostSearchRequestBody = {};\n const v3Data: InstanceApi_PostSearchV3RequestBody = {\n fields: props?.extraFixedFields\n ? uniq([\"instanceId\"].concat(props?.extraFixedFields))\n : [\"instanceId\"],\n };\n if (!isEmpty(props.permission)) {\n v3Data.permission = data.permission = props.permission;\n }\n\n 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 return promise\n ? promise\n : props.useAutoDiscoveryProvider\n ? listProvider.query([props.objectId, v3Data])\n : InstanceApi_postSearchV3(props.objectId, v3Data);\n };\n\n const refreshInstanceList = async (\n sort: string,\n asc: boolean,\n page: number\n ): Promise<void> => {\n setState({ loading: true });\n try {\n if (props.dataSource) {\n setState({\n idObjectMap: idObjectMap,\n instanceListData: props.dataSource,\n });\n } else {\n if (!props.hideInstanceList) {\n const instanceListData = await getInstanceListData(sort, asc, page);\n instanceListData.list.forEach((i) =>\n cache.current.set(i.instanceId, i)\n );\n setState({ idObjectMap: idObjectMap, instanceListData });\n } else {\n setState({\n idObjectMap: idObjectMap,\n instanceListData: [] as InstanceApi_PostSearchV3ResponseBody,\n });\n }\n }\n } catch (e) {\n handleHttpError(e);\n setState({ failed: true });\n } finally {\n setState({ inited: true, loading: false });\n }\n };\n\n useEffect(() => {\n const fieldIds = getFields();\n if (\n // 当 props.objectId 改变时,总是更新 state.fieldIds\n props.objectId !== state.objectId ||\n !isEqual(fieldIds, state.fieldIds) ||\n !isEqual(props.presetConfigs?.query, state.presetConfigsQuery)\n ) {\n setState({\n fieldIds,\n presetConfigsQuery: props.presetConfigs?.query,\n });\n }\n }, [props.objectId, props.presetConfigs]);\n\n useEffect(() => {\n setSelectedRowKeys(props.selectedRowKeys ?? []);\n }, [props.objectId, props.selectedRowKeys]);\n\n // on filter condition change\n useEffect(() => {\n if (isFirstRunRef.current) {\n isFirstRunRef.current = false;\n return;\n }\n\n let skip = false;\n\n if (state.page !== 1) {\n setState({ page: 1 });\n props.onPaginationChange?.({ page: 1, pageSize: state.pageSize });\n skip = true;\n }\n\n // 当 prop.objectId 改变时先跳过,等 state.fieldIds 更新后再获取数据\n if (props.objectId !== state.objectId) {\n setState({ objectId: props.objectId });\n skip = true;\n }\n\n if (skip) {\n return;\n }\n\n refreshInstanceList(state.sort, state.asc, 1);\n }, [\n state.q,\n state.aq,\n state.instanceSourceQuery,\n state.pageSize,\n state.aliveHosts,\n state.relatedToMe,\n props.objectId,\n props.permission,\n props.defaultQuery,\n ]);\n\n // on other condition change\n useEffect(() => {\n if (isEmpty(state.fieldIds)) return;\n refreshInstanceList(state.sort, state.asc, state.page);\n }, [\n state.page,\n state.sort,\n state.asc,\n state.fieldIds,\n state.appSearchInstanceId,\n state.currentChangeSelect,\n state.searchByApp,\n props.dataSource,\n state.presetConfigsQuery,\n ]);\n\n const onChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setQ(e.target.value);\n };\n\n // istanbul ignore next\n const onSelectionChange = useCallback(\n async (selected: { selectedKeys: string[]; selectedItems: any[] }) => {\n let { selectedItems, selectedKeys } = selected;\n setSelectedRowKeys(selectedKeys);\n if (selectedKeys.length > compact(selectedItems).length) {\n const ids = selectedKeys.filter((id) => !cache.current.has(id));\n if (ids.length) {\n let resp;\n const params = {\n fields: [\"instanceId\"],\n query: {\n instanceId: {\n $in: ids,\n },\n },\n page_size: ids.length,\n };\n // useAutoDiscoveryProvider=true, 使用useProvider的接口,虽然这里列表用不到选择功能,但还是加上保持统一\n if (props.useAutoDiscoveryProvider) {\n resp = await listProvider.query([\n props.objectId,\n Object.assign(params, props.extraParams),\n ]);\n } else {\n resp = await InstanceApi_postSearchV3(props.objectId, params);\n }\n resp.list.forEach((i: Record<string, any>) =>\n cache.current.set(i.instanceId, i)\n );\n }\n selectedItems = selectedKeys.map((id) => cache.current.get(id));\n }\n props.onSelectionChange?.({ selectedItems, selectedKeys });\n },\n []\n );\n\n const onSearch = (value: string) => {\n const q = value.trim();\n setState({ q });\n props.onSearch?.(q);\n };\n\n const onAdvancedSearch = (\n queries: Query[],\n queriesToShow: Query[],\n fieldToShow: Record<string, any[]>[]\n ) => {\n setState({\n aq: queries,\n fieldToShow,\n aqToShow: queriesToShow,\n });\n props.onAdvancedSearch?.(queries);\n };\n\n const onSortingChange = useCallback(\n (info: ReadSortingChangeDetail) => {\n let asc: boolean;\n let sort: string;\n if (info.asc === undefined) {\n if (!state.sort) {\n return;\n }\n\n setState({ asc: undefined, sort: undefined });\n } else {\n setState({ asc: info.asc, sort: info.sort });\n asc = info.asc;\n sort = info.sort;\n }\n props.onSortingChange?.(info);\n },\n [state.sort]\n );\n\n const onPaginationChange = useCallback(\n (pagination: ReadPaginationChangeDetail) => {\n setState({ page: pagination.page, pageSize: pagination.pageSize });\n props.onPaginationChange?.(pagination);\n },\n []\n );\n\n const onInstanceSourceChange = useCallback((instanceSourceQuery: string) => {\n setState({ instanceSourceQuery });\n props.onInstanceSourceChange?.(instanceSourceQuery);\n }, []);\n\n const onRelatedToMeChange = (checked: boolean) => {\n setState({ relatedToMe: checked });\n props.onRelatedToMeChange?.(checked);\n };\n\n const onAliveHostsChange = (checked: boolean) => {\n setState({ aliveHosts: checked });\n props.onAliveHostsChange?.(checked);\n };\n\n const toggleAutoBreakLine = (autoBreakLine: boolean) => {\n setState({ autoBreakLine });\n };\n // istanbul ignore next (state is not updated)\n const toggleSearchMode = React.useCallback(async () => {\n if (!state.searchByApp) {\n const appListResp = await InstanceApi_postSearchV3(\"APP\", {\n fields: [\"clusters\", \"instanceId\", \"name\"],\n sort: [{ key: \"name\", order: 1 }],\n page: 1,\n page_size: 3000,\n });\n setState({\n appSearchInstanceId: appListResp.list?.[0].instanceId || \"\",\n appList: appListResp.list,\n clusterList: [...baseList, ...(appListResp.list?.[0].clusters || [])],\n searchByApp: true,\n appSelectValue: appListResp.list?.[0].instanceId || \"\",\n clusterValue: \"all\",\n page: 1,\n });\n } else {\n setState({ searchByApp: false, page: 1 });\n }\n }, [state.searchByApp]);\n // istanbul ignore next (state is not updated)\n const appSelectChange = (v: string) => {\n setState({\n appSearchInstanceId: v,\n currentChangeSelect: \"App\",\n appSelectValue: v,\n clusterValue: \"all\",\n clusterList: [\n ...baseList,\n ...state.appList.find((r) => r.instanceId === v).clusters,\n ],\n });\n };\n // istanbul ignore next (state is not updated)\n const clusterSelectChange = (v: string) => {\n setState({\n appSearchInstanceId: v === \"all\" ? state.appSelectValue : v,\n currentChangeSelect: \"Cluster\",\n clusterValue: v,\n });\n };\n const defaultFields = useMemo(() => {\n let defaultFields: string[];\n const fieldIds = props.presetConfigs?.fieldIds,\n extraFixedFieldIds = props.extraFixedFields ?? [];\n if (!isEmpty(fieldIds)) {\n defaultFields = props.presetConfigs.fieldIds;\n } else {\n defaultFields = computeDefaultFields().fieldIds;\n }\n if (!isEmpty(extraFixedFieldIds)) {\n defaultFields = uniq([...defaultFields, ...extraFixedFieldIds]);\n }\n return defaultFields;\n }, [props.presetConfigs, modelData]);\n\n // istanbul ignore next\n const handleConfirm = ({ fields, isReset }: DisplaySettingsModalData) => {\n if (isReset) {\n const fieldIds = defaultFields;\n modelData.isAbstract && fieldIds.push(\"_object_id\");\n setState({ fieldIds });\n jsonLocalStorage.removeItem(`${modelData.objectId}-selectAttrIds`);\n props.onFieldsModalConfirm(fieldIds);\n } else {\n setState({\n fieldIds: _sortFieldIds(fields),\n });\n jsonLocalStorage.setItem(`${modelData.objectId}-selectAttrIds`, fields);\n props.onFieldsModalConfirm(fields);\n }\n };\n\n useEffect(() => {\n props.notifyCurrentFields?.(state.fieldIds);\n }, [props.notifyCurrentFields]);\n\n // istanbul ignore next\n useEffect(() => {\n props.selectedRowKeys?.length &&\n (async () => {\n const data: InstanceApi_PostSearchRequestBody = {};\n const v3Data: InstanceApi_PostSearchV3RequestBody = {\n fields: [\"instanceId\"],\n };\n if (!isEmpty(props.permission)) {\n v3Data.permission = data.permission = props.permission;\n }\n\n if (state.fieldIds) {\n data.fields = Object.fromEntries(\n state.fieldIds.map((fieldId) => [fieldId, true])\n );\n v3Data.fields = [...state.fieldIds, ...v3Data.fields];\n (v3Data as any).ignore_missing_field_error = true;\n }\n\n v3Data.query = {\n instanceId: {\n $in: props.selectedRowKeys,\n },\n };\n v3Data.page_size = props.selectedRowKeys.length;\n\n if (state.relatedToMe) {\n v3Data.only_my_instance = data.only_my_instance = state.relatedToMe;\n }\n if (props.extraParams) {\n Object.assign(v3Data, props.extraParams);\n }\n let resp;\n if (props.useAutoDiscoveryProvider) {\n resp = await listProvider.query([props.objectId, v3Data]);\n } else {\n resp = await InstanceApi_postSearchV3(props.objectId, v3Data);\n }\n resp.list.forEach((i: Record<string, any>) =>\n cache.current.set(i.instanceId, i)\n );\n })();\n }, [props.selectedRowKeys]);\n const handleToggleFixHeader = () => {\n setFixHeader(!fixedHeader);\n };\n const onAdvancedSearchCloseGen = (attrId: string, valuesStr: string) => {\n return () => {\n const queries: Query[] = [];\n const queriesToShow: Query[] = [];\n const filterAq = (queries: any[]) =>\n queries.filter((v: any) => isValueEqualFn(v, attrId, valuesStr));\n state.aq.forEach((query) => {\n const key = Object.keys(query)[0];\n if (\n (key === \"$or\" || key === \"$and\") &&\n Object.keys((query[key] as Query[])[0])[0] === attrId\n ) {\n const filteredSubQueries = filterAq(query[key] as Query[]);\n if (filteredSubQueries.length > 0) {\n queries.push({\n [key]: filteredSubQueries,\n });\n }\n } else if (key !== attrId && !startsWith(attrId, `${key}.`)) {\n // $exists $gte $lte 针对为空,不为空,时间范围特殊处理\n if (!Array.isArray(query[key]) && isSpecialFn(query, key)) {\n queries.push(query);\n } else {\n const fieldId = Object.keys((query[key] as Query[])[0])[0];\n // 判断是否为结构体\n const isStruct = isOfStruct(modelData, fieldId);\n // 结构体情况处理\n if (\n !(\n (key === \"$or\" || key === \"$and\") &&\n startsWith(fieldId, `${attrId}.`) &&\n isStruct\n )\n ) {\n queries.push(query);\n }\n }\n } else if (\n props.isInstanceFilterForm &&\n key === attrId &&\n isValueEqualFn(query, attrId, valuesStr)\n ) {\n specialQueryHandler(query, key, queries);\n }\n });\n state.aqToShow.forEach((query) => {\n const key = Object.keys(query)[0];\n if (\n (key === \"$or\" || key === \"$and\") &&\n Object.keys((query[key] as Query[])[0])[0] === attrId\n ) {\n const filteredSubQueries = filterAq(query[key] as Query[]);\n if (filteredSubQueries.length > 0) {\n queriesToShow.push({\n [key]: filteredSubQueries,\n });\n }\n } else if (key !== attrId) {\n queriesToShow.push(query);\n } else if (\n props.isInstanceFilterForm &&\n key === attrId &&\n isValueEqualFn(query, attrId, valuesStr)\n ) {\n specialQueryHandler(query, key, queriesToShow);\n }\n });\n setState({\n aq: queries,\n aqToShow: queriesToShow,\n });\n props.onAdvancedSearch?.(queries);\n };\n };\n const conditions = translateConditions(\n state.aqToShow,\n idObjectMap,\n modelData\n );\n\n return (\n <Spin spinning={state.loading}>\n {state.inited && !state.failed ? (\n <React.Fragment>\n {(!props.searchDisabled ||\n !props.advancedSearchDisabled ||\n !props.relatedToMeDisabled ||\n !props.aliveHostsDisabled ||\n !props.moreButtonsDisabled) && (\n <div className={styles.instanceListToolbar}>\n <div className={styles.searchRelated}>\n {/* istanbul ignore next (state is not updated) */}\n {!state.searchByApp ? (\n <>\n {!props.searchDisabled && (\n <Input.Search\n 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.objectId === \"HOST\" && props.enableSearchByApp && (\n <Button type={\"link\"} onClick={toggleSearchMode}>\n {/* istanbul ignore next (state is not updated) */}\n {state.searchByApp\n ? i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FREE_SELECTION}`)\n : i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.APP_SELECTION}`)}\n </Button>\n )}\n {props.objectId === \"HOST\" && !props.aliveHostsDisabled && (\n <IconButton\n checked={state.aliveHosts}\n onChange={onAliveHostsChange}\n style={{ marginRight: 10 }}\n disabled={props.fixAliveHosts}\n type=\"normalHost\"\n label={i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.NORMAL_HOST}`)}\n data-testid=\"alive-hosts\"\n />\n )}\n {!props.relatedToMeDisabled && (\n <IconButton\n checked={state.relatedToMe}\n onChange={onRelatedToMeChange}\n style={{ marginRight: 10 }}\n type=\"relateToMe\"\n label={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.RELATED_TO_ME}`\n )}\n data-testid=\"related-to-me\"\n />\n )}\n {!props.showHiddenInfoDisabled && (\n <IconButton\n checked={state.autoBreakLine}\n onChange={toggleAutoBreakLine}\n style={{ marginRight: 10 }}\n type=\"showHiddenInfo\"\n label={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.DISPLAY_OMITTED_INFORMATION}`\n )}\n data-testid=\"show-hidden-info\"\n />\n )}\n {!props.moreButtonsDisabled && (\n <MoreButtonsContainer\n modelData={modelData}\n onConfirm={handleConfirm}\n fieldIds={state.fieldIds}\n defaultFields={defaultFields}\n extraDisabledField={props.extraDisabledField}\n handleToggleFixHeader={handleToggleFixHeader}\n fixedHeader={fixedHeader}\n showFixedHeader={props.showFixedHeader}\n />\n )}\n </div>\n </div>\n )}\n {!props.advancedSearchDisabled && !state.searchByApp && (\n <div\n style={{ marginBottom: \"18px\" }}\n hidden={!state.isAdvancedSearchVisible}\n >\n <AdvancedSearch\n key={newKey(state.fieldIds, state.aq)}\n fieldIds={state.fieldIds}\n idObjectMap={state.idObjectMap}\n modelData={modelData}\n q={state.aqToShow}\n fieldToShow={state.fieldToShow}\n onSearch={onAdvancedSearch}\n {...(props.autoSearch\n ? {\n autoSearch: props.autoSearch,\n }\n : null)}\n />\n </div>\n )}\n {!props.hideSearchConditions &&\n !state.searchByApp &&\n (state.instanceSourceQuery || state.q || !isEmpty(conditions)) && (\n <div className={styles.searchConditions}>\n <span>\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.CURRENT_FILTER_REQUIREMENTS}`\n )}\n </span>\n {state.q && (\n <Tag\n closable\n onClose={() => {\n setQ(\"\");\n onSearch(\"\");\n }}\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FUZZY_SEARCH}`, {\n query: state.q,\n })}\n </Tag>\n )}\n {state.instanceSourceQuery && (\n <Tag\n closable\n onClose={() => {\n onInstanceSourceChange(null);\n }}\n >\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.INSTANCE_SOURCE_TAG_TEXT}`,\n {\n query:\n inheritanceModelIdNameMap?.[\n state.instanceSourceQuery\n ] || state.instanceSourceQuery,\n }\n )}\n </Tag>\n )}\n {conditions.map((condition) => (\n <Tag\n key={`${condition.attrId}${\n condition.valuesStr\n }-${uniqueId()}`}\n closable\n onClose={onAdvancedSearchCloseGen(\n condition.attrId,\n condition.valuesStr\n )}\n >\n {condition.condition}\n </Tag>\n ))}\n </div>\n )}\n {props.extraFilterBricks?.useBrick && (\n <BrickAsComponent useBrick={props.extraFilterBricks.useBrick} />\n )}\n {!props.hideInstanceList && (\n <InstanceListTable\n detailUrlTemplates={props.detailUrlTemplates}\n fieldIds={state.fieldIds}\n idObjectMap={state.idObjectMap}\n modelData={modelData}\n instanceListData={state.instanceListData}\n sort={state.sort}\n asc={state.asc}\n selectedRowKeys={selectedRowKeys}\n selectDisabled={props.selectDisabled}\n sortDisabled={props.sortDisabled}\n propertyDisplayConfigs={props.propertyDisplayConfigs}\n onClickItem={props.onClickItem}\n onClickItemV2={props.onClickItemV2}\n onPaginationChange={onPaginationChange}\n onSortingChange={onSortingChange}\n onSelectionChange={onSelectionChange}\n onInstanceSourceChange={onInstanceSourceChange}\n instanceSourceQuery={state.instanceSourceQuery}\n inheritanceModelIdNameMap={inheritanceModelIdNameMap}\n filterInstanceSourceDisabled={props.filterInstanceSourceDisabled}\n autoBreakLine={state.autoBreakLine}\n relationLinkDisabled={props.relationLinkDisabled}\n pageSizeOptions={props.pageSizeOptions}\n showSizeChanger={props.showSizeChanger}\n extraColumns={props.extraColumns}\n target={props.target}\n ipCopy={props.ipCopy}\n fixedHeader={fixedHeader}\n separatorUsedInRelationData={props.separatorUsedInRelationData}\n showTooltip={showTooltip}\n rowSelectionType={props.rowSelectionType}\n />\n )}\n </React.Fragment>\n ) : (\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 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 const list = (\n await CmdbObjectApi_getObjectRef({ ref_object: props.objectId })\n ).data;\n setObjectList(list);\n objectListCache.set(props.objectId, list);\n } catch (e) {\n // istanbul ignore next\n handleHttpError(e);\n }\n }\n })();\n }\n }, [props.objectId, props.objectList]);\n\n if (\n !objectList ||\n !objectList.find((item) => item.objectId === props.objectId)\n )\n return null;\n\n return <LegacyInstanceList {...props} objectList={objectList} />;\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@next-libs/cmdb-instances",
|
|
3
|
-
"version": "7.3.
|
|
3
|
+
"version": "7.3.16",
|
|
4
4
|
"description": "> TODO: description",
|
|
5
5
|
"homepage": "https://github.com/easyops-cn/next-libs/tree/master/libs/cmdb-instances",
|
|
6
6
|
"license": "GPL-3.0",
|
|
@@ -50,5 +50,5 @@
|
|
|
50
50
|
"immutability-helper": "^3.1.1",
|
|
51
51
|
"marked": "^2.1.3"
|
|
52
52
|
},
|
|
53
|
-
"gitHead": "
|
|
53
|
+
"gitHead": "cd21cbf9585881aeae76aea87bed1f7fe3d1a5be"
|
|
54
54
|
}
|