@next-libs/cmdb-instances 6.12.3 → 6.12.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,17 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [6.12.4](https://github.com/easyops-cn/next-libs/compare/@next-libs/cmdb-instances@6.12.3...@next-libs/cmdb-instances@6.12.4) (2021-12-02)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **cmdb-instances:** 针对默认显示字段的隐藏逻辑去除 ([d803542](https://github.com/easyops-cn/next-libs/commit/d803542552e3dedc8d090943e21a45dd6f9bf6ab))
12
+
13
+
14
+
15
+
16
+
6
17
  ## [6.12.3](https://github.com/easyops-cn/next-libs/compare/@next-libs/cmdb-instances@6.12.2...@next-libs/cmdb-instances@6.12.3) (2021-11-25)
7
18
 
8
19
 
@@ -300,9 +300,8 @@ function InstanceList(props) {
300
300
  } = {
301
301
  inModal: false
302
302
  }) => {
303
- const settings = inModal ? _constants2.CMDB_MODAL_FIELDS_SETTINGS : _constants2.CMDB_RESOURCE_FIELDS_SETTINGS;
304
- const ignoredFields = settings.ignoredFields[modelData.objectId] || [];
305
- let fieldIds = settings.defaultFields[modelData.objectId] || (0, _lodash.difference)((0, _lodash.uniq)((0, _lodash.map)(modelData.attrList, "id")), ignoredFields).slice(0, inModal ? _constants2.MAX_DEFAULT_MODAL_FIELDS_COUNT : _constants2.MAX_DEFAULT_FIELDS_COUNT);
303
+ // 原来有隐藏逻辑,针对 APP、HOST、USER、USER_GROUP模型,默认字段特殊处理了,现产品要求干掉,统一取8个默认字段,也不区分是否是内置模型
304
+ let fieldIds = (0, _lodash.difference)((0, _lodash.uniq)((0, _lodash.map)(modelData.attrList, "id"))).slice(0, 8);
306
305
  const hideModelData = modelData.view.hide_columns || [];
307
306
  fieldIds = fieldIds.filter(field => !hideModelData.includes(field));
308
307
  return {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/instance-list/InstanceList.tsx"],"names":["getQuery","modelData","idObjectMap","q","fields","onlySearchByIp","query","$or","queryValues","trim","split","push","ip","$like","attr","forEach","queryValue","id","relation","sides","this","nameKeys","that","nameKey","translateConditions","aq","t","conditions","relations","relation_list","sidesArr","objectId","relationObject","nameOfNameKey","attrList","name","value","type","relationSideId","attrAndRelationList","queries","Object","keys","key","values","find","ElementOperators","Exists","info","undefined","ConditionType","Between","Empty","NotEmpty","False","True","includes","currentCondition","map","v","replace","condition","label","join","curCondition","attrId","valuesStr","queryValuesStr","every","newKey","fieldIds","length","isOfStruct","fieldId","structFields","filter","structs","struct_define","struct","flat","initAqToShow","newAqToShow","aqToShow","entries","expressions","newExpressions","LogicalOperators","Or","And","firstSubQuery","isStruct","structQueries","expression","structExpressions","item","InstanceList","props","baseList","instanceId","i18n","NS_LIBS_CMDB_INSTANCES","K","ALL_CLUSTER","jsonLocalStorage","JsonStorage","localStorage","reducer","prevState","updatedProperty","objectList","object","extraFieldAttrs","inheritanceModelIdNameMap","setInheritanceModelIdNameMap","fetchInheritanceModelIdNameMap","idNameMap","isAbstract","parentObjectId","computeDefaultFields","inModal","settings","CMDB_MODAL_FIELDS_SETTINGS","CMDB_RESOURCE_FIELDS_SETTINGS","ignoredFields","defaultFields","slice","MAX_DEFAULT_MODAL_FIELDS_COUNT","MAX_DEFAULT_FIELDS_COUNT","hideModelData","view","hide_columns","field","_sortFieldIds","frontFields","restFields","presetConfigs","foundIndex","attr_order","orderId","getFields","getItem","extraDisabledField","setQ","state","setState","instanceSourceQuery","asc","sort","page","dataSource","pageSize","aliveHosts","relatedToMe","inited","loading","failed","isAdvancedSearchVisible","autoBreakLine","appSearchInstanceId","currentChangeSelect","appSelectValue","clusterValue","appList","clusterList","searchByApp","selectedRowKeys","setSelectedRowKeys","cache","Map","isFirstRunRef","getInstanceListData","data","v3Data","permission","sortType","default_type","order","defaultQuery","$and","fromEntries","ignore_missing_field_error","_agentStatus","_object_id","only_my_instance","promise","onSearchExecute","refreshInstanceList","instanceListData","list","i","current","set","e","skip","onPaginationChange","onChange","target","onSelectionChange","selected","selectedItems","selectedKeys","ids","has","resp","$in","page_size","get","onSearch","onAdvancedSearch","queriesToShow","fieldToShow","onSortingChange","pagination","onInstanceSourceChange","onRelatedToMeChange","checked","onAliveHostsChange","toggleAutoBreakLine","toggleSearchMode","React","useCallback","appListResp","clusters","appSelectChange","r","clusterSelectChange","handleConfirm","isReset","removeItem","setItem","notifyCurrentFields","onAdvancedSearchCloseGen","filteredSubQueries","searchDisabled","advancedSearchDisabled","relatedToMeDisabled","aliveHostsDisabled","moreButtonsDisabled","styles","instanceListToolbar","searchRelated","marginLeft","marginRight","ADVANCED_SEARCH","width","options","CHOSEN_OPTIONS","count","CLEAR","enableSearchByApp","FREE_SELECTION","APP_SELECTION","fixAliveHosts","NORMAL_HOST","RELATED_TO_ME","DISPLAY_OMITTED_INFORMATION","marginBottom","hideSearchConditions","searchConditions","CURRENT_FILTER_REQUIREMENTS","FUZZY_SEARCH","INSTANCE_SOURCE_TAG_TEXT","extraFilterBricks","useBrick","detailUrlTemplates","selectDisabled","sortDisabled","propertyDisplayConfigs","onClickItem","filterInstanceSourceDisabled","relationLinkDisabled","pageSizeOptions","showSizeChanger","extraColumns","ipCopy","separatorUsedInRelationData"],"mappings":"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","sourcesContent":["import React, { useEffect, useReducer, useState, useRef, useMemo } 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} from \"lodash\";\nimport { BrickAsComponent, handleHttpError } 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} 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} from \"@next-libs/cmdb-utils\";\n\nimport {\n ConditionType,\n LogicalOperators,\n Query,\n AdvancedSearch,\n getFieldConditionsAndValues,\n MoreButtonsContainer,\n InstanceListTable,\n CustomColumn,\n ElementOperators,\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 MAX_DEFAULT_FIELDS_COUNT,\n MAX_DEFAULT_MODAL_FIELDS_COUNT,\n} from \"./constants\";\nimport { JsonStorage } from \"@next-libs/storage\";\nimport { ModelAttributeValueType } from \"../model-attribute-form-control/ModelAttributeFormControl\";\nimport { IconButton } from \"./IconButton\";\nimport { changeQueryWithCustomRules } from \"../processors\";\nimport { ModelObjectAttr } from \"@next-sdk/cmdb-sdk/dist/types/model/cmdb\";\nimport { RelationObjectSides, isSelfRelation } from \"@next-libs/cmdb-utils\";\nimport { DisplaySettingsModalData } from \"../instance-list-table/DisplaySettingsModal\";\nexport interface InstanceListPresetConfigs {\n query?: Record<string, any>;\n fieldIds?: string[];\n}\n\nexport function getQuery(\n modelData: Partial<CmdbModels.ModelCmdbObject>,\n idObjectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>,\n q: string,\n fields?: string[],\n onlySearchByIp?: boolean\n) {\n const query: Record<string, any> = { $or: [] };\n\n const queryValues = q.trim().split(/\\s+/);\n if (onlySearchByIp) {\n query.$or.push({ ip: { $like: `%${q.trim()}%` } });\n return query;\n }\n forEachAvailableFields(\n modelData,\n (attr) => {\n queryValues.forEach((queryValue) =>\n query.$or.push({ [attr.id]: { $like: `%${queryValue}%` } })\n );\n },\n (relation, sides) => {\n const id = relation[`${sides.this}_id` as RelationIdKeys];\n const nameKeys = getInstanceNameKeys(\n idObjectMap[relation[`${sides.that}_object_id` as RelationObjectIdKeys]]\n );\n\n queryValues.forEach((queryValue) => {\n nameKeys.forEach((nameKey) => {\n query.$or.push({\n [`${id}.${nameKey}`]: { $like: `%${queryValue}%` },\n });\n });\n });\n },\n fields\n );\n\n return query;\n}\n\nfunction translateConditions(\n aq: Query[],\n idObjectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>,\n modelData: Partial<CmdbModels.ModelCmdbObject>,\n t?: () => string\n): { attrId: string; condition: string; valuesStr: string }[] {\n const conditions: {\n attrId: string;\n condition: string;\n valuesStr: string;\n }[] = [];\n const relations: any[] = [];\n modelData.relation_list.forEach((relation) => {\n let sidesArr: RelationObjectSides[] = [];\n if (isSelfRelation(relation)) {\n sidesArr = [\n { this: \"left\", that: \"right\" },\n { this: \"right\", that: \"left\" },\n ];\n } else {\n sidesArr = [getRelationObjectSides(relation, modelData)];\n }\n sidesArr.forEach((sides) => {\n const objectId = relation[`${sides.this}_id` as RelationIdKeys];\n const relationObject =\n idObjectMap[\n relation[`${sides.that}_object_id` as RelationObjectIdKeys]\n ];\n const nameKeys = getInstanceNameKeys(relationObject);\n nameKeys.forEach((nameKey) => {\n const nameOfNameKey =\n find(relationObject?.attrList, [\"id\", nameKey])?.name ?? nameKey;\n const id = `${objectId}.${nameKey}`;\n const name = `${\n relation[`${sides.this}_name` as RelationNameKeys]\n }(${nameOfNameKey})`;\n relations.push({\n id,\n name,\n value: { type: \"str\" },\n relationSideId: relation[`${sides.this}_id` as RelationIdKeys],\n });\n });\n relations.push({\n id: `${objectId}.`,\n name: `${relation[`${sides.this}_name` as RelationNameKeys]}`,\n value: { type: \"str\" },\n relationSideId: relation[`${sides.this}_id` as RelationIdKeys],\n });\n });\n });\n const attrAndRelationList = [...modelData.attrList, ...relations];\n if (!isEmpty(aq)) {\n for (const query of aq) {\n let queries: Query[] = [query];\n if (Object.keys(query)[0] === \"$or\" || Object.keys(query)[0] === \"$and\") {\n queries = query[Object.keys(query)[0]] as Query[];\n }\n\n queries.forEach((query) => {\n const key = Object.keys(query)[0];\n const value = Object.values(query)[0];\n let attr = attrAndRelationList.find(\n (attr) => attr.id === key || attr.relationSideId === key\n );\n if (\n Object.keys(value)[0] === ElementOperators.Exists &&\n attr.relationSideId\n ) {\n const relationSideId = attr.relationSideId;\n attr =\n attrAndRelationList.find(\n (attr) => attr.id === `${relationSideId}.`\n ) || attr;\n }\n if (attr) {\n query = changeQueryWithCustomRules(\n modelData.objectId,\n attr.id,\n query\n );\n const info = getFieldConditionsAndValues(\n query as any,\n key,\n attr.value.type as ModelAttributeValueType,\n undefined,\n undefined,\n modelData.objectId,\n attr.id\n );\n if (\n ![\n ConditionType.Between,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ConditionType.False,\n ConditionType.True,\n ].includes(info.currentCondition.type)\n ) {\n info.values = info.values.map((v) =>\n isString(v) && v.includes(\" \") ? v.replace(/^\"+|\"+$/g, \"\") : v\n );\n }\n\n let condition = `${attr.name}: ${info.currentCondition.label}`;\n if (\n ![ConditionType.Empty, ConditionType.NotEmpty].includes(\n info.currentCondition.type\n )\n ) {\n condition += `\"${info.values.join(\" ~ \")}\"`;\n }\n const curCondition = {\n attrId: key,\n condition,\n valuesStr: info.queryValuesStr,\n };\n if (\n conditions.every(\n (v) => !isEqual(omit(v, \"attrId\"), omit(curCondition, \"attrId\"))\n )\n ) {\n conditions.push(curCondition);\n }\n }\n });\n }\n }\n\n return conditions;\n}\n\nfunction newKey(fieldIds: string[], aq: Query[]): string {\n let key = \"\";\n if (!isEmpty(fieldIds)) {\n key += fieldIds.join(\"-\");\n }\n if (!isEmpty(aq)) {\n key += `-${aq.length}`;\n }\n return key;\n}\nconst isOfStruct = (\n modelData: Partial<CmdbModels.ModelCmdbObject>,\n fieldId: string\n) => {\n const structFields = modelData.attrList\n .filter(\n (attr: Partial<ModelObjectAttr>) =>\n attr.value.type === \"struct\" || attr.value.type === \"structs\"\n )\n ?.map((attr) => {\n const structs: string[] = [];\n attr.value.struct_define.forEach((struct) => {\n structs.push(`${attr.id}.${struct.id}`);\n });\n return structs;\n })\n .flat();\n return structFields.includes(fieldId);\n};\nexport const initAqToShow = (\n aq: Query[],\n modelData: Partial<CmdbModels.ModelCmdbObject>\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 structQueries: Record<string, any> = (\n expressions as Query[]\n ).filter((expression) => Object.keys(expression)[0] === fieldId);\n if (isStruct) {\n const structExpressions = structQueries.map((item: any) => ({\n [fieldId.split(\".\")[0]]: item[fieldId],\n }));\n newExpressions = [...newExpressions, ...structExpressions];\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 moreButtonsDisabled?: boolean;\n aliveHosts?: boolean;\n fixAliveHosts?: boolean;\n aliveHostsDisabled?: boolean;\n propertyDisplayConfigs?: PropertyDisplayConfig[];\n selectedRowKeys?: string[];\n selectDisabled?: boolean;\n pageSizeOptions?: string[];\n showSizeChanger?: boolean;\n filterInstanceSourceDisabled?: boolean;\n instanceSourceQuery?: string;\n 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 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 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}\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}\n\nexport function InstanceList(props: InstanceListProps): React.ReactElement {\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\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 = union(object.attrList, extraFieldAttrs);\n }\n });\n\n return { modelData, idObjectMap };\n }, [props.objectList, props.objectId]);\n\n const [inheritanceModelIdNameMap, setInheritanceModelIdNameMap] = useState<\n Record<string, string>\n >({});\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 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[] =\n settings.defaultFields[modelData.objectId] ||\n difference(uniq(map(modelData.attrList, \"id\")), ignoredFields).slice(\n 0,\n inModal ? MAX_DEFAULT_MODAL_FIELDS_COUNT : MAX_DEFAULT_FIELDS_COUNT\n );\n const hideModelData: string[] = modelData.view.hide_columns || [];\n fieldIds = fieldIds.filter((field) => !hideModelData.includes(field));\n return { fieldIds };\n };\n\n // 根据用户预定义的 presetConfigs.fieldIds 进行排序,如果不在预定义的字段,则根据 modelData.view.attr_order 进行排序\n const _sortFieldIds = (fieldIds: any[]) => {\n let frontFields: any[] = [];\n let restFields: any[] = [];\n if (props.presetConfigs?.fieldIds) {\n frontFields = filter(props.presetConfigs.fieldIds, (id) =>\n fieldIds.includes(id)\n );\n }\n restFields = sortBy(\n reject(fieldIds, (id) => frontFields.includes(id)),\n (fieldId) => {\n const foundIndex = findIndex(\n modelData.view.attr_order,\n (orderId) => orderId === fieldId\n );\n if (foundIndex === -1) {\n return null;\n } else {\n return foundIndex;\n }\n }\n );\n return [...frontFields, ...restFields];\n };\n\n const getFields = () => {\n let fieldIds = props.presetConfigs?.fieldIds;\n if (isEmpty(fieldIds)) {\n fieldIds = jsonLocalStorage.getItem(\n `${modelData.objectId}-selectAttrIds`\n );\n }\n\n if (isEmpty(fieldIds)) {\n fieldIds = computeDefaultFields().fieldIds;\n }\n fieldIds = props.extraDisabledField\n ? uniq([...fieldIds, props.extraDisabledField])\n : fieldIds;\n fieldIds = _sortFieldIds(fieldIds);\n const hideModelData: string[] = modelData.view.hide_columns || [];\n fieldIds = fieldIds.filter((field) => !hideModelData.includes(field));\n modelData.isAbstract && fieldIds.push(\"_object_id\");\n return fieldIds;\n };\n\n const [q, setQ] = useState(props.q);\n const [state, setState] = useReducer(reducer, undefined, () => ({\n objectId: props.objectId,\n q: props.q,\n aq: props.aq,\n aqToShow: props.aqToShow || initAqToShow(props.aq, modelData),\n instanceSourceQuery: props.instanceSourceQuery,\n asc: props.asc,\n sort: props.sort,\n page: props.dataSource?.page ?? props.page ?? 1,\n pageSize: props.dataSource?.pageSize ?? props.pageSize ?? 10,\n aliveHosts: props.aliveHosts,\n relatedToMe: props.relatedToMe,\n inited: false,\n loading: false,\n failed: false,\n isAdvancedSearchVisible: false,\n fieldIds: getFields(),\n autoBreakLine: false,\n appSearchInstanceId: \"\",\n currentChangeSelect: \"App\",\n appSelectValue: \"\",\n clusterValue: \"all\",\n appList: [],\n clusterList: [\n {\n instanceId: \"all\",\n name: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.ALL_CLUSTER}`),\n },\n ],\n searchByApp: false,\n }));\n const [selectedRowKeys, setSelectedRowKeys] = useState(\n props.selectedRowKeys ?? []\n );\n const cache = useRef(new Map<string, InstanceApi_PostSearchV3ResponseBody>());\n const isFirstRunRef = useRef(true);\n\n const getInstanceListData = async (\n sort: string,\n asc: boolean,\n page: number\n ): Promise<InstanceApi_PostSearchV3ResponseBody> => {\n const data: InstanceApi_PostSearchRequestBody = {};\n const v3Data: InstanceApi_PostSearchV3RequestBody = {\n fields: [\"instanceId\"],\n };\n if (!isEmpty(props.permission)) {\n v3Data.permission = data.permission = props.permission;\n }\n\n let query: Record<string, any> = {};\n\n v3Data.page = data.page = page;\n v3Data[\"page_size\"] = data[\"page_size\"] = state.pageSize;\n const sortType = modelData?.attrList?.find((attr) => attr.id === sort)\n ?.value?.default_type;\n const order = [\"series-number\", \"auto-increment-id\"].includes(sortType)\n ? asc\n ? 2\n : -2\n : asc\n ? 1\n : -1;\n if (sort) {\n data.sort = { [sort]: order };\n v3Data.sort = [{ key: sort, order }];\n }\n\n if (state.q) {\n query = getQuery(\n modelData,\n idObjectMap,\n state.q,\n state.fieldIds,\n props.onlySearchByIp\n );\n }\n\n if (!isEmpty(state.aq)) {\n query[LogicalOperators.And] = state.aq;\n }\n\n if (!isEmpty(props.defaultQuery)) {\n query[LogicalOperators.And] = [\n ...(query[LogicalOperators.And] || []),\n ...props.defaultQuery,\n ];\n }\n if (props.presetConfigs) {\n if (!isEmpty(props.presetConfigs.query)) {\n if (query) {\n query = {\n $and: [query, props.presetConfigs.query],\n };\n } else {\n query = props.presetConfigs.query;\n }\n }\n }\n if (state.fieldIds) {\n data.fields = Object.fromEntries(\n state.fieldIds.map((fieldId) => [fieldId, true])\n );\n v3Data.fields = [...state.fieldIds, ...v3Data.fields];\n (v3Data as any).ignore_missing_field_error = true;\n }\n if (state.aliveHosts && props.objectId === \"HOST\") {\n query = { ...query, _agentStatus: \"正常\" };\n }\n if (state.instanceSourceQuery) {\n query = { ...query, _object_id: state.instanceSourceQuery };\n }\n\n if (!isEmpty(query)) {\n v3Data.query = data.query = query;\n }\n\n if (state.relatedToMe) {\n v3Data.only_my_instance = data.only_my_instance = state.relatedToMe;\n }\n //按应用筛选\n // istanbul ignore next (state is not updated)\n if (state.searchByApp) {\n v3Data.query = {\n [state.currentChangeSelect === \"App\" ||\n (state.currentChangeSelect === \"Cluster\" &&\n state.clusterValue === \"all\")\n ? \"_deviceList_CLUSTER.appId.instanceId\"\n : \"_deviceList_CLUSTER.instanceId\"]: state.appSearchInstanceId,\n ...(state.aliveHosts && props.objectId === \"HOST\"\n ? { _agentStatus: \"正常\" }\n : {}),\n };\n }\n const promise = props.onSearchExecute?.(data, v3Data);\n\n return promise ? promise : 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 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 }\n } catch (e) {\n handleHttpError(e);\n setState({ failed: true });\n } finally {\n setState({ inited: true, loading: false });\n }\n };\n\n useEffect(() => {\n const fieldIds = getFields();\n if (\n // 当 props.objectId 改变时,总是更新 state.fieldIds\n props.objectId !== state.objectId ||\n !isEqual(fieldIds, state.fieldIds)\n ) {\n setState({\n fieldIds,\n });\n }\n }, [props.objectId, props.presetConfigs]);\n\n useEffect(() => {\n setSelectedRowKeys(props.selectedRowKeys ?? []);\n }, [props.objectId, props.selectedRowKeys]);\n\n // on filter condition change\n useEffect(() => {\n if (isFirstRunRef.current) {\n isFirstRunRef.current = false;\n return;\n }\n\n let skip = false;\n\n if (state.page !== 1) {\n setState({ page: 1 });\n props.onPaginationChange?.({ page: 1, pageSize: state.pageSize });\n skip = true;\n }\n\n // 当 prop.objectId 改变时先跳过,等 state.fieldIds 更新后再获取数据\n if (props.objectId !== state.objectId) {\n setState({ objectId: props.objectId });\n skip = true;\n }\n\n if (skip) {\n return;\n }\n\n refreshInstanceList(state.sort, state.asc, 1);\n }, [\n state.q,\n state.aq,\n state.instanceSourceQuery,\n state.pageSize,\n state.aliveHosts,\n state.relatedToMe,\n props.objectId,\n props.permission,\n props.defaultQuery,\n ]);\n\n // on other condition change\n useEffect(() => {\n if (isEmpty(state.fieldIds)) return;\n\n refreshInstanceList(state.sort, state.asc, state.page);\n }, [\n state.page,\n state.sort,\n state.asc,\n state.fieldIds,\n state.appSearchInstanceId,\n state.currentChangeSelect,\n state.searchByApp,\n props.dataSource,\n ]);\n\n const onChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setQ(e.target.value);\n };\n\n // istanbul ignore next\n const onSelectionChange = async (selected: {\n selectedKeys: string[];\n selectedItems: any[];\n }) => {\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 const resp = await InstanceApi_postSearchV3(props.objectId, {\n fields: [\"instanceId\"],\n query: {\n instanceId: {\n $in: ids,\n },\n },\n page_size: ids.length,\n });\n resp.list.forEach((i) => cache.current.set(i.instanceId, i));\n }\n selectedItems = selectedKeys.map((id) => cache.current.get(id));\n }\n props.onSelectionChange?.({ selectedItems, selectedKeys });\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 = (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\n const onPaginationChange = (pagination: ReadPaginationChangeDetail) => {\n setState({ page: pagination.page, pageSize: pagination.pageSize });\n props.onPaginationChange?.(pagination);\n };\n\n const onInstanceSourceChange = (instanceSourceQuery: string) => {\n setState({ instanceSourceQuery });\n props.onInstanceSourceChange?.(instanceSourceQuery);\n };\n\n const onRelatedToMeChange = (checked: boolean) => {\n setState({ relatedToMe: checked });\n props.onRelatedToMeChange?.(checked);\n };\n\n const onAliveHostsChange = (checked: boolean) => {\n setState({ aliveHosts: checked });\n props.onAliveHostsChange?.(checked);\n };\n\n const toggleAutoBreakLine = (autoBreakLine: boolean) => {\n setState({ autoBreakLine });\n };\n // istanbul ignore next (state is not updated)\n const toggleSearchMode = React.useCallback(async () => {\n if (!state.searchByApp) {\n const appListResp = await InstanceApi_postSearchV3(\"APP\", {\n fields: [\"clusters\", \"instanceId\", \"name\"],\n sort: [{ key: \"name\", order: 1 }],\n page: 1,\n page_size: 3000,\n });\n setState({\n appSearchInstanceId: appListResp.list?.[0].instanceId || \"\",\n appList: appListResp.list,\n clusterList: [...baseList, ...(appListResp.list?.[0].clusters || [])],\n searchByApp: true,\n appSelectValue: appListResp.list?.[0].instanceId || \"\",\n clusterValue: \"all\",\n });\n } else {\n setState({ searchByApp: false });\n }\n }, [state.searchByApp]);\n // istanbul ignore next (state is not updated)\n const appSelectChange = (v: string) => {\n setState({\n appSearchInstanceId: v,\n currentChangeSelect: \"App\",\n appSelectValue: v,\n clusterValue: \"all\",\n clusterList: [\n ...baseList,\n ...state.appList.find((r) => r.instanceId === v).clusters,\n ],\n });\n };\n // istanbul ignore next (state is not updated)\n const clusterSelectChange = (v: string) => {\n setState({\n appSearchInstanceId: v === \"all\" ? state.appSelectValue : v,\n currentChangeSelect: \"Cluster\",\n clusterValue: v,\n });\n };\n const defaultFields = useMemo(() => {\n let defaultFields: string[];\n if (!isEmpty(props.presetConfigs?.fieldIds)) {\n defaultFields = props.presetConfigs.fieldIds;\n } else {\n defaultFields = computeDefaultFields().fieldIds;\n }\n return defaultFields;\n }, [props.presetConfigs, modelData]);\n\n // istanbul ignore next\n const handleConfirm = ({ fields, isReset }: DisplaySettingsModalData) => {\n if (isReset) {\n const fieldIds = defaultFields;\n modelData.isAbstract && fieldIds.push(\"_object_id\");\n setState({ fieldIds });\n jsonLocalStorage.removeItem(`${modelData.objectId}-selectAttrIds`);\n } else {\n setState({\n fieldIds: _sortFieldIds(fields),\n });\n jsonLocalStorage.setItem(`${modelData.objectId}-selectAttrIds`, fields);\n }\n };\n\n useEffect(() => {\n props.notifyCurrentFields?.(state.fieldIds);\n }, [props.notifyCurrentFields]);\n\n // istanbul ignore next\n useEffect(() => {\n props.selectedRowKeys &&\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\n const resp = await InstanceApi_postSearchV3(props.objectId, v3Data);\n resp.list.forEach((i) => cache.current.set(i.instanceId, i));\n })();\n }, [props.selectedRowKeys]);\n\n const onAdvancedSearchCloseGen = (attrId: string, valuesStr: string) => {\n return () => {\n const queries: Query[] = [];\n const queriesToShow: Query[] = [];\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 = (query[key] as Query[]).filter((query) => {\n return Object.values(query[attrId]).join(\" \") !== valuesStr;\n });\n if (filteredSubQueries.length > 0) {\n queries.push({\n [key]: filteredSubQueries,\n });\n }\n } else if (key !== attrId && !startsWith(attrId, `${key}.`)) {\n queries.push(query);\n }\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 = (query[key] as Query[]).filter((query) => {\n return Object.values(query[attrId]).join(\" \") !== valuesStr;\n });\n if (filteredSubQueries.length > 0) {\n queriesToShow.push({\n [key]: filteredSubQueries,\n });\n }\n } else if (key !== attrId) {\n queriesToShow.push(query);\n }\n });\n setState({\n aq: queries,\n aqToShow: queriesToShow,\n });\n props.onAdvancedSearch?.(queries);\n };\n };\n const conditions = translateConditions(\n state.aqToShow,\n idObjectMap,\n modelData\n );\n\n return (\n <Spin spinning={state.loading}>\n {state.inited && !state.failed ? (\n <React.Fragment>\n {(!props.searchDisabled ||\n !props.advancedSearchDisabled ||\n !props.relatedToMeDisabled ||\n !props.aliveHostsDisabled ||\n !props.moreButtonsDisabled) && (\n <div className={styles.instanceListToolbar}>\n <div className={styles.searchRelated}>\n {/* istanbul ignore next (state is not updated) */}\n {!state.searchByApp ? (\n <>\n {!props.searchDisabled && (\n <Input.Search\n enterButton\n value={q}\n onChange={onChange}\n onSearch={onSearch}\n />\n )}\n {!props.advancedSearchDisabled && (\n <Button\n type=\"link\"\n size=\"small\"\n style={{\n marginLeft: \"8px\",\n marginRight: \"auto\",\n }}\n onClick={() =>\n setState({\n isAdvancedSearchVisible:\n !state.isAdvancedSearchVisible,\n })\n }\n data-testid=\"advanced-search-toggle-btn\"\n >\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ADVANCED_SEARCH}`\n )}\n <LegacyIcon\n type={state.isAdvancedSearchVisible ? \"up\" : \"down\"}\n />\n </Button>\n )}\n </>\n ) : (\n <>\n <Select\n style={{ width: \"150px\", marginRight: \"10px\" }}\n value={state.appSelectValue}\n onChange={appSelectChange}\n showSearch={true}\n optionFilterProp=\"children\"\n >\n {state.appList.map((r) => (\n <Select.Option key={r.instanceId} value={r.instanceId}>\n {r.name}\n </Select.Option>\n ))}\n </Select>\n <Select\n style={{ width: \"150px\" }}\n value={state.clusterValue}\n onChange={clusterSelectChange}\n showSearch={true}\n optionFilterProp=\"children\"\n >\n {state.clusterList.map((r) => (\n <Select.Option key={r.instanceId} value={r.instanceId}>\n {r.name}\n </Select.Option>\n ))}\n </Select>\n </>\n )}\n </div>\n <div className={styles.options}>\n {selectedRowKeys.length > 0 && (\n <div style={{ marginRight: 20 }}>\n <span>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CHOSEN_OPTIONS}`, {\n count: selectedRowKeys.length,\n })}\n </span>\n <a\n role=\"button\"\n onClick={() =>\n onSelectionChange({\n selectedKeys: [],\n selectedItems: [],\n })\n }\n >\n {\" \"}\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLEAR}`)}\n </a>\n </div>\n )}\n {props.objectId === \"HOST\" && props.enableSearchByApp && (\n <Button type={\"link\"} onClick={toggleSearchMode}>\n {/* istanbul ignore next (state is not updated) */}\n {state.searchByApp\n ? i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FREE_SELECTION}`)\n : i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.APP_SELECTION}`)}\n </Button>\n )}\n {props.objectId === \"HOST\" && !props.aliveHostsDisabled && (\n <IconButton\n checked={state.aliveHosts}\n onChange={onAliveHostsChange}\n style={{ marginRight: 10 }}\n disabled={props.fixAliveHosts}\n type=\"normalHost\"\n label={i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.NORMAL_HOST}`)}\n data-testid=\"alive-hosts\"\n />\n )}\n {!props.relatedToMeDisabled && (\n <IconButton\n checked={state.relatedToMe}\n onChange={onRelatedToMeChange}\n style={{ marginRight: 10 }}\n type=\"relateToMe\"\n label={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.RELATED_TO_ME}`\n )}\n data-testid=\"related-to-me\"\n />\n )}\n <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 {!props.moreButtonsDisabled && (\n <MoreButtonsContainer\n modelData={modelData}\n onConfirm={handleConfirm}\n fieldIds={state.fieldIds}\n defaultFields={defaultFields}\n extraDisabledField={props.extraDisabledField}\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 />\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 <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 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 separatorUsedInRelationData={props.separatorUsedInRelationData}\n />\n </React.Fragment>\n ) : null}\n </Spin>\n );\n}\n"],"file":"InstanceList.js"}
