@next-libs/cmdb-instances 6.21.19 → 6.21.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,17 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [6.21.20](https://github.com/easyops-cn/next-libs/compare/@next-libs/cmdb-instances@6.21.19...@next-libs/cmdb-instances@6.21.20) (2022-04-20)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **CmdbInstancesSelectPanel:** fix value改变后,panel表格数据不更新 ([79dbd3f](https://github.com/easyops-cn/next-libs/commit/79dbd3f41ae2ace79c5114d7a3bdd860187fa67e))
12
+
13
+
14
+
15
+
16
+
6
17
  ## [6.21.19](https://github.com/easyops-cn/next-libs/compare/@next-libs/cmdb-instances@6.21.18...@next-libs/cmdb-instances@6.21.19) (2022-04-18)
7
18
 
8
19
 
@@ -123,7 +123,7 @@ function CmdbInstancesSelectPanel(props, ref) {
123
123
  };
124
124
 
125
125
  getModelMap();
126
- }, [props.objectId]);
126
+ }, [props.objectId, props.value]);
127
127
 
128
128
  const openAddInstancesModal = () => {
129
129
  setAddInstancesModal({
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/cmdb-instances-select-panel/CmdbInstancesSelectPanel.tsx"],"names":["isCmdbInstancesSelectPanelPropsWithObjectMap","props","objectMap","CmdbInstancesSelectPanel","ref","modelData","objectId","isFilterView","hideModelData","view","hide_columns","attrList","filter","item","includes","id","relation_list","left_id","left_object_id","right_id","right_object_id","displayedSelectedInstancesMaxNumber","previewMaxNumber","selectedInstanceList","setSelectedInstanceList","partialSelectedInstances","setPartialSelectedInstances","addInstancesModal","setAddInstancesModal","visible","allSelectedInstancesModal","setAllSelectedInstancesModal","modelMap","setModelMap","fetchInstances","instanceIdList","instances","length","query","instanceId","$in","page","page_size","fields","list","initInstances","value","isOperate","slice","onFetchedInstances","getModelMap","data","ref_object","openAddInstancesModal","closeAddInstancesModal","openAllSelectedInstancesModal","closeAllSelectedInstancesModal","handleInstancesSelected","selectedKeys","onChange","fieldIds","map","attr","showPreview","cs","style","selectedInstancesTableWrapper","withPreview","relation","relationLimit","right_max","$size","$lt","instanceQuery","wrapper","modalTitle","i18n","t","NS_LIBS_CMDB_INSTANCES","K","FILTER_FROM_CMDB","name","instance","singleSelect","addInstancesModalPageSize","showSizeChanger","pageSizeOptions","searchDisabled","advancedSearchDisabled","VIEW_ALL_SELECTED_INSTANCES","textAlign","marginBottom","addButton","addTitle","CHOOSE_INSTANCE","showDetailUrl","detailUrlTemplates","pagination","v","showAllSelectedInstancesButton","VIEW_ALL_DATA","count"],"mappings":"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","sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport classnames from \"classnames\";\n\nimport {\n CmdbModels,\n InstanceApi_postSearch,\n CmdbObjectApi_getObjectRef,\n} from \"@next-sdk/cmdb-sdk\";\nimport { InstanceListTable } from \"../instance-list-table\";\nimport { InstanceListModal } from \"../instance-list-modal/InstanceListModal\";\nimport {\n modifyModelData,\n ModifiedModelObjectRelation,\n} from \"@next-libs/cmdb-utils\";\nimport style from \"./style.module.css\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport { keyBy, isEqual, isNil } from \"lodash\";\nimport { Spin } from \"antd\";\n\nexport interface BaseCmdbInstancesSelectPanelProps {\n objectId: string;\n value?: string[];\n onChange?: (instanceList: any[]) => void;\n instanceQuery?: any;\n fields?: string[];\n singleSelect?: boolean;\n addTitle?: React.ReactNode | string;\n modalTitle?: React.ReactNode | string;\n previewMaxNumber?: number;\n addInstancesModalPageSize?: number;\n showSizeChanger?: boolean;\n pageSizeOptions?: string[];\n isOperate?: boolean; //cmdb实例列表支持删除实例\n showDetailUrl?: boolean;\n isFilterView?: boolean; //是否过滤视图属性\n onFetchedInstances?: (instanceList: any[]) => void; // objectId改变后触发\n relation?: Partial<ModifiedModelObjectRelation>;\n searchDisabled?: boolean;\n advancedSearchDisabled?: boolean;\n}\n\nexport interface CmdbInstancesSelectPanelPropsWithObjectMap\n extends BaseCmdbInstancesSelectPanelProps {\n objectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>;\n}\n\nexport interface CmdbInstancesSelectPanelPropsWithModelData\n extends BaseCmdbInstancesSelectPanelProps {\n modelData: Partial<CmdbModels.ModelCmdbObject>;\n}\n\nexport type CmdbInstancesSelectPanelProps =\n | CmdbInstancesSelectPanelPropsWithObjectMap\n | CmdbInstancesSelectPanelPropsWithModelData;\n\nexport function isCmdbInstancesSelectPanelPropsWithObjectMap(\n props: CmdbInstancesSelectPanelProps\n): props is CmdbInstancesSelectPanelPropsWithObjectMap {\n return !isNil(\n (props as CmdbInstancesSelectPanelPropsWithObjectMap).objectMap\n );\n}\n\nexport function CmdbInstancesSelectPanel(\n props: CmdbInstancesSelectPanelProps,\n ref: any\n): React.ReactElement {\n let modelData: Partial<CmdbModels.ModelCmdbObject>;\n\n if (isCmdbInstancesSelectPanelPropsWithObjectMap(props)) {\n modelData = props.objectMap[props.objectId];\n } else {\n modelData = props.modelData;\n }\n\n if (props.isFilterView) {\n //过滤掉视图不可见字段\n const hideModelData = modelData?.view?.hide_columns || [];\n modelData = {\n ...modelData,\n attrList: modelData.attrList.filter(\n (item: any) => !hideModelData.includes(item.id)\n ),\n relation_list: modelData.relation_list.filter(\n (item: any) =>\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 }\n\n const displayedSelectedInstancesMaxNumber = props.previewMaxNumber ?? 5;\n\n const [selectedInstanceList, setSelectedInstanceList] = useState([]);\n const [partialSelectedInstances, setPartialSelectedInstances] = useState([]);\n const [addInstancesModal, setAddInstancesModal] = useState({\n visible: false,\n });\n const [allSelectedInstancesModal, setAllSelectedInstancesModal] = useState({\n visible: false,\n });\n const [modelMap, setModelMap] = useState({});\n const fetchInstances = async (instanceIdList: string[]): Promise<any[]> => {\n let instances: any[] = [];\n if (instanceIdList?.length) {\n instances = (\n await InstanceApi_postSearch(props.objectId, {\n query: {\n instanceId: {\n $in: instanceIdList,\n },\n },\n page: 1,\n page_size: instanceIdList.length,\n // todo(ice): selected confirm with instances\n fields: { \"*\": true },\n })\n ).list;\n }\n\n return instances;\n };\n\n useEffect(() => {\n const initInstances = async (): Promise<void> => {\n const instances = await fetchInstances(props.value);\n setSelectedInstanceList(instances);\n setPartialSelectedInstances(\n props?.isOperate\n ? instances\n : instances.slice(0, displayedSelectedInstancesMaxNumber)\n );\n props.onFetchedInstances?.(instances);\n };\n\n initInstances();\n const getModelMap = async (): Promise<void> => {\n let modelMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>;\n\n if (isCmdbInstancesSelectPanelPropsWithObjectMap(props)) {\n modelMap = props.objectMap;\n } else {\n const { data } = await CmdbObjectApi_getObjectRef({\n ref_object: props.objectId,\n });\n modelMap = keyBy(data, \"objectId\");\n }\n setModelMap(modelMap);\n };\n getModelMap();\n }, [props.objectId]);\n\n const openAddInstancesModal = () => {\n setAddInstancesModal({ visible: true });\n };\n\n const closeAddInstancesModal = () => {\n setAddInstancesModal({ visible: false });\n };\n\n const openAllSelectedInstancesModal = () => {\n setAllSelectedInstancesModal({ visible: true });\n };\n\n const closeAllSelectedInstancesModal = () => {\n setAllSelectedInstancesModal({ visible: false });\n };\n\n const handleInstancesSelected = async (selectedKeys: string[]) => {\n closeAddInstancesModal();\n\n const instances = await fetchInstances(selectedKeys);\n setSelectedInstanceList(instances);\n setPartialSelectedInstances(\n props?.isOperate\n ? instances\n : instances.slice(0, displayedSelectedInstancesMaxNumber)\n );\n\n props.onChange?.(instances);\n };\n\n const fieldIds = modifyModelData(modelData).attrList.map(\n (attr: any) => attr.id\n );\n const showPreview =\n selectedInstanceList.length > displayedSelectedInstancesMaxNumber;\n const cs = classnames({\n [style.selectedInstancesTableWrapper]: true,\n [style.withPreview]: showPreview,\n });\n const { relation } = props;\n let relationLimit;\n if (relation?.right_max === 1) {\n relationLimit = { [relation.right_id]: { $size: { $lt: 1 } } };\n }\n const query = props.instanceQuery ?? relationLimit;\n return (\n <div className={style.wrapper} ref={ref}>\n <InstanceListModal\n objectMap={modelMap}\n objectId={props.objectId}\n visible={addInstancesModal.visible}\n title={\n props.modalTitle ??\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FILTER_FROM_CMDB}`, {\n name: modelData.name,\n })\n }\n selectedRowKeys={selectedInstanceList.map(\n (instance) => instance.instanceId\n )}\n onSelected={handleInstancesSelected}\n onCancel={closeAddInstancesModal}\n singleSelect={props.singleSelect}\n presetConfigs={{\n query,\n fieldIds: props.fields,\n }}\n pageSize={props.addInstancesModalPageSize}\n showSizeChanger={props.showSizeChanger}\n pageSizeOptions={props.pageSizeOptions}\n searchDisabled={props.searchDisabled}\n advancedSearchDisabled={props.advancedSearchDisabled}\n />\n <InstanceListModal\n objectMap={modelMap}\n objectId={props.objectId}\n visible={allSelectedInstancesModal.visible}\n title={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.VIEW_ALL_SELECTED_INSTANCES}`\n )}\n presetConfigs={{\n query: {\n instanceId: {\n $in: selectedInstanceList.map((instance) => instance.instanceId),\n },\n },\n }}\n selectDisabled={true}\n onCancel={closeAllSelectedInstancesModal}\n />\n <Spin\n style={{ textAlign: \"left\", marginBottom: \"12px\" }}\n spinning={isEqual(modelMap, {})}\n >\n <a\n className={style.addButton}\n style={{\n marginBottom: \"12px\",\n }}\n onClick={openAddInstancesModal}\n >\n {props.addTitle ??\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CHOOSE_INSTANCE}`)}\n </a>\n </Spin>\n <div className={cs}>\n <InstanceListTable\n {...(props.showDetailUrl\n ? {\n detailUrlTemplates: {\n [props.objectId]:\n \"/next-cmdb-instance-management/next/#{objectId}/instance/#{instanceId}\",\n },\n }\n : {})}\n idObjectMap={modelMap}\n modelData={modelData}\n instanceListData={{\n list: partialSelectedInstances,\n }}\n fieldIds={props.fields || fieldIds}\n selectDisabled={true}\n sortDisabled={true}\n configProps={{\n pagination: false,\n }}\n isOperate={props.isOperate}\n handleDeleteFunction={(v) => {\n setSelectedInstanceList(v);\n setPartialSelectedInstances(v);\n props.onChange?.(v);\n }}\n target={\"_blank\"}\n ></InstanceListTable>\n {!props?.isOperate && showPreview && (\n <div\n className={style.showAllSelectedInstancesButton}\n onClick={openAllSelectedInstancesModal}\n >\n <a>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.VIEW_ALL_DATA}`, {\n count: selectedInstanceList.length,\n })}\n </a>\n </div>\n )}\n </div>\n </div>\n );\n}\n"],"file":"CmdbInstancesSelectPanel.js"}
1
+ {"version":3,"sources":["../../../src/cmdb-instances-select-panel/CmdbInstancesSelectPanel.tsx"],"names":["isCmdbInstancesSelectPanelPropsWithObjectMap","props","objectMap","CmdbInstancesSelectPanel","ref","modelData","objectId","isFilterView","hideModelData","view","hide_columns","attrList","filter","item","includes","id","relation_list","left_id","left_object_id","right_id","right_object_id","displayedSelectedInstancesMaxNumber","previewMaxNumber","selectedInstanceList","setSelectedInstanceList","partialSelectedInstances","setPartialSelectedInstances","addInstancesModal","setAddInstancesModal","visible","allSelectedInstancesModal","setAllSelectedInstancesModal","modelMap","setModelMap","fetchInstances","instanceIdList","instances","length","query","instanceId","$in","page","page_size","fields","list","initInstances","value","isOperate","slice","onFetchedInstances","getModelMap","data","ref_object","openAddInstancesModal","closeAddInstancesModal","openAllSelectedInstancesModal","closeAllSelectedInstancesModal","handleInstancesSelected","selectedKeys","onChange","fieldIds","map","attr","showPreview","cs","style","selectedInstancesTableWrapper","withPreview","relation","relationLimit","right_max","$size","$lt","instanceQuery","wrapper","modalTitle","i18n","t","NS_LIBS_CMDB_INSTANCES","K","FILTER_FROM_CMDB","name","instance","singleSelect","addInstancesModalPageSize","showSizeChanger","pageSizeOptions","searchDisabled","advancedSearchDisabled","VIEW_ALL_SELECTED_INSTANCES","textAlign","marginBottom","addButton","addTitle","CHOOSE_INSTANCE","showDetailUrl","detailUrlTemplates","pagination","v","showAllSelectedInstancesButton","VIEW_ALL_DATA","count"],"mappings":"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","sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport classnames from \"classnames\";\n\nimport {\n CmdbModels,\n InstanceApi_postSearch,\n CmdbObjectApi_getObjectRef,\n} from \"@next-sdk/cmdb-sdk\";\nimport { InstanceListTable } from \"../instance-list-table\";\nimport { InstanceListModal } from \"../instance-list-modal/InstanceListModal\";\nimport {\n modifyModelData,\n ModifiedModelObjectRelation,\n} from \"@next-libs/cmdb-utils\";\nimport style from \"./style.module.css\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport { keyBy, isEqual, isNil } from \"lodash\";\nimport { Spin } from \"antd\";\n\nexport interface BaseCmdbInstancesSelectPanelProps {\n objectId: string;\n value?: string[];\n onChange?: (instanceList: any[]) => void;\n instanceQuery?: any;\n fields?: string[];\n singleSelect?: boolean;\n addTitle?: React.ReactNode | string;\n modalTitle?: React.ReactNode | string;\n previewMaxNumber?: number;\n addInstancesModalPageSize?: number;\n showSizeChanger?: boolean;\n pageSizeOptions?: string[];\n isOperate?: boolean; //cmdb实例列表支持删除实例\n showDetailUrl?: boolean;\n isFilterView?: boolean; //是否过滤视图属性\n onFetchedInstances?: (instanceList: any[]) => void; // objectId改变后触发\n relation?: Partial<ModifiedModelObjectRelation>;\n searchDisabled?: boolean;\n advancedSearchDisabled?: boolean;\n}\n\nexport interface CmdbInstancesSelectPanelPropsWithObjectMap\n extends BaseCmdbInstancesSelectPanelProps {\n objectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>;\n}\n\nexport interface CmdbInstancesSelectPanelPropsWithModelData\n extends BaseCmdbInstancesSelectPanelProps {\n modelData: Partial<CmdbModels.ModelCmdbObject>;\n}\n\nexport type CmdbInstancesSelectPanelProps =\n | CmdbInstancesSelectPanelPropsWithObjectMap\n | CmdbInstancesSelectPanelPropsWithModelData;\n\nexport function isCmdbInstancesSelectPanelPropsWithObjectMap(\n props: CmdbInstancesSelectPanelProps\n): props is CmdbInstancesSelectPanelPropsWithObjectMap {\n return !isNil(\n (props as CmdbInstancesSelectPanelPropsWithObjectMap).objectMap\n );\n}\n\nexport function CmdbInstancesSelectPanel(\n props: CmdbInstancesSelectPanelProps,\n ref: any\n): React.ReactElement {\n let modelData: Partial<CmdbModels.ModelCmdbObject>;\n\n if (isCmdbInstancesSelectPanelPropsWithObjectMap(props)) {\n modelData = props.objectMap[props.objectId];\n } else {\n modelData = props.modelData;\n }\n\n if (props.isFilterView) {\n //过滤掉视图不可见字段\n const hideModelData = modelData?.view?.hide_columns || [];\n modelData = {\n ...modelData,\n attrList: modelData.attrList.filter(\n (item: any) => !hideModelData.includes(item.id)\n ),\n relation_list: modelData.relation_list.filter(\n (item: any) =>\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 }\n\n const displayedSelectedInstancesMaxNumber = props.previewMaxNumber ?? 5;\n\n const [selectedInstanceList, setSelectedInstanceList] = useState([]);\n const [partialSelectedInstances, setPartialSelectedInstances] = useState([]);\n const [addInstancesModal, setAddInstancesModal] = useState({\n visible: false,\n });\n const [allSelectedInstancesModal, setAllSelectedInstancesModal] = useState({\n visible: false,\n });\n const [modelMap, setModelMap] = useState({});\n const fetchInstances = async (instanceIdList: string[]): Promise<any[]> => {\n let instances: any[] = [];\n if (instanceIdList?.length) {\n instances = (\n await InstanceApi_postSearch(props.objectId, {\n query: {\n instanceId: {\n $in: instanceIdList,\n },\n },\n page: 1,\n page_size: instanceIdList.length,\n // todo(ice): selected confirm with instances\n fields: { \"*\": true },\n })\n ).list;\n }\n\n return instances;\n };\n\n useEffect(() => {\n const initInstances = async (): Promise<void> => {\n const instances = await fetchInstances(props.value);\n setSelectedInstanceList(instances);\n setPartialSelectedInstances(\n props?.isOperate\n ? instances\n : instances.slice(0, displayedSelectedInstancesMaxNumber)\n );\n props.onFetchedInstances?.(instances);\n };\n\n initInstances();\n const getModelMap = async (): Promise<void> => {\n let modelMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>;\n\n if (isCmdbInstancesSelectPanelPropsWithObjectMap(props)) {\n modelMap = props.objectMap;\n } else {\n const { data } = await CmdbObjectApi_getObjectRef({\n ref_object: props.objectId,\n });\n modelMap = keyBy(data, \"objectId\");\n }\n setModelMap(modelMap);\n };\n getModelMap();\n }, [props.objectId, props.value]);\n\n const openAddInstancesModal = () => {\n setAddInstancesModal({ visible: true });\n };\n\n const closeAddInstancesModal = () => {\n setAddInstancesModal({ visible: false });\n };\n\n const openAllSelectedInstancesModal = () => {\n setAllSelectedInstancesModal({ visible: true });\n };\n\n const closeAllSelectedInstancesModal = () => {\n setAllSelectedInstancesModal({ visible: false });\n };\n\n const handleInstancesSelected = async (selectedKeys: string[]) => {\n closeAddInstancesModal();\n\n const instances = await fetchInstances(selectedKeys);\n setSelectedInstanceList(instances);\n setPartialSelectedInstances(\n props?.isOperate\n ? instances\n : instances.slice(0, displayedSelectedInstancesMaxNumber)\n );\n\n props.onChange?.(instances);\n };\n\n const fieldIds = modifyModelData(modelData).attrList.map(\n (attr: any) => attr.id\n );\n const showPreview =\n selectedInstanceList.length > displayedSelectedInstancesMaxNumber;\n const cs = classnames({\n [style.selectedInstancesTableWrapper]: true,\n [style.withPreview]: showPreview,\n });\n const { relation } = props;\n let relationLimit;\n if (relation?.right_max === 1) {\n relationLimit = { [relation.right_id]: { $size: { $lt: 1 } } };\n }\n const query = props.instanceQuery ?? relationLimit;\n return (\n <div className={style.wrapper} ref={ref}>\n <InstanceListModal\n objectMap={modelMap}\n objectId={props.objectId}\n visible={addInstancesModal.visible}\n title={\n props.modalTitle ??\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FILTER_FROM_CMDB}`, {\n name: modelData.name,\n })\n }\n selectedRowKeys={selectedInstanceList.map(\n (instance) => instance.instanceId\n )}\n onSelected={handleInstancesSelected}\n onCancel={closeAddInstancesModal}\n singleSelect={props.singleSelect}\n presetConfigs={{\n query,\n fieldIds: props.fields,\n }}\n pageSize={props.addInstancesModalPageSize}\n showSizeChanger={props.showSizeChanger}\n pageSizeOptions={props.pageSizeOptions}\n searchDisabled={props.searchDisabled}\n advancedSearchDisabled={props.advancedSearchDisabled}\n />\n <InstanceListModal\n objectMap={modelMap}\n objectId={props.objectId}\n visible={allSelectedInstancesModal.visible}\n title={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.VIEW_ALL_SELECTED_INSTANCES}`\n )}\n presetConfigs={{\n query: {\n instanceId: {\n $in: selectedInstanceList.map((instance) => instance.instanceId),\n },\n },\n }}\n selectDisabled={true}\n onCancel={closeAllSelectedInstancesModal}\n />\n <Spin\n style={{ textAlign: \"left\", marginBottom: \"12px\" }}\n spinning={isEqual(modelMap, {})}\n >\n <a\n className={style.addButton}\n style={{\n marginBottom: \"12px\",\n }}\n onClick={openAddInstancesModal}\n >\n {props.addTitle ??\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CHOOSE_INSTANCE}`)}\n </a>\n </Spin>\n <div className={cs}>\n <InstanceListTable\n {...(props.showDetailUrl\n ? {\n detailUrlTemplates: {\n [props.objectId]:\n \"/next-cmdb-instance-management/next/#{objectId}/instance/#{instanceId}\",\n },\n }\n : {})}\n idObjectMap={modelMap}\n modelData={modelData}\n instanceListData={{\n list: partialSelectedInstances,\n }}\n fieldIds={props.fields || fieldIds}\n selectDisabled={true}\n sortDisabled={true}\n configProps={{\n pagination: false,\n }}\n isOperate={props.isOperate}\n handleDeleteFunction={(v) => {\n setSelectedInstanceList(v);\n setPartialSelectedInstances(v);\n props.onChange?.(v);\n }}\n target={\"_blank\"}\n ></InstanceListTable>\n {!props?.isOperate && showPreview && (\n <div\n className={style.showAllSelectedInstancesButton}\n onClick={openAllSelectedInstancesModal}\n >\n <a>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.VIEW_ALL_DATA}`, {\n count: selectedInstanceList.length,\n })}\n </a>\n </div>\n )}\n </div>\n </div>\n );\n}\n"],"file":"CmdbInstancesSelectPanel.js"}
@@ -118,7 +118,7 @@ export function CmdbInstancesSelectPanel(props, ref) {
118
118
  }();
