@next-libs/cmdb-instances 6.21.7 → 6.21.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +30 -0
- package/dist/cjs/float-display-brick/FloatDisplayBrick.js +39 -0
- package/dist/cjs/float-display-brick/FloatDisplayBrick.js.map +1 -0
- package/dist/cjs/index.js +13 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/instance-detail/InstanceDetail.js +16 -5
- package/dist/cjs/instance-detail/InstanceDetail.js.map +1 -1
- package/dist/cjs/instance-list-table/InstanceListTable.js +11 -3
- package/dist/cjs/instance-list-table/InstanceListTable.js.map +1 -1
- package/dist/esm/float-display-brick/FloatDisplayBrick.js +24 -0
- package/dist/esm/float-display-brick/FloatDisplayBrick.js.map +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/instance-detail/InstanceDetail.js +15 -5
- package/dist/esm/instance-detail/InstanceDetail.js.map +1 -1
- package/dist/esm/instance-list-table/AdvancedSearch.module.css +1 -1
- package/dist/esm/instance-list-table/InstanceListTable.js +12 -4
- package/dist/esm/instance-list-table/InstanceListTable.js.map +1 -1
- package/dist/types/float-display-brick/FloatDisplayBrick.d.ts +7 -0
- package/dist/types/float-display-brick/FloatDisplayBrick.spec.d.ts +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/instance-detail/InstanceDetail.d.ts +1 -0
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/instance-detail/InstanceDetail.tsx"],"names":["React","DownOutlined","InfoCircleFilled","InfoCircleOutlined","Card","Popover","Spin","Button","Menu","Dropdown","Tooltip","withTranslation","marked","DOMPurify","get","keyBy","mapValues","isObject","isString","cloneDeep","map","compact","handleHttpError","BrickAsComponent","InstanceRelationTableShow","getInstanceNameKeys","modifyModelData","IGNORED_FIELDS","Link","StructTable","InstanceFormat","i18n","NS_LIBS_CMDB_INSTANCES","K","style","shared","fetchCmdbObjectRef","fetchCmdbInstanceDetail","BASIC_INFORMATION_RELATION_GROUP_ID","DEFAULT_ATTRIBUTE_TAG","isArray","CmdbUrlLink","LegacyInstanceDetail","Component","constructor","props","state","modelDataMap","modelData","instanceData","helpTips","value","label","t","CREATOR","CREATION_TIME","MODIFIER","LAST_MODIFICATION_TIME","basicInfoGroupList","basicInfoGroupListShow","formattedInstanceData","loaded","render","showCard","getCardTitle","getCardExtra","getCardContent","brickConfigList","config","name","marginTop","el","object","options","BASIC_INFORMATION","item","tipInfoItem","tipInfoKey","tipInfoValue","colorBlue","marginLeft","onActionClick","eventName","buttonActions","dropdownActions","menu","length","action","url","isDanger","danger","event","e","instanceDetailActions","MORE","detailCard","showMultipleLines","basicInfoGroup","basicInfoGroupLabel","active","join","toggleBasicInfoGroupFilter","i","groupSeparator","groupName","attrList","attr","index","isRelationInstanceDetail","tag","findIndex","r","__isRelation","getAttrListNode","getNewProperties","oldProperties","field","propValue","regex","RegExp","test","replace","linkFlag","isStruct","isStructs","isRelation","isMarkdownField","isUrl","isComponentMode","attrCustomConfig","attributeConfigs","id","attrCustomConfigs","component","console","warn","properties","isWholeLine","structAttr","basicAttr","right_description","description","padding","color","__html","sanitize","__id","relationFieldUrlTemplate","useBrick","Object","assign","_object_id","instanceId","objectId","setBasicInfoGroupList","attributeKeys","fieldsByTag","basicInfoAttrList","attrFilter","includes","left_groups","view","attr_category_order","left_tags","fields","matched","__fieldList","find","filter","forEach","groupTag","nameKey","trim","basicInfoText","unshift","push","setState","componentDidUpdate","prevProps","fetchData","componentDidMount","actions","type","modelListData","filterModelData","hideModelData","modelDataList","Promise","all","data","hide_columns","relation_list","left_id","left_object_id","right_id","right_object_id","mode","isSpecialDisplayField","InstanceDetail"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport {\n DownOutlined,\n InfoCircleFilled,\n InfoCircleOutlined,\n} from \"@ant-design/icons\";\nimport { Card, Popover, Spin, Button, Menu, Dropdown, Tooltip } from \"antd\";\nimport { withTranslation, WithTranslation } from \"react-i18next\";\nimport marked from \"marked\";\nimport DOMPurify from \"dompurify\";\nimport {\n get,\n keyBy,\n mapValues,\n isObject,\n isString,\n cloneDeep,\n map,\n compact,\n} from \"lodash\";\nimport { handleHttpError, BrickAsComponent } from \"@next-core/brick-kit\";\nimport {\n AttributeConfig,\n CustomBrickConfig,\n CustomDisplay,\n InstanceDisplay,\n BrickAction,\n} from \"@next-core/brick-types\";\nimport { InstanceRelationTableShow } from \"./components/instance-relation-table-show/instance-relation-table-show\";\nimport {\n getInstanceNameKeys,\n modifyModelData,\n IGNORED_FIELDS,\n ModifiedModelCmdbObject,\n ModifiedModelObjectField,\n} from \"@next-libs/cmdb-utils\";\nimport { CmdbModels } from \"@next-sdk/cmdb-sdk\";\nimport { Link } from \"@next-libs/basic-components\";\nimport { StructTable } from \"../struct-components/StructTable\";\nimport { FieldsByTag } from \"../model-attribute-form/ModelAttributeForm\";\nimport { InstanceFormat } from \"../components\";\nimport i18n from \"i18next\";\nimport { NS_LIBS_CMDB_INSTANCES, K } from \"../i18n/constants\";\nimport style from \"./index.module.css\";\nimport shared from \"./shared.module.css\";\n\nimport { fetchCmdbObjectRef, fetchCmdbInstanceDetail } from \"../data-providers\";\nimport {\n DEFAULT_ATTRIBUTE_TAG_STR,\n BASIC_INFORMATION_RELATION_GROUP_ID,\n DEFAULT_ATTRIBUTE_TAG,\n BASIC_INFO,\n} from \"./constants\";\nimport { isArray } from \"util\";\nimport { UseBrickConf } from \"@next-core/brick-types\";\nimport { CmdbUrlLink } from \"../cmdb-url-link/CmdbUrlLink\";\n\nexport interface AttrCustomConfigs {\n [attrId: string]: LegacyCustomComponent;\n}\n\nexport interface LegacyCustomComponent {\n component?: {\n brick: string;\n field?: string;\n properties: Record<string, any>;\n };\n useBrick?: UseBrickConf;\n}\n\ninterface LegacyInstanceDetailProps extends WithTranslation {\n modelDataList?: CmdbModels.ModelCmdbObject[];\n objectId: string;\n instanceId: string;\n attributeKeys?: string[];\n attributeConfigs?: Record<string, AttributeConfig>;\n brickConfigList?: CustomBrickConfig[];\n actions?: BrickAction[];\n attrCustomConfigs?: AttrCustomConfigs;\n onActionClick?: (eventName: string) => void;\n fieldsByTag?: FieldsByTag[];\n showCard?: boolean;\n relationFieldUrlTemplate?: string;\n isRelationInstanceDetail?: boolean;\n}\n\ninterface LegacyInstanceDetailState {\n modelDataMap: { [objectId: string]: CmdbModels.ModelCmdbObject };\n modelData: Partial<ModifiedModelCmdbObject>;\n instanceData: any;\n helpTips: any[];\n basicInfoGroupList: any[];\n basicInfoGroupListShow: any[];\n formattedInstanceData: any;\n loaded: boolean;\n buttonActions?: BrickAction[];\n dropdownActions?: BrickAction[];\n}\n\nexport class LegacyInstanceDetail extends React.Component<\n LegacyInstanceDetailProps,\n LegacyInstanceDetailState\n> {\n constructor(props: LegacyInstanceDetailProps) {\n super(props);\n this.state = {\n modelDataMap: null,\n modelData: null,\n instanceData: null,\n helpTips: [\n {\n value: \"creator\",\n label: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CREATOR}`),\n },\n {\n value: \"ctime\",\n label: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CREATION_TIME}`),\n },\n {\n value: \"modifier\",\n label: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.MODIFIER}`),\n },\n {\n value: \"mtime\",\n label: i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.LAST_MODIFICATION_TIME}`\n ),\n },\n ],\n basicInfoGroupList: [],\n basicInfoGroupListShow: [],\n formattedInstanceData: null,\n loaded: false,\n };\n }\n\n render(): React.ReactNode {\n const { loaded } = this.state;\n const { showCard = true } = this.props;\n\n return (\n // React Fragments\n <Spin spinning={!loaded}>\n {loaded && (\n <>\n {showCard ? (\n <Card\n bordered={false}\n title={this.getCardTitle()}\n extra={this.getCardExtra()}\n >\n {this.getCardContent()}\n </Card>\n ) : (\n this.getCardContent()\n )}\n {this.props.brickConfigList?.map((config) => (\n <Card\n bordered={false}\n title={config.label}\n key={config.name}\n style={{ marginTop: \"24px\" }}\n >\n <config.name\n ref={(\n el: HTMLElement &\n CustomDisplay &\n InstanceDisplay<Partial<CmdbModels.ModelCmdbObject>>\n ) => {\n // istanbul ignore next\n if (el) {\n el.value = this.state.instanceData;\n el.object = this.state.modelData;\n el.options = config.options;\n }\n }}\n />\n </Card>\n ))}\n </>\n )}\n </Spin>\n );\n }\n\n // TODO:\n // setFormattedInstanceData(state: LegacyInstanceDetailState): void {\n // const { modelData, instanceData } = state;\n // const baseAttrList = modelData.attrList.filter(\n // attr => ![\"FK\", \"FKs\"].includes(attr.value.type)\n // );\n\n // this.setState({\n // formattedInstanceData: baseAttrList.reduce((acc, attr) => {\n // acc[attr.id] = cmdbFieldValueFormat(\n // instanceData[attr.id],\n // attr,\n // modelData.objectId\n // );\n // return acc;\n // }, {})\n // });\n // }\n\n getCardTitle(): React.ReactNode {\n const { instanceData, helpTips } = this.state;\n return (\n <>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.BASIC_INFORMATION}`)}\n <Popover\n placement=\"bottom\"\n content={\n instanceData &&\n helpTips.map((item) => (\n <div className={style.tipInfoItem} key={item}>\n <span className={style.tipInfoKey}>{item.label}:</span>\n <span className={style.tipInfoValue}>\n {instanceData[item.value]}\n </span>\n </div>\n ))\n }\n >\n <InfoCircleFilled\n className={style.colorBlue}\n style={{ marginLeft: \"6px\" }}\n />\n </Popover>\n </>\n );\n }\n\n // istanbul ignore next\n onActionClick(eventName: string) {\n if (this.props.onActionClick) {\n this.props.onActionClick(eventName);\n }\n }\n\n getCardExtra() {\n const { buttonActions, dropdownActions } = this.state;\n let menu: JSX.Element;\n\n if (dropdownActions && dropdownActions.length > 0) {\n menu = (\n <Menu>\n {dropdownActions.map((action) => {\n if (action.url) {\n return (\n <Menu.Item>\n <Link to={action.url}>\n <span className={action.isDanger ? style.danger : \"\"}>\n {action.label}\n </span>\n </Link>\n </Menu.Item>\n );\n } else if (action.event) {\n return (\n <Menu.Item onClick={(e) => this.onActionClick(action.event)}>\n <span className={action.isDanger ? style.danger : \"\"}>\n {action.label}\n </span>\n </Menu.Item>\n );\n }\n })}\n </Menu>\n );\n }\n\n return (\n <div className={style.instanceDetailActions}>\n {buttonActions &&\n buttonActions.map((action) => {\n if (action.url) {\n return (\n <Button>\n <Link to={action.url}>{action.label}</Link>\n </Button>\n );\n } else if (action.event) {\n return (\n <Button onClick={(e) => this.onActionClick(action.event)}>\n {action.label}\n </Button>\n );\n }\n })}\n {menu && (\n <Dropdown overlay={menu}>\n <a>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.MORE}`)} <DownOutlined />\n </a>\n </Dropdown>\n )}\n </div>\n );\n }\n // istanbul ignore next (Temporarily ignored)\n getCardContent(): React.ReactNode {\n const { basicInfoGroupList, basicInfoGroupListShow } = this.state;\n return (\n <div className={`${style.detailCard} ${shared.showMultipleLines}`}>\n {basicInfoGroupList.length > 1 && (\n <div>\n {basicInfoGroupList.map((basicInfoGroup) => (\n <a\n key={basicInfoGroup}\n className={[\n style.basicInfoGroupLabel,\n basicInfoGroup.active ? style.active : \"\",\n ].join(\" \")}\n onClick={() => this.toggleBasicInfoGroupFilter(basicInfoGroup)}\n >\n {basicInfoGroup.name}\n </a>\n ))}\n </div>\n )}\n <dl>\n {basicInfoGroupListShow.map((basicInfoGroup, i) => (\n <>\n {i > 0 && <div className={style.groupSeparator} />}\n {basicInfoGroupList.length > 1 && (\n <div className={style.groupName}>{basicInfoGroup.name}</div>\n )}\n {basicInfoGroup.attrList.map((attr: any, index: number) => {\n //当前模型的一对一关系模型的详情并且为基本信息的第一个属性时,跳转到该关系模型的详情页\n //第一个属性为关系时,取第二个属性,如此类推\n if (\n this.props.isRelationInstanceDetail &&\n attr?.tag?.[0] === basicInfoGroupList?.[0]?.name &&\n index ===\n basicInfoGroup.attrList.findIndex(\n (r: any) => !r.__isRelation\n )\n ) {\n return this.getAttrListNode(attr, true);\n }\n return this.getAttrListNode(attr);\n })}\n </>\n ))}\n </dl>\n </div>\n );\n }\n\n getNewProperties(\n oldProperties: Record<string, any>,\n field: keyof LegacyInstanceDetailState\n ): any {\n return mapValues(oldProperties, (propValue) => {\n // istanbul ignore else\n // 这个封装的有点过了感觉,他支持所有的字段都支持注入,但感觉应该是只有dataSource支持就ok了,没必要那么复杂,故这里对于array直接返回\n if (isArray(propValue)) {\n return propValue;\n } else if (isObject(propValue)) {\n return this.getNewProperties(propValue, field);\n } else if (isString(propValue)) {\n const regex = new RegExp(\"#\\\\{\" + field + \"\\\\}\\\\.(\\\\w+)\", \"g\");\n if (regex.test(propValue)) {\n return this.state[field][propValue.replace(regex, \"$1\")];\n } else {\n return propValue;\n }\n } else {\n return propValue;\n }\n });\n }\n\n // istanbul ignore next\n getAttrListNode(attr: any, linkFlag?: boolean): React.ReactNode {\n const { isStruct, isStructs, isRelation, isMarkdownField, isUrl } = this;\n const { modelDataMap, modelData, instanceData } = this.state;\n let config;\n let isComponentMode = false;\n let attrCustomConfig: LegacyCustomComponent;\n\n if (this.props.attributeConfigs) {\n config = this.props.attributeConfigs[attr.id];\n }\n if (this.props.attrCustomConfigs) {\n // attrCustomConfig = cloneDeep(this.props.attrCustomConfigs[attr.id]);\n attrCustomConfig = this.props.attrCustomConfigs[attr.id];\n if (attrCustomConfig) {\n isComponentMode = true;\n // istanbul ignore next (`component` is deprecated)\n if (attrCustomConfig.component) {\n // eslint-disable-next-line no-console\n console.warn(\n \"`component` of `<cmdb-instances.instance-detail>.attrCustomConfigs[attrId].component` is deprecated, use `useBrick` instead.\"\n );\n attrCustomConfig = cloneDeep(attrCustomConfig);\n const field = (attrCustomConfig.component.field ||\n \"instanceData\") as keyof LegacyInstanceDetailState;\n attrCustomConfig.component.properties = this.getNewProperties(\n attrCustomConfig.component.properties || {},\n field\n );\n }\n }\n }\n return (\n <>\n <dt\n className={\n isStruct(attr) ||\n isStructs(attr) ||\n isRelation(attr) ||\n attr.__isRelation ||\n isMarkdownField(attr) ||\n (config && config.isWholeLine)\n ? style.structAttr\n : style.basicAttr\n }\n >\n {attr.__isRelation ? attr.right_description : attr.name}\n {attr.description && attr.description !== \"\" && (\n <Tooltip title={attr.description}>\n <InfoCircleOutlined\n style={{ padding: \"0 2px\", color: \"var(--theme-blue-color)\" }}\n />\n </Tooltip>\n )}\n :\n </dt>\n\n <dd\n className={\n isStruct(attr) ||\n isStructs(attr) ||\n isRelation(attr) ||\n attr.__isRelation ||\n isMarkdownField(attr) ||\n (config && config.isWholeLine)\n ? style.structAttr\n : style.basicAttr\n }\n >\n {/* istanbul ignore next */}\n {isUrl(attr) && <CmdbUrlLink linkStr={instanceData[attr.id]} />}\n {isMarkdownField(attr) && !isUrl(attr) && (\n <div\n dangerouslySetInnerHTML={{\n __html: DOMPurify.sanitize(marked(instanceData[attr.id] || \"\")),\n }}\n ></div>\n )}\n {attr.__isRelation && !isUrl(attr) && (\n <InstanceRelationTableShow\n modelDataMap={modelDataMap}\n relationData={attr}\n value={instanceData[attr.__id]}\n relationFieldUrlTemplate={this.props.relationFieldUrlTemplate}\n ></InstanceRelationTableShow>\n )}\n {!isStructs(attr) &&\n !isStruct(attr) &&\n !isRelation(attr) &&\n isComponentMode &&\n !isUrl(attr) &&\n (attrCustomConfig.useBrick ? (\n <BrickAsComponent\n useBrick={attrCustomConfig.useBrick}\n data={{\n modelData,\n instanceData,\n }}\n />\n ) : (\n <attrCustomConfig.component.brick\n ref={(el: any) => {\n el &&\n Object.assign(el, {\n ...attrCustomConfig.component.properties,\n });\n }}\n />\n ))}\n {!isStructs(attr) &&\n !isStruct(attr) &&\n !isRelation(attr) &&\n !isMarkdownField(attr) &&\n !isComponentMode &&\n !isUrl(attr) &&\n (linkFlag ? (\n <Link\n to={`/next-cmdb-instance-management/next/${instanceData._object_id}/instance/${instanceData.instanceId}`}\n target={\"_blank\"}\n >\n <InstanceFormat\n objectId={modelData.objectId}\n attrModel={attr}\n attrData={instanceData[attr.id]}\n />\n </Link>\n ) : (\n <InstanceFormat\n objectId={modelData.objectId}\n attrModel={attr}\n attrData={instanceData[attr.id]}\n />\n ))}\n {isStruct(attr) && instanceData[attr.id] && !isUrl(attr) && (\n <StructTable\n isLegacy={true}\n attribute={attr}\n structData={instanceData[attr.id]}\n isEditable={false}\n />\n )}\n {isStructs(attr) && instanceData[attr.id] && !isUrl(attr) && (\n <StructTable\n attribute={attr}\n structData={instanceData[attr.id]}\n isEditable={false}\n />\n )}\n </dd>\n </>\n );\n }\n\n // istanbul ignore next\n setBasicInfoGroupList(state: LegacyInstanceDetailState) {\n let { modelData, basicInfoGroupList } = state;\n const { attributeKeys, fieldsByTag } = this.props;\n let basicInfoAttrList: any[];\n function attrFilter(field: ModifiedModelObjectField): boolean {\n if (IGNORED_FIELDS[modelData.objectId]?.includes(field.__id)) {\n return false;\n }\n return (\n //非关系、left_groups包含basic_info、有left_tags且在分类中\n !field.__isRelation ||\n (field.__isRelation &&\n (field as CmdbModels.ModelObjectRelation).left_groups?.includes(\n BASIC_INFORMATION_RELATION_GROUP_ID\n )) ||\n modelData.view.attr_category_order.includes(\n (field as CmdbModels.ModelObjectRelation).left_tags[0]\n )\n );\n }\n\n basicInfoGroupList = [];\n\n if (fieldsByTag) {\n basicInfoGroupList = map(fieldsByTag, (tag) => {\n const attrList = compact(\n map(tag.fields, (attr) => {\n const matched = modelData.__fieldList.find(\n (field) => field.__id === attr\n );\n return matched;\n })\n );\n return {\n name: tag.name,\n active: false,\n attrList,\n };\n });\n } else {\n if (attributeKeys?.length) {\n basicInfoAttrList = attributeKeys\n .map((attr) => {\n const matched = modelData.__fieldList.find(\n (field) => field.__id === attr\n );\n if (matched && attrFilter(matched)) {\n return matched;\n }\n })\n .filter((attr) => attr);\n } else {\n basicInfoAttrList = modelData.__fieldList.filter((field) =>\n attrFilter(field)\n );\n }\n\n basicInfoAttrList.forEach((field) => {\n let groupTag: string;\n const nameKey = getInstanceNameKeys(modelData)[0];\n if (field.__isRelation) {\n groupTag =\n field.left_tags?.length && field.left_tags[0].trim() !== \"\"\n ? field.left_tags[0]\n : DEFAULT_ATTRIBUTE_TAG;\n } else {\n const basicInfoText = i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.BASIC_INFORMATION}`\n );\n groupTag =\n field.tag.length > 0\n ? field.tag[0] || basicInfoText\n : basicInfoText;\n }\n\n const basicInfoGroup = basicInfoGroupList.find(\n (item: any) => item.name === groupTag\n );\n\n if (basicInfoGroup) {\n field.id === nameKey\n ? basicInfoGroup[\"attrList\"].unshift(field)\n : basicInfoGroup[\"attrList\"].push(field);\n } else {\n basicInfoGroupList.push({\n name: groupTag,\n active: false,\n attrList: [field],\n });\n }\n });\n }\n\n this.setState({\n basicInfoGroupList,\n basicInfoGroupListShow: basicInfoGroupList,\n });\n }\n componentDidUpdate(prevProps: LegacyInstanceDetailProps): void {\n if (\n this.props.objectId &&\n this.props.instanceId &&\n prevProps.instanceId !== this.props.instanceId\n ) {\n (async () => await this.fetchData(this.props))();\n }\n }\n\n async componentDidMount(): Promise<void> {\n if (this.props.actions) {\n const buttonActions: BrickAction[] = [];\n const dropdownActions: BrickAction[] = [];\n\n this.props.actions.forEach((action) => {\n switch (action.type) {\n case \"dropdown\":\n dropdownActions.push(action);\n break;\n case \"button\":\n default:\n buttonActions.push(action);\n break;\n }\n });\n\n this.setState({ buttonActions, dropdownActions });\n }\n if (this.props.instanceId && this.props.objectId) {\n await this.fetchData(this.props);\n }\n }\n\n toggleBasicInfoGroupFilter(basicInfoGroup: any): void {\n const { basicInfoGroupList } = this.state;\n if (!basicInfoGroup.active) {\n basicInfoGroupList.forEach((item: any) => {\n item.active = false;\n });\n this.setState({\n basicInfoGroupListShow: basicInfoGroupList.filter(\n (item: any) => item.name === basicInfoGroup.name\n ),\n });\n } else {\n this.setState({\n basicInfoGroupListShow: basicInfoGroupList,\n });\n }\n basicInfoGroup.active = !basicInfoGroup.active;\n }\n\n // istanbul ignore next\n async fetchData(props: LegacyInstanceDetailProps): Promise<void> {\n let modelListData,\n modelDataMap,\n modelData: Partial<CmdbModels.ModelCmdbObject>,\n instanceData,\n filterModelData,\n hideModelData: string[];\n try {\n if (props.modelDataList) {\n modelDataMap = keyBy(props.modelDataList, \"objectId\");\n instanceData = await fetchCmdbInstanceDetail(\n props.objectId,\n props.instanceId\n );\n } else {\n [modelListData, instanceData] = await Promise.all([\n fetchCmdbObjectRef(props.objectId),\n fetchCmdbInstanceDetail(props.objectId, props.instanceId),\n ]);\n modelDataMap = keyBy(modelListData.data, \"objectId\") as {\n [objectId: string]: CmdbModels.ModelCmdbObject;\n };\n }\n modelData = modelDataMap[props.objectId];\n hideModelData = modelData.view.hide_columns || [];\n filterModelData = {\n ...modelData,\n attrList: modelData.attrList.filter(\n (item) => !hideModelData.includes(item.id)\n ),\n relation_list: modelData.relation_list.filter(\n (item) =>\n !(\n (hideModelData.includes(item.left_id) &&\n item.left_object_id === props.objectId) ||\n (hideModelData.includes(item.right_id) &&\n item.right_object_id === props.objectId)\n )\n ),\n };\n this.setState({\n modelDataMap,\n modelData: modifyModelData(filterModelData),\n instanceData,\n loaded: true,\n basicInfoGroupListShow: [],\n basicInfoGroupList: [],\n });\n this.setBasicInfoGroupList(this.state);\n // this.setFormattedInstanceData(this.state);\n } catch (e) {\n // 统一处理请求错误\n handleHttpError(e);\n // 标记 `loaded` 和 `failed` 状态\n this.setState({ loaded: true });\n }\n }\n\n isStruct(attr: any) {\n return attr.value?.type === \"struct\";\n }\n\n isStructs(attr: any) {\n return attr.value?.type === \"structs\";\n }\n isUrl(attr: any) {\n return attr.value?.type === \"str\" && attr.value?.mode === \"url\";\n }\n\n isRelation(attr: any) {\n return attr.value?.type === \"FK\" || attr.value?.type === \"FKs\";\n }\n\n isSpecialDisplayField(attr: any) {\n return (\n // TODO: ENABLED_FEATURES.includes(\"user-business-special-display\") &&\n [\"USER\", \"BUSINESS\"].includes(\n attr.id === attr.left_id ? attr.right_object_id : attr.left_object_id\n )\n );\n }\n\n isMarkdownField(attr: any) {\n return attr.value?.type === \"str\" && get(attr, \"value.mode\") === \"markdown\";\n }\n}\n\nexport const InstanceDetail = withTranslation(NS_LIBS_CMDB_INSTANCES)(\n LegacyInstanceDetail\n);\n"],"file":"InstanceDetail.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/instance-detail/InstanceDetail.tsx"],"names":["React","DownOutlined","InfoCircleFilled","InfoCircleOutlined","Card","Popover","Spin","Button","Menu","Dropdown","Tooltip","withTranslation","marked","DOMPurify","get","keyBy","mapValues","isObject","isString","cloneDeep","map","compact","handleHttpError","BrickAsComponent","InstanceRelationTableShow","getInstanceNameKeys","modifyModelData","IGNORED_FIELDS","Link","StructTable","InstanceFormat","i18n","NS_LIBS_CMDB_INSTANCES","K","style","shared","fetchCmdbObjectRef","fetchCmdbInstanceDetail","BASIC_INFORMATION_RELATION_GROUP_ID","DEFAULT_ATTRIBUTE_TAG","isArray","CmdbUrlLink","FloatDisplayBrick","LegacyInstanceDetail","Component","constructor","props","state","modelDataMap","modelData","instanceData","helpTips","value","label","t","CREATOR","CREATION_TIME","MODIFIER","LAST_MODIFICATION_TIME","basicInfoGroupList","basicInfoGroupListShow","formattedInstanceData","loaded","render","showCard","getCardTitle","getCardExtra","getCardContent","brickConfigList","config","name","marginTop","el","object","options","BASIC_INFORMATION","item","tipInfoItem","tipInfoKey","tipInfoValue","colorBlue","marginLeft","onActionClick","eventName","buttonActions","dropdownActions","menu","length","action","url","isDanger","danger","event","e","instanceDetailActions","MORE","detailCard","showMultipleLines","basicInfoGroup","basicInfoGroupLabel","active","join","toggleBasicInfoGroupFilter","i","groupSeparator","groupName","attrList","attr","index","isRelationInstanceDetail","tag","findIndex","r","__isRelation","getAttrListNode","getNewProperties","oldProperties","field","propValue","regex","RegExp","test","replace","linkFlag","isStruct","isStructs","isRelation","isMarkdownField","isUrl","isFloat","isComponentMode","attrCustomConfig","attributeConfigs","id","attrCustomConfigs","component","console","warn","properties","isWholeLine","structAttr","basicAttr","right_description","description","padding","color","__html","sanitize","__id","relationFieldUrlTemplate","useBrick","Object","assign","_object_id","instanceId","objectId","setBasicInfoGroupList","attributeKeys","fieldsByTag","basicInfoAttrList","attrFilter","includes","left_groups","view","attr_category_order","left_tags","fields","matched","__fieldList","find","filter","forEach","groupTag","nameKey","trim","basicInfoText","unshift","push","setState","componentDidUpdate","prevProps","fetchData","componentDidMount","actions","type","modelListData","filterModelData","hideModelData","modelDataList","Promise","all","data","hide_columns","relation_list","left_id","left_object_id","right_id","right_object_id","mode","isSpecialDisplayField","InstanceDetail"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport {\n DownOutlined,\n InfoCircleFilled,\n InfoCircleOutlined,\n} from \"@ant-design/icons\";\nimport { Card, Popover, Spin, Button, Menu, Dropdown, Tooltip } from \"antd\";\nimport { withTranslation, WithTranslation } from \"react-i18next\";\nimport marked from \"marked\";\nimport DOMPurify from \"dompurify\";\nimport {\n get,\n keyBy,\n mapValues,\n isObject,\n isString,\n cloneDeep,\n map,\n compact,\n} from \"lodash\";\nimport { handleHttpError, BrickAsComponent } from \"@next-core/brick-kit\";\nimport {\n AttributeConfig,\n CustomBrickConfig,\n CustomDisplay,\n InstanceDisplay,\n BrickAction,\n} from \"@next-core/brick-types\";\nimport { InstanceRelationTableShow } from \"./components/instance-relation-table-show/instance-relation-table-show\";\nimport {\n getInstanceNameKeys,\n modifyModelData,\n IGNORED_FIELDS,\n ModifiedModelCmdbObject,\n ModifiedModelObjectField,\n} from \"@next-libs/cmdb-utils\";\nimport { CmdbModels } from \"@next-sdk/cmdb-sdk\";\nimport { Link } from \"@next-libs/basic-components\";\nimport { StructTable } from \"../struct-components/StructTable\";\nimport { FieldsByTag } from \"../model-attribute-form/ModelAttributeForm\";\nimport { InstanceFormat } from \"../components\";\nimport i18n from \"i18next\";\nimport { NS_LIBS_CMDB_INSTANCES, K } from \"../i18n/constants\";\nimport style from \"./index.module.css\";\nimport shared from \"./shared.module.css\";\n\nimport { fetchCmdbObjectRef, fetchCmdbInstanceDetail } from \"../data-providers\";\nimport {\n DEFAULT_ATTRIBUTE_TAG_STR,\n BASIC_INFORMATION_RELATION_GROUP_ID,\n DEFAULT_ATTRIBUTE_TAG,\n BASIC_INFO,\n} from \"./constants\";\nimport { isArray } from \"util\";\nimport { UseBrickConf } from \"@next-core/brick-types\";\nimport { CmdbUrlLink } from \"../cmdb-url-link/CmdbUrlLink\";\nimport { FloatDisplayBrick } from \"../float-display-brick/FloatDisplayBrick\";\n\nexport interface AttrCustomConfigs {\n [attrId: string]: LegacyCustomComponent;\n}\n\nexport interface LegacyCustomComponent {\n component?: {\n brick: string;\n field?: string;\n properties: Record<string, any>;\n };\n useBrick?: UseBrickConf;\n}\n\ninterface LegacyInstanceDetailProps extends WithTranslation {\n modelDataList?: CmdbModels.ModelCmdbObject[];\n objectId: string;\n instanceId: string;\n attributeKeys?: string[];\n attributeConfigs?: Record<string, AttributeConfig>;\n brickConfigList?: CustomBrickConfig[];\n actions?: BrickAction[];\n attrCustomConfigs?: AttrCustomConfigs;\n onActionClick?: (eventName: string) => void;\n fieldsByTag?: FieldsByTag[];\n showCard?: boolean;\n relationFieldUrlTemplate?: string;\n isRelationInstanceDetail?: boolean;\n}\n\ninterface LegacyInstanceDetailState {\n modelDataMap: { [objectId: string]: CmdbModels.ModelCmdbObject };\n modelData: Partial<ModifiedModelCmdbObject>;\n instanceData: any;\n helpTips: any[];\n basicInfoGroupList: any[];\n basicInfoGroupListShow: any[];\n formattedInstanceData: any;\n loaded: boolean;\n buttonActions?: BrickAction[];\n dropdownActions?: BrickAction[];\n}\n\nexport class LegacyInstanceDetail extends React.Component<\n LegacyInstanceDetailProps,\n LegacyInstanceDetailState\n> {\n constructor(props: LegacyInstanceDetailProps) {\n super(props);\n this.state = {\n modelDataMap: null,\n modelData: null,\n instanceData: null,\n helpTips: [\n {\n value: \"creator\",\n label: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CREATOR}`),\n },\n {\n value: \"ctime\",\n label: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CREATION_TIME}`),\n },\n {\n value: \"modifier\",\n label: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.MODIFIER}`),\n },\n {\n value: \"mtime\",\n label: i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.LAST_MODIFICATION_TIME}`\n ),\n },\n ],\n basicInfoGroupList: [],\n basicInfoGroupListShow: [],\n formattedInstanceData: null,\n loaded: false,\n };\n }\n\n render(): React.ReactNode {\n const { loaded } = this.state;\n const { showCard = true } = this.props;\n\n return (\n // React Fragments\n <Spin spinning={!loaded}>\n {loaded && (\n <>\n {showCard ? (\n <Card\n bordered={false}\n title={this.getCardTitle()}\n extra={this.getCardExtra()}\n >\n {this.getCardContent()}\n </Card>\n ) : (\n this.getCardContent()\n )}\n {this.props.brickConfigList?.map((config) => (\n <Card\n bordered={false}\n title={config.label}\n key={config.name}\n style={{ marginTop: \"24px\" }}\n >\n <config.name\n ref={(\n el: HTMLElement &\n CustomDisplay &\n InstanceDisplay<Partial<CmdbModels.ModelCmdbObject>>\n ) => {\n // istanbul ignore next\n if (el) {\n el.value = this.state.instanceData;\n el.object = this.state.modelData;\n el.options = config.options;\n }\n }}\n />\n </Card>\n ))}\n </>\n )}\n </Spin>\n );\n }\n\n // TODO:\n // setFormattedInstanceData(state: LegacyInstanceDetailState): void {\n // const { modelData, instanceData } = state;\n // const baseAttrList = modelData.attrList.filter(\n // attr => ![\"FK\", \"FKs\"].includes(attr.value.type)\n // );\n\n // this.setState({\n // formattedInstanceData: baseAttrList.reduce((acc, attr) => {\n // acc[attr.id] = cmdbFieldValueFormat(\n // instanceData[attr.id],\n // attr,\n // modelData.objectId\n // );\n // return acc;\n // }, {})\n // });\n // }\n\n getCardTitle(): React.ReactNode {\n const { instanceData, helpTips } = this.state;\n return (\n <>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.BASIC_INFORMATION}`)}\n <Popover\n placement=\"bottom\"\n content={\n instanceData &&\n helpTips.map((item) => (\n <div className={style.tipInfoItem} key={item}>\n <span className={style.tipInfoKey}>{item.label}:</span>\n <span className={style.tipInfoValue}>\n {instanceData[item.value]}\n </span>\n </div>\n ))\n }\n >\n <InfoCircleFilled\n className={style.colorBlue}\n style={{ marginLeft: \"6px\" }}\n />\n </Popover>\n </>\n );\n }\n\n // istanbul ignore next\n onActionClick(eventName: string) {\n if (this.props.onActionClick) {\n this.props.onActionClick(eventName);\n }\n }\n\n getCardExtra() {\n const { buttonActions, dropdownActions } = this.state;\n let menu: JSX.Element;\n\n if (dropdownActions && dropdownActions.length > 0) {\n menu = (\n <Menu>\n {dropdownActions.map((action) => {\n if (action.url) {\n return (\n <Menu.Item>\n <Link to={action.url}>\n <span className={action.isDanger ? style.danger : \"\"}>\n {action.label}\n </span>\n </Link>\n </Menu.Item>\n );\n } else if (action.event) {\n return (\n <Menu.Item onClick={(e) => this.onActionClick(action.event)}>\n <span className={action.isDanger ? style.danger : \"\"}>\n {action.label}\n </span>\n </Menu.Item>\n );\n }\n })}\n </Menu>\n );\n }\n\n return (\n <div className={style.instanceDetailActions}>\n {buttonActions &&\n buttonActions.map((action) => {\n if (action.url) {\n return (\n <Button>\n <Link to={action.url}>{action.label}</Link>\n </Button>\n );\n } else if (action.event) {\n return (\n <Button onClick={(e) => this.onActionClick(action.event)}>\n {action.label}\n </Button>\n );\n }\n })}\n {menu && (\n <Dropdown overlay={menu}>\n <a>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.MORE}`)} <DownOutlined />\n </a>\n </Dropdown>\n )}\n </div>\n );\n }\n // istanbul ignore next (Temporarily ignored)\n getCardContent(): React.ReactNode {\n const { basicInfoGroupList, basicInfoGroupListShow } = this.state;\n return (\n <div className={`${style.detailCard} ${shared.showMultipleLines}`}>\n {basicInfoGroupList.length > 1 && (\n <div>\n {basicInfoGroupList.map((basicInfoGroup) => (\n <a\n key={basicInfoGroup}\n className={[\n style.basicInfoGroupLabel,\n basicInfoGroup.active ? style.active : \"\",\n ].join(\" \")}\n onClick={() => this.toggleBasicInfoGroupFilter(basicInfoGroup)}\n >\n {basicInfoGroup.name}\n </a>\n ))}\n </div>\n )}\n <dl>\n {basicInfoGroupListShow.map((basicInfoGroup, i) => (\n <>\n {i > 0 && <div className={style.groupSeparator} />}\n {basicInfoGroupList.length > 1 && (\n <div className={style.groupName}>{basicInfoGroup.name}</div>\n )}\n {basicInfoGroup.attrList.map((attr: any, index: number) => {\n //当前模型的一对一关系模型的详情并且为基本信息的第一个属性时,跳转到该关系模型的详情页\n //第一个属性为关系时,取第二个属性,如此类推\n if (\n this.props.isRelationInstanceDetail &&\n attr?.tag?.[0] === basicInfoGroupList?.[0]?.name &&\n index ===\n basicInfoGroup.attrList.findIndex(\n (r: any) => !r.__isRelation\n )\n ) {\n return this.getAttrListNode(attr, true);\n }\n return this.getAttrListNode(attr);\n })}\n </>\n ))}\n </dl>\n </div>\n );\n }\n\n getNewProperties(\n oldProperties: Record<string, any>,\n field: keyof LegacyInstanceDetailState\n ): any {\n return mapValues(oldProperties, (propValue) => {\n // istanbul ignore else\n // 这个封装的有点过了感觉,他支持所有的字段都支持注入,但感觉应该是只有dataSource支持就ok了,没必要那么复杂,故这里对于array直接返回\n if (isArray(propValue)) {\n return propValue;\n } else if (isObject(propValue)) {\n return this.getNewProperties(propValue, field);\n } else if (isString(propValue)) {\n const regex = new RegExp(\"#\\\\{\" + field + \"\\\\}\\\\.(\\\\w+)\", \"g\");\n if (regex.test(propValue)) {\n return this.state[field][propValue.replace(regex, \"$1\")];\n } else {\n return propValue;\n }\n } else {\n return propValue;\n }\n });\n }\n\n // istanbul ignore next\n getAttrListNode(attr: any, linkFlag?: boolean): React.ReactNode {\n const { isStruct, isStructs, isRelation, isMarkdownField, isUrl, isFloat } =\n this;\n const { modelDataMap, modelData, instanceData } = this.state;\n let config;\n let isComponentMode = false;\n let attrCustomConfig: LegacyCustomComponent;\n\n if (this.props.attributeConfigs) {\n config = this.props.attributeConfigs[attr.id];\n }\n if (this.props.attrCustomConfigs) {\n // attrCustomConfig = cloneDeep(this.props.attrCustomConfigs[attr.id]);\n attrCustomConfig = this.props.attrCustomConfigs[attr.id];\n if (attrCustomConfig) {\n isComponentMode = true;\n // istanbul ignore next (`component` is deprecated)\n if (attrCustomConfig.component) {\n // eslint-disable-next-line no-console\n console.warn(\n \"`component` of `<cmdb-instances.instance-detail>.attrCustomConfigs[attrId].component` is deprecated, use `useBrick` instead.\"\n );\n attrCustomConfig = cloneDeep(attrCustomConfig);\n const field = (attrCustomConfig.component.field ||\n \"instanceData\") as keyof LegacyInstanceDetailState;\n attrCustomConfig.component.properties = this.getNewProperties(\n attrCustomConfig.component.properties || {},\n field\n );\n }\n }\n }\n return (\n <>\n <dt\n className={\n isStruct(attr) ||\n isStructs(attr) ||\n isRelation(attr) ||\n attr.__isRelation ||\n isMarkdownField(attr) ||\n (config && config.isWholeLine)\n ? style.structAttr\n : style.basicAttr\n }\n >\n {attr.__isRelation ? attr.right_description : attr.name}\n {attr.description && attr.description !== \"\" && (\n <Tooltip title={attr.description}>\n <InfoCircleOutlined\n style={{ padding: \"0 2px\", color: \"var(--theme-blue-color)\" }}\n />\n </Tooltip>\n )}\n :\n </dt>\n\n <dd\n className={\n isStruct(attr) ||\n isStructs(attr) ||\n isRelation(attr) ||\n attr.__isRelation ||\n isMarkdownField(attr) ||\n (config && config.isWholeLine)\n ? style.structAttr\n : style.basicAttr\n }\n >\n {/* istanbul ignore next */}\n {isUrl(attr) && <CmdbUrlLink linkStr={instanceData[attr.id]} />}\n {isFloat(attr) && (\n <FloatDisplayBrick floatValue={instanceData[attr.id]} />\n )}\n {isMarkdownField(attr) && !isUrl(attr) && (\n <div\n dangerouslySetInnerHTML={{\n __html: DOMPurify.sanitize(marked(instanceData[attr.id] || \"\")),\n }}\n />\n )}\n {attr.__isRelation && !isUrl(attr) && (\n <InstanceRelationTableShow\n modelDataMap={modelDataMap}\n relationData={attr}\n value={instanceData[attr.__id]}\n relationFieldUrlTemplate={this.props.relationFieldUrlTemplate}\n />\n )}\n {!isStructs(attr) &&\n !isStruct(attr) &&\n !isRelation(attr) &&\n isComponentMode &&\n !isUrl(attr) &&\n !isFloat(attr) &&\n (attrCustomConfig.useBrick ? (\n <BrickAsComponent\n useBrick={attrCustomConfig.useBrick}\n data={{\n modelData,\n instanceData,\n }}\n />\n ) : (\n <attrCustomConfig.component.brick\n ref={(el: any) => {\n el &&\n Object.assign(el, {\n ...attrCustomConfig.component.properties,\n });\n }}\n />\n ))}\n {!isStructs(attr) &&\n !isStruct(attr) &&\n !isRelation(attr) &&\n !isMarkdownField(attr) &&\n !isComponentMode &&\n !isUrl(attr) &&\n !isFloat(attr) &&\n (linkFlag ? (\n <Link\n to={`/next-cmdb-instance-management/next/${instanceData._object_id}/instance/${instanceData.instanceId}`}\n target={\"_blank\"}\n >\n <InstanceFormat\n objectId={modelData.objectId}\n attrModel={attr}\n attrData={instanceData[attr.id]}\n />\n </Link>\n ) : (\n <InstanceFormat\n objectId={modelData.objectId}\n attrModel={attr}\n attrData={instanceData[attr.id]}\n />\n ))}\n {isStruct(attr) && instanceData[attr.id] && !isUrl(attr) && (\n <StructTable\n isLegacy={true}\n attribute={attr}\n structData={instanceData[attr.id]}\n isEditable={false}\n />\n )}\n {isStructs(attr) && instanceData[attr.id] && !isUrl(attr) && (\n <StructTable\n attribute={attr}\n structData={instanceData[attr.id]}\n isEditable={false}\n />\n )}\n </dd>\n </>\n );\n }\n\n // istanbul ignore next\n setBasicInfoGroupList(state: LegacyInstanceDetailState) {\n let { modelData, basicInfoGroupList } = state;\n const { attributeKeys, fieldsByTag } = this.props;\n let basicInfoAttrList: any[];\n function attrFilter(field: ModifiedModelObjectField): boolean {\n if (IGNORED_FIELDS[modelData.objectId]?.includes(field.__id)) {\n return false;\n }\n return (\n //非关系、left_groups包含basic_info、有left_tags且在分类中\n !field.__isRelation ||\n (field.__isRelation &&\n (field as CmdbModels.ModelObjectRelation).left_groups?.includes(\n BASIC_INFORMATION_RELATION_GROUP_ID\n )) ||\n modelData.view.attr_category_order.includes(\n (field as CmdbModels.ModelObjectRelation).left_tags[0]\n )\n );\n }\n\n basicInfoGroupList = [];\n\n if (fieldsByTag) {\n basicInfoGroupList = map(fieldsByTag, (tag) => {\n const attrList = compact(\n map(tag.fields, (attr) => {\n const matched = modelData.__fieldList.find(\n (field) => field.__id === attr\n );\n return matched;\n })\n );\n return {\n name: tag.name,\n active: false,\n attrList,\n };\n });\n } else {\n if (attributeKeys?.length) {\n basicInfoAttrList = attributeKeys\n .map((attr) => {\n const matched = modelData.__fieldList.find(\n (field) => field.__id === attr\n );\n if (matched && attrFilter(matched)) {\n return matched;\n }\n })\n .filter((attr) => attr);\n } else {\n basicInfoAttrList = modelData.__fieldList.filter((field) =>\n attrFilter(field)\n );\n }\n\n basicInfoAttrList.forEach((field) => {\n let groupTag: string;\n const nameKey = getInstanceNameKeys(modelData)[0];\n if (field.__isRelation) {\n groupTag =\n field.left_tags?.length && field.left_tags[0].trim() !== \"\"\n ? field.left_tags[0]\n : DEFAULT_ATTRIBUTE_TAG;\n } else {\n const basicInfoText = i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.BASIC_INFORMATION}`\n );\n groupTag =\n field.tag.length > 0\n ? field.tag[0] || basicInfoText\n : basicInfoText;\n }\n\n const basicInfoGroup = basicInfoGroupList.find(\n (item: any) => item.name === groupTag\n );\n\n if (basicInfoGroup) {\n field.id === nameKey\n ? basicInfoGroup[\"attrList\"].unshift(field)\n : basicInfoGroup[\"attrList\"].push(field);\n } else {\n basicInfoGroupList.push({\n name: groupTag,\n active: false,\n attrList: [field],\n });\n }\n });\n }\n\n this.setState({\n basicInfoGroupList,\n basicInfoGroupListShow: basicInfoGroupList,\n });\n }\n componentDidUpdate(prevProps: LegacyInstanceDetailProps): void {\n if (\n this.props.objectId &&\n this.props.instanceId &&\n prevProps.instanceId !== this.props.instanceId\n ) {\n (async () => await this.fetchData(this.props))();\n }\n }\n\n async componentDidMount(): Promise<void> {\n if (this.props.actions) {\n const buttonActions: BrickAction[] = [];\n const dropdownActions: BrickAction[] = [];\n\n this.props.actions.forEach((action) => {\n switch (action.type) {\n case \"dropdown\":\n dropdownActions.push(action);\n break;\n case \"button\":\n default:\n buttonActions.push(action);\n break;\n }\n });\n\n this.setState({ buttonActions, dropdownActions });\n }\n if (this.props.instanceId && this.props.objectId) {\n await this.fetchData(this.props);\n }\n }\n\n toggleBasicInfoGroupFilter(basicInfoGroup: any): void {\n const { basicInfoGroupList } = this.state;\n if (!basicInfoGroup.active) {\n basicInfoGroupList.forEach((item: any) => {\n item.active = false;\n });\n this.setState({\n basicInfoGroupListShow: basicInfoGroupList.filter(\n (item: any) => item.name === basicInfoGroup.name\n ),\n });\n } else {\n this.setState({\n basicInfoGroupListShow: basicInfoGroupList,\n });\n }\n basicInfoGroup.active = !basicInfoGroup.active;\n }\n\n // istanbul ignore next\n async fetchData(props: LegacyInstanceDetailProps): Promise<void> {\n let modelListData,\n modelDataMap,\n modelData: Partial<CmdbModels.ModelCmdbObject>,\n instanceData,\n filterModelData,\n hideModelData: string[];\n try {\n if (props.modelDataList) {\n modelDataMap = keyBy(props.modelDataList, \"objectId\");\n instanceData = await fetchCmdbInstanceDetail(\n props.objectId,\n props.instanceId\n );\n } else {\n [modelListData, instanceData] = await Promise.all([\n fetchCmdbObjectRef(props.objectId),\n fetchCmdbInstanceDetail(props.objectId, props.instanceId),\n ]);\n modelDataMap = keyBy(modelListData.data, \"objectId\") as {\n [objectId: string]: CmdbModels.ModelCmdbObject;\n };\n }\n modelData = modelDataMap[props.objectId];\n hideModelData = modelData.view.hide_columns || [];\n filterModelData = {\n ...modelData,\n attrList: modelData.attrList.filter(\n (item) => !hideModelData.includes(item.id)\n ),\n relation_list: modelData.relation_list.filter(\n (item) =>\n !(\n (hideModelData.includes(item.left_id) &&\n item.left_object_id === props.objectId) ||\n (hideModelData.includes(item.right_id) &&\n item.right_object_id === props.objectId)\n )\n ),\n };\n this.setState({\n modelDataMap,\n modelData: modifyModelData(filterModelData),\n instanceData,\n loaded: true,\n basicInfoGroupListShow: [],\n basicInfoGroupList: [],\n });\n this.setBasicInfoGroupList(this.state);\n // this.setFormattedInstanceData(this.state);\n } catch (e) {\n // 统一处理请求错误\n handleHttpError(e);\n // 标记 `loaded` 和 `failed` 状态\n this.setState({ loaded: true });\n }\n }\n\n isStruct(attr: any) {\n return attr.value?.type === \"struct\";\n }\n\n isStructs(attr: any) {\n return attr.value?.type === \"structs\";\n }\n isUrl(attr: any) {\n return attr.value?.type === \"str\" && attr.value?.mode === \"url\";\n }\n\n isRelation(attr: any) {\n return attr.value?.type === \"FK\" || attr.value?.type === \"FKs\";\n }\n isFloat(attr: any) {\n return attr.value?.type === \"float\";\n }\n\n isSpecialDisplayField(attr: any) {\n return (\n // TODO: ENABLED_FEATURES.includes(\"user-business-special-display\") &&\n [\"USER\", \"BUSINESS\"].includes(\n attr.id === attr.left_id ? attr.right_object_id : attr.left_object_id\n )\n );\n }\n\n isMarkdownField(attr: any) {\n return attr.value?.type === \"str\" && get(attr, \"value.mode\") === \"markdown\";\n }\n}\n\nexport const InstanceDetail = withTranslation(NS_LIBS_CMDB_INSTANCES)(\n LegacyInstanceDetail\n);\n"],"file":"InstanceDetail.js"}
|
|
@@ -7,7 +7,7 @@ var _excluded = ["useBrick"];
|
|
|
7
7
|
import React from "react";
|
|
8
8
|
import { withTranslation } from "react-i18next";
|
|
9
9
|
import classnames from "classnames";
|
|
10
|
-
import { Button, Popover, Table, Tag, Tooltip, Modal, message
|
|
10
|
+
import { Button, Popover, Table, Tag, Tooltip, Modal, message } from "antd";
|
|
11
11
|
import { isNil, isBoolean, compact, map } from "lodash";
|
|
12
12
|
import { CopyOutlined, DeleteOutlined } from "@ant-design/icons";
|
|
13
13
|
import { PropertyDisplayType } from "@next-core/brick-types";
|
|
@@ -22,9 +22,8 @@ import { BrickAsComponent } from "@next-core/brick-kit";
|
|
|
22
22
|
import { NS_LIBS_CMDB_INSTANCES, K } from "../i18n/constants";
|
|
23
23
|
import i18n from "i18next";
|
|
24
24
|
import { CmdbUrlLink } from "../cmdb-url-link/CmdbUrlLink";
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
} = Typography;
|
|
25
|
+
import { FloatDisplayBrick } from "../float-display-brick/FloatDisplayBrick"; // const { Paragraph } = Typography;
|
|
26
|
+
|
|
28
27
|
var SortOrder;
|
|
29
28
|
|
|
30
29
|
(function (SortOrder) {
|
|
@@ -519,6 +518,15 @@ export class LegacyInstanceListTable extends React.Component {
|
|
|
519
518
|
|
|
520
519
|
break;
|
|
521
520
|
|
|
521
|
+
case ModelAttributeValueType.FLOAT:
|
|
522
|
+
tempColumns = value => {
|
|
523
|
+
return /*#__PURE__*/React.createElement(FloatDisplayBrick, {
|
|
524
|
+
floatValue: value
|
|
525
|
+
});
|
|
526
|
+
};
|
|
527
|
+
|
|
528
|
+
break;
|
|
529
|
+
|
|
522
530
|
default:
|
|
523
531
|
if (object.objectId === "HOST" && attribute.id in customRules) {
|
|
524
532
|
tempColumns = (text, record, index) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/instance-list-table/InstanceListTable.tsx"],"names":["React","withTranslation","classnames","Button","Popover","Table","Tag","Tooltip","Modal","message","Typography","isNil","isBoolean","compact","map","CopyOutlined","DeleteOutlined","PropertyDisplayType","CmdbObjectApi_getIdMapName","Link","GeneralIcon","forEachAvailableFields","getInstanceNameKeys","getTemplateFromMap","parseTemplate","modifyModelData","ModelAttributeValueType","StructTable","styles","customRules","BrickAsComponent","NS_LIBS_CMDB_INSTANCES","K","i18n","CmdbUrlLink","Paragraph","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","length","warning","SELECT_COPY_DATA","inputDom","document","createElement","filter","v","join","body","appendChild","select","execCommand","remove","success","COPY_SUCCESS","objectId","modelData","forEach","config","keyDisplayConfigMap","propertyDisplayConfigs","fieldIds","sortedColumns","getChangeColumns","inheritanceModelIdNameMap","defaultPagination","disabled","paginationDisabled","pageSizeOptions","showSizeChanger","showTotal","totals","totalText","PAGINATION_TOTAL_TEXT","total","PAGINATION_TOTAL_UNIT","list","instanceListData","columns","getMergedColumns","extraColumns","page_size","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","getCustomPropertyRender","isPrimary","el","Object","assign","dataSource","getSpecialUrlTemplates","object","node","url","isRenderStructList","instanceId","JUMP_TO","name","INSTANCE_DETAIL","display","iconWrap","category","linkKey","iconWrapOfStruct","attribute","instanceListTableCell","displayConfig","tempColumns","type","STRUCT","STRUCT_LIST","sortDisabled","values","valueColorMap","isLegacy","maxWidth","width","height","padding","VIEW","ARR","ENUMS","BOOLEAN","JSON","stringify","STRING","toString","split","valStr","item","detailUrlTemplates","detailUrlTemplate","target","this","instances","that","nameKeys","idObjectMap","instanceNodes","instance","subName","instanceName","separatorUsedInRelationData","relationLinkDisabled","sortOrder","componentDidUpdate","prevProps","rowSelection","selectDisabled","preserveSelectedRowKeys","onChange","onSelectChange","classes","shouldEllipsis","autoBreakLine","tableWrapper","attrList","find","mode","row","linkStr","ipCopy","filterDropdown","filterIcon","copyWrap","COPY_SELECTED_IP","fontSize","handelIpCopyText","overflowX","overflowY","x","childrenColumnName","configProps","InstanceListTable"],"mappings":";;;;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,eAAT,QAAiD,eAAjD;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,SACEC,MADF,EAEEC,OAFF,EAGEC,KAHF,EAIEC,GAJF,EAKEC,OALF,EAMEC,KANF,EAOEC,OAPF,EAQEC,UARF,QASO,MATP;AAUA,SAASC,KAAT,EAAgBC,SAAhB,EAA2BC,OAA3B,EAAoCC,GAApC,QAAqD,QAArD;AACA,SAASC,YAAT,EAAuBC,cAAvB,QAA6C,mBAA7C;AAOA,SAGEC,mBAHF,QAQO,wBARP;AASA,SAGEC,0BAHF,QAIO,oBAJP;AAKA,SAASC,IAAT,EAAeC,WAAf,QAAkC,6BAAlC;AACA,SACEC,sBADF,EAEEC,mBAFF,EAGEC,kBAHF,EAIEC,aAJF,EAKEC,eALF,QAUO,uBAVP;AAWA,SAASC,uBAAT,QAAwC,2DAAxC;AACA,SAAoBC,WAApB,QAAuC,sBAAvC;AACA,OAAOC,MAAP,MAAmB,gCAAnB;AACA,SAASC,WAAT,QAA4B,SAA5B;AACA,SAASC,gBAAT,QAAiC,sBAAjC;AACA,SAASC,sBAAT,EAAiCC,CAAjC,QAA0C,mBAA1C;AACA,OAAOC,IAAP,MAAiB,SAAjB;AACA,SAASC,WAAT,QAA4B,8BAA5B;AACA,IAAM;AAAEC,EAAAA;AAAF,IAAgBzB,UAAtB;IAWK0B,S;;WAAAA,S;AAAAA,EAAAA,S;AAAAA,EAAAA,S;GAAAA,S,KAAAA,S;;AAKL,IAAMC,mBAAoE,GAAG;AAC3EC,EAAAA,IAAI,EAAE,CACJ;AACEC,IAAAA,GAAG,EAAE,cADP;AAEEC,IAAAA,KAAK,EAAE;AAFT,GADI,CADqE;AAO3EC,EAAAA,OAAO,EAAE,CACP;AACEF,IAAAA,GAAG,EAAE,MADP;AAEEC,IAAAA,KAAK,EAAE,0CAFT;AAGEE,IAAAA,UAAU,EAAE;AACVC,MAAAA,MAAM,EAAE;AACNC,QAAAA,KAAK,EAAE;AADD,OADE;AAIVC,MAAAA,MAAM,EAAE;AAJE;AAHd,GADO;AAPkE,CAA7E;AAkEA,OAAO,MAAMC,uBAAN,SAAsC9C,KAAK,CAAC+C,SAA5C,CAGL;AAwBAC,EAAAA,WAAW,CAACC,KAAD,EAAgC;AAAA;;AACzC,UAAMA,KAAN;;AADyC,iDAvBkB,EAuBlB;;AAAA;;AAAA;;AAAA,0CApBL,EAoBK;;AAAA,8DAlBzC,uDACE,kCAAOhB,IAAI,CAACiB,CAAL,WAAUnB,sBAAV,cAAoCC,CAAC,CAACmB,eAAtC,EAAP,CADF,eAEE,oBAAC,OAAD;AACE,MAAA,KAAK,EAAElB,IAAI,CAACiB,CAAL,WAAUnB,sBAAV,cAAoCC,CAAC,CAACoB,uBAAtC;AADT,oBAGE;AAAM,MAAA,SAAS,EAAExB,MAAM,CAACyB;AAAxB,oBACE,oBAAC,WAAD;AACE,MAAA,IAAI,EAAE;AACJC,QAAAA,GAAG,EAAE,MADD;AAEJC,QAAAA,IAAI,EAAE,iBAFF;AAGJC,QAAAA,KAAK,EAAE;AAHH;AADR,MADF,CAHF,CAFF,CAkByC;;AAAA,sCAitBhC,CACTC,UADS,EAETC,OAFS,EAGTC,MAHS,EAMTC,KANS,KAON;AAAA;;AACH,UAAMC,sBAAsB,GAAGH,OAAH,aAAGA,OAAH,8CAAGA,OAAO,CAAEI,UAAZ,wDAAG,oBAAsB,CAAtB,CAA/B;;AACA,UAAID,sBAAsB,KAAK,KAAKE,KAAL,CAAWC,mBAA1C,EAA+D;AAC7D,aAAKf,KAAL,CAAWgB,sBAAX,CAAkCJ,sBAAlC;AACD;;AACD,WACE;AACCJ,MAAAA,UAAU,CAACS,OAAX,GAAqB,CAArB,IACCT,UAAU,CAACS,OAAX,KAAuB,KAAKH,KAAL,CAAWN,UAAX,CAAsBS,OAD/C,IAEAT,UAAU,CAACU,QAAX,KAAwB,KAAKJ,KAAL,CAAWN,UAAX,CAAsBU,QAJhD,EAKE;AAAA;;AACA,qDAAKlB,KAAL,EAAWmB,kBAAX,kGAAgC;AAC9BC,UAAAA,IAAI,EAAEZ,UAAU,CAACS,OADa;AAE9BC,UAAAA,QAAQ,EAAEV,UAAU,CAACU;AAFS,SAAhC;AAID;;AACD,UAAI,CAACG,KAAK,CAACC,OAAN,CAAcZ,MAAd,CAAL,EAA4B;AAC1B,YAAMa,GAAG,GAAG;AAAE,WAACpC,SAAS,CAACqC,MAAX,GAAoB,IAAtB;AAA4B,WAACrC,SAAS,CAACsC,OAAX,GAAqB;AAAjD,UACVf,MAAM,CAACgB,KADG,CAAZ;;AAGA,YACE,CAAChB,MAAM,CAACiB,MAAP,GAAgBjB,MAAM,CAACkB,KAAvB,GAA+BC,SAAhC,MAA+C,KAAK7B,KAAL,CAAW8B,IAA1D,IACAP,GAAG,KAAK,KAAKvB,KAAL,CAAWuB,GAFrB,EAGE;AAAA;;AACA,wDAAKvB,KAAL,EAAW+B,eAAX,mGAA6B;AAAED,YAAAA,IAAI,EAAEpB,MAAM,CAACkB,KAAf;AAAgCL,YAAAA;AAAhC,WAA7B;AACD;AACF;AACF,KAnvB0C;;AAAA,4CAqvB1B,CACfS,eADe,EAEfC,YAFe,KAGZ;AAAA;;AACH,WAAKA,YAAL,GAAoBA,YAApB;AACA,oDAAKjC,KAAL,EAAWkC,iBAAX,mGAA+B;AAC7BC,QAAAA,YAAY,EAAEH,eADe;AAE7BI,QAAAA,aAAa,EAAEH;AAFc,OAA/B;AAID,KA9vB0C;;AAAA,8CA+vBxB,CACjBI,EADiB,EAEjBC,SAFiB,KAGd;AACHD,MAAAA,EAAE,CAACE,eAAH;;AACA,UAAI,KAAKN,YAAL,CAAkBO,MAAlB,GAA2B,CAA/B,EAAkC;AAChChF,QAAAA,OAAO,CAACiF,OAAR,CACEzD,IAAI,CAACiB,CAAL,WAAUnB,sBAAV,cAAoCC,CAAC,CAAC2D,gBAAtC,EADF;AAGA,eAAO,KAAP;AACD;;AACD,UAAMC,QAAQ,GAAGC,QAAQ,CAACC,aAAT,CAAuB,UAAvB,CAAjB;AACAF,MAAAA,QAAQ,CAAChD,KAAT,GAAiB9B,GAAG,CAClB,KAAKoE,YAAL,CAAkBa,MAAlB,CAA0BC,CAAD,IAAOA,CAAC,CAACT,SAAD,CAAjC,CADkB,EAElBA,SAFkB,CAAH,CAGfU,IAHe,CAGV,IAHU,CAAjB;AAIAJ,MAAAA,QAAQ,CAACK,IAAT,CAAcC,WAAd,CAA0BP,QAA1B;AACAA,MAAAA,QAAQ,CAACQ,MAAT,GAdG,CAcgB;;AACnBP,MAAAA,QAAQ,CAACQ,WAAT,CAAqB,MAArB;AACAT,MAAAA,QAAQ,CAACU,MAAT;AACA7F,MAAAA,OAAO,CAAC8F,OAAR,CAAgBtE,IAAI,CAACiB,CAAL,WAAUnB,sBAAV,cAAoCC,CAAC,CAACwE,YAAtC,EAAhB;AACD,KApxB0C;;AAEzC,QAAMC,QAAQ,GAAG,KAAKxD,KAAL,CAAWyD,SAAX,CAAqBD,QAAtC;AACA,6BAAApE,mBAAmB,CAACoE,QAAD,CAAnB,gFAA+BE,OAA/B,CACGC,MAAD,IAAa,KAAKC,mBAAL,CAAyBD,MAAM,CAACrE,GAAhC,IAAuCqE,MADtD;AAGA,kCAAK3D,KAAL,CAAW6D,sBAAX,gFAAmCH,OAAnC,CACGC,MAAD,IAAa,KAAKC,mBAAL,CAAyBD,MAAM,CAACrE,GAAhC,IAAuCqE,MADtD;AAGA,QAAMG,QAAQ,GAAG,KAAK9D,KAAL,CAAW8D,QAA5B;AACA,QAAMC,aAAa,GAAG,KAAKC,gBAAL,CAAsBF,QAAtB,CAAtB;AACA,SAAKG,yBAAL,GAAiC,KAAKjE,KAAL,CAAWiE,yBAA5C;AAEA,QAAMC,iBAAiB,GAAG;AACxBC,MAAAA,QAAQ,EAAE,KAAKnE,KAAL,CAAWoE,kBADG;AAExBC,MAAAA,eAAe,EAAE,KAAKrE,KAAL,CAAWqE,eAFJ;AAGxBC,MAAAA,eAAe,EAAE,KAAKtE,KAAL,CAAWsE,eAHJ;AAIxBC,MAAAA,SAAS,EAAGC,MAAD,iBACT;AAAM,QAAA,SAAS,EAAE7F,MAAM,CAAC8F;AAAxB,SACGzF,IAAI,CAACiB,CAAL,WAAUnB,sBAAV,cAAoCC,CAAC,CAAC2F,qBAAtC,EADH,EACmE,GADnE,eAEE;AAAQ,QAAA,SAAS,EAAE/F,MAAM,CAACgG;AAA1B,SAAkCH,MAAlC,CAFF,EAEqD,GAFrD,EAGGxF,IAAI,CAACiB,CAAL,WAAUnB,sBAAV,cAAoCC,CAAC,CAAC6F,qBAAtC,EAHH;AALsB,KAA1B;AAYA,SAAK9D,KAAL,GAAa;AACX+D,MAAAA,IAAI,EAAE,KAAK7E,KAAL,CAAW8E,gBAAX,CAA4BD,IADvB;AAEX9D,MAAAA,mBAAmB,EAAE,KAAKf,KAAL,CAAWe,mBAFrB;AAGXgE,MAAAA,OAAO,EAAE,KAAKC,gBAAL,CAAsBjB,aAAtB,EAAqC,KAAK/D,KAAL,CAAWiF,YAAhD,CAHE;AAIXzE,MAAAA,UAAU,kCACL0D,iBADK;AAERS,QAAAA,KAAK,EAAE,KAAK3E,KAAL,CAAW8E,gBAAX,CAA4BH,KAF3B;AAGR1D,QAAAA,OAAO,EAAE,KAAKjB,KAAL,CAAW8E,gBAAX,CAA4B1D,IAH7B;AAIRF,QAAAA,QAAQ,EAAE,KAAKlB,KAAL,CAAW8E,gBAAX,CAA4BI;AAJ9B,QAJC;AAUXhB,MAAAA,iBAAiB,EAAEA;AAVR,KAAb;AAYD,GA7DD,CA8DA;;;AACAiB,EAAAA,gBAAgB,CAACC,KAAD,EAAgB;AAC9B,QAAMC,OAAO,GAAG9H,KAAK,CAAC8H,OAAtB;AAEAA,IAAAA,OAAO,CAAC;AACNC,MAAAA,KAAK,EAAEtG,IAAI,CAACiB,CAAL,WACFnB,sBADE,cACwBC,CAAC,CAACwG,2BAD1B,EADD;AAINC,MAAAA,MAAM,EAAExG,IAAI,CAACiB,CAAL,WAAUnB,sBAAV,cAAoCC,CAAC,CAAC0G,OAAtC,EAJF;AAKNC,MAAAA,MAAM,EAAE,QALF;AAMNC,MAAAA,UAAU,EAAE3G,IAAI,CAACiB,CAAL,WAAUnB,sBAAV,cAAoCC,CAAC,CAAC6G,MAAtC,EANN;AAONC,MAAAA,IAAI,EAAE,MAAM;AACV,aAAKxC,MAAL,CAAY+B,KAAZ;AACD;AATK,KAAD,CAAP;AAWD,GA7ED,CA8EA;;;AACA/B,EAAAA,MAAM,CAAC+B,KAAD,EAAgB;AACpB,QAAMU,WAAW,GAAG,CAAC,GAAG,KAAK9F,KAAL,CAAW8E,gBAAX,CAA4BD,IAAhC,CAApB;AACAiB,IAAAA,WAAW,CAACC,MAAZ,CAAmBX,KAAnB,EAA0B,CAA1B;AACA,SAAKpF,KAAL,CAAWgG,oBAAX,CAAgCF,WAAhC;AACD;;AACD9B,EAAAA,gBAAgB,CAACiC,GAAD,EAAgB;AAC9B,QAAMlB,OAA0C,GAAG,EAAnD;AACA3G,IAAAA,sBAAsB,CACpBI,eAAe,CAAC,KAAKwB,KAAL,CAAWyD,SAAZ,CADK,EAEpB,CAACyC,IAAD,EAAOC,YAAP,KACEpB,OAAO,CAACqB,IAAR,CACE,KAAKC,kBAAL,CACE,KAAKC,sBAAL,CACEJ,IADF,EAEE,KAAKlG,KAAL,CAAWyD,SAFb,EAGE0C,YAHF,CADF,CADF,CAHkB,EAYpB,CAACI,QAAD,EAAWC,KAAX,EAAkBL,YAAlB,KACEpB,OAAO,CAACqB,IAAR,CACE,KAAKC,kBAAL,CACE,KAAKI,qBAAL,CACEF,QADF,EAEE,KAAKvG,KAAL,CAAWyD,SAFb,EAGE+C,KAHF,EAIEL,YAJF,CADF,CADF,CAbkB,EAuBpBF,GAvBoB,CAAtB;AAyBA,QAAMS,WAAW,GAAG,IAAIC,GAAJ,EAApB;AACA5B,IAAAA,OAAO,CAACrB,OAAR,CAAiB/B,MAAD,IACd+E,WAAW,CAACE,GAAZ,CAAgBjF,MAAM,CAACW,SAAvB,EAA4CX,MAA5C,CADF;AAGA,QAAImC,QAAJ;;AACA,QAAImC,GAAJ,aAAIA,GAAJ,eAAIA,GAAG,CAAEzD,MAAT,EAAiB;AACfsB,MAAAA,QAAQ,GAAGmC,GAAX;AACD,KAFD,MAEO,IACL,KAAKjG,KAAL,CAAWyD,SAAX,CAAqBoD,IAArB,IACA,KAAK7G,KAAL,CAAWyD,SAAX,CAAqBoD,IAArB,CAA0BC,UAFrB,EAGL;AACAhD,MAAAA,QAAQ,GAAG,KAAK9D,KAAL,CAAWyD,SAAX,CAAqBoD,IAArB,CAA0BC,UAArC;AACD;;AACD,QAAI/C,aAAJ;;AACA,QAAID,QAAJ,EAAc;AACZC,MAAAA,aAAa,GAAG,EAAhB;AACAD,MAAAA,QAAQ,CAACJ,OAAT,CAAkBqD,EAAD,IAAQ;AACvB,YAAMpF,MAAM,GAAG+E,WAAW,CAACM,GAAZ,CAAgBD,EAAhB,CAAf;;AACA,YAAIpF,MAAJ,EAAY;AACVoC,UAAAA,aAAa,CAACqC,IAAd,CAAmBzE,MAAnB;AACA+E,UAAAA,WAAW,CAACO,MAAZ,CAAmBF,EAAnB;AACD;AACF,OAND;AAOAL,MAAAA,WAAW,CAAChD,OAAZ,CAAqB/B,MAAD,IAAYoC,aAAa,CAACqC,IAAd,CAAmBzE,MAAnB,CAAhC;AACD,KAVD,MAUO;AACLoC,MAAAA,aAAa,GAAGgB,OAAhB;AACD;;AACD,QAAI,KAAK/E,KAAL,CAAWkH,SAAf,EAA0B;AACxBnD,MAAAA,aAAa,CAACqC,IAAd,CAAmB;AACjBd,QAAAA,KAAK,EAAEtG,IAAI,CAACiB,CAAL,WAAUnB,sBAAV,cAAoCC,CAAC,CAACoI,SAAtC,EADU;AAEjBC,QAAAA,SAAS,EAAEzI,MAAM,CAAC0I,aAFD;AAGjB/E,QAAAA,SAAS,EAAE,WAHM;AAIjBgF,QAAAA,KAAK,EAAE,OAJU;AAKjBC,QAAAA,MAAM,EAAE,CAACC,KAAD,EAAgBC,MAAhB,EAA6BrC,KAA7B,KAAoD;AAC1D,8BACE,oBAAC,MAAD;AACE,2BAAa,eAAeA,KAD9B;AAEE,YAAA,IAAI,EAAC,MAFP;AAGE,YAAA,IAAI,eACF,oBAAC,cAAD;AAAgB,cAAA,KAAK,EAAE;AAAEsC,gBAAAA,KAAK,EAAE;AAAT;AAAvB,cAJJ;AAME,YAAA,OAAO,EAAE,MAAM;AACb,mBAAKvC,gBAAL,CAAsBC,KAAtB;AACD;AARH,YADF;AAYD;AAlBgB,OAAnB;AAoBD;;AACD,WAAOrB,aAAP;AACD;;AAEDiB,EAAAA,gBAAgB,CACdD,OADc,EAEdE,YAFc,EAGqB;AACnC,QAAI0C,aAAa,GAAG1C,YAAY,GAC5B,CAAC,GAAGF,OAAJ,EAAa,GAAG,KAAK6C,mBAAL,CAAyB3C,YAAzB,CAAhB,CAD4B,GAE5BF,OAFJ;;AAGA,QAAI,KAAK/E,KAAL,CAAWyD,SAAX,CAAqBoE,UAAzB,EAAqC;AACnCF,MAAAA,aAAa,GAAG;AAEZrC,QAAAA,KAAK,EAAE,KAAKwC,mBAFA;AAGZxF,QAAAA,SAAS,EAAE;AAHC,SAIR,CAAC,KAAKtC,KAAL,CAAW+H,4BAAZ,GACA;AACEtH,QAAAA,OAAO,EAAE5C,GAAG,CAAC,KAAKoG,yBAAN,EAAiC,CAACtE,KAAD,EAAQL,GAAR,MAAiB;AAC5D0I,UAAAA,IAAI,EAAErI,KADsD;AAE5DA,UAAAA,KAAK,EAAEL;AAFqD,SAAjB,CAAjC,CADd;AAKE2I,QAAAA,cAAc,EAAE,KALlB;AAMEC,QAAAA,aAAa,EAAE,KAAKlI,KAAL,CAAWe,mBAAX,IAAkC,CAC/C,KAAKf,KAAL,CAAWe,mBADoC;AANnD,OADA,GAWA,EAfQ;AAgBZwG,QAAAA,MAAM,EAAE,CAAC5H,KAAD,EAAQ8H,MAAR,EAAgBrC,KAAhB;AAAA;;AAAA,8BACN,oBAAC,GAAD,QAAM,+BAAKnB,yBAAL,gFAAiCtE,KAAjC,MAA2CA,KAAjD,CADM;AAAA;AAhBI,UAoBd,GAAGgI,aAAa,CAAC7E,MAAd,CAAsBqF,CAAD,IAAOA,CAAC,CAAC7F,SAAF,KAAgB,YAA5C,CApBW,CAAhB;AAsBD;;AACD,WAAOqF,aAAP;AACD;;AAEDC,EAAAA,mBAAmB,CACjB3C,YADiB,EAEkB;AACnC,SAAKmD,qBAAL,GAA6B,IAAIzB,GAAJ,EAA7B;AAEA,WAAO1B,YAAY,CAACpH,GAAb,CAAkB8D,MAAD,IAAY;AAClC,UAAM;AAAE0G,QAAAA;AAAF,UAAmC1G,MAAzC;AAAA,UAAqB2G,eAArB,4BAAyC3G,MAAzC;;AAEA,UAAI0G,QAAJ,EAAc;AACZC,QAAAA,eAAe,CAACf,MAAhB,GAAyB,CAAC5H,KAAD,EAAQ8H,MAAR,EAAgBrC,KAAhB,KAA0B;AACjD,cAAImD,IAAI,GAAG,KAAKH,qBAAL,CAA2BpB,GAA3B,CAA+BS,MAA/B,CAAX;;AAEA,cAAI,CAACc,IAAL,EAAW;AACTA,YAAAA,IAAI,GAAG;AAAEC,cAAAA,QAAQ,EAAE7I,KAAZ;AAAmB8I,cAAAA,OAAO,EAAEhB,MAA5B;AAAoCrC,cAAAA;AAApC,aAAP;AACA,iBAAKgD,qBAAL,CAA2BxB,GAA3B,CAA+Ba,MAA/B,EAAuCc,IAAvC;AACD;;AAED,8BAAO,oBAAC,gBAAD;AAAkB,YAAA,QAAQ,EAAEF,QAA5B;AAAsC,YAAA,IAAI,EAAEE;AAA5C,YAAP;AACD,SATD;AAUD;;AAED,aAAOD,eAAP;AACD,KAjBM,CAAP;AAkBD;;AAEKI,EAAAA,iBAAiB,GAAkB;AAAA;;AAAA;AACvC,UACE,KAAI,CAAC1I,KAAL,CAAWyD,SAAX,CAAqBoE,UAArB,IACAnK,KAAK,CAAC,KAAI,CAACuG,yBAAN,CAFP,EAGE;AACA,QAAA,KAAI,CAACA,yBAAL,SAAuChG,0BAA0B,CAAC;AAChE0K,UAAAA,cAAc,EAAE,KAAI,CAAC3I,KAAL,CAAWyD,SAAX,CAAqBD;AAD2B,SAAD,CAAjE;AAGD;;AACD,UAAMuB,OAAO,GAAG,KAAI,CAACf,gBAAL,CAAsB,KAAI,CAAChE,KAAL,CAAW8D,QAAjC,CAAhB;;AACA,MAAA,KAAI,CAAC8E,QAAL,CAAc;AACZ7D,QAAAA,OAAO,EAAE,KAAI,CAACC,gBAAL,CAAsBD,OAAtB,EAA+B,KAAI,CAAC/E,KAAL,CAAWiF,YAA1C;AADG,OAAd;AAVuC;AAaxC;;AAED4D,EAAAA,gCAAgC,CAACC,SAAD,EAA0C;AACxE,SAAK7E,yBAAL,mCACK,KAAKA,yBADV,GAEK6E,SAAS,CAAC7E,yBAFf;AAIA,QAAMc,OAAO,GAAG,KAAKf,gBAAL,CAAsB8E,SAAS,CAAChF,QAAhC,CAAhB;AACA,SAAK8E,QAAL,CAAc;AACZ7D,MAAAA,OAAO,EAAE,KAAKC,gBAAL,CAAsBD,OAAtB,EAA+B+D,SAAS,CAAC7D,YAAzC;AADG,KAAd;AAGD;;AAED8D,EAAAA,eAAe,CACbC,CADa,EAEbjC,EAFa,EAGP;AACN,QAAI,KAAK/G,KAAL,CAAWiJ,WAAf,EAA4B;AAC1B,WAAKjJ,KAAL,CAAWiJ,WAAX,CAAuBD,CAAvB,EAA0BjC,EAA1B;AACD;AACF;;AACDmC,EAAAA,uBAAuB,CAACvF,MAAD,EAAgCwF,SAAhC,EAAqD;AAC1E,WAAO,CAACxJ,KAAD,EAAa8H,MAAb,EAA0CrC,KAA1C,KAA4D;AACjE,0BACE,oBAAC,MAAD,CAAQ,KAAR;AACE,QAAA,GAAG,EAAGgE,EAAD,IAAuC;AAC1C,cAAIA,EAAJ,EAAQ;AACN,gBAAIzF,MAAM,CAAClE,UAAX,EAAuB;AACrB4J,cAAAA,MAAM,CAACC,MAAP,CACEF,EADF,EAEE;AACEG,gBAAAA,UAAU,EAAE9B,MADd;AAEEjE,gBAAAA,QAAQ,EAAE,KAAKxD,KAAL,CAAWyD,SAAX,CAAqBD;AAFjC,eAFF,EAMEG,MAAM,CAAClE,UANT;AAQD,aATD,MASO;AACL4J,cAAAA,MAAM,CAACC,MAAP,CAAcF,EAAd,EAAkB;AAChB9J,gBAAAA,GAAG,EAAEqE,MAAM,CAACrE,GADI;AAEhBK,gBAAAA,KAFgB;AAGhBwJ,gBAAAA;AAHgB,eAAlB;AAKD;AACF;AACF;AApBH,QADF;AAwBD,KAzBD;AA0BD,GA3RD,CA4RA;;;AACAK,EAAAA,sBAAsB,CACpBC,MADoB,EAEpBhC,MAFoB,EAGpBiC,IAHoB,EAIpBC,GAJoB,EAKpBC,kBALoB,EAMpB;AACA,QAAI,CAACD,GAAL,EAAU;AACR,0BACE;AACE,QAAA,IAAI,EAAC,QADP;AAEE,QAAA,OAAO,EAAGX,CAAD,IAAO,KAAKD,eAAL,CAAqBC,CAArB,EAAwBvB,MAAM,CAACoC,UAA/B,CAFlB;AAGE,uBAAY;AAHd,sBAKE,oBAAC,OAAD;AACE,QAAA,SAAS,EAAC,KADZ;AAEE,QAAA,KAAK,YAAK7K,IAAI,CAACiB,CAAL,WAAUnB,sBAAV,cAAoCC,CAAC,CAAC+K,OAAtC,EAAL,SACHL,MAAM,CAACM,IADJ,SAEF/K,IAAI,CAACiB,CAAL,WAAUnB,sBAAV,cAAoCC,CAAC,CAACiL,eAAtC,EAFE;AAFP,sBAME;AAAM,QAAA,KAAK,EAAE;AAAEC,UAAAA,OAAO,EAAE;AAAX;AAAb,sBACE;AAAM,QAAA,SAAS,EAAEtL,MAAM,CAACuL;AAAxB,sBACE,oBAAC,WAAD;AACE,QAAA,IAAI,EAAE;AACJ7J,UAAAA,GAAG,EAAE,SADD;AAEJC,UAAAA,IAAI,EAAE,QAFF;AAGJ6J,UAAAA,QAAQ,EAAE,KAHN;AAIJzC,UAAAA,KAAK,EAAE;AAJH;AADR,QADF,CADF,eAWE;AAAM,QAAA,SAAS,EAAE/I,MAAM,CAACyL;AAAxB,SAAkCV,IAAlC,CAXF,CANF,CALF,CADF;AA4BD;;AACD,wBACE,uDACE;AAAM,MAAA,KAAK,EAAE;AAAEO,QAAAA,OAAO,EAAE;AAAX;AAAb,oBACE;AACE,MAAA,SAAS,EACPL,kBAAkB,GAAGjL,MAAM,CAAC0L,gBAAV,GAA6B1L,MAAM,CAACuL;AAF1D,oBAKE,oBAAC,IAAD;AACE,MAAA,EAAE,EAAEP,GADN;AAEE,MAAA,OAAO,EAAGX,CAAD,IAAY,KAAKD,eAAL,CAAqBC,CAArB,EAAwBvB,MAAM,CAACoC,UAA/B,CAFvB;AAGE,qBAAY;AAHd,oBAKE,oBAAC,OAAD;AACE,MAAA,SAAS,EAAC,KADZ;AAEE,MAAA,KAAK,YAAK7K,IAAI,CAACiB,CAAL,WAAUnB,sBAAV,cAAoCC,CAAC,CAAC+K,OAAtC,EAAL,SACHL,MAAM,CAACM,IADJ,SAEF/K,IAAI,CAACiB,CAAL,WAAUnB,sBAAV,cAAoCC,CAAC,CAACiL,eAAtC,EAFE;AAFP,oBAME,+CACE,oBAAC,WAAD;AACE,MAAA,IAAI,EAAE;AACJ3J,QAAAA,GAAG,EAAE,SADD;AAEJC,QAAAA,IAAI,EAAE,QAFF;AAGJ6J,QAAAA,QAAQ,EAAE,KAHN;AAIJzC,QAAAA,KAAK,EAAE;AAJH;AADR,MADF,CANF,CALF,CALF,CADF,eA8BE;AAAM,MAAA,SAAS,EAAE/I,MAAM,CAACyL;AAAxB,OAAkCV,IAAlC,CA9BF,CADF,CADF;AAoCD;;AACDpD,EAAAA,sBAAsB,CACpBgE,SADoB,EAEpBb,MAFoB,EAGpBtD,YAHoB,EAIa;AACjC,QAAMxE,MAAuC,GAAG;AAC9C2D,MAAAA,KAAK,EAAEgF,SAAS,CAACP,IAD6B;AAE9CzH,MAAAA,SAAS,EAAEgI,SAAS,CAACvD,EAFyB;AAG9CK,MAAAA,SAAS,EAAEzI,MAAM,CAAC4L;AAH4B,KAAhD;AAKA,QAAMC,aAAa,GAAG,KAAK5G,mBAAL,CAAyB0G,SAAS,CAACvD,EAAnC,CAAtB;AACA,QAAMoC,SAAS,GAAGmB,SAAS,CAACvD,EAAV,KAAiB1I,mBAAmB,CAACoL,MAAD,CAAnB,CAA4B,CAA5B,CAAnC;AACA,QAAIgB,WAAJ;;AAEA,YAAQH,SAAS,CAAC3K,KAAV,CAAgB+K,IAAxB;AACE,WAAKjM,uBAAuB,CAACkM,MAA7B;AACA,WAAKlM,uBAAuB,CAACmM,WAA7B;AACEjJ,QAAAA,MAAM,CAACjB,MAAP,GAAgB,KAAhB;AACA;;AACF;AACEiB,QAAAA,MAAM,CAACjB,MAAP,GAAgB,CAAC,KAAKV,KAAL,CAAW6K,YAA5B;AANJ;;AAQA,QAAIL,aAAJ,EAAmB;AACjB,UAAIA,aAAa,CAACjL,KAAlB,EAAyB;AACvBkL,QAAAA,WAAW,GAAG,CACZ9K,KADY,EAEZ8H,MAFY,EAGZrC,KAHY,KAIT;AACH,iBAAO,KAAK8D,uBAAL,CAA6BsB,aAA7B,EAA4CrB,SAA5C,EACLxJ,KADK,EAEL8H,MAFK,EAGLrC,KAHK,CAAP;AAKD,SAVD;AAWD,OAZD,MAYO,IAAIoF,aAAa,CAACE,IAAlB,EAAwB;AAC7B,gBAAQF,aAAa,CAACE,IAAtB;AACE,eAAK1M,mBAAmB,CAACX,GAAzB;AACEsE,YAAAA,MAAM,CAAC4F,MAAP,GAAgB,CACduD,MADc,EAEdrD,MAFc,EAGdrC,KAHc,KAIX;AACH,kBAAI0F,MAAJ,EAAY;AACV,oBAAI,EAAEA,MAAM,YAAYzJ,KAApB,CAAJ,EAAgC;AAC9ByJ,kBAAAA,MAAM,GAAG,CAACA,MAAD,CAAT;AACD;;AACD,uBAAOA,MAAM,CAACjN,GAAP,CAAY8B,KAAD,IAAW;AAC3B,sBAAI+H,KAAJ;;AACA,sBAAI8C,aAAa,CAACO,aAAlB,EAAiC;AAC/BrD,oBAAAA,KAAK,GAAG8C,aAAa,CAACO,aAAd,CAA4BpL,KAA5B,CAAR;AACD;;AACD,sCACE,oBAAC,GAAD;AAAK,oBAAA,GAAG,EAAEA,KAAV;AAAiB,oBAAA,KAAK,EAAE+H;AAAxB,qBACG/H,KADH,CADF;AAKD,iBAVM,CAAP;AAWD,eAfD,MAeO;AACL,uBAAO,IAAP;AACD;AACF,aAvBD;;AAwBA;AA1BJ;AA4BD;AACF,KA3CD,MA2CO;AACL,UAAIqL,QAAJ;;AACA,cAAQV,SAAS,CAAC3K,KAAV,CAAgB+K,IAAxB;AACE,aAAKjM,uBAAuB,CAACkM,MAA7B;AACEK,UAAAA,QAAQ,GAAG,IAAX;AACF;;AACA,aAAKvM,uBAAuB,CAACmM,WAA7B;AACEH,UAAAA,WAAW,GAAG,CACZ9K,KADY,EAEZ8H,MAFY,EAGZrC,KAHY,KAIT;AACH,mBAAOzF,KAAK,gBACV,oBAAC,OAAD;AACE,cAAA,YAAY,EAAE;AAAEsL,gBAAAA,QAAQ,EAAE,GAAZ;AAAiBC,gBAAAA,KAAK,EAAE,MAAxB;AAAgCC,gBAAAA,MAAM,EAAE;AAAxC,eADhB;AAEE,cAAA,OAAO,eACL,oBAAC,WAAD;AACE,gBAAA,SAAS,EAAEb,SADb;AAEE,gBAAA,UAAU,EAAE3K,KAFd;AAGE,gBAAA,QAAQ,EAAEqL;AAHZ,gBAHJ;AASE,cAAA,SAAS,EAAC;AATZ,4BAWE,oBAAC,MAAD;AAAQ,cAAA,IAAI,EAAC,MAAb;AAAoB,cAAA,KAAK,EAAE;AAAEI,gBAAAA,OAAO,EAAE;AAAX;AAA3B,eACGpM,IAAI,CAACiB,CAAL,WAAUnB,sBAAV,cAAoCC,CAAC,CAACsM,IAAtC,EADH,CAXF,CADU,GAgBR,IAhBJ;AAiBD,WAtBD;;AAuBA;;AACF,aAAK5M,uBAAuB,CAAC6M,GAA7B;AACA,aAAK7M,uBAAuB,CAAC8M,KAA7B;AACEd,UAAAA,WAAW,GAAG,CACZ9K,KADY,EAEZ8H,MAFY,EAGZrC,KAHY,KAIT;AACH,mBAAOzF,KAAK,IAAIA,KAAK,CAAC6C,MAAN,GAAe,CAAxB,GAA4B7C,KAAK,CAACqD,IAAN,CAAW,IAAX,CAA5B,GAA+C,IAAtD;AACD,WAND;;AAOA;;AACF,aAAKvE,uBAAuB,CAAC+M,OAA7B;AACEf,UAAAA,WAAW,GAAI1H,CAAD,IAAiBrF,KAAK,CAACqF,CAAD,CAAL,GAAW,EAAX,GAAgB,KAAKA,CAApD;;AACA;;AACF,aAAKtE,uBAAuB,CAACgN,IAA7B;AACEhB,UAAAA,WAAW,GAAI1H,CAAD,IACZ,OAAOA,CAAP,KAAa,QAAb,GAAwBA,CAAxB,GAA4B0I,IAAI,CAACC,SAAL,CAAe3I,CAAf,CAD9B;;AAEA;;AACF,aAAKtE,uBAAuB,CAACkN,MAA7B;AACElB,UAAAA,WAAW,GAAI1H,CAAD,IAAeA,CAA7B;;AACA;;AACF;AACE,cAAI0G,MAAM,CAACjG,QAAP,KAAoB,MAApB,IAA8B8G,SAAS,CAACvD,EAAV,IAAgBnI,WAAlD,EAA+D;AAC7D6L,YAAAA,WAAW,GAAG,CACZzC,IADY,EAEZP,MAFY,EAGZrC,KAHY,KAIT;AACH,kBAAI,CAACzH,SAAS,CAACqK,IAAD,CAAV,KAAqBA,IAAI,IAAIA,IAAI,KAAK,CAAtC,CAAJ,EAA8C;AAC5CA,gBAAAA,IAAI,GAAGpK,OAAO,CAACoK,IAAI,CAAC4D,QAAL,GAAgBC,KAAhB,CAAsB,GAAtB,CAAD,CAAd;AACA,oBAAMC,MAAM,GAAG9D,IAAI,CAChBnK,GADY,CACPkO,IAAD,IAAe;AAClB,yBAAQnN,WAAD,CAAqB0L,SAAS,CAACvD,EAA/B,EAAmCgF,IAAnC,EAAyCzB,SAAzC,CAAP;AACD,iBAHY,EAIZtH,IAJY,CAIP,GAJO,CAAf;AAKA,uBAAO8I,MAAM,KAAK,EAAX,GAAgBjK,SAAhB,GAA4BiK,MAAnC;AACD;;AACD,qBAAQlN,WAAD,CAAqB0L,SAAS,CAACvD,EAA/B,EAAmCiB,IAAnC,EAAyCsC,SAAzC,CAAP;AACD,aAfD;AAgBD,WAjBD,MAiBO;AACLG,YAAAA,WAAW,GAAI1H,CAAD,IAAeA,CAA7B;AACD;;AArEL;AAuED,KAtIgC,CAuIjC;;;AACA,QAAI0H,WAAJ,EAAiB;AACf9I,MAAAA,MAAM,CAAC4F,MAAP,GACEpB,YAAY,IAAI,KAAKnG,KAAL,CAAWgM,kBAA3B,GACI,CAACrM,KAAD,EAAgB8H,MAAhB,EAA6CrC,KAA7C,KAA+D;AAC7D;AACA,YAAM6G,iBAAiB,GAAG3N,kBAAkB,CAC1C,KAAK0B,KAAL,CAAWgM,kBAD+B,EAE1CvC,MAAM,CAACjG,QAFmC,CAA5C;;AAIA,YAAIyI,iBAAJ,EAAuB;AAAA;;AACrB,cAAM1D,IAAI,mCACLd,MADK;AAERjE,YAAAA,QAAQ,EAAEiG,MAAM,CAAC5B,UAAP,GACNJ,MAAM,CAAC5G,UADD,GAEN4I,MAAM,CAACjG;AAJH,YAAV;;AAMA,cAAMmG,GAAG,GAAGpL,aAAa,CAAC0N,iBAAD,EAAoB1D,IAApB,CAAzB;;AACA,cACE+B,SAAS,CAAC3K,KAAV,CAAgB+K,IAAhB,KAAyBjM,uBAAuB,CAACkM,MAAjD,IACAL,SAAS,CAAC3K,KAAV,CAAgB+K,IAAhB,KAAyBjM,uBAAuB,CAACmM,WAFnD,EAGE;AACA,mBAAO,KAAKpB,sBAAL,CACLC,MADK,EAELhC,MAFK,EAGLgD,WAAW,CAAC9K,KAAD,EAAQ8H,MAAR,EAAgBrC,KAAhB,CAHN,EAILuE,GAJK,EAKL,IALK,CAAP;AAOD;;AACD,cAAIa,aAAa,IAAIA,aAAa,CAACjL,KAAnC,EAA0C;AACxC,mBAAO,KAAKiK,sBAAL,CACLC,MADK,EAELhC,MAFK,EAGLgD,WAAW,CAAC9K,KAAD,EAAQ8H,MAAR,EAAgBrC,KAAhB,CAHN,EAILuE,GAJK,CAAP;AAMD;;AACD,8BACE,oBAAC,IAAD;AACE,YAAA,EAAE,EAAEA,GADN;AAEE,YAAA,OAAO,EAAGX,CAAD,IACP,KAAKD,eAAL,CAAqBC,CAArB,EAAwBvB,MAAM,CAACoC,UAA/B,CAHJ;AAKE,2BAAY;AALd,aAMO,CAAC1D,YAAD,IAAiBsD,MAAM,CAAC5B,UAAxB,GACD;AAAEqE,YAAAA,MAAM,EAAE;AAAV,WADC,GAED,KAAKlM,KAAL,CAAWkM,MAAX,GACA;AAAEA,YAAAA,MAAM,EAAE,KAAKlM,KAAL,CAAWkM;AAArB,WADA,GAEA,EAVN,gBAYE,oBAAC,OAAD;AACE,YAAA,SAAS,EAAC,KADZ;AAEE,YAAA,KAAK,YAAKlN,IAAI,CAACiB,CAAL,WACLnB,sBADK,cACqBC,CAAC,CAAC+K,OADvB,EAAL,SAGHL,MAAM,CAAC5B,UAAP,GACI,gCAAK5D,yBAAL,kFACEwD,MAAM,CAAC5G,UADT,MAEK4G,MAAM,CAAC5G,UAHhB,GAII4I,MAAM,CAACM,IAPR,SAQF/K,IAAI,CAACiB,CAAL,WACEnB,sBADF,cAC4BC,CAAC,CAACiL,eAD9B,EARE;AAFP,0BAcE,+CACE;AAAM,YAAA,SAAS,EAAErL,MAAM,CAACuL;AAAxB,0BACE,oBAAC,WAAD;AACE,YAAA,IAAI,EAAE;AACJ7J,cAAAA,GAAG,EAAE,SADD;AAEJC,cAAAA,IAAI,EAAE,QAFF;AAGJ6J,cAAAA,QAAQ,EAAE,KAHN;AAIJzC,cAAAA,KAAK,EAAE;AAJH;AADR,YADF,CADF,eAWE;AAAM,YAAA,SAAS,EAAE/I,MAAM,CAACyL;AAAxB,aACGK,WAAW,CAAC9K,KAAD,EAAQ8H,MAAR,EAAgBrC,KAAhB,CADd,CAXF,CAdF,CAZF,CADF;AA6CD,SAzED,MAyEO;AACL,iBAAO,KAAKoE,sBAAL,CACLC,MADK,EAELhC,MAFK,EAGLgD,WAAW,CAAC9K,KAAD,EAAQ8H,MAAR,EAAgBrC,KAAhB,CAHN,CAAP;AAKD;AACF,OAvFL,GAwFIqF,WAzFN;AA0FD;;AACD,WAAO9I,MAAP;AACD;;AAED8E,EAAAA,qBAAqB,CACnBF,QADmB,EAEnBkD,MAFmB,EAGnBjD,KAHmB,EAInBL,YAJmB,EAKc;AACjC,QAAM7G,GAAG,GAAGiH,QAAQ,WAAIC,KAAK,CAAC2F,IAAV,SAApB;AAEA,QAAMxK,MAAuC,GAAG;AAC9C2D,MAAAA,KAAK,EAAEiB,QAAQ,WAAIC,KAAK,CAAC2F,IAAV,WAD+B;AAE9C7J,MAAAA,SAAS,EAAEhD,GAFmC;AAG9CoB,MAAAA,MAAM,EAAE,CAAC,KAAKV,KAAL,CAAW6K,YAH0B;AAI9CzD,MAAAA,SAAS,EAAEzI,MAAM,CAAC4L;AAJ4B,KAAhD;AAMA,QAAMC,aAAa,GAAG,KAAK5G,mBAAL,CAAyBtE,GAAzB,CAAtB;AACA,QAAImL,WAAJ;;AAEA,QAAID,aAAJ,EAAmB;AACjBC,MAAAA,WAAW,GAAG,CACZ9K,KADY,EAEZ8H,MAFY,EAGZrC,KAHY,KAIT;AACH,eAAO,KAAK8D,uBAAL,CAA6BsB,aAA7B,EACL7K,KADK,EAEL8H,MAFK,EAGLrC,KAHK,CAAP;AAKD,OAVD;AAWD,KAZD,MAYO;AACLqF,MAAAA,WAAW,GAAG,CACZ2B,SADY,EAEZ3E,MAFY,EAGZrC,KAHY,KAIT;AACH,YAAIgH,SAAS,IAAIA,SAAS,CAAC5J,MAAV,GAAmB,CAApC,EAAuC;AACrC,cAAMgB,SAAQ,GACZ+C,QAAQ,WAAIC,KAAK,CAAC6F,IAAV,gBADV;AAEA,cAAMC,QAAQ,GAAGjO,mBAAmB,CAClC,KAAK2B,KAAL,CAAWuM,WAAX,CAAuB/I,SAAvB,CADkC,CAApC;AAGA,cAAIyI,iBAAJ;;AAEA,cAAI,KAAKjM,KAAL,CAAWgM,kBAAf,EAAmC;AACjCC,YAAAA,iBAAiB,GAAG3N,kBAAkB,CACpC,KAAK0B,KAAL,CAAWgM,kBADyB,EAEpCxI,SAFoC,CAAtC;AAID;;AAED,cAAMgJ,aAAa,GAAGJ,SAAS,CAACvO,GAAV,CAAc,CAAC4O,QAAD,EAAWrH,KAAX,KAAqB;AACvD,gBAAIsH,OAAJ;;AAEA,gBAAIJ,QAAQ,CAAC9J,MAAT,GAAkB,CAAtB,EAAyB;AACvBkK,cAAAA,OAAO,GAAGD,QAAQ,CAACH,QAAQ,CAAC,CAAD,CAAT,CAAlB;AACD;;AAED,gBAAIK,YAAY,GAAGD,OAAO,aACnBD,QAAQ,CAACH,QAAQ,CAAC,CAAD,CAAT,CADW,eACOI,OADP,SAEtBD,QAAQ,CAACH,QAAQ,CAAC,CAAD,CAAT,CAFZ;;AAIA,gBAAIL,iBAAJ,EAAuB;AAAA;;AACrB,kBAAMtC,GAAG,GAAGpL,aAAa,CAAC0N,iBAAD,kCACpBQ,QADoB;AAEvBjJ,gBAAAA,QAAQ,EAARA;AAFuB,iBAAzB;AAIA,kCACE,oBAAC,KAAD,CAAO,QAAP;AAAgB,gBAAA,GAAG,EAAEiJ,QAAQ,CAAC5C;AAA9B,iBACGzE,KAAK,GAAG,CAAR,8BACE,KAAKpF,KAAL,CAAW4M,2BADb,yEAC4C,IAD5C,CADH,EAGG,KAAK5M,KAAL,CAAW6M,oBAAX,GACCF,YADD,gBAGC,oBAAC,IAAD;AACE,gBAAA,MAAM,EAAE,QADV,CAEE;AAFF;AAGE,gBAAA,EAAE,EAAEhD,GAHN,CAIE;AAJF;AAKE,gBAAA,OAAO,EAAGX,CAAD,IACP,KAAKD,eAAL,CAAqBC,CAArB,EAAwBvB,MAAM,CAACoC,UAA/B;AANJ,iBASG8C,YATH,CANJ,CADF;AAqBD,aA1BD,MA0BO;AACL,kBAAIvH,KAAK,GAAG,CAAZ,EAAe;AAAA;;AACbuH,gBAAAA,YAAY,GACV,2BAAC,KAAK3M,KAAL,CAAW4M,2BAAZ,2EAA2C,IAA3C,IACAD,YAFF;AAGD;;AACD,qBAAOA,YAAP;AACD;AACF,WA7CqB,CAAtB;AA+CA,iBAAOH,aAAP;AACD,SA/DD,MA+DO;AACL,iBAAO,IAAP;AACD;AACF,OAvED;AAwED,KAjGgC,CAkGjC;;;AACA,QAAI/B,WAAJ,EAAiB;AACf9I,MAAAA,MAAM,CAAC4F,MAAP,GACEpB,YAAY,IAAI,KAAKnG,KAAL,CAAWgM,kBAA3B,GACI,CAACrM,KAAD,EAAgB8H,MAAhB,EAA6CrC,KAA7C,KAA+D;AAC7D;AACA,YAAM6G,iBAAiB,GAAG3N,kBAAkB,CAC1C,KAAK0B,KAAL,CAAWgM,kBAD+B,EAE1CvC,MAAM,CAACjG,QAFmC,CAA5C;;AAIA,YAAIyI,iBAAJ,EAAuB;AACrB,cAAM1D,IAAI,mCACLd,MADK;AAERjE,YAAAA,QAAQ,EAAEiG,MAAM,CAACjG;AAFT,YAAV;;AAIA,cAAMmG,GAAG,GAAGpL,aAAa,CAAC0N,iBAAD,EAAoB1D,IAApB,CAAzB;AACA,iBAAO,KAAKiB,sBAAL,CACLC,MADK,EAELhC,MAFK,EAGLgD,WAAW,CAAC9K,KAAD,EAAQ8H,MAAR,EAAgBrC,KAAhB,CAHN,EAILuE,GAJK,CAAP;AAMD,SAZD,MAYO;AACL,iBAAO,KAAKH,sBAAL,CACLC,MADK,EAELhC,MAFK,EAGLgD,WAAW,CAAC9K,KAAD,EAAQ8H,MAAR,EAAgBrC,KAAhB,CAHN,CAAP;AAKD;AACF,OA1BL,GA2BIqF,WA5BN;AA6BD;;AACD,WAAO9I,MAAP;AACD;;AAED0E,EAAAA,kBAAkB,CAAU1E,MAAV,EAAiC;AACjD,QACGA,MAAM,CAACW,SAAP,KAAqBT,SAArB,IACCF,MAAM,CAACW,SAAP,KAAqB,KAAKtC,KAAL,CAAW8B,IADlC,IAECH,MAAM,CAACrC,GAAP,KAAeuC,SAAf,IAA4BF,MAAM,CAACrC,GAAP,KAAe,KAAKU,KAAL,CAAW8B,IAHzD,EAIE;AACAH,MAAAA,MAAM,CAACmL,SAAP,GAAmB,KAAK9M,KAAL,CAAWuB,GAAX,GAAiBpC,SAAS,CAACqC,MAA3B,GAAoCrC,SAAS,CAACsC,OAAjE;AACD,KAND,MAMO;AACLE,MAAAA,MAAM,CAACmL,SAAP,GAAmB,IAAnB;AACD;;AACD,WAAOnL,MAAP;AACD;;AAsEDoL,EAAAA,kBAAkB,CAACC,SAAD,EAAoC;AACpD,QAAI,KAAKhN,KAAL,CAAW8E,gBAAX,KAAgCkI,SAAS,CAAClI,gBAA9C,EAAgE;AAC9D,WAAK8D,QAAL,CAAc;AACZ/D,QAAAA,IAAI,EAAE,KAAK7E,KAAL,CAAW8E,gBAAX,CAA4BD,IADtB;AAEZrE,QAAAA,UAAU,kCACL,KAAKM,KAAL,CAAWoD,iBADN;AAERS,UAAAA,KAAK,EAAE,KAAK3E,KAAL,CAAW8E,gBAAX,CAA4BH,KAF3B;AAGR1D,UAAAA,OAAO,EAAE,KAAKjB,KAAL,CAAW8E,gBAAX,CAA4B1D,IAH7B;AAIRF,UAAAA,QAAQ,EAAE,KAAKlB,KAAL,CAAW8E,gBAAX,CAA4BI;AAJ9B;AAFE,OAAd;AASD;;AACD,QACE,KAAKlF,KAAL,CAAW8B,IAAX,KAAoBkL,SAAS,CAAClL,IAA9B,IACA,KAAK9B,KAAL,CAAWuB,GAAX,KAAmByL,SAAS,CAACzL,GAF/B,EAGE;AACA,UAAMwD,OAA0C,GAAG,EAAnD;AACA,WAAKjE,KAAL,CAAWiE,OAAX,CAAmBrB,OAAnB,CAA4B/B,MAAD,IACzBoD,OAAO,CAACqB,IAAR,CAAa,KAAKC,kBAAL,CAAwB1E,MAAxB,CAAb,CADF;AAGA,WAAKiH,QAAL,CAAc;AAAE7D,QAAAA;AAAF,OAAd;AACD;;AACD,QAAI,KAAK/E,KAAL,CAAWe,mBAAX,KAAmCiM,SAAS,CAACjM,mBAAjD,EAAsE;AACpE,WAAK6H,QAAL,CAAc;AACZ7H,QAAAA,mBAAmB,EAAE,KAAKf,KAAL,CAAWe;AADpB,OAAd;AAGD;AACF;;AAEDwG,EAAAA,MAAM,GAAoB;AACxB,QAAM;AAAEvF,MAAAA;AAAF,QAAsB,KAAKhC,KAAjC;AACA,QAAMiN,YAAoD,GAAG,KAAKjN,KAAL,CAC1DkN,cAD0D,GAEzD,IAFyD,GAGzD;AACEC,MAAAA,uBAAuB,EAAE,IAD3B;AAEEnL,MAAAA,eAFF;AAGEoL,MAAAA,QAAQ,EAAE,KAAKC;AAHjB,KAHJ;AASA,QAAMC,OAAO,GAAGrQ,UAAU,CAAC;AACzB,OAAC0B,MAAM,CAAC4O,cAAR,GAAyB,KAAKvN,KAAL,CAAWwN,aADX;AAEzB,OAAC7O,MAAM,CAAC8O,YAAR,GAAuB;AAFE,KAAD,CAA1B;AAIA,SAAK3M,KAAL,CAAWiE,OAAX,CAAmBlH,GAAnB,CAAwB8D,MAAD,IAAY;AAAA;;AACjC,UAAMW,SAAS,GAAGX,MAAM,CAACW,SAAzB,CADiC,CAEjC;;AACA,UAAI,+BAAKtC,KAAL,CAAWyD,SAAX,CAAqBiK,QAArB,CAA8BC,IAA9B,CAAoCzH,IAAD,IAAUA,IAAI,CAACa,EAAL,KAAYzE,SAAzD,2GACF3C,KADE,kFACKiO,IADL,MACc,KADlB,EACyB;AACvBjM,QAAAA,MAAM,CAAC4F,MAAP,GAAgB,CAACS,IAAD,EAAO6F,GAAP,EAAYzI,KAAZ,KAAsBnG,WAAW,CAAC;AAAE6O,UAAAA,OAAO,EAAE9F;AAAX,SAAD,CAAjD;AACD;;AACD,UACE,KAAKhI,KAAL,CAAW+N,MAAX,IACA,gCAAK/N,KAAL,CAAWyD,SAAX,CAAqBiK,QAArB,CAA8BC,IAA9B,CAAoCzH,IAAD,IAAUA,IAAI,CAACa,EAAL,KAAYzE,SAAzD,6GACI3C,KADJ,kFACW+K,IADX,MACoB,IAHtB,EAIE;AACA/I,QAAAA,MAAM,CAACqM,cAAP,GAAwB,mBAAM,gCAA9B;;AACArM,QAAAA,MAAM,CAACsM,UAAP,GAAoB,mBAClB,oBAAC,OAAD;AACE,UAAA,SAAS,EAAEtP,MAAM,CAACuP,QADpB;AAEE,UAAA,KAAK,EAAElP,IAAI,CAACiB,CAAL,WAAUnB,sBAAV,cAAoCC,CAAC,CAACoP,gBAAtC;AAFT,wBAIE,oBAAC,YAAD;AACE,UAAA,KAAK,EAAE;AAAEC,YAAAA,QAAQ,EAAE;AAAZ,WADT;AAEE,UAAA,OAAO,EAAG/L,EAAD,IAAQ,KAAKgM,gBAAL,CAAsBhM,EAAtB,EAA0BC,SAA1B;AAFnB,UAJF,CADF;AAWD;AACF,KAzBD;AA0BA,wBACE;AACE,MAAA,SAAS,EAAEgL,OADb;AAEE,MAAA,KAAK,EAAE;AAAEgB,QAAAA,SAAS,EAAE,MAAb;AAAqBC,QAAAA,SAAS,EAAE;AAAhC;AAFT,oBAIE,oBAAC,KAAD;AACE,MAAA,OAAO,EAAE,KAAKzN,KAAL,CAAWiE,OADtB;AAEE,MAAA,UAAU,EAAE,KAAK/E,KAAL,CAAW8E,gBAAX,CAA4BD,IAF1C;AAGE,MAAA,MAAM,EAAC,YAHT;AAIE,MAAA,MAAM,EAAE;AAAE2J,QAAAA,CAAC,EAAE;AAAL,OAJV;AAKE,MAAA,UAAU,EAAE,KAAK1N,KAAL,CAAWN,UALzB;AAME,MAAA,YAAY,EAAEyM,YANhB;AAOE,MAAA,QAAQ,EAAE,KAAKG,QAPjB;AAQE,MAAA,UAAU,EAAE;AACV;AACA;AACA;AACAqB,QAAAA,kBAAkB,EAAE;AAJV;AARd,OAcM,KAAKzO,KAAL,CAAW0O,WAdjB,EAJF,CADF;AAuBD;;AA14BD;AA64BF,OAAO,IAAMC,iBAAiB,GAAG3R,eAAe,CAAC8B,sBAAD,CAAf,CAC/Be,uBAD+B,CAA1B","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, uniq } 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} 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\";\nconst { 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 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}\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 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\n handleClickItem(\n e: React.MouseEvent<HTMLAnchorElement, MouseEvent>,\n id: string\n ): void {\n if (this.props.onClickItem) {\n this.props.onClickItem(e, id);\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 // 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.instanceId)}\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 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 </Tooltip>\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.instanceId)}\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 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) =>\n this.handleClickItem(e, record.instanceId)\n }\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\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) =>\n this.handleClickItem(e, record.instanceId)\n }\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 = (\n ev: React.MouseEvent<HTMLElement, MouseEvent>,\n dataIndex: string\n ) => {\n ev.stopPropagation();\n if (this.selectedRows.length < 1) {\n message.warning(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.SELECT_COPY_DATA}`)\n );\n return false;\n }\n const inputDom = document.createElement(\"textarea\");\n inputDom.value = map(\n this.selectedRows.filter((v) => v[dataIndex]),\n dataIndex\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 } = this.props;\n const rowSelection: TableRowSelection<Record<string, any>> = this.props\n .selectDisabled\n ? null\n : {\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 (this.props.modelData.attrList.find((attr) => attr.id === dataIndex)\n ?.value?.mode === \"url\") {\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=\"instanceId\"\n scroll={{ x: \"max-content\" }}\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 = withTranslation(NS_LIBS_CMDB_INSTANCES)(\n LegacyInstanceListTable\n);\n"],"file":"InstanceListTable.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/instance-list-table/InstanceListTable.tsx"],"names":["React","withTranslation","classnames","Button","Popover","Table","Tag","Tooltip","Modal","message","isNil","isBoolean","compact","map","CopyOutlined","DeleteOutlined","PropertyDisplayType","CmdbObjectApi_getIdMapName","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","length","warning","SELECT_COPY_DATA","inputDom","document","createElement","filter","v","join","body","appendChild","select","execCommand","remove","success","COPY_SUCCESS","objectId","modelData","forEach","config","keyDisplayConfigMap","propertyDisplayConfigs","fieldIds","sortedColumns","getChangeColumns","inheritanceModelIdNameMap","defaultPagination","disabled","paginationDisabled","pageSizeOptions","showSizeChanger","showTotal","totals","totalText","PAGINATION_TOTAL_TEXT","total","PAGINATION_TOTAL_UNIT","list","instanceListData","columns","getMergedColumns","extraColumns","page_size","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","getCustomPropertyRender","isPrimary","el","Object","assign","dataSource","getSpecialUrlTemplates","object","node","url","isRenderStructList","instanceId","JUMP_TO","name","INSTANCE_DETAIL","display","iconWrap","category","linkKey","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","rowSelection","selectDisabled","preserveSelectedRowKeys","onChange","onSelectChange","classes","shouldEllipsis","autoBreakLine","tableWrapper","attrList","find","mode","row","linkStr","ipCopy","filterDropdown","filterIcon","copyWrap","COPY_SELECTED_IP","fontSize","handelIpCopyText","overflowX","overflowY","x","childrenColumnName","configProps","InstanceListTable"],"mappings":"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","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} 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 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}\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 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\n handleClickItem(\n e: React.MouseEvent<HTMLAnchorElement, MouseEvent>,\n id: string\n ): void {\n if (this.props.onClickItem) {\n this.props.onClickItem(e, id);\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 // 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.instanceId)}\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 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 </Tooltip>\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.instanceId)}\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) =>\n this.handleClickItem(e, record.instanceId)\n }\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\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) =>\n this.handleClickItem(e, record.instanceId)\n }\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 = (\n ev: React.MouseEvent<HTMLElement, MouseEvent>,\n dataIndex: string\n ) => {\n ev.stopPropagation();\n if (this.selectedRows.length < 1) {\n message.warning(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.SELECT_COPY_DATA}`)\n );\n return false;\n }\n const inputDom = document.createElement(\"textarea\");\n inputDom.value = map(\n this.selectedRows.filter((v) => v[dataIndex]),\n dataIndex\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 } = this.props;\n const rowSelection: TableRowSelection<Record<string, any>> = this.props\n .selectDisabled\n ? null\n : {\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=\"instanceId\"\n scroll={{ x: \"max-content\" }}\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 = withTranslation(NS_LIBS_CMDB_INSTANCES)(\n LegacyInstanceListTable\n);\n"],"file":"InstanceListTable.js"}
|