1
+ {"version":3,"sources":["../../../src/instance-list/InstanceList.tsx"],"names":["getQuery","modelData","idObjectMap","q","fields","onlySearchByIp","query","$or","queryValues","trim","split","push","ip","$like","attr","forEach","queryValue","id","relation","sides","this","nameKeys","that","nameKey","translateConditions","aq","t","conditions","relations","relation_list","sidesArr","objectId","relationObject","nameOfNameKey","attrList","name","value","type","relationSideId","attrAndRelationList","queries","Object","keys","key","values","find","ElementOperators","Exists","info","undefined","ConditionType","Between","Empty","NotEmpty","False","True","includes","currentCondition","map","v","replace","condition","label","join","curCondition","attrId","valuesStr","queryValuesStr","every","newKey","fieldIds","length","isOfStruct","fieldId","structFields","filter","structs","struct_define","struct","flat","initAqToShow","newAqToShow","aqToShow","entries","expressions","newExpressions","LogicalOperators","Or","And","firstSubQuery","isStruct","structQueries","expression","structExpressions","item","InstanceList","props","baseList","instanceId","i18n","NS_LIBS_CMDB_INSTANCES","K","ALL_CLUSTER","jsonLocalStorage","JsonStorage","localStorage","reducer","prevState","updatedProperty","objectList","object","extraFieldAttrs","inheritanceModelIdNameMap","setInheritanceModelIdNameMap","fetchInheritanceModelIdNameMap","idNameMap","isAbstract","parentObjectId","computeDefaultFields","inModal","slice","hideModelData","view","hide_columns","field","_sortFieldIds","frontFields","restFields","presetConfigs","foundIndex","attr_order","orderId","getFields","getItem","extraDisabledField","setQ","state","setState","instanceSourceQuery","asc","sort","page","dataSource","pageSize","aliveHosts","relatedToMe","inited","loading","failed","isAdvancedSearchVisible","autoBreakLine","appSearchInstanceId","currentChangeSelect","appSelectValue","clusterValue","appList","clusterList","searchByApp","selectedRowKeys","setSelectedRowKeys","cache","Map","isFirstRunRef","getInstanceListData","data","v3Data","permission","sortType","default_type","order","defaultQuery","$and","fromEntries","ignore_missing_field_error","_agentStatus","_object_id","only_my_instance","promise","onSearchExecute","refreshInstanceList","instanceListData","list","i","current","set","e","skip","onPaginationChange","onChange","target","onSelectionChange","selected","selectedItems","selectedKeys","ids","has","resp","$in","page_size","get","onSearch","onAdvancedSearch","queriesToShow","fieldToShow","onSortingChange","pagination","onInstanceSourceChange","onRelatedToMeChange","checked","onAliveHostsChange","toggleAutoBreakLine","toggleSearchMode","React","useCallback","appListResp","clusters","appSelectChange","r","clusterSelectChange","defaultFields","handleConfirm","isReset","removeItem","setItem","notifyCurrentFields","onAdvancedSearchCloseGen","filteredSubQueries","searchDisabled","advancedSearchDisabled","relatedToMeDisabled","aliveHostsDisabled","moreButtonsDisabled","styles","instanceListToolbar","searchRelated","marginLeft","marginRight","ADVANCED_SEARCH","width","options","CHOSEN_OPTIONS","count","CLEAR","enableSearchByApp","FREE_SELECTION","APP_SELECTION","fixAliveHosts","NORMAL_HOST","RELATED_TO_ME","DISPLAY_OMITTED_INFORMATION","marginBottom","hideSearchConditions","searchConditions","CURRENT_FILTER_REQUIREMENTS","FUZZY_SEARCH","INSTANCE_SOURCE_TAG_TEXT","extraFilterBricks","useBrick","detailUrlTemplates","selectDisabled","sortDisabled","propertyDisplayConfigs","onClickItem","filterInstanceSourceDisabled","relationLinkDisabled","pageSizeOptions","showSizeChanger","extraColumns","ipCopy","separatorUsedInRelationData"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AAkBA;;AACA;;AACA;;AAQA;;AAQA;;AACA;;AACA;;AASA;;AAWA;;AACA;;AAOA;;AAEA;;AACA;;AASO,SAASA,QAAT,CACLC,SADK,EAELC,WAFK,EAGLC,CAHK,EAILC,MAJK,EAKLC,cALK,EAML;AACA,QAAMC,KAA0B,GAAG;AAAEC,IAAAA,GAAG,EAAE;AAAP,GAAnC;AAEA,QAAMC,WAAW,GAAGL,CAAC,CAACM,IAAF,GAASC,KAAT,CAAe,KAAf,CAApB;;AACA,MAAIL,cAAJ,EAAoB;AAClBC,IAAAA,KAAK,CAACC,GAAN,CAAUI,IAAV,CAAe;AAAEC,MAAAA,EAAE,EAAE;AAAEC,QAAAA,KAAK,EAAG,IAAGV,CAAC,CAACM,IAAF,EAAS;AAAtB;AAAN,KAAf;AACA,WAAOH,KAAP;AACD;;AACD,yCACEL,SADF,EAEGa,IAAD,IAAU;AACRN,IAAAA,WAAW,CAACO,OAAZ,CAAqBC,UAAD,IAClBV,KAAK,CAACC,GAAN,CAAUI,IAAV,CAAe;AAAE,OAACG,IAAI,CAACG,EAAN,GAAW;AAAEJ,QAAAA,KAAK,EAAG,IAAGG,UAAW;AAAxB;AAAb,KAAf,CADF;AAGD,GANH,EAOE,CAACE,QAAD,EAAWC,KAAX,KAAqB;AACnB,UAAMF,EAAE,GAAGC,QAAQ,CAAE,GAAEC,KAAK,CAACC,IAAK,KAAf,CAAnB;AACA,UAAMC,QAAQ,GAAG,oCACfnB,WAAW,CAACgB,QAAQ,CAAE,GAAEC,KAAK,CAACG,IAAK,YAAf,CAAT,CADI,CAAjB;AAIAd,IAAAA,WAAW,CAACO,OAAZ,CAAqBC,UAAD,IAAgB;AAClCK,MAAAA,QAAQ,CAACN,OAAT,CAAkBQ,OAAD,IAAa;AAC5BjB,QAAAA,KAAK,CAACC,GAAN,CAAUI,IAAV,CAAe;AACb,WAAE,GAAEM,EAAG,IAAGM,OAAQ,EAAlB,GAAsB;AAAEV,YAAAA,KAAK,EAAG,IAAGG,UAAW;AAAxB;AADT,SAAf;AAGD,OAJD;AAKD,KAND;AAOD,GApBH,EAqBEZ,MArBF;AAwBA,SAAOE,KAAP;AACD;;AAED,SAASkB,mBAAT,CACEC,EADF,EAEEvB,WAFF,EAGED,SAHF,EAIEyB,CAJF,EAK8D;AAC5D,QAAMC,UAIH,GAAG,EAJN;AAKA,QAAMC,SAAgB,GAAG,EAAzB;AACA3B,EAAAA,SAAS,CAAC4B,aAAV,CAAwBd,OAAxB,CAAiCG,QAAD,IAAc;AAC5C,QAAIY,QAA+B,GAAG,EAAtC;;AACA,QAAI,+BAAeZ,QAAf,CAAJ,EAA8B;AAC5BY,MAAAA,QAAQ,GAAG,CACT;AAAEV,QAAAA,IAAI,EAAE,MAAR;AAAgBE,QAAAA,IAAI,EAAE;AAAtB,OADS,EAET;AAAEF,QAAAA,IAAI,EAAE,OAAR;AAAiBE,QAAAA,IAAI,EAAE;AAAvB,OAFS,CAAX;AAID,KALD,MAKO;AACLQ,MAAAA,QAAQ,GAAG,CAAC,uCAAuBZ,QAAvB,EAAiCjB,SAAjC,CAAD,CAAX;AACD;;AACD6B,IAAAA,QAAQ,CAACf,OAAT,CAAkBI,KAAD,IAAW;AAC1B,YAAMY,QAAQ,GAAGb,QAAQ,CAAE,GAAEC,KAAK,CAACC,IAAK,KAAf,CAAzB;AACA,YAAMY,cAAc,GAClB9B,WAAW,CACTgB,QAAQ,CAAE,GAAEC,KAAK,CAACG,IAAK,YAAf,CADC,CADb;AAIA,YAAMD,QAAQ,GAAG,oCAAoBW,cAApB,CAAjB;AACAX,MAAAA,QAAQ,CAACN,OAAT,CAAkBQ,OAAD,IAAa;AAAA;;AAC5B,cAAMU,aAAa,0BACjB,kBAAKD,cAAL,aAAKA,cAAL,uBAAKA,cAAc,CAAEE,QAArB,EAA+B,CAAC,IAAD,EAAOX,OAAP,CAA/B,CADiB,0CACjB,MAAiDY,IADhC,mDACwCZ,OAD3D;AAEA,cAAMN,EAAE,GAAI,GAAEc,QAAS,IAAGR,OAAQ,EAAlC;AACA,cAAMY,IAAI,GAAI,GACZjB,QAAQ,CAAE,GAAEC,KAAK,CAACC,IAAK,OAAf,CACT,IAAGa,aAAc,GAFlB;AAGAL,QAAAA,SAAS,CAACjB,IAAV,CAAe;AACbM,UAAAA,EADa;AAEbkB,UAAAA,IAFa;AAGbC,UAAAA,KAAK,EAAE;AAAEC,YAAAA,IAAI,EAAE;AAAR,WAHM;AAIbC,UAAAA,cAAc,EAAEpB,QAAQ,CAAE,GAAEC,KAAK,CAACC,IAAK,KAAf;AAJX,SAAf;AAMD,OAbD;AAcAQ,MAAAA,SAAS,CAACjB,IAAV,CAAe;AACbM,QAAAA,EAAE,EAAG,GAAEc,QAAS,GADH;AAEbI,QAAAA,IAAI,EAAG,GAAEjB,QAAQ,CAAE,GAAEC,KAAK,CAACC,IAAK,OAAf,CAA2C,EAF/C;AAGbgB,QAAAA,KAAK,EAAE;AAAEC,UAAAA,IAAI,EAAE;AAAR,SAHM;AAIbC,QAAAA,cAAc,EAAEpB,QAAQ,CAAE,GAAEC,KAAK,CAACC,IAAK,KAAf;AAJX,OAAf;AAMD,KA3BD;AA4BD,GAtCD;AAuCA,QAAMmB,mBAAmB,GAAG,CAAC,GAAGtC,SAAS,CAACiC,QAAd,EAAwB,GAAGN,SAA3B,CAA5B;;AACA,MAAI,CAAC,qBAAQH,EAAR,CAAL,EAAkB;AAChB,SAAK,MAAMnB,KAAX,IAAoBmB,EAApB,EAAwB;AACtB,UAAIe,OAAgB,GAAG,CAAClC,KAAD,CAAvB;;AACA,UAAImC,MAAM,CAACC,IAAP,CAAYpC,KAAZ,EAAmB,CAAnB,MAA0B,KAA1B,IAAmCmC,MAAM,CAACC,IAAP,CAAYpC,KAAZ,EAAmB,CAAnB,MAA0B,MAAjE,EAAyE;AACvEkC,QAAAA,OAAO,GAAGlC,KAAK,CAACmC,MAAM,CAACC,IAAP,CAAYpC,KAAZ,EAAmB,CAAnB,CAAD,CAAf;AACD;;AAEDkC,MAAAA,OAAO,CAACzB,OAAR,CAAiBT,KAAD,IAAW;AACzB,cAAMqC,GAAG,GAAGF,MAAM,CAACC,IAAP,CAAYpC,KAAZ,EAAmB,CAAnB,CAAZ;AACA,cAAM8B,KAAK,GAAGK,MAAM,CAACG,MAAP,CAActC,KAAd,EAAqB,CAArB,CAAd;AACA,YAAIQ,IAAI,GAAGyB,mBAAmB,CAACM,IAApB,CACR/B,IAAD,IAAUA,IAAI,CAACG,EAAL,KAAY0B,GAAZ,IAAmB7B,IAAI,CAACwB,cAAL,KAAwBK,GAD5C,CAAX;;AAGA,YACEF,MAAM,CAACC,IAAP,CAAYN,KAAZ,EAAmB,CAAnB,MAA0BU,oCAAiBC,MAA3C,IACAjC,IAAI,CAACwB,cAFP,EAGE;AACA,gBAAMA,cAAc,GAAGxB,IAAI,CAACwB,cAA5B;AACAxB,UAAAA,IAAI,GACFyB,mBAAmB,CAACM,IAApB,CACG/B,IAAD,IAAUA,IAAI,CAACG,EAAL,KAAa,GAAEqB,cAAe,GAD1C,KAEKxB,IAHP;AAID;;AACD,YAAIA,IAAJ,EAAU;AACRR,UAAAA,KAAK,GAAG,4CACNL,SAAS,CAAC8B,QADJ,EAENjB,IAAI,CAACG,EAFC,EAGNX,KAHM,CAAR;AAKA,gBAAM0C,IAAI,GAAG,oDACX1C,KADW,EAEXqC,GAFW,EAGX7B,IAAI,CAACsB,KAAL,CAAWC,IAHA,EAIXY,SAJW,EAKXA,SALW,EAMXhD,SAAS,CAAC8B,QANC,EAOXjB,IAAI,CAACG,EAPM,CAAb;;AASA,cACE,CAAC,CACCiC,iCAAcC,OADf,EAECD,iCAAcE,KAFf,EAGCF,iCAAcG,QAHf,EAICH,iCAAcI,KAJf,EAKCJ,iCAAcK,IALf,EAMCC,QAND,CAMUR,IAAI,CAACS,gBAAL,CAAsBpB,IANhC,CADH,EAQE;AACAW,YAAAA,IAAI,CAACJ,MAAL,GAAcI,IAAI,CAACJ,MAAL,CAAYc,GAAZ,CAAiBC,CAAD,IAC5B,sBAASA,CAAT,KAAeA,CAAC,CAACH,QAAF,CAAW,GAAX,CAAf,GAAiCG,CAAC,CAACC,OAAF,CAAU,UAAV,EAAsB,EAAtB,CAAjC,GAA6DD,CADjD,CAAd;AAGD;;AAED,cAAIE,SAAS,GAAI,GAAE/C,IAAI,CAACqB,IAAK,KAAIa,IAAI,CAACS,gBAAL,CAAsBK,KAAM,EAA7D;;AACA,cACE,CAAC,CAACZ,iCAAcE,KAAf,EAAsBF,iCAAcG,QAApC,EAA8CG,QAA9C,CACCR,IAAI,CAACS,gBAAL,CAAsBpB,IADvB,CADH,EAIE;AACAwB,YAAAA,SAAS,IAAK,IAAGb,IAAI,CAACJ,MAAL,CAAYmB,IAAZ,CAAiB,KAAjB,CAAwB,GAAzC;AACD;;AACD,gBAAMC,YAAY,GAAG;AACnBC,YAAAA,MAAM,EAAEtB,GADW;AAEnBkB,YAAAA,SAFmB;AAGnBK,YAAAA,SAAS,EAAElB,IAAI,CAACmB;AAHG,WAArB;;AAKA,cACExC,UAAU,CAACyC,KAAX,CACGT,CAAD,IAAO,CAAC,qBAAQ,kBAAKA,CAAL,EAAQ,QAAR,CAAR,EAA2B,kBAAKK,YAAL,EAAmB,QAAnB,CAA3B,CADV,CADF,EAIE;AACArC,YAAAA,UAAU,CAAChB,IAAX,CAAgBqD,YAAhB;AACD;AACF;AACF,OAlED;AAmED;AACF;;AAED,SAAOrC,UAAP;AACD;;AAED,SAAS0C,MAAT,CAAgBC,QAAhB,EAAoC7C,EAApC,EAAyD;AACvD,MAAIkB,GAAG,GAAG,EAAV;;AACA,MAAI,CAAC,qBAAQ2B,QAAR,CAAL,EAAwB;AACtB3B,IAAAA,GAAG,IAAI2B,QAAQ,CAACP,IAAT,CAAc,GAAd,CAAP;AACD;;AACD,MAAI,CAAC,qBAAQtC,EAAR,CAAL,EAAkB;AAChBkB,IAAAA,GAAG,IAAK,IAAGlB,EAAE,CAAC8C,MAAO,EAArB;AACD;;AACD,SAAO5B,GAAP;AACD;;AACD,MAAM6B,UAAU,GAAG,CACjBvE,SADiB,EAEjBwE,OAFiB,KAGd;AAAA;;AACH,QAAMC,YAAY,4BAAGzE,SAAS,CAACiC,QAAV,CAClByC,MADkB,CAEhB7D,IAAD,IACEA,IAAI,CAACsB,KAAL,CAAWC,IAAX,KAAoB,QAApB,IAAgCvB,IAAI,CAACsB,KAAL,CAAWC,IAAX,KAAoB,SAHrC,CAAH,0DAAG,sBAKjBqB,GALiB,CAKZ5C,IAAD,IAAU;AACd,UAAM8D,OAAiB,GAAG,EAA1B;AACA9D,IAAAA,IAAI,CAACsB,KAAL,CAAWyC,aAAX,CAAyB9D,OAAzB,CAAkC+D,MAAD,IAAY;AAC3CF,MAAAA,OAAO,CAACjE,IAAR,CAAc,GAAEG,IAAI,CAACG,EAAG,IAAG6D,MAAM,CAAC7D,EAAG,EAArC;AACD,KAFD;AAGA,WAAO2D,OAAP;AACD,GAXkB,EAYlBG,IAZkB,EAArB;AAaA,SAAOL,YAAY,CAAClB,QAAb,CAAsBiB,OAAtB,CAAP;AACD,CAlBD;;AAmBO,MAAMO,YAAY,GAAG,CAC1BvD,EAD0B,EAE1BxB,SAF0B,KAGvB;AACH,MAAIgF,WAAkB,GAAG,EAAzB;;AACA,MAAIxD,EAAJ,EAAQ;AACNA,IAAAA,EAAE,CAACV,OAAH,CAAYT,KAAD,IAAW;AACpB,YAAM4E,QAAQ,GAAGzC,MAAM,CAAC0C,OAAP,CAAe7E,KAAf,EAAsBoD,GAAtB,CAA0B,CAAC,CAACf,GAAD,EAAMyC,WAAN,CAAD,KAAwB;AACjE,YAAIC,cAAqB,GAAG,EAA5B;;AACA,YAAI1C,GAAG,KAAK2C,oCAAiBC,EAAzB,IAA+B5C,GAAG,KAAK2C,oCAAiBE,GAA5D,EAAiE;AAC/D,gBAAMC,aAAa,GAAIL,WAAD,CAAyB,CAAzB,CAAtB;AACA,gBAAMX,OAAO,GAAGhC,MAAM,CAACC,IAAP,CAAY+C,aAAZ,EAA2B,CAA3B,CAAhB;AACA,gBAAMC,QAAQ,GAAGlB,UAAU,CAACvE,SAAD,EAAYwE,OAAZ,CAA3B;AACA,gBAAMkB,aAAkC,GACtCP,WADyC,CAEzCT,MAFyC,CAEjCiB,UAAD,IAAgBnD,MAAM,CAACC,IAAP,CAAYkD,UAAZ,EAAwB,CAAxB,MAA+BnB,OAFb,CAA3C;;AAGA,cAAIiB,QAAJ,EAAc;AACZ,kBAAMG,iBAAiB,GAAGF,aAAa,CAACjC,GAAd,CAAmBoC,IAAD,KAAgB;AAC1D,eAACrB,OAAO,CAAC/D,KAAR,CAAc,GAAd,EAAmB,CAAnB,CAAD,GAAyBoF,IAAI,CAACrB,OAAD;AAD6B,aAAhB,CAAlB,CAA1B;AAGAY,YAAAA,cAAc,GAAG,CAAC,GAAGA,cAAJ,EAAoB,GAAGQ,iBAAvB,CAAjB;AACD,WALD,MAKO;AACLR,YAAAA,cAAc,GAAG,CAAC,GAAGA,cAAJ,EAAoB,GAAID,WAAxB,CAAjB;AACD;;AACD,iBAAO;AAAE,aAACzC,GAAD,GAAO0C;AAAT,WAAP;AACD,SAhBD,MAgBO;AACL,iBAAO/E,KAAP;AACD;AACF,OArBgB,CAAjB;AAsBA2E,MAAAA,WAAW,GAAG,CAAC,GAAGA,WAAJ,EAAiB,GAAGC,QAApB,CAAd;AACD,KAxBD;AAyBA,WAAOD,WAAP;AACD;;AACD;AACD,CAlCM;;;;AAqIA,SAASc,YAAT,CAAsBC,KAAtB,EAAoE;AAAA;;AACzE,QAAMC,QAAQ,GAAG,CACf;AACEC,IAAAA,UAAU,EAAE,KADd;AAEE/D,IAAAA,IAAI,EAAEgE,iBAAKzE,CAAL,CAAQ,GAAE0E,iCAAuB,IAAGC,aAAEC,WAAY,EAAlD;AAFR,GADe,CAAjB;AAMA,QAAMC,gBAAgB,GAAG,IAAIC,oBAAJ,CAAgBC,YAAhB,CAAzB;;AACA,QAAMC,OAAO,GAAG,CACdC,SADc,EAEdC,eAFc,KAGQ;AACtB,WAAO,EACL,GAAGD,SADE;AAEL,SAAGC;AAFE,KAAP;AAID,GARD;;AAUA,QAAM;AAAE3G,IAAAA,SAAF;AAAaC,IAAAA;AAAb,MAA6B,oBAAQ,MAAM;AAC/C,QAAID,SAAJ;AACA,UAAMC,WAAgE,GAAG,EAAzE;AACA8F,IAAAA,KAAK,CAACa,UAAN,CAAiB9F,OAAjB,CAA0B+F,MAAD,IAAY;AACnC5G,MAAAA,WAAW,CAAC4G,MAAM,CAAC/E,QAAR,CAAX,GAA+B+E,MAA/B;;AACA,UAAIA,MAAM,CAAC/E,QAAP,KAAoBiE,KAAK,CAACjE,QAA9B,EAAwC;AACtC9B,QAAAA,SAAS,GAAG6G,MAAZ;AACA7G,QAAAA,SAAS,CAACiC,QAAV,GAAqB,mBAAM4E,MAAM,CAAC5E,QAAb,EAAuB6E,2BAAvB,CAArB;AACD;AACF,KAND;AAQA,WAAO;AAAE9G,MAAAA,SAAF;AAAaC,MAAAA;AAAb,KAAP;AACD,GAZkC,EAYhC,CAAC8F,KAAK,CAACa,UAAP,EAAmBb,KAAK,CAACjE,QAAzB,CAZgC,CAAnC;AAcA,QAAM,CAACiF,yBAAD,EAA4BC,4BAA5B,IAA4D,qBAEhE,EAFgE,CAAlE;;AAIA,QAAMC,8BAA8B,GAAG,MACrCjH,SADqC,IAEnB;AAClB,QAAIkH,SAAS,GAAG,EAAhB;;AACA,QAAIlH,SAAS,CAACmH,UAAd,EAA0B;AACxBD,MAAAA,SAAS,GAAG,MAAM,yCAA2B;AAC3CE,QAAAA,cAAc,EAAEpH,SAAS,CAAC8B;AADiB,OAA3B,CAAlB;AAGD;;AACDkF,IAAAA,4BAA4B,CAACE,SAAD,CAA5B;AACD,GAVD;;AAYA,wBAAU,MAAM;AACdD,IAAAA,8BAA8B,CAACjH,SAAD,CAA9B;AACD,GAFD,EAEG,CAACA,SAAD,CAFH;;AAIA,QAAMqH,oBAAoB,GAAG,CAC3B;AAAEC,IAAAA;AAAF,MAAc;AAAEA,IAAAA,OAAO,EAAE;AAAX,GADa,KAEA;AAC3B;AACA,QAAIjD,QAAkB,GAAG,wBACvB,kBAAK,iBAAIrE,SAAS,CAACiC,QAAd,EAAwB,IAAxB,CAAL,CADuB,EAEvBsF,KAFuB,CAEjB,CAFiB,EAEd,CAFc,CAAzB;AAGA,UAAMC,aAAuB,GAAGxH,SAAS,CAACyH,IAAV,CAAeC,YAAf,IAA+B,EAA/D;AACArD,IAAAA,QAAQ,GAAGA,QAAQ,CAACK,MAAT,CAAiBiD,KAAD,IAAW,CAACH,aAAa,CAACjE,QAAd,CAAuBoE,KAAvB,CAA5B,CAAX;AACA,WAAO;AAAEtD,MAAAA;AAAF,KAAP;AACD,GAVD,CApDyE,CAgEzE;;;AACA,QAAMuD,aAAa,GAAIvD,QAAD,IAAqB;AAAA;;AACzC,QAAIwD,WAAkB,GAAG,EAAzB;AACA,QAAIC,UAAiB,GAAG,EAAxB;;AACA,gCAAI/B,KAAK,CAACgC,aAAV,iDAAI,qBAAqB1D,QAAzB,EAAmC;AACjCwD,MAAAA,WAAW,GAAG,oBAAO9B,KAAK,CAACgC,aAAN,CAAoB1D,QAA3B,EAAsCrD,EAAD,IACjDqD,QAAQ,CAACd,QAAT,CAAkBvC,EAAlB,CADY,CAAd;AAGD;;AACD8G,IAAAA,UAAU,GAAG,oBACX,oBAAOzD,QAAP,EAAkBrD,EAAD,IAAQ6G,WAAW,CAACtE,QAAZ,CAAqBvC,EAArB,CAAzB,CADW,EAEVwD,OAAD,IAAa;AACX,YAAMwD,UAAU,GAAG,uBACjBhI,SAAS,CAACyH,IAAV,CAAeQ,UADE,EAEhBC,OAAD,IAAaA,OAAO,KAAK1D,OAFR,CAAnB;;AAIA,UAAIwD,UAAU,KAAK,CAAC,CAApB,EAAuB;AACrB,eAAO,IAAP;AACD,OAFD,MAEO;AACL,eAAOA,UAAP;AACD;AACF,KAZU,CAAb;AAcA,WAAO,CAAC,GAAGH,WAAJ,EAAiB,GAAGC,UAApB,CAAP;AACD,GAvBD;;AAyBA,QAAMK,SAAS,GAAG,MAAM;AAAA;;AACtB,QAAI9D,QAAQ,4BAAG0B,KAAK,CAACgC,aAAT,0DAAG,sBAAqB1D,QAApC;;AACA,QAAI,qBAAQA,QAAR,CAAJ,EAAuB;AACrBA,MAAAA,QAAQ,GAAGiC,gBAAgB,CAAC8B,OAAjB,CACR,GAAEpI,SAAS,CAAC8B,QAAS,gBADb,CAAX;AAGD;;AAED,QAAI,qBAAQuC,QAAR,CAAJ,EAAuB;AACrBA,MAAAA,QAAQ,GAAGgD,oBAAoB,GAAGhD,QAAlC;AACD;;AACDA,IAAAA,QAAQ,GAAG0B,KAAK,CAACsC,kBAAN,GACP,kBAAK,CAAC,GAAGhE,QAAJ,EAAc0B,KAAK,CAACsC,kBAApB,CAAL,CADO,GAEPhE,QAFJ;AAGAA,IAAAA,QAAQ,GAAGuD,aAAa,CAACvD,QAAD,CAAxB;AACA,UAAMmD,aAAuB,GAAGxH,SAAS,CAACyH,IAAV,CAAeC,YAAf,IAA+B,EAA/D;AACArD,IAAAA,QAAQ,GAAGA,QAAQ,CAACK,MAAT,CAAiBiD,KAAD,IAAW,CAACH,aAAa,CAACjE,QAAd,CAAuBoE,KAAvB,CAA5B,CAAX;AACA3H,IAAAA,SAAS,CAACmH,UAAV,IAAwB9C,QAAQ,CAAC3D,IAAT,CAAc,YAAd,CAAxB;AACA,WAAO2D,QAAP;AACD,GAnBD;;AAqBA,QAAM,CAACnE,CAAD,EAAIoI,IAAJ,IAAY,qBAASvC,KAAK,CAAC7F,CAAf,CAAlB;AACA,QAAM,CAACqI,KAAD,EAAQC,QAAR,IAAoB,uBAAW/B,OAAX,EAAoBzD,SAApB,EAA+B;AAAA;;AAAA,WAAO;AAC9DlB,MAAAA,QAAQ,EAAEiE,KAAK,CAACjE,QAD8C;AAE9D5B,MAAAA,CAAC,EAAE6F,KAAK,CAAC7F,CAFqD;AAG9DsB,MAAAA,EAAE,EAAEuE,KAAK,CAACvE,EAHoD;AAI9DyD,MAAAA,QAAQ,EAAEc,KAAK,CAACd,QAAN,IAAkBF,YAAY,CAACgB,KAAK,CAACvE,EAAP,EAAWxB,SAAX,CAJsB;AAK9DyI,MAAAA,mBAAmB,EAAE1C,KAAK,CAAC0C,mBALmC;AAM9DC,MAAAA,GAAG,EAAE3C,KAAK,CAAC2C,GANmD;AAO9DC,MAAAA,IAAI,EAAE5C,KAAK,CAAC4C,IAPkD;AAQ9DC,MAAAA,IAAI,wDAAE7C,KAAK,CAAC8C,UAAR,sDAAE,kBAAkBD,IAApB,yEAA4B7C,KAAK,CAAC6C,IAAlC,uCAA0C,CARgB;AAS9DE,MAAAA,QAAQ,2DAAE/C,KAAK,CAAC8C,UAAR,uDAAE,mBAAkBC,QAApB,2EAAgC/C,KAAK,CAAC+C,QAAtC,yCAAkD,EATI;AAU9DC,MAAAA,UAAU,EAAEhD,KAAK,CAACgD,UAV4C;AAW9DC,MAAAA,WAAW,EAAEjD,KAAK,CAACiD,WAX2C;AAY9DC,MAAAA,MAAM,EAAE,KAZsD;AAa9DC,MAAAA,OAAO,EAAE,KAbqD;AAc9DC,MAAAA,MAAM,EAAE,KAdsD;AAe9DC,MAAAA,uBAAuB,EAAE,KAfqC;AAgB9D/E,MAAAA,QAAQ,EAAE8D,SAAS,EAhB2C;AAiB9DkB,MAAAA,aAAa,EAAE,KAjB+C;AAkB9DC,MAAAA,mBAAmB,EAAE,EAlByC;AAmB9DC,MAAAA,mBAAmB,EAAE,KAnByC;AAoB9DC,MAAAA,cAAc,EAAE,EApB8C;AAqB9DC,MAAAA,YAAY,EAAE,KArBgD;AAsB9DC,MAAAA,OAAO,EAAE,EAtBqD;AAuB9DC,MAAAA,WAAW,EAAE,CACX;AACE1D,QAAAA,UAAU,EAAE,KADd;AAEE/D,QAAAA,IAAI,EAAEgE,iBAAKzE,CAAL,CAAQ,GAAE0E,iCAAuB,IAAGC,aAAEC,WAAY,EAAlD;AAFR,OADW,CAvBiD;AA6B9DuD,MAAAA,WAAW,EAAE;AA7BiD,KAAP;AAAA,GAA/B,CAA1B;AA+BA,QAAM,CAACC,eAAD,EAAkBC,kBAAlB,IAAwC,8CAC5C/D,KAAK,CAAC8D,eADsC,yEACnB,EADmB,CAA9C;AAGA,QAAME,KAAK,GAAG,mBAAO,IAAIC,GAAJ,EAAP,CAAd;AACA,QAAMC,aAAa,GAAG,mBAAO,IAAP,CAAtB;;AAEA,QAAMC,mBAAmB,GAAG,OAC1BvB,IAD0B,EAE1BD,GAF0B,EAG1BE,IAH0B,KAIwB;AAAA;;AAClD,UAAMuB,IAAuC,GAAG,EAAhD;AACA,UAAMC,MAA2C,GAAG;AAClDjK,MAAAA,MAAM,EAAE,CAAC,YAAD;AAD0C,KAApD;;AAGA,QAAI,CAAC,qBAAQ4F,KAAK,CAACsE,UAAd,CAAL,EAAgC;AAC9BD,MAAAA,MAAM,CAACC,UAAP,GAAoBF,IAAI,CAACE,UAAL,GAAkBtE,KAAK,CAACsE,UAA5C;AACD;;AAED,QAAIhK,KAA0B,GAAG,EAAjC;AAEA+J,IAAAA,MAAM,CAACxB,IAAP,GAAcuB,IAAI,CAACvB,IAAL,GAAYA,IAA1B;AACAwB,IAAAA,MAAM,CAAC,WAAD,CAAN,GAAsBD,IAAI,CAAC,WAAD,CAAJ,GAAoB5B,KAAK,CAACO,QAAhD;AACA,UAAMwB,QAAQ,GAAGtK,SAAH,aAAGA,SAAH,8CAAGA,SAAS,CAAEiC,QAAd,kFAAG,oBAAqBW,IAArB,CAA2B/B,IAAD,IAAUA,IAAI,CAACG,EAAL,KAAY2H,IAAhD,CAAH,qFAAG,uBACbxG,KADU,2DAAG,uBACNoI,YADX;AAEA,UAAMC,KAAK,GAAG,CAAC,eAAD,EAAkB,mBAAlB,EAAuCjH,QAAvC,CAAgD+G,QAAhD,IACV5B,GAAG,GACD,CADC,GAED,CAAC,CAHO,GAIVA,GAAG,GACH,CADG,GAEH,CAAC,CANL;;AAOA,QAAIC,IAAJ,EAAU;AACRwB,MAAAA,IAAI,CAACxB,IAAL,GAAY;AAAE,SAACA,IAAD,GAAQ6B;AAAV,OAAZ;AACAJ,MAAAA,MAAM,CAACzB,IAAP,GAAc,CAAC;AAAEjG,QAAAA,GAAG,EAAEiG,IAAP;AAAa6B,QAAAA;AAAb,OAAD,CAAd;AACD;;AAED,QAAIjC,KAAK,CAACrI,CAAV,EAAa;AACXG,MAAAA,KAAK,GAAGN,QAAQ,CACdC,SADc,EAEdC,WAFc,EAGdsI,KAAK,CAACrI,CAHQ,EAIdqI,KAAK,CAAClE,QAJQ,EAKd0B,KAAK,CAAC3F,cALQ,CAAhB;AAOD;;AAED,QAAI,CAAC,qBAAQmI,KAAK,CAAC/G,EAAd,CAAL,EAAwB;AACtBnB,MAAAA,KAAK,CAACgF,oCAAiBE,GAAlB,CAAL,GAA8BgD,KAAK,CAAC/G,EAApC;AACD;;AAED,QAAI,CAAC,qBAAQuE,KAAK,CAAC0E,YAAd,CAAL,EAAkC;AAChCpK,MAAAA,KAAK,CAACgF,oCAAiBE,GAAlB,CAAL,GAA8B,CAC5B,IAAIlF,KAAK,CAACgF,oCAAiBE,GAAlB,CAAL,IAA+B,EAAnC,CAD4B,EAE5B,GAAGQ,KAAK,CAAC0E,YAFmB,CAA9B;AAID;;AACD,QAAI1E,KAAK,CAACgC,aAAV,EAAyB;AACvB,UAAI,CAAC,qBAAQhC,KAAK,CAACgC,aAAN,CAAoB1H,KAA5B,CAAL,EAAyC;AACvC,YAAIA,KAAJ,EAAW;AACTA,UAAAA,KAAK,GAAG;AACNqK,YAAAA,IAAI,EAAE,CAACrK,KAAD,EAAQ0F,KAAK,CAACgC,aAAN,CAAoB1H,KAA5B;AADA,WAAR;AAGD,SAJD,MAIO;AACLA,UAAAA,KAAK,GAAG0F,KAAK,CAACgC,aAAN,CAAoB1H,KAA5B;AACD;AACF;AACF;;AACD,QAAIkI,KAAK,CAAClE,QAAV,EAAoB;AAClB8F,MAAAA,IAAI,CAAChK,MAAL,GAAcqC,MAAM,CAACmI,WAAP,CACZpC,KAAK,CAAClE,QAAN,CAAeZ,GAAf,CAAoBe,OAAD,IAAa,CAACA,OAAD,EAAU,IAAV,CAAhC,CADY,CAAd;AAGA4F,MAAAA,MAAM,CAACjK,MAAP,GAAgB,CAAC,GAAGoI,KAAK,CAAClE,QAAV,EAAoB,GAAG+F,MAAM,CAACjK,MAA9B,CAAhB;AACCiK,MAAAA,MAAD,CAAgBQ,0BAAhB,GAA6C,IAA7C;AACD;;AACD,QAAIrC,KAAK,CAACQ,UAAN,IAAoBhD,KAAK,CAACjE,QAAN,KAAmB,MAA3C,EAAmD;AACjDzB,MAAAA,KAAK,GAAG,EAAE,GAAGA,KAAL;AAAYwK,QAAAA,YAAY,EAAE;AAA1B,OAAR;AACD;;AACD,QAAItC,KAAK,CAACE,mBAAV,EAA+B;AAC7BpI,MAAAA,KAAK,GAAG,EAAE,GAAGA,KAAL;AAAYyK,QAAAA,UAAU,EAAEvC,KAAK,CAACE;AAA9B,OAAR;AACD;;AAED,QAAI,CAAC,qBAAQpI,KAAR,CAAL,EAAqB;AACnB+J,MAAAA,MAAM,CAAC/J,KAAP,GAAe8J,IAAI,CAAC9J,KAAL,GAAaA,KAA5B;AACD;;AAED,QAAIkI,KAAK,CAACS,WAAV,EAAuB;AACrBoB,MAAAA,MAAM,CAACW,gBAAP,GAA0BZ,IAAI,CAACY,gBAAL,GAAwBxC,KAAK,CAACS,WAAxD;AACD,KA9EiD,CA+ElD;AACA;;;AACA,QAAIT,KAAK,CAACqB,WAAV,EAAuB;AACrBQ,MAAAA,MAAM,CAAC/J,KAAP,GAAe;AACb,SAACkI,KAAK,CAACgB,mBAAN,KAA8B,KAA9B,IACAhB,KAAK,CAACgB,mBAAN,KAA8B,SAA9B,IACChB,KAAK,CAACkB,YAAN,KAAuB,KAFxB,GAGG,sCAHH,GAIG,gCAJJ,GAIuClB,KAAK,CAACe,mBALhC;AAMb,YAAIf,KAAK,CAACQ,UAAN,IAAoBhD,KAAK,CAACjE,QAAN,KAAmB,MAAvC,GACA;AAAE+I,UAAAA,YAAY,EAAE;AAAhB,SADA,GAEA,EAFJ;AANa,OAAf;AAUD;;AACD,UAAMG,OAAO,4BAAGjF,KAAK,CAACkF,eAAT,0DAAG,2BAAAlF,KAAK,EAAmBoE,IAAnB,EAAyBC,MAAzB,CAArB;AAEA,WAAOY,OAAO,GAAGA,OAAH,GAAa,uCAAyBjF,KAAK,CAACjE,QAA/B,EAAyCsI,MAAzC,CAA3B;AACD,GApGD;;AAsGA,QAAMc,mBAAmB,GAAG,OAC1BvC,IAD0B,EAE1BD,GAF0B,EAG1BE,IAH0B,KAIR;AAClBJ,IAAAA,QAAQ,CAAC;AAAEU,MAAAA,OAAO,EAAE;AAAX,KAAD,CAAR;;AACA,QAAI;AACF,UAAInD,KAAK,CAAC8C,UAAV,EAAsB;AACpBL,QAAAA,QAAQ,CAAC;AACPvI,UAAAA,WAAW,EAAEA,WADN;AAEPkL,UAAAA,gBAAgB,EAAEpF,KAAK,CAAC8C;AAFjB,SAAD,CAAR;AAID,OALD,MAKO;AACL,cAAMsC,gBAAgB,GAAG,MAAMjB,mBAAmB,CAACvB,IAAD,EAAOD,GAAP,EAAYE,IAAZ,CAAlD;AACAuC,QAAAA,gBAAgB,CAACC,IAAjB,CAAsBtK,OAAtB,CAA+BuK,CAAD,IAC5BtB,KAAK,CAACuB,OAAN,CAAcC,GAAd,CAAkBF,CAAC,CAACpF,UAApB,EAAgCoF,CAAhC,CADF;AAGA7C,QAAAA,QAAQ,CAAC;AAAEvI,UAAAA,WAAW,EAAEA,WAAf;AAA4BkL,UAAAA;AAA5B,SAAD,CAAR;AACD;AACF,KAbD,CAaE,OAAOK,CAAP,EAAU;AACV,qCAAgBA,CAAhB;AACAhD,MAAAA,QAAQ,CAAC;AAAEW,QAAAA,MAAM,EAAE;AAAV,OAAD,CAAR;AACD,KAhBD,SAgBU;AACRX,MAAAA,QAAQ,CAAC;AAAES,QAAAA,MAAM,EAAE,IAAV;AAAgBC,QAAAA,OAAO,EAAE;AAAzB,OAAD,CAAR;AACD;AACF,GAzBD;;AA2BA,wBAAU,MAAM;AACd,UAAM7E,QAAQ,GAAG8D,SAAS,EAA1B;;AACA,SACE;AACApC,IAAAA,KAAK,CAACjE,QAAN,KAAmByG,KAAK,CAACzG,QAAzB,IACA,CAAC,qBAAQuC,QAAR,EAAkBkE,KAAK,CAAClE,QAAxB,CAHH,EAIE;AACAmE,MAAAA,QAAQ,CAAC;AACPnE,QAAAA;AADO,OAAD,CAAR;AAGD;AACF,GAXD,EAWG,CAAC0B,KAAK,CAACjE,QAAP,EAAiBiE,KAAK,CAACgC,aAAvB,CAXH;AAaA,wBAAU,MAAM;AAAA;;AACd+B,IAAAA,kBAAkB,2BAAC/D,KAAK,CAAC8D,eAAP,2EAA0B,EAA1B,CAAlB;AACD,GAFD,EAEG,CAAC9D,KAAK,CAACjE,QAAP,EAAiBiE,KAAK,CAAC8D,eAAvB,CAFH,EAnSyE,CAuSzE;;AACA,wBAAU,MAAM;AACd,QAAII,aAAa,CAACqB,OAAlB,EAA2B;AACzBrB,MAAAA,aAAa,CAACqB,OAAd,GAAwB,KAAxB;AACA;AACD;;AAED,QAAIG,IAAI,GAAG,KAAX;;AAEA,QAAIlD,KAAK,CAACK,IAAN,KAAe,CAAnB,EAAsB;AAAA;;AACpBJ,MAAAA,QAAQ,CAAC;AAAEI,QAAAA,IAAI,EAAE;AAAR,OAAD,CAAR;AACA,+BAAA7C,KAAK,CAAC2F,kBAAN,qFAAA3F,KAAK,EAAsB;AAAE6C,QAAAA,IAAI,EAAE,CAAR;AAAWE,QAAAA,QAAQ,EAAEP,KAAK,CAACO;AAA3B,OAAtB,CAAL;AACA2C,MAAAA,IAAI,GAAG,IAAP;AACD,KAZa,CAcd;;;AACA,QAAI1F,KAAK,CAACjE,QAAN,KAAmByG,KAAK,CAACzG,QAA7B,EAAuC;AACrC0G,MAAAA,QAAQ,CAAC;AAAE1G,QAAAA,QAAQ,EAAEiE,KAAK,CAACjE;AAAlB,OAAD,CAAR;AACA2J,MAAAA,IAAI,GAAG,IAAP;AACD;;AAED,QAAIA,IAAJ,EAAU;AACR;AACD;;AAEDP,IAAAA,mBAAmB,CAAC3C,KAAK,CAACI,IAAP,EAAaJ,KAAK,CAACG,GAAnB,EAAwB,CAAxB,CAAnB;AACD,GAzBD,EAyBG,CACDH,KAAK,CAACrI,CADL,EAEDqI,KAAK,CAAC/G,EAFL,EAGD+G,KAAK,CAACE,mBAHL,EAIDF,KAAK,CAACO,QAJL,EAKDP,KAAK,CAACQ,UALL,EAMDR,KAAK,CAACS,WANL,EAODjD,KAAK,CAACjE,QAPL,EAQDiE,KAAK,CAACsE,UARL,EASDtE,KAAK,CAAC0E,YATL,CAzBH,EAxSyE,CA6UzE;;AACA,wBAAU,MAAM;AACd,QAAI,qBAAQlC,KAAK,CAAClE,QAAd,CAAJ,EAA6B;AAE7B6G,IAAAA,mBAAmB,CAAC3C,KAAK,CAACI,IAAP,EAAaJ,KAAK,CAACG,GAAnB,EAAwBH,KAAK,CAACK,IAA9B,CAAnB;AACD,GAJD,EAIG,CACDL,KAAK,CAACK,IADL,EAEDL,KAAK,CAACI,IAFL,EAGDJ,KAAK,CAACG,GAHL,EAIDH,KAAK,CAAClE,QAJL,EAKDkE,KAAK,CAACe,mBALL,EAMDf,KAAK,CAACgB,mBANL,EAODhB,KAAK,CAACqB,WAPL,EAQD7D,KAAK,CAAC8C,UARL,CAJH;;AAeA,QAAM8C,QAAQ,GAAIH,CAAD,IAA4C;AAC3DlD,IAAAA,IAAI,CAACkD,CAAC,CAACI,MAAF,CAASzJ,KAAV,CAAJ;AACD,GAFD,CA7VyE,CAiWzE;;;AACA,QAAM0J,iBAAiB,GAAG,MAAOC,QAAP,IAGpB;AAAA;;AACJ,QAAI;AAAEC,MAAAA,aAAF;AAAiBC,MAAAA;AAAjB,QAAkCF,QAAtC;AACAhC,IAAAA,kBAAkB,CAACkC,YAAD,CAAlB;;AACA,QAAIA,YAAY,CAAC1H,MAAb,GAAsB,qBAAQyH,aAAR,EAAuBzH,MAAjD,EAAyD;AACvD,YAAM2H,GAAG,GAAGD,YAAY,CAACtH,MAAb,CAAqB1D,EAAD,IAAQ,CAAC+I,KAAK,CAACuB,OAAN,CAAcY,GAAd,CAAkBlL,EAAlB,CAA7B,CAAZ;;AACA,UAAIiL,GAAG,CAAC3H,MAAR,EAAgB;AACd,cAAM6H,IAAI,GAAG,MAAM,uCAAyBpG,KAAK,CAACjE,QAA/B,EAAyC;AAC1D3B,UAAAA,MAAM,EAAE,CAAC,YAAD,CADkD;AAE1DE,UAAAA,KAAK,EAAE;AACL4F,YAAAA,UAAU,EAAE;AACVmG,cAAAA,GAAG,EAAEH;AADK;AADP,WAFmD;AAO1DI,UAAAA,SAAS,EAAEJ,GAAG,CAAC3H;AAP2C,SAAzC,CAAnB;AASA6H,QAAAA,IAAI,CAACf,IAAL,CAAUtK,OAAV,CAAmBuK,CAAD,IAAOtB,KAAK,CAACuB,OAAN,CAAcC,GAAd,CAAkBF,CAAC,CAACpF,UAApB,EAAgCoF,CAAhC,CAAzB;AACD;;AACDU,MAAAA,aAAa,GAAGC,YAAY,CAACvI,GAAb,CAAkBzC,EAAD,IAAQ+I,KAAK,CAACuB,OAAN,CAAcgB,GAAd,CAAkBtL,EAAlB,CAAzB,CAAhB;AACD;;AACD,6BAAA+E,KAAK,CAAC8F,iBAAN,qFAAA9F,KAAK,EAAqB;AAAEgG,MAAAA,aAAF;AAAiBC,MAAAA;AAAjB,KAArB,CAAL;AACD,GAvBD;;AAyBA,QAAMO,QAAQ,GAAIpK,KAAD,IAAmB;AAAA;;AAClC,UAAMjC,CAAC,GAAGiC,KAAK,CAAC3B,IAAN,EAAV;AACAgI,IAAAA,QAAQ,CAAC;AAAEtI,MAAAA;AAAF,KAAD,CAAR;AACA,uBAAA6F,KAAK,CAACwG,QAAN,yEAAAxG,KAAK,EAAY7F,CAAZ,CAAL;AACD,GAJD;;AAMA,QAAMsM,gBAAgB,GAAG,CACvBjK,OADuB,EAEvBkK,aAFuB,EAGvBC,WAHuB,KAIpB;AAAA;;AACHlE,IAAAA,QAAQ,CAAC;AACPhH,MAAAA,EAAE,EAAEe,OADG;AAEPmK,MAAAA,WAFO;AAGPzH,MAAAA,QAAQ,EAAEwH;AAHH,KAAD,CAAR;AAKA,6BAAA1G,KAAK,CAACyG,gBAAN,qFAAAzG,KAAK,EAAoBxD,OAApB,CAAL;AACD,GAXD;;AAaA,QAAMoK,eAAe,GAAI5J,IAAD,IAAmC;AAAA;;AACzD,QAAI2F,GAAJ;AACA,QAAIC,IAAJ;;AACA,QAAI5F,IAAI,CAAC2F,GAAL,KAAa1F,SAAjB,EAA4B;AAC1B,UAAI,CAACuF,KAAK,CAACI,IAAX,EAAiB;AACf;AACD;;AAEDH,MAAAA,QAAQ,CAAC;AAAEE,QAAAA,GAAG,EAAE1F,SAAP;AAAkB2F,QAAAA,IAAI,EAAE3F;AAAxB,OAAD,CAAR;AACD,KAND,MAMO;AACLwF,MAAAA,QAAQ,CAAC;AAAEE,QAAAA,GAAG,EAAE3F,IAAI,CAAC2F,GAAZ;AAAiBC,QAAAA,IAAI,EAAE5F,IAAI,CAAC4F;AAA5B,OAAD,CAAR;AACAD,MAAAA,GAAG,GAAG3F,IAAI,CAAC2F,GAAX;AACAC,MAAAA,IAAI,GAAG5F,IAAI,CAAC4F,IAAZ;AACD;;AACD,6BAAA5C,KAAK,CAAC4G,eAAN,qFAAA5G,KAAK,EAAmBhD,IAAnB,CAAL;AACD,GAfD;;AAiBA,QAAM2I,kBAAkB,GAAIkB,UAAD,IAA4C;AAAA;;AACrEpE,IAAAA,QAAQ,CAAC;AAAEI,MAAAA,IAAI,EAAEgE,UAAU,CAAChE,IAAnB;AAAyBE,MAAAA,QAAQ,EAAE8D,UAAU,CAAC9D;AAA9C,KAAD,CAAR;AACA,8BAAA/C,KAAK,CAAC2F,kBAAN,uFAAA3F,KAAK,EAAsB6G,UAAtB,CAAL;AACD,GAHD;;AAKA,QAAMC,sBAAsB,GAAIpE,mBAAD,IAAiC;AAAA;;AAC9DD,IAAAA,QAAQ,CAAC;AAAEC,MAAAA;AAAF,KAAD,CAAR;AACA,6BAAA1C,KAAK,CAAC8G,sBAAN,qFAAA9G,KAAK,EAA0B0C,mBAA1B,CAAL;AACD,GAHD;;AAKA,QAAMqE,mBAAmB,GAAIC,OAAD,IAAsB;AAAA;;AAChDvE,IAAAA,QAAQ,CAAC;AAAEQ,MAAAA,WAAW,EAAE+D;AAAf,KAAD,CAAR;AACA,6BAAAhH,KAAK,CAAC+G,mBAAN,qFAAA/G,KAAK,EAAuBgH,OAAvB,CAAL;AACD,GAHD;;AAKA,QAAMC,kBAAkB,GAAID,OAAD,IAAsB;AAAA;;AAC/CvE,IAAAA,QAAQ,CAAC;AAAEO,MAAAA,UAAU,EAAEgE;AAAd,KAAD,CAAR;AACA,6BAAAhH,KAAK,CAACiH,kBAAN,qFAAAjH,KAAK,EAAsBgH,OAAtB,CAAL;AACD,GAHD;;AAKA,QAAME,mBAAmB,GAAI5D,aAAD,IAA4B;AACtDb,IAAAA,QAAQ,CAAC;AAAEa,MAAAA;AAAF,KAAD,CAAR;AACD,GAFD,CAnbyE,CAsbzE;;;AACA,QAAM6D,gBAAgB,GAAGC,eAAMC,WAAN,CAAkB,YAAY;AACrD,QAAI,CAAC7E,KAAK,CAACqB,WAAX,EAAwB;AAAA;;AACtB,YAAMyD,WAAW,GAAG,MAAM,uCAAyB,KAAzB,EAAgC;AACxDlN,QAAAA,MAAM,EAAE,CAAC,UAAD,EAAa,YAAb,EAA2B,MAA3B,CADgD;AAExDwI,QAAAA,IAAI,EAAE,CAAC;AAAEjG,UAAAA,GAAG,EAAE,MAAP;AAAe8H,UAAAA,KAAK,EAAE;AAAtB,SAAD,CAFkD;AAGxD5B,QAAAA,IAAI,EAAE,CAHkD;AAIxDyD,QAAAA,SAAS,EAAE;AAJ6C,OAAhC,CAA1B;AAMA7D,MAAAA,QAAQ,CAAC;AACPc,QAAAA,mBAAmB,EAAE,sBAAA+D,WAAW,CAACjC,IAAZ,wEAAmB,CAAnB,EAAsBnF,UAAtB,KAAoC,EADlD;AAEPyD,QAAAA,OAAO,EAAE2D,WAAW,CAACjC,IAFd;AAGPzB,QAAAA,WAAW,EAAE,CAAC,GAAG3D,QAAJ,EAAc,IAAI,uBAAAqH,WAAW,CAACjC,IAAZ,0EAAmB,CAAnB,EAAsBkC,QAAtB,KAAkC,EAAtC,CAAd,CAHN;AAIP1D,QAAAA,WAAW,EAAE,IAJN;AAKPJ,QAAAA,cAAc,EAAE,uBAAA6D,WAAW,CAACjC,IAAZ,0EAAmB,CAAnB,EAAsBnF,UAAtB,KAAoC,EAL7C;AAMPwD,QAAAA,YAAY,EAAE;AANP,OAAD,CAAR;AAQD,KAfD,MAeO;AACLjB,MAAAA,QAAQ,CAAC;AAAEoB,QAAAA,WAAW,EAAE;AAAf,OAAD,CAAR;AACD;AACF,GAnBwB,EAmBtB,CAACrB,KAAK,CAACqB,WAAP,CAnBsB,CAAzB,CAvbyE,CA2czE;;;AACA,QAAM2D,eAAe,GAAI7J,CAAD,IAAe;AACrC8E,IAAAA,QAAQ,CAAC;AACPc,MAAAA,mBAAmB,EAAE5F,CADd;AAEP6F,MAAAA,mBAAmB,EAAE,KAFd;AAGPC,MAAAA,cAAc,EAAE9F,CAHT;AAIP+F,MAAAA,YAAY,EAAE,KAJP;AAKPE,MAAAA,WAAW,EAAE,CACX,GAAG3D,QADQ,EAEX,GAAGuC,KAAK,CAACmB,OAAN,CAAc9G,IAAd,CAAoB4K,CAAD,IAAOA,CAAC,CAACvH,UAAF,KAAiBvC,CAA3C,EAA8C4J,QAFtC;AALN,KAAD,CAAR;AAUD,GAXD,CA5cyE,CAwdzE;;;AACA,QAAMG,mBAAmB,GAAI/J,CAAD,IAAe;AACzC8E,IAAAA,QAAQ,CAAC;AACPc,MAAAA,mBAAmB,EAAE5F,CAAC,KAAK,KAAN,GAAc6E,KAAK,CAACiB,cAApB,GAAqC9F,CADnD;AAEP6F,MAAAA,mBAAmB,EAAE,SAFd;AAGPE,MAAAA,YAAY,EAAE/F;AAHP,KAAD,CAAR;AAKD,GAND;;AAOA,QAAMgK,aAAa,GAAG,oBAAQ,MAAM;AAAA;;AAClC,QAAIA,aAAJ;;AACA,QAAI,CAAC,8CAAQ3H,KAAK,CAACgC,aAAd,0DAAQ,sBAAqB1D,QAA7B,CAAL,EAA6C;AAC3CqJ,MAAAA,aAAa,GAAG3H,KAAK,CAACgC,aAAN,CAAoB1D,QAApC;AACD,KAFD,MAEO;AACLqJ,MAAAA,aAAa,GAAGrG,oBAAoB,GAAGhD,QAAvC;AACD;;AACD,WAAOqJ,aAAP;AACD,GARqB,EAQnB,CAAC3H,KAAK,CAACgC,aAAP,EAAsB/H,SAAtB,CARmB,CAAtB,CAheyE,CA0ezE;;AACA,QAAM2N,aAAa,GAAG,CAAC;AAAExN,IAAAA,MAAF;AAAUyN,IAAAA;AAAV,GAAD,KAAmD;AACvE,QAAIA,OAAJ,EAAa;AACX,YAAMvJ,QAAQ,GAAGqJ,aAAjB;AACA1N,MAAAA,SAAS,CAACmH,UAAV,IAAwB9C,QAAQ,CAAC3D,IAAT,CAAc,YAAd,CAAxB;AACA8H,MAAAA,QAAQ,CAAC;AAAEnE,QAAAA;AAAF,OAAD,CAAR;AACAiC,MAAAA,gBAAgB,CAACuH,UAAjB,CAA6B,GAAE7N,SAAS,CAAC8B,QAAS,gBAAlD;AACD,KALD,MAKO;AACL0G,MAAAA,QAAQ,CAAC;AACPnE,QAAAA,QAAQ,EAAEuD,aAAa,CAACzH,MAAD;AADhB,OAAD,CAAR;AAGAmG,MAAAA,gBAAgB,CAACwH,OAAjB,CAA0B,GAAE9N,SAAS,CAAC8B,QAAS,gBAA/C,EAAgE3B,MAAhE;AACD;AACF,GAZD;;AAcA,wBAAU,MAAM;AAAA;;AACd,6BAAA4F,KAAK,CAACgI,mBAAN,qFAAAhI,KAAK,EAAuBwC,KAAK,CAAClE,QAA7B,CAAL;AACD,GAFD,EAEG,CAAC0B,KAAK,CAACgI,mBAAP,CAFH,EAzfyE,CA6fzE;;AACA,wBAAU,MAAM;AACdhI,IAAAA,KAAK,CAAC8D,eAAN,IACE,CAAC,YAAY;AACX,YAAMM,IAAuC,GAAG,EAAhD;AACA,YAAMC,MAA2C,GAAG;AAClDjK,QAAAA,MAAM,EAAE,CAAC,YAAD;AAD0C,OAApD;;AAGA,UAAI,CAAC,qBAAQ4F,KAAK,CAACsE,UAAd,CAAL,EAAgC;AAC9BD,QAAAA,MAAM,CAACC,UAAP,GAAoBF,IAAI,CAACE,UAAL,GAAkBtE,KAAK,CAACsE,UAA5C;AACD;;AAED,UAAI9B,KAAK,CAAClE,QAAV,EAAoB;AAClB8F,QAAAA,IAAI,CAAChK,MAAL,GAAcqC,MAAM,CAACmI,WAAP,CACZpC,KAAK,CAAClE,QAAN,CAAeZ,GAAf,CAAoBe,OAAD,IAAa,CAACA,OAAD,EAAU,IAAV,CAAhC,CADY,CAAd;AAGA4F,QAAAA,MAAM,CAACjK,MAAP,GAAgB,CAAC,GAAGoI,KAAK,CAAClE,QAAV,EAAoB,GAAG+F,MAAM,CAACjK,MAA9B,CAAhB;AACCiK,QAAAA,MAAD,CAAgBQ,0BAAhB,GAA6C,IAA7C;AACD;;AAEDR,MAAAA,MAAM,CAAC/J,KAAP,GAAe;AACb4F,QAAAA,UAAU,EAAE;AACVmG,UAAAA,GAAG,EAAErG,KAAK,CAAC8D;AADD;AADC,OAAf;AAKAO,MAAAA,MAAM,CAACiC,SAAP,GAAmBtG,KAAK,CAAC8D,eAAN,CAAsBvF,MAAzC;;AAEA,UAAIiE,KAAK,CAACS,WAAV,EAAuB;AACrBoB,QAAAA,MAAM,CAACW,gBAAP,GAA0BZ,IAAI,CAACY,gBAAL,GAAwBxC,KAAK,CAACS,WAAxD;AACD;;AAED,YAAMmD,IAAI,GAAG,MAAM,uCAAyBpG,KAAK,CAACjE,QAA/B,EAAyCsI,MAAzC,CAAnB;AACA+B,MAAAA,IAAI,CAACf,IAAL,CAAUtK,OAAV,CAAmBuK,CAAD,IAAOtB,KAAK,CAACuB,OAAN,CAAcC,GAAd,CAAkBF,CAAC,CAACpF,UAApB,EAAgCoF,CAAhC,CAAzB;AACD,KA9BD,GADF;AAgCD,GAjCD,EAiCG,CAACtF,KAAK,CAAC8D,eAAP,CAjCH;;AAmCA,QAAMmE,wBAAwB,GAAG,CAAChK,MAAD,EAAiBC,SAAjB,KAAuC;AACtE,WAAO,MAAM;AAAA;;AACX,YAAM1B,OAAgB,GAAG,EAAzB;AACA,YAAMkK,aAAsB,GAAG,EAA/B;AACAlE,MAAAA,KAAK,CAAC/G,EAAN,CAASV,OAAT,CAAkBT,KAAD,IAAW;AAC1B,cAAMqC,GAAG,GAAGF,MAAM,CAACC,IAAP,CAAYpC,KAAZ,EAAmB,CAAnB,CAAZ;;AACA,YACE,CAACqC,GAAG,KAAK,KAAR,IAAiBA,GAAG,KAAK,MAA1B,KACAF,MAAM,CAACC,IAAP,CAAapC,KAAK,CAACqC,GAAD,CAAN,CAAwB,CAAxB,CAAZ,EAAwC,CAAxC,MAA+CsB,MAFjD,EAGE;AACA,gBAAMiK,kBAAkB,GAAI5N,KAAK,CAACqC,GAAD,CAAN,CAAwBgC,MAAxB,CAAgCrE,KAAD,IAAW;AACnE,mBAAOmC,MAAM,CAACG,MAAP,CAActC,KAAK,CAAC2D,MAAD,CAAnB,EAA6BF,IAA7B,CAAkC,GAAlC,MAA2CG,SAAlD;AACD,WAF0B,CAA3B;;AAGA,cAAIgK,kBAAkB,CAAC3J,MAAnB,GAA4B,CAAhC,EAAmC;AACjC/B,YAAAA,OAAO,CAAC7B,IAAR,CAAa;AACX,eAACgC,GAAD,GAAOuL;AADI,aAAb;AAGD;AACF,SAZD,MAYO,IAAIvL,GAAG,KAAKsB,MAAR,IAAkB,CAAC,wBAAWA,MAAX,EAAoB,GAAEtB,GAAI,GAA1B,CAAvB,EAAsD;AAC3DH,UAAAA,OAAO,CAAC7B,IAAR,CAAaL,KAAb;AACD;AACF,OAjBD;AAkBAkI,MAAAA,KAAK,CAACtD,QAAN,CAAenE,OAAf,CAAwBT,KAAD,IAAW;AAChC,cAAMqC,GAAG,GAAGF,MAAM,CAACC,IAAP,CAAYpC,KAAZ,EAAmB,CAAnB,CAAZ;;AACA,YACE,CAACqC,GAAG,KAAK,KAAR,IAAiBA,GAAG,KAAK,MAA1B,KACAF,MAAM,CAACC,IAAP,CAAapC,KAAK,CAACqC,GAAD,CAAN,CAAwB,CAAxB,CAAZ,EAAwC,CAAxC,MAA+CsB,MAFjD,EAGE;AACA,gBAAMiK,kBAAkB,GAAI5N,KAAK,CAACqC,GAAD,CAAN,CAAwBgC,MAAxB,CAAgCrE,KAAD,IAAW;AACnE,mBAAOmC,MAAM,CAACG,MAAP,CAActC,KAAK,CAAC2D,MAAD,CAAnB,EAA6BF,IAA7B,CAAkC,GAAlC,MAA2CG,SAAlD;AACD,WAF0B,CAA3B;;AAGA,cAAIgK,kBAAkB,CAAC3J,MAAnB,GAA4B,CAAhC,EAAmC;AACjCmI,YAAAA,aAAa,CAAC/L,IAAd,CAAmB;AACjB,eAACgC,GAAD,GAAOuL;AADU,aAAnB;AAGD;AACF,SAZD,MAYO,IAAIvL,GAAG,KAAKsB,MAAZ,EAAoB;AACzByI,UAAAA,aAAa,CAAC/L,IAAd,CAAmBL,KAAnB;AACD;AACF,OAjBD;AAkBAmI,MAAAA,QAAQ,CAAC;AACPhH,QAAAA,EAAE,EAAEe,OADG;AAEP0C,QAAAA,QAAQ,EAAEwH;AAFH,OAAD,CAAR;AAIA,gCAAA1G,KAAK,CAACyG,gBAAN,uFAAAzG,KAAK,EAAoBxD,OAApB,CAAL;AACD,KA5CD;AA6CD,GA9CD;;AA+CA,QAAMb,UAAU,GAAGH,mBAAmB,CACpCgH,KAAK,CAACtD,QAD8B,EAEpChF,WAFoC,EAGpCD,SAHoC,CAAtC;AAMA,sBACE,6BAAC,UAAD;AAAM,IAAA,QAAQ,EAAEuI,KAAK,CAACW;AAAtB,KACGX,KAAK,CAACU,MAAN,IAAgB,CAACV,KAAK,CAACY,MAAvB,gBACC,6BAAC,cAAD,CAAO,QAAP,QACG,CAAC,CAACpD,KAAK,CAACmI,cAAP,IACA,CAACnI,KAAK,CAACoI,sBADP,IAEA,CAACpI,KAAK,CAACqI,mBAFP,IAGA,CAACrI,KAAK,CAACsI,kBAHP,IAIA,CAACtI,KAAK,CAACuI,mBAJR,kBAKC;AAAK,IAAA,SAAS,EAAEC,4BAAOC;AAAvB,kBACE;AAAK,IAAA,SAAS,EAAED,4BAAOE;AAAvB,KAEG,CAAClG,KAAK,CAACqB,WAAP,gBACC,4DACG,CAAC7D,KAAK,CAACmI,cAAP,iBACC,6BAAC,WAAD,CAAO,MAAP;AACE,IAAA,WAAW,MADb;AAEE,IAAA,KAAK,EAAEhO,CAFT;AAGE,IAAA,QAAQ,EAAEyL,QAHZ;AAIE,IAAA,QAAQ,EAAEY;AAJZ,IAFJ,EASG,CAACxG,KAAK,CAACoI,sBAAP,iBACC,6BAAC,YAAD;AACE,IAAA,IAAI,EAAC,MADP;AAEE,IAAA,IAAI,EAAC,OAFP;AAGE,IAAA,KAAK,EAAE;AACLO,MAAAA,UAAU,EAAE,KADP;AAELC,MAAAA,WAAW,EAAE;AAFR,KAHT;AAOE,IAAA,OAAO,EAAE,MACPnG,QAAQ,CAAC;AACPY,MAAAA,uBAAuB,EACrB,CAACb,KAAK,CAACa;AAFF,KAAD,CARZ;AAaE,mBAAY;AAbd,KAeGlD,iBAAKzE,CAAL,CACE,GAAE0E,iCAAuB,IAAGC,aAAEwI,eAAgB,EADhD,CAfH,eAkBE,6BAAC,gBAAD;AACE,IAAA,IAAI,EAAErG,KAAK,CAACa,uBAAN,GAAgC,IAAhC,GAAuC;AAD/C,IAlBF,CAVJ,CADD,gBAoCC,yEACE,6BAAC,YAAD;AACE,IAAA,KAAK,EAAE;AAAEyF,MAAAA,KAAK,EAAE,OAAT;AAAkBF,MAAAA,WAAW,EAAE;AAA/B,KADT;AAEE,IAAA,KAAK,EAAEpG,KAAK,CAACiB,cAFf;AAGE,IAAA,QAAQ,EAAE+D,eAHZ;AAIE,IAAA,UAAU,EAAE,IAJd;AAKE,IAAA,gBAAgB,EAAC;AALnB,KAOGhF,KAAK,CAACmB,OAAN,CAAcjG,GAAd,CAAmB+J,CAAD,iBACjB,6BAAC,YAAD,CAAQ,MAAR;AAAe,IAAA,GAAG,EAAEA,CAAC,CAACvH,UAAtB;AAAkC,IAAA,KAAK,EAAEuH,CAAC,CAACvH;AAA3C,KACGuH,CAAC,CAACtL,IADL,CADD,CAPH,CADF,eAcE,6BAAC,YAAD;AACE,IAAA,KAAK,EAAE;AAAE2M,MAAAA,KAAK,EAAE;AAAT,KADT;AAEE,IAAA,KAAK,EAAEtG,KAAK,CAACkB,YAFf;AAGE,IAAA,QAAQ,EAAEgE,mBAHZ;AAIE,IAAA,UAAU,EAAE,IAJd;AAKE,IAAA,gBAAgB,EAAC;AALnB,KAOGlF,KAAK,CAACoB,WAAN,CAAkBlG,GAAlB,CAAuB+J,CAAD,iBACrB,6BAAC,YAAD,CAAQ,MAAR;AAAe,IAAA,GAAG,EAAEA,CAAC,CAACvH,UAAtB;AAAkC,IAAA,KAAK,EAAEuH,CAAC,CAACvH;AAA3C,KACGuH,CAAC,CAACtL,IADL,CADD,CAPH,CAdF,CAtCJ,CADF,eAqEE;AAAK,IAAA,SAAS,EAAEqM,4BAAOO;AAAvB,KACGjF,eAAe,CAACvF,MAAhB,GAAyB,CAAzB,iBACC;AAAK,IAAA,KAAK,EAAE;AAAEqK,MAAAA,WAAW,EAAE;AAAf;AAAZ,kBACE,2CACGzI,iBAAKzE,CAAL,CAAQ,GAAE0E,iCAAuB,IAAGC,aAAE2I,cAAe,EAArD,EAAwD;AACvDC,IAAAA,KAAK,EAAEnF,eAAe,CAACvF;AADgC,GAAxD,CADH,CADF,eAME;AACE,IAAA,IAAI,EAAC,QADP;AAEE,IAAA,OAAO,EAAE,MACPuH,iBAAiB,CAAC;AAChBG,MAAAA,YAAY,EAAE,EADE;AAEhBD,MAAAA,aAAa,EAAE;AAFC,KAAD;AAHrB,KASG,GATH,EAUG7F,iBAAKzE,CAAL,CAAQ,GAAE0E,iCAAuB,IAAGC,aAAE6I,KAAM,EAA5C,CAVH,CANF,CAFJ,EAsBGlJ,KAAK,CAACjE,QAAN,KAAmB,MAAnB,IAA6BiE,KAAK,CAACmJ,iBAAnC,iBACC,6BAAC,YAAD;AAAQ,IAAA,IAAI,EAAE,MAAd;AAAsB,IAAA,OAAO,EAAEhC;AAA/B,KAEG3E,KAAK,CAACqB,WAAN,GACG1D,iBAAKzE,CAAL,CAAQ,GAAE0E,iCAAuB,IAAGC,aAAE+I,cAAe,EAArD,CADH,GAEGjJ,iBAAKzE,CAAL,CAAQ,GAAE0E,iCAAuB,IAAGC,aAAEgJ,aAAc,EAApD,CAJN,CAvBJ,EA8BGrJ,KAAK,CAACjE,QAAN,KAAmB,MAAnB,IAA6B,CAACiE,KAAK,CAACsI,kBAApC,iBACC,6BAAC,sBAAD;AACE,IAAA,OAAO,EAAE9F,KAAK,CAACQ,UADjB;AAEE,IAAA,QAAQ,EAAEiE,kBAFZ;AAGE,IAAA,KAAK,EAAE;AAAE2B,MAAAA,WAAW,EAAE;AAAf,KAHT;AAIE,IAAA,QAAQ,EAAE5I,KAAK,CAACsJ,aAJlB;AAKE,IAAA,IAAI,EAAC,YALP;AAME,IAAA,KAAK,EAAEnJ,iBAAKzE,CAAL,CAAQ,GAAE0E,iCAAuB,IAAGC,aAAEkJ,WAAY,EAAlD,CANT;AAOE,mBAAY;AAPd,IA/BJ,EAyCG,CAACvJ,KAAK,CAACqI,mBAAP,iBACC,6BAAC,sBAAD;AACE,IAAA,OAAO,EAAE7F,KAAK,CAACS,WADjB;AAEE,IAAA,QAAQ,EAAE8D,mBAFZ;AAGE,IAAA,KAAK,EAAE;AAAE6B,MAAAA,WAAW,EAAE;AAAf,KAHT;AAIE,IAAA,IAAI,EAAC,YAJP;AAKE,IAAA,KAAK,EAAEzI,iBAAKzE,CAAL,CACJ,GAAE0E,iCAAuB,IAAGC,aAAEmJ,aAAc,EADxC,CALT;AAQE,mBAAY;AARd,IA1CJ,eAqDE,6BAAC,sBAAD;AACE,IAAA,OAAO,EAAEhH,KAAK,CAACc,aADjB;AAEE,IAAA,QAAQ,EAAE4D,mBAFZ;AAGE,IAAA,KAAK,EAAE;AAAE0B,MAAAA,WAAW,EAAE;AAAf,KAHT;AAIE,IAAA,IAAI,EAAC,gBAJP;AAKE,IAAA,KAAK,EAAEzI,iBAAKzE,CAAL,CACJ,GAAE0E,iCAAuB,IAAGC,aAAEoJ,2BAA4B,EADtD,CALT;AAQE,mBAAY;AARd,IArDF,EA+DG,CAACzJ,KAAK,CAACuI,mBAAP,iBACC,6BAAC,uCAAD;AACE,IAAA,SAAS,EAAEtO,SADb;AAEE,IAAA,SAAS,EAAE2N,aAFb;AAGE,IAAA,QAAQ,EAAEpF,KAAK,CAAClE,QAHlB;AAIE,IAAA,aAAa,EAAEqJ,aAJjB;AAKE,IAAA,kBAAkB,EAAE3H,KAAK,CAACsC;AAL5B,IAhEJ,CArEF,CANJ,EAsJG,CAACtC,KAAK,CAACoI,sBAAP,IAAiC,CAAC5F,KAAK,CAACqB,WAAxC,iBACC;AACE,IAAA,KAAK,EAAE;AAAE6F,MAAAA,YAAY,EAAE;AAAhB,KADT;AAEE,IAAA,MAAM,EAAE,CAAClH,KAAK,CAACa;AAFjB,kBAIE,6BAAC,iCAAD;AACE,IAAA,GAAG,EAAEhF,MAAM,CAACmE,KAAK,CAAClE,QAAP,EAAiBkE,KAAK,CAAC/G,EAAvB,CADb;AAEE,IAAA,QAAQ,EAAE+G,KAAK,CAAClE,QAFlB;AAGE,IAAA,WAAW,EAAEkE,KAAK,CAACtI,WAHrB;AAIE,IAAA,SAAS,EAAED,SAJb;AAKE,IAAA,CAAC,EAAEuI,KAAK,CAACtD,QALX;AAME,IAAA,WAAW,EAAEsD,KAAK,CAACmE,WANrB;AAOE,IAAA,QAAQ,EAAEF;AAPZ,IAJF,CAvJJ,EAsKG,CAACzG,KAAK,CAAC2J,oBAAP,IACC,CAACnH,KAAK,CAACqB,WADR,KAEErB,KAAK,CAACE,mBAAN,IAA6BF,KAAK,CAACrI,CAAnC,IAAwC,CAAC,qBAAQwB,UAAR,CAF3C,kBAGG;AAAK,IAAA,SAAS,EAAE6M,4BAAOoB;AAAvB,kBACE,2CACGzJ,iBAAKzE,CAAL,CACE,GAAE0E,iCAAuB,IAAGC,aAAEwJ,2BAA4B,EAD5D,CADH,CADF,EAMGrH,KAAK,CAACrI,CAAN,iBACC,6BAAC,SAAD;AACE,IAAA,QAAQ,MADV;AAEE,IAAA,OAAO,EAAE,MAAM;AACboI,MAAAA,IAAI,CAAC,EAAD,CAAJ;AACAiE,MAAAA,QAAQ,CAAC,EAAD,CAAR;AACD;AALH,KAOGrG,iBAAKzE,CAAL,CAAQ,GAAE0E,iCAAuB,IAAGC,aAAEyJ,YAAa,EAAnD,EAAsD;AACrDxP,IAAAA,KAAK,EAAEkI,KAAK,CAACrI;AADwC,GAAtD,CAPH,CAPJ,EAmBGqI,KAAK,CAACE,mBAAN,iBACC,6BAAC,SAAD;AACE,IAAA,QAAQ,MADV;AAEE,IAAA,OAAO,EAAE,MAAM;AACboE,MAAAA,sBAAsB,CAAC,IAAD,CAAtB;AACD;AAJH,KAMG3G,iBAAKzE,CAAL,CACE,GAAE0E,iCAAuB,IAAGC,aAAE0J,wBAAyB,EADzD,EAEC;AACEzP,IAAAA,KAAK,EACH,CAAA0G,yBAAyB,SAAzB,IAAAA,yBAAyB,WAAzB,YAAAA,yBAAyB,CACvBwB,KAAK,CAACE,mBADiB,CAAzB,KAEKF,KAAK,CAACE;AAJf,GAFD,CANH,CApBJ,EAqCG/G,UAAU,CAAC+B,GAAX,CAAgBG,SAAD,iBACd,6BAAC,SAAD;AACE,IAAA,GAAG,EAAG,GAAEA,SAAS,CAACI,MAAO,GACvBJ,SAAS,CAACK,SACX,IAAG,uBAAW,EAHjB;AAIE,IAAA,QAAQ,MAJV;AAKE,IAAA,OAAO,EAAE+J,wBAAwB,CAC/BpK,SAAS,CAACI,MADqB,EAE/BJ,SAAS,CAACK,SAFqB;AALnC,KAUGL,SAAS,CAACA,SAVb,CADD,CArCH,CAzKN,EA8NG,0BAAAmC,KAAK,CAACgK,iBAAN,gFAAyBC,QAAzB,kBACC,6BAAC,0BAAD;AAAkB,IAAA,QAAQ,EAAEjK,KAAK,CAACgK,iBAAN,CAAwBC;AAApD,IA/NJ,eAiOE,6BAAC,oCAAD;AACE,IAAA,kBAAkB,EAAEjK,KAAK,CAACkK,kBAD5B;AAEE,IAAA,QAAQ,EAAE1H,KAAK,CAAClE,QAFlB;AAGE,IAAA,WAAW,EAAEkE,KAAK,CAACtI,WAHrB;AAIE,IAAA,SAAS,EAAED,SAJb;AAKE,IAAA,gBAAgB,EAAEuI,KAAK,CAAC4C,gBAL1B;AAME,IAAA,IAAI,EAAE5C,KAAK,CAACI,IANd;AAOE,IAAA,GAAG,EAAEJ,KAAK,CAACG,GAPb;AAQE,IAAA,eAAe,EAAEmB,eARnB;AASE,IAAA,cAAc,EAAE9D,KAAK,CAACmK,cATxB;AAUE,IAAA,YAAY,EAAEnK,KAAK,CAACoK,YAVtB;AAWE,IAAA,sBAAsB,EAAEpK,KAAK,CAACqK,sBAXhC;AAYE,IAAA,WAAW,EAAErK,KAAK,CAACsK,WAZrB;AAaE,IAAA,kBAAkB,EAAE3E,kBAbtB;AAcE,IAAA,eAAe,EAAEiB,eAdnB;AAeE,IAAA,iBAAiB,EAAEd,iBAfrB;AAgBE,IAAA,sBAAsB,EAAEgB,sBAhB1B;AAiBE,IAAA,mBAAmB,EAAEtE,KAAK,CAACE,mBAjB7B;AAkBE,IAAA,yBAAyB,EAAE1B,yBAlB7B;AAmBE,IAAA,4BAA4B,EAAEhB,KAAK,CAACuK,4BAnBtC;AAoBE,IAAA,aAAa,EAAE/H,KAAK,CAACc,aApBvB;AAqBE,IAAA,oBAAoB,EAAEtD,KAAK,CAACwK,oBArB9B;AAsBE,IAAA,eAAe,EAAExK,KAAK,CAACyK,eAtBzB;AAuBE,IAAA,eAAe,EAAEzK,KAAK,CAAC0K,eAvBzB;AAwBE,IAAA,YAAY,EAAE1K,KAAK,CAAC2K,YAxBtB;AAyBE,IAAA,MAAM,EAAE3K,KAAK,CAAC6F,MAzBhB;AA0BE,IAAA,MAAM,EAAE7F,KAAK,CAAC4K,MA1BhB;AA2BE,IAAA,2BAA2B,EAAE5K,KAAK,CAAC6K;AA3BrC,IAjOF,CADD,GAgQG,IAjQN,CADF;AAqQD","sourcesContent":["import React, { useEffect, useReducer, useState, useRef, useMemo } 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} from \"lodash\";\nimport { BrickAsComponent, handleHttpError } 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} 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} from \"@next-libs/cmdb-utils\";\n\nimport {\n ConditionType,\n LogicalOperators,\n Query,\n AdvancedSearch,\n getFieldConditionsAndValues,\n MoreButtonsContainer,\n InstanceListTable,\n CustomColumn,\n ElementOperators,\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 MAX_DEFAULT_FIELDS_COUNT,\n MAX_DEFAULT_MODAL_FIELDS_COUNT,\n} from \"./constants\";\nimport { JsonStorage } from \"@next-libs/storage\";\nimport { ModelAttributeValueType } from \"../model-attribute-form-control/ModelAttributeFormControl\";\nimport { IconButton } from \"./IconButton\";\nimport { changeQueryWithCustomRules } from \"../processors\";\nimport { ModelObjectAttr } from \"@next-sdk/cmdb-sdk/dist/types/model/cmdb\";\nimport { RelationObjectSides, isSelfRelation } from \"@next-libs/cmdb-utils\";\nimport { DisplaySettingsModalData } from \"../instance-list-table/DisplaySettingsModal\";\nexport interface InstanceListPresetConfigs {\n query?: Record<string, any>;\n fieldIds?: string[];\n}\n\nexport function getQuery(\n modelData: Partial<CmdbModels.ModelCmdbObject>,\n idObjectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>,\n q: string,\n fields?: string[],\n onlySearchByIp?: boolean\n) {\n const query: Record<string, any> = { $or: [] };\n\n const queryValues = q.trim().split(/\\s+/);\n if (onlySearchByIp) {\n query.$or.push({ ip: { $like: `%${q.trim()}%` } });\n return query;\n }\n forEachAvailableFields(\n modelData,\n (attr) => {\n queryValues.forEach((queryValue) =>\n query.$or.push({ [attr.id]: { $like: `%${queryValue}%` } })\n );\n },\n (relation, sides) => {\n const id = relation[`${sides.this}_id` as RelationIdKeys];\n const nameKeys = getInstanceNameKeys(\n idObjectMap[relation[`${sides.that}_object_id` as RelationObjectIdKeys]]\n );\n\n queryValues.forEach((queryValue) => {\n nameKeys.forEach((nameKey) => {\n query.$or.push({\n [`${id}.${nameKey}`]: { $like: `%${queryValue}%` },\n });\n });\n });\n },\n fields\n );\n\n return query;\n}\n\nfunction translateConditions(\n aq: Query[],\n idObjectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>,\n modelData: Partial<CmdbModels.ModelCmdbObject>,\n t?: () => string\n): { attrId: string; condition: string; valuesStr: string }[] {\n const conditions: {\n attrId: string;\n condition: string;\n valuesStr: string;\n }[] = [];\n const relations: any[] = [];\n modelData.relation_list.forEach((relation) => {\n let sidesArr: RelationObjectSides[] = [];\n if (isSelfRelation(relation)) {\n sidesArr = [\n { this: \"left\", that: \"right\" },\n { this: \"right\", that: \"left\" },\n ];\n } else {\n sidesArr = [getRelationObjectSides(relation, modelData)];\n }\n sidesArr.forEach((sides) => {\n const objectId = relation[`${sides.this}_id` as RelationIdKeys];\n const relationObject =\n idObjectMap[\n relation[`${sides.that}_object_id` as RelationObjectIdKeys]\n ];\n const nameKeys = getInstanceNameKeys(relationObject);\n nameKeys.forEach((nameKey) => {\n const nameOfNameKey =\n find(relationObject?.attrList, [\"id\", nameKey])?.name ?? nameKey;\n const id = `${objectId}.${nameKey}`;\n const name = `${\n relation[`${sides.this}_name` as RelationNameKeys]\n }(${nameOfNameKey})`;\n relations.push({\n id,\n name,\n value: { type: \"str\" },\n relationSideId: relation[`${sides.this}_id` as RelationIdKeys],\n });\n });\n relations.push({\n id: `${objectId}.`,\n name: `${relation[`${sides.this}_name` as RelationNameKeys]}`,\n value: { type: \"str\" },\n relationSideId: relation[`${sides.this}_id` as RelationIdKeys],\n });\n });\n });\n const attrAndRelationList = [...modelData.attrList, ...relations];\n if (!isEmpty(aq)) {\n for (const query of aq) {\n let queries: Query[] = [query];\n if (Object.keys(query)[0] === \"$or\" || Object.keys(query)[0] === \"$and\") {\n queries = query[Object.keys(query)[0]] as Query[];\n }\n\n queries.forEach((query) => {\n const key = Object.keys(query)[0];\n const value = Object.values(query)[0];\n let attr = attrAndRelationList.find(\n (attr) => attr.id === key || attr.relationSideId === key\n );\n if (\n Object.keys(value)[0] === ElementOperators.Exists &&\n attr.relationSideId\n ) {\n const relationSideId = attr.relationSideId;\n attr =\n attrAndRelationList.find(\n (attr) => attr.id === `${relationSideId}.`\n ) || attr;\n }\n if (attr) {\n query = changeQueryWithCustomRules(\n modelData.objectId,\n attr.id,\n query\n );\n const info = getFieldConditionsAndValues(\n query as any,\n key,\n attr.value.type as ModelAttributeValueType,\n undefined,\n undefined,\n modelData.objectId,\n attr.id\n );\n if (\n ![\n ConditionType.Between,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ConditionType.False,\n ConditionType.True,\n ].includes(info.currentCondition.type)\n ) {\n info.values = info.values.map((v) =>\n isString(v) && v.includes(\" \") ? v.replace(/^\"+|\"+$/g, \"\") : v\n );\n }\n\n let condition = `${attr.name}: ${info.currentCondition.label}`;\n if (\n ![ConditionType.Empty, ConditionType.NotEmpty].includes(\n info.currentCondition.type\n )\n ) {\n condition += `\"${info.values.join(\" ~ \")}\"`;\n }\n const curCondition = {\n attrId: key,\n condition,\n valuesStr: info.queryValuesStr,\n };\n if (\n conditions.every(\n (v) => !isEqual(omit(v, \"attrId\"), omit(curCondition, \"attrId\"))\n )\n ) {\n conditions.push(curCondition);\n }\n }\n });\n }\n }\n\n return conditions;\n}\n\nfunction newKey(fieldIds: string[], aq: Query[]): string {\n let key = \"\";\n if (!isEmpty(fieldIds)) {\n key += fieldIds.join(\"-\");\n }\n if (!isEmpty(aq)) {\n key += `-${aq.length}`;\n }\n return key;\n}\nconst isOfStruct = (\n modelData: Partial<CmdbModels.ModelCmdbObject>,\n fieldId: string\n) => {\n const structFields = modelData.attrList\n .filter(\n (attr: Partial<ModelObjectAttr>) =>\n attr.value.type === \"struct\" || attr.value.type === \"structs\"\n )\n ?.map((attr) => {\n const structs: string[] = [];\n attr.value.struct_define.forEach((struct) => {\n structs.push(`${attr.id}.${struct.id}`);\n });\n return structs;\n })\n .flat();\n return structFields.includes(fieldId);\n};\nexport const initAqToShow = (\n aq: Query[],\n modelData: Partial<CmdbModels.ModelCmdbObject>\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 structQueries: Record<string, any> = (\n expressions as Query[]\n ).filter((expression) => Object.keys(expression)[0] === fieldId);\n if (isStruct) {\n const structExpressions = structQueries.map((item: any) => ({\n [fieldId.split(\".\")[0]]: item[fieldId],\n }));\n newExpressions = [...newExpressions, ...structExpressions];\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 moreButtonsDisabled?: boolean;\n aliveHosts?: boolean;\n fixAliveHosts?: boolean;\n aliveHostsDisabled?: boolean;\n propertyDisplayConfigs?: PropertyDisplayConfig[];\n selectedRowKeys?: string[];\n selectDisabled?: boolean;\n pageSizeOptions?: string[];\n showSizeChanger?: boolean;\n filterInstanceSourceDisabled?: boolean;\n instanceSourceQuery?: string;\n 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 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 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}\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}\n\nexport function InstanceList(props: InstanceListProps): React.ReactElement {\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\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 = union(object.attrList, extraFieldAttrs);\n }\n });\n\n return { modelData, idObjectMap };\n }, [props.objectList, props.objectId]);\n\n const [inheritanceModelIdNameMap, setInheritanceModelIdNameMap] = useState<\n Record<string, string>\n >({});\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 let fieldIds: string[] = difference(\n uniq(map(modelData.attrList, \"id\"))\n ).slice(0, 8);\n const hideModelData: string[] = modelData.view.hide_columns || [];\n fieldIds = fieldIds.filter((field) => !hideModelData.includes(field));\n return { fieldIds };\n };\n\n // 根据用户预定义的 presetConfigs.fieldIds 进行排序,如果不在预定义的字段,则根据 modelData.view.attr_order 进行排序\n const _sortFieldIds = (fieldIds: any[]) => {\n let frontFields: any[] = [];\n let restFields: any[] = [];\n if (props.presetConfigs?.fieldIds) {\n frontFields = filter(props.presetConfigs.fieldIds, (id) =>\n fieldIds.includes(id)\n );\n }\n restFields = sortBy(\n reject(fieldIds, (id) => frontFields.includes(id)),\n (fieldId) => {\n const foundIndex = findIndex(\n modelData.view.attr_order,\n (orderId) => orderId === fieldId\n );\n if (foundIndex === -1) {\n return null;\n } else {\n return foundIndex;\n }\n }\n );\n return [...frontFields, ...restFields];\n };\n\n const getFields = () => {\n let fieldIds = props.presetConfigs?.fieldIds;\n if (isEmpty(fieldIds)) {\n fieldIds = jsonLocalStorage.getItem(\n `${modelData.objectId}-selectAttrIds`\n );\n }\n\n if (isEmpty(fieldIds)) {\n fieldIds = computeDefaultFields().fieldIds;\n }\n fieldIds = props.extraDisabledField\n ? uniq([...fieldIds, props.extraDisabledField])\n : fieldIds;\n fieldIds = _sortFieldIds(fieldIds);\n const hideModelData: string[] = modelData.view.hide_columns || [];\n fieldIds = fieldIds.filter((field) => !hideModelData.includes(field));\n modelData.isAbstract && fieldIds.push(\"_object_id\");\n return fieldIds;\n };\n\n const [q, setQ] = useState(props.q);\n const [state, setState] = useReducer(reducer, undefined, () => ({\n objectId: props.objectId,\n q: props.q,\n aq: props.aq,\n aqToShow: props.aqToShow || initAqToShow(props.aq, modelData),\n instanceSourceQuery: props.instanceSourceQuery,\n asc: props.asc,\n sort: props.sort,\n page: props.dataSource?.page ?? props.page ?? 1,\n pageSize: props.dataSource?.pageSize ?? props.pageSize ?? 10,\n aliveHosts: props.aliveHosts,\n relatedToMe: props.relatedToMe,\n inited: false,\n loading: false,\n failed: false,\n isAdvancedSearchVisible: false,\n fieldIds: getFields(),\n autoBreakLine: false,\n appSearchInstanceId: \"\",\n currentChangeSelect: \"App\",\n appSelectValue: \"\",\n clusterValue: \"all\",\n appList: [],\n clusterList: [\n {\n instanceId: \"all\",\n name: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.ALL_CLUSTER}`),\n },\n ],\n searchByApp: false,\n }));\n const [selectedRowKeys, setSelectedRowKeys] = useState(\n props.selectedRowKeys ?? []\n );\n const cache = useRef(new Map<string, InstanceApi_PostSearchV3ResponseBody>());\n const isFirstRunRef = useRef(true);\n\n const getInstanceListData = async (\n sort: string,\n asc: boolean,\n page: number\n ): Promise<InstanceApi_PostSearchV3ResponseBody> => {\n const data: InstanceApi_PostSearchRequestBody = {};\n const v3Data: InstanceApi_PostSearchV3RequestBody = {\n fields: [\"instanceId\"],\n };\n if (!isEmpty(props.permission)) {\n v3Data.permission = data.permission = props.permission;\n }\n\n let query: Record<string, any> = {};\n\n v3Data.page = data.page = page;\n v3Data[\"page_size\"] = data[\"page_size\"] = state.pageSize;\n const sortType = modelData?.attrList?.find((attr) => attr.id === sort)\n ?.value?.default_type;\n const order = [\"series-number\", \"auto-increment-id\"].includes(sortType)\n ? asc\n ? 2\n : -2\n : asc\n ? 1\n : -1;\n if (sort) {\n data.sort = { [sort]: order };\n v3Data.sort = [{ key: sort, order }];\n }\n\n if (state.q) {\n query = getQuery(\n modelData,\n idObjectMap,\n state.q,\n state.fieldIds,\n props.onlySearchByIp\n );\n }\n\n if (!isEmpty(state.aq)) {\n query[LogicalOperators.And] = state.aq;\n }\n\n if (!isEmpty(props.defaultQuery)) {\n query[LogicalOperators.And] = [\n ...(query[LogicalOperators.And] || []),\n ...props.defaultQuery,\n ];\n }\n if (props.presetConfigs) {\n if (!isEmpty(props.presetConfigs.query)) {\n if (query) {\n query = {\n $and: [query, props.presetConfigs.query],\n };\n } else {\n query = props.presetConfigs.query;\n }\n }\n }\n if (state.fieldIds) {\n data.fields = Object.fromEntries(\n state.fieldIds.map((fieldId) => [fieldId, true])\n );\n v3Data.fields = [...state.fieldIds, ...v3Data.fields];\n (v3Data as any).ignore_missing_field_error = true;\n }\n if (state.aliveHosts && props.objectId === \"HOST\") {\n query = { ...query, _agentStatus: \"正常\" };\n }\n if (state.instanceSourceQuery) {\n query = { ...query, _object_id: state.instanceSourceQuery };\n }\n\n if (!isEmpty(query)) {\n v3Data.query = data.query = query;\n }\n\n if (state.relatedToMe) {\n v3Data.only_my_instance = data.only_my_instance = state.relatedToMe;\n }\n //按应用筛选\n // istanbul ignore next (state is not updated)\n if (state.searchByApp) {\n v3Data.query = {\n [state.currentChangeSelect === \"App\" ||\n (state.currentChangeSelect === \"Cluster\" &&\n state.clusterValue === \"all\")\n ? \"_deviceList_CLUSTER.appId.instanceId\"\n : \"_deviceList_CLUSTER.instanceId\"]: state.appSearchInstanceId,\n ...(state.aliveHosts && props.objectId === \"HOST\"\n ? { _agentStatus: \"正常\" }\n : {}),\n };\n }\n const promise = props.onSearchExecute?.(data, v3Data);\n\n return promise ? promise : 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 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 }\n } catch (e) {\n handleHttpError(e);\n setState({ failed: true });\n } finally {\n setState({ inited: true, loading: false });\n }\n };\n\n useEffect(() => {\n const fieldIds = getFields();\n if (\n // 当 props.objectId 改变时,总是更新 state.fieldIds\n props.objectId !== state.objectId ||\n !isEqual(fieldIds, state.fieldIds)\n ) {\n setState({\n fieldIds,\n });\n }\n }, [props.objectId, props.presetConfigs]);\n\n useEffect(() => {\n setSelectedRowKeys(props.selectedRowKeys ?? []);\n }, [props.objectId, props.selectedRowKeys]);\n\n // on filter condition change\n useEffect(() => {\n if (isFirstRunRef.current) {\n isFirstRunRef.current = false;\n return;\n }\n\n let skip = false;\n\n if (state.page !== 1) {\n setState({ page: 1 });\n props.onPaginationChange?.({ page: 1, pageSize: state.pageSize });\n skip = true;\n }\n\n // 当 prop.objectId 改变时先跳过,等 state.fieldIds 更新后再获取数据\n if (props.objectId !== state.objectId) {\n setState({ objectId: props.objectId });\n skip = true;\n }\n\n if (skip) {\n return;\n }\n\n refreshInstanceList(state.sort, state.asc, 1);\n }, [\n state.q,\n state.aq,\n state.instanceSourceQuery,\n state.pageSize,\n state.aliveHosts,\n state.relatedToMe,\n props.objectId,\n props.permission,\n props.defaultQuery,\n ]);\n\n // on other condition change\n useEffect(() => {\n if (isEmpty(state.fieldIds)) return;\n\n refreshInstanceList(state.sort, state.asc, state.page);\n }, [\n state.page,\n state.sort,\n state.asc,\n state.fieldIds,\n state.appSearchInstanceId,\n state.currentChangeSelect,\n state.searchByApp,\n props.dataSource,\n ]);\n\n const onChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setQ(e.target.value);\n };\n\n // istanbul ignore next\n const onSelectionChange = async (selected: {\n selectedKeys: string[];\n selectedItems: any[];\n }) => {\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 const resp = await InstanceApi_postSearchV3(props.objectId, {\n fields: [\"instanceId\"],\n query: {\n instanceId: {\n $in: ids,\n },\n },\n page_size: ids.length,\n });\n resp.list.forEach((i) => cache.current.set(i.instanceId, i));\n }\n selectedItems = selectedKeys.map((id) => cache.current.get(id));\n }\n props.onSelectionChange?.({ selectedItems, selectedKeys });\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 = (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\n const onPaginationChange = (pagination: ReadPaginationChangeDetail) => {\n setState({ page: pagination.page, pageSize: pagination.pageSize });\n props.onPaginationChange?.(pagination);\n };\n\n const onInstanceSourceChange = (instanceSourceQuery: string) => {\n setState({ instanceSourceQuery });\n props.onInstanceSourceChange?.(instanceSourceQuery);\n };\n\n const onRelatedToMeChange = (checked: boolean) => {\n setState({ relatedToMe: checked });\n props.onRelatedToMeChange?.(checked);\n };\n\n const onAliveHostsChange = (checked: boolean) => {\n setState({ aliveHosts: checked });\n props.onAliveHostsChange?.(checked);\n };\n\n const toggleAutoBreakLine = (autoBreakLine: boolean) => {\n setState({ autoBreakLine });\n };\n // istanbul ignore next (state is not updated)\n const toggleSearchMode = React.useCallback(async () => {\n if (!state.searchByApp) {\n const appListResp = await InstanceApi_postSearchV3(\"APP\", {\n fields: [\"clusters\", \"instanceId\", \"name\"],\n sort: [{ key: \"name\", order: 1 }],\n page: 1,\n page_size: 3000,\n });\n setState({\n appSearchInstanceId: appListResp.list?.[0].instanceId || \"\",\n appList: appListResp.list,\n clusterList: [...baseList, ...(appListResp.list?.[0].clusters || [])],\n searchByApp: true,\n appSelectValue: appListResp.list?.[0].instanceId || \"\",\n clusterValue: \"all\",\n });\n } else {\n setState({ searchByApp: false });\n }\n }, [state.searchByApp]);\n // istanbul ignore next (state is not updated)\n const appSelectChange = (v: string) => {\n setState({\n appSearchInstanceId: v,\n currentChangeSelect: \"App\",\n appSelectValue: v,\n clusterValue: \"all\",\n clusterList: [\n ...baseList,\n ...state.appList.find((r) => r.instanceId === v).clusters,\n ],\n });\n };\n // istanbul ignore next (state is not updated)\n const clusterSelectChange = (v: string) => {\n setState({\n appSearchInstanceId: v === \"all\" ? state.appSelectValue : v,\n currentChangeSelect: \"Cluster\",\n clusterValue: v,\n });\n };\n const defaultFields = useMemo(() => {\n let defaultFields: string[];\n if (!isEmpty(props.presetConfigs?.fieldIds)) {\n defaultFields = props.presetConfigs.fieldIds;\n } else {\n defaultFields = computeDefaultFields().fieldIds;\n }\n return defaultFields;\n }, [props.presetConfigs, modelData]);\n\n // istanbul ignore next\n const handleConfirm = ({ fields, isReset }: DisplaySettingsModalData) => {\n if (isReset) {\n const fieldIds = defaultFields;\n modelData.isAbstract && fieldIds.push(\"_object_id\");\n setState({ fieldIds });\n jsonLocalStorage.removeItem(`${modelData.objectId}-selectAttrIds`);\n } else {\n setState({\n fieldIds: _sortFieldIds(fields),\n });\n jsonLocalStorage.setItem(`${modelData.objectId}-selectAttrIds`, fields);\n }\n };\n\n useEffect(() => {\n props.notifyCurrentFields?.(state.fieldIds);\n }, [props.notifyCurrentFields]);\n\n // istanbul ignore next\n useEffect(() => {\n props.selectedRowKeys &&\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\n const resp = await InstanceApi_postSearchV3(props.objectId, v3Data);\n resp.list.forEach((i) => cache.current.set(i.instanceId, i));\n })();\n }, [props.selectedRowKeys]);\n\n const onAdvancedSearchCloseGen = (attrId: string, valuesStr: string) => {\n return () => {\n const queries: Query[] = [];\n const queriesToShow: Query[] = [];\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 = (query[key] as Query[]).filter((query) => {\n return Object.values(query[attrId]).join(\" \") !== valuesStr;\n });\n if (filteredSubQueries.length > 0) {\n queries.push({\n [key]: filteredSubQueries,\n });\n }\n } else if (key !== attrId && !startsWith(attrId, `${key}.`)) {\n queries.push(query);\n }\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 = (query[key] as Query[]).filter((query) => {\n return Object.values(query[attrId]).join(\" \") !== valuesStr;\n });\n if (filteredSubQueries.length > 0) {\n queriesToShow.push({\n [key]: filteredSubQueries,\n });\n }\n } else if (key !== attrId) {\n queriesToShow.push(query);\n }\n });\n setState({\n aq: queries,\n aqToShow: queriesToShow,\n });\n props.onAdvancedSearch?.(queries);\n };\n };\n const conditions = translateConditions(\n state.aqToShow,\n idObjectMap,\n modelData\n );\n\n return (\n <Spin spinning={state.loading}>\n {state.inited && !state.failed ? (\n <React.Fragment>\n {(!props.searchDisabled ||\n !props.advancedSearchDisabled ||\n !props.relatedToMeDisabled ||\n !props.aliveHostsDisabled ||\n !props.moreButtonsDisabled) && (\n <div className={styles.instanceListToolbar}>\n <div className={styles.searchRelated}>\n {/* istanbul ignore next (state is not updated) */}\n {!state.searchByApp ? (\n <>\n {!props.searchDisabled && (\n <Input.Search\n enterButton\n value={q}\n onChange={onChange}\n onSearch={onSearch}\n />\n )}\n {!props.advancedSearchDisabled && (\n <Button\n type=\"link\"\n size=\"small\"\n style={{\n marginLeft: \"8px\",\n marginRight: \"auto\",\n }}\n onClick={() =>\n setState({\n isAdvancedSearchVisible:\n !state.isAdvancedSearchVisible,\n })\n }\n data-testid=\"advanced-search-toggle-btn\"\n >\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ADVANCED_SEARCH}`\n )}\n <LegacyIcon\n type={state.isAdvancedSearchVisible ? \"up\" : \"down\"}\n />\n </Button>\n )}\n </>\n ) : (\n <>\n <Select\n style={{ width: \"150px\", marginRight: \"10px\" }}\n value={state.appSelectValue}\n onChange={appSelectChange}\n showSearch={true}\n optionFilterProp=\"children\"\n >\n {state.appList.map((r) => (\n <Select.Option key={r.instanceId} value={r.instanceId}>\n {r.name}\n </Select.Option>\n ))}\n </Select>\n <Select\n style={{ width: \"150px\" }}\n value={state.clusterValue}\n onChange={clusterSelectChange}\n showSearch={true}\n optionFilterProp=\"children\"\n >\n {state.clusterList.map((r) => (\n <Select.Option key={r.instanceId} value={r.instanceId}>\n {r.name}\n </Select.Option>\n ))}\n </Select>\n </>\n )}\n </div>\n <div className={styles.options}>\n {selectedRowKeys.length > 0 && (\n <div style={{ marginRight: 20 }}>\n <span>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CHOSEN_OPTIONS}`, {\n count: selectedRowKeys.length,\n })}\n </span>\n <a\n role=\"button\"\n onClick={() =>\n onSelectionChange({\n selectedKeys: [],\n selectedItems: [],\n })\n }\n >\n {\" \"}\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLEAR}`)}\n </a>\n </div>\n )}\n {props.objectId === \"HOST\" && props.enableSearchByApp && (\n <Button type={\"link\"} onClick={toggleSearchMode}>\n {/* istanbul ignore next (state is not updated) */}\n {state.searchByApp\n ? i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FREE_SELECTION}`)\n : i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.APP_SELECTION}`)}\n </Button>\n )}\n {props.objectId === \"HOST\" && !props.aliveHostsDisabled && (\n <IconButton\n checked={state.aliveHosts}\n onChange={onAliveHostsChange}\n style={{ marginRight: 10 }}\n disabled={props.fixAliveHosts}\n type=\"normalHost\"\n label={i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.NORMAL_HOST}`)}\n data-testid=\"alive-hosts\"\n />\n )}\n {!props.relatedToMeDisabled && (\n <IconButton\n checked={state.relatedToMe}\n onChange={onRelatedToMeChange}\n style={{ marginRight: 10 }}\n type=\"relateToMe\"\n label={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.RELATED_TO_ME}`\n )}\n data-testid=\"related-to-me\"\n />\n )}\n <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 {!props.moreButtonsDisabled && (\n <MoreButtonsContainer\n modelData={modelData}\n onConfirm={handleConfirm}\n fieldIds={state.fieldIds}\n defaultFields={defaultFields}\n extraDisabledField={props.extraDisabledField}\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 />\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 <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 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 separatorUsedInRelationData={props.separatorUsedInRelationData}\n />\n </React.Fragment>\n ) : null}\n </Spin>\n );\n}\n"],"file":"InstanceList.js"}
@@ -11,7 +11,7 @@ import { Button, Spin, Input, Tag, Select } from "antd";
11
11
  import { getRelationObjectSides, forEachAvailableFields, getInstanceNameKeys } from "@next-libs/cmdb-utils";
