@next-libs/cmdb-instances 7.21.2 → 7.21.4
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/attribute-form-control-url/AttributeFormControlUrl.js.map +1 -1
- package/dist/cjs/cmdb-instances-input-form/CmdbInstancesInputFormItem.js +1 -3
- package/dist/cjs/cmdb-instances-input-form/CmdbInstancesInputFormItem.js.map +1 -1
- package/dist/cjs/cmdb-instances-select-panel/CmdbInstancesSelectPanel.js.map +1 -1
- package/dist/cjs/cmdb-url-link/CmdbUrlLink.js.map +1 -1
- package/dist/cjs/components/cmdb-upload/index.js.map +1 -1
- package/dist/cjs/components/index.js.map +1 -1
- package/dist/cjs/components/instance-format/index.js.map +1 -1
- package/dist/cjs/components/user-or-user-group-select/UserOrUserGroupSelect.js +1 -2
- package/dist/cjs/components/user-or-user-group-select/UserOrUserGroupSelect.js.map +1 -1
- package/dist/cjs/constants.js +2 -4
- package/dist/cjs/constants.js.map +1 -1
- package/dist/cjs/data-providers/fetchCmdbInstanceDetail.js.map +1 -1
- package/dist/cjs/data-providers/fetchCmdbInstanceSearch.js.map +1 -1
- package/dist/cjs/data-providers/fetchCmdbObjectDetail.js.map +1 -1
- package/dist/cjs/data-providers/fetchCmdbObjectList.js.map +1 -1
- package/dist/cjs/data-providers/fetchCmdbObjectRef.js.map +1 -1
- package/dist/cjs/data-providers/index.js.map +1 -1
- package/dist/cjs/float-display-brick/FloatDisplayBrick.js.map +1 -1
- package/dist/cjs/i18n/constants.js +2 -4
- package/dist/cjs/i18n/constants.js.map +1 -1
- package/dist/cjs/i18n/index.js.map +1 -1
- package/dist/cjs/i18n/locales/en.js +1 -2
- package/dist/cjs/i18n/locales/en.js.map +1 -1
- package/dist/cjs/i18n/locales/zh.js +1 -2
- package/dist/cjs/i18n/locales/zh.js.map +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/instance-attribute-form/InstanceAttributeForm.js +1 -2
- package/dist/cjs/instance-attribute-form/InstanceAttributeForm.js.map +1 -1
- package/dist/cjs/instance-detail/InstanceDetail.js +1 -2
- package/dist/cjs/instance-detail/InstanceDetail.js.map +1 -1
- package/dist/cjs/instance-detail/components/instance-relation-field-display/constants.js +1 -2
- package/dist/cjs/instance-detail/components/instance-relation-field-display/constants.js.map +1 -1
- package/dist/cjs/instance-detail/components/instance-relation-field-display/instance-relation-field-display.js.map +1 -1
- package/dist/cjs/instance-detail/components/instance-relation-table-show/instance-relation-table-show.js.map +1 -1
- package/dist/cjs/instance-detail/components/instances-attachment-display/instances-attachment-display.js.map +1 -1
- package/dist/cjs/instance-detail/constants/index.js +4 -8
- package/dist/cjs/instance-detail/constants/index.js.map +1 -1
- package/dist/cjs/instance-list/FilterInstanceSource.js +1 -2
- package/dist/cjs/instance-list/FilterInstanceSource.js.map +1 -1
- package/dist/cjs/instance-list/IconButton.js.map +1 -1
- package/dist/cjs/instance-list/InstanceList.js.map +1 -1
- package/dist/cjs/instance-list/constants.js +7 -14
- package/dist/cjs/instance-list/constants.js.map +1 -1
- package/dist/cjs/instance-list-modal/InstanceListModal.js.map +1 -1
- package/dist/cjs/instance-list-table/AdvancedSearch.js +2 -4
- package/dist/cjs/instance-list-table/AdvancedSearch.js.map +1 -1
- package/dist/cjs/instance-list-table/AdvancedSearchCondition.js.map +1 -1
- package/dist/cjs/instance-list-table/DisplaySettings.js.map +1 -1
- package/dist/cjs/instance-list-table/DisplaySettingsModal.js.map +1 -1
- package/dist/cjs/instance-list-table/DynamicSearch.js +1 -2
- package/dist/cjs/instance-list-table/DynamicSearch.js.map +1 -1
- package/dist/cjs/instance-list-table/InstanceListTable.js +2 -2
- package/dist/cjs/instance-list-table/InstanceListTable.js.map +1 -1
- package/dist/cjs/instance-list-table/MoreButtonsContainer.js.map +1 -1
- package/dist/cjs/instance-list-table/constants.js +7 -14
- package/dist/cjs/instance-list-table/constants.js.map +1 -1
- package/dist/cjs/instance-list-table/data-providers/fetchCmdbInstanceAggregateCount.js.map +1 -1
- package/dist/cjs/instance-list-table/data-providers/fetchCmdbInstanceCount.js.map +1 -1
- package/dist/cjs/instance-list-table/data-providers/fetchCmdbInstanceDetail.js.map +1 -1
- package/dist/cjs/instance-list-table/data-providers/fetchCmdbObjectDetail.js.map +1 -1
- package/dist/cjs/instance-list-table/data-providers/fetchPermRoleList.js.map +1 -1
- package/dist/cjs/instance-list-table/data-providers/fetchPermissionList.js.map +1 -1
- package/dist/cjs/instance-list-table/data-providers/getDefaultValueTemplate.js.map +1 -1
- package/dist/cjs/instance-list-table/data-providers/index.js.map +1 -1
- package/dist/cjs/instance-list-table/data-providers/searchCmdbInstances.js.map +1 -1
- package/dist/cjs/instance-list-table/index.js.map +1 -1
- package/dist/cjs/instance-list-table/interfaces.js.map +1 -1
- package/dist/cjs/instance-list-table/utils.js +1 -2
- package/dist/cjs/instance-list-table/utils.js.map +1 -1
- package/dist/cjs/json-display-brick/JsonDisplayBrick.js.map +1 -1
- package/dist/cjs/model-attribute-form/ModelAttributeForm.js +3 -2
- package/dist/cjs/model-attribute-form/ModelAttributeForm.js.map +1 -1
- package/dist/cjs/model-attribute-form/constants.js +1 -2
- package/dist/cjs/model-attribute-form/constants.js.map +1 -1
- package/dist/cjs/model-attribute-form-control/ModelAttributeFormControl.js +21 -27
- package/dist/cjs/model-attribute-form-control/ModelAttributeFormControl.js.map +1 -1
- package/dist/cjs/model-relation-form/ModelRelationForm.js.map +1 -1
- package/dist/cjs/processors.js +3 -4
- package/dist/cjs/processors.js.map +1 -1
- package/dist/cjs/struct-components/AddStruct.js +4 -3
- package/dist/cjs/struct-components/AddStruct.js.map +1 -1
- package/dist/cjs/struct-components/AddStructModal.js.map +1 -1
- package/dist/cjs/struct-components/StructTable.js +1 -0
- package/dist/cjs/struct-components/StructTable.js.map +1 -1
- package/dist/cjs/struct-components/index.js.map +1 -1
- package/dist/cjs/struct-components/interfaces.js +1 -2
- package/dist/cjs/struct-components/interfaces.js.map +1 -1
- package/dist/cjs/struct-components/mockData.js +5 -10
- package/dist/cjs/struct-components/mockData.js.map +1 -1
- package/dist/cjs/xml-display-brick/XmlDisplayBrick.js.map +1 -1
- package/dist/esm/attribute-form-control-url/AttributeFormControlUrl.js.map +1 -1
- package/dist/esm/cmdb-instances-input-form/CmdbInstancesInputFormItem.js +0 -1
- package/dist/esm/cmdb-instances-input-form/CmdbInstancesInputFormItem.js.map +1 -1
- package/dist/esm/cmdb-instances-select-panel/CmdbInstancesSelectPanel.js.map +1 -1
- package/dist/esm/cmdb-url-link/CmdbUrlLink.js.map +1 -1
- package/dist/esm/components/cmdb-upload/index.js.map +1 -1
- package/dist/esm/components/index.js.map +1 -1
- package/dist/esm/components/instance-format/index.js.map +1 -1
- package/dist/esm/components/user-or-user-group-select/UserOrUserGroupSelect.js.map +1 -1
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/data-providers/fetchCmdbInstanceDetail.js.map +1 -1
- package/dist/esm/data-providers/fetchCmdbInstanceSearch.js.map +1 -1
- package/dist/esm/data-providers/fetchCmdbObjectDetail.js.map +1 -1
- package/dist/esm/data-providers/fetchCmdbObjectList.js.map +1 -1
- package/dist/esm/data-providers/fetchCmdbObjectRef.js.map +1 -1
- package/dist/esm/data-providers/index.js.map +1 -1
- package/dist/esm/float-display-brick/FloatDisplayBrick.js.map +1 -1
- package/dist/esm/i18n/constants.js.map +1 -1
- package/dist/esm/i18n/index.js.map +1 -1
- package/dist/esm/i18n/locales/en.js.map +1 -1
- package/dist/esm/i18n/locales/zh.js.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/instance-attribute-form/InstanceAttributeForm.js.map +1 -1
- package/dist/esm/instance-detail/InstanceDetail.js.map +1 -1
- package/dist/esm/instance-detail/components/instance-relation-field-display/constants.js.map +1 -1
- package/dist/esm/instance-detail/components/instance-relation-field-display/instance-relation-field-display.js.map +1 -1
- package/dist/esm/instance-detail/components/instance-relation-table-show/instance-relation-table-show.js.map +1 -1
- package/dist/esm/instance-detail/components/instances-attachment-display/instances-attachment-display.js +0 -1
- package/dist/esm/instance-detail/components/instances-attachment-display/instances-attachment-display.js.map +1 -1
- package/dist/esm/instance-detail/constants/index.js.map +1 -1
- package/dist/esm/instance-list/FilterInstanceSource.js.map +1 -1
- package/dist/esm/instance-list/IconButton.js.map +1 -1
- package/dist/esm/instance-list/InstanceList.js +10 -10
- package/dist/esm/instance-list/InstanceList.js.map +1 -1
- package/dist/esm/instance-list/constants.js.map +1 -1
- package/dist/esm/instance-list-modal/InstanceListModal.js.map +1 -1
- package/dist/esm/instance-list-table/AdvancedSearch.js.map +1 -1
- package/dist/esm/instance-list-table/AdvancedSearchCondition.js.map +1 -1
- package/dist/esm/instance-list-table/DisplaySettings.js.map +1 -1
- package/dist/esm/instance-list-table/DisplaySettingsModal.js.map +1 -1
- package/dist/esm/instance-list-table/DynamicSearch.js.map +1 -1
- package/dist/esm/instance-list-table/InstanceListTable.js +4 -4
- package/dist/esm/instance-list-table/InstanceListTable.js.map +1 -1
- package/dist/esm/instance-list-table/MoreButtonsContainer.js.map +1 -1
- package/dist/esm/instance-list-table/constants.js.map +1 -1
- package/dist/esm/instance-list-table/data-providers/fetchCmdbInstanceAggregateCount.js.map +1 -1
- package/dist/esm/instance-list-table/data-providers/fetchCmdbInstanceCount.js.map +1 -1
- package/dist/esm/instance-list-table/data-providers/fetchCmdbInstanceDetail.js.map +1 -1
- package/dist/esm/instance-list-table/data-providers/fetchCmdbObjectDetail.js.map +1 -1
- package/dist/esm/instance-list-table/data-providers/fetchPermRoleList.js.map +1 -1
- package/dist/esm/instance-list-table/data-providers/fetchPermissionList.js.map +1 -1
- package/dist/esm/instance-list-table/data-providers/getDefaultValueTemplate.js.map +1 -1
- package/dist/esm/instance-list-table/data-providers/index.js.map +1 -1
- package/dist/esm/instance-list-table/data-providers/searchCmdbInstances.js.map +1 -1
- package/dist/esm/instance-list-table/index.js.map +1 -1
- package/dist/esm/instance-list-table/interfaces.js.map +1 -1
- package/dist/esm/instance-list-table/utils.js.map +1 -1
- package/dist/esm/json-display-brick/JsonDisplayBrick.js.map +1 -1
- package/dist/esm/model-attribute-form/ModelAttributeForm.js +2 -0
- package/dist/esm/model-attribute-form/ModelAttributeForm.js.map +1 -1
- package/dist/esm/model-attribute-form/constants.js.map +1 -1
- package/dist/esm/model-attribute-form-control/ModelAttributeFormControl.js +17 -19
- package/dist/esm/model-attribute-form-control/ModelAttributeFormControl.js.map +1 -1
- package/dist/esm/model-relation-form/ModelRelationForm.js.map +1 -1
- package/dist/esm/processors.js.map +1 -1
- package/dist/esm/struct-components/AddStruct.js +4 -3
- package/dist/esm/struct-components/AddStruct.js.map +1 -1
- package/dist/esm/struct-components/AddStructModal.js.map +1 -1
- package/dist/esm/struct-components/StructTable.js +1 -0
- package/dist/esm/struct-components/StructTable.js.map +1 -1
- package/dist/esm/struct-components/index.js.map +1 -1
- package/dist/esm/struct-components/interfaces.js.map +1 -1
- package/dist/esm/struct-components/mockData.js.map +1 -1
- package/dist/esm/xml-display-brick/XmlDisplayBrick.js.map +1 -1
- package/dist/types/instance-attribute-form/InstanceAttributeForm.d.ts +1 -1
- package/dist/types/instance-detail/InstanceDetail.d.ts +1 -1
- package/dist/types/instance-list/IconButton.d.ts +2 -2
- package/dist/types/instance-list-table/AdvancedSearch.d.ts +1 -1
- package/dist/types/instance-list-table/DisplaySettings.d.ts +2 -2
- package/dist/types/instance-list-table/DynamicSearch.d.ts +1 -1
- package/dist/types/instance-list-table/InstanceListTable.d.ts +6 -6
- package/dist/types/model-attribute-form/ModelAttributeForm.d.ts +1 -1
- package/dist/types/struct-components/AddStruct.d.ts +1 -1
- package/dist/types/struct-components/StructTable.d.ts +2 -2
- package/package.json +8 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","names":["i18n","K","NS_LIBS_CMDB_INSTANCES","addResourceBundle","CMDB_RESOURCE_FIELDS_SETTINGS","defaultFields","APP","USER","USER_GROUP","HOST","fixedFields","ignoredFields","BUSINESS","CLUSTER","CMDB_MODAL_FIELDS_SETTINGS","MAX_DEFAULT_FIELDS_COUNT","MAX_DEFAULT_MODAL_FIELDS_COUNT","otherFieldIds","extraFieldAttrs","id","name","t","CREATOR","isRelation","value","type","CREATION_TIME","MODIFIER","LAST_MODIFICATION_TIME","objectListCache","Map"],"sources":["../../../src/instance-list/constants.ts"],"sourcesContent":["import { ModelObjectAttrValue } from \"@next-sdk/cmdb-sdk/dist/types/model/cmdb\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport { addResourceBundle } from \"../i18n\";\naddResourceBundle();\n\nexport const CMDB_RESOURCE_FIELDS_SETTINGS = {\n defaultFields: {\n APP: [\"name\", \"businesses\", \"owner\", \"developer\", \"tester\"],\n USER: [\"name\", \"nickname\", \"user_email\", \"user_tel\"],\n USER_GROUP: [\"name\", \"_members\"],\n \"APP-HOST\": [\"ip\", \"hostname\", \"status\"],\n HOST: [\n \"hostname\",\n \"_agentStatus\",\n \"ip\",\n \"memSize\",\n \"osDistro\",\n \"cpuModel\",\n \"owner\",\n ],\n },\n fixedFields: {\n APP: [\"name\"],\n USER: [\"name\"],\n USER_GROUP: [\"name\"],\n \"APP-HOST\": [\"ip\"],\n HOST: [\"hostname\", \"ip\"],\n },\n ignoredFields: {\n APP: [\n /* !start: only community edition\n 'businesses',\n !end: only community edition */\n \"_packageList\",\n \"appId\",\n \"packageId\",\n \"installPath\",\n \"runUser\",\n \"businessId\",\n ],\n \"APP-HOST\": [\"deviceId\"],\n BUSINESS: [\"businessId\"],\n CLUSTER: [\"_packageList\", \"clusterId\", \"packageId\"],\n HOST: [\"deviceId\"],\n },\n};\n\nexport const CMDB_MODAL_FIELDS_SETTINGS = {\n defaultFields: {\n HOST: [\"ip\", \"hostname\", \"status\", \"owner\", \"_agentStatus\"],\n },\n fixedFields: {\n HOST: [\"ip\"],\n },\n ignoredFields: CMDB_RESOURCE_FIELDS_SETTINGS.ignoredFields,\n};\nexport const MAX_DEFAULT_FIELDS_COUNT = 8;\nexport const MAX_DEFAULT_MODAL_FIELDS_COUNT = 4;\n\nexport enum otherFieldIds {\n autoBreakLine = \"_autoBreakLine_\",\n}\n\nexport interface extraFieldAttrType {\n id?: string;\n name?: string;\n isRelation?: boolean;\n value?: Partial<ModelObjectAttrValue>;\n}\n\nexport const extraFieldAttrs: extraFieldAttrType[] = [\n {\n id: \"creator\",\n name: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CREATOR}`),\n isRelation: false,\n value: {\n type: \"str\",\n },\n },\n {\n id: \"ctime\",\n name: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CREATION_TIME}`),\n isRelation: false,\n value: {\n type: \"datetime\",\n },\n },\n {\n id: \"modifier\",\n name: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.MODIFIER}`),\n isRelation: false,\n value: {\n type: \"str\",\n },\n },\n {\n id: \"mtime\",\n name: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.LAST_MODIFICATION_TIME}`),\n isRelation: false,\n value: {\n type: \"datetime\",\n },\n },\n];\n\nexport const objectListCache = new Map<string, any>();\n"],"mappings":"AACA,OAAOA,IAAI,MAAM,SAAS;AAC1B,SAASC,CAAC,EAAEC,sBAAsB,QAAQ,mBAAmB;AAC7D,SAASC,iBAAiB,QAAQ,SAAS;AAC3CA,iBAAiB,
|
|
1
|
+
{"version":3,"file":"constants.js","names":["i18n","K","NS_LIBS_CMDB_INSTANCES","addResourceBundle","CMDB_RESOURCE_FIELDS_SETTINGS","defaultFields","APP","USER","USER_GROUP","HOST","fixedFields","ignoredFields","BUSINESS","CLUSTER","CMDB_MODAL_FIELDS_SETTINGS","MAX_DEFAULT_FIELDS_COUNT","MAX_DEFAULT_MODAL_FIELDS_COUNT","otherFieldIds","extraFieldAttrs","id","name","t","concat","CREATOR","isRelation","value","type","CREATION_TIME","MODIFIER","LAST_MODIFICATION_TIME","objectListCache","Map"],"sources":["../../../src/instance-list/constants.ts"],"sourcesContent":["import { ModelObjectAttrValue } from \"@next-sdk/cmdb-sdk/dist/types/model/cmdb\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport { addResourceBundle } from \"../i18n\";\naddResourceBundle();\n\nexport const CMDB_RESOURCE_FIELDS_SETTINGS = {\n defaultFields: {\n APP: [\"name\", \"businesses\", \"owner\", \"developer\", \"tester\"],\n USER: [\"name\", \"nickname\", \"user_email\", \"user_tel\"],\n USER_GROUP: [\"name\", \"_members\"],\n \"APP-HOST\": [\"ip\", \"hostname\", \"status\"],\n HOST: [\n \"hostname\",\n \"_agentStatus\",\n \"ip\",\n \"memSize\",\n \"osDistro\",\n \"cpuModel\",\n \"owner\",\n ],\n },\n fixedFields: {\n APP: [\"name\"],\n USER: [\"name\"],\n USER_GROUP: [\"name\"],\n \"APP-HOST\": [\"ip\"],\n HOST: [\"hostname\", \"ip\"],\n },\n ignoredFields: {\n APP: [\n /* !start: only community edition\n 'businesses',\n !end: only community edition */\n \"_packageList\",\n \"appId\",\n \"packageId\",\n \"installPath\",\n \"runUser\",\n \"businessId\",\n ],\n \"APP-HOST\": [\"deviceId\"],\n BUSINESS: [\"businessId\"],\n CLUSTER: [\"_packageList\", \"clusterId\", \"packageId\"],\n HOST: [\"deviceId\"],\n },\n};\n\nexport const CMDB_MODAL_FIELDS_SETTINGS = {\n defaultFields: {\n HOST: [\"ip\", \"hostname\", \"status\", \"owner\", \"_agentStatus\"],\n },\n fixedFields: {\n HOST: [\"ip\"],\n },\n ignoredFields: CMDB_RESOURCE_FIELDS_SETTINGS.ignoredFields,\n};\nexport const MAX_DEFAULT_FIELDS_COUNT = 8;\nexport const MAX_DEFAULT_MODAL_FIELDS_COUNT = 4;\n\nexport enum otherFieldIds {\n autoBreakLine = \"_autoBreakLine_\",\n}\n\nexport interface extraFieldAttrType {\n id?: string;\n name?: string;\n isRelation?: boolean;\n value?: Partial<ModelObjectAttrValue>;\n}\n\nexport const extraFieldAttrs: extraFieldAttrType[] = [\n {\n id: \"creator\",\n name: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CREATOR}`),\n isRelation: false,\n value: {\n type: \"str\",\n },\n },\n {\n id: \"ctime\",\n name: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CREATION_TIME}`),\n isRelation: false,\n value: {\n type: \"datetime\",\n },\n },\n {\n id: \"modifier\",\n name: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.MODIFIER}`),\n isRelation: false,\n value: {\n type: \"str\",\n },\n },\n {\n id: \"mtime\",\n name: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.LAST_MODIFICATION_TIME}`),\n isRelation: false,\n value: {\n type: \"datetime\",\n },\n },\n];\n\nexport const objectListCache = new Map<string, any>();\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InstanceListModal.js","names":["React","useState","WarningOutlined","Modal","Button","Tooltip","i18n","InstanceApi_postSearch","K","NS_LIBS_CMDB_INSTANCES","InstanceList","addResourceBundle","useProvider","InstanceListModal","props","selectedInstanceListTemp","setSelectedInstanceListTemp","externalPostSearchV3","cache","handleOk","length","every","i","resp","requestParams","query","instanceId","$in","page","page_size","useExternalCmdbApi","objectId","sourceId","externalSourceId","ignore_missing_field_error","onSelected","onSelectedV2","list","map","selectedInstance","handleCancel","selectedRowKeys","onCancel","handleSelectionChange","event","selectedItems","selectedKeys","handlePaginationChange","getPaginationData","presetConfigs","fixAliveHosts","_agentStatus","useEffect","filter","Boolean","renderFooter","showBindButton","bindButtonDisabled","disabledTooltip","bindButtonText","t","PERMISSION_DENIED","position","left","CREATE_AND_BIND","bindEvent","singleSelect","color","marginRight","ONLY_ONE_INSTANCE_TO_ALLOWED","selectDisabled","showCloseBtn","CLOSE","CANCEL","CONFIRM","title","visible","modalWidth","modalZIndex","maxHeight","overflow","aq","q","Object","values","objectMap","extraFilterBricks","permission","instanceSourceQuery","searchDisabled","filterInstanceSourceDisabled","advancedSearchDisabled","aliveHostsDisabled","relatedToMeDisabled","moreButtonsDisabled","sortDisabled","showSizeChanger","pageSizeOptions","pageSize","defaultQuery","enableSearchByApp","hideSearchConditions","isInstanceFilterForm","ipCopy","rowSelectionType","extraFixedFields","limitInstanceRange","showFilterInstanceSource","filterInstanceSource","onFilterInstanceSourceChange","objectIdQuery","onFilterObjectIdChange","ignorePermission","saveFieldsBackend","showHiddenInfoDisabled","propertyDisplayConfigs"],"sources":["../../../src/instance-list-modal/InstanceListModal.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { WarningOutlined } from \"@ant-design/icons\";\nimport { Modal, Button, Tooltip } from \"antd\";\nimport i18n from \"i18next\";\nimport { CmdbModels, InstanceApi_postSearch } from \"@next-sdk/cmdb-sdk\";\nimport { Query } from \"@next-libs/cmdb-utils\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport {\n InstanceList,\n filterObjectIdQuery,\n} from \"../instance-list/InstanceList\";\nimport { InstanceListPresetConfigs } from \"../instance-list-table/interfaces\";\nimport { UseBrickAndPropertyDisplayConfig } from \"../instance-list-table\";\nimport { addResourceBundle } from \"../i18n\";\nimport {\n ReadPaginationChangeDetail,\n UseBrickConf,\n} from \"@next-core/brick-types\";\nimport { useProvider } from \"@next-core/brick-kit\";\naddResourceBundle();\nexport interface InstanceListModalProps {\n objectMap: { [key: string]: Partial<CmdbModels.ModelCmdbObject> };\n objectId: string;\n visible: boolean;\n title: React.ReactNode | string;\n q?: string;\n query?: any;\n presetConfigs?: InstanceListPresetConfigs;\n permission?: string[];\n aq?: Query[];\n instanceSourceQuery?: string;\n isInstanceFilterForm?: boolean;\n searchDisabled?: boolean;\n advancedSearchDisabled?: boolean;\n aliveHostsDisabled?: boolean;\n relatedToMeDisabled?: boolean;\n moreButtonsDisabled?: boolean;\n filterInstanceSourceDisabled?: boolean;\n sortDisabled?: boolean;\n selectDisabled?: boolean;\n showCloseBtn?: boolean;\n ipCopy?: boolean;\n singleSelect?: boolean;\n selectedRowKeys?: string[];\n onCancel: () => void;\n onSelected?: (instanceIds: any[]) => void;\n onSelectedV2?: (instanceDataList: any[]) => void;\n modalZIndex?: number;\n pageSize?: number;\n page?: number;\n showSizeChanger?: boolean;\n pageSizeOptions?: string[];\n defaultQuery?: { [fieldId: string]: any }[];\n enableSearchByApp?: boolean;\n hideSearchConditions?: boolean;\n rowSelectionType?: \"checkbox\" | \"radio\";\n getPaginationData?(pagination: ReadPaginationChangeDetail): void;\n extraFixedFields?: string[];\n limitInstanceRange?: boolean;\n extraFilterBricks?: {\n useBrick: UseBrickConf;\n };\n showBindButton?: boolean;\n bindEvent?: () => void;\n bindButtonDisabled?: boolean;\n bindButtonText?: string;\n disabledTooltip?: string;\n // 是否开启实例来源筛选\n showFilterInstanceSource?: boolean;\n filterInstanceSource?: boolean;\n onFilterInstanceSourceChange?(value: boolean): void;\n onFilterObjectIdChange?(value: filterObjectIdQuery): void;\n objectIdQuery?: string;\n ignorePermission?: boolean;\n saveFieldsBackend?: boolean;\n useExternalCmdbApi?: boolean;\n externalSourceId?: string;\n showHiddenInfoDisabled?: boolean;\n propertyDisplayConfigs?: UseBrickAndPropertyDisplayConfig[];\n modalWidth?: number;\n}\n\nexport function InstanceListModal(\n props: InstanceListModalProps\n): React.ReactElement {\n const [selectedInstanceListTemp, setSelectedInstanceListTemp] = useState([]);\n const externalPostSearchV3 = useProvider(\n \"easyops.api.cmdb.topo_center@ProxyPostSearchV3:1.0.1\",\n { cache: false }\n );\n // istanbul ignore next\n const handleOk = async () => {\n if (\n selectedInstanceListTemp.length &&\n selectedInstanceListTemp.every((i) => typeof i === \"string\")\n ) {\n let resp: any;\n const requestParams = {\n query: {\n instanceId: {\n $in: selectedInstanceListTemp,\n },\n },\n page: 1,\n page_size: selectedInstanceListTemp.length,\n };\n if (props.useExternalCmdbApi) {\n resp = await externalPostSearchV3.query([\n {\n ...requestParams,\n objectId: props.objectId,\n sourceId: props.externalSourceId,\n ignore_missing_field_error: true,\n },\n ]);\n } else {\n resp = await InstanceApi_postSearch(props.objectId, requestParams);\n }\n props.onSelected?.(selectedInstanceListTemp);\n props.onSelectedV2?.(resp.list);\n return;\n }\n\n props.onSelected?.(\n selectedInstanceListTemp.map(\n (selectedInstance) => selectedInstance.instanceId\n )\n );\n props.onSelectedV2?.(selectedInstanceListTemp);\n };\n // istanbul ignore next\n const handleCancel = () => {\n // reset selected\n setSelectedInstanceListTemp(props.selectedRowKeys ?? []);\n props.onCancel();\n };\n // istanbul ignore next\n const handleSelectionChange = (event: {\n selectedKeys: string[];\n selectedItems: any[];\n }) => {\n if (event.selectedItems.length < event.selectedKeys.length) {\n setSelectedInstanceListTemp(event.selectedKeys);\n } else {\n setSelectedInstanceListTemp(event.selectedItems);\n }\n };\n //istanbul ignore next\n const handlePaginationChange = (event: {\n page: number;\n pageSize: number;\n }) => {\n props.getPaginationData?.(event);\n };\n const presetConfigs = props.presetConfigs ?? {\n query: props.query,\n };\n\n const fixAliveHosts = presetConfigs.query?._agentStatus === \"正常\";\n\n React.useEffect(() => {\n if (props.selectedRowKeys) {\n setSelectedInstanceListTemp(props.selectedRowKeys.filter(Boolean));\n }\n }, [props.selectedRowKeys]);\n\n const renderFooter = (): React.ReactElement => {\n const {\n showBindButton,\n bindButtonDisabled,\n disabledTooltip,\n bindButtonText,\n } = props;\n return (\n <>\n {!!showBindButton &&\n (bindButtonDisabled ? (\n <Tooltip\n title={\n disabledTooltip ||\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.PERMISSION_DENIED}`)\n }\n >\n <Button style={{ position: \"absolute\", left: \"24px\" }} disabled>\n {bindButtonText ||\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CREATE_AND_BIND}`)}\n </Button>\n </Tooltip>\n ) : (\n <Button\n style={{ position: \"absolute\", left: \"24px\" }}\n onClick={props.bindEvent}\n >\n {bindButtonText ||\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CREATE_AND_BIND}`)}\n </Button>\n ))}\n {props.singleSelect && selectedInstanceListTemp.length > 1 && (\n <span style={{ color: \"#ff0016\", marginRight: \"20px\" }}>\n <WarningOutlined\n style={{ color: \"#ff0016\", marginRight: \"10px\" }}\n />\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ONLY_ONE_INSTANCE_TO_ALLOWED}`\n )}\n </span>\n )}\n {(props.selectDisabled || props.showCloseBtn) && (\n <Button key=\"back\" onClick={props.onCancel}>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLOSE}`)}\n </Button>\n )}\n {!props.selectDisabled && !props.showCloseBtn && (\n <>\n <Button key=\"back\" onClick={handleCancel} type=\"text\">\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CANCEL}`)}\n </Button>\n <Button\n key=\"submit\"\n type=\"primary\"\n onClick={handleOk}\n disabled={\n !selectedInstanceListTemp.length ||\n (props.singleSelect && selectedInstanceListTemp.length > 1)\n }\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CONFIRM}`)}\n </Button>\n </>\n )}\n </>\n );\n };\n return (\n <Modal\n title={props.title}\n visible={props.visible}\n width={props.modalWidth || 900}\n onOk={handleOk}\n onCancel={handleCancel}\n destroyOnClose={true}\n footer={renderFooter()}\n zIndex={props.modalZIndex ?? 1000}\n >\n <div style={{ maxHeight: 720, overflow: \"auto\" }}>\n <InstanceList\n aq={props.aq}\n q={props.q}\n objectId={props.objectId}\n objectList={Object.values(props.objectMap)}\n presetConfigs={presetConfigs}\n extraFilterBricks={props.extraFilterBricks}\n permission={props.permission}\n aliveHosts={fixAliveHosts}\n fixAliveHosts={fixAliveHosts}\n instanceSourceQuery={props.instanceSourceQuery}\n searchDisabled={props.searchDisabled}\n filterInstanceSourceDisabled={props.filterInstanceSourceDisabled}\n advancedSearchDisabled={props.advancedSearchDisabled}\n aliveHostsDisabled={props.aliveHostsDisabled}\n relatedToMeDisabled={props.relatedToMeDisabled}\n moreButtonsDisabled={props.moreButtonsDisabled}\n sortDisabled={props.sortDisabled}\n selectDisabled={props.selectDisabled}\n selectedRowKeys={props.selectedRowKeys}\n onSelectionChange={handleSelectionChange}\n showSizeChanger={props.showSizeChanger}\n pageSizeOptions={props.pageSizeOptions}\n pageSize={props.pageSize || 10}\n page={props.page}\n defaultQuery={props.defaultQuery}\n enableSearchByApp={props.enableSearchByApp}\n hideSearchConditions={props.hideSearchConditions}\n isInstanceFilterForm={props.isInstanceFilterForm}\n ipCopy={props.ipCopy}\n rowSelectionType={props.rowSelectionType}\n onPaginationChange={handlePaginationChange}\n extraFixedFields={props.extraFixedFields}\n limitInstanceRange={props.limitInstanceRange}\n showFilterInstanceSource={props.showFilterInstanceSource}\n filterInstanceSource={props.filterInstanceSource}\n onFilterInstanceSourceChange={props.onFilterInstanceSourceChange}\n objectIdQuery={props.objectIdQuery}\n onFilterObjectIdChange={props.onFilterObjectIdChange}\n ignorePermission={props.ignorePermission}\n saveFieldsBackend={props.saveFieldsBackend}\n useExternalCmdbApi={props.useExternalCmdbApi}\n externalSourceId={props.externalSourceId}\n showHiddenInfoDisabled={props.showHiddenInfoDisabled}\n propertyDisplayConfigs={props.propertyDisplayConfigs}\n />\n </div>\n </Modal>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"InstanceListModal.js","names":["React","useState","WarningOutlined","Modal","Button","Tooltip","i18n","InstanceApi_postSearch","K","NS_LIBS_CMDB_INSTANCES","InstanceList","addResourceBundle","useProvider","InstanceListModal","props","_props$presetConfigs","_presetConfigs$query","_props$modalZIndex","selectedInstanceListTemp","setSelectedInstanceListTemp","externalPostSearchV3","cache","handleOk","_ref","_asyncToGenerator","_props$onSelected2","_props$onSelectedV2","length","every","i","_props$onSelected","_props$onSelectedV","resp","requestParams","query","instanceId","$in","page","page_size","useExternalCmdbApi","_objectSpread","objectId","sourceId","externalSourceId","ignore_missing_field_error","onSelected","call","onSelectedV2","list","map","selectedInstance","apply","arguments","handleCancel","_props$selectedRowKey","selectedRowKeys","onCancel","handleSelectionChange","event","selectedItems","selectedKeys","handlePaginationChange","_props$getPaginationD","getPaginationData","presetConfigs","fixAliveHosts","_agentStatus","useEffect","filter","Boolean","renderFooter","showBindButton","bindButtonDisabled","disabledTooltip","bindButtonText","createElement","Fragment","title","t","concat","PERMISSION_DENIED","style","position","left","disabled","CREATE_AND_BIND","onClick","bindEvent","singleSelect","color","marginRight","ONLY_ONE_INSTANCE_TO_ALLOWED","selectDisabled","showCloseBtn","key","CLOSE","type","CANCEL","CONFIRM","visible","width","modalWidth","onOk","destroyOnClose","footer","zIndex","modalZIndex","maxHeight","overflow","aq","q","objectList","Object","values","objectMap","extraFilterBricks","permission","aliveHosts","instanceSourceQuery","searchDisabled","filterInstanceSourceDisabled","advancedSearchDisabled","aliveHostsDisabled","relatedToMeDisabled","moreButtonsDisabled","sortDisabled","onSelectionChange","showSizeChanger","pageSizeOptions","pageSize","defaultQuery","enableSearchByApp","hideSearchConditions","isInstanceFilterForm","ipCopy","rowSelectionType","onPaginationChange","extraFixedFields","limitInstanceRange","showFilterInstanceSource","filterInstanceSource","onFilterInstanceSourceChange","objectIdQuery","onFilterObjectIdChange","ignorePermission","saveFieldsBackend","showHiddenInfoDisabled","propertyDisplayConfigs"],"sources":["../../../src/instance-list-modal/InstanceListModal.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { WarningOutlined } from \"@ant-design/icons\";\nimport { Modal, Button, Tooltip } from \"antd\";\nimport i18n from \"i18next\";\nimport { CmdbModels, InstanceApi_postSearch } from \"@next-sdk/cmdb-sdk\";\nimport { Query } from \"@next-libs/cmdb-utils\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport {\n InstanceList,\n filterObjectIdQuery,\n} from \"../instance-list/InstanceList\";\nimport { InstanceListPresetConfigs } from \"../instance-list-table/interfaces\";\nimport { UseBrickAndPropertyDisplayConfig } from \"../instance-list-table\";\nimport { addResourceBundle } from \"../i18n\";\nimport {\n ReadPaginationChangeDetail,\n UseBrickConf,\n} from \"@next-core/brick-types\";\nimport { useProvider } from \"@next-core/brick-kit\";\naddResourceBundle();\nexport interface InstanceListModalProps {\n objectMap: { [key: string]: Partial<CmdbModels.ModelCmdbObject> };\n objectId: string;\n visible: boolean;\n title: React.ReactNode | string;\n q?: string;\n query?: any;\n presetConfigs?: InstanceListPresetConfigs;\n permission?: string[];\n aq?: Query[];\n instanceSourceQuery?: string;\n isInstanceFilterForm?: boolean;\n searchDisabled?: boolean;\n advancedSearchDisabled?: boolean;\n aliveHostsDisabled?: boolean;\n relatedToMeDisabled?: boolean;\n moreButtonsDisabled?: boolean;\n filterInstanceSourceDisabled?: boolean;\n sortDisabled?: boolean;\n selectDisabled?: boolean;\n showCloseBtn?: boolean;\n ipCopy?: boolean;\n singleSelect?: boolean;\n selectedRowKeys?: string[];\n onCancel: () => void;\n onSelected?: (instanceIds: any[]) => void;\n onSelectedV2?: (instanceDataList: any[]) => void;\n modalZIndex?: number;\n pageSize?: number;\n page?: number;\n showSizeChanger?: boolean;\n pageSizeOptions?: string[];\n defaultQuery?: { [fieldId: string]: any }[];\n enableSearchByApp?: boolean;\n hideSearchConditions?: boolean;\n rowSelectionType?: \"checkbox\" | \"radio\";\n getPaginationData?(pagination: ReadPaginationChangeDetail): void;\n extraFixedFields?: string[];\n limitInstanceRange?: boolean;\n extraFilterBricks?: {\n useBrick: UseBrickConf;\n };\n showBindButton?: boolean;\n bindEvent?: () => void;\n bindButtonDisabled?: boolean;\n bindButtonText?: string;\n disabledTooltip?: string;\n // 是否开启实例来源筛选\n showFilterInstanceSource?: boolean;\n filterInstanceSource?: boolean;\n onFilterInstanceSourceChange?(value: boolean): void;\n onFilterObjectIdChange?(value: filterObjectIdQuery): void;\n objectIdQuery?: string;\n ignorePermission?: boolean;\n saveFieldsBackend?: boolean;\n useExternalCmdbApi?: boolean;\n externalSourceId?: string;\n showHiddenInfoDisabled?: boolean;\n propertyDisplayConfigs?: UseBrickAndPropertyDisplayConfig[];\n modalWidth?: number;\n}\n\nexport function InstanceListModal(\n props: InstanceListModalProps\n): React.ReactElement {\n const [selectedInstanceListTemp, setSelectedInstanceListTemp] = useState([]);\n const externalPostSearchV3 = useProvider(\n \"easyops.api.cmdb.topo_center@ProxyPostSearchV3:1.0.1\",\n { cache: false }\n );\n // istanbul ignore next\n const handleOk = async () => {\n if (\n selectedInstanceListTemp.length &&\n selectedInstanceListTemp.every((i) => typeof i === \"string\")\n ) {\n let resp: any;\n const requestParams = {\n query: {\n instanceId: {\n $in: selectedInstanceListTemp,\n },\n },\n page: 1,\n page_size: selectedInstanceListTemp.length,\n };\n if (props.useExternalCmdbApi) {\n resp = await externalPostSearchV3.query([\n {\n ...requestParams,\n objectId: props.objectId,\n sourceId: props.externalSourceId,\n ignore_missing_field_error: true,\n },\n ]);\n } else {\n resp = await InstanceApi_postSearch(props.objectId, requestParams);\n }\n props.onSelected?.(selectedInstanceListTemp);\n props.onSelectedV2?.(resp.list);\n return;\n }\n\n props.onSelected?.(\n selectedInstanceListTemp.map(\n (selectedInstance) => selectedInstance.instanceId\n )\n );\n props.onSelectedV2?.(selectedInstanceListTemp);\n };\n // istanbul ignore next\n const handleCancel = () => {\n // reset selected\n setSelectedInstanceListTemp(props.selectedRowKeys ?? []);\n props.onCancel();\n };\n // istanbul ignore next\n const handleSelectionChange = (event: {\n selectedKeys: string[];\n selectedItems: any[];\n }) => {\n if (event.selectedItems.length < event.selectedKeys.length) {\n setSelectedInstanceListTemp(event.selectedKeys);\n } else {\n setSelectedInstanceListTemp(event.selectedItems);\n }\n };\n //istanbul ignore next\n const handlePaginationChange = (event: {\n page: number;\n pageSize: number;\n }) => {\n props.getPaginationData?.(event);\n };\n const presetConfigs = props.presetConfigs ?? {\n query: props.query,\n };\n\n const fixAliveHosts = presetConfigs.query?._agentStatus === \"正常\";\n\n React.useEffect(() => {\n if (props.selectedRowKeys) {\n setSelectedInstanceListTemp(props.selectedRowKeys.filter(Boolean));\n }\n }, [props.selectedRowKeys]);\n\n const renderFooter = (): React.ReactElement => {\n const {\n showBindButton,\n bindButtonDisabled,\n disabledTooltip,\n bindButtonText,\n } = props;\n return (\n <>\n {!!showBindButton &&\n (bindButtonDisabled ? (\n <Tooltip\n title={\n disabledTooltip ||\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.PERMISSION_DENIED}`)\n }\n >\n <Button style={{ position: \"absolute\", left: \"24px\" }} disabled>\n {bindButtonText ||\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CREATE_AND_BIND}`)}\n </Button>\n </Tooltip>\n ) : (\n <Button\n style={{ position: \"absolute\", left: \"24px\" }}\n onClick={props.bindEvent}\n >\n {bindButtonText ||\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CREATE_AND_BIND}`)}\n </Button>\n ))}\n {props.singleSelect && selectedInstanceListTemp.length > 1 && (\n <span style={{ color: \"#ff0016\", marginRight: \"20px\" }}>\n <WarningOutlined\n style={{ color: \"#ff0016\", marginRight: \"10px\" }}\n />\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ONLY_ONE_INSTANCE_TO_ALLOWED}`\n )}\n </span>\n )}\n {(props.selectDisabled || props.showCloseBtn) && (\n <Button key=\"back\" onClick={props.onCancel}>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLOSE}`)}\n </Button>\n )}\n {!props.selectDisabled && !props.showCloseBtn && (\n <>\n <Button key=\"back\" onClick={handleCancel} type=\"text\">\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CANCEL}`)}\n </Button>\n <Button\n key=\"submit\"\n type=\"primary\"\n onClick={handleOk}\n disabled={\n !selectedInstanceListTemp.length ||\n (props.singleSelect && selectedInstanceListTemp.length > 1)\n }\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CONFIRM}`)}\n </Button>\n </>\n )}\n </>\n );\n };\n return (\n <Modal\n title={props.title}\n visible={props.visible}\n width={props.modalWidth || 900}\n onOk={handleOk}\n onCancel={handleCancel}\n destroyOnClose={true}\n footer={renderFooter()}\n zIndex={props.modalZIndex ?? 1000}\n >\n <div style={{ maxHeight: 720, overflow: \"auto\" }}>\n <InstanceList\n aq={props.aq}\n q={props.q}\n objectId={props.objectId}\n objectList={Object.values(props.objectMap)}\n presetConfigs={presetConfigs}\n extraFilterBricks={props.extraFilterBricks}\n permission={props.permission}\n aliveHosts={fixAliveHosts}\n fixAliveHosts={fixAliveHosts}\n instanceSourceQuery={props.instanceSourceQuery}\n searchDisabled={props.searchDisabled}\n filterInstanceSourceDisabled={props.filterInstanceSourceDisabled}\n advancedSearchDisabled={props.advancedSearchDisabled}\n aliveHostsDisabled={props.aliveHostsDisabled}\n relatedToMeDisabled={props.relatedToMeDisabled}\n moreButtonsDisabled={props.moreButtonsDisabled}\n sortDisabled={props.sortDisabled}\n selectDisabled={props.selectDisabled}\n selectedRowKeys={props.selectedRowKeys}\n onSelectionChange={handleSelectionChange}\n showSizeChanger={props.showSizeChanger}\n pageSizeOptions={props.pageSizeOptions}\n pageSize={props.pageSize || 10}\n page={props.page}\n defaultQuery={props.defaultQuery}\n enableSearchByApp={props.enableSearchByApp}\n hideSearchConditions={props.hideSearchConditions}\n isInstanceFilterForm={props.isInstanceFilterForm}\n ipCopy={props.ipCopy}\n rowSelectionType={props.rowSelectionType}\n onPaginationChange={handlePaginationChange}\n extraFixedFields={props.extraFixedFields}\n limitInstanceRange={props.limitInstanceRange}\n showFilterInstanceSource={props.showFilterInstanceSource}\n filterInstanceSource={props.filterInstanceSource}\n onFilterInstanceSourceChange={props.onFilterInstanceSourceChange}\n objectIdQuery={props.objectIdQuery}\n onFilterObjectIdChange={props.onFilterObjectIdChange}\n ignorePermission={props.ignorePermission}\n saveFieldsBackend={props.saveFieldsBackend}\n useExternalCmdbApi={props.useExternalCmdbApi}\n externalSourceId={props.externalSourceId}\n showHiddenInfoDisabled={props.showHiddenInfoDisabled}\n propertyDisplayConfigs={props.propertyDisplayConfigs}\n />\n </div>\n </Modal>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdvancedSearch.js","names":["React","update","isEqual","find","startsWith","findKey","isNil","flatten","isString","isArray","Form","Button","Col","Input","Row","Select","getRuntime","ComparisonOperators","ElementOperators","forEachAvailableFields","getInstanceNameKeys","LogicalOperators","clusterMap","styles","i18n","NS_LIBS_CMDB_INSTANCES","K","FormControlTypeEnum","ModelAttributeFormControl","ModelAttributeValueType","ModelAttributeValueModeType","processAttrValueWithQuote","ENABLED_CMDB_ADVANCE_SEARCH_WITH_QUOTE","isAgentStatus","ConditionType","FieldTypeConditionTypesMap","STRING","Contain","NotContain","Equal","NotEqual","Empty","NotEmpty","INTEGER","Between","FLOAT","DATE","DATETIME","ENUM","ENUMS","ARR","STRUCT","IP","BOOLEAN","JSON","AgentStatusConditionType","multiValueSearchOperators","comparisonOperator","Like","logicalOperator","Or","NotLike","And","STRUCT_LIST","getCondition","conditionType","fieldType","label","operations","t","OPERATOR_EQUAL_DEFINE","operator","In","OPERATOR_NOT_EQUAL_DEFINE","NotIn","OPERATOR_CONTAIN_DEFINE","prefix","suffix","OPERATOR_NOT_CONTAIN_DEFINE","OPERATOR_IS_EMPTY_DEFINE","Exists","fixedValue","OPERATOR_IS_NOT_EMPTY_DEFINE","True","False","GreaterThanOrEqual","LessThanOrEqual","OPERATOR_BETWEEN_DEFINE_TEXT_INT","OPERATOR_BETWEEN_DEFINE_TEXT_TIME","OPERATOR_BETWEEN_DEFINE_TEXT","OPERATOR_BETWEEN_DEFINE_TEXT_THE","type","convertValue","valueType","value","isNaN","parseInt","undefined","parseFloat","getFieldConditionsAndValues","fieldQueryOperatorExpressionsMap","id","isRelation","relationSideId","objectId","attrId","expressions","expressionsKeys","relatedKey","v","k","relatedExpressions","Object","keys","currentCondition","fieldConditionType","availableConditions","map","condition","length","operatorsStr","isFixedValueEqual","every","operation","push","toString","includes","queryValuesStr","values","i","multiValueSearchOperator","trim","split","filter","join","slice","endsWith","disabled","AdvancedSearchForm","Component","constructor","props","valueIndex","field","fieldIndex","setState","fields","state","$set","hasFixedValues","some","newValues","newFields","relatedFieldIndex","findIndex","f","relatedField","relatedCondition","setFormFieldValues","e","preventDefault","autoSearch","onSearch","queries","queriesToShow","fieldToShow","forEach","fieldQuery","fieldQueryToShow","hasValue","structQueryId","isStruct","attrValue","struct_define","struct_item","index","fieldId","fieldIdToShow","Array","structId","q","form","resetFields","computeState","componentDidUpdate","prevProps","newState","query","entries","key","firstSubQuery","compareOperators","compareOperator","subQueryValue","targetField","fieldItem","item","targetValue","modelData","attr","attrValueType","regex","mode","name","relation","sides","relationObject","idObjectMap","that","showKeys","showKey","nameOfShowKey","attrList","this","fieldIds","reduce","acc","setFieldsValue","getFields","getFieldDecorator","hasBetween","style","multiSelect","isBetween","getFeatureFlags","CASCADE","TREESELECT","SELECT","minWidth","conditionInputGroup","onConditionChange","separatorInput","initialValue","onValueChange","conditionInput","render","advancedSearch","advancedSearchForm","handleSearch","textAlign","SEARCH","marginLeft","handleReset","RESET","AdvancedSearch","create"],"sources":["../../../src/instance-list-table/AdvancedSearch.tsx"],"sourcesContent":["import React, { ChangeEvent, FormEvent } from \"react\";\nimport update from \"immutability-helper\";\nimport {\n isEqual,\n find,\n startsWith,\n findKey,\n isNil,\n flatten,\n isString,\n isArray,\n} from \"lodash\";\nimport { Form } from \"@ant-design/compatible\";\nimport { Button, Col, Input, Row, Select } from \"antd\";\nimport { FormComponentProps } from \"@ant-design/compatible/lib/form\";\nimport { CmdbModels } from \"@next-sdk/cmdb-sdk\";\nimport { getRuntime } from \"@next-core/brick-kit\";\nimport {\n ComparisonOperators,\n ElementOperators,\n forEachAvailableFields,\n getInstanceNameKeys,\n LogicalOperators,\n Query,\n QueryOperatorExpressions,\n RelationIdKeys,\n RelationNameKeys,\n RelationObjectIdKeys,\n} from \"@next-libs/cmdb-utils\";\nimport { clusterMap } from \"./constants\";\nimport styles from \"./AdvancedSearch.module.css\";\nimport i18n from \"i18next\";\nimport { NS_LIBS_CMDB_INSTANCES, K } from \"../i18n/constants\";\nimport {\n FormControlTypeEnum,\n ModelAttributeFormControl,\n ModelAttributeValueType,\n ModelAttributeValueModeType,\n} from \"../model-attribute-form-control/ModelAttributeFormControl\";\nimport {\n processAttrValueWithQuote,\n ENABLED_CMDB_ADVANCE_SEARCH_WITH_QUOTE,\n isAgentStatus,\n} from \"../processors\";\n\nexport enum ConditionType {\n Equal = \"equal\",\n NotEqual = \"notEqual\",\n Contain = \"contain\",\n NotContain = \"notContain\",\n Empty = \"empty\",\n NotEmpty = \"notEmpty\",\n Between = \"between\",\n True = \"true\",\n False = \"false\",\n}\n\ninterface ConditionOperation {\n operator: ComparisonOperators | ElementOperators;\n fixedValue?: any;\n prefix?: string;\n suffix?: string;\n}\n\ninterface Condition {\n type: ConditionType;\n label: string;\n operations: ConditionOperation[];\n}\n\nconst FieldTypeConditionTypesMap: Record<string, ConditionType[]> = {\n [ModelAttributeValueType.STRING]: [\n ConditionType.Contain,\n ConditionType.NotContain,\n ConditionType.Equal,\n ConditionType.NotEqual,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ],\n [ModelAttributeValueType.INTEGER]: [\n ConditionType.Equal,\n ConditionType.NotEqual,\n ConditionType.Between,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ],\n [ModelAttributeValueType.FLOAT]: [\n ConditionType.Equal,\n ConditionType.NotEqual,\n ConditionType.Between,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ],\n [ModelAttributeValueType.DATE]: [\n ConditionType.Equal,\n ConditionType.NotEqual,\n ConditionType.Between,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ],\n [ModelAttributeValueType.DATETIME]: [\n ConditionType.Between,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ],\n [ModelAttributeValueType.ENUM]: [\n ConditionType.Equal,\n ConditionType.NotEqual,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ],\n [ModelAttributeValueType.ENUMS]: [\n ConditionType.Contain,\n ConditionType.NotContain,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ],\n [ModelAttributeValueType.ARR]: [\n ConditionType.Contain,\n ConditionType.NotContain,\n ConditionType.Equal,\n ConditionType.NotEqual,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ],\n [ModelAttributeValueType.STRUCT]: [\n ConditionType.Contain,\n ConditionType.NotContain,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ],\n [ModelAttributeValueType.IP]: [\n ConditionType.Contain,\n ConditionType.NotContain,\n ConditionType.Equal,\n ConditionType.NotEqual,\n ConditionType.Between,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ],\n [ModelAttributeValueType.BOOLEAN]: [\n ConditionType.Equal,\n ConditionType.NotEqual,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ],\n [ModelAttributeValueType.JSON]: [\n ConditionType.Contain,\n ConditionType.NotContain,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ],\n};\n\nconst AgentStatusConditionType: ConditionType[] = [\n ConditionType.Equal,\n ConditionType.NotEqual,\n];\nconst multiValueSearchOperators = [\n {\n comparisonOperator: ComparisonOperators.Like,\n logicalOperator: LogicalOperators.Or,\n },\n {\n comparisonOperator: ComparisonOperators.NotLike,\n logicalOperator: LogicalOperators.And,\n },\n {\n comparisonOperator: ComparisonOperators.Equal,\n logicalOperator: LogicalOperators.Or,\n },\n {\n comparisonOperator: ComparisonOperators.NotEqual,\n logicalOperator: LogicalOperators.And,\n },\n];\nFieldTypeConditionTypesMap[ModelAttributeValueType.STRUCT_LIST] =\n FieldTypeConditionTypesMap[ModelAttributeValueType.STRUCT];\n\nexport function getCondition(\n conditionType: ConditionType,\n fieldType: ModelAttributeValueType\n): Condition {\n let label: string;\n let operations: ConditionOperation[];\n\n switch (conditionType) {\n case ConditionType.Equal:\n label = i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.OPERATOR_EQUAL_DEFINE}`);\n switch (fieldType) {\n case ModelAttributeValueType.ARR:\n operations = [\n {\n operator: ComparisonOperators.In,\n },\n ];\n break;\n default:\n operations = [\n {\n operator: ComparisonOperators.Equal,\n },\n ];\n }\n break;\n case ConditionType.NotEqual:\n label = i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.OPERATOR_NOT_EQUAL_DEFINE}`\n );\n switch (fieldType) {\n case ModelAttributeValueType.ARR:\n operations = [\n {\n operator: ComparisonOperators.NotIn,\n },\n ];\n break;\n default:\n operations = [\n {\n operator: ComparisonOperators.NotEqual,\n },\n ];\n }\n break;\n case ConditionType.Contain:\n label = i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.OPERATOR_CONTAIN_DEFINE}`);\n switch (fieldType) {\n case ModelAttributeValueType.ENUMS:\n operations = [\n {\n operator: ComparisonOperators.In,\n },\n ];\n break;\n default:\n operations = [\n {\n operator: ComparisonOperators.Like,\n prefix: \"%\",\n suffix: \"%\",\n },\n ];\n }\n break;\n case ConditionType.NotContain:\n label = i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.OPERATOR_NOT_CONTAIN_DEFINE}`\n );\n switch (fieldType) {\n case ModelAttributeValueType.ENUMS:\n operations = [\n {\n operator: ComparisonOperators.NotIn,\n },\n ];\n break;\n default:\n operations = [\n {\n operator: ComparisonOperators.NotLike,\n prefix: \"%\",\n suffix: \"%\",\n },\n ];\n }\n break;\n case ConditionType.Empty:\n label = i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.OPERATOR_IS_EMPTY_DEFINE}`);\n operations = [\n {\n operator: ElementOperators.Exists,\n fixedValue: false,\n },\n ];\n break;\n case ConditionType.NotEmpty:\n label = i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.OPERATOR_IS_NOT_EMPTY_DEFINE}`\n );\n operations = [\n {\n operator: ElementOperators.Exists,\n fixedValue: true,\n },\n ];\n break;\n case ConditionType.True:\n label = \"true\";\n operations = [\n {\n operator: ComparisonOperators.Equal,\n fixedValue: true,\n },\n ];\n break;\n case ConditionType.False:\n label = \"false\";\n operations = [\n {\n operator: ComparisonOperators.Equal,\n fixedValue: false,\n },\n ];\n break;\n case ConditionType.Between:\n operations = [\n {\n operator: ComparisonOperators.GreaterThanOrEqual,\n },\n {\n operator: ComparisonOperators.LessThanOrEqual,\n },\n ];\n switch (fieldType) {\n case ModelAttributeValueType.INTEGER:\n case ModelAttributeValueType.FLOAT:\n // label = \"在此区间\";\n label = i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.OPERATOR_BETWEEN_DEFINE_TEXT_INT}`\n );\n break;\n case ModelAttributeValueType.DATE:\n case ModelAttributeValueType.DATETIME:\n // label = \"在此期间\";\n label = i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.OPERATOR_BETWEEN_DEFINE_TEXT_TIME}`\n );\n break;\n case ModelAttributeValueType.IP:\n // label = \"范围\";\n label = i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.OPERATOR_BETWEEN_DEFINE_TEXT}`\n );\n break;\n default:\n // label = \"在此之间\";\n label = i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.OPERATOR_BETWEEN_DEFINE_TEXT_THE}`\n );\n }\n break;\n }\n\n return {\n type: conditionType,\n label,\n operations,\n };\n}\n\nexport function convertValue(valueType: string, value: any): any {\n if (typeof value !== \"boolean\") {\n switch (valueType) {\n case ModelAttributeValueType.INTEGER:\n // undefined 后台可剔除\n return isNaN(parseInt(value)) ? undefined : parseInt(value);\n case ModelAttributeValueType.FLOAT:\n return isNaN(parseFloat(value)) ? undefined : parseFloat(value);\n case ModelAttributeValueType.BOOLEAN:\n return value === \"true\";\n }\n }\n return value;\n}\n\nexport function getFieldConditionsAndValues(\n fieldQueryOperatorExpressionsMap: Record<string, QueryOperatorExpressions>,\n id: string,\n valueType: ModelAttributeValueType,\n isRelation?: boolean,\n relationSideId?: string,\n objectId?: string,\n attrId?: string\n) {\n // let isRelationWithNoExpression = false;\n // 针对主机的 agent状态,暂不支持 为空/不为空的筛选,将特殊处理\n let expressions = fieldQueryOperatorExpressionsMap[id];\n let expressionsKeys: string[];\n if (!expressions && isRelation) {\n // isRelationWithNoExpression = true;\n const relatedKey = findKey(\n fieldQueryOperatorExpressionsMap,\n (v, k) => startsWith(k, `${relationSideId}.`) || k === relationSideId\n );\n const relatedExpressions = fieldQueryOperatorExpressionsMap[relatedKey];\n if (\n relatedExpressions &&\n !isNil(relatedExpressions[ElementOperators.Exists])\n ) {\n expressions = fieldQueryOperatorExpressionsMap[relatedKey];\n }\n }\n\n if (expressions) {\n expressionsKeys = Object.keys(expressions);\n }\n let currentCondition: Condition;\n const fieldConditionType =\n isAgentStatus(objectId, id) && valueType === ModelAttributeValueType.ENUM\n ? AgentStatusConditionType\n : FieldTypeConditionTypesMap[valueType];\n const availableConditions = fieldConditionType.map((conditionType) => {\n const condition = getCondition(conditionType, valueType);\n\n if (expressionsKeys?.length) {\n const operatorsStr: string[] = [];\n // 由于当 ConditionType.Between ,operations 有两个,当用户只填选一个时,currentCondition会默认第一个选择器。与实际不符\n const isFixedValueEqual = condition.operations.every((operation) => {\n operatorsStr.push(operation.operator);\n\n if (operation.fixedValue !== undefined) {\n return (\n operation.fixedValue?.toString() ===\n expressions[operation?.operator]?.toString()\n );\n } else {\n return true;\n }\n });\n if (\n isFixedValueEqual &&\n expressionsKeys.every((operator) => operatorsStr.includes(operator))\n ) {\n currentCondition = condition;\n }\n }\n\n return condition;\n });\n if (!currentCondition) {\n currentCondition = availableConditions[0];\n }\n let queryValuesStr = \"\";\n const values = currentCondition.operations.map((operation) => {\n let value: any;\n // istanbul ignore else ElementOperators.Exists时直接返回fixedValue\n if (\n expressions?.[operation.operator] !== undefined &&\n operation.operator !== ElementOperators.Exists\n ) {\n value = expressions[operation.operator];\n let values = [expressions[operation.operator]];\n const i = multiValueSearchOperators.find(\n (multiValueSearchOperator) =>\n multiValueSearchOperator.comparisonOperator === operation.operator\n );\n if (i) {\n if (\n valueType === ModelAttributeValueType.ENUM ||\n typeof expressions[operation.operator] === \"string\"\n ) {\n values = expressions[operation.operator]\n .trim()\n .split(/\\s+/)\n .map((value: string) => convertValue(valueType, value))\n .filter((value: any) => !isNil(value));\n if (objectId === \"CLUSTER\" && attrId === \"type\") {\n values = values.map((value) => clusterMap[value]);\n }\n }\n }\n if (\n typeof values[0] === \"string\" ||\n typeof values[0] === \"number\" ||\n typeof values[0] === \"boolean\"\n ) {\n queryValuesStr = values.join(\" \");\n values = values.map((value: string) => {\n if (operation.prefix && value.startsWith(operation.prefix)) {\n value = value.slice(operation.prefix.length);\n }\n if (operation.suffix && value.endsWith(operation.suffix)) {\n value = value.slice(0, value.length - operation.suffix.length);\n }\n return value;\n });\n value = [\n ModelAttributeValueType.ENUM,\n ModelAttributeValueType.ARR,\n ].includes(valueType)\n ? values\n : values.join(\" \");\n }\n } else {\n value = operation.fixedValue !== undefined ? operation.fixedValue : null;\n }\n\n return value;\n });\n const disabled = false;\n return {\n availableConditions,\n currentCondition,\n values,\n queryValuesStr,\n disabled,\n };\n}\n\nexport interface Field {\n id: string;\n name: string;\n attrValue: Partial<CmdbModels.ModelObjectAttrValue>;\n values: any[];\n availableConditions: Condition[];\n currentCondition: Condition;\n isRelation: boolean;\n relationSideId?: string;\n disabled?: boolean;\n}\n\nexport interface AdvancedSearchFormProps extends FormComponentProps {\n fieldIds?: string[];\n idObjectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>;\n modelData: Partial<CmdbModels.ModelCmdbObject>;\n q?: Query[];\n placeholder?: string;\n onSearch?(\n queries: Query[],\n queriesToShow?: Query[],\n fieldToShow?: Record<string, any[]>[]\n ): void;\n autoSearch?: (fields: Field[]) => void;\n fieldToShow?: Record<string, any[]>[]; // 回填高级搜索的field值(根据query回填丢失了引号信息)\n onChange?(e: ChangeEvent<HTMLInputElement>): void;\n}\n\nexport interface AdvancedSearchFormState {\n fields: Field[];\n}\n\nexport class AdvancedSearchForm extends React.Component<\n AdvancedSearchFormProps,\n AdvancedSearchFormState\n> {\n constructor(props: AdvancedSearchFormProps) {\n super(props);\n\n this.state = this.computeState();\n }\n\n componentDidUpdate(prevProps: Readonly<AdvancedSearchFormProps>): void {\n if (!isEqual(this.props.q, prevProps.q)) {\n const newState = this.computeState();\n this.setState(newState);\n\n this.setFormFieldValues(newState.fields);\n }\n }\n\n computeState(): { fields: Field[] } {\n const fieldQueryOperatorExpressionsMap: Record<\n string,\n QueryOperatorExpressions\n > = {};\n const fields: Field[] = [];\n if (this.props.q) {\n this.props.q.forEach((query) => {\n Object.entries(query).forEach(([key, expressions]) => {\n if (key === LogicalOperators.Or || key === LogicalOperators.And) {\n const firstSubQuery = (expressions as Query[])[0];\n const fieldId = Object.keys(firstSubQuery)[0];\n // 由于 ConditionType.Between 这边的 operator 是两个,由于需要支持选择一个的时候也要显示出来,这边不能将选择器合并成str吐出去\n const compareOperators = Object.keys(firstSubQuery[fieldId]);\n const compareOperator =\n compareOperators.length > 1\n ? compareOperators\n : compareOperators.join(\"\");\n let subQueryValue = \"\";\n let targetField;\n if (ENABLED_CMDB_ADVANCE_SEARCH_WITH_QUOTE) {\n targetField = this.props.fieldToShow?.find(\n (fieldItem) => Object.keys(fieldItem)[0] === fieldId\n );\n }\n if (!isNil(targetField)) {\n // 二维数组会有问题,\n subQueryValue = isArray(targetField[fieldId])\n ? targetField[fieldId]\n .map((item) => (isArray(item) ? item.join(\" \") : item))\n .join(\"\")\n : (targetField[fieldId] as any);\n } else {\n subQueryValue = (expressions as Query[])\n .map((query) => {\n const targetValue = (\n query[fieldId] as Record<ComparisonOperators, any>\n )[compareOperator as ComparisonOperators];\n if (\n compareOperator === ComparisonOperators.Like ||\n compareOperator === ComparisonOperators.NotLike\n ) {\n return isString(targetValue) && targetValue.includes(\" \")\n ? `${targetValue[0]}\"${targetValue.slice(\n 1,\n targetValue.length - 1\n )}\"${targetValue[targetValue.length - 1]}`\n : targetValue;\n }\n // 对于时间选择器有两个的,不用特意将值转换成str,因为不需要这里的值\n else {\n return isString(targetValue) && targetValue.includes(\" \")\n ? `\"${targetValue}\"`\n : targetValue;\n }\n })\n .join(\" \");\n }\n key = fieldId;\n expressions = Array.isArray(compareOperator)\n ? firstSubQuery[fieldId]\n : {\n [compareOperator]: subQueryValue,\n };\n }\n\n fieldQueryOperatorExpressionsMap[key] =\n expressions as QueryOperatorExpressions;\n });\n });\n }\n forEachAvailableFields(\n this.props.modelData,\n (attr) => {\n const attrValue: Partial<CmdbModels.ModelObjectAttrValue> & {\n isStruct?: boolean;\n } & { isClusterType?: boolean } = {};\n const attrValueType: any = attr.value.type;\n switch (attrValueType) {\n case ModelAttributeValueType.STRUCT:\n case ModelAttributeValueType.STRUCT_LIST:\n attrValue.type = ModelAttributeValueType.STRING;\n attrValue.struct_define = attr.value.struct_define;\n attrValue.isStruct = true;\n break;\n case ModelAttributeValueType.ENUM:\n case ModelAttributeValueType.ENUMS:\n attrValue.type = attr.value.type;\n attrValue.regex = attr.value.regex;\n attrValue.mode = attr.value.mode;\n break;\n default:\n attrValue.type = attr.value.type;\n }\n\n fields.push({\n id: `_${attr.id}`,\n name: attr.name,\n attrValue,\n isRelation: false,\n ...getFieldConditionsAndValues(\n fieldQueryOperatorExpressionsMap,\n attr.id,\n attr.value.type as ModelAttributeValueType,\n false,\n \"\",\n this.props.modelData.objectId\n ),\n });\n },\n (relation, sides) => {\n const relationObject =\n this.props.idObjectMap[\n relation[`${sides.that}_object_id` as RelationObjectIdKeys]\n ];\n const showKeys = getInstanceNameKeys(relationObject);\n showKeys.forEach((showKey, index) => {\n const nameOfShowKey =\n find(relationObject?.attrList, [\"id\", showKey])?.name ?? showKey;\n const id = `${\n relation[`${sides.this}_id` as RelationIdKeys]\n }.${showKey}`;\n const type = ModelAttributeValueType.STRING;\n\n fields.push({\n id: `_${id}`,\n name: `${\n relation[`${sides.this}_name` as RelationNameKeys]\n }(${nameOfShowKey})`,\n attrValue: { type },\n isRelation: true,\n relationSideId: relation[`${sides.this}_id` as RelationIdKeys],\n ...getFieldConditionsAndValues(\n fieldQueryOperatorExpressionsMap,\n id,\n type,\n true,\n relation[`${sides.this}_id` as RelationNameKeys],\n this.props.modelData.objectId\n ),\n });\n });\n },\n this.props.fieldIds\n );\n return { fields };\n }\n\n setFormFieldValues(fields: Field[]): void {\n const values = fields.reduce<{ [key: string]: any }>((acc, field) => {\n field.values.map((value, valueIndex) => {\n const operation = field.currentCondition.operations[valueIndex];\n acc[`${field.id}[${valueIndex}]`] =\n operation.fixedValue === undefined ? value : \"\";\n });\n return acc;\n }, {});\n this.props.form.setFieldsValue(values);\n }\n\n onValueChange = (\n value: any,\n valueIndex: number,\n field: Field,\n fieldIndex: number\n ) => {\n this.setState({\n fields: update(this.state.fields, {\n [fieldIndex]: { values: { [valueIndex]: { $set: value } } },\n }),\n });\n };\n\n onConditionChange = (\n value: ConditionType,\n field: Field,\n fieldIndex: number\n ) => {\n const hasFixedValues = field.currentCondition.operations.some(\n (operation) => operation.fixedValue !== undefined\n );\n\n const condition = field.availableConditions.find(\n (condition) => condition.type === value\n );\n let newValues = condition.operations.map((operation) =>\n operation.fixedValue !== undefined ? operation.fixedValue : null\n );\n if (\n newValues.every((value) => value === null) &&\n !hasFixedValues &&\n this.state.fields[fieldIndex].values.length === newValues.length\n ) {\n newValues = this.state.fields[fieldIndex].values;\n }\n\n let newFields = update(this.state.fields, {\n [fieldIndex]: {\n currentCondition: { $set: condition },\n values: {\n $set: newValues,\n },\n },\n });\n\n const relatedFieldIndex = newFields.findIndex(\n (f) =>\n f.isRelation &&\n f.relationSideId === field.relationSideId &&\n f.id !== field.id\n );\n if (relatedFieldIndex !== -1) {\n const relatedField = newFields[relatedFieldIndex];\n const relatedCondition = relatedField.availableConditions.find(\n (condition) => condition.type === value\n );\n if (condition.operations[0].operator === ElementOperators.Exists) {\n newFields = update(newFields, {\n [relatedFieldIndex]: {\n currentCondition: { $set: relatedCondition },\n values: {\n $set: [null],\n },\n },\n });\n } else if (\n relatedField.currentCondition.operations[0].operator ===\n ElementOperators.Exists\n ) {\n newFields = update(newFields, {\n [relatedFieldIndex]: {\n currentCondition: { $set: relatedField.availableConditions[0] },\n values: {\n $set: [null],\n },\n },\n });\n }\n }\n\n this.setState({\n fields: newFields,\n });\n\n this.setFormFieldValues(newFields);\n };\n\n getFields() {\n const { getFieldDecorator } = this.props.form;\n const hasBetween = this.state.fields.some((field) =>\n [\n ModelAttributeValueType.IP,\n ModelAttributeValueType.DATE,\n ModelAttributeValueType.DATETIME,\n ].includes(field.attrValue.type as ModelAttributeValueType)\n );\n return this.state.fields.map((field, fieldIndex) => {\n let type: string;\n let style: React.CSSProperties;\n let attrValue: any = field.attrValue;\n let multiSelect = false;\n const isBetween: boolean =\n field.currentCondition.type === ConditionType.Between;\n switch (field.attrValue.type) {\n case ModelAttributeValueType.INTEGER:\n case ModelAttributeValueType.FLOAT:\n attrValue = {\n type: isBetween\n ? ModelAttributeValueType.INTEGER\n : ModelAttributeValueType.STRING,\n };\n break;\n case ModelAttributeValueType.ENUM:\n case ModelAttributeValueType.ENUMS:\n if (\n getRuntime().getFeatureFlags()[\"cmdb-use-tree-enum-attr\"] &&\n (field.attrValue.mode as any) ===\n ModelAttributeValueModeType.CASCADE\n ) {\n // istanbul ignore next\n type = FormControlTypeEnum.TREESELECT;\n } else {\n type = FormControlTypeEnum.SELECT;\n }\n multiSelect = true;\n break;\n case ModelAttributeValueType.DATETIME:\n style = { minWidth: \"auto\" };\n break;\n }\n //高级搜索这里即使是json格式,也用input输入框进行搜索\n if ((attrValue as any).type === \"json\") {\n attrValue = { ...attrValue, type: \"str\" };\n }\n return (\n <Col span={hasBetween ? 12 : 8} key={field.id}>\n <Form.Item label={field.name}>\n <Input.Group className={styles.conditionInputGroup} compact>\n <Select\n dropdownMatchSelectWidth={false}\n value={field.currentCondition.type}\n onChange={(value: ConditionType) =>\n this.onConditionChange(value, field, fieldIndex)\n }\n disabled={field.disabled}\n >\n {field.availableConditions.map((condition) => (\n <Select.Option value={condition.type} key={condition.type}>\n {condition.label}\n </Select.Option>\n ))}\n </Select>\n {field.values.map((value, valueIndex) => {\n const operation = field.currentCondition.operations[valueIndex];\n\n return (\n <React.Fragment\n key={`${field.currentCondition.type}-${operation.operator}`}\n >\n {valueIndex > 0 && (\n <Input\n className={styles.separatorInput}\n placeholder=\"~\"\n disabled\n />\n )}\n {getFieldDecorator(`${field.id}[${valueIndex}]`, {\n initialValue:\n operation.fixedValue === undefined ? value : \"\",\n })(\n operation.fixedValue === undefined && !field.disabled ? (\n <ModelAttributeFormControl\n type={type}\n attribute={{\n id: field.id,\n name: field.name,\n value: attrValue,\n }}\n objectId={this.props.modelData.objectId}\n multiSelect={multiSelect}\n onChange={(value: any) =>\n this.onValueChange(\n value,\n valueIndex,\n field,\n fieldIndex\n )\n }\n className={styles.conditionInput}\n style={style}\n />\n ) : (\n <Input disabled />\n )\n )}\n </React.Fragment>\n );\n })}\n </Input.Group>\n </Form.Item>\n </Col>\n );\n });\n }\n\n handleSearch = (e: FormEvent<any>): void => {\n e.preventDefault();\n const fields = this.state.fields.map((v) => ({ ...v, id: v.id.slice(1) }));\n if (this.props?.autoSearch) this.props.autoSearch(fields);\n if (this.props.onSearch) {\n // 当过滤字段为relation并且过滤条件为ElementOperators.Exists的时候,发起后台请求的搜索queries与负责前端展示的query不同。需要额外处理。\n let queries: Query[] = [];\n let queriesToShow: Query[] = [];\n const fieldToShow: Record<string, any[]>[] = [];\n fields.forEach((field) => {\n const expressions: QueryOperatorExpressions = {};\n let fieldQuery: Query = { [field.id]: expressions };\n let fieldQueryToShow: Query = { [field.id]: expressions };\n let hasValue = false;\n let structQueryId: string[];\n const isStruct = !!(field.attrValue as any).isStruct;\n if (isStruct) {\n structQueryId = field.attrValue.struct_define.map(\n (struct_item) => `${field.id}.${struct_item.id}`\n );\n }\n field.values.forEach((value, index) => {\n const operation = field.currentCondition.operations[index];\n const fieldId =\n field.isRelation && ElementOperators.Exists === operation.operator\n ? field.relationSideId\n : field.id;\n fieldQuery = { [fieldId]: expressions };\n\n const fieldIdToShow = field.id;\n fieldQueryToShow = { [fieldIdToShow]: expressions };\n\n if (\n value !== null &&\n value !== \"\" &&\n !(Array.isArray(value) && value.length === 0)\n ) {\n const multiValueSearchOperator = multiValueSearchOperators.find(\n (operator) => operator.comparisonOperator === operation.operator\n );\n if (multiValueSearchOperator) {\n let values: any[];\n if (\n field.attrValue.type === ModelAttributeValueType.ENUM ||\n field.attrValue.type === ModelAttributeValueType.ARR\n ) {\n values = value;\n } else if (typeof value === \"string\") {\n if (\n !ENABLED_CMDB_ADVANCE_SEARCH_WITH_QUOTE ||\n !value.includes('\"')\n ) {\n values = value\n .trim()\n .split(/\\s+/)\n .map((value) => convertValue(field.attrValue.type, value))\n .filter((value) => !isNil(value));\n } else {\n values = processAttrValueWithQuote(value, []);\n }\n } else {\n values = [value];\n }\n if (values.length) {\n if (isStruct) {\n fieldQuery = {\n [multiValueSearchOperator.logicalOperator]: flatten(\n values.map((value) => {\n if (operation.prefix) {\n value = operation.prefix + value;\n }\n if (operation.suffix) {\n value += operation.suffix;\n }\n\n return structQueryId.map(\n (structId: string | number) => ({\n [structId]: {\n [operation.operator]: value,\n },\n })\n );\n })\n ),\n };\n } else {\n fieldQuery = {\n [multiValueSearchOperator.logicalOperator]: values.map(\n (value) => {\n if (operation.prefix) {\n value = operation.prefix + value;\n }\n if (operation.suffix) {\n value += operation.suffix;\n }\n return {\n [fieldId]: {\n [operation.operator]: value,\n },\n };\n }\n ),\n };\n }\n fieldQueryToShow = {\n [multiValueSearchOperator.logicalOperator]: values.map(\n (value) => {\n if (operation.prefix) {\n value = operation.prefix + value;\n }\n if (operation.suffix) {\n value += operation.suffix;\n }\n return {\n [fieldIdToShow]: {\n [operation.operator]: value,\n },\n };\n }\n ),\n };\n hasValue = true;\n fieldToShow.push({ [field.id]: field.values });\n }\n } else {\n value = convertValue(field.attrValue.type, value);\n if (operation.prefix) {\n value = operation.prefix + value;\n }\n if (operation.suffix) {\n value += operation.suffix;\n }\n expressions[operation.operator] = value;\n hasValue = true;\n fieldToShow.push({ [field.id]: field.values });\n }\n }\n });\n if (hasValue) {\n queries.push(fieldQuery);\n queriesToShow.push(fieldQueryToShow);\n }\n });\n if (queries.length === 0) {\n queries = undefined;\n queriesToShow = undefined;\n }\n if (!isEqual(this.props.q, queries)) {\n this.props.onSearch(queries, queriesToShow, fieldToShow);\n }\n }\n };\n\n handleReset = () => {\n if (this.props.autoSearch) this.props.autoSearch([]);\n this.props.onSearch([], [], []);\n this.props.form.resetFields();\n };\n\n render(): React.ReactNode {\n return (\n <div className={styles.advancedSearch}>\n <Form\n layout=\"vertical\"\n className={styles.advancedSearchForm}\n onSubmit={this.handleSearch}\n >\n <Row gutter={50}>{this.getFields()}</Row>\n <Row>\n <Col span={24} style={{ textAlign: \"right\" }}>\n <Button\n type=\"primary\"\n htmlType=\"submit\"\n data-testid=\"submit-button\"\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.SEARCH}`)}\n </Button>\n <Button\n style={{ marginLeft: 8 }}\n onClick={this.handleReset}\n data-testid=\"reset-button\"\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.RESET}`)}\n </Button>\n </Col>\n </Row>\n </Form>\n </div>\n );\n }\n}\n\nexport const AdvancedSearch = Form.create<AdvancedSearchFormProps>({\n name: \"advanced_search\",\n})(AdvancedSearchForm);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AdvancedSearch.js","names":["React","update","isEqual","find","startsWith","findKey","isNil","flatten","isString","isArray","Form","Button","Col","Input","Row","Select","getRuntime","ComparisonOperators","ElementOperators","forEachAvailableFields","getInstanceNameKeys","LogicalOperators","clusterMap","styles","i18n","NS_LIBS_CMDB_INSTANCES","K","FormControlTypeEnum","ModelAttributeFormControl","ModelAttributeValueType","ModelAttributeValueModeType","processAttrValueWithQuote","ENABLED_CMDB_ADVANCE_SEARCH_WITH_QUOTE","isAgentStatus","ConditionType","FieldTypeConditionTypesMap","STRING","Contain","NotContain","Equal","NotEqual","Empty","NotEmpty","INTEGER","Between","FLOAT","DATE","DATETIME","ENUM","ENUMS","ARR","STRUCT","IP","BOOLEAN","JSON","AgentStatusConditionType","multiValueSearchOperators","comparisonOperator","Like","logicalOperator","Or","NotLike","And","STRUCT_LIST","getCondition","conditionType","fieldType","label","operations","t","concat","OPERATOR_EQUAL_DEFINE","operator","In","OPERATOR_NOT_EQUAL_DEFINE","NotIn","OPERATOR_CONTAIN_DEFINE","prefix","suffix","OPERATOR_NOT_CONTAIN_DEFINE","OPERATOR_IS_EMPTY_DEFINE","Exists","fixedValue","OPERATOR_IS_NOT_EMPTY_DEFINE","True","False","GreaterThanOrEqual","LessThanOrEqual","OPERATOR_BETWEEN_DEFINE_TEXT_INT","OPERATOR_BETWEEN_DEFINE_TEXT_TIME","OPERATOR_BETWEEN_DEFINE_TEXT","OPERATOR_BETWEEN_DEFINE_TEXT_THE","type","convertValue","valueType","value","isNaN","parseInt","undefined","parseFloat","getFieldConditionsAndValues","fieldQueryOperatorExpressionsMap","id","isRelation","relationSideId","objectId","attrId","expressions","expressionsKeys","relatedKey","v","k","relatedExpressions","Object","keys","currentCondition","fieldConditionType","availableConditions","map","_expressionsKeys","condition","length","operatorsStr","isFixedValueEqual","every","operation","push","_operation$fixedValue","_expressions$operatio","toString","includes","queryValuesStr","values","_expressions","i","multiValueSearchOperator","trim","split","filter","join","slice","endsWith","disabled","AdvancedSearchForm","Component","constructor","props","_defineProperty","valueIndex","field","fieldIndex","setState","fields","state","$set","hasFixedValues","some","newValues","newFields","relatedFieldIndex","findIndex","f","relatedField","relatedCondition","setFormFieldValues","e","_this$props","preventDefault","_objectSpread","autoSearch","onSearch","queries","queriesToShow","fieldToShow","forEach","fieldQuery","fieldQueryToShow","hasValue","structQueryId","isStruct","attrValue","struct_define","struct_item","index","fieldId","fieldIdToShow","Array","structId","q","form","resetFields","computeState","componentDidUpdate","prevProps","newState","query","entries","_ref","key","firstSubQuery","compareOperators","compareOperator","subQueryValue","targetField","_this$props$fieldToSh","fieldItem","item","targetValue","modelData","attr","attrValueType","regex","mode","name","relation","sides","relationObject","idObjectMap","that","showKeys","showKey","_find$name","_find","nameOfShowKey","attrList","this","fieldIds","reduce","acc","setFieldsValue","getFields","getFieldDecorator","hasBetween","style","multiSelect","isBetween","getFeatureFlags","CASCADE","TREESELECT","SELECT","minWidth","createElement","span","Item","Group","className","conditionInputGroup","compact","dropdownMatchSelectWidth","onChange","onConditionChange","Option","Fragment","separatorInput","placeholder","initialValue","attribute","onValueChange","conditionInput","render","advancedSearch","layout","advancedSearchForm","onSubmit","handleSearch","gutter","textAlign","htmlType","SEARCH","marginLeft","onClick","handleReset","RESET","AdvancedSearch","create"],"sources":["../../../src/instance-list-table/AdvancedSearch.tsx"],"sourcesContent":["import React, { ChangeEvent, FormEvent } from \"react\";\nimport update from \"immutability-helper\";\nimport {\n isEqual,\n find,\n startsWith,\n findKey,\n isNil,\n flatten,\n isString,\n isArray,\n} from \"lodash\";\nimport { Form } from \"@ant-design/compatible\";\nimport { Button, Col, Input, Row, Select } from \"antd\";\nimport { FormComponentProps } from \"@ant-design/compatible/lib/form\";\nimport { CmdbModels } from \"@next-sdk/cmdb-sdk\";\nimport { getRuntime } from \"@next-core/brick-kit\";\nimport {\n ComparisonOperators,\n ElementOperators,\n forEachAvailableFields,\n getInstanceNameKeys,\n LogicalOperators,\n Query,\n QueryOperatorExpressions,\n RelationIdKeys,\n RelationNameKeys,\n RelationObjectIdKeys,\n} from \"@next-libs/cmdb-utils\";\nimport { clusterMap } from \"./constants\";\nimport styles from \"./AdvancedSearch.module.css\";\nimport i18n from \"i18next\";\nimport { NS_LIBS_CMDB_INSTANCES, K } from \"../i18n/constants\";\nimport {\n FormControlTypeEnum,\n ModelAttributeFormControl,\n ModelAttributeValueType,\n ModelAttributeValueModeType,\n} from \"../model-attribute-form-control/ModelAttributeFormControl\";\nimport {\n processAttrValueWithQuote,\n ENABLED_CMDB_ADVANCE_SEARCH_WITH_QUOTE,\n isAgentStatus,\n} from \"../processors\";\n\nexport enum ConditionType {\n Equal = \"equal\",\n NotEqual = \"notEqual\",\n Contain = \"contain\",\n NotContain = \"notContain\",\n Empty = \"empty\",\n NotEmpty = \"notEmpty\",\n Between = \"between\",\n True = \"true\",\n False = \"false\",\n}\n\ninterface ConditionOperation {\n operator: ComparisonOperators | ElementOperators;\n fixedValue?: any;\n prefix?: string;\n suffix?: string;\n}\n\ninterface Condition {\n type: ConditionType;\n label: string;\n operations: ConditionOperation[];\n}\n\nconst FieldTypeConditionTypesMap: Record<string, ConditionType[]> = {\n [ModelAttributeValueType.STRING]: [\n ConditionType.Contain,\n ConditionType.NotContain,\n ConditionType.Equal,\n ConditionType.NotEqual,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ],\n [ModelAttributeValueType.INTEGER]: [\n ConditionType.Equal,\n ConditionType.NotEqual,\n ConditionType.Between,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ],\n [ModelAttributeValueType.FLOAT]: [\n ConditionType.Equal,\n ConditionType.NotEqual,\n ConditionType.Between,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ],\n [ModelAttributeValueType.DATE]: [\n ConditionType.Equal,\n ConditionType.NotEqual,\n ConditionType.Between,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ],\n [ModelAttributeValueType.DATETIME]: [\n ConditionType.Between,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ],\n [ModelAttributeValueType.ENUM]: [\n ConditionType.Equal,\n ConditionType.NotEqual,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ],\n [ModelAttributeValueType.ENUMS]: [\n ConditionType.Contain,\n ConditionType.NotContain,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ],\n [ModelAttributeValueType.ARR]: [\n ConditionType.Contain,\n ConditionType.NotContain,\n ConditionType.Equal,\n ConditionType.NotEqual,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ],\n [ModelAttributeValueType.STRUCT]: [\n ConditionType.Contain,\n ConditionType.NotContain,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ],\n [ModelAttributeValueType.IP]: [\n ConditionType.Contain,\n ConditionType.NotContain,\n ConditionType.Equal,\n ConditionType.NotEqual,\n ConditionType.Between,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ],\n [ModelAttributeValueType.BOOLEAN]: [\n ConditionType.Equal,\n ConditionType.NotEqual,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ],\n [ModelAttributeValueType.JSON]: [\n ConditionType.Contain,\n ConditionType.NotContain,\n ConditionType.Empty,\n ConditionType.NotEmpty,\n ],\n};\n\nconst AgentStatusConditionType: ConditionType[] = [\n ConditionType.Equal,\n ConditionType.NotEqual,\n];\nconst multiValueSearchOperators = [\n {\n comparisonOperator: ComparisonOperators.Like,\n logicalOperator: LogicalOperators.Or,\n },\n {\n comparisonOperator: ComparisonOperators.NotLike,\n logicalOperator: LogicalOperators.And,\n },\n {\n comparisonOperator: ComparisonOperators.Equal,\n logicalOperator: LogicalOperators.Or,\n },\n {\n comparisonOperator: ComparisonOperators.NotEqual,\n logicalOperator: LogicalOperators.And,\n },\n];\nFieldTypeConditionTypesMap[ModelAttributeValueType.STRUCT_LIST] =\n FieldTypeConditionTypesMap[ModelAttributeValueType.STRUCT];\n\nexport function getCondition(\n conditionType: ConditionType,\n fieldType: ModelAttributeValueType\n): Condition {\n let label: string;\n let operations: ConditionOperation[];\n\n switch (conditionType) {\n case ConditionType.Equal:\n label = i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.OPERATOR_EQUAL_DEFINE}`);\n switch (fieldType) {\n case ModelAttributeValueType.ARR:\n operations = [\n {\n operator: ComparisonOperators.In,\n },\n ];\n break;\n default:\n operations = [\n {\n operator: ComparisonOperators.Equal,\n },\n ];\n }\n break;\n case ConditionType.NotEqual:\n label = i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.OPERATOR_NOT_EQUAL_DEFINE}`\n );\n switch (fieldType) {\n case ModelAttributeValueType.ARR:\n operations = [\n {\n operator: ComparisonOperators.NotIn,\n },\n ];\n break;\n default:\n operations = [\n {\n operator: ComparisonOperators.NotEqual,\n },\n ];\n }\n break;\n case ConditionType.Contain:\n label = i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.OPERATOR_CONTAIN_DEFINE}`);\n switch (fieldType) {\n case ModelAttributeValueType.ENUMS:\n operations = [\n {\n operator: ComparisonOperators.In,\n },\n ];\n break;\n default:\n operations = [\n {\n operator: ComparisonOperators.Like,\n prefix: \"%\",\n suffix: \"%\",\n },\n ];\n }\n break;\n case ConditionType.NotContain:\n label = i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.OPERATOR_NOT_CONTAIN_DEFINE}`\n );\n switch (fieldType) {\n case ModelAttributeValueType.ENUMS:\n operations = [\n {\n operator: ComparisonOperators.NotIn,\n },\n ];\n break;\n default:\n operations = [\n {\n operator: ComparisonOperators.NotLike,\n prefix: \"%\",\n suffix: \"%\",\n },\n ];\n }\n break;\n case ConditionType.Empty:\n label = i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.OPERATOR_IS_EMPTY_DEFINE}`);\n operations = [\n {\n operator: ElementOperators.Exists,\n fixedValue: false,\n },\n ];\n break;\n case ConditionType.NotEmpty:\n label = i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.OPERATOR_IS_NOT_EMPTY_DEFINE}`\n );\n operations = [\n {\n operator: ElementOperators.Exists,\n fixedValue: true,\n },\n ];\n break;\n case ConditionType.True:\n label = \"true\";\n operations = [\n {\n operator: ComparisonOperators.Equal,\n fixedValue: true,\n },\n ];\n break;\n case ConditionType.False:\n label = \"false\";\n operations = [\n {\n operator: ComparisonOperators.Equal,\n fixedValue: false,\n },\n ];\n break;\n case ConditionType.Between:\n operations = [\n {\n operator: ComparisonOperators.GreaterThanOrEqual,\n },\n {\n operator: ComparisonOperators.LessThanOrEqual,\n },\n ];\n switch (fieldType) {\n case ModelAttributeValueType.INTEGER:\n case ModelAttributeValueType.FLOAT:\n // label = \"在此区间\";\n label = i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.OPERATOR_BETWEEN_DEFINE_TEXT_INT}`\n );\n break;\n case ModelAttributeValueType.DATE:\n case ModelAttributeValueType.DATETIME:\n // label = \"在此期间\";\n label = i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.OPERATOR_BETWEEN_DEFINE_TEXT_TIME}`\n );\n break;\n case ModelAttributeValueType.IP:\n // label = \"范围\";\n label = i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.OPERATOR_BETWEEN_DEFINE_TEXT}`\n );\n break;\n default:\n // label = \"在此之间\";\n label = i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.OPERATOR_BETWEEN_DEFINE_TEXT_THE}`\n );\n }\n break;\n }\n\n return {\n type: conditionType,\n label,\n operations,\n };\n}\n\nexport function convertValue(valueType: string, value: any): any {\n if (typeof value !== \"boolean\") {\n switch (valueType) {\n case ModelAttributeValueType.INTEGER:\n // undefined 后台可剔除\n return isNaN(parseInt(value)) ? undefined : parseInt(value);\n case ModelAttributeValueType.FLOAT:\n return isNaN(parseFloat(value)) ? undefined : parseFloat(value);\n case ModelAttributeValueType.BOOLEAN:\n return value === \"true\";\n }\n }\n return value;\n}\n\nexport function getFieldConditionsAndValues(\n fieldQueryOperatorExpressionsMap: Record<string, QueryOperatorExpressions>,\n id: string,\n valueType: ModelAttributeValueType,\n isRelation?: boolean,\n relationSideId?: string,\n objectId?: string,\n attrId?: string\n) {\n // let isRelationWithNoExpression = false;\n // 针对主机的 agent状态,暂不支持 为空/不为空的筛选,将特殊处理\n let expressions = fieldQueryOperatorExpressionsMap[id];\n let expressionsKeys: string[];\n if (!expressions && isRelation) {\n // isRelationWithNoExpression = true;\n const relatedKey = findKey(\n fieldQueryOperatorExpressionsMap,\n (v, k) => startsWith(k, `${relationSideId}.`) || k === relationSideId\n );\n const relatedExpressions = fieldQueryOperatorExpressionsMap[relatedKey];\n if (\n relatedExpressions &&\n !isNil(relatedExpressions[ElementOperators.Exists])\n ) {\n expressions = fieldQueryOperatorExpressionsMap[relatedKey];\n }\n }\n\n if (expressions) {\n expressionsKeys = Object.keys(expressions);\n }\n let currentCondition: Condition;\n const fieldConditionType =\n isAgentStatus(objectId, id) && valueType === ModelAttributeValueType.ENUM\n ? AgentStatusConditionType\n : FieldTypeConditionTypesMap[valueType];\n const availableConditions = fieldConditionType.map((conditionType) => {\n const condition = getCondition(conditionType, valueType);\n\n if (expressionsKeys?.length) {\n const operatorsStr: string[] = [];\n // 由于当 ConditionType.Between ,operations 有两个,当用户只填选一个时,currentCondition会默认第一个选择器。与实际不符\n const isFixedValueEqual = condition.operations.every((operation) => {\n operatorsStr.push(operation.operator);\n\n if (operation.fixedValue !== undefined) {\n return (\n operation.fixedValue?.toString() ===\n expressions[operation?.operator]?.toString()\n );\n } else {\n return true;\n }\n });\n if (\n isFixedValueEqual &&\n expressionsKeys.every((operator) => operatorsStr.includes(operator))\n ) {\n currentCondition = condition;\n }\n }\n\n return condition;\n });\n if (!currentCondition) {\n currentCondition = availableConditions[0];\n }\n let queryValuesStr = \"\";\n const values = currentCondition.operations.map((operation) => {\n let value: any;\n // istanbul ignore else ElementOperators.Exists时直接返回fixedValue\n if (\n expressions?.[operation.operator] !== undefined &&\n operation.operator !== ElementOperators.Exists\n ) {\n value = expressions[operation.operator];\n let values = [expressions[operation.operator]];\n const i = multiValueSearchOperators.find(\n (multiValueSearchOperator) =>\n multiValueSearchOperator.comparisonOperator === operation.operator\n );\n if (i) {\n if (\n valueType === ModelAttributeValueType.ENUM ||\n typeof expressions[operation.operator] === \"string\"\n ) {\n values = expressions[operation.operator]\n .trim()\n .split(/\\s+/)\n .map((value: string) => convertValue(valueType, value))\n .filter((value: any) => !isNil(value));\n if (objectId === \"CLUSTER\" && attrId === \"type\") {\n values = values.map((value) => clusterMap[value]);\n }\n }\n }\n if (\n typeof values[0] === \"string\" ||\n typeof values[0] === \"number\" ||\n typeof values[0] === \"boolean\"\n ) {\n queryValuesStr = values.join(\" \");\n values = values.map((value: string) => {\n if (operation.prefix && value.startsWith(operation.prefix)) {\n value = value.slice(operation.prefix.length);\n }\n if (operation.suffix && value.endsWith(operation.suffix)) {\n value = value.slice(0, value.length - operation.suffix.length);\n }\n return value;\n });\n value = [\n ModelAttributeValueType.ENUM,\n ModelAttributeValueType.ARR,\n ].includes(valueType)\n ? values\n : values.join(\" \");\n }\n } else {\n value = operation.fixedValue !== undefined ? operation.fixedValue : null;\n }\n\n return value;\n });\n const disabled = false;\n return {\n availableConditions,\n currentCondition,\n values,\n queryValuesStr,\n disabled,\n };\n}\n\nexport interface Field {\n id: string;\n name: string;\n attrValue: Partial<CmdbModels.ModelObjectAttrValue>;\n values: any[];\n availableConditions: Condition[];\n currentCondition: Condition;\n isRelation: boolean;\n relationSideId?: string;\n disabled?: boolean;\n}\n\nexport interface AdvancedSearchFormProps extends FormComponentProps {\n fieldIds?: string[];\n idObjectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>;\n modelData: Partial<CmdbModels.ModelCmdbObject>;\n q?: Query[];\n placeholder?: string;\n onSearch?(\n queries: Query[],\n queriesToShow?: Query[],\n fieldToShow?: Record<string, any[]>[]\n ): void;\n autoSearch?: (fields: Field[]) => void;\n fieldToShow?: Record<string, any[]>[]; // 回填高级搜索的field值(根据query回填丢失了引号信息)\n onChange?(e: ChangeEvent<HTMLInputElement>): void;\n}\n\nexport interface AdvancedSearchFormState {\n fields: Field[];\n}\n\nexport class AdvancedSearchForm extends React.Component<\n AdvancedSearchFormProps,\n AdvancedSearchFormState\n> {\n constructor(props: AdvancedSearchFormProps) {\n super(props);\n\n this.state = this.computeState();\n }\n\n componentDidUpdate(prevProps: Readonly<AdvancedSearchFormProps>): void {\n if (!isEqual(this.props.q, prevProps.q)) {\n const newState = this.computeState();\n this.setState(newState);\n\n this.setFormFieldValues(newState.fields);\n }\n }\n\n computeState(): { fields: Field[] } {\n const fieldQueryOperatorExpressionsMap: Record<\n string,\n QueryOperatorExpressions\n > = {};\n const fields: Field[] = [];\n if (this.props.q) {\n this.props.q.forEach((query) => {\n Object.entries(query).forEach(([key, expressions]) => {\n if (key === LogicalOperators.Or || key === LogicalOperators.And) {\n const firstSubQuery = (expressions as Query[])[0];\n const fieldId = Object.keys(firstSubQuery)[0];\n // 由于 ConditionType.Between 这边的 operator 是两个,由于需要支持选择一个的时候也要显示出来,这边不能将选择器合并成str吐出去\n const compareOperators = Object.keys(firstSubQuery[fieldId]);\n const compareOperator =\n compareOperators.length > 1\n ? compareOperators\n : compareOperators.join(\"\");\n let subQueryValue = \"\";\n let targetField;\n if (ENABLED_CMDB_ADVANCE_SEARCH_WITH_QUOTE) {\n targetField = this.props.fieldToShow?.find(\n (fieldItem) => Object.keys(fieldItem)[0] === fieldId\n );\n }\n if (!isNil(targetField)) {\n // 二维数组会有问题,\n subQueryValue = isArray(targetField[fieldId])\n ? targetField[fieldId]\n .map((item) => (isArray(item) ? item.join(\" \") : item))\n .join(\"\")\n : (targetField[fieldId] as any);\n } else {\n subQueryValue = (expressions as Query[])\n .map((query) => {\n const targetValue = (\n query[fieldId] as Record<ComparisonOperators, any>\n )[compareOperator as ComparisonOperators];\n if (\n compareOperator === ComparisonOperators.Like ||\n compareOperator === ComparisonOperators.NotLike\n ) {\n return isString(targetValue) && targetValue.includes(\" \")\n ? `${targetValue[0]}\"${targetValue.slice(\n 1,\n targetValue.length - 1\n )}\"${targetValue[targetValue.length - 1]}`\n : targetValue;\n }\n // 对于时间选择器有两个的,不用特意将值转换成str,因为不需要这里的值\n else {\n return isString(targetValue) && targetValue.includes(\" \")\n ? `\"${targetValue}\"`\n : targetValue;\n }\n })\n .join(\" \");\n }\n key = fieldId;\n expressions = Array.isArray(compareOperator)\n ? firstSubQuery[fieldId]\n : {\n [compareOperator]: subQueryValue,\n };\n }\n\n fieldQueryOperatorExpressionsMap[key] =\n expressions as QueryOperatorExpressions;\n });\n });\n }\n forEachAvailableFields(\n this.props.modelData,\n (attr) => {\n const attrValue: Partial<CmdbModels.ModelObjectAttrValue> & {\n isStruct?: boolean;\n } & { isClusterType?: boolean } = {};\n const attrValueType: any = attr.value.type;\n switch (attrValueType) {\n case ModelAttributeValueType.STRUCT:\n case ModelAttributeValueType.STRUCT_LIST:\n attrValue.type = ModelAttributeValueType.STRING;\n attrValue.struct_define = attr.value.struct_define;\n attrValue.isStruct = true;\n break;\n case ModelAttributeValueType.ENUM:\n case ModelAttributeValueType.ENUMS:\n attrValue.type = attr.value.type;\n attrValue.regex = attr.value.regex;\n attrValue.mode = attr.value.mode;\n break;\n default:\n attrValue.type = attr.value.type;\n }\n\n fields.push({\n id: `_${attr.id}`,\n name: attr.name,\n attrValue,\n isRelation: false,\n ...getFieldConditionsAndValues(\n fieldQueryOperatorExpressionsMap,\n attr.id,\n attr.value.type as ModelAttributeValueType,\n false,\n \"\",\n this.props.modelData.objectId\n ),\n });\n },\n (relation, sides) => {\n const relationObject =\n this.props.idObjectMap[\n relation[`${sides.that}_object_id` as RelationObjectIdKeys]\n ];\n const showKeys = getInstanceNameKeys(relationObject);\n showKeys.forEach((showKey, index) => {\n const nameOfShowKey =\n find(relationObject?.attrList, [\"id\", showKey])?.name ?? showKey;\n const id = `${\n relation[`${sides.this}_id` as RelationIdKeys]\n }.${showKey}`;\n const type = ModelAttributeValueType.STRING;\n\n fields.push({\n id: `_${id}`,\n name: `${\n relation[`${sides.this}_name` as RelationNameKeys]\n }(${nameOfShowKey})`,\n attrValue: { type },\n isRelation: true,\n relationSideId: relation[`${sides.this}_id` as RelationIdKeys],\n ...getFieldConditionsAndValues(\n fieldQueryOperatorExpressionsMap,\n id,\n type,\n true,\n relation[`${sides.this}_id` as RelationNameKeys],\n this.props.modelData.objectId\n ),\n });\n });\n },\n this.props.fieldIds\n );\n return { fields };\n }\n\n setFormFieldValues(fields: Field[]): void {\n const values = fields.reduce<{ [key: string]: any }>((acc, field) => {\n field.values.map((value, valueIndex) => {\n const operation = field.currentCondition.operations[valueIndex];\n acc[`${field.id}[${valueIndex}]`] =\n operation.fixedValue === undefined ? value : \"\";\n });\n return acc;\n }, {});\n this.props.form.setFieldsValue(values);\n }\n\n onValueChange = (\n value: any,\n valueIndex: number,\n field: Field,\n fieldIndex: number\n ) => {\n this.setState({\n fields: update(this.state.fields, {\n [fieldIndex]: { values: { [valueIndex]: { $set: value } } },\n }),\n });\n };\n\n onConditionChange = (\n value: ConditionType,\n field: Field,\n fieldIndex: number\n ) => {\n const hasFixedValues = field.currentCondition.operations.some(\n (operation) => operation.fixedValue !== undefined\n );\n\n const condition = field.availableConditions.find(\n (condition) => condition.type === value\n );\n let newValues = condition.operations.map((operation) =>\n operation.fixedValue !== undefined ? operation.fixedValue : null\n );\n if (\n newValues.every((value) => value === null) &&\n !hasFixedValues &&\n this.state.fields[fieldIndex].values.length === newValues.length\n ) {\n newValues = this.state.fields[fieldIndex].values;\n }\n\n let newFields = update(this.state.fields, {\n [fieldIndex]: {\n currentCondition: { $set: condition },\n values: {\n $set: newValues,\n },\n },\n });\n\n const relatedFieldIndex = newFields.findIndex(\n (f) =>\n f.isRelation &&\n f.relationSideId === field.relationSideId &&\n f.id !== field.id\n );\n if (relatedFieldIndex !== -1) {\n const relatedField = newFields[relatedFieldIndex];\n const relatedCondition = relatedField.availableConditions.find(\n (condition) => condition.type === value\n );\n if (condition.operations[0].operator === ElementOperators.Exists) {\n newFields = update(newFields, {\n [relatedFieldIndex]: {\n currentCondition: { $set: relatedCondition },\n values: {\n $set: [null],\n },\n },\n });\n } else if (\n relatedField.currentCondition.operations[0].operator ===\n ElementOperators.Exists\n ) {\n newFields = update(newFields, {\n [relatedFieldIndex]: {\n currentCondition: { $set: relatedField.availableConditions[0] },\n values: {\n $set: [null],\n },\n },\n });\n }\n }\n\n this.setState({\n fields: newFields,\n });\n\n this.setFormFieldValues(newFields);\n };\n\n getFields() {\n const { getFieldDecorator } = this.props.form;\n const hasBetween = this.state.fields.some((field) =>\n [\n ModelAttributeValueType.IP,\n ModelAttributeValueType.DATE,\n ModelAttributeValueType.DATETIME,\n ].includes(field.attrValue.type as ModelAttributeValueType)\n );\n return this.state.fields.map((field, fieldIndex) => {\n let type: string;\n let style: React.CSSProperties;\n let attrValue: any = field.attrValue;\n let multiSelect = false;\n const isBetween: boolean =\n field.currentCondition.type === ConditionType.Between;\n switch (field.attrValue.type) {\n case ModelAttributeValueType.INTEGER:\n case ModelAttributeValueType.FLOAT:\n attrValue = {\n type: isBetween\n ? ModelAttributeValueType.INTEGER\n : ModelAttributeValueType.STRING,\n };\n break;\n case ModelAttributeValueType.ENUM:\n case ModelAttributeValueType.ENUMS:\n if (\n getRuntime().getFeatureFlags()[\"cmdb-use-tree-enum-attr\"] &&\n (field.attrValue.mode as any) ===\n ModelAttributeValueModeType.CASCADE\n ) {\n // istanbul ignore next\n type = FormControlTypeEnum.TREESELECT;\n } else {\n type = FormControlTypeEnum.SELECT;\n }\n multiSelect = true;\n break;\n case ModelAttributeValueType.DATETIME:\n style = { minWidth: \"auto\" };\n break;\n }\n //高级搜索这里即使是json格式,也用input输入框进行搜索\n if ((attrValue as any).type === \"json\") {\n attrValue = { ...attrValue, type: \"str\" };\n }\n return (\n <Col span={hasBetween ? 12 : 8} key={field.id}>\n <Form.Item label={field.name}>\n <Input.Group className={styles.conditionInputGroup} compact>\n <Select\n dropdownMatchSelectWidth={false}\n value={field.currentCondition.type}\n onChange={(value: ConditionType) =>\n this.onConditionChange(value, field, fieldIndex)\n }\n disabled={field.disabled}\n >\n {field.availableConditions.map((condition) => (\n <Select.Option value={condition.type} key={condition.type}>\n {condition.label}\n </Select.Option>\n ))}\n </Select>\n {field.values.map((value, valueIndex) => {\n const operation = field.currentCondition.operations[valueIndex];\n\n return (\n <React.Fragment\n key={`${field.currentCondition.type}-${operation.operator}`}\n >\n {valueIndex > 0 && (\n <Input\n className={styles.separatorInput}\n placeholder=\"~\"\n disabled\n />\n )}\n {getFieldDecorator(`${field.id}[${valueIndex}]`, {\n initialValue:\n operation.fixedValue === undefined ? value : \"\",\n })(\n operation.fixedValue === undefined && !field.disabled ? (\n <ModelAttributeFormControl\n type={type}\n attribute={{\n id: field.id,\n name: field.name,\n value: attrValue,\n }}\n objectId={this.props.modelData.objectId}\n multiSelect={multiSelect}\n onChange={(value: any) =>\n this.onValueChange(\n value,\n valueIndex,\n field,\n fieldIndex\n )\n }\n className={styles.conditionInput}\n style={style}\n />\n ) : (\n <Input disabled />\n )\n )}\n </React.Fragment>\n );\n })}\n </Input.Group>\n </Form.Item>\n </Col>\n );\n });\n }\n\n handleSearch = (e: FormEvent<any>): void => {\n e.preventDefault();\n const fields = this.state.fields.map((v) => ({ ...v, id: v.id.slice(1) }));\n if (this.props?.autoSearch) this.props.autoSearch(fields);\n if (this.props.onSearch) {\n // 当过滤字段为relation并且过滤条件为ElementOperators.Exists的时候,发起后台请求的搜索queries与负责前端展示的query不同。需要额外处理。\n let queries: Query[] = [];\n let queriesToShow: Query[] = [];\n const fieldToShow: Record<string, any[]>[] = [];\n fields.forEach((field) => {\n const expressions: QueryOperatorExpressions = {};\n let fieldQuery: Query = { [field.id]: expressions };\n let fieldQueryToShow: Query = { [field.id]: expressions };\n let hasValue = false;\n let structQueryId: string[];\n const isStruct = !!(field.attrValue as any).isStruct;\n if (isStruct) {\n structQueryId = field.attrValue.struct_define.map(\n (struct_item) => `${field.id}.${struct_item.id}`\n );\n }\n field.values.forEach((value, index) => {\n const operation = field.currentCondition.operations[index];\n const fieldId =\n field.isRelation && ElementOperators.Exists === operation.operator\n ? field.relationSideId\n : field.id;\n fieldQuery = { [fieldId]: expressions };\n\n const fieldIdToShow = field.id;\n fieldQueryToShow = { [fieldIdToShow]: expressions };\n\n if (\n value !== null &&\n value !== \"\" &&\n !(Array.isArray(value) && value.length === 0)\n ) {\n const multiValueSearchOperator = multiValueSearchOperators.find(\n (operator) => operator.comparisonOperator === operation.operator\n );\n if (multiValueSearchOperator) {\n let values: any[];\n if (\n field.attrValue.type === ModelAttributeValueType.ENUM ||\n field.attrValue.type === ModelAttributeValueType.ARR\n ) {\n values = value;\n } else if (typeof value === \"string\") {\n if (\n !ENABLED_CMDB_ADVANCE_SEARCH_WITH_QUOTE ||\n !value.includes('\"')\n ) {\n values = value\n .trim()\n .split(/\\s+/)\n .map((value) => convertValue(field.attrValue.type, value))\n .filter((value) => !isNil(value));\n } else {\n values = processAttrValueWithQuote(value, []);\n }\n } else {\n values = [value];\n }\n if (values.length) {\n if (isStruct) {\n fieldQuery = {\n [multiValueSearchOperator.logicalOperator]: flatten(\n values.map((value) => {\n if (operation.prefix) {\n value = operation.prefix + value;\n }\n if (operation.suffix) {\n value += operation.suffix;\n }\n\n return structQueryId.map(\n (structId: string | number) => ({\n [structId]: {\n [operation.operator]: value,\n },\n })\n );\n })\n ),\n };\n } else {\n fieldQuery = {\n [multiValueSearchOperator.logicalOperator]: values.map(\n (value) => {\n if (operation.prefix) {\n value = operation.prefix + value;\n }\n if (operation.suffix) {\n value += operation.suffix;\n }\n return {\n [fieldId]: {\n [operation.operator]: value,\n },\n };\n }\n ),\n };\n }\n fieldQueryToShow = {\n [multiValueSearchOperator.logicalOperator]: values.map(\n (value) => {\n if (operation.prefix) {\n value = operation.prefix + value;\n }\n if (operation.suffix) {\n value += operation.suffix;\n }\n return {\n [fieldIdToShow]: {\n [operation.operator]: value,\n },\n };\n }\n ),\n };\n hasValue = true;\n fieldToShow.push({ [field.id]: field.values });\n }\n } else {\n value = convertValue(field.attrValue.type, value);\n if (operation.prefix) {\n value = operation.prefix + value;\n }\n if (operation.suffix) {\n value += operation.suffix;\n }\n expressions[operation.operator] = value;\n hasValue = true;\n fieldToShow.push({ [field.id]: field.values });\n }\n }\n });\n if (hasValue) {\n queries.push(fieldQuery);\n queriesToShow.push(fieldQueryToShow);\n }\n });\n if (queries.length === 0) {\n queries = undefined;\n queriesToShow = undefined;\n }\n if (!isEqual(this.props.q, queries)) {\n this.props.onSearch(queries, queriesToShow, fieldToShow);\n }\n }\n };\n\n handleReset = () => {\n if (this.props.autoSearch) this.props.autoSearch([]);\n this.props.onSearch([], [], []);\n this.props.form.resetFields();\n };\n\n render(): React.ReactNode {\n return (\n <div className={styles.advancedSearch}>\n <Form\n layout=\"vertical\"\n className={styles.advancedSearchForm}\n onSubmit={this.handleSearch}\n >\n <Row gutter={50}>{this.getFields()}</Row>\n <Row>\n <Col span={24} style={{ textAlign: \"right\" }}>\n <Button\n type=\"primary\"\n htmlType=\"submit\"\n data-testid=\"submit-button\"\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.SEARCH}`)}\n </Button>\n <Button\n style={{ marginLeft: 8 }}\n onClick={this.handleReset}\n data-testid=\"reset-button\"\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.RESET}`)}\n </Button>\n </Col>\n </Row>\n </Form>\n </div>\n );\n }\n}\n\nexport const AdvancedSearch = Form.create<AdvancedSearchFormProps>({\n name: \"advanced_search\",\n})(AdvancedSearchForm);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -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: \"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
|
+
{"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","concat","length","reducer","prevState","updatedProperty","_objectSpread","formatAqToShow","newAqToShow","forEach","query","aqToShow","Object","entries","map","_ref","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","_props$onAdvancedSear","call","onAdvancedSearchCloseGen","_props$onAdvancedSear2","isValueEqual","filterAq","filter","specialQueryHandler","isSpecial","some","formatAqQuery","querys","isAq","isKey","isStart","filteredSubQueries","isInstanceFilterForm","createElement","className","advancedSearchWrapper","hideDynamicSearch","style","marginBottom","onSearch","q","hideSearchConditions","searchConditions","CURRENT_FILTER_REQUIREMENTS","closable","onClose"],"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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","ignoreList":[]}
|