@next-libs/cmdb-instances 6.19.6 → 6.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/dist/cjs/cmdb-instances-select-panel/CmdbInstancesSelectPanel.js +3 -1
  3. package/dist/cjs/cmdb-instances-select-panel/CmdbInstancesSelectPanel.js.map +1 -1
  4. package/dist/cjs/instance-list/InstanceList.js +3 -7
  5. package/dist/cjs/instance-list/InstanceList.js.map +1 -1
  6. package/dist/cjs/instance-list-table/DisplaySettings.js +11 -4
  7. package/dist/cjs/instance-list-table/DisplaySettings.js.map +1 -1
  8. package/dist/cjs/instance-list-table/DisplaySettingsModal.js +4 -2
  9. package/dist/cjs/instance-list-table/DisplaySettingsModal.js.map +1 -1
  10. package/dist/cjs/instance-list-table/index.js +13 -0
  11. package/dist/cjs/instance-list-table/index.js.map +1 -1
  12. package/dist/esm/cmdb-instances-select-panel/CmdbInstancesSelectPanel.js +3 -1
  13. package/dist/esm/cmdb-instances-select-panel/CmdbInstancesSelectPanel.js.map +1 -1
  14. package/dist/esm/instance-list/InstanceList.js +3 -7
  15. package/dist/esm/instance-list/InstanceList.js.map +1 -1
  16. package/dist/esm/instance-list-table/DisplaySettings.js +11 -4
  17. package/dist/esm/instance-list-table/DisplaySettings.js.map +1 -1
  18. package/dist/esm/instance-list-table/DisplaySettingsModal.js +4 -2
  19. package/dist/esm/instance-list-table/DisplaySettingsModal.js.map +1 -1
  20. package/dist/esm/instance-list-table/index.js +1 -0
  21. package/dist/esm/instance-list-table/index.js.map +1 -1
  22. package/dist/types/cmdb-instances-select-panel/CmdbInstancesSelectPanel.d.ts +2 -0
  23. package/dist/types/instance-list-table/DisplaySettings.d.ts +2 -0
  24. package/dist/types/instance-list-table/index.d.ts +1 -0
  25. package/package.json +3 -3