12
12
  import { ConditionType, LogicalOperators, AdvancedSearch, getFieldConditionsAndValues, MoreButtonsContainer, InstanceListTable, ElementOperators } from "../instance-list-table";
13
13
  import styles from "./InstanceList.module.css";
14
- import { extraFieldAttrs, CMDB_MODAL_FIELDS_SETTINGS, CMDB_RESOURCE_FIELDS_SETTINGS, MAX_DEFAULT_FIELDS_COUNT, MAX_DEFAULT_MODAL_FIELDS_COUNT } from "./constants";
14
+ import { extraFieldAttrs } from "./constants";
15
15
  import { JsonStorage } from "@next-libs/storage";
16
16
  import { IconButton } from "./IconButton";
17
17
  import { changeQueryWithCustomRules } from "../processors";
@@ -278,9 +278,8 @@ export function InstanceList(props) {
278
278
  } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
279
279
  inModal: false
280
280
  };
281
- var settings = inModal ? CMDB_MODAL_FIELDS_SETTINGS : CMDB_RESOURCE_FIELDS_SETTINGS;
282
- var ignoredFields = settings.ignoredFields[modelData.objectId] || [];
283
- var fieldIds = settings.defaultFields[modelData.objectId] || difference(uniq(map(modelData.attrList, "id")), ignoredFields).slice(0, inModal ? MAX_DEFAULT_MODAL_FIELDS_COUNT : MAX_DEFAULT_FIELDS_COUNT);
281
+ // 原来有隐藏逻辑,针对 APP、HOST、USER、USER_GROUP模型,默认字段特殊处理了,现产品要求干掉,统一取8个默认字段,也不区分是否是内置模型
282
+ var fieldIds = difference(uniq(map(modelData.attrList, "id"))).slice(0, 8);
284
283
  var hideModelData = modelData.view.hide_columns || [];
