@next-libs/cmdb-instances 6.43.2 → 6.44.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.
@@ -1 +1 @@
1
- {"version":3,"file":"InstanceListTable.js","names":["React","withTranslation","classnames","Button","Popover","Table","Tag","Tooltip","Modal","message","isNil","isBoolean","compact","map","CopyOutlined","DeleteOutlined","PropertyDisplayType","CmdbObjectApi_getIdMapName","InstanceApi_postSearch","Link","GeneralIcon","forEachAvailableFields","getInstanceNameKeys","getTemplateFromMap","parseTemplate","modifyModelData","ModelAttributeValueType","StructTable","styles","customRules","BrickAsComponent","NS_LIBS_CMDB_INSTANCES","K","i18n","CmdbUrlLink","FloatDisplayBrick","SortOrder","SELF_RENDER_COLUMNS","HOST","key","brick","CLUSTER","properties","fields","value","showBg","LegacyInstanceListTable","Component","constructor","props","t","INSTANCE_SOURCE","INSTANCE_SOURCE_TOOLTIP","titleTooltipIcon","lib","icon","theme","pagination","filters","sorter","extra","newInstanceSourceQuery","_object_id","state","instanceSourceQuery","onInstanceSourceChange","current","pageSize","onPaginationChange","page","Array","isArray","asc","Ascend","Descend","order","column","field","undefined","sort","onSortingChange","selectedRowKeys","selectedRows","onSelectionChange","selectedKeys","selectedItems","ev","dataIndex","stopPropagation","filter","v","objectId","modelData","length","warning","SELECT_COPY_DATA","k","every","row","ROM_KEY","resp","query","instanceId","$in","page_size","list","inputDom","document","createElement","Set","join","body","appendChild","select","execCommand","remove","success","COPY_SUCCESS","forEach","config","keyDisplayConfigMap","propertyDisplayConfigs","fieldIds","sortedColumns","getChangeColumns","inheritanceModelIdNameMap","defaultPagination","disabled","paginationDisabled","pageSizeOptions","showSizeChanger","showTotal","totals","totalText","PAGINATION_TOTAL_TEXT","total","PAGINATION_TOTAL_UNIT","instanceListData","columns","getMergedColumns","extraColumns","openConfirmModal","index","confirm","title","DELETE_INSTANCE_CONFIRM_MSG","okText","CONFIRM","okType","cancelText","CANCEL","onOk","processList","splice","handleDeleteFunction","ids","attr","firstColumns","push","setColumnSortOrder","getAttributeColumnData","relation","sides","getRelationColumnData","idColumnMap","Map","set","view","attr_order","id","get","delete","isOperate","OPERATION","className","structTableTd","fixed","render","_text","record","color","mergedColumns","processExtraColumns","isAbstract","instanceSourceTitle","filterInstanceSourceDisabled","text","filterMultiple","filteredValue","c","recordUseBrickDataMap","useBrick","processedColumn","data","cellData","rowData","componentDidMount","parentObjectId","setState","UNSAFE_componentWillReceiveProps","nextProps","handleClickItem","e","onClickItem","onClickItemV2","getCustomPropertyRender","isPrimary","el","Object","assign","dataSource","getLinkContent","node","display","iconWrap","category","linkKey","getSpecialUrlTemplates","object","url","isRenderStructList","showTooltip","JUMP_TO","name","INSTANCE_DETAIL","iconWrapOfStruct","attribute","instanceListTableCell","displayConfig","tempColumns","type","STRUCT","STRUCT_LIST","sortDisabled","values","valueColorMap","isLegacy","maxWidth","width","height","padding","VIEW","ARR","ENUMS","BOOLEAN","JSON","stringify","STRING","FLOAT","toString","split","valStr","item","detailUrlTemplates","detailUrlTemplate","target","this","instances","that","nameKeys","idObjectMap","instanceNodes","instance","subName","instanceName","separatorUsedInRelationData","relationLinkDisabled","sortOrder","componentDidUpdate","prevProps","rowSelectionType","rowSelection","selectDisabled","preserveSelectedRowKeys","onChange","onSelectChange","classes","shouldEllipsis","autoBreakLine","tableWrapper","attrList","find","mode","linkStr","ipCopy","filterDropdown","filterIcon","copyWrap","COPY_SELECTED_IP","fontSize","handelIpCopyText","overflowX","overflowY","x","fixedHeader","y","childrenColumnName","configProps","InstanceListTable","memo"],"sources":["../../../src/instance-list-table/InstanceListTable.tsx"],"sourcesContent":["import React from \"react\";\nimport { withTranslation, WithTranslation } from \"react-i18next\";\nimport classnames from \"classnames\";\nimport {\n Button,\n Popover,\n Table,\n Tag,\n Tooltip,\n Modal,\n message,\n Typography,\n} from \"antd\";\nimport { isNil, isBoolean, compact, map } from \"lodash\";\nimport { CopyOutlined, DeleteOutlined } from \"@ant-design/icons\";\nimport { ColumnType, TablePaginationConfig, TableProps } from \"antd/lib/table\";\nimport {\n SorterResult,\n TableCurrentDataSource,\n TableRowSelection,\n} from \"antd/lib/table/interface\";\nimport {\n PropertyDisplay,\n PropertyDisplayConfig,\n PropertyDisplayType,\n ReadPaginationChangeDetail,\n ReadSelectionChangeDetail,\n ReadSortingChangeDetail,\n UseBrickConf,\n} from \"@next-core/brick-types\";\nimport {\n CmdbModels,\n InstanceApi_PostSearchV3ResponseBody,\n CmdbObjectApi_getIdMapName,\n InstanceApi_postSearch,\n} from \"@next-sdk/cmdb-sdk\";\nimport { Link, GeneralIcon } from \"@next-libs/basic-components\";\nimport {\n forEachAvailableFields,\n getInstanceNameKeys,\n getTemplateFromMap,\n parseTemplate,\n modifyModelData,\n RelationIdKeys,\n RelationNameKeys,\n RelationObjectIdKeys,\n RelationObjectSides,\n} from \"@next-libs/cmdb-utils\";\nimport { ModelAttributeValueType } from \"../model-attribute-form-control/ModelAttributeFormControl\";\nimport { Attribute, StructTable } from \"../struct-components\";\nimport styles from \"./InstanceListTable.module.css\";\nimport { customRules } from \"./utils\";\nimport { BrickAsComponent } from \"@next-core/brick-kit\";\nimport { NS_LIBS_CMDB_INSTANCES, K } from \"../i18n/constants\";\nimport i18n from \"i18next\";\nimport { CmdbUrlLink } from \"../cmdb-url-link/CmdbUrlLink\";\nimport { FloatDisplayBrick } from \"../float-display-brick/FloatDisplayBrick\";\n// const { Paragraph } = Typography;\nexport interface CustomColumn extends ColumnType<Record<string, unknown>> {\n useBrick: UseBrickConf;\n}\n\nexport interface InstanceListUseBrickData {\n cellData: unknown;\n rowData: Record<string, unknown>;\n index: number;\n}\n\nenum SortOrder {\n Ascend = \"ascend\",\n Descend = \"descend\",\n}\n\nconst SELF_RENDER_COLUMNS: { [objectId: string]: PropertyDisplayConfig[] } = {\n HOST: [\n {\n key: \"_agentStatus\",\n brick: \"presentational-bricks.agent-status\",\n },\n ],\n CLUSTER: [\n {\n key: \"type\",\n brick: \"presentational-bricks.brick-cluster-type\",\n properties: {\n fields: {\n value: \"type\",\n },\n showBg: true,\n },\n },\n ],\n};\n\nexport interface InstanceListTableProps extends WithTranslation {\n detailUrlTemplates?: Record<string, string>;\n fieldIds?: string[];\n idObjectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>;\n modelData: Partial<CmdbModels.ModelCmdbObject>;\n instanceListData: InstanceApi_PostSearchV3ResponseBody;\n sort?: string;\n asc?: boolean;\n propertyDisplayConfigs?: PropertyDisplayConfig[];\n selectDisabled?: boolean;\n autoBreakLine?: boolean;\n sortDisabled?: boolean;\n instanceSourceQuery?: string;\n inheritanceModelIdNameMap?: Record<string, string>;\n filterInstanceSourceDisabled?: boolean;\n onClickItem?(\n evt: React.MouseEvent<HTMLAnchorElement, MouseEvent>,\n id: string\n ): void;\n onClickItemV2?(\n evt: React.MouseEvent<HTMLAnchorElement, MouseEvent>,\n record: Record<string, any>\n ): void;\n onPaginationChange?(pagination: ReadPaginationChangeDetail): void;\n onSortingChange?(sorting: ReadSortingChangeDetail): void;\n onSelectionChange?(selection: ReadSelectionChangeDetail): void;\n onInstanceSourceChange?(instanceSourceQuery: string): void;\n relationLinkDisabled?: boolean;\n paginationDisabled?: boolean;\n pageSizeOptions?: string[];\n showSizeChanger?: boolean;\n selectedRowKeys?: string[];\n configProps?: TableProps<Record<string, any>>;\n extraColumns?: CustomColumn[];\n isOperate?: boolean;\n handleDeleteFunction?: (v: any[]) => void;\n target?: string;\n ipCopy?: boolean;\n separatorUsedInRelationData?: string;\n showTooltip?: boolean;\n fixedHeader?: boolean;\n rowSelectionType?: \"checkbox\" | \"radio\";\n}\n\ninterface InstanceListTableState {\n list: Record<string, any>[];\n instanceSourceQuery?: string;\n columns?: ColumnType<Record<string, any>>[];\n pagination: TablePaginationConfig;\n defaultPagination: TablePaginationConfig;\n}\n\nexport class LegacyInstanceListTable extends React.Component<\n InstanceListTableProps,\n InstanceListTableState\n> {\n keyDisplayConfigMap: Record<string, PropertyDisplayConfig> = {};\n recordUseBrickDataMap: Map<unknown, InstanceListUseBrickData>;\n inheritanceModelIdNameMap: Record<string, string>;\n selectedRows: Record<string, any>[] = [];\n ROM_KEY = \"instanceId\";\n\n instanceSourceTitle: React.ReactElement = (\n <>\n <span>{i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.INSTANCE_SOURCE}`)}</span>\n <Tooltip\n title={i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.INSTANCE_SOURCE_TOOLTIP}`)}\n >\n <span className={styles.titleTooltipIcon}>\n <GeneralIcon\n icon={{\n lib: \"antd\",\n icon: \"question-circle\",\n theme: \"filled\",\n }}\n />\n </span>\n </Tooltip>\n </>\n );\n\n constructor(props: InstanceListTableProps) {\n super(props);\n const objectId = this.props.modelData.objectId;\n SELF_RENDER_COLUMNS[objectId]?.forEach(\n (config) => (this.keyDisplayConfigMap[config.key] = config)\n );\n this.props.propertyDisplayConfigs?.forEach(\n (config) => (this.keyDisplayConfigMap[config.key] = config)\n );\n const fieldIds = this.props.fieldIds;\n const sortedColumns = this.getChangeColumns(fieldIds);\n this.inheritanceModelIdNameMap = this.props.inheritanceModelIdNameMap;\n\n const defaultPagination = {\n disabled: this.props.paginationDisabled,\n pageSizeOptions: this.props.pageSizeOptions,\n showSizeChanger: this.props.showSizeChanger,\n showTotal: (totals: number) => (\n <span className={styles.totalText}>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.PAGINATION_TOTAL_TEXT}`)}{\" \"}\n <strong className={styles.total}>{totals}</strong>{\" \"}\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.PAGINATION_TOTAL_UNIT}`)}\n </span>\n ),\n };\n this.state = {\n list: this.props.instanceListData.list,\n instanceSourceQuery: this.props.instanceSourceQuery,\n columns: this.getMergedColumns(sortedColumns, this.props.extraColumns),\n pagination: {\n ...defaultPagination,\n total: this.props.instanceListData.total,\n current: this.props.instanceListData.page,\n pageSize: this.props.instanceListData.page_size,\n },\n defaultPagination: defaultPagination,\n };\n }\n // istanbul ignore next\n openConfirmModal(index: number) {\n const confirm = Modal.confirm;\n\n confirm({\n title: i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.DELETE_INSTANCE_CONFIRM_MSG}`\n ),\n okText: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CONFIRM}`),\n okType: \"danger\",\n cancelText: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CANCEL}`),\n onOk: () => {\n this.remove(index);\n },\n });\n }\n // istanbul ignore next\n remove(index: number) {\n const processList = [...this.props.instanceListData.list];\n processList.splice(index, 1);\n this.props.handleDeleteFunction(processList);\n }\n getChangeColumns(ids: string[]) {\n const columns: InstanceListTableState[\"columns\"] = [];\n forEachAvailableFields(\n modifyModelData(this.props.modelData),\n (attr, firstColumns?: boolean) =>\n columns.push(\n this.setColumnSortOrder(\n this.getAttributeColumnData(\n attr,\n this.props.modelData,\n firstColumns\n )\n )\n ),\n (relation, sides, firstColumns?: boolean) =>\n columns.push(\n this.setColumnSortOrder(\n this.getRelationColumnData(\n relation,\n this.props.modelData,\n sides,\n firstColumns\n )\n )\n ),\n ids\n );\n const idColumnMap = new Map<string, ColumnType<Record<string, any>>>();\n columns.forEach((column) =>\n idColumnMap.set(column.dataIndex as string, column)\n );\n let fieldIds: string[];\n if (ids?.length) {\n fieldIds = ids;\n } else if (\n this.props.modelData.view &&\n this.props.modelData.view.attr_order\n ) {\n fieldIds = this.props.modelData.view.attr_order;\n }\n let sortedColumns: InstanceListTableState[\"columns\"];\n if (fieldIds) {\n sortedColumns = [];\n fieldIds.forEach((id) => {\n const column = idColumnMap.get(id);\n if (column) {\n sortedColumns.push(column);\n idColumnMap.delete(id);\n }\n });\n idColumnMap.forEach((column) => sortedColumns.push(column));\n } else {\n sortedColumns = columns;\n }\n if (this.props.isOperate) {\n sortedColumns.push({\n title: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.OPERATION}`),\n className: styles.structTableTd,\n dataIndex: \"operation\",\n fixed: \"right\",\n render: (_text: string, record: any, index: number): any => {\n return (\n <Button\n data-testid={\"button-up-\" + index}\n type=\"link\"\n icon={\n <DeleteOutlined style={{ color: \"var(--theme-red-color)\" }} />\n }\n onClick={() => {\n this.openConfirmModal(index);\n }}\n />\n );\n },\n });\n }\n return sortedColumns;\n }\n\n getMergedColumns(\n columns: ColumnType<Record<string, any>>[],\n extraColumns: CustomColumn[]\n ): ColumnType<Record<string, any>>[] {\n let mergedColumns = extraColumns\n ? [...columns, ...this.processExtraColumns(extraColumns)]\n : columns;\n if (this.props.modelData.isAbstract) {\n mergedColumns = [\n {\n title: this.instanceSourceTitle,\n dataIndex: \"_object_id\",\n ...(!this.props.filterInstanceSourceDisabled\n ? {\n filters: map(this.inheritanceModelIdNameMap, (value, key) => ({\n text: value,\n value: key,\n })),\n filterMultiple: false,\n filteredValue: this.props.instanceSourceQuery && [\n this.props.instanceSourceQuery,\n ],\n }\n : {}),\n render: (value, record, index) => (\n <Tag>{this.inheritanceModelIdNameMap?.[value] || value}</Tag>\n ),\n },\n ...mergedColumns.filter((c) => c.dataIndex !== \"_object_id\"),\n ];\n }\n return mergedColumns;\n }\n\n processExtraColumns(\n extraColumns: CustomColumn[]\n ): ColumnType<Record<string, any>>[] {\n this.recordUseBrickDataMap = new Map();\n\n return extraColumns.map((column) => {\n const { useBrick, ...processedColumn } = column;\n\n if (useBrick) {\n processedColumn.render = (value, record, index) => {\n let data = this.recordUseBrickDataMap.get(record);\n\n if (!data) {\n data = { cellData: value, rowData: record, index };\n this.recordUseBrickDataMap.set(record, data);\n }\n\n return <BrickAsComponent useBrick={useBrick} data={data} />;\n };\n }\n\n return processedColumn;\n });\n }\n\n async componentDidMount(): Promise<void> {\n if (\n this.props.modelData.isAbstract &&\n isNil(this.inheritanceModelIdNameMap)\n ) {\n this.inheritanceModelIdNameMap = await CmdbObjectApi_getIdMapName({\n parentObjectId: this.props.modelData.objectId,\n } as any);\n }\n const columns = this.getChangeColumns(this.props.fieldIds);\n this.setState({\n columns: this.getMergedColumns(columns, this.props.extraColumns),\n });\n }\n\n UNSAFE_componentWillReceiveProps(nextProps: InstanceListTableProps): void {\n this.inheritanceModelIdNameMap = {\n ...this.inheritanceModelIdNameMap,\n ...nextProps.inheritanceModelIdNameMap,\n };\n const columns = this.getChangeColumns(nextProps.fieldIds);\n this.setState({\n columns: this.getMergedColumns(columns, nextProps.extraColumns),\n });\n }\n handleClickItem(\n e: React.MouseEvent<HTMLAnchorElement, MouseEvent>,\n record: Record<string, any>\n ): void {\n if (this.props.onClickItem) {\n this.props.onClickItem(e, record.instanceId);\n }\n if (this.props.onClickItemV2) {\n this.props.onClickItemV2(e, record);\n }\n }\n getCustomPropertyRender(config: PropertyDisplayConfig, isPrimary?: boolean) {\n return (value: any, record: Record<string, any>, index: number) => {\n return (\n <config.brick\n ref={(el: HTMLElement & PropertyDisplay) => {\n if (el) {\n if (config.properties) {\n Object.assign(\n el,\n {\n dataSource: record,\n objectId: this.props.modelData.objectId,\n },\n config.properties\n );\n } else {\n Object.assign(el, {\n key: config.key,\n value,\n isPrimary,\n });\n }\n }\n }}\n />\n );\n };\n }\n getLinkContent(node: any) {\n return (\n <span style={{ display: \"flex\" }}>\n <span className={styles.iconWrap}>\n <GeneralIcon\n icon={{\n lib: \"easyops\",\n icon: \"search\",\n category: \"app\",\n color: \"#167be0\",\n }}\n />\n </span>\n <span className={styles.linkKey}>{node}</span>\n </span>\n );\n }\n // istanbul ignore next\n getSpecialUrlTemplates(\n object: Partial<CmdbModels.ModelCmdbObject>,\n record: any,\n node: any,\n url?: string,\n isRenderStructList?: boolean\n ) {\n if (!url) {\n return (\n <a\n role=\"button\"\n onClick={(e) => this.handleClickItem(e, record)}\n data-testid=\"instance-detail-link\"\n >\n {this.props.showTooltip ? (\n <Tooltip\n placement=\"top\"\n title={`${i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.JUMP_TO}`)}${\n object.name\n }${i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.INSTANCE_DETAIL}`)}`}\n >\n {this.getLinkContent(node)}\n </Tooltip>\n ) : (\n this.getLinkContent(node)\n )}\n </a>\n );\n }\n return (\n <>\n <span style={{ display: \"flex\" }}>\n <span\n className={\n isRenderStructList ? styles.iconWrapOfStruct : styles.iconWrap\n }\n >\n <Link\n to={url}\n onClick={(e: any) => this.handleClickItem(e, record)}\n data-testid=\"instance-detail-link\"\n >\n <Tooltip\n placement=\"top\"\n title={`${i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.JUMP_TO}`)}${\n object.name\n }${i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.INSTANCE_DETAIL}`)}`}\n >\n <span>\n <GeneralIcon\n icon={{\n lib: \"easyops\",\n icon: \"search\",\n category: \"app\",\n color: \"#167be0\",\n }}\n />\n </span>\n </Tooltip>\n </Link>\n </span>\n <span className={styles.linkKey}>{node}</span>\n </span>\n </>\n );\n }\n getAttributeColumnData(\n attribute: Partial<CmdbModels.ModelObjectAttr>,\n object: Partial<CmdbModels.ModelCmdbObject>,\n firstColumns?: boolean\n ): ColumnType<Record<string, any>> {\n const column: ColumnType<Record<string, any>> = {\n title: attribute.name,\n dataIndex: attribute.id,\n className: styles.instanceListTableCell,\n };\n const displayConfig = this.keyDisplayConfigMap[attribute.id];\n const isPrimary = attribute.id === getInstanceNameKeys(object)[0];\n let tempColumns: any;\n\n switch (attribute.value.type) {\n case ModelAttributeValueType.STRUCT:\n case ModelAttributeValueType.STRUCT_LIST:\n column.sorter = false;\n break;\n default:\n column.sorter = !this.props.sortDisabled;\n }\n if (displayConfig) {\n if (displayConfig.brick) {\n tempColumns = (\n value: string[],\n record: Record<string, any>,\n index: number\n ) => {\n return this.getCustomPropertyRender(displayConfig, isPrimary)(\n value,\n record,\n index\n );\n };\n } else if (displayConfig.type) {\n switch (displayConfig.type) {\n case PropertyDisplayType.Tag:\n column.render = (\n values: string | string[],\n record: Record<string, any>,\n index: number\n ) => {\n if (values) {\n if (!(values instanceof Array)) {\n values = [values];\n }\n return values.map((value) => {\n let color: string;\n if (displayConfig.valueColorMap) {\n color = displayConfig.valueColorMap[value];\n }\n return (\n <Tag key={value} color={color}>\n {value}\n </Tag>\n );\n });\n } else {\n return null;\n }\n };\n break;\n }\n }\n } else {\n let isLegacy: boolean;\n switch (attribute.value.type) {\n case ModelAttributeValueType.STRUCT:\n isLegacy = true;\n // falls through\n case ModelAttributeValueType.STRUCT_LIST:\n tempColumns = (\n value: Record<string, any> | Record<string, any>[],\n record: Record<string, any>,\n index: number\n ) => {\n return value ? (\n <Popover\n overlayStyle={{ maxWidth: 800, width: \"100%\", height: \"auto\" }}\n content={\n <StructTable\n attribute={attribute as Attribute}\n structData={value}\n isLegacy={isLegacy}\n />\n }\n placement=\"bottom\"\n >\n <Button type=\"link\" style={{ padding: \"4px 0\" }}>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.VIEW}`)}\n </Button>\n </Popover>\n ) : null;\n };\n break;\n case ModelAttributeValueType.ARR:\n case ModelAttributeValueType.ENUMS:\n tempColumns = (\n value: string[],\n record: Record<string, any>,\n index: number\n ) => {\n return value && value.length > 0 ? value.join(\"; \") : null;\n };\n break;\n case ModelAttributeValueType.BOOLEAN:\n tempColumns = (v: boolean) => (isNil(v) ? \"\" : \"\" + v);\n break;\n case ModelAttributeValueType.JSON:\n tempColumns = (v: any) =>\n typeof v === \"string\" ? v : JSON.stringify(v);\n break;\n case ModelAttributeValueType.STRING:\n tempColumns = (v: string) => v;\n break;\n case ModelAttributeValueType.FLOAT:\n tempColumns = (value: number) => {\n return <FloatDisplayBrick floatValue={value} />;\n };\n break;\n default:\n if (object.objectId === \"HOST\" && attribute.id in customRules) {\n tempColumns = (\n text: any,\n record: Record<string, any>,\n index: number\n ) => {\n if (!isBoolean(text) && (text || text === 0)) {\n text = compact(text.toString().split(\" \"));\n const valStr = text\n .map((item: any) => {\n return (customRules as any)[attribute.id](item, attribute);\n })\n .join(\" \");\n return valStr === \"\" ? undefined : valStr;\n }\n return (customRules as any)[attribute.id](text, attribute);\n };\n } else {\n tempColumns = (v: string) => v;\n }\n }\n }\n // istanbul ignore next\n if (tempColumns) {\n column.render =\n firstColumns && this.props.detailUrlTemplates\n ? (value: string, record: Record<string, any>, index: number) => {\n //要跳到的路由\n const detailUrlTemplate = getTemplateFromMap(\n this.props.detailUrlTemplates,\n object.objectId\n );\n if (detailUrlTemplate) {\n const data = {\n ...record,\n objectId: object.isAbstract\n ? record._object_id\n : object.objectId,\n };\n const url = parseTemplate(detailUrlTemplate, data);\n if (\n attribute.value.type === ModelAttributeValueType.STRUCT ||\n attribute.value.type === ModelAttributeValueType.STRUCT_LIST\n ) {\n return this.getSpecialUrlTemplates(\n object,\n record,\n tempColumns(value, record, index),\n url,\n true\n );\n }\n if (displayConfig && displayConfig.brick) {\n return this.getSpecialUrlTemplates(\n object,\n record,\n tempColumns(value, record, index),\n url\n );\n }\n return (\n <Link\n to={url}\n onClick={(e: any) => this.handleClickItem(e, record)}\n data-testid=\"instance-detail-link\"\n {...(!firstColumns || object.isAbstract\n ? { target: \"_blank\" }\n : this.props.target\n ? { target: this.props.target }\n : {})}\n >\n <Tooltip\n placement=\"top\"\n title={`${i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.JUMP_TO}`\n )}${\n object.isAbstract\n ? this.inheritanceModelIdNameMap?.[\n record._object_id\n ] || record._object_id\n : object.name\n }${i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.INSTANCE_DETAIL}`\n )}`}\n >\n <span>\n <span className={styles.iconWrap}>\n <GeneralIcon\n icon={{\n lib: \"easyops\",\n icon: \"search\",\n category: \"app\",\n color: \"#167be0\",\n }}\n />\n </span>\n <span className={styles.linkKey}>\n {tempColumns(value, record, index)}\n </span>\n </span>\n </Tooltip>\n </Link>\n );\n } else {\n return this.getSpecialUrlTemplates(\n object,\n record,\n tempColumns(value, record, index)\n );\n }\n }\n : tempColumns;\n }\n return column;\n }\n\n getRelationColumnData(\n relation: Partial<CmdbModels.ModelObjectRelation>,\n object: Partial<CmdbModels.ModelCmdbObject>,\n sides: RelationObjectSides,\n firstColumns?: boolean\n ): ColumnType<Record<string, any>> {\n const key = relation[`${sides.this}_id` as RelationIdKeys];\n\n const column: ColumnType<Record<string, any>> = {\n title: relation[`${sides.this}_name` as RelationNameKeys],\n dataIndex: key,\n sorter: !this.props.sortDisabled,\n className: styles.instanceListTableCell,\n };\n const displayConfig = this.keyDisplayConfigMap[key];\n let tempColumns: any;\n\n if (displayConfig) {\n tempColumns = (\n value: string[],\n record: Record<string, any>,\n index: number\n ) => {\n return this.getCustomPropertyRender(displayConfig)(\n value,\n record,\n index\n );\n };\n } else {\n tempColumns = (\n instances: Record<string, any>[],\n record: Record<string, any>,\n index: number\n ) => {\n if (instances && instances.length > 0) {\n const objectId =\n relation[`${sides.that}_object_id` as RelationObjectIdKeys];\n const nameKeys = getInstanceNameKeys(\n this.props.idObjectMap[objectId]\n );\n let detailUrlTemplate: string;\n\n if (this.props.detailUrlTemplates) {\n detailUrlTemplate = getTemplateFromMap(\n this.props.detailUrlTemplates,\n objectId\n );\n }\n\n const instanceNodes = instances.map((instance, index) => {\n let subName: string;\n if (nameKeys.length > 1) {\n subName = instance[nameKeys[1]];\n }\n\n let instanceName = subName\n ? `${instance[nameKeys[0]]} (${subName})`\n : instance[nameKeys[0]];\n\n if (detailUrlTemplate) {\n const url = parseTemplate(detailUrlTemplate, {\n ...instance,\n objectId,\n });\n return (\n <React.Fragment key={instance.instanceId}>\n {index > 0 &&\n (this.props.separatorUsedInRelationData ?? \"; \")}\n {this.props.relationLinkDisabled ? (\n instanceName\n ) : (\n <Link\n target={\"_blank\"}\n // 使用 <Link> 以保持链接的原生能力\n to={url}\n // 自定义 onClick 以支持事件配置和拦截\n onClick={(e) => this.handleClickItem(e, record)}\n >\n {instanceName}\n </Link>\n )}\n </React.Fragment>\n );\n } else {\n if (index > 0) {\n instanceName =\n (this.props.separatorUsedInRelationData ?? \"; \") +\n instanceName;\n }\n return instanceName;\n }\n });\n\n return instanceNodes;\n } else {\n return null;\n }\n };\n }\n // istanbul ignore next\n if (tempColumns) {\n column.render =\n firstColumns && this.props.detailUrlTemplates\n ? (value: string, record: Record<string, any>, index: number) => {\n //要跳到的路由\n const detailUrlTemplate = getTemplateFromMap(\n this.props.detailUrlTemplates,\n object.objectId\n );\n if (detailUrlTemplate) {\n const data = {\n ...record,\n objectId: object.objectId,\n };\n const url = parseTemplate(detailUrlTemplate, data);\n return this.getSpecialUrlTemplates(\n object,\n record,\n tempColumns(value, record, index),\n url\n );\n } else {\n return this.getSpecialUrlTemplates(\n object,\n record,\n tempColumns(value, record, index)\n );\n }\n }\n : tempColumns;\n }\n return column;\n }\n\n setColumnSortOrder<T = any>(column: ColumnType<T>) {\n if (\n (column.dataIndex !== undefined &&\n column.dataIndex === this.props.sort) ||\n (column.key !== undefined && column.key === this.props.sort)\n ) {\n column.sortOrder = this.props.asc ? SortOrder.Ascend : SortOrder.Descend;\n } else {\n column.sortOrder = null;\n }\n return column;\n }\n\n onChange = (\n pagination: TablePaginationConfig,\n filters: Record<string, (React.Key | boolean)[]>,\n sorter:\n | SorterResult<Record<string, any>>\n | SorterResult<Record<string, any>>[],\n extra: TableCurrentDataSource<Record<string, any>>\n ) => {\n const newInstanceSourceQuery = filters?._object_id?.[0] as string;\n if (newInstanceSourceQuery !== this.state.instanceSourceQuery) {\n this.props.onInstanceSourceChange(newInstanceSourceQuery);\n }\n if (\n // pagination.current will pass in 0 when total is 0 and sorter has changed\n (pagination.current > 0 &&\n pagination.current !== this.state.pagination.current) ||\n pagination.pageSize !== this.state.pagination.pageSize\n ) {\n this.props.onPaginationChange?.({\n page: pagination.current,\n pageSize: pagination.pageSize,\n });\n }\n if (!Array.isArray(sorter)) {\n const asc = { [SortOrder.Ascend]: true, [SortOrder.Descend]: false }[\n sorter.order\n ];\n if (\n (sorter.column ? sorter.field : undefined) !== this.props.sort ||\n asc !== this.props.asc\n ) {\n this.props.onSortingChange?.({ sort: sorter.field as string, asc });\n }\n }\n };\n\n onSelectChange = (\n selectedRowKeys: (string | number)[],\n selectedRows: Record<string, any>[]\n ) => {\n this.selectedRows = selectedRows;\n this.props.onSelectionChange?.({\n selectedKeys: selectedRowKeys as string[],\n selectedItems: selectedRows,\n });\n };\n handelIpCopyText = async (\n ev: React.MouseEvent<HTMLElement, MouseEvent>,\n dataIndex: string\n ) => {\n ev.stopPropagation();\n let selectedRowKeys = this.props.selectedRowKeys;\n let selectedRows = this.selectedRows.filter((v) => v);\n const objectId = this.props.modelData.objectId;\n if (selectedRowKeys?.length < 1) {\n message.warning(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.SELECT_COPY_DATA}`)\n );\n return false;\n }\n selectedRowKeys = selectedRowKeys.filter((k) =>\n selectedRows.every((row) => row[this.ROM_KEY] !== k)\n );\n if (selectedRowKeys.length > 0) {\n const resp = await InstanceApi_postSearch(objectId, {\n query: {\n instanceId: {\n $in: selectedRowKeys,\n },\n },\n page_size: selectedRowKeys.length,\n });\n selectedRows = [...selectedRows, ...(resp?.list || [])];\n }\n const inputDom = document.createElement(\"textarea\");\n inputDom.value = [\n ...new Set(\n map(\n selectedRows.filter((v) => v[dataIndex]),\n dataIndex\n )\n ),\n ].join(\"\\n\");\n document.body.appendChild(inputDom);\n inputDom.select(); //选择对象\n document.execCommand(\"copy\");\n inputDom.remove();\n message.success(i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.COPY_SUCCESS}`));\n };\n componentDidUpdate(prevProps: InstanceListTableProps) {\n if (this.props.instanceListData !== prevProps.instanceListData) {\n this.setState({\n list: this.props.instanceListData.list,\n pagination: {\n ...this.state.defaultPagination,\n total: this.props.instanceListData.total,\n current: this.props.instanceListData.page,\n pageSize: this.props.instanceListData.page_size,\n },\n });\n }\n if (\n this.props.sort !== prevProps.sort ||\n this.props.asc !== prevProps.asc\n ) {\n const columns: ColumnType<Record<string, any>>[] = [];\n this.state.columns.forEach((column) =>\n columns.push(this.setColumnSortOrder(column))\n );\n this.setState({ columns });\n }\n if (this.props.instanceSourceQuery !== prevProps.instanceSourceQuery) {\n this.setState({\n instanceSourceQuery: this.props.instanceSourceQuery,\n });\n }\n }\n\n render(): React.ReactNode {\n const { selectedRowKeys, rowSelectionType } = this.props;\n const rowSelection: TableRowSelection<Record<string, any>> = this.props\n .selectDisabled\n ? null\n : {\n type: rowSelectionType,\n preserveSelectedRowKeys: true,\n selectedRowKeys,\n onChange: this.onSelectChange,\n };\n\n const classes = classnames({\n [styles.shouldEllipsis]: this.props.autoBreakLine,\n [styles.tableWrapper]: true,\n });\n this.state.columns.map((column) => {\n const dataIndex = column.dataIndex as string;\n // istanbul ignore next\n if (\n this.props.modelData.attrList.find((attr) => attr.id === dataIndex)\n ?.value?.mode === \"url\"\n ) {\n column.render = (text, row, index) => CmdbUrlLink({ linkStr: text });\n }\n if (\n this.props.ipCopy &&\n this.props.modelData.attrList.find((attr) => attr.id === dataIndex)\n ?.value?.type === \"ip\"\n ) {\n column.filterDropdown = () => <div></div>;\n column.filterIcon = () => (\n <Tooltip\n className={styles.copyWrap}\n title={i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.COPY_SELECTED_IP}`)}\n >\n <CopyOutlined\n style={{ fontSize: 16 }}\n onClick={(ev) => this.handelIpCopyText(ev, dataIndex)}\n />\n </Tooltip>\n );\n }\n });\n return (\n <div\n className={classes}\n style={{ overflowX: \"auto\", overflowY: \"hidden\" }}\n >\n <Table\n columns={this.state.columns}\n dataSource={this.props.instanceListData.list}\n rowKey={this.ROM_KEY}\n scroll={{\n x: this.props.fixedHeader\n ? (this.state.columns?.length ?? 0) * 150\n : \"max-content\",\n y: this.props.fixedHeader ? 560 : null,\n }}\n pagination={this.state.pagination}\n rowSelection={rowSelection}\n onChange={this.onChange}\n expandable={{\n // ant的table数据中有children字段时会自动展示为树形表格,导致模型设置了id为children的字段或者关系字段时会出现报错或者不必要的展开样式\n // rowExpandable在dataSource含children属性时不生效,见https://github.com/ant-design/ant-design/issues/30444\n // 故这里将默认展开的字段设置为不符合模型属性id校验的值\n childrenColumnName: \"0\",\n }}\n {...this.props.configProps}\n />\n </div>\n );\n }\n}\n\nexport const InstanceListTable = React.memo(\n withTranslation(NS_LIBS_CMDB_INSTANCES)(LegacyInstanceListTable)\n);\n"],"mappings":"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"}
1
+ {"version":3,"file":"InstanceListTable.js","names":["React","withTranslation","classnames","Button","Popover","Table","Tag","Tooltip","Modal","message","isNil","isBoolean","compact","map","CopyOutlined","DeleteOutlined","PropertyDisplayType","CmdbObjectApi_getIdMapName","InstanceApi_postSearch","Link","GeneralIcon","forEachAvailableFields","getInstanceNameKeys","getTemplateFromMap","parseTemplate","modifyModelData","ModelAttributeValueType","StructTable","styles","customRules","BrickAsComponent","NS_LIBS_CMDB_INSTANCES","K","i18n","CmdbUrlLink","FloatDisplayBrick","SortOrder","SELF_RENDER_COLUMNS","HOST","key","brick","CLUSTER","properties","fields","value","showBg","LegacyInstanceListTable","Component","constructor","props","t","INSTANCE_SOURCE","INSTANCE_SOURCE_TOOLTIP","titleTooltipIcon","lib","icon","theme","pagination","filters","sorter","extra","newInstanceSourceQuery","_object_id","state","instanceSourceQuery","onInstanceSourceChange","current","pageSize","onPaginationChange","page","Array","isArray","asc","Ascend","Descend","order","column","field","undefined","sort","onSortingChange","selectedRowKeys","selectedRows","onSelectionChange","selectedKeys","selectedItems","ev","dataIndex","stopPropagation","filter","v","objectId","modelData","length","warning","SELECT_COPY_DATA","k","every","row","ROM_KEY","resp","query","instanceId","$in","page_size","list","inputDom","document","createElement","Set","join","body","appendChild","select","execCommand","remove","success","COPY_SUCCESS","forEach","config","keyDisplayConfigMap","propertyDisplayConfigs","fieldIds","sortedColumns","getChangeColumns","inheritanceModelIdNameMap","defaultPagination","disabled","paginationDisabled","pageSizeOptions","showSizeChanger","showTotal","totals","totalText","PAGINATION_TOTAL_TEXT","total","PAGINATION_TOTAL_UNIT","instanceListData","columns","getMergedColumns","extraColumns","openConfirmModal","index","confirm","title","DELETE_INSTANCE_CONFIRM_MSG","okText","CONFIRM","okType","cancelText","CANCEL","onOk","processList","splice","handleDeleteFunction","ids","attr","firstColumns","push","setColumnSortOrder","getAttributeColumnData","relation","sides","getRelationColumnData","idColumnMap","Map","set","view","attr_order","id","get","delete","isOperate","OPERATION","className","structTableTd","fixed","render","_text","record","color","mergedColumns","processExtraColumns","isAbstract","instanceSourceTitle","filterInstanceSourceDisabled","text","filterMultiple","filteredValue","c","recordUseBrickDataMap","useBrick","processedColumn","data","cellData","rowData","componentDidMount","parentObjectId","setState","UNSAFE_componentWillReceiveProps","nextProps","handleClickItem","e","onClickItem","onClickItemV2","getCustomPropertyRender","isPrimary","el","Object","assign","dataSource","getDisplayConfigColumn","getUseBrickConfigRender","getLinkContent","node","display","iconWrap","category","linkKey","getSpecialUrlTemplates","object","url","isRenderStructList","showTooltip","JUMP_TO","name","INSTANCE_DETAIL","iconWrapOfStruct","attribute","instanceListTableCell","displayConfig","tempColumns","type","STRUCT","STRUCT_LIST","sortDisabled","values","valueColorMap","isLegacy","maxWidth","width","height","padding","VIEW","ARR","ENUMS","BOOLEAN","JSON","stringify","STRING","FLOAT","toString","split","valStr","item","detailUrlTemplates","detailUrlTemplate","target","this","instances","that","nameKeys","idObjectMap","instanceNodes","instance","subName","instanceName","separatorUsedInRelationData","relationLinkDisabled","sortOrder","componentDidUpdate","prevProps","rowSelectionType","rowSelection","selectDisabled","preserveSelectedRowKeys","onChange","onSelectChange","classes","shouldEllipsis","autoBreakLine","tableWrapper","attrList","find","mode","linkStr","ipCopy","filterDropdown","filterIcon","copyWrap","COPY_SELECTED_IP","fontSize","handelIpCopyText","overflowX","overflowY","x","fixedHeader","y","childrenColumnName","configProps","InstanceListTable","memo"],"sources":["../../../src/instance-list-table/InstanceListTable.tsx"],"sourcesContent":["import React from \"react\";\nimport { withTranslation, WithTranslation } from \"react-i18next\";\nimport classnames from \"classnames\";\nimport {\n Button,\n Popover,\n Table,\n Tag,\n Tooltip,\n Modal,\n message,\n Typography,\n} from \"antd\";\nimport { isNil, isBoolean, compact, map } from \"lodash\";\nimport { CopyOutlined, DeleteOutlined } from \"@ant-design/icons\";\nimport { ColumnType, TablePaginationConfig, TableProps } from \"antd/lib/table\";\nimport {\n SorterResult,\n TableCurrentDataSource,\n TableRowSelection,\n} from \"antd/lib/table/interface\";\nimport {\n PropertyDisplay,\n PropertyDisplayConfig,\n PropertyDisplayType,\n ReadPaginationChangeDetail,\n ReadSelectionChangeDetail,\n ReadSortingChangeDetail,\n UseBrickConf,\n} from \"@next-core/brick-types\";\nimport {\n CmdbModels,\n InstanceApi_PostSearchV3ResponseBody,\n CmdbObjectApi_getIdMapName,\n InstanceApi_postSearch,\n} from \"@next-sdk/cmdb-sdk\";\nimport { Link, GeneralIcon } from \"@next-libs/basic-components\";\nimport {\n forEachAvailableFields,\n getInstanceNameKeys,\n getTemplateFromMap,\n parseTemplate,\n modifyModelData,\n RelationIdKeys,\n RelationNameKeys,\n RelationObjectIdKeys,\n RelationObjectSides,\n} from \"@next-libs/cmdb-utils\";\nimport { ModelAttributeValueType } from \"../model-attribute-form-control/ModelAttributeFormControl\";\nimport { Attribute, StructTable } from \"../struct-components\";\nimport styles from \"./InstanceListTable.module.css\";\nimport { customRules } from \"./utils\";\nimport { BrickAsComponent } from \"@next-core/brick-kit\";\nimport { NS_LIBS_CMDB_INSTANCES, K } from \"../i18n/constants\";\nimport i18n from \"i18next\";\nimport { CmdbUrlLink } from \"../cmdb-url-link/CmdbUrlLink\";\nimport { FloatDisplayBrick } from \"../float-display-brick/FloatDisplayBrick\";\n// const { Paragraph } = Typography;\nexport interface CustomColumn extends ColumnType<Record<string, unknown>> {\n useBrick: UseBrickConf;\n}\n\nexport type UseBrickAndPropertyDisplayConfig = PropertyDisplayConfig & {\n useBrick?: UseBrickConf;\n};\n\nexport interface InstanceListUseBrickData {\n cellData: unknown;\n rowData: Record<string, unknown>;\n index: number;\n}\n\nenum SortOrder {\n Ascend = \"ascend\",\n Descend = \"descend\",\n}\n\nconst SELF_RENDER_COLUMNS: {\n [objectId: string]: UseBrickAndPropertyDisplayConfig[];\n} = {\n HOST: [\n {\n key: \"_agentStatus\",\n brick: \"presentational-bricks.agent-status\",\n },\n ],\n CLUSTER: [\n {\n key: \"type\",\n brick: \"presentational-bricks.brick-cluster-type\",\n properties: {\n fields: {\n value: \"type\",\n },\n showBg: true,\n },\n },\n ],\n};\n\nexport interface InstanceListTableProps extends WithTranslation {\n detailUrlTemplates?: Record<string, string>;\n fieldIds?: string[];\n idObjectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>;\n modelData: Partial<CmdbModels.ModelCmdbObject>;\n instanceListData: InstanceApi_PostSearchV3ResponseBody;\n sort?: string;\n asc?: boolean;\n propertyDisplayConfigs?: UseBrickAndPropertyDisplayConfig[];\n selectDisabled?: boolean;\n autoBreakLine?: boolean;\n sortDisabled?: boolean;\n instanceSourceQuery?: string;\n inheritanceModelIdNameMap?: Record<string, string>;\n filterInstanceSourceDisabled?: boolean;\n onClickItem?(\n evt: React.MouseEvent<HTMLAnchorElement, MouseEvent>,\n id: string\n ): void;\n onClickItemV2?(\n evt: React.MouseEvent<HTMLAnchorElement, MouseEvent>,\n record: Record<string, any>\n ): void;\n onPaginationChange?(pagination: ReadPaginationChangeDetail): void;\n onSortingChange?(sorting: ReadSortingChangeDetail): void;\n onSelectionChange?(selection: ReadSelectionChangeDetail): void;\n onInstanceSourceChange?(instanceSourceQuery: string): void;\n relationLinkDisabled?: boolean;\n paginationDisabled?: boolean;\n pageSizeOptions?: string[];\n showSizeChanger?: boolean;\n selectedRowKeys?: string[];\n configProps?: TableProps<Record<string, any>>;\n extraColumns?: CustomColumn[];\n isOperate?: boolean;\n handleDeleteFunction?: (v: any[]) => void;\n target?: string;\n ipCopy?: boolean;\n separatorUsedInRelationData?: string;\n showTooltip?: boolean;\n fixedHeader?: boolean;\n rowSelectionType?: \"checkbox\" | \"radio\";\n}\n\ninterface InstanceListTableState {\n list: Record<string, any>[];\n instanceSourceQuery?: string;\n columns?: ColumnType<Record<string, any>>[];\n pagination: TablePaginationConfig;\n defaultPagination: TablePaginationConfig;\n}\n\nexport class LegacyInstanceListTable extends React.Component<\n InstanceListTableProps,\n InstanceListTableState\n> {\n keyDisplayConfigMap: Record<string, UseBrickAndPropertyDisplayConfig> = {};\n recordUseBrickDataMap: Map<unknown, InstanceListUseBrickData>;\n inheritanceModelIdNameMap: Record<string, string>;\n selectedRows: Record<string, any>[] = [];\n ROM_KEY = \"instanceId\";\n\n instanceSourceTitle: React.ReactElement = (\n <>\n <span>{i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.INSTANCE_SOURCE}`)}</span>\n <Tooltip\n title={i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.INSTANCE_SOURCE_TOOLTIP}`)}\n >\n <span className={styles.titleTooltipIcon}>\n <GeneralIcon\n icon={{\n lib: \"antd\",\n icon: \"question-circle\",\n theme: \"filled\",\n }}\n />\n </span>\n </Tooltip>\n </>\n );\n\n constructor(props: InstanceListTableProps) {\n super(props);\n const objectId = this.props.modelData.objectId;\n SELF_RENDER_COLUMNS[objectId]?.forEach(\n (config) => (this.keyDisplayConfigMap[config.key] = config)\n );\n this.props.propertyDisplayConfigs?.forEach(\n (config) => (this.keyDisplayConfigMap[config.key] = config)\n );\n const fieldIds = this.props.fieldIds;\n const sortedColumns = this.getChangeColumns(fieldIds);\n this.inheritanceModelIdNameMap = this.props.inheritanceModelIdNameMap;\n\n const defaultPagination = {\n disabled: this.props.paginationDisabled,\n pageSizeOptions: this.props.pageSizeOptions,\n showSizeChanger: this.props.showSizeChanger,\n showTotal: (totals: number) => (\n <span className={styles.totalText}>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.PAGINATION_TOTAL_TEXT}`)}{\" \"}\n <strong className={styles.total}>{totals}</strong>{\" \"}\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.PAGINATION_TOTAL_UNIT}`)}\n </span>\n ),\n };\n this.state = {\n list: this.props.instanceListData.list,\n instanceSourceQuery: this.props.instanceSourceQuery,\n columns: this.getMergedColumns(sortedColumns, this.props.extraColumns),\n pagination: {\n ...defaultPagination,\n total: this.props.instanceListData.total,\n current: this.props.instanceListData.page,\n pageSize: this.props.instanceListData.page_size,\n },\n defaultPagination: defaultPagination,\n };\n }\n // istanbul ignore next\n openConfirmModal(index: number) {\n const confirm = Modal.confirm;\n\n confirm({\n title: i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.DELETE_INSTANCE_CONFIRM_MSG}`\n ),\n okText: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CONFIRM}`),\n okType: \"danger\",\n cancelText: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CANCEL}`),\n onOk: () => {\n this.remove(index);\n },\n });\n }\n // istanbul ignore next\n remove(index: number) {\n const processList = [...this.props.instanceListData.list];\n processList.splice(index, 1);\n this.props.handleDeleteFunction(processList);\n }\n getChangeColumns(ids: string[]) {\n const columns: InstanceListTableState[\"columns\"] = [];\n forEachAvailableFields(\n modifyModelData(this.props.modelData),\n (attr, firstColumns?: boolean) =>\n columns.push(\n this.setColumnSortOrder(\n this.getAttributeColumnData(\n attr,\n this.props.modelData,\n firstColumns\n )\n )\n ),\n (relation, sides, firstColumns?: boolean) =>\n columns.push(\n this.setColumnSortOrder(\n this.getRelationColumnData(\n relation,\n this.props.modelData,\n sides,\n firstColumns\n )\n )\n ),\n ids\n );\n const idColumnMap = new Map<string, ColumnType<Record<string, any>>>();\n columns.forEach((column) =>\n idColumnMap.set(column.dataIndex as string, column)\n );\n let fieldIds: string[];\n if (ids?.length) {\n fieldIds = ids;\n } else if (\n this.props.modelData.view &&\n this.props.modelData.view.attr_order\n ) {\n fieldIds = this.props.modelData.view.attr_order;\n }\n let sortedColumns: InstanceListTableState[\"columns\"];\n if (fieldIds) {\n sortedColumns = [];\n fieldIds.forEach((id) => {\n const column = idColumnMap.get(id);\n if (column) {\n sortedColumns.push(column);\n idColumnMap.delete(id);\n }\n });\n idColumnMap.forEach((column) => sortedColumns.push(column));\n } else {\n sortedColumns = columns;\n }\n if (this.props.isOperate) {\n sortedColumns.push({\n title: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.OPERATION}`),\n className: styles.structTableTd,\n dataIndex: \"operation\",\n fixed: \"right\",\n render: (_text: string, record: any, index: number): any => {\n return (\n <Button\n data-testid={\"button-up-\" + index}\n type=\"link\"\n icon={\n <DeleteOutlined style={{ color: \"var(--theme-red-color)\" }} />\n }\n onClick={() => {\n this.openConfirmModal(index);\n }}\n />\n );\n },\n });\n }\n return sortedColumns;\n }\n\n getMergedColumns(\n columns: ColumnType<Record<string, any>>[],\n extraColumns: CustomColumn[]\n ): ColumnType<Record<string, any>>[] {\n let mergedColumns = extraColumns\n ? [...columns, ...this.processExtraColumns(extraColumns)]\n : columns;\n if (this.props.modelData.isAbstract) {\n mergedColumns = [\n {\n title: this.instanceSourceTitle,\n dataIndex: \"_object_id\",\n ...(!this.props.filterInstanceSourceDisabled\n ? {\n filters: map(this.inheritanceModelIdNameMap, (value, key) => ({\n text: value,\n value: key,\n })),\n filterMultiple: false,\n filteredValue: this.props.instanceSourceQuery && [\n this.props.instanceSourceQuery,\n ],\n }\n : {}),\n render: (value, record, index) => (\n <Tag>{this.inheritanceModelIdNameMap?.[value] || value}</Tag>\n ),\n },\n ...mergedColumns.filter((c) => c.dataIndex !== \"_object_id\"),\n ];\n }\n return mergedColumns;\n }\n\n processExtraColumns(\n extraColumns: CustomColumn[]\n ): ColumnType<Record<string, any>>[] {\n this.recordUseBrickDataMap = new Map();\n\n return extraColumns.map((column) => {\n const { useBrick, ...processedColumn } = column;\n\n if (useBrick) {\n processedColumn.render = (value, record, index) => {\n let data = this.recordUseBrickDataMap.get(record);\n\n if (!data) {\n data = { cellData: value, rowData: record, index };\n this.recordUseBrickDataMap.set(record, data);\n }\n\n return <BrickAsComponent useBrick={useBrick} data={data} />;\n };\n }\n\n return processedColumn;\n });\n }\n\n async componentDidMount(): Promise<void> {\n if (\n this.props.modelData.isAbstract &&\n isNil(this.inheritanceModelIdNameMap)\n ) {\n this.inheritanceModelIdNameMap = await CmdbObjectApi_getIdMapName({\n parentObjectId: this.props.modelData.objectId,\n } as any);\n }\n const columns = this.getChangeColumns(this.props.fieldIds);\n this.setState({\n columns: this.getMergedColumns(columns, this.props.extraColumns),\n });\n }\n\n UNSAFE_componentWillReceiveProps(nextProps: InstanceListTableProps): void {\n this.inheritanceModelIdNameMap = {\n ...this.inheritanceModelIdNameMap,\n ...nextProps.inheritanceModelIdNameMap,\n };\n const columns = this.getChangeColumns(nextProps.fieldIds);\n this.setState({\n columns: this.getMergedColumns(columns, nextProps.extraColumns),\n });\n }\n handleClickItem(\n e: React.MouseEvent<HTMLAnchorElement, MouseEvent>,\n record: Record<string, any>\n ): void {\n if (this.props.onClickItem) {\n this.props.onClickItem(e, record.instanceId);\n }\n if (this.props.onClickItemV2) {\n this.props.onClickItemV2(e, record);\n }\n }\n getCustomPropertyRender(\n config: UseBrickAndPropertyDisplayConfig,\n isPrimary?: boolean\n ) {\n return (value: any, record: Record<string, any>, index: number) => {\n return (\n <config.brick\n ref={(el: HTMLElement & PropertyDisplay) => {\n if (el) {\n if (config.properties) {\n Object.assign(\n el,\n {\n dataSource: record,\n objectId: this.props.modelData.objectId,\n },\n config.properties\n );\n } else {\n Object.assign(el, {\n key: config.key,\n value,\n isPrimary,\n });\n }\n }\n }}\n />\n );\n };\n }\n getDisplayConfigColumn(\n config: UseBrickAndPropertyDisplayConfig,\n isPrimary?: boolean\n ) {\n return (value: string[], record: Record<string, any>, index: number) => {\n if (config.brick) {\n return this.getCustomPropertyRender(config, isPrimary)(\n value,\n record,\n index\n );\n } else if (config.useBrick) {\n return this.getUseBrickConfigRender(config)(value, record, index);\n }\n };\n }\n getUseBrickConfigRender(config: UseBrickAndPropertyDisplayConfig) {\n return (value: any, record: Record<string, any>, index: number) => {\n const data = { cellData: value, rowData: record, index };\n return <BrickAsComponent useBrick={config.useBrick} data={data} />;\n };\n }\n\n getLinkContent(node: any) {\n return (\n <span style={{ display: \"flex\" }}>\n <span className={styles.iconWrap}>\n <GeneralIcon\n icon={{\n lib: \"easyops\",\n icon: \"search\",\n category: \"app\",\n color: \"#167be0\",\n }}\n />\n </span>\n <span className={styles.linkKey}>{node}</span>\n </span>\n );\n }\n // istanbul ignore next\n getSpecialUrlTemplates(\n object: Partial<CmdbModels.ModelCmdbObject>,\n record: any,\n node: any,\n url?: string,\n isRenderStructList?: boolean\n ) {\n if (!url) {\n return (\n <a\n role=\"button\"\n onClick={(e) => this.handleClickItem(e, record)}\n data-testid=\"instance-detail-link\"\n >\n {this.props.showTooltip ? (\n <Tooltip\n placement=\"top\"\n title={`${i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.JUMP_TO}`)}${\n object.name\n }${i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.INSTANCE_DETAIL}`)}`}\n >\n {this.getLinkContent(node)}\n </Tooltip>\n ) : (\n this.getLinkContent(node)\n )}\n </a>\n );\n }\n return (\n <>\n <span style={{ display: \"flex\" }}>\n <span\n className={\n isRenderStructList ? styles.iconWrapOfStruct : styles.iconWrap\n }\n >\n <Link\n to={url}\n onClick={(e: any) => this.handleClickItem(e, record)}\n data-testid=\"instance-detail-link\"\n >\n <Tooltip\n placement=\"top\"\n title={`${i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.JUMP_TO}`)}${\n object.name\n }${i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.INSTANCE_DETAIL}`)}`}\n >\n <span>\n <GeneralIcon\n icon={{\n lib: \"easyops\",\n icon: \"search\",\n category: \"app\",\n color: \"#167be0\",\n }}\n />\n </span>\n </Tooltip>\n </Link>\n </span>\n <span className={styles.linkKey}>{node}</span>\n </span>\n </>\n );\n }\n getAttributeColumnData(\n attribute: Partial<CmdbModels.ModelObjectAttr>,\n object: Partial<CmdbModels.ModelCmdbObject>,\n firstColumns?: boolean\n ): ColumnType<Record<string, any>> {\n const column: ColumnType<Record<string, any>> = {\n title: attribute.name,\n dataIndex: attribute.id,\n className: styles.instanceListTableCell,\n };\n const displayConfig = this.keyDisplayConfigMap[attribute.id];\n const isPrimary = attribute.id === getInstanceNameKeys(object)[0];\n let tempColumns: any;\n\n switch (attribute.value.type) {\n case ModelAttributeValueType.STRUCT:\n case ModelAttributeValueType.STRUCT_LIST:\n column.sorter = false;\n break;\n default:\n column.sorter = !this.props.sortDisabled;\n }\n if (displayConfig) {\n if (displayConfig.brick || displayConfig.useBrick) {\n tempColumns = this.getDisplayConfigColumn(displayConfig, isPrimary);\n } else if (displayConfig.type) {\n switch (displayConfig.type) {\n case PropertyDisplayType.Tag:\n column.render = (\n values: string | string[],\n record: Record<string, any>,\n index: number\n ) => {\n if (values) {\n if (!(values instanceof Array)) {\n values = [values];\n }\n return values.map((value) => {\n let color: string;\n if (displayConfig.valueColorMap) {\n color = displayConfig.valueColorMap[value];\n }\n return (\n <Tag key={value} color={color}>\n {value}\n </Tag>\n );\n });\n } else {\n return null;\n }\n };\n break;\n }\n }\n } else {\n let isLegacy: boolean;\n switch (attribute.value.type) {\n case ModelAttributeValueType.STRUCT:\n isLegacy = true;\n // falls through\n case ModelAttributeValueType.STRUCT_LIST:\n tempColumns = (\n value: Record<string, any> | Record<string, any>[],\n record: Record<string, any>,\n index: number\n ) => {\n return value ? (\n <Popover\n overlayStyle={{ maxWidth: 800, width: \"100%\", height: \"auto\" }}\n content={\n <StructTable\n attribute={attribute as Attribute}\n structData={value}\n isLegacy={isLegacy}\n />\n }\n placement=\"bottom\"\n >\n <Button type=\"link\" style={{ padding: \"4px 0\" }}>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.VIEW}`)}\n </Button>\n </Popover>\n ) : null;\n };\n break;\n case ModelAttributeValueType.ARR:\n case ModelAttributeValueType.ENUMS:\n tempColumns = (\n value: string[],\n record: Record<string, any>,\n index: number\n ) => {\n return value && value.length > 0 ? value.join(\"; \") : null;\n };\n break;\n case ModelAttributeValueType.BOOLEAN:\n tempColumns = (v: boolean) => (isNil(v) ? \"\" : \"\" + v);\n break;\n case ModelAttributeValueType.JSON:\n tempColumns = (v: any) =>\n typeof v === \"string\" ? v : JSON.stringify(v);\n break;\n case ModelAttributeValueType.STRING:\n tempColumns = (v: string) => v;\n break;\n case ModelAttributeValueType.FLOAT:\n tempColumns = (value: number) => {\n return <FloatDisplayBrick floatValue={value} />;\n };\n break;\n default:\n if (object.objectId === \"HOST\" && attribute.id in customRules) {\n tempColumns = (\n text: any,\n record: Record<string, any>,\n index: number\n ) => {\n if (!isBoolean(text) && (text || text === 0)) {\n text = compact(text.toString().split(\" \"));\n const valStr = text\n .map((item: any) => {\n return (customRules as any)[attribute.id](item, attribute);\n })\n .join(\" \");\n return valStr === \"\" ? undefined : valStr;\n }\n return (customRules as any)[attribute.id](text, attribute);\n };\n } else {\n tempColumns = (v: string) => v;\n }\n }\n }\n // istanbul ignore next\n if (tempColumns) {\n column.render =\n firstColumns && this.props.detailUrlTemplates\n ? (value: string, record: Record<string, any>, index: number) => {\n //要跳到的路由\n const detailUrlTemplate = getTemplateFromMap(\n this.props.detailUrlTemplates,\n object.objectId\n );\n if (detailUrlTemplate) {\n const data = {\n ...record,\n objectId: object.isAbstract\n ? record._object_id\n : object.objectId,\n };\n const url = parseTemplate(detailUrlTemplate, data);\n if (\n attribute.value.type === ModelAttributeValueType.STRUCT ||\n attribute.value.type === ModelAttributeValueType.STRUCT_LIST\n ) {\n return this.getSpecialUrlTemplates(\n object,\n record,\n tempColumns(value, record, index),\n url,\n true\n );\n }\n if (displayConfig && displayConfig.brick) {\n return this.getSpecialUrlTemplates(\n object,\n record,\n tempColumns(value, record, index),\n url\n );\n }\n return (\n <Link\n to={url}\n onClick={(e: any) => this.handleClickItem(e, record)}\n data-testid=\"instance-detail-link\"\n {...(!firstColumns || object.isAbstract\n ? { target: \"_blank\" }\n : this.props.target\n ? { target: this.props.target }\n : {})}\n >\n <Tooltip\n placement=\"top\"\n title={`${i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.JUMP_TO}`\n )}${\n object.isAbstract\n ? this.inheritanceModelIdNameMap?.[\n record._object_id\n ] || record._object_id\n : object.name\n }${i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.INSTANCE_DETAIL}`\n )}`}\n >\n <span>\n <span className={styles.iconWrap}>\n <GeneralIcon\n icon={{\n lib: \"easyops\",\n icon: \"search\",\n category: \"app\",\n color: \"#167be0\",\n }}\n />\n </span>\n <span className={styles.linkKey}>\n {tempColumns(value, record, index)}\n </span>\n </span>\n </Tooltip>\n </Link>\n );\n } else {\n return this.getSpecialUrlTemplates(\n object,\n record,\n tempColumns(value, record, index)\n );\n }\n }\n : tempColumns;\n }\n return column;\n }\n\n getRelationColumnData(\n relation: Partial<CmdbModels.ModelObjectRelation>,\n object: Partial<CmdbModels.ModelCmdbObject>,\n sides: RelationObjectSides,\n firstColumns?: boolean\n ): ColumnType<Record<string, any>> {\n const key = relation[`${sides.this}_id` as RelationIdKeys];\n\n const column: ColumnType<Record<string, any>> = {\n title: relation[`${sides.this}_name` as RelationNameKeys],\n dataIndex: key,\n sorter: !this.props.sortDisabled,\n className: styles.instanceListTableCell,\n };\n const displayConfig = this.keyDisplayConfigMap[key];\n let tempColumns: any;\n\n if (displayConfig) {\n tempColumns = this.getDisplayConfigColumn(displayConfig);\n } else {\n tempColumns = (\n instances: Record<string, any>[],\n record: Record<string, any>,\n index: number\n ) => {\n if (instances && instances.length > 0) {\n const objectId =\n relation[`${sides.that}_object_id` as RelationObjectIdKeys];\n const nameKeys = getInstanceNameKeys(\n this.props.idObjectMap[objectId]\n );\n let detailUrlTemplate: string;\n\n if (this.props.detailUrlTemplates) {\n detailUrlTemplate = getTemplateFromMap(\n this.props.detailUrlTemplates,\n objectId\n );\n }\n\n const instanceNodes = instances.map((instance, index) => {\n let subName: string;\n if (nameKeys.length > 1) {\n subName = instance[nameKeys[1]];\n }\n\n let instanceName = subName\n ? `${instance[nameKeys[0]]} (${subName})`\n : instance[nameKeys[0]];\n\n if (detailUrlTemplate) {\n const url = parseTemplate(detailUrlTemplate, {\n ...instance,\n objectId,\n });\n return (\n <React.Fragment key={instance.instanceId}>\n {index > 0 &&\n (this.props.separatorUsedInRelationData ?? \"; \")}\n {this.props.relationLinkDisabled ? (\n instanceName\n ) : (\n <Link\n target={\"_blank\"}\n // 使用 <Link> 以保持链接的原生能力\n to={url}\n // 自定义 onClick 以支持事件配置和拦截\n onClick={(e) => this.handleClickItem(e, record)}\n >\n {instanceName}\n </Link>\n )}\n </React.Fragment>\n );\n } else {\n if (index > 0) {\n instanceName =\n (this.props.separatorUsedInRelationData ?? \"; \") +\n instanceName;\n }\n return instanceName;\n }\n });\n\n return instanceNodes;\n } else {\n return null;\n }\n };\n }\n // istanbul ignore next\n if (tempColumns) {\n column.render =\n firstColumns && this.props.detailUrlTemplates\n ? (value: string, record: Record<string, any>, index: number) => {\n //要跳到的路由\n const detailUrlTemplate = getTemplateFromMap(\n this.props.detailUrlTemplates,\n object.objectId\n );\n if (detailUrlTemplate) {\n const data = {\n ...record,\n objectId: object.objectId,\n };\n const url = parseTemplate(detailUrlTemplate, data);\n return this.getSpecialUrlTemplates(\n object,\n record,\n tempColumns(value, record, index),\n url\n );\n } else {\n return this.getSpecialUrlTemplates(\n object,\n record,\n tempColumns(value, record, index)\n );\n }\n }\n : tempColumns;\n }\n return column;\n }\n\n setColumnSortOrder<T = any>(column: ColumnType<T>) {\n if (\n (column.dataIndex !== undefined &&\n column.dataIndex === this.props.sort) ||\n (column.key !== undefined && column.key === this.props.sort)\n ) {\n column.sortOrder = this.props.asc ? SortOrder.Ascend : SortOrder.Descend;\n } else {\n column.sortOrder = null;\n }\n return column;\n }\n\n onChange = (\n pagination: TablePaginationConfig,\n filters: Record<string, (React.Key | boolean)[]>,\n sorter:\n | SorterResult<Record<string, any>>\n | SorterResult<Record<string, any>>[],\n extra: TableCurrentDataSource<Record<string, any>>\n ) => {\n const newInstanceSourceQuery = filters?._object_id?.[0] as string;\n if (newInstanceSourceQuery !== this.state.instanceSourceQuery) {\n this.props.onInstanceSourceChange(newInstanceSourceQuery);\n }\n if (\n // pagination.current will pass in 0 when total is 0 and sorter has changed\n (pagination.current > 0 &&\n pagination.current !== this.state.pagination.current) ||\n pagination.pageSize !== this.state.pagination.pageSize\n ) {\n this.props.onPaginationChange?.({\n page: pagination.current,\n pageSize: pagination.pageSize,\n });\n }\n if (!Array.isArray(sorter)) {\n const asc = { [SortOrder.Ascend]: true, [SortOrder.Descend]: false }[\n sorter.order\n ];\n if (\n (sorter.column ? sorter.field : undefined) !== this.props.sort ||\n asc !== this.props.asc\n ) {\n this.props.onSortingChange?.({ sort: sorter.field as string, asc });\n }\n }\n };\n\n onSelectChange = (\n selectedRowKeys: (string | number)[],\n selectedRows: Record<string, any>[]\n ) => {\n this.selectedRows = selectedRows;\n this.props.onSelectionChange?.({\n selectedKeys: selectedRowKeys as string[],\n selectedItems: selectedRows,\n });\n };\n handelIpCopyText = async (\n ev: React.MouseEvent<HTMLElement, MouseEvent>,\n dataIndex: string\n ) => {\n ev.stopPropagation();\n let selectedRowKeys = this.props.selectedRowKeys;\n let selectedRows = this.selectedRows.filter((v) => v);\n const objectId = this.props.modelData.objectId;\n if (selectedRowKeys?.length < 1) {\n message.warning(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.SELECT_COPY_DATA}`)\n );\n return false;\n }\n selectedRowKeys = selectedRowKeys.filter((k) =>\n selectedRows.every((row) => row[this.ROM_KEY] !== k)\n );\n if (selectedRowKeys.length > 0) {\n const resp = await InstanceApi_postSearch(objectId, {\n query: {\n instanceId: {\n $in: selectedRowKeys,\n },\n },\n page_size: selectedRowKeys.length,\n });\n selectedRows = [...selectedRows, ...(resp?.list || [])];\n }\n const inputDom = document.createElement(\"textarea\");\n inputDom.value = [\n ...new Set(\n map(\n selectedRows.filter((v) => v[dataIndex]),\n dataIndex\n )\n ),\n ].join(\"\\n\");\n document.body.appendChild(inputDom);\n inputDom.select(); //选择对象\n document.execCommand(\"copy\");\n inputDom.remove();\n message.success(i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.COPY_SUCCESS}`));\n };\n componentDidUpdate(prevProps: InstanceListTableProps) {\n if (this.props.instanceListData !== prevProps.instanceListData) {\n this.setState({\n list: this.props.instanceListData.list,\n pagination: {\n ...this.state.defaultPagination,\n total: this.props.instanceListData.total,\n current: this.props.instanceListData.page,\n pageSize: this.props.instanceListData.page_size,\n },\n });\n }\n if (\n this.props.sort !== prevProps.sort ||\n this.props.asc !== prevProps.asc\n ) {\n const columns: ColumnType<Record<string, any>>[] = [];\n this.state.columns.forEach((column) =>\n columns.push(this.setColumnSortOrder(column))\n );\n this.setState({ columns });\n }\n if (this.props.instanceSourceQuery !== prevProps.instanceSourceQuery) {\n this.setState({\n instanceSourceQuery: this.props.instanceSourceQuery,\n });\n }\n }\n\n render(): React.ReactNode {\n const { selectedRowKeys, rowSelectionType } = this.props;\n const rowSelection: TableRowSelection<Record<string, any>> = this.props\n .selectDisabled\n ? null\n : {\n type: rowSelectionType,\n preserveSelectedRowKeys: true,\n selectedRowKeys,\n onChange: this.onSelectChange,\n };\n\n const classes = classnames({\n [styles.shouldEllipsis]: this.props.autoBreakLine,\n [styles.tableWrapper]: true,\n });\n this.state.columns.map((column) => {\n const dataIndex = column.dataIndex as string;\n // istanbul ignore next\n if (\n this.props.modelData.attrList.find((attr) => attr.id === dataIndex)\n ?.value?.mode === \"url\"\n ) {\n column.render = (text, row, index) => CmdbUrlLink({ linkStr: text });\n }\n if (\n this.props.ipCopy &&\n this.props.modelData.attrList.find((attr) => attr.id === dataIndex)\n ?.value?.type === \"ip\"\n ) {\n column.filterDropdown = () => <div></div>;\n column.filterIcon = () => (\n <Tooltip\n className={styles.copyWrap}\n title={i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.COPY_SELECTED_IP}`)}\n >\n <CopyOutlined\n style={{ fontSize: 16 }}\n onClick={(ev) => this.handelIpCopyText(ev, dataIndex)}\n />\n </Tooltip>\n );\n }\n });\n return (\n <div\n className={classes}\n style={{ overflowX: \"auto\", overflowY: \"hidden\" }}\n >\n <Table\n columns={this.state.columns}\n dataSource={this.props.instanceListData.list}\n rowKey={this.ROM_KEY}\n scroll={{\n x: this.props.fixedHeader\n ? (this.state.columns?.length ?? 0) * 150\n : \"max-content\",\n y: this.props.fixedHeader ? 560 : null,\n }}\n pagination={this.state.pagination}\n rowSelection={rowSelection}\n onChange={this.onChange}\n expandable={{\n // ant的table数据中有children字段时会自动展示为树形表格,导致模型设置了id为children的字段或者关系字段时会出现报错或者不必要的展开样式\n // rowExpandable在dataSource含children属性时不生效,见https://github.com/ant-design/ant-design/issues/30444\n // 故这里将默认展开的字段设置为不符合模型属性id校验的值\n childrenColumnName: \"0\",\n }}\n {...this.props.configProps}\n />\n </div>\n );\n }\n}\n\nexport const InstanceListTable = React.memo(\n withTranslation(NS_LIBS_CMDB_INSTANCES)(LegacyInstanceListTable)\n);\n"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import React from "react";
2
- import { PropertyDisplayConfig, ReadPaginationChangeDetail, ReadSelectionChangeDetail, ReadSortingChangeDetail, UseBrickConf } from "@next-core/brick-types";
2
+ import { ReadPaginationChangeDetail, ReadSelectionChangeDetail, ReadSortingChangeDetail, UseBrickConf } from "@next-core/brick-types";
3
3
  import { CmdbModels, InstanceApi_PostSearchRequestBody, InstanceApi_PostSearchV3RequestBody, InstanceApi_PostSearchV3ResponseBody } from "@next-sdk/cmdb-sdk";
4
4
  import { Query } from "@next-libs/cmdb-utils";
5
- import { CustomColumn, Field } from "../instance-list-table";
5
+ import { CustomColumn, Field, UseBrickAndPropertyDisplayConfig } from "../instance-list-table";
6
6
  export interface InstanceListPresetConfigs {
7
7
  query?: Record<string, any>;
8
8
  fieldIds?: string[];
@@ -36,7 +36,7 @@ interface InstanceListProps {
36
36
  aliveHosts?: boolean;
37
37
  fixAliveHosts?: boolean;
38
38
  aliveHostsDisabled?: boolean;
39
- propertyDisplayConfigs?: PropertyDisplayConfig[];
39
+ propertyDisplayConfigs?: UseBrickAndPropertyDisplayConfig[];
40
40
  selectedRowKeys?: string[];
41
41
  selectDisabled?: boolean;
42
42
  pageSizeOptions?: string[];
@@ -8,6 +8,9 @@ import { RelationObjectSides } from "@next-libs/cmdb-utils";
8
8
  export interface CustomColumn extends ColumnType<Record<string, unknown>> {
9
9
  useBrick: UseBrickConf;
10
10
  }
11
+ export declare type UseBrickAndPropertyDisplayConfig = PropertyDisplayConfig & {
12
+ useBrick?: UseBrickConf;
13
+ };
11
14
  export interface InstanceListUseBrickData {
12
15
  cellData: unknown;
13
16
  rowData: Record<string, unknown>;
@@ -21,7 +24,7 @@ export interface InstanceListTableProps extends WithTranslation {
21
24
  instanceListData: InstanceApi_PostSearchV3ResponseBody;
22
25
  sort?: string;
23
26
  asc?: boolean;
24
- propertyDisplayConfigs?: PropertyDisplayConfig[];
27
+ propertyDisplayConfigs?: UseBrickAndPropertyDisplayConfig[];
25
28
  selectDisabled?: boolean;
26
29
  autoBreakLine?: boolean;
27
30
  sortDisabled?: boolean;
@@ -58,7 +61,7 @@ interface InstanceListTableState {
58
61
  defaultPagination: TablePaginationConfig;
59
62
  }
60
63
  export declare class LegacyInstanceListTable extends React.Component<InstanceListTableProps, InstanceListTableState> {
61
- keyDisplayConfigMap: Record<string, PropertyDisplayConfig>;
64
+ keyDisplayConfigMap: Record<string, UseBrickAndPropertyDisplayConfig>;
62
65
  recordUseBrickDataMap: Map<unknown, InstanceListUseBrickData>;
63
66
  inheritanceModelIdNameMap: Record<string, string>;
64
67
  selectedRows: Record<string, any>[];
@@ -73,7 +76,9 @@ export declare class LegacyInstanceListTable extends React.Component<InstanceLis
73
76
  componentDidMount(): Promise<void>;
74
77
  UNSAFE_componentWillReceiveProps(nextProps: InstanceListTableProps): void;
75
78
  handleClickItem(e: React.MouseEvent<HTMLAnchorElement, MouseEvent>, record: Record<string, any>): void;
76
- getCustomPropertyRender(config: PropertyDisplayConfig, isPrimary?: boolean): (value: any, record: Record<string, any>, index: number) => JSX.Element;
79
+ getCustomPropertyRender(config: UseBrickAndPropertyDisplayConfig, isPrimary?: boolean): (value: any, record: Record<string, any>, index: number) => JSX.Element;
80
+ getDisplayConfigColumn(config: UseBrickAndPropertyDisplayConfig, isPrimary?: boolean): (value: string[], record: Record<string, any>, index: number) => JSX.Element;
81
+ getUseBrickConfigRender(config: UseBrickAndPropertyDisplayConfig): (value: any, record: Record<string, any>, index: number) => JSX.Element;
77
82
  getLinkContent(node: any): JSX.Element;
78
83
  getSpecialUrlTemplates(object: Partial<CmdbModels.ModelCmdbObject>, record: any, node: any, url?: string, isRenderStructList?: boolean): JSX.Element;
79
84
  getAttributeColumnData(attribute: Partial<CmdbModels.ModelObjectAttr>, object: Partial<CmdbModels.ModelCmdbObject>, firstColumns?: boolean): ColumnType<Record<string, any>>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@next-libs/cmdb-instances",
3
- "version": "6.43.2",
3
+ "version": "6.44.0",
4
4
  "description": "> TODO: description",
5
5
  "homepage": "https://github.com/easyops-cn/next-libs/tree/master/libs/cmdb-instances",
6
6
  "license": "GPL-3.0",
@@ -50,5 +50,5 @@
50
50
  "immutability-helper": "^3.1.1",
51
51
  "marked": "^2.1.3"
52
52
  },
53
- "gitHead": "8855d86b13c15ff56101919f8bfc9b55df984b19"
53
+ "gitHead": "38d706b51fce766a28409a1aa35824da980c2af2"
54
54
  }