@@ -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","keyBy","BrickAsComponent","handleHttpError","i18n","K","NS_LIBS_CMDB_INSTANCES","InstanceApi_postSearchV3","CmdbObjectApi_getIdMapName","Icon","LegacyIcon","Button","Spin","Input","Tag","Select","getRelationObjectSides","forEachAvailableFields","getInstanceNameKeys","isSelfRelation","ConditionType","LogicalOperators","AdvancedSearch","getFieldConditionsAndValues","MoreButtonsContainer","InstanceListTable","ElementOperators","styles","extraFieldAttrs","JsonStorage","ModelAttributeValueType","IconButton","changeQueryWithCustomRules","getQuery","modelData","idObjectMap","q","fields","onlySearchByIp","query","$or","queryValues","trim","split","push","ip","$like","attr","forEach","queryValue","id","relation","sides","this","nameKeys","that","nameKey","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","isOfBoolean","keyAttrMap","BOOLEAN","initAqToShow","isToShow","newAqToShow","aqToShow","entries","expressions","newExpressions","Or","And","firstSubQuery","isStruct","isBool","structQueries","expression","structExpressions","item","boolExpressions","targetValue","InstanceList","props","baseList","instanceId","ALL_CLUSTER","jsonLocalStorage","localStorage","reducer","prevState","updatedProperty","objectList","object","disabledDefaultFields","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","left_object_id","right_object_id","left_id","right_id","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","hideInstanceList","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","showHiddenInfoDisabled","DISPLAY_OMITTED_INFORMATION","marginBottom","autoSearch","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 keyBy,\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 RelationObjectSides,\n isSelfRelation,\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 Field,\n ComparisonOperators,\n} from \"../instance-list-table\";\nimport styles from \"./InstanceList.module.css\";\nimport { extraFieldAttrs } 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 { 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};\n\nconst isOfBoolean = (\n attrList: Partial<CmdbModels.ModelObjectAttr>[],\n fieldId: string\n): boolean => {\n const keyAttrMap = keyBy(attrList, \"id\");\n return keyAttrMap[fieldId]?.value.type === ModelAttributeValueType.BOOLEAN;\n};\n\nexport const initAqToShow = (\n aq: Query[],\n modelData: Partial<CmdbModels.ModelCmdbObject>,\n isToShow = true\n) => {\n let newAqToShow: any[] = [];\n if (aq) {\n aq.forEach((query) => {\n const aqToShow = Object.entries(query).map(([key, expressions]) => {\n let newExpressions: any[] = [];\n if (key === LogicalOperators.Or || key === LogicalOperators.And) {\n const firstSubQuery = (expressions as Query[])[0];\n const fieldId = Object.keys(firstSubQuery)[0];\n const isStruct = isOfStruct(modelData, fieldId);\n const isBool = isOfBoolean(modelData.attrList, fieldId);\n const structQueries: Record<string, any> = (\n expressions as Query[]\n ).filter((expression) => Object.keys(expression)[0] === fieldId);\n if (isStruct && isToShow) {\n const structExpressions = structQueries.map((item: any) => ({\n [fieldId.split(\".\")[0]]: item[fieldId],\n }));\n newExpressions = [...newExpressions, ...structExpressions];\n } else if (isBool && !isToShow) {\n const boolExpressions = (expressions as Query[]).map(\n (expression) => {\n const targetValue = expression[fieldId] as Record<\n ComparisonOperators,\n any\n >;\n if (typeof Object.values(targetValue)[0] === \"string\") {\n return {\n [fieldId]: {\n [Object.keys(targetValue)[0]]:\n Object.values(targetValue)[0] === \"true\",\n },\n };\n } else {\n return expression;\n }\n }\n );\n newExpressions = [...newExpressions, ...boolExpressions];\n } else {\n newExpressions = [...newExpressions, ...(expressions as Query[])];\n }\n return { [key]: newExpressions };\n } else {\n return query;\n }\n });\n newAqToShow = [...newAqToShow, ...aqToShow];\n });\n return newAqToShow;\n }\n return;\n};\n\ninterface InstanceListProps {\n objectId: string;\n objectList: Partial<CmdbModels.ModelCmdbObject>[];\n detailUrlTemplates?: Record<string, string>;\n presetConfigs?: InstanceListPresetConfigs;\n permission?: string[];\n q?: string;\n searchDisabled?: boolean;\n sortDisabled?: boolean;\n aq?: Query[];\n aqToShow?: Query[];\n advancedSearchDisabled?: boolean;\n page?: number;\n pageSize?: number;\n sort?: string;\n asc?: boolean;\n relatedToMe?: boolean;\n relatedToMeDisabled?: boolean;\n showHiddenInfoDisabled?: boolean;\n moreButtonsDisabled?: boolean;\n aliveHosts?: boolean;\n fixAliveHosts?: boolean;\n aliveHostsDisabled?: boolean;\n propertyDisplayConfigs?: PropertyDisplayConfig[];\n selectedRowKeys?: string[];\n selectDisabled?: boolean;\n pageSizeOptions?: string[];\n showSizeChanger?: boolean;\n filterInstanceSourceDisabled?: boolean;\n instanceSourceQuery?: string;\n 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 hideInstanceList?: boolean;\n autoSearch?: (fields: Field[]) => void;\n disabledDefaultFields?: boolean;\n}\n\ninterface InstanceListState {\n objectId: string;\n q: string;\n aq: Query[];\n aqToShow?: Query[];\n instanceSourceQuery: string;\n asc: boolean;\n sort: string;\n page: number;\n pageSize: number;\n aliveHosts: boolean;\n relatedToMe: boolean;\n inited: boolean;\n loading: boolean;\n failed: boolean;\n idObjectMap?: Record<string, Partial<CmdbModels.ModelCmdbObject>>;\n instanceListData?: InstanceApi_PostSearchV3ResponseBody;\n isAdvancedSearchVisible: boolean;\n fieldIds: string[];\n autoBreakLine: boolean;\n fieldToShow?: Record<string, any[]>[];\n appSearchInstanceId?: string;\n currentChangeSelect?: string;\n appSelectValue?: string;\n clusterValue?: string;\n appList?: Record<string, any>[];\n clusterList?: Record<string, any>[];\n searchByApp?: boolean;\n}\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 = !props.disabledDefaultFields\n ? union(object.attrList, extraFieldAttrs)\n : object.attrList;\n }\n });\n\n return { modelData, idObjectMap };\n }, [props.objectList, props.objectId]);\n\n const [inheritanceModelIdNameMap, setInheritanceModelIdNameMap] = useState<\n Record<string, string>\n >({});\n\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(\n (field) =>\n !hideModelData.includes(field) &&\n (modelData.attrList?.find((attr) => attr.id === field) ||\n modelData.relation_list?.find((relation) =>\n relation.left_object_id === relation.right_object_id\n ? [relation.left_id, relation.right_id].includes(field)\n : field ===\n (relation.left_object_id === modelData.objectId\n ? relation.left_id\n : relation.right_id)\n ))\n );\n modelData.isAbstract && fieldIds.push(\"_object_id\");\n return fieldIds;\n };\n\n const [q, setQ] = useState(props.q);\n const [state, setState] = useReducer(reducer, undefined, () => ({\n objectId: props.objectId,\n q: props.q,\n aq: initAqToShow(props.aq, modelData, false),\n aqToShow: props.aqToShow || initAqToShow(props.aq, modelData),\n instanceSourceQuery: props.instanceSourceQuery,\n asc: props.asc,\n sort: props.sort,\n page: props.dataSource?.page ?? props.page ?? 1,\n pageSize: props.dataSource?.pageSize ?? props.pageSize ?? 10,\n aliveHosts: props.aliveHosts,\n relatedToMe: props.relatedToMe,\n inited: false,\n loading: false,\n failed: false,\n isAdvancedSearchVisible: false,\n fieldIds: getFields(),\n autoBreakLine: false,\n appSearchInstanceId: \"\",\n currentChangeSelect: \"App\",\n appSelectValue: \"\",\n clusterValue: \"all\",\n appList: [],\n clusterList: [\n {\n instanceId: \"all\",\n name: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.ALL_CLUSTER}`),\n },\n ],\n searchByApp: false,\n }));\n const [selectedRowKeys, setSelectedRowKeys] = useState(\n props.selectedRowKeys ?? []\n );\n const cache = useRef(new Map<string, InstanceApi_PostSearchV3ResponseBody>());\n const isFirstRunRef = useRef(true);\n\n const getInstanceListData = async (\n sort: string,\n asc: boolean,\n page: number\n ): Promise<InstanceApi_PostSearchV3ResponseBody> => {\n const data: InstanceApi_PostSearchRequestBody = {};\n const v3Data: InstanceApi_PostSearchV3RequestBody = {\n fields: [\"instanceId\"],\n };\n if (!isEmpty(props.permission)) {\n v3Data.permission = data.permission = props.permission;\n }\n\n let query: Record<string, any> = {};\n\n v3Data.page = data.page = page;\n v3Data[\"page_size\"] = data[\"page_size\"] = state.pageSize;\n const sortType = modelData?.attrList?.find((attr) => attr.id === sort)\n ?.value?.default_type;\n const order = [\"series-number\", \"auto-increment-id\"].includes(sortType)\n ? asc\n ? 2\n : -2\n : asc\n ? 1\n : -1;\n if (sort) {\n data.sort = { [sort]: order };\n v3Data.sort = [{ key: sort, order }];\n }\n\n if (state.q) {\n query = getQuery(\n modelData,\n idObjectMap,\n state.q,\n state.fieldIds,\n props.onlySearchByIp\n );\n }\n\n if (!isEmpty(state.aq)) {\n query[LogicalOperators.And] = state.aq;\n }\n\n if (!isEmpty(props.defaultQuery)) {\n query[LogicalOperators.And] = [\n ...(query[LogicalOperators.And] || []),\n ...props.defaultQuery,\n ];\n }\n if (props.presetConfigs) {\n if (!isEmpty(props.presetConfigs.query)) {\n if (Object.keys(query).length) {\n query = {\n $and: [query, props.presetConfigs.query],\n };\n } else {\n query = props.presetConfigs.query;\n }\n }\n }\n if (state.fieldIds) {\n data.fields = Object.fromEntries(\n state.fieldIds.map((fieldId) => [fieldId, true])\n );\n v3Data.fields = [...state.fieldIds, ...v3Data.fields];\n (v3Data as any).ignore_missing_field_error = true;\n }\n if (state.aliveHosts && props.objectId === \"HOST\") {\n query = { ...query, _agentStatus: \"正常\" };\n }\n if (state.instanceSourceQuery) {\n query = { ...query, _object_id: state.instanceSourceQuery };\n }\n\n if (!isEmpty(query)) {\n v3Data.query = data.query = query;\n }\n\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 if (!props.hideInstanceList) {\n const instanceListData = await getInstanceListData(sort, asc, page);\n instanceListData.list.forEach((i) =>\n cache.current.set(i.instanceId, i)\n );\n setState({ idObjectMap: idObjectMap, instanceListData });\n } else {\n setState({\n idObjectMap: idObjectMap,\n instanceListData: [] as InstanceApi_PostSearchV3ResponseBody,\n });\n }\n }\n } catch (e) {\n handleHttpError(e);\n setState({ failed: true });\n } finally {\n setState({ inited: true, loading: false });\n }\n };\n\n useEffect(() => {\n const fieldIds = getFields();\n if (\n // 当 props.objectId 改变时,总是更新 state.fieldIds\n props.objectId !== state.objectId ||\n !isEqual(fieldIds, state.fieldIds)\n ) {\n setState({\n fieldIds,\n });\n }\n }, [props.objectId, props.presetConfigs]);\n\n useEffect(() => {\n setSelectedRowKeys(props.selectedRowKeys ?? []);\n }, [props.objectId, props.selectedRowKeys]);\n\n // on filter condition change\n useEffect(() => {\n if (isFirstRunRef.current) {\n isFirstRunRef.current = false;\n return;\n }\n\n let skip = false;\n\n if (state.page !== 1) {\n setState({ page: 1 });\n props.onPaginationChange?.({ page: 1, pageSize: state.pageSize });\n skip = true;\n }\n\n // 当 prop.objectId 改变时先跳过,等 state.fieldIds 更新后再获取数据\n if (props.objectId !== state.objectId) {\n setState({ objectId: props.objectId });\n skip = true;\n }\n\n if (skip) {\n return;\n }\n\n refreshInstanceList(state.sort, state.asc, 1);\n }, [\n state.q,\n state.aq,\n state.instanceSourceQuery,\n state.pageSize,\n state.aliveHosts,\n state.relatedToMe,\n props.objectId,\n props.permission,\n props.defaultQuery,\n ]);\n\n // on other condition change\n useEffect(() => {\n if (isEmpty(state.fieldIds)) return;\n\n refreshInstanceList(state.sort, state.asc, state.page);\n }, [\n state.page,\n state.sort,\n state.asc,\n state.fieldIds,\n state.appSearchInstanceId,\n state.currentChangeSelect,\n state.searchByApp,\n props.dataSource,\n ]);\n\n const onChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setQ(e.target.value);\n };\n\n // istanbul ignore next\n const onSelectionChange = 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?.length &&\n (async () => {\n const data: InstanceApi_PostSearchRequestBody = {};\n const v3Data: InstanceApi_PostSearchV3RequestBody = {\n fields: [\"instanceId\"],\n };\n if (!isEmpty(props.permission)) {\n v3Data.permission = data.permission = props.permission;\n }\n\n if (state.fieldIds) {\n data.fields = Object.fromEntries(\n state.fieldIds.map((fieldId) => [fieldId, true])\n );\n v3Data.fields = [...state.fieldIds, ...v3Data.fields];\n (v3Data as any).ignore_missing_field_error = true;\n }\n\n v3Data.query = {\n instanceId: {\n $in: props.selectedRowKeys,\n },\n };\n v3Data.page_size = props.selectedRowKeys.length;\n\n if (state.relatedToMe) {\n v3Data.only_my_instance = data.only_my_instance = state.relatedToMe;\n }\n\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 {!props.showHiddenInfoDisabled && (\n <IconButton\n checked={state.autoBreakLine}\n onChange={toggleAutoBreakLine}\n style={{ marginRight: 10 }}\n type=\"showHiddenInfo\"\n label={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.DISPLAY_OMITTED_INFORMATION}`\n )}\n data-testid=\"show-hidden-info\"\n />\n )}\n {!props.moreButtonsDisabled && (\n <MoreButtonsContainer\n modelData={modelData}\n onConfirm={handleConfirm}\n fieldIds={state.fieldIds}\n defaultFields={defaultFields}\n extraDisabledField={props.extraDisabledField}\n />\n )}\n </div>\n </div>\n )}\n {!props.advancedSearchDisabled && !state.searchByApp && (\n <div\n style={{ marginBottom: \"18px\" }}\n hidden={!state.isAdvancedSearchVisible}\n >\n <AdvancedSearch\n key={newKey(state.fieldIds, state.aq)}\n fieldIds={state.fieldIds}\n idObjectMap={state.idObjectMap}\n modelData={modelData}\n q={state.aqToShow}\n fieldToShow={state.fieldToShow}\n onSearch={onAdvancedSearch}\n {...(props.autoSearch\n ? {\n autoSearch: props.autoSearch,\n }\n : null)}\n />\n </div>\n )}\n {!props.hideSearchConditions &&\n !state.searchByApp &&\n (state.instanceSourceQuery || state.q || !isEmpty(conditions)) && (\n <div className={styles.searchConditions}>\n <span>\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.CURRENT_FILTER_REQUIREMENTS}`\n )}\n </span>\n {state.q && (\n <Tag\n closable\n onClose={() => {\n setQ(\"\");\n onSearch(\"\");\n }}\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FUZZY_SEARCH}`, {\n query: state.q,\n })}\n </Tag>\n )}\n {state.instanceSourceQuery && (\n <Tag\n closable\n onClose={() => {\n onInstanceSourceChange(null);\n }}\n >\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.INSTANCE_SOURCE_TAG_TEXT}`,\n {\n query:\n inheritanceModelIdNameMap?.[\n state.instanceSourceQuery\n ] || state.instanceSourceQuery,\n }\n )}\n </Tag>\n )}\n {conditions.map((condition) => (\n <Tag\n key={`${condition.attrId}${\n condition.valuesStr\n }-${uniqueId()}`}\n closable\n onClose={onAdvancedSearchCloseGen(\n condition.attrId,\n condition.valuesStr\n )}\n >\n {condition.condition}\n </Tag>\n ))}\n </div>\n )}\n {props.extraFilterBricks?.useBrick && (\n <BrickAsComponent useBrick={props.extraFilterBricks.useBrick} />\n )}\n {!props.hideInstanceList && (\n <InstanceListTable\n detailUrlTemplates={props.detailUrlTemplates}\n fieldIds={state.fieldIds}\n idObjectMap={state.idObjectMap}\n modelData={modelData}\n instanceListData={state.instanceListData}\n sort={state.sort}\n asc={state.asc}\n selectedRowKeys={selectedRowKeys}\n selectDisabled={props.selectDisabled}\n sortDisabled={props.sortDisabled}\n propertyDisplayConfigs={props.propertyDisplayConfigs}\n onClickItem={props.onClickItem}\n 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 )}\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","keyBy","BrickAsComponent","handleHttpError","i18n","K","NS_LIBS_CMDB_INSTANCES","InstanceApi_postSearchV3","CmdbObjectApi_getIdMapName","Icon","LegacyIcon","Button","Spin","Input","Tag","Select","getRelationObjectSides","forEachAvailableFields","getInstanceNameKeys","isSelfRelation","ConditionType","LogicalOperators","AdvancedSearch","getFieldConditionsAndValues","MoreButtonsContainer","InstanceListTable","ElementOperators","styles","extraFieldAttrs","JsonStorage","ModelAttributeValueType","IconButton","changeQueryWithCustomRules","getQuery","modelData","idObjectMap","q","fields","onlySearchByIp","query","$or","queryValues","trim","split","push","ip","$like","attr","forEach","queryValue","id","relation","sides","this","nameKeys","that","nameKey","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","isOfBoolean","keyAttrMap","BOOLEAN","initAqToShow","isToShow","newAqToShow","aqToShow","entries","expressions","newExpressions","Or","And","firstSubQuery","isStruct","isBool","structQueries","expression","structExpressions","item","boolExpressions","targetValue","InstanceList","props","baseList","instanceId","ALL_CLUSTER","jsonLocalStorage","localStorage","reducer","prevState","updatedProperty","objectList","object","disabledDefaultFields","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","hideInstanceList","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","showHiddenInfoDisabled","DISPLAY_OMITTED_INFORMATION","marginBottom","autoSearch","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 keyBy,\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 RelationObjectSides,\n isSelfRelation,\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 Field,\n ComparisonOperators,\n} from \"../instance-list-table\";\nimport styles from \"./InstanceList.module.css\";\nimport { extraFieldAttrs } 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 { 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};\n\nconst isOfBoolean = (\n attrList: Partial<CmdbModels.ModelObjectAttr>[],\n fieldId: string\n): boolean => {\n const keyAttrMap = keyBy(attrList, \"id\");\n return keyAttrMap[fieldId]?.value.type === ModelAttributeValueType.BOOLEAN;\n};\n\nexport const initAqToShow = (\n aq: Query[],\n modelData: Partial<CmdbModels.ModelCmdbObject>,\n isToShow = true\n) => {\n let newAqToShow: any[] = [];\n if (aq) {\n aq.forEach((query) => {\n const aqToShow = Object.entries(query).map(([key, expressions]) => {\n let newExpressions: any[] = [];\n if (key === LogicalOperators.Or || key === LogicalOperators.And) {\n const firstSubQuery = (expressions as Query[])[0];\n const fieldId = Object.keys(firstSubQuery)[0];\n const isStruct = isOfStruct(modelData, fieldId);\n const isBool = isOfBoolean(modelData.attrList, fieldId);\n const structQueries: Record<string, any> = (\n expressions as Query[]\n ).filter((expression) => Object.keys(expression)[0] === fieldId);\n if (isStruct && isToShow) {\n const structExpressions = structQueries.map((item: any) => ({\n [fieldId.split(\".\")[0]]: item[fieldId],\n }));\n newExpressions = [...newExpressions, ...structExpressions];\n } else if (isBool && !isToShow) {\n const boolExpressions = (expressions as Query[]).map(\n (expression) => {\n const targetValue = expression[fieldId] as Record<\n ComparisonOperators,\n any\n >;\n if (typeof Object.values(targetValue)[0] === \"string\") {\n return {\n [fieldId]: {\n [Object.keys(targetValue)[0]]:\n Object.values(targetValue)[0] === \"true\",\n },\n };\n } else {\n return expression;\n }\n }\n );\n newExpressions = [...newExpressions, ...boolExpressions];\n } else {\n newExpressions = [...newExpressions, ...(expressions as Query[])];\n }\n return { [key]: newExpressions };\n } else {\n return query;\n }\n });\n newAqToShow = [...newAqToShow, ...aqToShow];\n });\n return newAqToShow;\n }\n return;\n};\n\ninterface InstanceListProps {\n objectId: string;\n objectList: Partial<CmdbModels.ModelCmdbObject>[];\n detailUrlTemplates?: Record<string, string>;\n presetConfigs?: InstanceListPresetConfigs;\n permission?: string[];\n q?: string;\n searchDisabled?: boolean;\n sortDisabled?: boolean;\n aq?: Query[];\n aqToShow?: Query[];\n advancedSearchDisabled?: boolean;\n page?: number;\n pageSize?: number;\n sort?: string;\n asc?: boolean;\n relatedToMe?: boolean;\n relatedToMeDisabled?: boolean;\n showHiddenInfoDisabled?: boolean;\n moreButtonsDisabled?: boolean;\n aliveHosts?: boolean;\n fixAliveHosts?: boolean;\n aliveHostsDisabled?: boolean;\n propertyDisplayConfigs?: PropertyDisplayConfig[];\n selectedRowKeys?: string[];\n selectDisabled?: boolean;\n pageSizeOptions?: string[];\n showSizeChanger?: boolean;\n filterInstanceSourceDisabled?: boolean;\n instanceSourceQuery?: string;\n 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 hideInstanceList?: boolean;\n autoSearch?: (fields: Field[]) => void;\n disabledDefaultFields?: boolean;\n}\n\ninterface InstanceListState {\n objectId: string;\n q: string;\n aq: Query[];\n aqToShow?: Query[];\n instanceSourceQuery: string;\n asc: boolean;\n sort: string;\n page: number;\n pageSize: number;\n aliveHosts: boolean;\n relatedToMe: boolean;\n inited: boolean;\n loading: boolean;\n failed: boolean;\n idObjectMap?: Record<string, Partial<CmdbModels.ModelCmdbObject>>;\n instanceListData?: InstanceApi_PostSearchV3ResponseBody;\n isAdvancedSearchVisible: boolean;\n fieldIds: string[];\n autoBreakLine: boolean;\n fieldToShow?: Record<string, any[]>[];\n appSearchInstanceId?: string;\n currentChangeSelect?: string;\n appSelectValue?: string;\n clusterValue?: string;\n appList?: Record<string, any>[];\n clusterList?: Record<string, any>[];\n searchByApp?: boolean;\n}\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 = !props.disabledDefaultFields\n ? union(object.attrList, extraFieldAttrs)\n : object.attrList;\n }\n });\n\n return { modelData, idObjectMap };\n }, [props.objectList, props.objectId]);\n\n const [inheritanceModelIdNameMap, setInheritanceModelIdNameMap] = useState<\n Record<string, string>\n >({});\n\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: initAqToShow(props.aq, modelData, false),\n aqToShow: props.aqToShow || initAqToShow(props.aq, modelData),\n instanceSourceQuery: props.instanceSourceQuery,\n asc: props.asc,\n sort: props.sort,\n page: props.dataSource?.page ?? props.page ?? 1,\n pageSize: props.dataSource?.pageSize ?? props.pageSize ?? 10,\n aliveHosts: props.aliveHosts,\n relatedToMe: props.relatedToMe,\n inited: false,\n loading: false,\n failed: false,\n isAdvancedSearchVisible: false,\n fieldIds: getFields(),\n autoBreakLine: false,\n appSearchInstanceId: \"\",\n currentChangeSelect: \"App\",\n appSelectValue: \"\",\n clusterValue: \"all\",\n appList: [],\n clusterList: [\n {\n instanceId: \"all\",\n name: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.ALL_CLUSTER}`),\n },\n ],\n searchByApp: false,\n }));\n const [selectedRowKeys, setSelectedRowKeys] = useState(\n props.selectedRowKeys ?? []\n );\n const cache = useRef(new Map<string, InstanceApi_PostSearchV3ResponseBody>());\n const isFirstRunRef = useRef(true);\n\n const getInstanceListData = async (\n sort: string,\n asc: boolean,\n page: number\n ): Promise<InstanceApi_PostSearchV3ResponseBody> => {\n const data: InstanceApi_PostSearchRequestBody = {};\n const v3Data: InstanceApi_PostSearchV3RequestBody = {\n fields: [\"instanceId\"],\n };\n if (!isEmpty(props.permission)) {\n v3Data.permission = data.permission = props.permission;\n }\n\n let query: Record<string, any> = {};\n\n v3Data.page = data.page = page;\n v3Data[\"page_size\"] = data[\"page_size\"] = state.pageSize;\n const sortType = modelData?.attrList?.find((attr) => attr.id === sort)\n ?.value?.default_type;\n const order = [\"series-number\", \"auto-increment-id\"].includes(sortType)\n ? asc\n ? 2\n : -2\n : asc\n ? 1\n : -1;\n if (sort) {\n data.sort = { [sort]: order };\n v3Data.sort = [{ key: sort, order }];\n }\n\n if (state.q) {\n query = getQuery(\n modelData,\n idObjectMap,\n state.q,\n state.fieldIds,\n props.onlySearchByIp\n );\n }\n\n if (!isEmpty(state.aq)) {\n query[LogicalOperators.And] = state.aq;\n }\n\n if (!isEmpty(props.defaultQuery)) {\n query[LogicalOperators.And] = [\n ...(query[LogicalOperators.And] || []),\n ...props.defaultQuery,\n ];\n }\n if (props.presetConfigs) {\n if (!isEmpty(props.presetConfigs.query)) {\n if (Object.keys(query).length) {\n query = {\n $and: [query, props.presetConfigs.query],\n };\n } else {\n query = props.presetConfigs.query;\n }\n }\n }\n if (state.fieldIds) {\n data.fields = Object.fromEntries(\n state.fieldIds.map((fieldId) => [fieldId, true])\n );\n v3Data.fields = [...state.fieldIds, ...v3Data.fields];\n (v3Data as any).ignore_missing_field_error = true;\n }\n if (state.aliveHosts && props.objectId === \"HOST\") {\n query = { ...query, _agentStatus: \"正常\" };\n }\n if (state.instanceSourceQuery) {\n query = { ...query, _object_id: state.instanceSourceQuery };\n }\n\n if (!isEmpty(query)) {\n v3Data.query = data.query = query;\n }\n\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 if (!props.hideInstanceList) {\n const instanceListData = await getInstanceListData(sort, asc, page);\n instanceListData.list.forEach((i) =>\n cache.current.set(i.instanceId, i)\n );\n setState({ idObjectMap: idObjectMap, instanceListData });\n } else {\n setState({\n idObjectMap: idObjectMap,\n instanceListData: [] as InstanceApi_PostSearchV3ResponseBody,\n });\n }\n }\n } catch (e) {\n handleHttpError(e);\n setState({ failed: true });\n } finally {\n setState({ inited: true, loading: false });\n }\n };\n\n useEffect(() => {\n const fieldIds = getFields();\n if (\n // 当 props.objectId 改变时,总是更新 state.fieldIds\n props.objectId !== state.objectId ||\n !isEqual(fieldIds, state.fieldIds)\n ) {\n setState({\n fieldIds,\n });\n }\n }, [props.objectId, props.presetConfigs]);\n\n useEffect(() => {\n setSelectedRowKeys(props.selectedRowKeys ?? []);\n }, [props.objectId, props.selectedRowKeys]);\n\n // on filter condition change\n useEffect(() => {\n if (isFirstRunRef.current) {\n isFirstRunRef.current = false;\n return;\n }\n\n let skip = false;\n\n if (state.page !== 1) {\n setState({ page: 1 });\n props.onPaginationChange?.({ page: 1, pageSize: state.pageSize });\n skip = true;\n }\n\n // 当 prop.objectId 改变时先跳过,等 state.fieldIds 更新后再获取数据\n if (props.objectId !== state.objectId) {\n setState({ objectId: props.objectId });\n skip = true;\n }\n\n if (skip) {\n return;\n }\n\n refreshInstanceList(state.sort, state.asc, 1);\n }, [\n state.q,\n state.aq,\n state.instanceSourceQuery,\n state.pageSize,\n state.aliveHosts,\n state.relatedToMe,\n props.objectId,\n props.permission,\n props.defaultQuery,\n ]);\n\n // on other condition change\n useEffect(() => {\n if (isEmpty(state.fieldIds)) return;\n\n refreshInstanceList(state.sort, state.asc, state.page);\n }, [\n state.page,\n state.sort,\n state.asc,\n state.fieldIds,\n state.appSearchInstanceId,\n state.currentChangeSelect,\n state.searchByApp,\n props.dataSource,\n ]);\n\n const onChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setQ(e.target.value);\n };\n\n // istanbul ignore next\n const onSelectionChange = 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?.length &&\n (async () => {\n const data: InstanceApi_PostSearchRequestBody = {};\n const v3Data: InstanceApi_PostSearchV3RequestBody = {\n fields: [\"instanceId\"],\n };\n if (!isEmpty(props.permission)) {\n v3Data.permission = data.permission = props.permission;\n }\n\n if (state.fieldIds) {\n data.fields = Object.fromEntries(\n state.fieldIds.map((fieldId) => [fieldId, true])\n );\n v3Data.fields = [...state.fieldIds, ...v3Data.fields];\n (v3Data as any).ignore_missing_field_error = true;\n }\n\n v3Data.query = {\n instanceId: {\n $in: props.selectedRowKeys,\n },\n };\n v3Data.page_size = props.selectedRowKeys.length;\n\n if (state.relatedToMe) {\n v3Data.only_my_instance = data.only_my_instance = state.relatedToMe;\n }\n\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 {!props.showHiddenInfoDisabled && (\n <IconButton\n checked={state.autoBreakLine}\n onChange={toggleAutoBreakLine}\n style={{ marginRight: 10 }}\n type=\"showHiddenInfo\"\n label={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.DISPLAY_OMITTED_INFORMATION}`\n )}\n data-testid=\"show-hidden-info\"\n />\n )}\n {!props.moreButtonsDisabled && (\n <MoreButtonsContainer\n modelData={modelData}\n onConfirm={handleConfirm}\n fieldIds={state.fieldIds}\n defaultFields={defaultFields}\n extraDisabledField={props.extraDisabledField}\n />\n )}\n </div>\n </div>\n )}\n {!props.advancedSearchDisabled && !state.searchByApp && (\n <div\n style={{ marginBottom: \"18px\" }}\n hidden={!state.isAdvancedSearchVisible}\n >\n <AdvancedSearch\n key={newKey(state.fieldIds, state.aq)}\n fieldIds={state.fieldIds}\n idObjectMap={state.idObjectMap}\n modelData={modelData}\n q={state.aqToShow}\n fieldToShow={state.fieldToShow}\n onSearch={onAdvancedSearch}\n {...(props.autoSearch\n ? {\n autoSearch: props.autoSearch,\n }\n : null)}\n />\n </div>\n )}\n {!props.hideSearchConditions &&\n !state.searchByApp &&\n (state.instanceSourceQuery || state.q || !isEmpty(conditions)) && (\n <div className={styles.searchConditions}>\n <span>\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.CURRENT_FILTER_REQUIREMENTS}`\n )}\n </span>\n {state.q && (\n <Tag\n closable\n onClose={() => {\n setQ(\"\");\n onSearch(\"\");\n }}\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FUZZY_SEARCH}`, {\n query: state.q,\n })}\n </Tag>\n )}\n {state.instanceSourceQuery && (\n <Tag\n closable\n onClose={() => {\n onInstanceSourceChange(null);\n }}\n >\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.INSTANCE_SOURCE_TAG_TEXT}`,\n {\n query:\n inheritanceModelIdNameMap?.[\n state.instanceSourceQuery\n ] || state.instanceSourceQuery,\n }\n )}\n </Tag>\n )}\n {conditions.map((condition) => (\n <Tag\n key={`${condition.attrId}${\n condition.valuesStr\n }-${uniqueId()}`}\n closable\n onClose={onAdvancedSearchCloseGen(\n condition.attrId,\n condition.valuesStr\n )}\n >\n {condition.condition}\n </Tag>\n ))}\n </div>\n )}\n {props.extraFilterBricks?.useBrick && (\n <BrickAsComponent useBrick={props.extraFilterBricks.useBrick} />\n )}\n {!props.hideInstanceList && (\n <InstanceListTable\n detailUrlTemplates={props.detailUrlTemplates}\n fieldIds={state.fieldIds}\n idObjectMap={state.idObjectMap}\n modelData={modelData}\n instanceListData={state.instanceListData}\n sort={state.sort}\n asc={state.asc}\n selectedRowKeys={selectedRowKeys}\n selectDisabled={props.selectDisabled}\n sortDisabled={props.sortDisabled}\n propertyDisplayConfigs={props.propertyDisplayConfigs}\n onClickItem={props.onClickItem}\n 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 )}\n </React.Fragment>\n ) : null}\n </Spin>\n );\n}\n"],"file":"InstanceList.js"}
@@ -54,9 +54,10 @@ export class DisplaySettings extends React.Component {
54
54
  name: attribute.name
55
55
  }));