285
284
  fieldIds = fieldIds.filter(field => !hideModelData.includes(field));
286
285
  return {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/instance-list/InstanceList.tsx"],"names":["React","useEffect","useReducer","useState","useRef","useMemo","difference","isEmpty","isEqual","isString","map","uniq","union","filter","reject","sortBy","uniqueId","findIndex","find","startsWith","compact","omit","BrickAsComponent","handleHttpError","i18n","K","NS_LIBS_CMDB_INSTANCES","InstanceApi_postSearchV3","CmdbObjectApi_getIdMapName","Icon","LegacyIcon","Button","Spin","Input","Tag","Select","getRelationObjectSides","forEachAvailableFields","getInstanceNameKeys","ConditionType","LogicalOperators","AdvancedSearch","getFieldConditionsAndValues","MoreButtonsContainer","InstanceListTable","ElementOperators","styles","extraFieldAttrs","CMDB_MODAL_FIELDS_SETTINGS","CMDB_RESOURCE_FIELDS_SETTINGS","MAX_DEFAULT_FIELDS_COUNT","MAX_DEFAULT_MODAL_FIELDS_COUNT","JsonStorage","IconButton","changeQueryWithCustomRules","isSelfRelation","getQuery","modelData","idObjectMap","q","fields","onlySearchByIp","query","$or","queryValues","trim","split","push","ip","$like","attr","forEach","queryValue","id","relation","sides","this","nameKeys","that","nameKey","translateConditions","aq","t","conditions","relations","relation_list","sidesArr","objectId","relationObject","nameOfNameKey","attrList","name","value","type","relationSideId","attrAndRelationList","queries","Object","keys","key","values","Exists","info","undefined","Between","Empty","NotEmpty","False","True","includes","currentCondition","v","replace","condition","label","join","curCondition","attrId","valuesStr","queryValuesStr","every","newKey","fieldIds","length","isOfStruct","fieldId","structFields","structs","struct_define","struct","flat","initAqToShow","newAqToShow","aqToShow","entries","expressions","newExpressions","Or","And","firstSubQuery","isStruct","structQueries","expression","structExpressions","item","InstanceList","props","baseList","instanceId","ALL_CLUSTER","jsonLocalStorage","localStorage","reducer","prevState","updatedProperty","objectList","object","inheritanceModelIdNameMap","setInheritanceModelIdNameMap","fetchInheritanceModelIdNameMap","idNameMap","isAbstract","parentObjectId","computeDefaultFields","inModal","settings","ignoredFields","defaultFields","slice","hideModelData","view","hide_columns","field","_sortFieldIds","frontFields","restFields","presetConfigs","foundIndex","attr_order","orderId","getFields","getItem","extraDisabledField","setQ","state","setState","instanceSourceQuery","asc","sort","page","dataSource","pageSize","aliveHosts","relatedToMe","inited","loading","failed","isAdvancedSearchVisible","autoBreakLine","appSearchInstanceId","currentChangeSelect","appSelectValue","clusterValue","appList","clusterList","searchByApp","selectedRowKeys","setSelectedRowKeys","cache","Map","isFirstRunRef","getInstanceListData","data","v3Data","permission","sortType","default_type","order","defaultQuery","$and","fromEntries","ignore_missing_field_error","_agentStatus","_object_id","only_my_instance","promise","onSearchExecute","refreshInstanceList","instanceListData","list","i","current","set","e","skip","onPaginationChange","onChange","target","onSelectionChange","selected","selectedItems","selectedKeys","ids","has","resp","$in","page_size","get","onSearch","onAdvancedSearch","queriesToShow","fieldToShow","onSortingChange","pagination","onInstanceSourceChange","onRelatedToMeChange","checked","onAliveHostsChange","toggleAutoBreakLine","toggleSearchMode","useCallback","appListResp","clusters","appSelectChange","r","clusterSelectChange","handleConfirm","isReset","removeItem","setItem","notifyCurrentFields","onAdvancedSearchCloseGen","filteredSubQueries","searchDisabled","advancedSearchDisabled","relatedToMeDisabled","aliveHostsDisabled","moreButtonsDisabled","instanceListToolbar","searchRelated","marginLeft","marginRight","ADVANCED_SEARCH","width","options","CHOSEN_OPTIONS","count","CLEAR","enableSearchByApp","FREE_SELECTION","APP_SELECTION","fixAliveHosts","NORMAL_HOST","RELATED_TO_ME","DISPLAY_OMITTED_INFORMATION","marginBottom","hideSearchConditions","searchConditions","CURRENT_FILTER_REQUIREMENTS","FUZZY_SEARCH","INSTANCE_SOURCE_TAG_TEXT","extraFilterBricks","useBrick","detailUrlTemplates","selectDisabled","sortDisabled","propertyDisplayConfigs","onClickItem","filterInstanceSourceDisabled","relationLinkDisabled","pageSizeOptions","showSizeChanger","extraColumns","ipCopy","separatorUsedInRelationData"],"mappings":"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","sourcesContent":["import React, { useEffect, useReducer, useState, useRef, useMemo } 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} from \"lodash\";\nimport { BrickAsComponent, handleHttpError } 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} 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} from \"@next-libs/cmdb-utils\";\n\nimport {\n ConditionType,\n LogicalOperators,\n Query,\n AdvancedSearch,\n getFieldConditionsAndValues,\n MoreButtonsContainer,\n InstanceListTable,\n CustomColumn,\n ElementOperators,\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 MAX_DEFAULT_FIELDS_COUNT,\n MAX_DEFAULT_MODAL_FIELDS_COUNT,\n} from \"./constants\";\nimport { JsonStorage } from \"@next-libs/storage\";\nimport { ModelAttributeValueType } from \"../model-attribute-form-control/ModelAttributeFormControl\";\nimport { IconButton } from \"./IconButton\";\nimport { changeQueryWithCustomRules } from \"../processors\";\nimport { ModelObjectAttr } from \"@next-sdk/cmdb-sdk/dist/types/model/cmdb\";\nimport { RelationObjectSides, isSelfRelation } from \"@next-libs/cmdb-utils\";\nimport { DisplaySettingsModalData } from \"../instance-list-table/DisplaySettingsModal\";\nexport interface InstanceListPresetConfigs {\n query?: Record<string, any>;\n fieldIds?: string[];\n}\n\nexport function getQuery(\n modelData: Partial<CmdbModels.ModelCmdbObject>,\n idObjectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>,\n q: string,\n fields?: string[],\n onlySearchByIp?: boolean\n) {\n const query: Record<string, any> = { $or: [] };\n\n const queryValues = q.trim().split(/\\s+/);\n if (onlySearchByIp) {\n query.$or.push({ ip: { $like: `%${q.trim()}%` } });\n return query;\n }\n forEachAvailableFields(\n modelData,\n (attr) => {\n queryValues.forEach((queryValue) =>\n query.$or.push({ [attr.id]: { $like: `%${queryValue}%` } })\n );\n },\n (relation, sides) => {\n const id = relation[`${sides.this}_id` as RelationIdKeys];\n const nameKeys = getInstanceNameKeys(\n idObjectMap[relation[`${sides.that}_object_id` as RelationObjectIdKeys]]\n );\n\n queryValues.forEach((queryValue) => {\n nameKeys.forEach((nameKey) => {\n query.$or.push({\n [`${id}.${nameKey}`]: { $like: `%${queryValue}%` },\n });\n });\n });\n },\n fields\n );\n\n return query;\n}\n\nfunction translateConditions(\n aq: Query[],\n idObjectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>,\n modelData: Partial<CmdbModels.ModelCmdbObject>,\n t?: () => string\n): { attrId: string; condition: string; valuesStr: string }[] {\n const conditions: {\n attrId: string;\n condition: string;\n valuesStr: string;\n }[] = [];\n const relations: any[] = [];\n modelData.relation_list.forEach((relation) => {\n let sidesArr: RelationObjectSides[] = [];\n if (isSelfRelation(relation)) {\n sidesArr = [\n { this: \"left\", that: \"right\" },\n { this: \"right\", that: \"left\" },\n ];\n } else {\n sidesArr = [getRelationObjectSides(relation, modelData)];\n }\n sidesArr.forEach((sides) => {\n const objectId = relation[`${sides.this}_id` as RelationIdKeys];\n const relationObject =\n idObjectMap[\n relation[`${sides.that}_object_id` as RelationObjectIdKeys]\n ];\n const nameKeys = getInstanceNameKeys(relationObject);\n nameKeys.forEach((nameKey) => {\n const nameOfNameKey =\n find(relationObject?.attrList, [\"id\", nameKey])?.name ?? nameKey;\n const id = `${objectId}.${nameKey}`;\n const name = `${\n relation[`${sides.this}_name` as RelationNameKeys]\n }(${nameOfNameKey})`;\n relations.push({\n id,\n name,\n value: { type: \"str\" },\n relationSideId: relation[`${sides.this}_id` as RelationIdKeys],\n });\n });\n relations.push({\n id: `${objectId}.`,\n name: `${relation[`${sides.this}_name` as RelationNameKeys]}`,\n value: { type: \"str\" },\n relationSideId: relation[`${sides.this}_id` as RelationIdKeys],\n });\n });\n });\n const attrAndRelationList = [...modelData.attrList, ...relations];\n if (!isEmpty(aq)) {\n for (const query of aq) {\n let queries: Query[] = [query];\n if (Object.keys(query)[0] === \"$or\" || Object.keys(query)[0] === \"$and\") {\n queries = query[Object.keys(query)[0]] as Query[];\n }\n\n queries.forEach((query) => {\n const key = Object.keys(query)[0];\n const value = Object.values(query)[0];\n let attr = attrAndRelationList.find(\n (attr) => attr.id === key || attr.relationSideId === key\n );\n if (\n Object.keys(value)[0] === ElementOperators.Exists &&\n attr.relationSideId\n ) {\n const relationSideId = attr.relationSideId;\n attr =\n attrAndRelationList.find(\n (attr) => attr.id === `${relationSideId}.`\n ) || attr;\n }\n if (attr) {\n query = changeQueryWithCustomRules(\n modelData.objectId,\n attr.id,\n query\n );\n const info = getFieldConditionsAndValues(\n query as any,\n key,\n attr.value.type as ModelAttributeValueType,\n undefined,\n undefined,\n modelData.objectId,\n attr.id\n );\n if (\n ![\n ConditionType.Between,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ConditionType.False,\n ConditionType.True,\n ].includes(info.currentCondition.type)\n ) {\n info.values = info.values.map((v) =>\n isString(v) && v.includes(\" \") ? v.replace(/^\"+|\"+$/g, \"\") : v\n );\n }\n\n let condition = `${attr.name}: ${info.currentCondition.label}`;\n if (\n ![ConditionType.Empty, ConditionType.NotEmpty].includes(\n info.currentCondition.type\n )\n ) {\n condition += `\"${info.values.join(\" ~ \")}\"`;\n }\n const curCondition = {\n attrId: key,\n condition,\n valuesStr: info.queryValuesStr,\n };\n if (\n conditions.every(\n (v) => !isEqual(omit(v, \"attrId\"), omit(curCondition, \"attrId\"))\n )\n ) {\n conditions.push(curCondition);\n }\n }\n });\n }\n }\n\n return conditions;\n}\n\nfunction newKey(fieldIds: string[], aq: Query[]): string {\n let key = \"\";\n if (!isEmpty(fieldIds)) {\n key += fieldIds.join(\"-\");\n }\n if (!isEmpty(aq)) {\n key += `-${aq.length}`;\n }\n return key;\n}\nconst isOfStruct = (\n modelData: Partial<CmdbModels.ModelCmdbObject>,\n fieldId: string\n) => {\n const structFields = modelData.attrList\n .filter(\n (attr: Partial<ModelObjectAttr>) =>\n attr.value.type === \"struct\" || attr.value.type === \"structs\"\n )\n ?.map((attr) => {\n const structs: string[] = [];\n attr.value.struct_define.forEach((struct) => {\n structs.push(`${attr.id}.${struct.id}`);\n });\n return structs;\n })\n .flat();\n return structFields.includes(fieldId);\n};\nexport const initAqToShow = (\n aq: Query[],\n modelData: Partial<CmdbModels.ModelCmdbObject>\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 structQueries: Record<string, any> = (\n expressions as Query[]\n ).filter((expression) => Object.keys(expression)[0] === fieldId);\n if (isStruct) {\n const structExpressions = structQueries.map((item: any) => ({\n [fieldId.split(\".\")[0]]: item[fieldId],\n }));\n newExpressions = [...newExpressions, ...structExpressions];\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 moreButtonsDisabled?: boolean;\n aliveHosts?: boolean;\n fixAliveHosts?: boolean;\n aliveHostsDisabled?: boolean;\n propertyDisplayConfigs?: PropertyDisplayConfig[];\n selectedRowKeys?: string[];\n selectDisabled?: boolean;\n pageSizeOptions?: string[];\n showSizeChanger?: boolean;\n filterInstanceSourceDisabled?: boolean;\n instanceSourceQuery?: string;\n 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 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 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}\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}\n\nexport function InstanceList(props: InstanceListProps): React.ReactElement {\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\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 = union(object.attrList, extraFieldAttrs);\n }\n });\n\n return { modelData, idObjectMap };\n }, [props.objectList, props.objectId]);\n\n const [inheritanceModelIdNameMap, setInheritanceModelIdNameMap] = useState<\n Record<string, string>\n >({});\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 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[] =\n settings.defaultFields[modelData.objectId] ||\n difference(uniq(map(modelData.attrList, \"id\")), ignoredFields).slice(\n 0,\n inModal ? MAX_DEFAULT_MODAL_FIELDS_COUNT : MAX_DEFAULT_FIELDS_COUNT\n );\n const hideModelData: string[] = modelData.view.hide_columns || [];\n fieldIds = fieldIds.filter((field) => !hideModelData.includes(field));\n return { fieldIds };\n };\n\n // 根据用户预定义的 presetConfigs.fieldIds 进行排序,如果不在预定义的字段,则根据 modelData.view.attr_order 进行排序\n const _sortFieldIds = (fieldIds: any[]) => {\n let frontFields: any[] = [];\n let restFields: any[] = [];\n if (props.presetConfigs?.fieldIds) {\n frontFields = filter(props.presetConfigs.fieldIds, (id) =>\n fieldIds.includes(id)\n );\n }\n restFields = sortBy(\n reject(fieldIds, (id) => frontFields.includes(id)),\n (fieldId) => {\n const foundIndex = findIndex(\n modelData.view.attr_order,\n (orderId) => orderId === fieldId\n );\n if (foundIndex === -1) {\n return null;\n } else {\n return foundIndex;\n }\n }\n );\n return [...frontFields, ...restFields];\n };\n\n const getFields = () => {\n let fieldIds = props.presetConfigs?.fieldIds;\n if (isEmpty(fieldIds)) {\n fieldIds = jsonLocalStorage.getItem(\n `${modelData.objectId}-selectAttrIds`\n );\n }\n\n if (isEmpty(fieldIds)) {\n fieldIds = computeDefaultFields().fieldIds;\n }\n fieldIds = props.extraDisabledField\n ? uniq([...fieldIds, props.extraDisabledField])\n : fieldIds;\n fieldIds = _sortFieldIds(fieldIds);\n const hideModelData: string[] = modelData.view.hide_columns || [];\n fieldIds = fieldIds.filter((field) => !hideModelData.includes(field));\n modelData.isAbstract && fieldIds.push(\"_object_id\");\n return fieldIds;\n };\n\n const [q, setQ] = useState(props.q);\n const [state, setState] = useReducer(reducer, undefined, () => ({\n objectId: props.objectId,\n q: props.q,\n aq: props.aq,\n aqToShow: props.aqToShow || initAqToShow(props.aq, modelData),\n instanceSourceQuery: props.instanceSourceQuery,\n asc: props.asc,\n sort: props.sort,\n page: props.dataSource?.page ?? props.page ?? 1,\n pageSize: props.dataSource?.pageSize ?? props.pageSize ?? 10,\n aliveHosts: props.aliveHosts,\n relatedToMe: props.relatedToMe,\n inited: false,\n loading: false,\n failed: false,\n isAdvancedSearchVisible: false,\n fieldIds: getFields(),\n autoBreakLine: false,\n appSearchInstanceId: \"\",\n currentChangeSelect: \"App\",\n appSelectValue: \"\",\n clusterValue: \"all\",\n appList: [],\n clusterList: [\n {\n instanceId: \"all\",\n name: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.ALL_CLUSTER}`),\n },\n ],\n searchByApp: false,\n }));\n const [selectedRowKeys, setSelectedRowKeys] = useState(\n props.selectedRowKeys ?? []\n );\n const cache = useRef(new Map<string, InstanceApi_PostSearchV3ResponseBody>());\n const isFirstRunRef = useRef(true);\n\n const getInstanceListData = async (\n sort: string,\n asc: boolean,\n page: number\n ): Promise<InstanceApi_PostSearchV3ResponseBody> => {\n const data: InstanceApi_PostSearchRequestBody = {};\n const v3Data: InstanceApi_PostSearchV3RequestBody = {\n fields: [\"instanceId\"],\n };\n if (!isEmpty(props.permission)) {\n v3Data.permission = data.permission = props.permission;\n }\n\n let query: Record<string, any> = {};\n\n v3Data.page = data.page = page;\n v3Data[\"page_size\"] = data[\"page_size\"] = state.pageSize;\n const sortType = modelData?.attrList?.find((attr) => attr.id === sort)\n ?.value?.default_type;\n const order = [\"series-number\", \"auto-increment-id\"].includes(sortType)\n ? asc\n ? 2\n : -2\n : asc\n ? 1\n : -1;\n if (sort) {\n data.sort = { [sort]: order };\n v3Data.sort = [{ key: sort, order }];\n }\n\n if (state.q) {\n query = getQuery(\n modelData,\n idObjectMap,\n state.q,\n state.fieldIds,\n props.onlySearchByIp\n );\n }\n\n if (!isEmpty(state.aq)) {\n query[LogicalOperators.And] = state.aq;\n }\n\n if (!isEmpty(props.defaultQuery)) {\n query[LogicalOperators.And] = [\n ...(query[LogicalOperators.And] || []),\n ...props.defaultQuery,\n ];\n }\n if (props.presetConfigs) {\n if (!isEmpty(props.presetConfigs.query)) {\n if (query) {\n query = {\n $and: [query, props.presetConfigs.query],\n };\n } else {\n query = props.presetConfigs.query;\n }\n }\n }\n if (state.fieldIds) {\n data.fields = Object.fromEntries(\n state.fieldIds.map((fieldId) => [fieldId, true])\n );\n v3Data.fields = [...state.fieldIds, ...v3Data.fields];\n (v3Data as any).ignore_missing_field_error = true;\n }\n if (state.aliveHosts && props.objectId === \"HOST\") {\n query = { ...query, _agentStatus: \"正常\" };\n }\n if (state.instanceSourceQuery) {\n query = { ...query, _object_id: state.instanceSourceQuery };\n }\n\n if (!isEmpty(query)) {\n v3Data.query = data.query = query;\n }\n\n if (state.relatedToMe) {\n v3Data.only_my_instance = data.only_my_instance = state.relatedToMe;\n }\n //按应用筛选\n // istanbul ignore next (state is not updated)\n if (state.searchByApp) {\n v3Data.query = {\n [state.currentChangeSelect === \"App\" ||\n (state.currentChangeSelect === \"Cluster\" &&\n state.clusterValue === \"all\")\n ? \"_deviceList_CLUSTER.appId.instanceId\"\n : \"_deviceList_CLUSTER.instanceId\"]: state.appSearchInstanceId,\n ...(state.aliveHosts && props.objectId === \"HOST\"\n ? { _agentStatus: \"正常\" }\n : {}),\n };\n }\n const promise = props.onSearchExecute?.(data, v3Data);\n\n return promise ? promise : 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 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 }\n } catch (e) {\n handleHttpError(e);\n setState({ failed: true });\n } finally {\n setState({ inited: true, loading: false });\n }\n };\n\n useEffect(() => {\n const fieldIds = getFields();\n if (\n // 当 props.objectId 改变时,总是更新 state.fieldIds\n props.objectId !== state.objectId ||\n !isEqual(fieldIds, state.fieldIds)\n ) {\n setState({\n fieldIds,\n });\n }\n }, [props.objectId, props.presetConfigs]);\n\n useEffect(() => {\n setSelectedRowKeys(props.selectedRowKeys ?? []);\n }, [props.objectId, props.selectedRowKeys]);\n\n // on filter condition change\n useEffect(() => {\n if (isFirstRunRef.current) {\n isFirstRunRef.current = false;\n return;\n }\n\n let skip = false;\n\n if (state.page !== 1) {\n setState({ page: 1 });\n props.onPaginationChange?.({ page: 1, pageSize: state.pageSize });\n skip = true;\n }\n\n // 当 prop.objectId 改变时先跳过,等 state.fieldIds 更新后再获取数据\n if (props.objectId !== state.objectId) {\n setState({ objectId: props.objectId });\n skip = true;\n }\n\n if (skip) {\n return;\n }\n\n refreshInstanceList(state.sort, state.asc, 1);\n }, [\n state.q,\n state.aq,\n state.instanceSourceQuery,\n state.pageSize,\n state.aliveHosts,\n state.relatedToMe,\n props.objectId,\n props.permission,\n props.defaultQuery,\n ]);\n\n // on other condition change\n useEffect(() => {\n if (isEmpty(state.fieldIds)) return;\n\n refreshInstanceList(state.sort, state.asc, state.page);\n }, [\n state.page,\n state.sort,\n state.asc,\n state.fieldIds,\n state.appSearchInstanceId,\n state.currentChangeSelect,\n state.searchByApp,\n props.dataSource,\n ]);\n\n const onChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setQ(e.target.value);\n };\n\n // istanbul ignore next\n const onSelectionChange = async (selected: {\n selectedKeys: string[];\n selectedItems: any[];\n }) => {\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 const resp = await InstanceApi_postSearchV3(props.objectId, {\n fields: [\"instanceId\"],\n query: {\n instanceId: {\n $in: ids,\n },\n },\n page_size: ids.length,\n });\n resp.list.forEach((i) => cache.current.set(i.instanceId, i));\n }\n selectedItems = selectedKeys.map((id) => cache.current.get(id));\n }\n props.onSelectionChange?.({ selectedItems, selectedKeys });\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 = (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\n const onPaginationChange = (pagination: ReadPaginationChangeDetail) => {\n setState({ page: pagination.page, pageSize: pagination.pageSize });\n props.onPaginationChange?.(pagination);\n };\n\n const onInstanceSourceChange = (instanceSourceQuery: string) => {\n setState({ instanceSourceQuery });\n props.onInstanceSourceChange?.(instanceSourceQuery);\n };\n\n const onRelatedToMeChange = (checked: boolean) => {\n setState({ relatedToMe: checked });\n props.onRelatedToMeChange?.(checked);\n };\n\n const onAliveHostsChange = (checked: boolean) => {\n setState({ aliveHosts: checked });\n props.onAliveHostsChange?.(checked);\n };\n\n const toggleAutoBreakLine = (autoBreakLine: boolean) => {\n setState({ autoBreakLine });\n };\n // istanbul ignore next (state is not updated)\n const toggleSearchMode = React.useCallback(async () => {\n if (!state.searchByApp) {\n const appListResp = await InstanceApi_postSearchV3(\"APP\", {\n fields: [\"clusters\", \"instanceId\", \"name\"],\n sort: [{ key: \"name\", order: 1 }],\n page: 1,\n page_size: 3000,\n });\n setState({\n appSearchInstanceId: appListResp.list?.[0].instanceId || \"\",\n appList: appListResp.list,\n clusterList: [...baseList, ...(appListResp.list?.[0].clusters || [])],\n searchByApp: true,\n appSelectValue: appListResp.list?.[0].instanceId || \"\",\n clusterValue: \"all\",\n });\n } else {\n setState({ searchByApp: false });\n }\n }, [state.searchByApp]);\n // istanbul ignore next (state is not updated)\n const appSelectChange = (v: string) => {\n setState({\n appSearchInstanceId: v,\n currentChangeSelect: \"App\",\n appSelectValue: v,\n clusterValue: \"all\",\n clusterList: [\n ...baseList,\n ...state.appList.find((r) => r.instanceId === v).clusters,\n ],\n });\n };\n // istanbul ignore next (state is not updated)\n const clusterSelectChange = (v: string) => {\n setState({\n appSearchInstanceId: v === \"all\" ? state.appSelectValue : v,\n currentChangeSelect: \"Cluster\",\n clusterValue: v,\n });\n };\n const defaultFields = useMemo(() => {\n let defaultFields: string[];\n if (!isEmpty(props.presetConfigs?.fieldIds)) {\n defaultFields = props.presetConfigs.fieldIds;\n } else {\n defaultFields = computeDefaultFields().fieldIds;\n }\n return defaultFields;\n }, [props.presetConfigs, modelData]);\n\n // istanbul ignore next\n const handleConfirm = ({ fields, isReset }: DisplaySettingsModalData) => {\n if (isReset) {\n const fieldIds = defaultFields;\n modelData.isAbstract && fieldIds.push(\"_object_id\");\n setState({ fieldIds });\n jsonLocalStorage.removeItem(`${modelData.objectId}-selectAttrIds`);\n } else {\n setState({\n fieldIds: _sortFieldIds(fields),\n });\n jsonLocalStorage.setItem(`${modelData.objectId}-selectAttrIds`, fields);\n }\n };\n\n useEffect(() => {\n props.notifyCurrentFields?.(state.fieldIds);\n }, [props.notifyCurrentFields]);\n\n // istanbul ignore next\n useEffect(() => {\n props.selectedRowKeys &&\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\n const resp = await InstanceApi_postSearchV3(props.objectId, v3Data);\n resp.list.forEach((i) => cache.current.set(i.instanceId, i));\n })();\n }, [props.selectedRowKeys]);\n\n const onAdvancedSearchCloseGen = (attrId: string, valuesStr: string) => {\n return () => {\n const queries: Query[] = [];\n const queriesToShow: Query[] = [];\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 = (query[key] as Query[]).filter((query) => {\n return Object.values(query[attrId]).join(\" \") !== valuesStr;\n });\n if (filteredSubQueries.length > 0) {\n queries.push({\n [key]: filteredSubQueries,\n });\n }\n } else if (key !== attrId && !startsWith(attrId, `${key}.`)) {\n queries.push(query);\n }\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 = (query[key] as Query[]).filter((query) => {\n return Object.values(query[attrId]).join(\" \") !== valuesStr;\n });\n if (filteredSubQueries.length > 0) {\n queriesToShow.push({\n [key]: filteredSubQueries,\n });\n }\n } else if (key !== attrId) {\n queriesToShow.push(query);\n }\n });\n setState({\n aq: queries,\n aqToShow: queriesToShow,\n });\n props.onAdvancedSearch?.(queries);\n };\n };\n const conditions = translateConditions(\n state.aqToShow,\n idObjectMap,\n modelData\n );\n\n return (\n <Spin spinning={state.loading}>\n {state.inited && !state.failed ? (\n <React.Fragment>\n {(!props.searchDisabled ||\n !props.advancedSearchDisabled ||\n !props.relatedToMeDisabled ||\n !props.aliveHostsDisabled ||\n !props.moreButtonsDisabled) && (\n <div className={styles.instanceListToolbar}>\n <div className={styles.searchRelated}>\n {/* istanbul ignore next (state is not updated) */}\n {!state.searchByApp ? (\n <>\n {!props.searchDisabled && (\n <Input.Search\n enterButton\n value={q}\n onChange={onChange}\n onSearch={onSearch}\n />\n )}\n {!props.advancedSearchDisabled && (\n <Button\n type=\"link\"\n size=\"small\"\n style={{\n marginLeft: \"8px\",\n marginRight: \"auto\",\n }}\n onClick={() =>\n setState({\n isAdvancedSearchVisible:\n !state.isAdvancedSearchVisible,\n })\n }\n data-testid=\"advanced-search-toggle-btn\"\n >\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ADVANCED_SEARCH}`\n )}\n <LegacyIcon\n type={state.isAdvancedSearchVisible ? \"up\" : \"down\"}\n />\n </Button>\n )}\n </>\n ) : (\n <>\n <Select\n style={{ width: \"150px\", marginRight: \"10px\" }}\n value={state.appSelectValue}\n onChange={appSelectChange}\n showSearch={true}\n optionFilterProp=\"children\"\n >\n {state.appList.map((r) => (\n <Select.Option key={r.instanceId} value={r.instanceId}>\n {r.name}\n </Select.Option>\n ))}\n </Select>\n <Select\n style={{ width: \"150px\" }}\n value={state.clusterValue}\n onChange={clusterSelectChange}\n showSearch={true}\n optionFilterProp=\"children\"\n >\n {state.clusterList.map((r) => (\n <Select.Option key={r.instanceId} value={r.instanceId}>\n {r.name}\n </Select.Option>\n ))}\n </Select>\n </>\n )}\n </div>\n <div className={styles.options}>\n {selectedRowKeys.length > 0 && (\n <div style={{ marginRight: 20 }}>\n <span>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CHOSEN_OPTIONS}`, {\n count: selectedRowKeys.length,\n })}\n </span>\n <a\n role=\"button\"\n onClick={() =>\n onSelectionChange({\n selectedKeys: [],\n selectedItems: [],\n })\n }\n >\n {\" \"}\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLEAR}`)}\n </a>\n </div>\n )}\n {props.objectId === \"HOST\" && props.enableSearchByApp && (\n <Button type={\"link\"} onClick={toggleSearchMode}>\n {/* istanbul ignore next (state is not updated) */}\n {state.searchByApp\n ? i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FREE_SELECTION}`)\n : i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.APP_SELECTION}`)}\n </Button>\n )}\n {props.objectId === \"HOST\" && !props.aliveHostsDisabled && (\n <IconButton\n checked={state.aliveHosts}\n onChange={onAliveHostsChange}\n style={{ marginRight: 10 }}\n disabled={props.fixAliveHosts}\n type=\"normalHost\"\n label={i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.NORMAL_HOST}`)}\n data-testid=\"alive-hosts\"\n />\n )}\n {!props.relatedToMeDisabled && (\n <IconButton\n checked={state.relatedToMe}\n onChange={onRelatedToMeChange}\n style={{ marginRight: 10 }}\n type=\"relateToMe\"\n label={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.RELATED_TO_ME}`\n )}\n data-testid=\"related-to-me\"\n />\n )}\n <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 {!props.moreButtonsDisabled && (\n <MoreButtonsContainer\n modelData={modelData}\n onConfirm={handleConfirm}\n fieldIds={state.fieldIds}\n defaultFields={defaultFields}\n extraDisabledField={props.extraDisabledField}\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 />\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 <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 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 separatorUsedInRelationData={props.separatorUsedInRelationData}\n />\n </React.Fragment>\n ) : null}\n </Spin>\n );\n}\n"],"file":"InstanceList.js"}
