@next-libs/cmdb-instances 7.6.8 → 7.6.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/dist/cjs/cmdb-instances-select-panel/CmdbInstancesSelectPanel.js +7 -2
- package/dist/cjs/cmdb-instances-select-panel/CmdbInstancesSelectPanel.js.map +1 -1
- package/dist/cjs/instance-list/FilterInstanceSource.js +16 -8
- package/dist/cjs/instance-list/FilterInstanceSource.js.map +1 -1
- package/dist/esm/cmdb-instances-select-panel/CmdbInstancesSelectPanel.js +6 -2
- package/dist/esm/cmdb-instances-select-panel/CmdbInstancesSelectPanel.js.map +1 -1
- package/dist/esm/instance-list/FilterInstanceSource.js +16 -8
- package/dist/esm/instance-list/FilterInstanceSource.js.map +1 -1
- package/dist/esm/instance-list/FilterInstanceSource.module.css +4 -0
- package/package.json +2 -2
|
@@ -54,6 +54,7 @@ function CmdbInstancesSelectPanel(props, ref) {
|
|
|
54
54
|
const fetchInstances = async instanceIdList => {
|
|
55
55
|
let instances = [];
|
|
56
56
|
if (instanceIdList !== null && instanceIdList !== void 0 && instanceIdList.length) {
|
|
57
|
+
var _props$fields;
|
|
57
58
|
instances = (await (0, _cmdbSdk.InstanceApi_postSearch)(props.objectId, {
|
|
58
59
|
query: {
|
|
59
60
|
instanceId: {
|
|
@@ -63,7 +64,10 @@ function CmdbInstancesSelectPanel(props, ref) {
|
|
|
63
64
|
page: 1,
|
|
64
65
|
page_size: instanceIdList.length,
|
|
65
66
|
// todo(ice): selected confirm with instances
|
|
66
|
-
fields: {
|
|
67
|
+
fields: (_props$fields = props.fields) !== null && _props$fields !== void 0 && _props$fields.length ? props.fields.reduce((prev, next) => ({
|
|
68
|
+
...prev,
|
|
69
|
+
[next]: true
|
|
70
|
+
}), {}) : {
|
|
67
71
|
"*": true
|
|
68
72
|
}
|
|
69
73
|
})).list;
|
|
@@ -188,7 +192,8 @@ function CmdbInstancesSelectPanel(props, ref) {
|
|
|
188
192
|
instanceId: {
|
|
189
193
|
$in: selectedInstanceList.map(instance => instance.instanceId)
|
|
190
194
|
}
|
|
191
|
-
}
|
|
195
|
+
},
|
|
196
|
+
fieldIds: props.fields
|
|
192
197
|
},
|
|
193
198
|
selectDisabled: !props.ipCopy,
|
|
194
199
|
ipCopy: props.ipCopy,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CmdbInstancesSelectPanel.js","names":["isCmdbInstancesSelectPanelPropsWithObjectMap","props","isNil","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","useState","partialSelectedInstances","setPartialSelectedInstances","addInstancesModal","setAddInstancesModal","visible","allSelectedInstancesModal","setAllSelectedInstancesModal","modelMap","setModelMap","fetchInstances","instanceIdList","instances","length","InstanceApi_postSearch","query","instanceId","$in","page","page_size","fields","list","toLoadInstanceIds","value","map","i","isObject","useEffect","getModelMap","data","CmdbObjectApi_getObjectRef","ref_object","keyBy","initInstances","isOperate","slice","onFetchedInstances","isEmpty","sort","join","openAddInstancesModal","closeAddInstancesModal","openAllSelectedInstancesModal","closeAllSelectedInstancesModal","handleInstancesSelected","selectedKeys","onChange","fieldIds","modifyModelData","attr","showPreview","cs","classnames","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","searchDisabled","advancedSearchDisabled","ipCopy","showCloseBtn","showSizeChanger","pageSizeOptions","aq","VIEW_ALL_SELECTED_INSTANCES","textAlign","marginBottom","isEqual","addButton","addTitle","CHOOSE_INSTANCE","showDetailUrl","detailUrlTemplates","showPagination","pagination","v","showAllSelectedInstancesButton","VIEW_ALL_DATA","count"],"sources":["../../../src/cmdb-instances-select-panel/CmdbInstancesSelectPanel.tsx"],"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 Query,\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, isObject, isEmpty } from \"lodash\";\nimport { Spin } from \"antd\";\n\nexport interface BaseCmdbInstancesSelectPanelProps {\n objectId: string;\n value?: any[];\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 showPagination?: boolean;\n aq?: Query[];\n}\n\nexport interface CmdbInstancesSelectPanelPropsWithObjectMap\n extends BaseCmdbInstancesSelectPanelProps {\n objectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>;\n ipCopy?: boolean;\n showSizeChanger?: boolean;\n showCloseBtn?: boolean;\n pageSizeOptions?: string[];\n}\n\nexport interface CmdbInstancesSelectPanelPropsWithModelData\n extends BaseCmdbInstancesSelectPanelProps {\n modelData: Partial<CmdbModels.ModelCmdbObject>;\n ipCopy?: boolean;\n showSizeChanger?: boolean;\n showCloseBtn?: boolean;\n pageSizeOptions?: string[];\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 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 [instanceTableData, setInstanceTableData] = useState({list: []})\n const [addInstancesModal, setAddInstancesModal] = useState({\n visible: false,\n });\n const [allSelectedInstancesModal, setAllSelectedInstancesModal] = useState({\n visible: false,\n });\n const [modelMap, setModelMap] = useState({});\n\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 const toLoadInstanceIds =\n props.value?.map((i) => (isObject(i) ? (i as any).instanceId : i)) || [];\n\n useEffect(() => {\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 useEffect(() => {\n let instances = [];\n\n const initInstances = async (): Promise<void> => {\n instances = await fetchInstances(toLoadInstanceIds);\n setSelectedInstanceList(instances);\n setPartialSelectedInstances(\n props?.isOperate\n ? instances\n : instances.slice(0, displayedSelectedInstancesMaxNumber)\n );\n props.onFetchedInstances?.(instances);\n };\n if (!isEmpty(toLoadInstanceIds)) {\n initInstances();\n } else {\n setSelectedInstanceList([]);\n setPartialSelectedInstances([]);\n }\n }, [toLoadInstanceIds.sort().join()]);\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 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 searchDisabled={props.searchDisabled}\n advancedSearchDisabled={props.advancedSearchDisabled}\n ipCopy={props.ipCopy}\n showCloseBtn={props.showCloseBtn}\n showSizeChanger={props.showSizeChanger}\n pageSizeOptions={props.pageSizeOptions}\n aq={props.aq}\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={!props.ipCopy}\n ipCopy={props.ipCopy}\n showCloseBtn={props.ipCopy ? true : props.showCloseBtn}\n showSizeChanger={props.showSizeChanger}\n pageSizeOptions={props.pageSizeOptions}\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={{ list: partialSelectedInstances }}\n fieldIds={props.fields || fieldIds}\n selectDisabled={true}\n sortDisabled={true}\n configProps={\n props.showPagination && partialSelectedInstances.length > 10\n ? { pagination: { showSizeChanger: true } }\n : { pagination: false }\n }\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"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CmdbInstancesSelectPanel.js","names":["isCmdbInstancesSelectPanelPropsWithObjectMap","props","isNil","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","useState","partialSelectedInstances","setPartialSelectedInstances","addInstancesModal","setAddInstancesModal","visible","allSelectedInstancesModal","setAllSelectedInstancesModal","modelMap","setModelMap","fetchInstances","instanceIdList","instances","length","InstanceApi_postSearch","query","instanceId","$in","page","page_size","fields","reduce","prev","next","list","toLoadInstanceIds","value","map","i","isObject","useEffect","getModelMap","data","CmdbObjectApi_getObjectRef","ref_object","keyBy","initInstances","isOperate","slice","onFetchedInstances","isEmpty","sort","join","openAddInstancesModal","closeAddInstancesModal","openAllSelectedInstancesModal","closeAllSelectedInstancesModal","handleInstancesSelected","selectedKeys","onChange","fieldIds","modifyModelData","attr","showPreview","cs","classnames","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","searchDisabled","advancedSearchDisabled","ipCopy","showCloseBtn","showSizeChanger","pageSizeOptions","aq","VIEW_ALL_SELECTED_INSTANCES","textAlign","marginBottom","isEqual","addButton","addTitle","CHOOSE_INSTANCE","showDetailUrl","detailUrlTemplates","showPagination","pagination","v","showAllSelectedInstancesButton","VIEW_ALL_DATA","count"],"sources":["../../../src/cmdb-instances-select-panel/CmdbInstancesSelectPanel.tsx"],"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 Query,\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, isObject, isEmpty } from \"lodash\";\nimport { Spin } from \"antd\";\n\nexport interface BaseCmdbInstancesSelectPanelProps {\n objectId: string;\n value?: any[];\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 showPagination?: boolean;\n aq?: Query[];\n}\n\nexport interface CmdbInstancesSelectPanelPropsWithObjectMap\n extends BaseCmdbInstancesSelectPanelProps {\n objectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>;\n ipCopy?: boolean;\n showSizeChanger?: boolean;\n showCloseBtn?: boolean;\n pageSizeOptions?: string[];\n}\n\nexport interface CmdbInstancesSelectPanelPropsWithModelData\n extends BaseCmdbInstancesSelectPanelProps {\n modelData: Partial<CmdbModels.ModelCmdbObject>;\n ipCopy?: boolean;\n showSizeChanger?: boolean;\n showCloseBtn?: boolean;\n pageSizeOptions?: string[];\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 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 [instanceTableData, setInstanceTableData] = useState({list: []})\n const [addInstancesModal, setAddInstancesModal] = useState({\n visible: false,\n });\n const [allSelectedInstancesModal, setAllSelectedInstancesModal] = useState({\n visible: false,\n });\n const [modelMap, setModelMap] = useState({});\n\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: props.fields?.length\n ? props.fields.reduce(\n (prev, next) => ({ ...prev, [next]: true }),\n {}\n )\n : { \"*\": true },\n })\n ).list;\n }\n\n return instances;\n };\n const toLoadInstanceIds =\n props.value?.map((i) => (isObject(i) ? (i as any).instanceId : i)) || [];\n\n useEffect(() => {\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 useEffect(() => {\n let instances = [];\n\n const initInstances = async (): Promise<void> => {\n instances = await fetchInstances(toLoadInstanceIds);\n setSelectedInstanceList(instances);\n setPartialSelectedInstances(\n props?.isOperate\n ? instances\n : instances.slice(0, displayedSelectedInstancesMaxNumber)\n );\n props.onFetchedInstances?.(instances);\n };\n if (!isEmpty(toLoadInstanceIds)) {\n initInstances();\n } else {\n setSelectedInstanceList([]);\n setPartialSelectedInstances([]);\n }\n }, [toLoadInstanceIds.sort().join()]);\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 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 searchDisabled={props.searchDisabled}\n advancedSearchDisabled={props.advancedSearchDisabled}\n ipCopy={props.ipCopy}\n showCloseBtn={props.showCloseBtn}\n showSizeChanger={props.showSizeChanger}\n pageSizeOptions={props.pageSizeOptions}\n aq={props.aq}\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 fieldIds: props.fields,\n }}\n selectDisabled={!props.ipCopy}\n ipCopy={props.ipCopy}\n showCloseBtn={props.ipCopy ? true : props.showCloseBtn}\n showSizeChanger={props.showSizeChanger}\n pageSizeOptions={props.pageSizeOptions}\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={{ list: partialSelectedInstances }}\n fieldIds={props.fields || fieldIds}\n selectDisabled={true}\n sortDisabled={true}\n configProps={\n props.showPagination && partialSelectedInstances.length > 10\n ? { pagination: { showSizeChanger: true } }\n : { pagination: false }\n }\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"],"mappings":"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"}
|
|
@@ -21,7 +21,7 @@ function encode(keyword) {
|
|
|
21
21
|
const FilterInstanceSource = props => {
|
|
22
22
|
const [instanceSource, setInstanceSource] = (0, _react.useState)(props.value);
|
|
23
23
|
const [objectIdNameList, setObjectIdNameList] = (0, _react.useState)([]);
|
|
24
|
-
const [keyword, setKeyword] = (0, _react.useState)(
|
|
24
|
+
const [keyword, setKeyword] = (0, _react.useState)("");
|
|
25
25
|
const {
|
|
26
26
|
checked,
|
|
27
27
|
visible,
|
|
@@ -40,7 +40,7 @@ const FilterInstanceSource = props => {
|
|
|
40
40
|
value: key
|
|
41
41
|
}));
|
|
42
42
|
setObjectIdNameList(_objectIdNameList);
|
|
43
|
-
}, [_modelIdNameMap]);
|
|
43
|
+
}, [_modelIdNameMap, checked]);
|
|
44
44
|
const onReset = e => {
|
|
45
45
|
const {
|
|
46
46
|
parentObjectId,
|
|
@@ -52,27 +52,33 @@ const FilterInstanceSource = props => {
|
|
|
52
52
|
query,
|
|
53
53
|
checked: false
|
|
54
54
|
};
|
|
55
|
-
setKeyword(
|
|
55
|
+
setKeyword("");
|
|
56
56
|
setInstanceSource("");
|
|
57
57
|
props === null || props === void 0 ? void 0 : props.onChange(value);
|
|
58
58
|
props === null || props === void 0 ? void 0 : props.onIconClicKChange(false);
|
|
59
59
|
props === null || props === void 0 ? void 0 : props.onPopoverVisibleChange(false);
|
|
60
60
|
};
|
|
61
61
|
const onConfirm = e => {
|
|
62
|
+
if (!instanceSource) {
|
|
63
|
+
setKeyword("");
|
|
64
|
+
props === null || props === void 0 ? void 0 : props.onIconClicKChange(false);
|
|
65
|
+
props === null || props === void 0 ? void 0 : props.onPopoverVisibleChange(false);
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
62
68
|
const query = {
|
|
63
69
|
objectId: instanceSource,
|
|
64
70
|
objectName: _modelIdNameMap[instanceSource],
|
|
65
71
|
query: (objectNameMap === null || objectNameMap === void 0 ? void 0 : objectNameMap.query) || {},
|
|
66
72
|
checked
|
|
67
73
|
};
|
|
68
|
-
setKeyword(
|
|
74
|
+
setKeyword("");
|
|
69
75
|
props === null || props === void 0 ? void 0 : props.onChange(query);
|
|
70
76
|
props === null || props === void 0 ? void 0 : props.onPopoverVisibleChange(false);
|
|
71
77
|
};
|
|
72
78
|
const handleRadioChange = e => {
|
|
73
79
|
setInstanceSource(e.target.value);
|
|
74
80
|
};
|
|
75
|
-
const
|
|
81
|
+
const onChange = e => {
|
|
76
82
|
const value = encode(e.target.value.trim());
|
|
77
83
|
const _objectIdNameList = (0, _lodash.map)(_modelIdNameMap, (value, key) => ({
|
|
78
84
|
text: value,
|
|
@@ -96,12 +102,12 @@ const FilterInstanceSource = props => {
|
|
|
96
102
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_antd.Input, {
|
|
97
103
|
placeholder: _i18next.default.t(`${_constants.NS_LIBS_CMDB_INSTANCES}:${_constants.K.SEARCH_MODEL}`),
|
|
98
104
|
suffix: /*#__PURE__*/_react.default.createElement(_icons.SearchOutlined, null),
|
|
99
|
-
|
|
105
|
+
onChange: onChange,
|
|
100
106
|
value: keyword,
|
|
101
107
|
"data-testid": "instance-source-search"
|
|
102
108
|
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
103
109
|
className: _FilterInstanceSourceModule.default.content
|
|
104
|
-
}, /*#__PURE__*/_react.default.createElement(_antd.Radio.Group, {
|
|
110
|
+
}, objectIdNameList.length ? /*#__PURE__*/_react.default.createElement(_antd.Radio.Group, {
|
|
105
111
|
value: instanceSource,
|
|
106
112
|
onChange: handleRadioChange
|
|
107
113
|
}, /*#__PURE__*/_react.default.createElement(_antd.Space, {
|
|
@@ -112,7 +118,9 @@ const FilterInstanceSource = props => {
|
|
|
112
118
|
}) => /*#__PURE__*/_react.default.createElement(_antd.Radio, {
|
|
113
119
|
key: value,
|
|
114
120
|
value: value
|
|
115
|
-
}, text))))
|
|
121
|
+
}, text)))) : /*#__PURE__*/_react.default.createElement("div", {
|
|
122
|
+
className: _FilterInstanceSourceModule.default.noData
|
|
123
|
+
}, _i18next.default.t(`${_constants.NS_LIBS_CMDB_INSTANCES}:${_constants.K.NO_DATA}`))), /*#__PURE__*/_react.default.createElement("div", {
|
|
116
124
|
className: _FilterInstanceSourceModule.default.footer
|
|
117
125
|
}, /*#__PURE__*/_react.default.createElement(_antd.Button, {
|
|
118
126
|
type: "text",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterInstanceSource.js","names":["encode","keyword","reg","replace","key","FilterInstanceSource","props","instanceSource","setInstanceSource","useState","value","objectIdNameList","setObjectIdNameList","setKeyword","undefined","checked","visible","jsonLocalStorage","isAbstract","objectNameMap","useMemo","getItem","_modelIdNameMap","isEmpty","inheritanceModelIdNameMap","idNameMap","useEffect","_objectIdNameList","map","text","onReset","e","parentObjectId","query","objectId","objectName","onChange","onIconClicKChange","onPopoverVisibleChange","onConfirm","handleRadioChange","target","onSearch","trim","regex","RegExp","filterObjectIdNameList","filter","v","test","onIconCheckedChange","getContent","i18n","t","NS_LIBS_CMDB_INSTANCES","K","SEARCH_MODEL","styles","content","footer","RESET","CONFIRM","width","marginRight"],"sources":["../../../src/instance-list/FilterInstanceSource.tsx"],"sourcesContent":["import React, { FC, ReactElement, useEffect, useMemo, useState } from \"react\";\nimport { Popover, Input, Button, Radio, Space } from \"antd\";\nimport { IconButton } from \"./IconButton\";\nimport { SearchOutlined } from \"@ant-design/icons\";\nimport styles from \"./FilterInstanceSource.module.css\";\nimport { map, isEmpty } from \"lodash\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\n\nimport { filterObjectIdQuery } from \"./InstanceList\";\n\ninterface FilterInstanceSourceProps {\n visible?: boolean;\n checked?: boolean;\n onIconClicKChange?(checked: boolean): void;\n inheritanceModelIdNameMap?: Record<string, string>;\n value?: string;\n onChange: (value: filterObjectIdQuery) => void;\n onPopoverVisibleChange?(visible: boolean): void;\n jsonLocalStorage?: any;\n isAbstract?: boolean;\n}\n\nfunction encode(keyword: string): string {\n const reg = /[[($^.\\]*\\\\?+{}|)]/gi;\n return keyword.replace(reg, (key) => `\\\\${key}`);\n}\n\nconst FilterInstanceSource: FC<FilterInstanceSourceProps> = (props) => {\n const [instanceSource, setInstanceSource] = useState(props.value);\n const [objectIdNameList, setObjectIdNameList] = useState([]);\n const [keyword, setKeyword] = useState(undefined);\n const { checked, visible, jsonLocalStorage, isAbstract } = props;\n\n const objectNameMap = useMemo(() => {\n return (\n jsonLocalStorage.getItem(\"instances-sources-objectId-name-map\") || {}\n );\n }, [jsonLocalStorage]);\n\n const _modelIdNameMap = useMemo(() => {\n return isEmpty(props.inheritanceModelIdNameMap)\n ? objectNameMap?.idNameMap\n : props.inheritanceModelIdNameMap;\n }, [props.inheritanceModelIdNameMap, objectNameMap]);\n\n useEffect(() => {\n const _objectIdNameList = map(_modelIdNameMap, (value, key) => ({\n text: value,\n value: key,\n }));\n setObjectIdNameList(_objectIdNameList);\n }, [_modelIdNameMap]);\n\n const onReset = (e: any): void => {\n const { parentObjectId, query } = objectNameMap;\n const value: filterObjectIdQuery = {\n objectId: parentObjectId,\n objectName: \"\",\n query,\n checked: false,\n };\n setKeyword(undefined);\n setInstanceSource(\"\");\n props?.onChange(value);\n props?.onIconClicKChange(false);\n props?.onPopoverVisibleChange(false);\n };\n\n const onConfirm = (e: any): void => {\n const query: filterObjectIdQuery = {\n objectId: instanceSource,\n objectName: _modelIdNameMap[instanceSource],\n query: objectNameMap?.query || {},\n checked,\n };\n setKeyword(undefined);\n props?.onChange(query);\n props?.onPopoverVisibleChange(false);\n };\n\n const handleRadioChange = (e: any): void => {\n setInstanceSource(e.target.value);\n };\n\n const onSearch = (e: any): void => {\n const value = encode(e.target.value.trim());\n const _objectIdNameList = map(_modelIdNameMap, (value, key) => ({\n text: value,\n value: key,\n }));\n const regex = new RegExp(value, \"ig\");\n const filterObjectIdNameList = _objectIdNameList.filter((v) =>\n regex.test(v.text)\n );\n setKeyword(e.target.value.trim());\n setObjectIdNameList(filterObjectIdNameList);\n };\n\n const onIconCheckedChange = (checked: boolean): void => {\n if (isAbstract) {\n props?.onIconClicKChange(checked);\n props?.onPopoverVisibleChange(checked);\n } else {\n props?.onIconClicKChange(true);\n props?.onPopoverVisibleChange(true);\n }\n };\n\n const getContent = (): ReactElement => {\n return (\n <>\n <Input\n placeholder={i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.SEARCH_MODEL}`)}\n suffix={<SearchOutlined />}\n onPressEnter={onSearch}\n value={keyword}\n data-testid=\"instance-source-search\"\n />\n <div className={styles.content}>\n <Radio.Group value={instanceSource} onChange={handleRadioChange}>\n <Space direction=\"vertical\">\n {objectIdNameList.map(({ text, value }) => (\n <Radio key={value} value={value}>\n {text}\n </Radio>\n ))}\n </Space>\n </Radio.Group>\n </div>\n <div className={styles.footer}>\n <Button\n type=\"text\"\n size=\"small\"\n onClick={onReset}\n disabled={isAbstract}\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.RESET}`)}\n </Button>\n <Button type=\"primary\" size=\"small\" onClick={onConfirm}>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CONFIRM}`)}\n </Button>\n </div>\n </>\n );\n };\n return (\n <Popover\n content={getContent()}\n placement=\"bottomRight\"\n overlayStyle={{ width: \"325px\" }}\n visible={visible}\n trigger=\"click\"\n >\n <IconButton\n checked={checked}\n onChange={onIconCheckedChange}\n style={{ marginRight: 10 }}\n type=\"filterInstanceSource\"\n label={\"\"}\n data-testid=\"instance-source-icon\"\n />\n </Popover>\n );\n};\n\nexport default FilterInstanceSource;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FilterInstanceSource.js","names":["encode","keyword","reg","replace","key","FilterInstanceSource","props","instanceSource","setInstanceSource","useState","value","objectIdNameList","setObjectIdNameList","setKeyword","checked","visible","jsonLocalStorage","isAbstract","objectNameMap","useMemo","getItem","_modelIdNameMap","isEmpty","inheritanceModelIdNameMap","idNameMap","useEffect","_objectIdNameList","map","text","onReset","e","parentObjectId","query","objectId","objectName","onChange","onIconClicKChange","onPopoverVisibleChange","onConfirm","handleRadioChange","target","trim","regex","RegExp","filterObjectIdNameList","filter","v","test","onIconCheckedChange","getContent","i18n","t","NS_LIBS_CMDB_INSTANCES","K","SEARCH_MODEL","styles","content","length","noData","NO_DATA","footer","RESET","CONFIRM","width","marginRight"],"sources":["../../../src/instance-list/FilterInstanceSource.tsx"],"sourcesContent":["import React, { FC, ReactElement, useEffect, useMemo, useState } from \"react\";\nimport { Popover, Input, Button, Radio, Space } from \"antd\";\nimport { IconButton } from \"./IconButton\";\nimport { SearchOutlined } from \"@ant-design/icons\";\nimport styles from \"./FilterInstanceSource.module.css\";\nimport { map, isEmpty } from \"lodash\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\n\nimport { filterObjectIdQuery } from \"./InstanceList\";\n\ninterface FilterInstanceSourceProps {\n visible?: boolean;\n checked?: boolean;\n onIconClicKChange?(checked: boolean): void;\n inheritanceModelIdNameMap?: Record<string, string>;\n value?: string;\n onChange: (value: filterObjectIdQuery) => void;\n onPopoverVisibleChange?(visible: boolean): void;\n jsonLocalStorage?: any;\n isAbstract?: boolean;\n}\n\nfunction encode(keyword: string): string {\n const reg = /[[($^.\\]*\\\\?+{}|)]/gi;\n return keyword.replace(reg, (key) => `\\\\${key}`);\n}\n\nconst FilterInstanceSource: FC<FilterInstanceSourceProps> = (props) => {\n const [instanceSource, setInstanceSource] = useState(props.value);\n const [objectIdNameList, setObjectIdNameList] = useState([]);\n const [keyword, setKeyword] = useState(\"\");\n const { checked, visible, jsonLocalStorage, isAbstract } = props;\n\n const objectNameMap = useMemo(() => {\n return (\n jsonLocalStorage.getItem(\"instances-sources-objectId-name-map\") || {}\n );\n }, [jsonLocalStorage]);\n\n const _modelIdNameMap = useMemo(() => {\n return isEmpty(props.inheritanceModelIdNameMap)\n ? objectNameMap?.idNameMap\n : props.inheritanceModelIdNameMap;\n }, [props.inheritanceModelIdNameMap, objectNameMap]);\n\n useEffect(() => {\n const _objectIdNameList = map(_modelIdNameMap, (value, key) => ({\n text: value,\n value: key,\n }));\n setObjectIdNameList(_objectIdNameList);\n }, [_modelIdNameMap, checked]);\n\n const onReset = (e: any): void => {\n const { parentObjectId, query } = objectNameMap;\n const value: filterObjectIdQuery = {\n objectId: parentObjectId,\n objectName: \"\",\n query,\n checked: false,\n };\n setKeyword(\"\");\n setInstanceSource(\"\");\n props?.onChange(value);\n props?.onIconClicKChange(false);\n props?.onPopoverVisibleChange(false);\n };\n\n const onConfirm = (e: any): void => {\n if (!instanceSource) {\n setKeyword(\"\");\n props?.onIconClicKChange(false);\n props?.onPopoverVisibleChange(false);\n return;\n }\n const query: filterObjectIdQuery = {\n objectId: instanceSource,\n objectName: _modelIdNameMap[instanceSource],\n query: objectNameMap?.query || {},\n checked,\n };\n setKeyword(\"\");\n props?.onChange(query);\n props?.onPopoverVisibleChange(false);\n };\n\n const handleRadioChange = (e: any): void => {\n setInstanceSource(e.target.value);\n };\n\n const onChange = (e: any): void => {\n const value = encode(e.target.value.trim());\n const _objectIdNameList = map(_modelIdNameMap, (value, key) => ({\n text: value,\n value: key,\n }));\n const regex = new RegExp(value, \"ig\");\n const filterObjectIdNameList = _objectIdNameList.filter((v) =>\n regex.test(v.text)\n );\n setKeyword(e.target.value.trim());\n setObjectIdNameList(filterObjectIdNameList);\n };\n\n const onIconCheckedChange = (checked: boolean): void => {\n if (isAbstract) {\n props?.onIconClicKChange(checked);\n props?.onPopoverVisibleChange(checked);\n } else {\n props?.onIconClicKChange(true);\n props?.onPopoverVisibleChange(true);\n }\n };\n\n const getContent = (): ReactElement => {\n return (\n <>\n <Input\n placeholder={i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.SEARCH_MODEL}`)}\n suffix={<SearchOutlined />}\n onChange={onChange}\n value={keyword}\n data-testid=\"instance-source-search\"\n />\n <div className={styles.content}>\n {objectIdNameList.length ? (\n <Radio.Group value={instanceSource} onChange={handleRadioChange}>\n <Space direction=\"vertical\">\n {objectIdNameList.map(({ text, value }) => (\n <Radio key={value} value={value}>\n {text}\n </Radio>\n ))}\n </Space>\n </Radio.Group>\n ) : (\n <div className={styles.noData}>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.NO_DATA}`)}\n </div>\n )}\n </div>\n <div className={styles.footer}>\n <Button\n type=\"text\"\n size=\"small\"\n onClick={onReset}\n disabled={isAbstract}\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.RESET}`)}\n </Button>\n <Button type=\"primary\" size=\"small\" onClick={onConfirm}>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CONFIRM}`)}\n </Button>\n </div>\n </>\n );\n };\n return (\n <Popover\n content={getContent()}\n placement=\"bottomRight\"\n overlayStyle={{ width: \"325px\" }}\n visible={visible}\n trigger=\"click\"\n >\n <IconButton\n checked={checked}\n onChange={onIconCheckedChange}\n style={{ marginRight: 10 }}\n type=\"filterInstanceSource\"\n label={\"\"}\n data-testid=\"instance-source-icon\"\n />\n </Popover>\n );\n};\n\nexport default FilterInstanceSource;\n"],"mappings":"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"}
|
|
@@ -47,6 +47,7 @@ export function CmdbInstancesSelectPanel(props, ref) {
|
|
|
47
47
|
var _ref = _asyncToGenerator(function* (instanceIdList) {
|
|
48
48
|
var instances = [];
|
|
49
49
|
if (instanceIdList !== null && instanceIdList !== void 0 && instanceIdList.length) {
|
|
50
|
+
var _props$fields;
|
|
50
51
|
instances = (yield InstanceApi_postSearch(props.objectId, {
|
|
51
52
|
query: {
|
|
52
53
|
instanceId: {
|
|
@@ -56,7 +57,9 @@ export function CmdbInstancesSelectPanel(props, ref) {
|
|
|
56
57
|
page: 1,
|
|
57
58
|
page_size: instanceIdList.length,
|
|
58
59
|
// todo(ice): selected confirm with instances
|
|
59
|
-
fields: {
|
|
60
|
+
fields: (_props$fields = props.fields) !== null && _props$fields !== void 0 && _props$fields.length ? props.fields.reduce((prev, next) => _objectSpread(_objectSpread({}, prev), {}, {
|
|
61
|
+
[next]: true
|
|
62
|
+
}), {}) : {
|
|
60
63
|
"*": true
|
|
61
64
|
}
|
|
62
65
|
})).list;
|
|
@@ -200,7 +203,8 @@ export function CmdbInstancesSelectPanel(props, ref) {
|
|
|
200
203
|
instanceId: {
|
|
201
204
|
$in: selectedInstanceList.map(instance => instance.instanceId)
|
|
202
205
|
}
|
|
203
|
-
}
|
|
206
|
+
},
|
|
207
|
+
fieldIds: props.fields
|
|
204
208
|
},
|
|
205
209
|
selectDisabled: !props.ipCopy,
|
|
206
210
|
ipCopy: props.ipCopy,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CmdbInstancesSelectPanel.js","names":["React","useState","useEffect","classnames","InstanceApi_postSearch","CmdbObjectApi_getObjectRef","InstanceListTable","InstanceListModal","modifyModelData","style","i18n","K","NS_LIBS_CMDB_INSTANCES","keyBy","isEqual","isNil","isObject","isEmpty","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","toLoadInstanceIds","value","map","i","getModelMap","data","ref_object","initInstances","isOperate","slice","onFetchedInstances","sort","join","openAddInstancesModal","closeAddInstancesModal","openAllSelectedInstancesModal","closeAllSelectedInstancesModal","handleInstancesSelected","selectedKeys","onChange","fieldIds","attr","showPreview","cs","selectedInstancesTableWrapper","withPreview","relation","relationLimit","right_max","$size","$lt","instanceQuery","wrapper","modalTitle","t","FILTER_FROM_CMDB","name","instance","singleSelect","addInstancesModalPageSize","searchDisabled","advancedSearchDisabled","ipCopy","showCloseBtn","showSizeChanger","pageSizeOptions","aq","VIEW_ALL_SELECTED_INSTANCES","textAlign","marginBottom","addButton","addTitle","CHOOSE_INSTANCE","showDetailUrl","detailUrlTemplates","showPagination","pagination","v","showAllSelectedInstancesButton","VIEW_ALL_DATA","count"],"sources":["../../../src/cmdb-instances-select-panel/CmdbInstancesSelectPanel.tsx"],"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 Query,\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, isObject, isEmpty } from \"lodash\";\nimport { Spin } from \"antd\";\n\nexport interface BaseCmdbInstancesSelectPanelProps {\n objectId: string;\n value?: any[];\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 showPagination?: boolean;\n aq?: Query[];\n}\n\nexport interface CmdbInstancesSelectPanelPropsWithObjectMap\n extends BaseCmdbInstancesSelectPanelProps {\n objectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>;\n ipCopy?: boolean;\n showSizeChanger?: boolean;\n showCloseBtn?: boolean;\n pageSizeOptions?: string[];\n}\n\nexport interface CmdbInstancesSelectPanelPropsWithModelData\n extends BaseCmdbInstancesSelectPanelProps {\n modelData: Partial<CmdbModels.ModelCmdbObject>;\n ipCopy?: boolean;\n showSizeChanger?: boolean;\n showCloseBtn?: boolean;\n pageSizeOptions?: string[];\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 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 [instanceTableData, setInstanceTableData] = useState({list: []})\n const [addInstancesModal, setAddInstancesModal] = useState({\n visible: false,\n });\n const [allSelectedInstancesModal, setAllSelectedInstancesModal] = useState({\n visible: false,\n });\n const [modelMap, setModelMap] = useState({});\n\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 const toLoadInstanceIds =\n props.value?.map((i) => (isObject(i) ? (i as any).instanceId : i)) || [];\n\n useEffect(() => {\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 useEffect(() => {\n let instances = [];\n\n const initInstances = async (): Promise<void> => {\n instances = await fetchInstances(toLoadInstanceIds);\n setSelectedInstanceList(instances);\n setPartialSelectedInstances(\n props?.isOperate\n ? instances\n : instances.slice(0, displayedSelectedInstancesMaxNumber)\n );\n props.onFetchedInstances?.(instances);\n };\n if (!isEmpty(toLoadInstanceIds)) {\n initInstances();\n } else {\n setSelectedInstanceList([]);\n setPartialSelectedInstances([]);\n }\n }, [toLoadInstanceIds.sort().join()]);\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 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 searchDisabled={props.searchDisabled}\n advancedSearchDisabled={props.advancedSearchDisabled}\n ipCopy={props.ipCopy}\n showCloseBtn={props.showCloseBtn}\n showSizeChanger={props.showSizeChanger}\n pageSizeOptions={props.pageSizeOptions}\n aq={props.aq}\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={!props.ipCopy}\n ipCopy={props.ipCopy}\n showCloseBtn={props.ipCopy ? true : props.showCloseBtn}\n showSizeChanger={props.showSizeChanger}\n pageSizeOptions={props.pageSizeOptions}\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={{ list: partialSelectedInstances }}\n fieldIds={props.fields || fieldIds}\n selectDisabled={true}\n sortDisabled={true}\n configProps={\n props.showPagination && partialSelectedInstances.length > 10\n ? { pagination: { showSizeChanger: true } }\n : { pagination: false }\n }\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"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CmdbInstancesSelectPanel.js","names":["React","useState","useEffect","classnames","InstanceApi_postSearch","CmdbObjectApi_getObjectRef","InstanceListTable","InstanceListModal","modifyModelData","style","i18n","K","NS_LIBS_CMDB_INSTANCES","keyBy","isEqual","isNil","isObject","isEmpty","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","reduce","prev","next","list","toLoadInstanceIds","value","map","i","getModelMap","data","ref_object","initInstances","isOperate","slice","onFetchedInstances","sort","join","openAddInstancesModal","closeAddInstancesModal","openAllSelectedInstancesModal","closeAllSelectedInstancesModal","handleInstancesSelected","selectedKeys","onChange","fieldIds","attr","showPreview","cs","selectedInstancesTableWrapper","withPreview","relation","relationLimit","right_max","$size","$lt","instanceQuery","wrapper","modalTitle","t","FILTER_FROM_CMDB","name","instance","singleSelect","addInstancesModalPageSize","searchDisabled","advancedSearchDisabled","ipCopy","showCloseBtn","showSizeChanger","pageSizeOptions","aq","VIEW_ALL_SELECTED_INSTANCES","textAlign","marginBottom","addButton","addTitle","CHOOSE_INSTANCE","showDetailUrl","detailUrlTemplates","showPagination","pagination","v","showAllSelectedInstancesButton","VIEW_ALL_DATA","count"],"sources":["../../../src/cmdb-instances-select-panel/CmdbInstancesSelectPanel.tsx"],"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 Query,\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, isObject, isEmpty } from \"lodash\";\nimport { Spin } from \"antd\";\n\nexport interface BaseCmdbInstancesSelectPanelProps {\n objectId: string;\n value?: any[];\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 showPagination?: boolean;\n aq?: Query[];\n}\n\nexport interface CmdbInstancesSelectPanelPropsWithObjectMap\n extends BaseCmdbInstancesSelectPanelProps {\n objectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>;\n ipCopy?: boolean;\n showSizeChanger?: boolean;\n showCloseBtn?: boolean;\n pageSizeOptions?: string[];\n}\n\nexport interface CmdbInstancesSelectPanelPropsWithModelData\n extends BaseCmdbInstancesSelectPanelProps {\n modelData: Partial<CmdbModels.ModelCmdbObject>;\n ipCopy?: boolean;\n showSizeChanger?: boolean;\n showCloseBtn?: boolean;\n pageSizeOptions?: string[];\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 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 [instanceTableData, setInstanceTableData] = useState({list: []})\n const [addInstancesModal, setAddInstancesModal] = useState({\n visible: false,\n });\n const [allSelectedInstancesModal, setAllSelectedInstancesModal] = useState({\n visible: false,\n });\n const [modelMap, setModelMap] = useState({});\n\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: props.fields?.length\n ? props.fields.reduce(\n (prev, next) => ({ ...prev, [next]: true }),\n {}\n )\n : { \"*\": true },\n })\n ).list;\n }\n\n return instances;\n };\n const toLoadInstanceIds =\n props.value?.map((i) => (isObject(i) ? (i as any).instanceId : i)) || [];\n\n useEffect(() => {\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 useEffect(() => {\n let instances = [];\n\n const initInstances = async (): Promise<void> => {\n instances = await fetchInstances(toLoadInstanceIds);\n setSelectedInstanceList(instances);\n setPartialSelectedInstances(\n props?.isOperate\n ? instances\n : instances.slice(0, displayedSelectedInstancesMaxNumber)\n );\n props.onFetchedInstances?.(instances);\n };\n if (!isEmpty(toLoadInstanceIds)) {\n initInstances();\n } else {\n setSelectedInstanceList([]);\n setPartialSelectedInstances([]);\n }\n }, [toLoadInstanceIds.sort().join()]);\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 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 searchDisabled={props.searchDisabled}\n advancedSearchDisabled={props.advancedSearchDisabled}\n ipCopy={props.ipCopy}\n showCloseBtn={props.showCloseBtn}\n showSizeChanger={props.showSizeChanger}\n pageSizeOptions={props.pageSizeOptions}\n aq={props.aq}\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 fieldIds: props.fields,\n }}\n selectDisabled={!props.ipCopy}\n ipCopy={props.ipCopy}\n showCloseBtn={props.ipCopy ? true : props.showCloseBtn}\n showSizeChanger={props.showSizeChanger}\n pageSizeOptions={props.pageSizeOptions}\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={{ list: partialSelectedInstances }}\n fieldIds={props.fields || fieldIds}\n selectDisabled={true}\n sortDisabled={true}\n configProps={\n props.showPagination && partialSelectedInstances.length > 10\n ? { pagination: { showSizeChanger: true } }\n : { pagination: false }\n }\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"],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@ function encode(keyword) {
|
|
|
13
13
|
var FilterInstanceSource = props => {
|
|
14
14
|
var [instanceSource, setInstanceSource] = useState(props.value);
|
|
15
15
|
var [objectIdNameList, setObjectIdNameList] = useState([]);
|
|
16
|
-
var [keyword, setKeyword] = useState(
|
|
16
|
+
var [keyword, setKeyword] = useState("");
|
|
17
17
|
var {
|
|
18
18
|
checked,
|
|
19
19
|
visible,
|
|
@@ -32,7 +32,7 @@ var FilterInstanceSource = props => {
|
|
|
32
32
|
value: key
|
|
33
33
|
}));
|
|
34
34
|
setObjectIdNameList(_objectIdNameList);
|
|
35
|
-
}, [_modelIdNameMap]);
|
|
35
|
+
}, [_modelIdNameMap, checked]);
|
|
36
36
|
var onReset = e => {
|
|
37
37
|
var {
|
|
38
38
|
parentObjectId,
|
|
@@ -44,27 +44,33 @@ var FilterInstanceSource = props => {
|
|
|
44
44
|
query,
|
|
45
45
|
checked: false
|
|
46
46
|
};
|
|
47
|
-
setKeyword(
|
|
47
|
+
setKeyword("");
|
|
48
48
|
setInstanceSource("");
|
|
49
49
|
props === null || props === void 0 ? void 0 : props.onChange(value);
|
|
50
50
|
props === null || props === void 0 ? void 0 : props.onIconClicKChange(false);
|
|
51
51
|
props === null || props === void 0 ? void 0 : props.onPopoverVisibleChange(false);
|
|
52
52
|
};
|
|
53
53
|
var onConfirm = e => {
|
|
54
|
+
if (!instanceSource) {
|
|
55
|
+
setKeyword("");
|
|
56
|
+
props === null || props === void 0 ? void 0 : props.onIconClicKChange(false);
|
|
57
|
+
props === null || props === void 0 ? void 0 : props.onPopoverVisibleChange(false);
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
54
60
|
var query = {
|
|
55
61
|
objectId: instanceSource,
|
|
56
62
|
objectName: _modelIdNameMap[instanceSource],
|
|
57
63
|
query: (objectNameMap === null || objectNameMap === void 0 ? void 0 : objectNameMap.query) || {},
|
|
58
64
|
checked
|
|
59
65
|
};
|
|
60
|
-
setKeyword(
|
|
66
|
+
setKeyword("");
|
|
61
67
|
props === null || props === void 0 ? void 0 : props.onChange(query);
|
|
62
68
|
props === null || props === void 0 ? void 0 : props.onPopoverVisibleChange(false);
|
|
63
69
|
};
|
|
64
70
|
var handleRadioChange = e => {
|
|
65
71
|
setInstanceSource(e.target.value);
|
|
66
72
|
};
|
|
67
|
-
var
|
|
73
|
+
var onChange = e => {
|
|
68
74
|
var value = encode(e.target.value.trim());
|
|
69
75
|
var _objectIdNameList = map(_modelIdNameMap, (value, key) => ({
|
|
70
76
|
text: value,
|
|
@@ -88,12 +94,12 @@ var FilterInstanceSource = props => {
|
|
|
88
94
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Input, {
|
|
89
95
|
placeholder: i18n.t("".concat(NS_LIBS_CMDB_INSTANCES, ":").concat(K.SEARCH_MODEL)),
|
|
90
96
|
suffix: /*#__PURE__*/React.createElement(SearchOutlined, null),
|
|
91
|
-
|
|
97
|
+
onChange: onChange,
|
|
92
98
|
value: keyword,
|
|
93
99
|
"data-testid": "instance-source-search"
|
|
94
100
|
}), /*#__PURE__*/React.createElement("div", {
|
|
95
101
|
className: styles.content
|
|
96
|
-
}, /*#__PURE__*/React.createElement(Radio.Group, {
|
|
102
|
+
}, objectIdNameList.length ? /*#__PURE__*/React.createElement(Radio.Group, {
|
|
97
103
|
value: instanceSource,
|
|
98
104
|
onChange: handleRadioChange
|
|
99
105
|
}, /*#__PURE__*/React.createElement(Space, {
|
|
@@ -107,7 +113,9 @@ var FilterInstanceSource = props => {
|
|
|
107
113
|
key: value,
|
|
108
114
|
value: value
|
|
109
115
|
}, text);
|
|
110
|
-
})))
|
|
116
|
+
}))) : /*#__PURE__*/React.createElement("div", {
|
|
117
|
+
className: styles.noData
|
|
118
|
+
}, i18n.t("".concat(NS_LIBS_CMDB_INSTANCES, ":").concat(K.NO_DATA)))), /*#__PURE__*/React.createElement("div", {
|
|
111
119
|
className: styles.footer
|
|
112
120
|
}, /*#__PURE__*/React.createElement(Button, {
|
|
113
121
|
type: "text",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterInstanceSource.js","names":["React","useEffect","useMemo","useState","Popover","Input","Button","Radio","Space","IconButton","SearchOutlined","styles","map","isEmpty","i18n","K","NS_LIBS_CMDB_INSTANCES","encode","keyword","reg","replace","key","FilterInstanceSource","props","instanceSource","setInstanceSource","value","objectIdNameList","setObjectIdNameList","setKeyword","undefined","checked","visible","jsonLocalStorage","isAbstract","objectNameMap","getItem","_modelIdNameMap","inheritanceModelIdNameMap","idNameMap","_objectIdNameList","text","onReset","e","parentObjectId","query","objectId","objectName","onChange","onIconClicKChange","onPopoverVisibleChange","onConfirm","handleRadioChange","target","onSearch","trim","regex","RegExp","filterObjectIdNameList","filter","v","test","onIconCheckedChange","getContent","t","SEARCH_MODEL","content","footer","RESET","CONFIRM","width","marginRight"],"sources":["../../../src/instance-list/FilterInstanceSource.tsx"],"sourcesContent":["import React, { FC, ReactElement, useEffect, useMemo, useState } from \"react\";\nimport { Popover, Input, Button, Radio, Space } from \"antd\";\nimport { IconButton } from \"./IconButton\";\nimport { SearchOutlined } from \"@ant-design/icons\";\nimport styles from \"./FilterInstanceSource.module.css\";\nimport { map, isEmpty } from \"lodash\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\n\nimport { filterObjectIdQuery } from \"./InstanceList\";\n\ninterface FilterInstanceSourceProps {\n visible?: boolean;\n checked?: boolean;\n onIconClicKChange?(checked: boolean): void;\n inheritanceModelIdNameMap?: Record<string, string>;\n value?: string;\n onChange: (value: filterObjectIdQuery) => void;\n onPopoverVisibleChange?(visible: boolean): void;\n jsonLocalStorage?: any;\n isAbstract?: boolean;\n}\n\nfunction encode(keyword: string): string {\n const reg = /[[($^.\\]*\\\\?+{}|)]/gi;\n return keyword.replace(reg, (key) => `\\\\${key}`);\n}\n\nconst FilterInstanceSource: FC<FilterInstanceSourceProps> = (props) => {\n const [instanceSource, setInstanceSource] = useState(props.value);\n const [objectIdNameList, setObjectIdNameList] = useState([]);\n const [keyword, setKeyword] = useState(undefined);\n const { checked, visible, jsonLocalStorage, isAbstract } = props;\n\n const objectNameMap = useMemo(() => {\n return (\n jsonLocalStorage.getItem(\"instances-sources-objectId-name-map\") || {}\n );\n }, [jsonLocalStorage]);\n\n const _modelIdNameMap = useMemo(() => {\n return isEmpty(props.inheritanceModelIdNameMap)\n ? objectNameMap?.idNameMap\n : props.inheritanceModelIdNameMap;\n }, [props.inheritanceModelIdNameMap, objectNameMap]);\n\n useEffect(() => {\n const _objectIdNameList = map(_modelIdNameMap, (value, key) => ({\n text: value,\n value: key,\n }));\n setObjectIdNameList(_objectIdNameList);\n }, [_modelIdNameMap]);\n\n const onReset = (e: any): void => {\n const { parentObjectId, query } = objectNameMap;\n const value: filterObjectIdQuery = {\n objectId: parentObjectId,\n objectName: \"\",\n query,\n checked: false,\n };\n setKeyword(undefined);\n setInstanceSource(\"\");\n props?.onChange(value);\n props?.onIconClicKChange(false);\n props?.onPopoverVisibleChange(false);\n };\n\n const onConfirm = (e: any): void => {\n const query: filterObjectIdQuery = {\n objectId: instanceSource,\n objectName: _modelIdNameMap[instanceSource],\n query: objectNameMap?.query || {},\n checked,\n };\n setKeyword(undefined);\n props?.onChange(query);\n props?.onPopoverVisibleChange(false);\n };\n\n const handleRadioChange = (e: any): void => {\n setInstanceSource(e.target.value);\n };\n\n const onSearch = (e: any): void => {\n const value = encode(e.target.value.trim());\n const _objectIdNameList = map(_modelIdNameMap, (value, key) => ({\n text: value,\n value: key,\n }));\n const regex = new RegExp(value, \"ig\");\n const filterObjectIdNameList = _objectIdNameList.filter((v) =>\n regex.test(v.text)\n );\n setKeyword(e.target.value.trim());\n setObjectIdNameList(filterObjectIdNameList);\n };\n\n const onIconCheckedChange = (checked: boolean): void => {\n if (isAbstract) {\n props?.onIconClicKChange(checked);\n props?.onPopoverVisibleChange(checked);\n } else {\n props?.onIconClicKChange(true);\n props?.onPopoverVisibleChange(true);\n }\n };\n\n const getContent = (): ReactElement => {\n return (\n <>\n <Input\n placeholder={i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.SEARCH_MODEL}`)}\n suffix={<SearchOutlined />}\n onPressEnter={onSearch}\n value={keyword}\n data-testid=\"instance-source-search\"\n />\n <div className={styles.content}>\n <Radio.Group value={instanceSource} onChange={handleRadioChange}>\n <Space direction=\"vertical\">\n {objectIdNameList.map(({ text, value }) => (\n <Radio key={value} value={value}>\n {text}\n </Radio>\n ))}\n </Space>\n </Radio.Group>\n </div>\n <div className={styles.footer}>\n <Button\n type=\"text\"\n size=\"small\"\n onClick={onReset}\n disabled={isAbstract}\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.RESET}`)}\n </Button>\n <Button type=\"primary\" size=\"small\" onClick={onConfirm}>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CONFIRM}`)}\n </Button>\n </div>\n </>\n );\n };\n return (\n <Popover\n content={getContent()}\n placement=\"bottomRight\"\n overlayStyle={{ width: \"325px\" }}\n visible={visible}\n trigger=\"click\"\n >\n <IconButton\n checked={checked}\n onChange={onIconCheckedChange}\n style={{ marginRight: 10 }}\n type=\"filterInstanceSource\"\n label={\"\"}\n data-testid=\"instance-source-icon\"\n />\n </Popover>\n );\n};\n\nexport default FilterInstanceSource;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FilterInstanceSource.js","names":["React","useEffect","useMemo","useState","Popover","Input","Button","Radio","Space","IconButton","SearchOutlined","styles","map","isEmpty","i18n","K","NS_LIBS_CMDB_INSTANCES","encode","keyword","reg","replace","key","FilterInstanceSource","props","instanceSource","setInstanceSource","value","objectIdNameList","setObjectIdNameList","setKeyword","checked","visible","jsonLocalStorage","isAbstract","objectNameMap","getItem","_modelIdNameMap","inheritanceModelIdNameMap","idNameMap","_objectIdNameList","text","onReset","e","parentObjectId","query","objectId","objectName","onChange","onIconClicKChange","onPopoverVisibleChange","onConfirm","handleRadioChange","target","trim","regex","RegExp","filterObjectIdNameList","filter","v","test","onIconCheckedChange","getContent","t","SEARCH_MODEL","content","length","noData","NO_DATA","footer","RESET","CONFIRM","width","marginRight"],"sources":["../../../src/instance-list/FilterInstanceSource.tsx"],"sourcesContent":["import React, { FC, ReactElement, useEffect, useMemo, useState } from \"react\";\nimport { Popover, Input, Button, Radio, Space } from \"antd\";\nimport { IconButton } from \"./IconButton\";\nimport { SearchOutlined } from \"@ant-design/icons\";\nimport styles from \"./FilterInstanceSource.module.css\";\nimport { map, isEmpty } from \"lodash\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\n\nimport { filterObjectIdQuery } from \"./InstanceList\";\n\ninterface FilterInstanceSourceProps {\n visible?: boolean;\n checked?: boolean;\n onIconClicKChange?(checked: boolean): void;\n inheritanceModelIdNameMap?: Record<string, string>;\n value?: string;\n onChange: (value: filterObjectIdQuery) => void;\n onPopoverVisibleChange?(visible: boolean): void;\n jsonLocalStorage?: any;\n isAbstract?: boolean;\n}\n\nfunction encode(keyword: string): string {\n const reg = /[[($^.\\]*\\\\?+{}|)]/gi;\n return keyword.replace(reg, (key) => `\\\\${key}`);\n}\n\nconst FilterInstanceSource: FC<FilterInstanceSourceProps> = (props) => {\n const [instanceSource, setInstanceSource] = useState(props.value);\n const [objectIdNameList, setObjectIdNameList] = useState([]);\n const [keyword, setKeyword] = useState(\"\");\n const { checked, visible, jsonLocalStorage, isAbstract } = props;\n\n const objectNameMap = useMemo(() => {\n return (\n jsonLocalStorage.getItem(\"instances-sources-objectId-name-map\") || {}\n );\n }, [jsonLocalStorage]);\n\n const _modelIdNameMap = useMemo(() => {\n return isEmpty(props.inheritanceModelIdNameMap)\n ? objectNameMap?.idNameMap\n : props.inheritanceModelIdNameMap;\n }, [props.inheritanceModelIdNameMap, objectNameMap]);\n\n useEffect(() => {\n const _objectIdNameList = map(_modelIdNameMap, (value, key) => ({\n text: value,\n value: key,\n }));\n setObjectIdNameList(_objectIdNameList);\n }, [_modelIdNameMap, checked]);\n\n const onReset = (e: any): void => {\n const { parentObjectId, query } = objectNameMap;\n const value: filterObjectIdQuery = {\n objectId: parentObjectId,\n objectName: \"\",\n query,\n checked: false,\n };\n setKeyword(\"\");\n setInstanceSource(\"\");\n props?.onChange(value);\n props?.onIconClicKChange(false);\n props?.onPopoverVisibleChange(false);\n };\n\n const onConfirm = (e: any): void => {\n if (!instanceSource) {\n setKeyword(\"\");\n props?.onIconClicKChange(false);\n props?.onPopoverVisibleChange(false);\n return;\n }\n const query: filterObjectIdQuery = {\n objectId: instanceSource,\n objectName: _modelIdNameMap[instanceSource],\n query: objectNameMap?.query || {},\n checked,\n };\n setKeyword(\"\");\n props?.onChange(query);\n props?.onPopoverVisibleChange(false);\n };\n\n const handleRadioChange = (e: any): void => {\n setInstanceSource(e.target.value);\n };\n\n const onChange = (e: any): void => {\n const value = encode(e.target.value.trim());\n const _objectIdNameList = map(_modelIdNameMap, (value, key) => ({\n text: value,\n value: key,\n }));\n const regex = new RegExp(value, \"ig\");\n const filterObjectIdNameList = _objectIdNameList.filter((v) =>\n regex.test(v.text)\n );\n setKeyword(e.target.value.trim());\n setObjectIdNameList(filterObjectIdNameList);\n };\n\n const onIconCheckedChange = (checked: boolean): void => {\n if (isAbstract) {\n props?.onIconClicKChange(checked);\n props?.onPopoverVisibleChange(checked);\n } else {\n props?.onIconClicKChange(true);\n props?.onPopoverVisibleChange(true);\n }\n };\n\n const getContent = (): ReactElement => {\n return (\n <>\n <Input\n placeholder={i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.SEARCH_MODEL}`)}\n suffix={<SearchOutlined />}\n onChange={onChange}\n value={keyword}\n data-testid=\"instance-source-search\"\n />\n <div className={styles.content}>\n {objectIdNameList.length ? (\n <Radio.Group value={instanceSource} onChange={handleRadioChange}>\n <Space direction=\"vertical\">\n {objectIdNameList.map(({ text, value }) => (\n <Radio key={value} value={value}>\n {text}\n </Radio>\n ))}\n </Space>\n </Radio.Group>\n ) : (\n <div className={styles.noData}>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.NO_DATA}`)}\n </div>\n )}\n </div>\n <div className={styles.footer}>\n <Button\n type=\"text\"\n size=\"small\"\n onClick={onReset}\n disabled={isAbstract}\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.RESET}`)}\n </Button>\n <Button type=\"primary\" size=\"small\" onClick={onConfirm}>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CONFIRM}`)}\n </Button>\n </div>\n </>\n );\n };\n return (\n <Popover\n content={getContent()}\n placement=\"bottomRight\"\n overlayStyle={{ width: \"325px\" }}\n visible={visible}\n trigger=\"click\"\n >\n <IconButton\n checked={checked}\n onChange={onIconCheckedChange}\n style={{ marginRight: 10 }}\n type=\"filterInstanceSource\"\n label={\"\"}\n data-testid=\"instance-source-icon\"\n />\n </Popover>\n );\n};\n\nexport default FilterInstanceSource;\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@next-libs/cmdb-instances",
|
|
3
|
-
"version": "7.6.
|
|
3
|
+
"version": "7.6.10",
|
|
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": "
|
|
53
|
+
"gitHead": "72b2f66b495646aa00e049857ddb469ec80f0c92"
|
|
54
54
|
}
|