56
56
  this.state = {
57
- nextFields: props.currentFields.slice(),
57
+ nextFields: props.currentFields ? props.currentFields.slice() : [],
58
58
  q: "",
59
- filteredList: this.attrAndRelationList
59
+ filteredList: this.attrAndRelationList,
60
+ extraDisabledFieldSet: new Set(props.extraDisabledFields)
60
61
  };
61
62
  this.debounceHandleSearch = debounce(this.filterColTag, 300);
62
63
  }
@@ -64,7 +65,13 @@ export class DisplaySettings extends React.Component {
64
65
  componentDidUpdate(prevProps) {
65
66
  if (this.props.currentFields !== prevProps.currentFields) {
66
67
  this.setState({
67
- nextFields: this.props.currentFields.slice()
68
+ nextFields: this.props.currentFields ? this.props.currentFields.slice() : []
69
+ });
70
+ }
71
+
72
+ if (this.props.extraDisabledFields !== prevProps.extraDisabledFields) {
73
+ this.setState({
74
+ extraDisabledFieldSet: new Set(this.props.extraDisabledFields)
68
75
  });
69
76
  }
70
77
  }
@@ -83,7 +90,7 @@ export class DisplaySettings extends React.Component {
83
90
  renderCheckbox(attr, field) {
84
91
  var fieldsKey = "nextFields";
85
92
  var checked = this.state[fieldsKey].includes(attr.id);
86
- var disabled = attr.id === this.props.extraDisabledField;
93
+ var disabled = attr.id === this.props.extraDisabledField || this.state.extraDisabledFieldSet.has(attr.id);
87
94
  return /*#__PURE__*/React.createElement(Col, {
88
95
  key: attr.id,
89
96
  span: 8,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/instance-list-table/DisplaySettings.tsx"],"names":["React","debounce","remove","without","get","isEmpty","extraFieldAttrs","Checkbox","Col","Divider","Input","Row","getBatchEditableRelations","CMDB_RESOURCE_FIELDS_SETTINGS","i18n","K","NS_LIBS_CMDB_INSTANCES","DisplaySettings","Component","constructor","props","filteredList","attrAndRelationList","q","state","trim","toLowerCase","filter","attr","name","includes","setState","event","value","target","debounceHandleSearch","relationList","modelData","attrList","hideColumns","view","hide_columns","ignoredFields","objectId","forEach","hideColumn","id","map","attribute","nextFields","currentFields","slice","filterColTag","componentDidUpdate","prevProps","handleChecked","fieldsKey","fields","checked","concat","onChange","renderCheckbox","field","disabled","extraDisabledField","padding","stopPropagation","width","wordBreak","render","extraAttrIds","extraFieldAttr","attrs","extraAttrs","marginTop","t","FIELD_SETTINGS","SEARCH_BY_FIELD_NAME","handleSearchChange","minHeight","maxHeight","overflow","length"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { debounce, remove, without, get, isEmpty } from \"lodash\";\nimport { extraFieldAttrs } from \"./constants\";\nimport { Checkbox, Col, Divider, Input, Row } from \"antd\";\nimport {\n getBatchEditableRelations,\n CMDB_RESOURCE_FIELDS_SETTINGS,\n} from \"@next-libs/cmdb-utils\";\nimport { CmdbModels } from \"@next-sdk/cmdb-sdk\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nexport interface DisplaySettingsProps {\n currentFields: string[];\n modelData: Partial<CmdbModels.ModelCmdbObject>;\n objectId?: string;\n extraDisabledField?: string;\n onChange?(fields: string[]): void;\n}\n\ninterface DisplaySettingsState {\n nextFields: string[];\n q: string;\n filteredList: any;\n}\n\nexport class DisplaySettings extends React.Component<\n DisplaySettingsProps,\n DisplaySettingsState\n> {\n debounceHandleSearch: () => void;\n attrAndRelationList: { id: string; name: string }[] = [];\n\n constructor(props: DisplaySettingsProps) {\n super(props);\n\n const relationList = getBatchEditableRelations(this.props.modelData);\n const attrAndRelationList = [\n ...this.props.modelData.attrList,\n ...relationList,\n ];\n\n let hideColumns = this.props.modelData.view.hide_columns || [];\n const ignoredFields = get(\n CMDB_RESOURCE_FIELDS_SETTINGS,\n `ignoredFields.${this.props.modelData.objectId}`,\n []\n );\n hideColumns = [...hideColumns, ...ignoredFields];\n\n if (!isEmpty(hideColumns)) {\n hideColumns.forEach((hideColumn: string) => {\n remove(attrAndRelationList, (attr) => attr.id === hideColumn);\n });\n }\n\n this.attrAndRelationList = attrAndRelationList.map((attribute: any) => ({\n id: attribute.id,\n name: attribute.name,\n }));\n\n this.state = {\n nextFields: props.currentFields.slice(),\n q: \"\",\n filteredList: this.attrAndRelationList,\n };\n this.debounceHandleSearch = debounce(this.filterColTag, 300);\n }\n\n componentDidUpdate(prevProps: DisplaySettingsProps) {\n if (this.props.currentFields !== prevProps.currentFields) {\n this.setState({ nextFields: this.props.currentFields.slice() });\n }\n }\n\n handleChecked(event: any, attr: any) {\n const fieldsKey = \"nextFields\";\n const fields = event.target.checked\n ? this.state[fieldsKey].concat(attr.id)\n : without(this.state[fieldsKey], attr.id);\n\n this.setState({ [fieldsKey]: fields });\n this.props.onChange?.(fields);\n }\n\n renderCheckbox(attr: any, field: \"nextFields\" | \"otherFields\") {\n const fieldsKey = \"nextFields\";\n const checked = this.state[fieldsKey].includes(attr.id);\n const disabled = attr.id === this.props.extraDisabledField;\n return (\n <Col\n key={attr.id}\n span={8}\n style={{ padding: 5 }}\n onClick={(event) => event.stopPropagation()}\n >\n <Checkbox\n name={field}\n style={{\n width: \"100%\",\n wordBreak: \"break-all\",\n }}\n checked={checked}\n disabled={disabled}\n onChange={(event) => this.handleChecked(event, attr)}\n data-testid={`${attr.id}-checkbox`}\n >\n {attr.name}\n </Checkbox>\n </Col>\n );\n }\n\n filterColTag = () => {\n let filteredList = this.attrAndRelationList;\n const q = this.state.q.trim().toLowerCase();\n if (q) {\n filteredList = filteredList.filter((attr) => {\n return attr.name.toLowerCase().includes(q);\n });\n }\n this.setState({\n filteredList,\n });\n };\n\n handleSearchChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const value = event.target.value;\n this.setState({\n q: value,\n });\n this.debounceHandleSearch();\n };\n\n render() {\n const filteredList = this.state.filteredList;\n const extraAttrIds = extraFieldAttrs.map(\n (extraFieldAttr) => extraFieldAttr.id\n );\n const attrs = filteredList.filter(\n (attr: any) => !extraAttrIds.includes(attr.id)\n );\n const extraAttrs = filteredList.filter((attr: any) =>\n extraAttrIds.includes(attr.id)\n );\n\n return (\n <>\n <Divider orientation=\"left\" plain style={{ marginTop: 0 }}>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FIELD_SETTINGS}`)}\n </Divider>\n <div>\n <Input.Search\n value={this.state.q}\n placeholder={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.SEARCH_BY_FIELD_NAME}`\n )}\n onChange={this.handleSearchChange}\n style={{ width: 200 }}\n data-testid=\"search-input\"\n />\n </div>\n <div\n style={{\n marginTop: 15,\n minHeight: 200,\n maxHeight: 500,\n overflow: \"auto\",\n }}\n className=\"nextFields\"\n >\n <Row>\n {attrs.map((attr: any) => this.renderCheckbox(attr, \"nextFields\"))}\n {extraAttrs.length > 0 ? (\n <>\n <Divider />\n {extraAttrs.map((attr: any) =>\n this.renderCheckbox(attr, \"nextFields\")\n )}\n </>\n ) : null}\n </Row>\n </div>\n </>\n );\n }\n}\n"],"file":"DisplaySettings.js"}
1
+ {"version":3,"sources":["../../../src/instance-list-table/DisplaySettings.tsx"],"names":["React","debounce","remove","without","get","isEmpty","extraFieldAttrs","Checkbox","Col","Divider","Input","Row","getBatchEditableRelations","CMDB_RESOURCE_FIELDS_SETTINGS","i18n","K","NS_LIBS_CMDB_INSTANCES","DisplaySettings","Component","constructor","props","filteredList","attrAndRelationList","q","state","trim","toLowerCase","filter","attr","name","includes","setState","event","value","target","debounceHandleSearch","relationList","modelData","attrList","hideColumns","view","hide_columns","ignoredFields","objectId","forEach","hideColumn","id","map","attribute","nextFields","currentFields","slice","extraDisabledFieldSet","Set","extraDisabledFields","filterColTag","componentDidUpdate","prevProps","handleChecked","fieldsKey","fields","checked","concat","onChange","renderCheckbox","field","disabled","extraDisabledField","has","padding","stopPropagation","width","wordBreak","render","extraAttrIds","extraFieldAttr","attrs","extraAttrs","marginTop","t","FIELD_SETTINGS","SEARCH_BY_FIELD_NAME","handleSearchChange","minHeight","maxHeight","overflow","length"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { debounce, remove, without, get, isEmpty } from \"lodash\";\nimport { extraFieldAttrs } from \"./constants\";\nimport { Checkbox, Col, Divider, Input, Row } from \"antd\";\nimport {\n getBatchEditableRelations,\n CMDB_RESOURCE_FIELDS_SETTINGS,\n} from \"@next-libs/cmdb-utils\";\nimport { CmdbModels } from \"@next-sdk/cmdb-sdk\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nexport interface DisplaySettingsProps {\n currentFields: string[];\n modelData: Partial<CmdbModels.ModelCmdbObject>;\n objectId?: string;\n extraDisabledField?: string;\n extraDisabledFields?: string[];\n onChange?(fields: string[]): void;\n}\n\ninterface DisplaySettingsState {\n nextFields: string[];\n q: string;\n filteredList: any;\n extraDisabledFieldSet: Set<string>;\n}\n\nexport class DisplaySettings extends React.Component<\n DisplaySettingsProps,\n DisplaySettingsState\n> {\n debounceHandleSearch: () => void;\n attrAndRelationList: { id: string; name: string }[] = [];\n\n constructor(props: DisplaySettingsProps) {\n super(props);\n\n const relationList = getBatchEditableRelations(this.props.modelData);\n const attrAndRelationList = [\n ...this.props.modelData.attrList,\n ...relationList,\n ];\n\n let hideColumns = this.props.modelData.view.hide_columns || [];\n const ignoredFields = get(\n CMDB_RESOURCE_FIELDS_SETTINGS,\n `ignoredFields.${this.props.modelData.objectId}`,\n []\n );\n hideColumns = [...hideColumns, ...ignoredFields];\n\n if (!isEmpty(hideColumns)) {\n hideColumns.forEach((hideColumn: string) => {\n remove(attrAndRelationList, (attr) => attr.id === hideColumn);\n });\n }\n\n this.attrAndRelationList = attrAndRelationList.map((attribute: any) => ({\n id: attribute.id,\n name: attribute.name,\n }));\n\n this.state = {\n nextFields: props.currentFields ? props.currentFields.slice() : [],\n q: \"\",\n filteredList: this.attrAndRelationList,\n extraDisabledFieldSet: new Set(props.extraDisabledFields),\n };\n this.debounceHandleSearch = debounce(this.filterColTag, 300);\n }\n\n componentDidUpdate(prevProps: DisplaySettingsProps) {\n if (this.props.currentFields !== prevProps.currentFields) {\n this.setState({\n nextFields: this.props.currentFields\n ? this.props.currentFields.slice()\n : [],\n });\n }\n\n if (this.props.extraDisabledFields !== prevProps.extraDisabledFields) {\n this.setState({\n extraDisabledFieldSet: new Set(this.props.extraDisabledFields),\n });\n }\n }\n\n handleChecked(event: any, attr: any) {\n const fieldsKey = \"nextFields\";\n const fields = event.target.checked\n ? this.state[fieldsKey].concat(attr.id)\n : without(this.state[fieldsKey], attr.id);\n\n this.setState({ [fieldsKey]: fields });\n this.props.onChange?.(fields);\n }\n\n renderCheckbox(attr: any, field: \"nextFields\" | \"otherFields\") {\n const fieldsKey = \"nextFields\";\n const checked = this.state[fieldsKey].includes(attr.id);\n const disabled =\n attr.id === this.props.extraDisabledField ||\n this.state.extraDisabledFieldSet.has(attr.id);\n return (\n <Col\n key={attr.id}\n span={8}\n style={{ padding: 5 }}\n onClick={(event) => event.stopPropagation()}\n >\n <Checkbox\n name={field}\n style={{\n width: \"100%\",\n wordBreak: \"break-all\",\n }}\n checked={checked}\n disabled={disabled}\n onChange={(event) => this.handleChecked(event, attr)}\n data-testid={`${attr.id}-checkbox`}\n >\n {attr.name}\n </Checkbox>\n </Col>\n );\n }\n\n filterColTag = () => {\n let filteredList = this.attrAndRelationList;\n const q = this.state.q.trim().toLowerCase();\n if (q) {\n filteredList = filteredList.filter((attr) => {\n return attr.name.toLowerCase().includes(q);\n });\n }\n this.setState({\n filteredList,\n });\n };\n\n handleSearchChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const value = event.target.value;\n this.setState({\n q: value,\n });\n this.debounceHandleSearch();\n };\n\n render() {\n const filteredList = this.state.filteredList;\n const extraAttrIds = extraFieldAttrs.map(\n (extraFieldAttr) => extraFieldAttr.id\n );\n const attrs = filteredList.filter(\n (attr: any) => !extraAttrIds.includes(attr.id)\n );\n const extraAttrs = filteredList.filter((attr: any) =>\n extraAttrIds.includes(attr.id)\n );\n\n return (\n <>\n <Divider orientation=\"left\" plain style={{ marginTop: 0 }}>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FIELD_SETTINGS}`)}\n </Divider>\n <div>\n <Input.Search\n value={this.state.q}\n placeholder={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.SEARCH_BY_FIELD_NAME}`\n )}\n onChange={this.handleSearchChange}\n style={{ width: 200 }}\n data-testid=\"search-input\"\n />\n </div>\n <div\n style={{\n marginTop: 15,\n minHeight: 200,\n maxHeight: 500,\n overflow: \"auto\",\n }}\n className=\"nextFields\"\n >\n <Row>\n {attrs.map((attr: any) => this.renderCheckbox(attr, \"nextFields\"))}\n {extraAttrs.length > 0 ? (\n <>\n <Divider />\n {extraAttrs.map((attr: any) =>\n this.renderCheckbox(attr, \"nextFields\")\n )}\n </>\n ) : null}\n </Row>\n </div>\n </>\n );\n }\n}\n"],"file":"DisplaySettings.js"}
@@ -10,6 +10,7 @@ export function DisplaySettingsModal(props) {
10
10
  modelData,
11
11
  currentFields,
12
12
  defaultFields,
13
+ extraDisabledFields,
13
14
  onOk,
14
15
  onCancel
15
16
  } = props;
@@ -20,7 +21,7 @@ export function DisplaySettingsModal(props) {
20
21
  var count = useMemo(() => nextFields === null || nextFields === void 0 ? void 0 : nextFields.filter(v => v !== "_object_id").length, [nextFields]);
21
22
 
22
23
  var handleReset = () => {
23
- var fields = defaultFields.slice();
24
+ var fields = defaultFields ? defaultFields.slice() : [];
24
25
  setNextFields(fields);
25
26
  onOk === null || onOk === void 0 ? void 0 : onOk({
26
27
  fields,
@@ -65,7 +66,8 @@ export function DisplaySettingsModal(props) {
65
66
  }, /*#__PURE__*/React.createElement(DisplaySettings, {
66
67
  objectId: objectId,
67
68
  modelData: modelData,
68
- currentFields: currentFields,
69
+ currentFields: nextFields,
70
+ extraDisabledFields: extraDisabledFields,
69
71
  onChange: fields => setNextFields(fields)
70
72
  }));
71
73
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/instance-list-table/DisplaySettingsModal.tsx"],"names":["Button","Modal","React","useMemo","useState","useTranslation","K","NS_LIBS_CMDB_INSTANCES","DisplaySettings","DisplaySettingsModal","props","visible","objectId","modelData","currentFields","defaultFields","onOk","onCancel","t","nextFields","setNextFields","count","filter","v","length","handleReset","fields","slice","isReset","DISPLAY_SETTINGS","display","RESTORE_DEFAULT","marginLeft","marginRight","CANCEL","CONFIRM"],"mappings":"AAAA,SAASA,MAAT,EAAiBC,KAAjB,QAA8B,MAA9B;AACA,OAAOC,KAAP,IAAgBC,OAAhB,EAAyBC,QAAzB,QAAyC,OAAzC;AACA,SAASC,cAAT,QAA+B,eAA/B;AACA,SAASC,CAAT,EAAYC,sBAAZ,QAA0C,mBAA1C;AACA,SAASC,eAAT,QAAsD,mBAAtD;AAcA,OAAO,SAASC,oBAAT,CACLC,KADK,EAEe;AACpB,MAAM;AACJC,IAAAA,OADI;AAEJC,IAAAA,QAFI;AAGJC,IAAAA,SAHI;AAIJC,IAAAA,aAJI;AAKJC,IAAAA,aALI;AAMJC,IAAAA,IANI;AAOJC,IAAAA;AAPI,MAQFP,KARJ;AASA,MAAM;AAAEQ,IAAAA;AAAF,MAAQb,cAAc,CAACE,sBAAD,CAA5B;AACA,MAAM,CAACY,UAAD,EAAaC,aAAb,IAA8BhB,QAAQ,CAAWU,aAAX,CAA5C;AACA,MAAMO,KAAK,GAAGlB,OAAO,CACnB,MAAMgB,UAAN,aAAMA,UAAN,uBAAMA,UAAU,CAAEG,MAAZ,CAAoBC,CAAD,IAAOA,CAAC,KAAK,YAAhC,EAA8CC,MADjC,EAEnB,CAACL,UAAD,CAFmB,CAArB;;AAKA,MAAMM,WAAW,GAAG,MAAY;AAC9B,QAAMC,MAAM,GAAGX,aAAa,CAACY,KAAd,EAAf;AAEAP,IAAAA,aAAa,CAACM,MAAD,CAAb;AACAV,IAAAA,IAAI,SAAJ,IAAAA,IAAI,WAAJ,YAAAA,IAAI,CAAG;AAAEU,MAAAA,MAAF;AAAUE,MAAAA,OAAO,EAAE;AAAnB,KAAH,CAAJ;AACD,GALD;;AAOA,sBACE,oBAAC,KAAD;AACE,IAAA,KAAK,EAAEV,CAAC,CAACZ,CAAC,CAACuB,gBAAH,CADV;AAEE,IAAA,OAAO,EAAElB,OAFX;AAGE,IAAA,MAAM,eACJ;AAAK,MAAA,KAAK,EAAE;AAAEmB,QAAAA,OAAO,EAAE;AAAX;AAAZ,oBACE,8CACE,oBAAC,MAAD;AACE,MAAA,IAAI,EAAC,SADP;AAEE,MAAA,OAAO,EAAEL,WAFX;AAGE,qBAAY;AAHd,OAKGP,CAAC,CAACZ,CAAC,CAACyB,eAAH,CALJ,CADF,CADF,eAUE;AAAK,MAAA,KAAK,EAAE;AAAEC,QAAAA,UAAU,EAAE;AAAd;AAAZ,oBACE,oBAAC,MAAD;AACE,MAAA,IAAI,EAAC,SADP;AAEE,MAAA,OAAO,EAAEf,QAFX;AAGE,MAAA,KAAK,EAAE;AAAEgB,QAAAA,WAAW,EAAE;AAAf,OAHT;AAIE,qBAAY;AAJd,OAMGf,CAAC,CAACZ,CAAC,CAAC4B,MAAH,CANJ,CADF,eASE,oBAAC,MAAD;AACE,MAAA,IAAI,EAAC,SADP;AAEE,MAAA,OAAO,EAAE,MAAMxB,KAAN,aAAMA,KAAN,uBAAMA,KAAK,CAAEM,IAAP,CAAY;AAAEU,QAAAA,MAAM,EAAEP;AAAV,OAAZ,CAFjB;AAGE,MAAA,QAAQ,EAAEE,KAAK,KAAK,CAHtB;AAIE,qBAAY;AAJd,OAMGH,CAAC,CAACZ,CAAC,CAAC6B,OAAH,CANJ,CATF,CAVF,CAJJ;AAkCE,IAAA,QAAQ,EAAElB,QAlCZ;AAmCE,IAAA,cAAc,EAAE,IAnClB;AAoCE,IAAA,KAAK,EAAE,GApCT;AAqCE,IAAA,QAAQ,EAAE;AArCZ,kBAuCE,oBAAC,eAAD;AACE,IAAA,QAAQ,EAAEL,QADZ;AAEE,IAAA,SAAS,EAAEC,SAFb;AAGE,IAAA,aAAa,EAAEC,aAHjB;AAIE,IAAA,QAAQ,EAAGY,MAAD,IAAYN,aAAa,CAACM,MAAD;AAJrC,IAvCF,CADF;AAgDD","sourcesContent":["import { Button, Modal } from \"antd\";\nimport React, { useMemo, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport { DisplaySettings, DisplaySettingsProps } from \"./DisplaySettings\";\n\nexport interface DisplaySettingsModalData {\n fields: string[];\n isReset?: boolean;\n}\n\nexport interface DisplaySettingsModalProps extends DisplaySettingsProps {\n visible?: boolean;\n defaultFields?: string[];\n onOk?(data: DisplaySettingsModalData): void;\n onCancel?(): void;\n}\n\nexport function DisplaySettingsModal(\n props: DisplaySettingsModalProps\n): React.ReactElement {\n const {\n visible,\n objectId,\n modelData,\n currentFields,\n defaultFields,\n onOk,\n onCancel,\n } = props;\n const { t } = useTranslation(NS_LIBS_CMDB_INSTANCES);\n const [nextFields, setNextFields] = useState<string[]>(currentFields);\n const count = useMemo(\n () => nextFields?.filter((v) => v !== \"_object_id\").length,\n [nextFields]\n );\n\n const handleReset = (): void => {\n const fields = defaultFields.slice();\n\n setNextFields(fields);\n onOk?.({ fields, isReset: true });\n };\n\n return (\n <Modal\n title={t(K.DISPLAY_SETTINGS)}\n visible={visible}\n footer={\n <div style={{ display: \"flex\" }}>\n <div>\n <Button\n type=\"default\"\n onClick={handleReset}\n data-testid=\"reset-button\"\n >\n {t(K.RESTORE_DEFAULT)}\n </Button>\n </div>\n <div style={{ marginLeft: \"auto\" }}>\n <Button\n type=\"default\"\n onClick={onCancel}\n style={{ marginRight: 10 }}\n data-testid=\"cancel-button\"\n >\n {t(K.CANCEL)}\n </Button>\n <Button\n type=\"primary\"\n onClick={() => props?.onOk({ fields: nextFields })}\n disabled={count === 0}\n data-testid=\"ok-button\"\n >\n {t(K.CONFIRM)}\n </Button>\n </div>\n </div>\n }\n onCancel={onCancel}\n destroyOnClose={true}\n width={780}\n centered={true}\n >\n <DisplaySettings\n objectId={objectId}\n modelData={modelData}\n currentFields={currentFields}\n onChange={(fields) => setNextFields(fields)}\n />\n </Modal>\n );\n}\n"],"file":"DisplaySettingsModal.js"}
1
+ {"version":3,"sources":["../../../src/instance-list-table/DisplaySettingsModal.tsx"],"names":["Button","Modal","React","useMemo","useState","useTranslation","K","NS_LIBS_CMDB_INSTANCES","DisplaySettings","DisplaySettingsModal","props","visible","objectId","modelData","currentFields","defaultFields","extraDisabledFields","onOk","onCancel","t","nextFields","setNextFields","count","filter","v","length","handleReset","fields","slice","isReset","DISPLAY_SETTINGS","display","RESTORE_DEFAULT","marginLeft","marginRight","CANCEL","CONFIRM"],"mappings":"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","sourcesContent":["import { Button, Modal } from \"antd\";\nimport React, { useMemo, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport { DisplaySettings, DisplaySettingsProps } from \"./DisplaySettings\";\n\nexport interface DisplaySettingsModalData {\n fields: string[];\n isReset?: boolean;\n}\n\nexport interface DisplaySettingsModalProps extends DisplaySettingsProps {\n visible?: boolean;\n defaultFields?: string[];\n onOk?(data: DisplaySettingsModalData): void;\n onCancel?(): void;\n}\n\nexport function DisplaySettingsModal(\n props: DisplaySettingsModalProps\n): React.ReactElement {\n const {\n visible,\n objectId,\n modelData,\n currentFields,\n defaultFields,\n extraDisabledFields,\n onOk,\n onCancel,\n } = props;\n const { t } = useTranslation(NS_LIBS_CMDB_INSTANCES);\n const [nextFields, setNextFields] = useState<string[]>(currentFields);\n const count = useMemo(\n () => nextFields?.filter((v) => v !== \"_object_id\").length,\n [nextFields]\n );\n\n const handleReset = (): void => {\n const fields = defaultFields ? defaultFields.slice() : [];\n\n setNextFields(fields);\n onOk?.({ fields, isReset: true });\n };\n\n return (\n <Modal\n title={t(K.DISPLAY_SETTINGS)}\n visible={visible}\n footer={\n <div style={{ display: \"flex\" }}>\n <div>\n <Button\n type=\"default\"\n onClick={handleReset}\n data-testid=\"reset-button\"\n >\n {t(K.RESTORE_DEFAULT)}\n </Button>\n </div>\n <div style={{ marginLeft: \"auto\" }}>\n <Button\n type=\"default\"\n onClick={onCancel}\n style={{ marginRight: 10 }}\n data-testid=\"cancel-button\"\n >\n {t(K.CANCEL)}\n </Button>\n <Button\n type=\"primary\"\n onClick={() => props?.onOk({ fields: nextFields })}\n disabled={count === 0}\n data-testid=\"ok-button\"\n >\n {t(K.CONFIRM)}\n </Button>\n </div>\n </div>\n }\n onCancel={onCancel}\n destroyOnClose={true}\n width={780}\n centered={true}\n >\n <DisplaySettings\n objectId={objectId}\n modelData={modelData}\n currentFields={nextFields}\n extraDisabledFields={extraDisabledFields}\n onChange={(fields) => setNextFields(fields)}\n />\n </Modal>\n );\n}\n"],"file":"DisplaySettingsModal.js"}
@@ -1,5 +1,6 @@
1
1
  export * from "./AdvancedSearch";
2
2
  export * from "./MoreButtonsContainer";
3
3
  export * from "./DisplaySettings";
4
+ export * from "./DisplaySettingsModal";
4
5
  export * from "./InstanceListTable";
5
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/instance-list-table/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAd;AACA,cAAc,wBAAd;AACA,cAAc,mBAAd;AACA,cAAc,qBAAd","sourcesContent":["export * from \"./AdvancedSearch\";\nexport * from \"./MoreButtonsContainer\";\nexport * from \"./DisplaySettings\";\nexport * from \"./InstanceListTable\";\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/instance-list-table/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAd;AACA,cAAc,wBAAd;AACA,cAAc,mBAAd;AACA,cAAc,wBAAd;AACA,cAAc,qBAAd","sourcesContent":["export * from \"./AdvancedSearch\";\nexport * from \"./MoreButtonsContainer\";\nexport * from \"./DisplaySettings\";\nexport * from \"./DisplaySettingsModal\";\nexport * from \"./InstanceListTable\";\n"],"file":"index.js"}
@@ -22,5 +22,7 @@ export interface CmdbInstancesSelectPanelProps {
22
22
  isFilterView?: boolean;
23
23
  onFetchedInstances?: (instanceList: any[]) => void;
24
24
  relation?: Partial<ModifiedModelObjectRelation>;
25
+ searchDisabled?: boolean;
26
+ advancedSearchDisabled?: boolean;
25
27
  }
26
28
  export declare function CmdbInstancesSelectPanel(props: CmdbInstancesSelectPanelProps, ref: any): React.ReactElement;