1
+ {"version":3,"sources":["../../../src/instance-list/InstanceList.tsx"],"names":["React","useEffect","useReducer","useState","useRef","useMemo","difference","isEmpty","isEqual","isString","map","uniq","union","filter","reject","sortBy","uniqueId","findIndex","find","startsWith","compact","omit","BrickAsComponent","handleHttpError","i18n","K","NS_LIBS_CMDB_INSTANCES","InstanceApi_postSearchV3","CmdbObjectApi_getIdMapName","Icon","LegacyIcon","Button","Spin","Input","Tag","Select","getRelationObjectSides","forEachAvailableFields","getInstanceNameKeys","ConditionType","LogicalOperators","AdvancedSearch","getFieldConditionsAndValues","MoreButtonsContainer","InstanceListTable","ElementOperators","styles","extraFieldAttrs","JsonStorage","IconButton","changeQueryWithCustomRules","isSelfRelation","getQuery","modelData","idObjectMap","q","fields","onlySearchByIp","query","$or","queryValues","trim","split","push","ip","$like","attr","forEach","queryValue","id","relation","sides","this","nameKeys","that","nameKey","translateConditions","aq","t","conditions","relations","relation_list","sidesArr","objectId","relationObject","nameOfNameKey","attrList","name","value","type","relationSideId","attrAndRelationList","queries","Object","keys","key","values","Exists","info","undefined","Between","Empty","NotEmpty","False","True","includes","currentCondition","v","replace","condition","label","join","curCondition","attrId","valuesStr","queryValuesStr","every","newKey","fieldIds","length","isOfStruct","fieldId","structFields","structs","struct_define","struct","flat","initAqToShow","newAqToShow","aqToShow","entries","expressions","newExpressions","Or","And","firstSubQuery","isStruct","structQueries","expression","structExpressions","item","InstanceList","props","baseList","instanceId","ALL_CLUSTER","jsonLocalStorage","localStorage","reducer","prevState","updatedProperty","objectList","object","inheritanceModelIdNameMap","setInheritanceModelIdNameMap","fetchInheritanceModelIdNameMap","idNameMap","isAbstract","parentObjectId","computeDefaultFields","inModal","slice","hideModelData","view","hide_columns","field","_sortFieldIds","frontFields","restFields","presetConfigs","foundIndex","attr_order","orderId","getFields","getItem","extraDisabledField","setQ","state","setState","instanceSourceQuery","asc","sort","page","dataSource","pageSize","aliveHosts","relatedToMe","inited","loading","failed","isAdvancedSearchVisible","autoBreakLine","appSearchInstanceId","currentChangeSelect","appSelectValue","clusterValue","appList","clusterList","searchByApp","selectedRowKeys","setSelectedRowKeys","cache","Map","isFirstRunRef","getInstanceListData","data","v3Data","permission","sortType","default_type","order","defaultQuery","$and","fromEntries","ignore_missing_field_error","_agentStatus","_object_id","only_my_instance","promise","onSearchExecute","refreshInstanceList","instanceListData","list","i","current","set","e","skip","onPaginationChange","onChange","target","onSelectionChange","selected","selectedItems","selectedKeys","ids","has","resp","$in","page_size","get","onSearch","onAdvancedSearch","queriesToShow","fieldToShow","onSortingChange","pagination","onInstanceSourceChange","onRelatedToMeChange","checked","onAliveHostsChange","toggleAutoBreakLine","toggleSearchMode","useCallback","appListResp","clusters","appSelectChange","r","clusterSelectChange","defaultFields","handleConfirm","isReset","removeItem","setItem","notifyCurrentFields","onAdvancedSearchCloseGen","filteredSubQueries","searchDisabled","advancedSearchDisabled","relatedToMeDisabled","aliveHostsDisabled","moreButtonsDisabled","instanceListToolbar","searchRelated","marginLeft","marginRight","ADVANCED_SEARCH","width","options","CHOSEN_OPTIONS","count","CLEAR","enableSearchByApp","FREE_SELECTION","APP_SELECTION","fixAliveHosts","NORMAL_HOST","RELATED_TO_ME","DISPLAY_OMITTED_INFORMATION","marginBottom","hideSearchConditions","searchConditions","CURRENT_FILTER_REQUIREMENTS","FUZZY_SEARCH","INSTANCE_SOURCE_TAG_TEXT","extraFilterBricks","useBrick","detailUrlTemplates","selectDisabled","sortDisabled","propertyDisplayConfigs","onClickItem","filterInstanceSourceDisabled","relationLinkDisabled","pageSizeOptions","showSizeChanger","extraColumns","ipCopy","separatorUsedInRelationData"],"mappings":"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","sourcesContent":["import React, { useEffect, useReducer, useState, useRef, useMemo } 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} from \"lodash\";\nimport { BrickAsComponent, handleHttpError } 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} 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} from \"@next-libs/cmdb-utils\";\n\nimport {\n ConditionType,\n LogicalOperators,\n Query,\n AdvancedSearch,\n getFieldConditionsAndValues,\n MoreButtonsContainer,\n InstanceListTable,\n CustomColumn,\n ElementOperators,\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 MAX_DEFAULT_FIELDS_COUNT,\n MAX_DEFAULT_MODAL_FIELDS_COUNT,\n} from \"./constants\";\nimport { JsonStorage } from \"@next-libs/storage\";\nimport { ModelAttributeValueType } from \"../model-attribute-form-control/ModelAttributeFormControl\";\nimport { IconButton } from \"./IconButton\";\nimport { changeQueryWithCustomRules } from \"../processors\";\nimport { ModelObjectAttr } from \"@next-sdk/cmdb-sdk/dist/types/model/cmdb\";\nimport { RelationObjectSides, isSelfRelation } from \"@next-libs/cmdb-utils\";\nimport { DisplaySettingsModalData } from \"../instance-list-table/DisplaySettingsModal\";\nexport interface InstanceListPresetConfigs {\n query?: Record<string, any>;\n fieldIds?: string[];\n}\n\nexport function getQuery(\n modelData: Partial<CmdbModels.ModelCmdbObject>,\n idObjectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>,\n q: string,\n fields?: string[],\n onlySearchByIp?: boolean\n) {\n const query: Record<string, any> = { $or: [] };\n\n const queryValues = q.trim().split(/\\s+/);\n if (onlySearchByIp) {\n query.$or.push({ ip: { $like: `%${q.trim()}%` } });\n return query;\n }\n forEachAvailableFields(\n modelData,\n (attr) => {\n queryValues.forEach((queryValue) =>\n query.$or.push({ [attr.id]: { $like: `%${queryValue}%` } })\n );\n },\n (relation, sides) => {\n const id = relation[`${sides.this}_id` as RelationIdKeys];\n const nameKeys = getInstanceNameKeys(\n idObjectMap[relation[`${sides.that}_object_id` as RelationObjectIdKeys]]\n );\n\n queryValues.forEach((queryValue) => {\n nameKeys.forEach((nameKey) => {\n query.$or.push({\n [`${id}.${nameKey}`]: { $like: `%${queryValue}%` },\n });\n });\n });\n },\n fields\n );\n\n return query;\n}\n\nfunction translateConditions(\n aq: Query[],\n idObjectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>,\n modelData: Partial<CmdbModels.ModelCmdbObject>,\n t?: () => string\n): { attrId: string; condition: string; valuesStr: string }[] {\n const conditions: {\n attrId: string;\n condition: string;\n valuesStr: string;\n }[] = [];\n const relations: any[] = [];\n modelData.relation_list.forEach((relation) => {\n let sidesArr: RelationObjectSides[] = [];\n if (isSelfRelation(relation)) {\n sidesArr = [\n { this: \"left\", that: \"right\" },\n { this: \"right\", that: \"left\" },\n ];\n } else {\n sidesArr = [getRelationObjectSides(relation, modelData)];\n }\n sidesArr.forEach((sides) => {\n const objectId = relation[`${sides.this}_id` as RelationIdKeys];\n const relationObject =\n idObjectMap[\n relation[`${sides.that}_object_id` as RelationObjectIdKeys]\n ];\n const nameKeys = getInstanceNameKeys(relationObject);\n nameKeys.forEach((nameKey) => {\n const nameOfNameKey =\n find(relationObject?.attrList, [\"id\", nameKey])?.name ?? nameKey;\n const id = `${objectId}.${nameKey}`;\n const name = `${\n relation[`${sides.this}_name` as RelationNameKeys]\n }(${nameOfNameKey})`;\n relations.push({\n id,\n name,\n value: { type: \"str\" },\n relationSideId: relation[`${sides.this}_id` as RelationIdKeys],\n });\n });\n relations.push({\n id: `${objectId}.`,\n name: `${relation[`${sides.this}_name` as RelationNameKeys]}`,\n value: { type: \"str\" },\n relationSideId: relation[`${sides.this}_id` as RelationIdKeys],\n });\n });\n });\n const attrAndRelationList = [...modelData.attrList, ...relations];\n if (!isEmpty(aq)) {\n for (const query of aq) {\n let queries: Query[] = [query];\n if (Object.keys(query)[0] === \"$or\" || Object.keys(query)[0] === \"$and\") {\n queries = query[Object.keys(query)[0]] as Query[];\n }\n\n queries.forEach((query) => {\n const key = Object.keys(query)[0];\n const value = Object.values(query)[0];\n let attr = attrAndRelationList.find(\n (attr) => attr.id === key || attr.relationSideId === key\n );\n if (\n Object.keys(value)[0] === ElementOperators.Exists &&\n attr.relationSideId\n ) {\n const relationSideId = attr.relationSideId;\n attr =\n attrAndRelationList.find(\n (attr) => attr.id === `${relationSideId}.`\n ) || attr;\n }\n if (attr) {\n query = changeQueryWithCustomRules(\n modelData.objectId,\n attr.id,\n query\n );\n const info = getFieldConditionsAndValues(\n query as any,\n key,\n attr.value.type as ModelAttributeValueType,\n undefined,\n undefined,\n modelData.objectId,\n attr.id\n );\n if (\n ![\n ConditionType.Between,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ConditionType.False,\n ConditionType.True,\n ].includes(info.currentCondition.type)\n ) {\n info.values = info.values.map((v) =>\n isString(v) && v.includes(\" \") ? v.replace(/^\"+|\"+$/g, \"\") : v\n );\n }\n\n let condition = `${attr.name}: ${info.currentCondition.label}`;\n if (\n ![ConditionType.Empty, ConditionType.NotEmpty].includes(\n info.currentCondition.type\n )\n ) {\n condition += `\"${info.values.join(\" ~ \")}\"`;\n }\n const curCondition = {\n attrId: key,\n condition,\n valuesStr: info.queryValuesStr,\n };\n if (\n conditions.every(\n (v) => !isEqual(omit(v, \"attrId\"), omit(curCondition, \"attrId\"))\n )\n ) {\n conditions.push(curCondition);\n }\n }\n });\n }\n }\n\n return conditions;\n}\n\nfunction newKey(fieldIds: string[], aq: Query[]): string {\n let key = \"\";\n if (!isEmpty(fieldIds)) {\n key += fieldIds.join(\"-\");\n }\n if (!isEmpty(aq)) {\n key += `-${aq.length}`;\n }\n return key;\n}\nconst isOfStruct = (\n modelData: Partial<CmdbModels.ModelCmdbObject>,\n fieldId: string\n) => {\n const structFields = modelData.attrList\n .filter(\n (attr: Partial<ModelObjectAttr>) =>\n attr.value.type === \"struct\" || attr.value.type === \"structs\"\n )\n ?.map((attr) => {\n const structs: string[] = [];\n attr.value.struct_define.forEach((struct) => {\n structs.push(`${attr.id}.${struct.id}`);\n });\n return structs;\n })\n .flat();\n return structFields.includes(fieldId);\n};\nexport const initAqToShow = (\n aq: Query[],\n modelData: Partial<CmdbModels.ModelCmdbObject>\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 structQueries: Record<string, any> = (\n expressions as Query[]\n ).filter((expression) => Object.keys(expression)[0] === fieldId);\n if (isStruct) {\n const structExpressions = structQueries.map((item: any) => ({\n [fieldId.split(\".\")[0]]: item[fieldId],\n }));\n newExpressions = [...newExpressions, ...structExpressions];\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 moreButtonsDisabled?: boolean;\n aliveHosts?: boolean;\n fixAliveHosts?: boolean;\n aliveHostsDisabled?: boolean;\n propertyDisplayConfigs?: PropertyDisplayConfig[];\n selectedRowKeys?: string[];\n selectDisabled?: boolean;\n pageSizeOptions?: string[];\n showSizeChanger?: boolean;\n filterInstanceSourceDisabled?: boolean;\n instanceSourceQuery?: string;\n 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 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 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}\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}\n\nexport function InstanceList(props: InstanceListProps): React.ReactElement {\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\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 = union(object.attrList, extraFieldAttrs);\n }\n });\n\n return { modelData, idObjectMap };\n }, [props.objectList, props.objectId]);\n\n const [inheritanceModelIdNameMap, setInheritanceModelIdNameMap] = useState<\n Record<string, string>\n >({});\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 let fieldIds: string[] = difference(\n uniq(map(modelData.attrList, \"id\"))\n ).slice(0, 8);\n const hideModelData: string[] = modelData.view.hide_columns || [];\n fieldIds = fieldIds.filter((field) => !hideModelData.includes(field));\n return { fieldIds };\n };\n\n // 根据用户预定义的 presetConfigs.fieldIds 进行排序,如果不在预定义的字段,则根据 modelData.view.attr_order 进行排序\n const _sortFieldIds = (fieldIds: any[]) => {\n let frontFields: any[] = [];\n let restFields: any[] = [];\n if (props.presetConfigs?.fieldIds) {\n frontFields = filter(props.presetConfigs.fieldIds, (id) =>\n fieldIds.includes(id)\n );\n }\n restFields = sortBy(\n reject(fieldIds, (id) => frontFields.includes(id)),\n (fieldId) => {\n const foundIndex = findIndex(\n modelData.view.attr_order,\n (orderId) => orderId === fieldId\n );\n if (foundIndex === -1) {\n return null;\n } else {\n return foundIndex;\n }\n }\n );\n return [...frontFields, ...restFields];\n };\n\n const getFields = () => {\n let fieldIds = props.presetConfigs?.fieldIds;\n if (isEmpty(fieldIds)) {\n fieldIds = jsonLocalStorage.getItem(\n `${modelData.objectId}-selectAttrIds`\n );\n }\n\n if (isEmpty(fieldIds)) {\n fieldIds = computeDefaultFields().fieldIds;\n }\n fieldIds = props.extraDisabledField\n ? uniq([...fieldIds, props.extraDisabledField])\n : fieldIds;\n fieldIds = _sortFieldIds(fieldIds);\n const hideModelData: string[] = modelData.view.hide_columns || [];\n fieldIds = fieldIds.filter((field) => !hideModelData.includes(field));\n modelData.isAbstract && fieldIds.push(\"_object_id\");\n return fieldIds;\n };\n\n const [q, setQ] = useState(props.q);\n const [state, setState] = useReducer(reducer, undefined, () => ({\n objectId: props.objectId,\n q: props.q,\n aq: props.aq,\n aqToShow: props.aqToShow || initAqToShow(props.aq, modelData),\n instanceSourceQuery: props.instanceSourceQuery,\n asc: props.asc,\n sort: props.sort,\n page: props.dataSource?.page ?? props.page ?? 1,\n pageSize: props.dataSource?.pageSize ?? props.pageSize ?? 10,\n aliveHosts: props.aliveHosts,\n relatedToMe: props.relatedToMe,\n inited: false,\n loading: false,\n failed: false,\n isAdvancedSearchVisible: false,\n fieldIds: getFields(),\n autoBreakLine: false,\n appSearchInstanceId: \"\",\n currentChangeSelect: \"App\",\n appSelectValue: \"\",\n clusterValue: \"all\",\n appList: [],\n clusterList: [\n {\n instanceId: \"all\",\n name: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.ALL_CLUSTER}`),\n },\n ],\n searchByApp: false,\n }));\n const [selectedRowKeys, setSelectedRowKeys] = useState(\n props.selectedRowKeys ?? []\n );\n const cache = useRef(new Map<string, InstanceApi_PostSearchV3ResponseBody>());\n const isFirstRunRef = useRef(true);\n\n const getInstanceListData = async (\n sort: string,\n asc: boolean,\n page: number\n ): Promise<InstanceApi_PostSearchV3ResponseBody> => {\n const data: InstanceApi_PostSearchRequestBody = {};\n const v3Data: InstanceApi_PostSearchV3RequestBody = {\n fields: [\"instanceId\"],\n };\n if (!isEmpty(props.permission)) {\n v3Data.permission = data.permission = props.permission;\n }\n\n let query: Record<string, any> = {};\n\n v3Data.page = data.page = page;\n v3Data[\"page_size\"] = data[\"page_size\"] = state.pageSize;\n const sortType = modelData?.attrList?.find((attr) => attr.id === sort)\n ?.value?.default_type;\n const order = [\"series-number\", \"auto-increment-id\"].includes(sortType)\n ? asc\n ? 2\n : -2\n : asc\n ? 1\n : -1;\n if (sort) {\n data.sort = { [sort]: order };\n v3Data.sort = [{ key: sort, order }];\n }\n\n if (state.q) {\n query = getQuery(\n modelData,\n idObjectMap,\n state.q,\n state.fieldIds,\n props.onlySearchByIp\n );\n }\n\n if (!isEmpty(state.aq)) {\n query[LogicalOperators.And] = state.aq;\n }\n\n if (!isEmpty(props.defaultQuery)) {\n query[LogicalOperators.And] = [\n ...(query[LogicalOperators.And] || []),\n ...props.defaultQuery,\n ];\n }\n if (props.presetConfigs) {\n if (!isEmpty(props.presetConfigs.query)) {\n if (query) {\n query = {\n $and: [query, props.presetConfigs.query],\n };\n } else {\n query = props.presetConfigs.query;\n }\n }\n }\n if (state.fieldIds) {\n data.fields = Object.fromEntries(\n state.fieldIds.map((fieldId) => [fieldId, true])\n );\n v3Data.fields = [...state.fieldIds, ...v3Data.fields];\n (v3Data as any).ignore_missing_field_error = true;\n }\n if (state.aliveHosts && props.objectId === \"HOST\") {\n query = { ...query, _agentStatus: \"正常\" };\n }\n if (state.instanceSourceQuery) {\n query = { ...query, _object_id: state.instanceSourceQuery };\n }\n\n if (!isEmpty(query)) {\n v3Data.query = data.query = query;\n }\n\n if (state.relatedToMe) {\n v3Data.only_my_instance = data.only_my_instance = state.relatedToMe;\n }\n //按应用筛选\n // istanbul ignore next (state is not updated)\n if (state.searchByApp) {\n v3Data.query = {\n [state.currentChangeSelect === \"App\" ||\n (state.currentChangeSelect === \"Cluster\" &&\n state.clusterValue === \"all\")\n ? \"_deviceList_CLUSTER.appId.instanceId\"\n : \"_deviceList_CLUSTER.instanceId\"]: state.appSearchInstanceId,\n ...(state.aliveHosts && props.objectId === \"HOST\"\n ? { _agentStatus: \"正常\" }\n : {}),\n };\n }\n const promise = props.onSearchExecute?.(data, v3Data);\n\n return promise ? promise : 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 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 }\n } catch (e) {\n handleHttpError(e);\n setState({ failed: true });\n } finally {\n setState({ inited: true, loading: false });\n }\n };\n\n useEffect(() => {\n const fieldIds = getFields();\n if (\n // 当 props.objectId 改变时,总是更新 state.fieldIds\n props.objectId !== state.objectId ||\n !isEqual(fieldIds, state.fieldIds)\n ) {\n setState({\n fieldIds,\n });\n }\n }, [props.objectId, props.presetConfigs]);\n\n useEffect(() => {\n setSelectedRowKeys(props.selectedRowKeys ?? []);\n }, [props.objectId, props.selectedRowKeys]);\n\n // on filter condition change\n useEffect(() => {\n if (isFirstRunRef.current) {\n isFirstRunRef.current = false;\n return;\n }\n\n let skip = false;\n\n if (state.page !== 1) {\n setState({ page: 1 });\n props.onPaginationChange?.({ page: 1, pageSize: state.pageSize });\n skip = true;\n }\n\n // 当 prop.objectId 改变时先跳过,等 state.fieldIds 更新后再获取数据\n if (props.objectId !== state.objectId) {\n setState({ objectId: props.objectId });\n skip = true;\n }\n\n if (skip) {\n return;\n }\n\n refreshInstanceList(state.sort, state.asc, 1);\n }, [\n state.q,\n state.aq,\n state.instanceSourceQuery,\n state.pageSize,\n state.aliveHosts,\n state.relatedToMe,\n props.objectId,\n props.permission,\n props.defaultQuery,\n ]);\n\n // on other condition change\n useEffect(() => {\n if (isEmpty(state.fieldIds)) return;\n\n refreshInstanceList(state.sort, state.asc, state.page);\n }, [\n state.page,\n state.sort,\n state.asc,\n state.fieldIds,\n state.appSearchInstanceId,\n state.currentChangeSelect,\n state.searchByApp,\n props.dataSource,\n ]);\n\n const onChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setQ(e.target.value);\n };\n\n // istanbul ignore next\n const onSelectionChange = async (selected: {\n selectedKeys: string[];\n selectedItems: any[];\n }) => {\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 const resp = await InstanceApi_postSearchV3(props.objectId, {\n fields: [\"instanceId\"],\n query: {\n instanceId: {\n $in: ids,\n },\n },\n page_size: ids.length,\n });\n resp.list.forEach((i) => cache.current.set(i.instanceId, i));\n }\n selectedItems = selectedKeys.map((id) => cache.current.get(id));\n }\n props.onSelectionChange?.({ selectedItems, selectedKeys });\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 = (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\n const onPaginationChange = (pagination: ReadPaginationChangeDetail) => {\n setState({ page: pagination.page, pageSize: pagination.pageSize });\n props.onPaginationChange?.(pagination);\n };\n\n const onInstanceSourceChange = (instanceSourceQuery: string) => {\n setState({ instanceSourceQuery });\n props.onInstanceSourceChange?.(instanceSourceQuery);\n };\n\n const onRelatedToMeChange = (checked: boolean) => {\n setState({ relatedToMe: checked });\n props.onRelatedToMeChange?.(checked);\n };\n\n const onAliveHostsChange = (checked: boolean) => {\n setState({ aliveHosts: checked });\n props.onAliveHostsChange?.(checked);\n };\n\n const toggleAutoBreakLine = (autoBreakLine: boolean) => {\n setState({ autoBreakLine });\n };\n // istanbul ignore next (state is not updated)\n const toggleSearchMode = React.useCallback(async () => {\n if (!state.searchByApp) {\n const appListResp = await InstanceApi_postSearchV3(\"APP\", {\n fields: [\"clusters\", \"instanceId\", \"name\"],\n sort: [{ key: \"name\", order: 1 }],\n page: 1,\n page_size: 3000,\n });\n setState({\n appSearchInstanceId: appListResp.list?.[0].instanceId || \"\",\n appList: appListResp.list,\n clusterList: [...baseList, ...(appListResp.list?.[0].clusters || [])],\n searchByApp: true,\n appSelectValue: appListResp.list?.[0].instanceId || \"\",\n clusterValue: \"all\",\n });\n } else {\n setState({ searchByApp: false });\n }\n }, [state.searchByApp]);\n // istanbul ignore next (state is not updated)\n const appSelectChange = (v: string) => {\n setState({\n appSearchInstanceId: v,\n currentChangeSelect: \"App\",\n appSelectValue: v,\n clusterValue: \"all\",\n clusterList: [\n ...baseList,\n ...state.appList.find((r) => r.instanceId === v).clusters,\n ],\n });\n };\n // istanbul ignore next (state is not updated)\n const clusterSelectChange = (v: string) => {\n setState({\n appSearchInstanceId: v === \"all\" ? state.appSelectValue : v,\n currentChangeSelect: \"Cluster\",\n clusterValue: v,\n });\n };\n const defaultFields = useMemo(() => {\n let defaultFields: string[];\n if (!isEmpty(props.presetConfigs?.fieldIds)) {\n defaultFields = props.presetConfigs.fieldIds;\n } else {\n defaultFields = computeDefaultFields().fieldIds;\n }\n return defaultFields;\n }, [props.presetConfigs, modelData]);\n\n // istanbul ignore next\n const handleConfirm = ({ fields, isReset }: DisplaySettingsModalData) => {\n if (isReset) {\n const fieldIds = defaultFields;\n modelData.isAbstract && fieldIds.push(\"_object_id\");\n setState({ fieldIds });\n jsonLocalStorage.removeItem(`${modelData.objectId}-selectAttrIds`);\n } else {\n setState({\n fieldIds: _sortFieldIds(fields),\n });\n jsonLocalStorage.setItem(`${modelData.objectId}-selectAttrIds`, fields);\n }\n };\n\n useEffect(() => {\n props.notifyCurrentFields?.(state.fieldIds);\n }, [props.notifyCurrentFields]);\n\n // istanbul ignore next\n useEffect(() => {\n props.selectedRowKeys &&\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\n const resp = await InstanceApi_postSearchV3(props.objectId, v3Data);\n resp.list.forEach((i) => cache.current.set(i.instanceId, i));\n })();\n }, [props.selectedRowKeys]);\n\n const onAdvancedSearchCloseGen = (attrId: string, valuesStr: string) => {\n return () => {\n const queries: Query[] = [];\n const queriesToShow: Query[] = [];\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 = (query[key] as Query[]).filter((query) => {\n return Object.values(query[attrId]).join(\" \") !== valuesStr;\n });\n if (filteredSubQueries.length > 0) {\n queries.push({\n [key]: filteredSubQueries,\n });\n }\n } else if (key !== attrId && !startsWith(attrId, `${key}.`)) {\n queries.push(query);\n }\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 = (query[key] as Query[]).filter((query) => {\n return Object.values(query[attrId]).join(\" \") !== valuesStr;\n });\n if (filteredSubQueries.length > 0) {\n queriesToShow.push({\n [key]: filteredSubQueries,\n });\n }\n } else if (key !== attrId) {\n queriesToShow.push(query);\n }\n });\n setState({\n aq: queries,\n aqToShow: queriesToShow,\n });\n props.onAdvancedSearch?.(queries);\n };\n };\n const conditions = translateConditions(\n state.aqToShow,\n idObjectMap,\n modelData\n );\n\n return (\n <Spin spinning={state.loading}>\n {state.inited && !state.failed ? (\n <React.Fragment>\n {(!props.searchDisabled ||\n !props.advancedSearchDisabled ||\n !props.relatedToMeDisabled ||\n !props.aliveHostsDisabled ||\n !props.moreButtonsDisabled) && (\n <div className={styles.instanceListToolbar}>\n <div className={styles.searchRelated}>\n {/* istanbul ignore next (state is not updated) */}\n {!state.searchByApp ? (\n <>\n {!props.searchDisabled && (\n <Input.Search\n enterButton\n value={q}\n onChange={onChange}\n onSearch={onSearch}\n />\n )}\n {!props.advancedSearchDisabled && (\n <Button\n type=\"link\"\n size=\"small\"\n style={{\n marginLeft: \"8px\",\n marginRight: \"auto\",\n }}\n onClick={() =>\n setState({\n isAdvancedSearchVisible:\n !state.isAdvancedSearchVisible,\n })\n }\n data-testid=\"advanced-search-toggle-btn\"\n >\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ADVANCED_SEARCH}`\n )}\n <LegacyIcon\n type={state.isAdvancedSearchVisible ? \"up\" : \"down\"}\n />\n </Button>\n )}\n </>\n ) : (\n <>\n <Select\n style={{ width: \"150px\", marginRight: \"10px\" }}\n value={state.appSelectValue}\n onChange={appSelectChange}\n showSearch={true}\n optionFilterProp=\"children\"\n >\n {state.appList.map((r) => (\n <Select.Option key={r.instanceId} value={r.instanceId}>\n {r.name}\n </Select.Option>\n ))}\n </Select>\n <Select\n style={{ width: \"150px\" }}\n value={state.clusterValue}\n onChange={clusterSelectChange}\n showSearch={true}\n optionFilterProp=\"children\"\n >\n {state.clusterList.map((r) => (\n <Select.Option key={r.instanceId} value={r.instanceId}>\n {r.name}\n </Select.Option>\n ))}\n </Select>\n </>\n )}\n </div>\n <div className={styles.options}>\n {selectedRowKeys.length > 0 && (\n <div style={{ marginRight: 20 }}>\n <span>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CHOSEN_OPTIONS}`, {\n count: selectedRowKeys.length,\n })}\n </span>\n <a\n role=\"button\"\n onClick={() =>\n onSelectionChange({\n selectedKeys: [],\n selectedItems: [],\n })\n }\n >\n {\" \"}\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLEAR}`)}\n </a>\n </div>\n )}\n {props.objectId === \"HOST\" && props.enableSearchByApp && (\n <Button type={\"link\"} onClick={toggleSearchMode}>\n {/* istanbul ignore next (state is not updated) */}\n {state.searchByApp\n ? i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FREE_SELECTION}`)\n : i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.APP_SELECTION}`)}\n </Button>\n )}\n {props.objectId === \"HOST\" && !props.aliveHostsDisabled && (\n <IconButton\n checked={state.aliveHosts}\n onChange={onAliveHostsChange}\n style={{ marginRight: 10 }}\n disabled={props.fixAliveHosts}\n type=\"normalHost\"\n label={i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.NORMAL_HOST}`)}\n data-testid=\"alive-hosts\"\n />\n )}\n {!props.relatedToMeDisabled && (\n <IconButton\n checked={state.relatedToMe}\n onChange={onRelatedToMeChange}\n style={{ marginRight: 10 }}\n type=\"relateToMe\"\n label={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.RELATED_TO_ME}`\n )}\n data-testid=\"related-to-me\"\n />\n )}\n <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 {!props.moreButtonsDisabled && (\n <MoreButtonsContainer\n modelData={modelData}\n onConfirm={handleConfirm}\n fieldIds={state.fieldIds}\n defaultFields={defaultFields}\n extraDisabledField={props.extraDisabledField}\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 />\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 <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 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 separatorUsedInRelationData={props.separatorUsedInRelationData}\n />\n </React.Fragment>\n ) : null}\n </Spin>\n );\n}\n"],"file":"InstanceList.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@next-libs/cmdb-instances",
3
- "version": "6.12.3",
3
+ "version": "6.12.4",
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": "df01b03f22bc845110c85f58dabbc315cfd7c1d8"
53
+ "gitHead": "cb69bcc93f1483e77e3cac8bab6736d59262257d"
54
54
  }