@next-libs/cmdb-instances 7.12.1 → 7.12.3
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 +1 -1
- package/dist/cjs/cmdb-instances-select-panel/CmdbInstancesSelectPanel.js.map +1 -1
- package/dist/cjs/instance-list-table/AdvancedSearchCondition.js +1 -1
- package/dist/cjs/instance-list-table/AdvancedSearchCondition.js.map +1 -1
- package/dist/cjs/instance-list-table/DisplaySettingsModal.js +1 -1
- package/dist/cjs/instance-list-table/DisplaySettingsModal.js.map +1 -1
- package/dist/cjs/model-attribute-form/ModelAttributeForm.js +12 -6
- package/dist/cjs/model-attribute-form/ModelAttributeForm.js.map +1 -1
- package/dist/cjs/struct-components/AddStruct.js +1 -1
- package/dist/cjs/struct-components/AddStruct.js.map +1 -1
- package/dist/esm/cmdb-instances-select-panel/CmdbInstancesSelectPanel.js +1 -1
- package/dist/esm/cmdb-instances-select-panel/CmdbInstancesSelectPanel.js.map +1 -1
- package/dist/esm/instance-list/InstanceList.module.css +2 -2
- package/dist/esm/instance-list-table/AdvancedSearchCondition.js +1 -1
- package/dist/esm/instance-list-table/AdvancedSearchCondition.js.map +1 -1
- package/dist/esm/instance-list-table/AdvancedSearchCondition.module.css +1 -1
- package/dist/esm/instance-list-table/DisplaySettingsModal.js +1 -1
- package/dist/esm/instance-list-table/DisplaySettingsModal.js.map +1 -1
- package/dist/esm/model-attribute-form/ModelAttributeForm.js +12 -7
- package/dist/esm/model-attribute-form/ModelAttributeForm.js.map +1 -1
- package/dist/esm/model-attribute-form/ModelAttributeForm.module.css +20 -1
- package/dist/esm/struct-components/AddStruct.js +1 -1
- package/dist/esm/struct-components/AddStruct.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddStruct.js","names":["AddStruct","React","Component","constructor","props","formData","isLegacy","structData","output","Array","isArray","setState","showModal","restStructData","state","serachValue","compact","map","r","values","Object","find","s","toString","match","handleStoreFunction","handleCloseModal","value","componentDidUpdate","prevProps","prevState","snapshot","render","attribute","className","display","alignItems","justifyContent","marginBottom","width","onSearch","isEmpty","readonly","isCreate","handleOpenAddModal","i18n","t","NS_LIBS_CMDB_INSTANCES","K","ADD","handleAddStruct","handleEditStruct"],"sources":["../../../src/struct-components/AddStruct.tsx"],"sourcesContent":["import React, { CSSProperties } from \"react\";\nimport { Button, Input } from \"antd\";\nimport i18n from \"i18next\";\nimport { NS_LIBS_CMDB_INSTANCES, K } from \"../i18n/constants\";\nimport { StructTable } from \"./StructTable\";\nimport { AddStructModal } from \"./AddStructModal\";\nimport { isArray, isEmpty, compact } from \"lodash\";\nimport { Attribute } from \"./interfaces\";\nimport { CmdbModels } from \"@next-sdk/cmdb-sdk\";\n\nexport interface AddStructProps {\n style?: CSSProperties;\n structData?: any;\n attribute: Partial<CmdbModels.ModelObjectAttr>;\n handleStoreFunction: (value: any) => void;\n isLegacy?: boolean;\n className?: string;\n isCreate?: boolean;\n}\nexport interface AddStructState {\n showModal: boolean;\n structData: any;\n isEdit?: boolean;\n serachValue?: string;\n}\nexport class AddStruct extends React.Component<AddStructProps, AddStructState> {\n constructor(props: AddStructProps) {\n super(props);\n this.state = {\n structData: props.structData,\n showModal: false,\n serachValue: \"\",\n };\n }\n // 编辑结构体\n // istanbul ignore next\n handleEditStruct = (formData: any) => {\n const { isLegacy, structData } = this.props;\n const output = isLegacy\n ? Array.isArray(formData)\n ? formData[0]\n : formData\n : formData;\n this.setState({ showModal: false });\n let restStructData: any = [];\n if (this.state.serachValue && Array.isArray(structData)) {\n restStructData = compact(\n structData?.map((r: any) => {\n const values: string[] = Object.values(r);\n if (\n !values?.find((s: string) =>\n s?.toString()?.match(this.state.serachValue)\n )\n ) {\n return r;\n }\n })\n );\n }\n this.props.handleStoreFunction(\n Array.isArray(output) ? [...restStructData, ...output] : output\n );\n };\n // 新建结构体\n handleAddStruct = (formData: any) => {\n const { isLegacy, structData } = this.props;\n this.props.handleStoreFunction(\n isLegacy\n ? formData\n : isArray(structData)\n ? [...structData, formData]\n : [formData]\n );\n this.handleCloseModal();\n };\n handleCloseModal = () => {\n this.setState({\n showModal: false,\n });\n };\n handleOpenAddModal = () => {\n this.setState({ showModal: true });\n };\n // istanbul ignore next\n onSearch = (value: string) => {\n let structData = this.props.structData;\n if (value) {\n structData = compact(\n structData?.map((r: any) => {\n const values: string[] = Object.values(r);\n if (values?.find((s: string) => s?.toString()?.match(value))) {\n return r;\n }\n })\n );\n }\n this.setState({\n structData,\n serachValue: value,\n });\n };\n // istanbul ignore next\n componentDidUpdate(\n prevProps: Readonly<AddStructProps>,\n prevState: Readonly<AddStructState>,\n snapshot?: any\n ): void {\n if (prevProps.structData !== this.props.structData) {\n this.setState({\n structData: this.state.serachValue\n ? compact(\n this.props.structData.map((r: any) => {\n const values: string[] = Object.values(r);\n if (\n values?.find((s: string) =>\n s?.toString()?.match(this.state.serachValue)\n )\n ) {\n return r;\n }\n })\n )\n : this.props.structData,\n });\n }\n }\n\n render() {\n const { structData, attribute, isLegacy, className } = this.props;\n const { showModal } = this.state;\n return (\n <div className={className}>\n {/* 单结构体并且已经添加过的,添加按钮置灰 */}\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n marginBottom: 16,\n }}\n >\n {\n // istanbul ignore next\n // 单结构体不支持搜索\n Array.isArray(this.props.structData) && (\n <Input.Search\n style={{ width: 300 }}\n onSearch={(value) => {\n this.onSearch(value);\n }}\n enterButton\n />\n )\n }\n <Button\n type=\"link\"\n disabled={\n (isLegacy && !isEmpty(structData)) ||\n (attribute.readonly === \"true\" && !this.props.isCreate)\n }\n onClick={this.handleOpenAddModal}\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.ADD}`)}\n </Button>\n </div>\n\n <AddStructModal\n // 新建的情况下不必给初值,初值为空对象时codeEditor才能正常回填\n structData={{}}\n attribute={attribute as Attribute}\n visible={showModal}\n handleStoreFunction={(formData: any) =>\n this.handleAddStruct(formData)\n }\n handleCancelFunction={this.handleCloseModal}\n />\n <StructTable\n structData={this.state.structData}\n attribute={attribute as Attribute}\n isEditable={\n this.props.attribute.readonly === \"false\" || this.props.isCreate\n }\n isLegacy={isLegacy}\n handleStoreFunction={this.handleEditStruct}\n />\n </div>\n );\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AddStruct.js","names":["AddStruct","React","Component","constructor","props","formData","isLegacy","structData","output","Array","isArray","setState","showModal","restStructData","state","serachValue","compact","map","r","values","Object","find","s","toString","match","handleStoreFunction","handleCloseModal","value","componentDidUpdate","prevProps","prevState","snapshot","render","attribute","className","display","alignItems","justifyContent","marginBottom","width","onSearch","isEmpty","readonly","isCreate","handleOpenAddModal","i18n","t","NS_LIBS_CMDB_INSTANCES","K","ADD","handleAddStruct","handleEditStruct"],"sources":["../../../src/struct-components/AddStruct.tsx"],"sourcesContent":["import React, { CSSProperties } from \"react\";\nimport { Button, Input } from \"antd\";\nimport i18n from \"i18next\";\nimport { NS_LIBS_CMDB_INSTANCES, K } from \"../i18n/constants\";\nimport { StructTable } from \"./StructTable\";\nimport { AddStructModal } from \"./AddStructModal\";\nimport { isArray, isEmpty, compact } from \"lodash\";\nimport { Attribute } from \"./interfaces\";\nimport { CmdbModels } from \"@next-sdk/cmdb-sdk\";\n\nexport interface AddStructProps {\n style?: CSSProperties;\n structData?: any;\n attribute: Partial<CmdbModels.ModelObjectAttr>;\n handleStoreFunction: (value: any) => void;\n isLegacy?: boolean;\n className?: string;\n isCreate?: boolean;\n}\nexport interface AddStructState {\n showModal: boolean;\n structData: any;\n isEdit?: boolean;\n serachValue?: string;\n}\nexport class AddStruct extends React.Component<AddStructProps, AddStructState> {\n constructor(props: AddStructProps) {\n super(props);\n this.state = {\n structData: props.structData,\n showModal: false,\n serachValue: \"\",\n };\n }\n // 编辑结构体\n // istanbul ignore next\n handleEditStruct = (formData: any) => {\n const { isLegacy, structData } = this.props;\n const output = isLegacy\n ? Array.isArray(formData)\n ? formData[0]\n : formData\n : formData;\n this.setState({ showModal: false });\n let restStructData: any = [];\n if (this.state.serachValue && Array.isArray(structData)) {\n restStructData = compact(\n structData?.map((r: any) => {\n const values: string[] = Object.values(r);\n if (\n !values?.find((s: string) =>\n s?.toString()?.match(this.state.serachValue)\n )\n ) {\n return r;\n }\n })\n );\n }\n this.props.handleStoreFunction(\n Array.isArray(output) ? [...restStructData, ...output] : output\n );\n };\n // 新建结构体\n handleAddStruct = (formData: any) => {\n const { isLegacy, structData } = this.props;\n this.props.handleStoreFunction(\n isLegacy\n ? formData\n : isArray(structData)\n ? [...structData, formData]\n : [formData]\n );\n this.handleCloseModal();\n };\n handleCloseModal = () => {\n this.setState({\n showModal: false,\n });\n };\n handleOpenAddModal = () => {\n this.setState({ showModal: true });\n };\n // istanbul ignore next\n onSearch = (value: string) => {\n let structData = this.props.structData;\n if (value) {\n structData = compact(\n structData?.map((r: any) => {\n const values: string[] = Object.values(r);\n if (values?.find((s: string) => s?.toString()?.match(value))) {\n return r;\n }\n })\n );\n }\n this.setState({\n structData,\n serachValue: value,\n });\n };\n // istanbul ignore next\n componentDidUpdate(\n prevProps: Readonly<AddStructProps>,\n prevState: Readonly<AddStructState>,\n snapshot?: any\n ): void {\n if (prevProps.structData !== this.props.structData) {\n this.setState({\n structData: this.state.serachValue\n ? compact(\n this.props.structData.map((r: any) => {\n const values: string[] = Object.values(r);\n if (\n values?.find((s: string) =>\n s?.toString()?.match(this.state.serachValue)\n )\n ) {\n return r;\n }\n })\n )\n : this.props.structData,\n });\n }\n }\n\n render() {\n const { structData, attribute, isLegacy, className } = this.props;\n const { showModal } = this.state;\n return (\n <div className={className}>\n {/* 单结构体并且已经添加过的,添加按钮置灰 */}\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n marginBottom: 20,\n }}\n >\n {\n // istanbul ignore next\n // 单结构体不支持搜索\n Array.isArray(this.props.structData) && (\n <Input.Search\n style={{ width: 300 }}\n onSearch={(value) => {\n this.onSearch(value);\n }}\n enterButton\n />\n )\n }\n <Button\n type=\"link\"\n disabled={\n (isLegacy && !isEmpty(structData)) ||\n (attribute.readonly === \"true\" && !this.props.isCreate)\n }\n onClick={this.handleOpenAddModal}\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.ADD}`)}\n </Button>\n </div>\n\n <AddStructModal\n // 新建的情况下不必给初值,初值为空对象时codeEditor才能正常回填\n structData={{}}\n attribute={attribute as Attribute}\n visible={showModal}\n handleStoreFunction={(formData: any) =>\n this.handleAddStruct(formData)\n }\n handleCancelFunction={this.handleCloseModal}\n />\n <StructTable\n structData={this.state.structData}\n attribute={attribute as Attribute}\n isEditable={\n this.props.attribute.readonly === \"false\" || this.props.isCreate\n }\n isLegacy={isLegacy}\n handleStoreFunction={this.handleEditStruct}\n />\n </div>\n );\n }\n}\n"],"mappings":"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"}
|
|
@@ -232,7 +232,7 @@ export function CmdbInstancesSelectPanel(props, ref) {
|
|
|
232
232
|
}, /*#__PURE__*/React.createElement("a", {
|
|
233
233
|
className: style.addButton,
|
|
234
234
|
style: {
|
|
235
|
-
marginBottom: "
|
|
235
|
+
marginBottom: "20px"
|
|
236
236
|
},
|
|
237
237
|
onClick: openAddInstancesModal
|
|
238
238
|
}, ((_props$addTitle = props.addTitle) !== null && _props$addTitle !== void 0 ? _props$addTitle : props.useModelName) ? i18n.t("".concat(NS_LIBS_CMDB_INSTANCES, ":").concat(K.CHOOSE_INSTANCE_NAME), {
|
|
@@ -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","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","showBindButton","bindButtonDisabled","bindButtonText","bindEvent","addInstancesModalPageSize","searchDisabled","advancedSearchDisabled","ipCopy","showCloseBtn","showSizeChanger","pageSizeOptions","aq","saveFieldsBackend","VIEW_ALL_SELECTED_INSTANCES","textAlign","marginBottom","addButton","addTitle","useModelName","CHOOSE_INSTANCE_NAME","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 showBindButton?: boolean;\n bindButtonDisabled?: boolean;\n bindButtonText?: string;\n bindEvent?: () => void;\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 saveFieldsBackend?: boolean;\n useModelName?: boolean;\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 saveFieldsBackend?: boolean;\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 saveFieldsBackend?: boolean;\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 showBindButton={props.showBindButton}\n bindButtonDisabled={props.bindButtonDisabled}\n bindButtonText={props.bindButtonText}\n bindEvent={props.bindEvent}\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 saveFieldsBackend={props.saveFieldsBackend}\n />\n <InstanceListModal\n objectMap={modelMap}\n objectId={props.objectId}\n visible={allSelectedInstancesModal.visible}\n showBindButton={props.showBindButton}\n bindButtonDisabled={props.bindButtonDisabled}\n bindButtonText={props.bindButtonText}\n bindEvent={props.bindEvent}\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 pageSize={props.addInstancesModalPageSize}\n showSizeChanger={props.showSizeChanger}\n pageSizeOptions={props.pageSizeOptions}\n onCancel={closeAllSelectedInstancesModal}\n saveFieldsBackend={props.saveFieldsBackend}\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 ?? props.useModelName\n ? i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CHOOSE_INSTANCE_NAME}`, {\n name: modelData.name,\n })\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","showBindButton","bindButtonDisabled","bindButtonText","bindEvent","addInstancesModalPageSize","searchDisabled","advancedSearchDisabled","ipCopy","showCloseBtn","showSizeChanger","pageSizeOptions","aq","saveFieldsBackend","VIEW_ALL_SELECTED_INSTANCES","textAlign","marginBottom","addButton","addTitle","useModelName","CHOOSE_INSTANCE_NAME","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 showBindButton?: boolean;\n bindButtonDisabled?: boolean;\n bindButtonText?: string;\n bindEvent?: () => void;\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 saveFieldsBackend?: boolean;\n useModelName?: boolean;\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 saveFieldsBackend?: boolean;\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 saveFieldsBackend?: boolean;\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 showBindButton={props.showBindButton}\n bindButtonDisabled={props.bindButtonDisabled}\n bindButtonText={props.bindButtonText}\n bindEvent={props.bindEvent}\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 saveFieldsBackend={props.saveFieldsBackend}\n />\n <InstanceListModal\n objectMap={modelMap}\n objectId={props.objectId}\n visible={allSelectedInstancesModal.visible}\n showBindButton={props.showBindButton}\n bindButtonDisabled={props.bindButtonDisabled}\n bindButtonText={props.bindButtonText}\n bindEvent={props.bindEvent}\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 pageSize={props.addInstancesModalPageSize}\n showSizeChanger={props.showSizeChanger}\n pageSizeOptions={props.pageSizeOptions}\n onCancel={closeAllSelectedInstancesModal}\n saveFieldsBackend={props.saveFieldsBackend}\n />\n <Spin\n style={{ textAlign: \"left\", marginBottom: \"12px\" }}\n spinning={isEqual(modelMap, {})}\n >\n <a\n className={style.addButton}\n style={{\n marginBottom: \"20px\",\n }}\n onClick={openAddInstancesModal}\n >\n {props.addTitle ?? props.useModelName\n ? i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CHOOSE_INSTANCE_NAME}`, {\n name: modelData.name,\n })\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,7 +1,7 @@
|
|
|
1
1
|
.instanceListToolbar {
|
|
2
2
|
display: flex;
|
|
3
3
|
align-items: center;
|
|
4
|
-
margin-bottom:
|
|
4
|
+
margin-bottom: var(--page-padding-top) !important;
|
|
5
5
|
justify-content: space-between;
|
|
6
6
|
}
|
|
7
7
|
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
rgb(250, 250, 250)
|
|
22
22
|
);
|
|
23
23
|
padding: 8px 16px;
|
|
24
|
-
margin-bottom:
|
|
24
|
+
margin-bottom: var(--page-padding-top) !important;
|
|
25
25
|
border-radius: 6px;
|
|
26
26
|
}
|
|
27
27
|
|
|
@@ -135,7 +135,7 @@ export function AdvancedSearchCondition(props) {
|
|
|
135
135
|
className: styles.advancedSearchWrapper
|
|
136
136
|
}, !(props !== null && props !== void 0 && props.hideDynamicSearch) && /*#__PURE__*/React.createElement("div", {
|
|
137
137
|
style: {
|
|
138
|
-
marginBottom: "
|
|
138
|
+
marginBottom: "var(--page-padding-top)"
|
|
139
139
|
}
|
|
140
140
|
}, /*#__PURE__*/React.createElement(DynamicSearch, {
|
|
141
141
|
fields: state.fields,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdvancedSearchCondition.js","names":["React","useReducer","i18n","K","NS_LIBS_CMDB_INSTANCES","LogicalOperators","DynamicSearch","isEmpty","uniqueId","startsWith","Tag","styles","newKey","fieldIds","aq","key","join","length","reducer","prevState","updatedProperty","formatAqToShow","newAqToShow","forEach","query","aqToShow","Object","entries","map","expressions","newExpressions","Or","And","translateAqConditions","fields","conditions","queries","keys","value","values","attr","find","v","id","contain","t","OPERATOR_CONTAIN_DEFINE","condition","name","replace","curCondition","attrId","valuesStr","push","AdvancedSearchCondition","props","state","setState","undefined","onAdvancedSearch","queriesToShow","fieldToShow","onAdvancedSearchCloseGen","isValueEqual","filterAq","filter","specialQueryHandler","isSpecial","some","formatAqQuery","querys","isAq","isKey","isStart","filteredSubQueries","isInstanceFilterForm","advancedSearchWrapper","hideDynamicSearch","marginBottom","hideSearchConditions","searchConditions","CURRENT_FILTER_REQUIREMENTS"],"sources":["../../../src/instance-list-table/AdvancedSearchCondition.tsx"],"sourcesContent":["import React, { useReducer } from \"react\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport { Query, LogicalOperators } from \"@next-libs/cmdb-utils\";\nimport { DynamicSearch } from \"./DynamicSearch\";\nimport { isEmpty, uniqueId, startsWith } from \"lodash\";\nimport { Tag } from \"antd\";\nimport styles from \"./AdvancedSearchCondition.module.css\";\nexport interface AdvancedSearchConditionProps {\n fields: Record<string, any>[];\n onAdvancedSearch?(queries: Query[]): void;\n isInstanceFilterForm?: boolean;\n aq?: Query[];\n aqToShow?: Query[];\n hideDynamicSearch?: boolean;\n hideSearchConditions?: boolean;\n}\n\ninterface AdvancedSearchConditionState {\n aq: Query[];\n aqToShow?: Query[];\n fieldIds: string[];\n fieldToShow?: Record<string, any[]>[];\n fields?: Record<string, any>[];\n}\n\n/* istanbul ignore next */\nfunction newKey(fieldIds: string[], aq: Query[]): string {\n let key = \"\";\n if (!isEmpty(fieldIds)) {\n key += fieldIds.join(\"-\");\n }\n if (!isEmpty(aq)) {\n key += `-${aq.length}`;\n }\n return key;\n}\n/* istanbul ignore next */\nconst reducer = (\n prevState: AdvancedSearchConditionState,\n updatedProperty: Partial<AdvancedSearchConditionState>\n): AdvancedSearchConditionState => {\n return {\n ...prevState,\n ...updatedProperty,\n };\n};\n\nexport const formatAqToShow = (aq: Query[]) => {\n let newAqToShow: any[] = [];\n if (aq) {\n aq.forEach((query) => {\n const aqToShow = Object.entries(query).map(([key, expressions]) => {\n let newExpressions: any[] = [];\n if (key === LogicalOperators.Or || key === LogicalOperators.And) {\n newExpressions = [...newExpressions, ...(expressions as Query[])];\n\n return { [key]: newExpressions };\n } else {\n return query;\n }\n });\n newAqToShow = [...newAqToShow, ...aqToShow];\n });\n return newAqToShow;\n }\n return newAqToShow;\n};\n\nfunction translateAqConditions(\n aq: Query[],\n fields: any[]\n): { attrId: string; condition: string; valuesStr: string }[] {\n const conditions: {\n attrId: string;\n condition: string;\n valuesStr: string;\n }[] = [];\n if (!isEmpty(aq)) {\n for (const query of aq) {\n let queries: Query[] = [query];\n if (\n Object.keys(query)[0] === LogicalOperators.Or ||\n Object.keys(query)[0] === LogicalOperators.And\n ) {\n queries = query[Object.keys(query)[0]] as Query[];\n }\n queries.forEach((query) => {\n const key = Object.keys(query)[0];\n const value = Object.values(query)[0];\n const attr = fields.find((v) => v.id === key);\n const contain = i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.OPERATOR_CONTAIN_DEFINE}`\n );\n const condition = `${attr?.name}:${contain}\"${Object.values(\n value\n )[0].replace(/%/g, \"\")}\"`;\n const curCondition = {\n attrId: key,\n condition,\n valuesStr: Object.values(value)[0],\n };\n conditions.push(curCondition);\n });\n }\n }\n return conditions;\n}\n\nexport function AdvancedSearchCondition(\n props: AdvancedSearchConditionProps\n): React.ReactElement {\n const [state, setState] = useReducer(reducer, undefined, () => ({\n aq: formatAqToShow(props.aq),\n aqToShow: props.aqToShow || formatAqToShow(props.aq),\n fieldIds: (props.fields || []).map((v) => v.id),\n fields: props.fields || [],\n }));\n\n const onAdvancedSearch = (\n queries: Query[],\n queriesToShow: Query[],\n fieldToShow: Record<string, any[]>[]\n ) => {\n setState({\n aq: queries,\n fieldToShow,\n aqToShow: queriesToShow,\n });\n props.onAdvancedSearch?.(queries);\n };\n\n /* istanbul ignore next */\n const onAdvancedSearchCloseGen = (attrId: string, valuesStr: string) => {\n return () => {\n const queries: Query[] = [];\n const queriesToShow: Query[] = [];\n const isValueEqual = (query: any) =>\n query[attrId]\n ? Object.values(query[attrId]).join(\" \") !== valuesStr\n : false;\n const filterAq = (queries: any[]) =>\n queries.filter((v: any) => isValueEqual(v));\n const specialQueryHandler = (query: any, key: any, queries: Query[]) => {\n // $exists $gte $lte 针对为空,不为空,时间范围特殊处理\n const isSpecial = Object.keys(query[key] as Query[]).some(\n (v) => v === \"$exists\" || v === \"$gte\" || v === \"$lte\"\n );\n if (isSpecial) {\n return;\n }\n queries.push(query);\n };\n const formatAqQuery = (\n querys: any[],\n queries: Query[],\n isAq: boolean\n ) => {\n querys.forEach((query) => {\n const key = Object.keys(query)[0];\n const isKey = key !== attrId;\n const isStart = isAq\n ? isKey && !startsWith(attrId, `${key}.`)\n : isKey;\n if (\n (key === \"$or\" || key === \"$and\") &&\n Object.keys((query[key] as Query[])[0])[0] === attrId\n ) {\n const filteredSubQueries = filterAq(query[key] as Query[]);\n if (filteredSubQueries.length > 0) {\n queries.push({\n [key]: filteredSubQueries,\n });\n }\n } else if (isStart) {\n queries.push(query);\n } else if (\n props.isInstanceFilterForm &&\n key === attrId &&\n isValueEqual(query)\n ) {\n specialQueryHandler(query, key, queries);\n }\n });\n };\n formatAqQuery(state.aq, queries, true);\n formatAqQuery(state.aqToShow, queriesToShow, false);\n setState({\n aq: queries,\n aqToShow: queriesToShow,\n });\n props.onAdvancedSearch?.(queries);\n };\n };\n\n const conditions = translateAqConditions(state.aqToShow, state.fields);\n return (\n <div className={styles.advancedSearchWrapper}>\n {!props?.hideDynamicSearch && (\n <div style={{ marginBottom: \"18px\" }}>\n <DynamicSearch\n fields={state.fields}\n onSearch={onAdvancedSearch}\n key={newKey(state.fieldIds, state.aq)}\n q={state.aqToShow}\n fieldToShow={state.fieldToShow}\n />\n </div>\n )}\n {!props.hideSearchConditions && !isEmpty(conditions) && (\n <div className={styles.searchConditions}>\n <span>\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.CURRENT_FILTER_REQUIREMENTS}`\n )}\n </span>\n {conditions.map((condition) => (\n <Tag\n key={`${condition.attrId}${condition.valuesStr}-${uniqueId()}`}\n closable\n onClose={onAdvancedSearchCloseGen(\n condition.attrId,\n condition.valuesStr\n )}\n >\n {condition.condition}\n </Tag>\n ))}\n </div>\n )}\n </div>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AdvancedSearchCondition.js","names":["React","useReducer","i18n","K","NS_LIBS_CMDB_INSTANCES","LogicalOperators","DynamicSearch","isEmpty","uniqueId","startsWith","Tag","styles","newKey","fieldIds","aq","key","join","length","reducer","prevState","updatedProperty","formatAqToShow","newAqToShow","forEach","query","aqToShow","Object","entries","map","expressions","newExpressions","Or","And","translateAqConditions","fields","conditions","queries","keys","value","values","attr","find","v","id","contain","t","OPERATOR_CONTAIN_DEFINE","condition","name","replace","curCondition","attrId","valuesStr","push","AdvancedSearchCondition","props","state","setState","undefined","onAdvancedSearch","queriesToShow","fieldToShow","onAdvancedSearchCloseGen","isValueEqual","filterAq","filter","specialQueryHandler","isSpecial","some","formatAqQuery","querys","isAq","isKey","isStart","filteredSubQueries","isInstanceFilterForm","advancedSearchWrapper","hideDynamicSearch","marginBottom","hideSearchConditions","searchConditions","CURRENT_FILTER_REQUIREMENTS"],"sources":["../../../src/instance-list-table/AdvancedSearchCondition.tsx"],"sourcesContent":["import React, { useReducer } from \"react\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport { Query, LogicalOperators } from \"@next-libs/cmdb-utils\";\nimport { DynamicSearch } from \"./DynamicSearch\";\nimport { isEmpty, uniqueId, startsWith } from \"lodash\";\nimport { Tag } from \"antd\";\nimport styles from \"./AdvancedSearchCondition.module.css\";\nexport interface AdvancedSearchConditionProps {\n fields: Record<string, any>[];\n onAdvancedSearch?(queries: Query[]): void;\n isInstanceFilterForm?: boolean;\n aq?: Query[];\n aqToShow?: Query[];\n hideDynamicSearch?: boolean;\n hideSearchConditions?: boolean;\n}\n\ninterface AdvancedSearchConditionState {\n aq: Query[];\n aqToShow?: Query[];\n fieldIds: string[];\n fieldToShow?: Record<string, any[]>[];\n fields?: Record<string, any>[];\n}\n\n/* istanbul ignore next */\nfunction newKey(fieldIds: string[], aq: Query[]): string {\n let key = \"\";\n if (!isEmpty(fieldIds)) {\n key += fieldIds.join(\"-\");\n }\n if (!isEmpty(aq)) {\n key += `-${aq.length}`;\n }\n return key;\n}\n/* istanbul ignore next */\nconst reducer = (\n prevState: AdvancedSearchConditionState,\n updatedProperty: Partial<AdvancedSearchConditionState>\n): AdvancedSearchConditionState => {\n return {\n ...prevState,\n ...updatedProperty,\n };\n};\n\nexport const formatAqToShow = (aq: Query[]) => {\n let newAqToShow: any[] = [];\n if (aq) {\n aq.forEach((query) => {\n const aqToShow = Object.entries(query).map(([key, expressions]) => {\n let newExpressions: any[] = [];\n if (key === LogicalOperators.Or || key === LogicalOperators.And) {\n newExpressions = [...newExpressions, ...(expressions as Query[])];\n\n return { [key]: newExpressions };\n } else {\n return query;\n }\n });\n newAqToShow = [...newAqToShow, ...aqToShow];\n });\n return newAqToShow;\n }\n return newAqToShow;\n};\n\nfunction translateAqConditions(\n aq: Query[],\n fields: any[]\n): { attrId: string; condition: string; valuesStr: string }[] {\n const conditions: {\n attrId: string;\n condition: string;\n valuesStr: string;\n }[] = [];\n if (!isEmpty(aq)) {\n for (const query of aq) {\n let queries: Query[] = [query];\n if (\n Object.keys(query)[0] === LogicalOperators.Or ||\n Object.keys(query)[0] === LogicalOperators.And\n ) {\n queries = query[Object.keys(query)[0]] as Query[];\n }\n queries.forEach((query) => {\n const key = Object.keys(query)[0];\n const value = Object.values(query)[0];\n const attr = fields.find((v) => v.id === key);\n const contain = i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.OPERATOR_CONTAIN_DEFINE}`\n );\n const condition = `${attr?.name}:${contain}\"${Object.values(\n value\n )[0].replace(/%/g, \"\")}\"`;\n const curCondition = {\n attrId: key,\n condition,\n valuesStr: Object.values(value)[0],\n };\n conditions.push(curCondition);\n });\n }\n }\n return conditions;\n}\n\nexport function AdvancedSearchCondition(\n props: AdvancedSearchConditionProps\n): React.ReactElement {\n const [state, setState] = useReducer(reducer, undefined, () => ({\n aq: formatAqToShow(props.aq),\n aqToShow: props.aqToShow || formatAqToShow(props.aq),\n fieldIds: (props.fields || []).map((v) => v.id),\n fields: props.fields || [],\n }));\n\n const onAdvancedSearch = (\n queries: Query[],\n queriesToShow: Query[],\n fieldToShow: Record<string, any[]>[]\n ) => {\n setState({\n aq: queries,\n fieldToShow,\n aqToShow: queriesToShow,\n });\n props.onAdvancedSearch?.(queries);\n };\n\n /* istanbul ignore next */\n const onAdvancedSearchCloseGen = (attrId: string, valuesStr: string) => {\n return () => {\n const queries: Query[] = [];\n const queriesToShow: Query[] = [];\n const isValueEqual = (query: any) =>\n query[attrId]\n ? Object.values(query[attrId]).join(\" \") !== valuesStr\n : false;\n const filterAq = (queries: any[]) =>\n queries.filter((v: any) => isValueEqual(v));\n const specialQueryHandler = (query: any, key: any, queries: Query[]) => {\n // $exists $gte $lte 针对为空,不为空,时间范围特殊处理\n const isSpecial = Object.keys(query[key] as Query[]).some(\n (v) => v === \"$exists\" || v === \"$gte\" || v === \"$lte\"\n );\n if (isSpecial) {\n return;\n }\n queries.push(query);\n };\n const formatAqQuery = (\n querys: any[],\n queries: Query[],\n isAq: boolean\n ) => {\n querys.forEach((query) => {\n const key = Object.keys(query)[0];\n const isKey = key !== attrId;\n const isStart = isAq\n ? isKey && !startsWith(attrId, `${key}.`)\n : isKey;\n if (\n (key === \"$or\" || key === \"$and\") &&\n Object.keys((query[key] as Query[])[0])[0] === attrId\n ) {\n const filteredSubQueries = filterAq(query[key] as Query[]);\n if (filteredSubQueries.length > 0) {\n queries.push({\n [key]: filteredSubQueries,\n });\n }\n } else if (isStart) {\n queries.push(query);\n } else if (\n props.isInstanceFilterForm &&\n key === attrId &&\n isValueEqual(query)\n ) {\n specialQueryHandler(query, key, queries);\n }\n });\n };\n formatAqQuery(state.aq, queries, true);\n formatAqQuery(state.aqToShow, queriesToShow, false);\n setState({\n aq: queries,\n aqToShow: queriesToShow,\n });\n props.onAdvancedSearch?.(queries);\n };\n };\n\n const conditions = translateAqConditions(state.aqToShow, state.fields);\n return (\n <div className={styles.advancedSearchWrapper}>\n {!props?.hideDynamicSearch && (\n <div style={{ marginBottom: \"var(--page-padding-top)\" }}>\n <DynamicSearch\n fields={state.fields}\n onSearch={onAdvancedSearch}\n key={newKey(state.fieldIds, state.aq)}\n q={state.aqToShow}\n fieldToShow={state.fieldToShow}\n />\n </div>\n )}\n {!props.hideSearchConditions && !isEmpty(conditions) && (\n <div className={styles.searchConditions}>\n <span>\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.CURRENT_FILTER_REQUIREMENTS}`\n )}\n </span>\n {conditions.map((condition) => (\n <Tag\n key={`${condition.attrId}${condition.valuesStr}-${uniqueId()}`}\n closable\n onClose={onAdvancedSearchCloseGen(\n condition.attrId,\n condition.valuesStr\n )}\n >\n {condition.condition}\n </Tag>\n ))}\n </div>\n )}\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DisplaySettingsModal.js","names":["Button","Modal","React","useMemo","useState","useTranslation","K","NS_LIBS_CMDB_INSTANCES","DisplaySettings","DisplaySettingsModal","props","visible","objectId","modelData","currentFields","defaultFields","extraDisabledField","extraDisabledFields","onOk","onCancel","t","nextFields","setNextFields","count","filter","v","length","handleReset","fields","slice","isReset","handleCancel","DISPLAY_SETTINGS","display","RESTORE_DEFAULT","marginLeft","marginRight","CANCEL","CONFIRM"],"sources":["../../../src/instance-list-table/DisplaySettingsModal.tsx"],"sourcesContent":["import { Button, Modal } from \"antd\";\nimport React, { useMemo, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport { DisplaySettings, DisplaySettingsProps } from \"./DisplaySettings\";\n\nexport interface DisplaySettingsModalData {\n fields: string[];\n isReset?: boolean;\n}\n\nexport interface DisplaySettingsModalProps extends DisplaySettingsProps {\n visible?: boolean;\n defaultFields?: string[];\n onOk?(data: DisplaySettingsModalData): void;\n onCancel?(): void;\n}\n\nexport function DisplaySettingsModal(\n props: DisplaySettingsModalProps\n): React.ReactElement {\n const {\n visible,\n objectId,\n modelData,\n currentFields,\n defaultFields,\n extraDisabledField,\n extraDisabledFields,\n onOk,\n onCancel,\n } = props;\n const { t } = useTranslation(NS_LIBS_CMDB_INSTANCES);\n const [nextFields, setNextFields] = useState<string[]>(currentFields);\n const count = useMemo(\n () => nextFields?.filter((v) => v !== \"_object_id\").length,\n [nextFields]\n );\n\n const handleReset = (): void => {\n const fields = defaultFields ? defaultFields.slice() : [];\n\n setNextFields(fields);\n onOk?.({ fields, isReset: true });\n };\n\n const handleCancel = (): void => {\n setNextFields(currentFields ? [...currentFields] : []);\n onCancel?.();\n };\n\n return (\n <Modal\n title={t(K.DISPLAY_SETTINGS)}\n visible={visible}\n footer={\n <div style={{ display: \"flex\" }}>\n <div>\n <Button\n type=\"default\"\n onClick={handleReset}\n data-testid=\"reset-button\"\n >\n {t(K.RESTORE_DEFAULT)}\n </Button>\n </div>\n <div style={{ marginLeft: \"auto\" }}>\n <Button\n type=\"
|
|
1
|
+
{"version":3,"file":"DisplaySettingsModal.js","names":["Button","Modal","React","useMemo","useState","useTranslation","K","NS_LIBS_CMDB_INSTANCES","DisplaySettings","DisplaySettingsModal","props","visible","objectId","modelData","currentFields","defaultFields","extraDisabledField","extraDisabledFields","onOk","onCancel","t","nextFields","setNextFields","count","filter","v","length","handleReset","fields","slice","isReset","handleCancel","DISPLAY_SETTINGS","display","RESTORE_DEFAULT","marginLeft","marginRight","CANCEL","CONFIRM"],"sources":["../../../src/instance-list-table/DisplaySettingsModal.tsx"],"sourcesContent":["import { Button, Modal } from \"antd\";\nimport React, { useMemo, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport { DisplaySettings, DisplaySettingsProps } from \"./DisplaySettings\";\n\nexport interface DisplaySettingsModalData {\n fields: string[];\n isReset?: boolean;\n}\n\nexport interface DisplaySettingsModalProps extends DisplaySettingsProps {\n visible?: boolean;\n defaultFields?: string[];\n onOk?(data: DisplaySettingsModalData): void;\n onCancel?(): void;\n}\n\nexport function DisplaySettingsModal(\n props: DisplaySettingsModalProps\n): React.ReactElement {\n const {\n visible,\n objectId,\n modelData,\n currentFields,\n defaultFields,\n extraDisabledField,\n extraDisabledFields,\n onOk,\n onCancel,\n } = props;\n const { t } = useTranslation(NS_LIBS_CMDB_INSTANCES);\n const [nextFields, setNextFields] = useState<string[]>(currentFields);\n const count = useMemo(\n () => nextFields?.filter((v) => v !== \"_object_id\").length,\n [nextFields]\n );\n\n const handleReset = (): void => {\n const fields = defaultFields ? defaultFields.slice() : [];\n\n setNextFields(fields);\n onOk?.({ fields, isReset: true });\n };\n\n const handleCancel = (): void => {\n setNextFields(currentFields ? [...currentFields] : []);\n onCancel?.();\n };\n\n return (\n <Modal\n title={t(K.DISPLAY_SETTINGS)}\n visible={visible}\n footer={\n <div style={{ display: \"flex\" }}>\n <div>\n <Button\n type=\"default\"\n onClick={handleReset}\n data-testid=\"reset-button\"\n >\n {t(K.RESTORE_DEFAULT)}\n </Button>\n </div>\n <div style={{ marginLeft: \"auto\" }}>\n <Button\n type=\"text\"\n onClick={handleCancel}\n style={{ marginRight: 10 }}\n data-testid=\"cancel-button\"\n >\n {t(K.CANCEL)}\n </Button>\n <Button\n type=\"primary\"\n onClick={() => props?.onOk({ fields: nextFields })}\n disabled={count === 0}\n data-testid=\"ok-button\"\n >\n {t(K.CONFIRM)}\n </Button>\n </div>\n </div>\n }\n onCancel={handleCancel}\n destroyOnClose={true}\n width={780}\n centered={true}\n >\n <DisplaySettings\n objectId={objectId}\n modelData={modelData}\n currentFields={nextFields}\n extraDisabledField={extraDisabledField}\n extraDisabledFields={extraDisabledFields}\n onChange={(fields) => setNextFields(fields)}\n />\n </Modal>\n );\n}\n"],"mappings":"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"}
|
|
@@ -25,13 +25,20 @@ export class ModelAttributeForm extends Component {
|
|
|
25
25
|
return (field === null || field === void 0 ? void 0 : (_field$tag = field.tag) === null || _field$tag === void 0 ? void 0 : _field$tag[0]) || (field === null || field === void 0 ? void 0 : (_left_tags = field.left_tags) === null || _left_tags === void 0 ? void 0 : _left_tags[0]) || (field !== null && field !== void 0 && field.__isRelation ? "" : DEFAULT_ATTRIBUTE_TAG);
|
|
26
26
|
}
|
|
27
27
|
constructor(props) {
|
|
28
|
-
var _this;
|
|
28
|
+
var _document$querySelect, _this;
|
|
29
29
|
super(props);
|
|
30
30
|
_this = this;
|
|
31
31
|
_defineProperty(this, "modelMap", {});
|
|
32
32
|
_defineProperty(this, "modelData", null);
|
|
33
33
|
_defineProperty(this, "cardRectResize", void 0);
|
|
34
|
-
_defineProperty(this, "formItemProps", {
|
|
34
|
+
_defineProperty(this, "formItemProps", ((_document$querySelect = document.querySelector("html")) === null || _document$querySelect === void 0 ? void 0 : _document$querySelect.getAttribute("data-ui")) === "v8-2" ? {
|
|
35
|
+
labelCol: {
|
|
36
|
+
span: 24
|
|
37
|
+
},
|
|
38
|
+
wrapperCol: {
|
|
39
|
+
span: 24
|
|
40
|
+
}
|
|
41
|
+
} : {
|
|
35
42
|
labelCol: {
|
|
36
43
|
span: 6
|
|
37
44
|
},
|
|
@@ -46,14 +53,14 @@ export class ModelAttributeForm extends Component {
|
|
|
46
53
|
});
|
|
47
54
|
});
|
|
48
55
|
_defineProperty(this, "handleResize", () => {
|
|
49
|
-
var _this$props$cardRect2;
|
|
56
|
+
var _this$props$cardRect2, _document$querySelect2;
|
|
50
57
|
var cardRectData = (_this$props$cardRect2 = this.props.cardRect) === null || _this$props$cardRect2 === void 0 ? void 0 : _this$props$cardRect2.getBoundingClientRect();
|
|
51
58
|
var heightDifferenceBetweenCardRectAndViewPort = (cardRectData === null || cardRectData === void 0 ? void 0 : cardRectData.top) > 0 ? (cardRectData === null || cardRectData === void 0 ? void 0 : cardRectData.bottom) - window.innerHeight : (cardRectData === null || cardRectData === void 0 ? void 0 : cardRectData.height) - window.innerHeight;
|
|
52
59
|
if (heightDifferenceBetweenCardRectAndViewPort < 0 && !!Object.keys(this.state.fixedStyle).length) {
|
|
53
60
|
this.setState({
|
|
54
61
|
fixedStyle: {}
|
|
55
62
|
});
|
|
56
|
-
} else if (heightDifferenceBetweenCardRectAndViewPort > 0) {
|
|
63
|
+
} else if (heightDifferenceBetweenCardRectAndViewPort > 0 || ((_document$querySelect2 = document.querySelector("html")) === null || _document$querySelect2 === void 0 ? void 0 : _document$querySelect2.getAttribute("data-ui")) === "v8-2") {
|
|
57
64
|
this.resizeUpdate();
|
|
58
65
|
}
|
|
59
66
|
});
|
|
@@ -518,9 +525,7 @@ export class ModelAttributeForm extends Component {
|
|
|
518
525
|
var submitContainer = /*#__PURE__*/React.createElement("div", {
|
|
519
526
|
className: styles.generalFormFooter,
|
|
520
527
|
style: _objectSpread(_objectSpread({}, this.state.fixedStyle), {}, {
|
|
521
|
-
borderTop: "none"
|
|
522
|
-
paddingTop: "16px",
|
|
523
|
-
paddingLeft: "20px"
|
|
528
|
+
borderTop: "none"
|
|
524
529
|
})
|
|
525
530
|
}, /*#__PURE__*/React.createElement("div", {
|
|
526
531
|
className: "ant-collapse-content-box"
|