119
119
 
120
120
  getModelMap();
121
- }, [props.objectId]);
121
+ }, [props.objectId, props.value]);
122
122
 
123
123
  var openAddInstancesModal = () => {
124
124
  setAddInstancesModal({
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/cmdb-instances-select-panel/CmdbInstancesSelectPanel.tsx"],"names":["React","useState","useEffect","classnames","InstanceApi_postSearch","CmdbObjectApi_getObjectRef","InstanceListTable","InstanceListModal","modifyModelData","style","i18n","K","NS_LIBS_CMDB_INSTANCES","keyBy","isEqual","isNil","Spin","isCmdbInstancesSelectPanelPropsWithObjectMap","props","objectMap","CmdbInstancesSelectPanel","ref","modelData","objectId","isFilterView","hideModelData","view","hide_columns","attrList","filter","item","includes","id","relation_list","left_id","left_object_id","right_id","right_object_id","displayedSelectedInstancesMaxNumber","previewMaxNumber","selectedInstanceList","setSelectedInstanceList","partialSelectedInstances","setPartialSelectedInstances","addInstancesModal","setAddInstancesModal","visible","allSelectedInstancesModal","setAllSelectedInstancesModal","modelMap","setModelMap","fetchInstances","instanceIdList","instances","length","query","instanceId","$in","page","page_size","fields","list","initInstances","value","isOperate","slice","onFetchedInstances","getModelMap","data","ref_object","openAddInstancesModal","closeAddInstancesModal","openAllSelectedInstancesModal","closeAllSelectedInstancesModal","handleInstancesSelected","selectedKeys","onChange","fieldIds","map","attr","showPreview","cs","selectedInstancesTableWrapper","withPreview","relation","relationLimit","right_max","$size","$lt","instanceQuery","wrapper","modalTitle","t","FILTER_FROM_CMDB","name","instance","singleSelect","addInstancesModalPageSize","showSizeChanger","pageSizeOptions","searchDisabled","advancedSearchDisabled","VIEW_ALL_SELECTED_INSTANCES","textAlign","marginBottom","addButton","addTitle","CHOOSE_INSTANCE","showDetailUrl","detailUrlTemplates","pagination","v","showAllSelectedInstancesButton","VIEW_ALL_DATA","count"],"mappings":"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","sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport classnames from \"classnames\";\n\nimport {\n CmdbModels,\n InstanceApi_postSearch,\n CmdbObjectApi_getObjectRef,\n} from \"@next-sdk/cmdb-sdk\";\nimport { InstanceListTable } from \"../instance-list-table\";\nimport { InstanceListModal } from \"../instance-list-modal/InstanceListModal\";\nimport {\n modifyModelData,\n ModifiedModelObjectRelation,\n} from \"@next-libs/cmdb-utils\";\nimport style from \"./style.module.css\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport { keyBy, isEqual, isNil } from \"lodash\";\nimport { Spin } from \"antd\";\n\nexport interface BaseCmdbInstancesSelectPanelProps {\n objectId: string;\n value?: string[];\n onChange?: (instanceList: any[]) => void;\n instanceQuery?: any;\n fields?: string[];\n singleSelect?: boolean;\n addTitle?: React.ReactNode | string;\n modalTitle?: React.ReactNode | string;\n previewMaxNumber?: number;\n addInstancesModalPageSize?: number;\n showSizeChanger?: boolean;\n pageSizeOptions?: string[];\n isOperate?: boolean; //cmdb实例列表支持删除实例\n showDetailUrl?: boolean;\n isFilterView?: boolean; //是否过滤视图属性\n onFetchedInstances?: (instanceList: any[]) => void; // objectId改变后触发\n relation?: Partial<ModifiedModelObjectRelation>;\n searchDisabled?: boolean;\n advancedSearchDisabled?: boolean;\n}\n\nexport interface CmdbInstancesSelectPanelPropsWithObjectMap\n extends BaseCmdbInstancesSelectPanelProps {\n objectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>;\n}\n\nexport interface CmdbInstancesSelectPanelPropsWithModelData\n extends BaseCmdbInstancesSelectPanelProps {\n modelData: Partial<CmdbModels.ModelCmdbObject>;\n}\n\nexport type CmdbInstancesSelectPanelProps =\n | CmdbInstancesSelectPanelPropsWithObjectMap\n | CmdbInstancesSelectPanelPropsWithModelData;\n\nexport function isCmdbInstancesSelectPanelPropsWithObjectMap(\n props: CmdbInstancesSelectPanelProps\n): props is CmdbInstancesSelectPanelPropsWithObjectMap {\n return !isNil(\n (props as CmdbInstancesSelectPanelPropsWithObjectMap).objectMap\n );\n}\n\nexport function CmdbInstancesSelectPanel(\n props: CmdbInstancesSelectPanelProps,\n ref: any\n): React.ReactElement {\n let modelData: Partial<CmdbModels.ModelCmdbObject>;\n\n if (isCmdbInstancesSelectPanelPropsWithObjectMap(props)) {\n modelData = props.objectMap[props.objectId];\n } else {\n modelData = props.modelData;\n }\n\n if (props.isFilterView) {\n //过滤掉视图不可见字段\n const hideModelData = modelData?.view?.hide_columns || [];\n modelData = {\n ...modelData,\n attrList: modelData.attrList.filter(\n (item: any) => !hideModelData.includes(item.id)\n ),\n relation_list: modelData.relation_list.filter(\n (item: any) =>\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 }\n\n const displayedSelectedInstancesMaxNumber = props.previewMaxNumber ?? 5;\n\n const [selectedInstanceList, setSelectedInstanceList] = useState([]);\n const [partialSelectedInstances, setPartialSelectedInstances] = useState([]);\n const [addInstancesModal, setAddInstancesModal] = useState({\n visible: false,\n });\n const [allSelectedInstancesModal, setAllSelectedInstancesModal] = useState({\n visible: false,\n });\n const [modelMap, setModelMap] = useState({});\n const fetchInstances = async (instanceIdList: string[]): Promise<any[]> => {\n let instances: any[] = [];\n if (instanceIdList?.length) {\n instances = (\n await InstanceApi_postSearch(props.objectId, {\n query: {\n instanceId: {\n $in: instanceIdList,\n },\n },\n page: 1,\n page_size: instanceIdList.length,\n // todo(ice): selected confirm with instances\n fields: { \"*\": true },\n })\n ).list;\n }\n\n return instances;\n };\n\n useEffect(() => {\n const initInstances = async (): Promise<void> => {\n const instances = await fetchInstances(props.value);\n setSelectedInstanceList(instances);\n setPartialSelectedInstances(\n props?.isOperate\n ? instances\n : instances.slice(0, displayedSelectedInstancesMaxNumber)\n );\n props.onFetchedInstances?.(instances);\n };\n\n initInstances();\n const getModelMap = async (): Promise<void> => {\n let modelMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>;\n\n if (isCmdbInstancesSelectPanelPropsWithObjectMap(props)) {\n modelMap = props.objectMap;\n } else {\n const { data } = await CmdbObjectApi_getObjectRef({\n ref_object: props.objectId,\n });\n modelMap = keyBy(data, \"objectId\");\n }\n setModelMap(modelMap);\n };\n getModelMap();\n }, [props.objectId]);\n\n const openAddInstancesModal = () => {\n setAddInstancesModal({ visible: true });\n };\n\n const closeAddInstancesModal = () => {\n setAddInstancesModal({ visible: false });\n };\n\n const openAllSelectedInstancesModal = () => {\n setAllSelectedInstancesModal({ visible: true });\n };\n\n const closeAllSelectedInstancesModal = () => {\n setAllSelectedInstancesModal({ visible: false });\n };\n\n const handleInstancesSelected = async (selectedKeys: string[]) => {\n closeAddInstancesModal();\n\n const instances = await fetchInstances(selectedKeys);\n setSelectedInstanceList(instances);\n setPartialSelectedInstances(\n props?.isOperate\n ? instances\n : instances.slice(0, displayedSelectedInstancesMaxNumber)\n );\n\n props.onChange?.(instances);\n };\n\n const fieldIds = modifyModelData(modelData).attrList.map(\n (attr: any) => attr.id\n );\n const showPreview =\n selectedInstanceList.length > displayedSelectedInstancesMaxNumber;\n const cs = classnames({\n [style.selectedInstancesTableWrapper]: true,\n [style.withPreview]: showPreview,\n });\n const { relation } = props;\n let relationLimit;\n if (relation?.right_max === 1) {\n relationLimit = { [relation.right_id]: { $size: { $lt: 1 } } };\n }\n const query = props.instanceQuery ?? relationLimit;\n return (\n <div className={style.wrapper} ref={ref}>\n <InstanceListModal\n objectMap={modelMap}\n objectId={props.objectId}\n visible={addInstancesModal.visible}\n title={\n props.modalTitle ??\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FILTER_FROM_CMDB}`, {\n name: modelData.name,\n })\n }\n selectedRowKeys={selectedInstanceList.map(\n (instance) => instance.instanceId\n )}\n onSelected={handleInstancesSelected}\n onCancel={closeAddInstancesModal}\n singleSelect={props.singleSelect}\n presetConfigs={{\n query,\n fieldIds: props.fields,\n }}\n pageSize={props.addInstancesModalPageSize}\n showSizeChanger={props.showSizeChanger}\n pageSizeOptions={props.pageSizeOptions}\n searchDisabled={props.searchDisabled}\n advancedSearchDisabled={props.advancedSearchDisabled}\n />\n <InstanceListModal\n objectMap={modelMap}\n objectId={props.objectId}\n visible={allSelectedInstancesModal.visible}\n title={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.VIEW_ALL_SELECTED_INSTANCES}`\n )}\n presetConfigs={{\n query: {\n instanceId: {\n $in: selectedInstanceList.map((instance) => instance.instanceId),\n },\n },\n }}\n selectDisabled={true}\n onCancel={closeAllSelectedInstancesModal}\n />\n <Spin\n style={{ textAlign: \"left\", marginBottom: \"12px\" }}\n spinning={isEqual(modelMap, {})}\n >\n <a\n className={style.addButton}\n style={{\n marginBottom: \"12px\",\n }}\n onClick={openAddInstancesModal}\n >\n {props.addTitle ??\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CHOOSE_INSTANCE}`)}\n </a>\n </Spin>\n <div className={cs}>\n <InstanceListTable\n {...(props.showDetailUrl\n ? {\n detailUrlTemplates: {\n [props.objectId]:\n \"/next-cmdb-instance-management/next/#{objectId}/instance/#{instanceId}\",\n },\n }\n : {})}\n idObjectMap={modelMap}\n modelData={modelData}\n instanceListData={{\n list: partialSelectedInstances,\n }}\n fieldIds={props.fields || fieldIds}\n selectDisabled={true}\n sortDisabled={true}\n configProps={{\n pagination: false,\n }}\n isOperate={props.isOperate}\n handleDeleteFunction={(v) => {\n setSelectedInstanceList(v);\n setPartialSelectedInstances(v);\n props.onChange?.(v);\n }}\n target={\"_blank\"}\n ></InstanceListTable>\n {!props?.isOperate && showPreview && (\n <div\n className={style.showAllSelectedInstancesButton}\n onClick={openAllSelectedInstancesModal}\n >\n <a>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.VIEW_ALL_DATA}`, {\n count: selectedInstanceList.length,\n })}\n </a>\n </div>\n )}\n </div>\n </div>\n );\n}\n"],"file":"CmdbInstancesSelectPanel.js"}
1
+ {"version":3,"sources":["../../../src/cmdb-instances-select-panel/CmdbInstancesSelectPanel.tsx"],"names":["React","useState","useEffect","classnames","InstanceApi_postSearch","CmdbObjectApi_getObjectRef","InstanceListTable","InstanceListModal","modifyModelData","style","i18n","K","NS_LIBS_CMDB_INSTANCES","keyBy","isEqual","isNil","Spin","isCmdbInstancesSelectPanelPropsWithObjectMap","props","objectMap","CmdbInstancesSelectPanel","ref","modelData","objectId","isFilterView","hideModelData","view","hide_columns","attrList","filter","item","includes","id","relation_list","left_id","left_object_id","right_id","right_object_id","displayedSelectedInstancesMaxNumber","previewMaxNumber","selectedInstanceList","setSelectedInstanceList","partialSelectedInstances","setPartialSelectedInstances","addInstancesModal","setAddInstancesModal","visible","allSelectedInstancesModal","setAllSelectedInstancesModal","modelMap","setModelMap","fetchInstances","instanceIdList","instances","length","query","instanceId","$in","page","page_size","fields","list","initInstances","value","isOperate","slice","onFetchedInstances","getModelMap","data","ref_object","openAddInstancesModal","closeAddInstancesModal","openAllSelectedInstancesModal","closeAllSelectedInstancesModal","handleInstancesSelected","selectedKeys","onChange","fieldIds","map","attr","showPreview","cs","selectedInstancesTableWrapper","withPreview","relation","relationLimit","right_max","$size","$lt","instanceQuery","wrapper","modalTitle","t","FILTER_FROM_CMDB","name","instance","singleSelect","addInstancesModalPageSize","showSizeChanger","pageSizeOptions","searchDisabled","advancedSearchDisabled","VIEW_ALL_SELECTED_INSTANCES","textAlign","marginBottom","addButton","addTitle","CHOOSE_INSTANCE","showDetailUrl","detailUrlTemplates","pagination","v","showAllSelectedInstancesButton","VIEW_ALL_DATA","count"],"mappings":"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","sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport classnames from \"classnames\";\n\nimport {\n CmdbModels,\n InstanceApi_postSearch,\n CmdbObjectApi_getObjectRef,\n} from \"@next-sdk/cmdb-sdk\";\nimport { InstanceListTable } from \"../instance-list-table\";\nimport { InstanceListModal } from \"../instance-list-modal/InstanceListModal\";\nimport {\n modifyModelData,\n ModifiedModelObjectRelation,\n} from \"@next-libs/cmdb-utils\";\nimport style from \"./style.module.css\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport { keyBy, isEqual, isNil } from \"lodash\";\nimport { Spin } from \"antd\";\n\nexport interface BaseCmdbInstancesSelectPanelProps {\n objectId: string;\n value?: string[];\n onChange?: (instanceList: any[]) => void;\n instanceQuery?: any;\n fields?: string[];\n singleSelect?: boolean;\n addTitle?: React.ReactNode | string;\n modalTitle?: React.ReactNode | string;\n previewMaxNumber?: number;\n addInstancesModalPageSize?: number;\n showSizeChanger?: boolean;\n pageSizeOptions?: string[];\n isOperate?: boolean; //cmdb实例列表支持删除实例\n showDetailUrl?: boolean;\n isFilterView?: boolean; //是否过滤视图属性\n onFetchedInstances?: (instanceList: any[]) => void; // objectId改变后触发\n relation?: Partial<ModifiedModelObjectRelation>;\n searchDisabled?: boolean;\n advancedSearchDisabled?: boolean;\n}\n\nexport interface CmdbInstancesSelectPanelPropsWithObjectMap\n extends BaseCmdbInstancesSelectPanelProps {\n objectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>;\n}\n\nexport interface CmdbInstancesSelectPanelPropsWithModelData\n extends BaseCmdbInstancesSelectPanelProps {\n modelData: Partial<CmdbModels.ModelCmdbObject>;\n}\n\nexport type CmdbInstancesSelectPanelProps =\n | CmdbInstancesSelectPanelPropsWithObjectMap\n | CmdbInstancesSelectPanelPropsWithModelData;\n\nexport function isCmdbInstancesSelectPanelPropsWithObjectMap(\n props: CmdbInstancesSelectPanelProps\n): props is CmdbInstancesSelectPanelPropsWithObjectMap {\n return !isNil(\n (props as CmdbInstancesSelectPanelPropsWithObjectMap).objectMap\n );\n}\n\nexport function CmdbInstancesSelectPanel(\n props: CmdbInstancesSelectPanelProps,\n ref: any\n): React.ReactElement {\n let modelData: Partial<CmdbModels.ModelCmdbObject>;\n\n if (isCmdbInstancesSelectPanelPropsWithObjectMap(props)) {\n modelData = props.objectMap[props.objectId];\n } else {\n modelData = props.modelData;\n }\n\n if (props.isFilterView) {\n //过滤掉视图不可见字段\n const hideModelData = modelData?.view?.hide_columns || [];\n modelData = {\n ...modelData,\n attrList: modelData.attrList.filter(\n (item: any) => !hideModelData.includes(item.id)\n ),\n relation_list: modelData.relation_list.filter(\n (item: any) =>\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 }\n\n const displayedSelectedInstancesMaxNumber = props.previewMaxNumber ?? 5;\n\n const [selectedInstanceList, setSelectedInstanceList] = useState([]);\n const [partialSelectedInstances, setPartialSelectedInstances] = useState([]);\n const [addInstancesModal, setAddInstancesModal] = useState({\n visible: false,\n });\n const [allSelectedInstancesModal, setAllSelectedInstancesModal] = useState({\n visible: false,\n });\n const [modelMap, setModelMap] = useState({});\n const fetchInstances = async (instanceIdList: string[]): Promise<any[]> => {\n let instances: any[] = [];\n if (instanceIdList?.length) {\n instances = (\n await InstanceApi_postSearch(props.objectId, {\n query: {\n instanceId: {\n $in: instanceIdList,\n },\n },\n page: 1,\n page_size: instanceIdList.length,\n // todo(ice): selected confirm with instances\n fields: { \"*\": true },\n })\n ).list;\n }\n\n return instances;\n };\n\n useEffect(() => {\n const initInstances = async (): Promise<void> => {\n const instances = await fetchInstances(props.value);\n setSelectedInstanceList(instances);\n setPartialSelectedInstances(\n props?.isOperate\n ? instances\n : instances.slice(0, displayedSelectedInstancesMaxNumber)\n );\n props.onFetchedInstances?.(instances);\n };\n\n initInstances();\n const getModelMap = async (): Promise<void> => {\n let modelMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>;\n\n if (isCmdbInstancesSelectPanelPropsWithObjectMap(props)) {\n modelMap = props.objectMap;\n } else {\n const { data } = await CmdbObjectApi_getObjectRef({\n ref_object: props.objectId,\n });\n modelMap = keyBy(data, \"objectId\");\n }\n setModelMap(modelMap);\n };\n getModelMap();\n }, [props.objectId, props.value]);\n\n const openAddInstancesModal = () => {\n setAddInstancesModal({ visible: true });\n };\n\n const closeAddInstancesModal = () => {\n setAddInstancesModal({ visible: false });\n };\n\n const openAllSelectedInstancesModal = () => {\n setAllSelectedInstancesModal({ visible: true });\n };\n\n const closeAllSelectedInstancesModal = () => {\n setAllSelectedInstancesModal({ visible: false });\n };\n\n const handleInstancesSelected = async (selectedKeys: string[]) => {\n closeAddInstancesModal();\n\n const instances = await fetchInstances(selectedKeys);\n setSelectedInstanceList(instances);\n setPartialSelectedInstances(\n props?.isOperate\n ? instances\n : instances.slice(0, displayedSelectedInstancesMaxNumber)\n );\n\n props.onChange?.(instances);\n };\n\n const fieldIds = modifyModelData(modelData).attrList.map(\n (attr: any) => attr.id\n );\n const showPreview =\n selectedInstanceList.length > displayedSelectedInstancesMaxNumber;\n const cs = classnames({\n [style.selectedInstancesTableWrapper]: true,\n [style.withPreview]: showPreview,\n });\n const { relation } = props;\n let relationLimit;\n if (relation?.right_max === 1) {\n relationLimit = { [relation.right_id]: { $size: { $lt: 1 } } };\n }\n const query = props.instanceQuery ?? relationLimit;\n return (\n <div className={style.wrapper} ref={ref}>\n <InstanceListModal\n objectMap={modelMap}\n objectId={props.objectId}\n visible={addInstancesModal.visible}\n title={\n props.modalTitle ??\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FILTER_FROM_CMDB}`, {\n name: modelData.name,\n })\n }\n selectedRowKeys={selectedInstanceList.map(\n (instance) => instance.instanceId\n )}\n onSelected={handleInstancesSelected}\n onCancel={closeAddInstancesModal}\n singleSelect={props.singleSelect}\n presetConfigs={{\n query,\n fieldIds: props.fields,\n }}\n pageSize={props.addInstancesModalPageSize}\n showSizeChanger={props.showSizeChanger}\n pageSizeOptions={props.pageSizeOptions}\n searchDisabled={props.searchDisabled}\n advancedSearchDisabled={props.advancedSearchDisabled}\n />\n <InstanceListModal\n objectMap={modelMap}\n objectId={props.objectId}\n visible={allSelectedInstancesModal.visible}\n title={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.VIEW_ALL_SELECTED_INSTANCES}`\n )}\n presetConfigs={{\n query: {\n instanceId: {\n $in: selectedInstanceList.map((instance) => instance.instanceId),\n },\n },\n }}\n selectDisabled={true}\n onCancel={closeAllSelectedInstancesModal}\n />\n <Spin\n style={{ textAlign: \"left\", marginBottom: \"12px\" }}\n spinning={isEqual(modelMap, {})}\n >\n <a\n className={style.addButton}\n style={{\n marginBottom: \"12px\",\n }}\n onClick={openAddInstancesModal}\n >\n {props.addTitle ??\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CHOOSE_INSTANCE}`)}\n </a>\n </Spin>\n <div className={cs}>\n <InstanceListTable\n {...(props.showDetailUrl\n ? {\n detailUrlTemplates: {\n [props.objectId]:\n \"/next-cmdb-instance-management/next/#{objectId}/instance/#{instanceId}\",\n },\n }\n : {})}\n idObjectMap={modelMap}\n modelData={modelData}\n instanceListData={{\n list: partialSelectedInstances,\n }}\n fieldIds={props.fields || fieldIds}\n selectDisabled={true}\n sortDisabled={true}\n configProps={{\n pagination: false,\n }}\n isOperate={props.isOperate}\n handleDeleteFunction={(v) => {\n setSelectedInstanceList(v);\n setPartialSelectedInstances(v);\n props.onChange?.(v);\n }}\n target={\"_blank\"}\n ></InstanceListTable>\n {!props?.isOperate && showPreview && (\n <div\n className={style.showAllSelectedInstancesButton}\n onClick={openAllSelectedInstancesModal}\n >\n <a>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.VIEW_ALL_DATA}`, {\n count: selectedInstanceList.length,\n })}\n </a>\n </div>\n )}\n </div>\n </div>\n );\n}\n"],"file":"CmdbInstancesSelectPanel.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@next-libs/cmdb-instances",
3
- "version": "6.21.19",
3
+ "version": "6.21.20",
4
4
  "description": "> TODO: description",
5
5
  "homepage": "https://github.com/easyops-cn/next-libs/tree/master/libs/cmdb-instances",
6
6
  "license": "GPL-3.0",
@@ -50,5 +50,5 @@
50
50
  "immutability-helper": "^3.1.1",
51
51
  "marked": "^2.1.3"
52
52
  },
53
- "gitHead": "c3b9546177ce1110ad6f49450344178deb091052"
53
+ "gitHead": "a455d8836fe291d2ccd7bec4f2d2e7c80b233dd2"
54
54
  }