@next-libs/cmdb-instances 7.5.0 → 7.6.1

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.
Files changed (39) hide show
  1. package/dist/cjs/i18n/constants.js +2 -0
  2. package/dist/cjs/i18n/constants.js.map +1 -1
  3. package/dist/cjs/i18n/locales/en.js +3 -1
  4. package/dist/cjs/i18n/locales/en.js.map +1 -1
  5. package/dist/cjs/i18n/locales/zh.js +3 -1
  6. package/dist/cjs/i18n/locales/zh.js.map +1 -1
  7. package/dist/cjs/instance-list/FilterInstanceSource.js +144 -0
  8. package/dist/cjs/instance-list/FilterInstanceSource.js.map +1 -0
  9. package/dist/cjs/instance-list/IconButton.js +10 -0
  10. package/dist/cjs/instance-list/IconButton.js.map +1 -1
  11. package/dist/cjs/instance-list/InstanceList.js +48 -0
  12. package/dist/cjs/instance-list/InstanceList.js.map +1 -1
  13. package/dist/cjs/instance-list-modal/InstanceListModal.js +6 -1
  14. package/dist/cjs/instance-list-modal/InstanceListModal.js.map +1 -1
  15. package/dist/cjs/model-attribute-form-control/ModelAttributeFormControl.js +2 -1
  16. package/dist/cjs/model-attribute-form-control/ModelAttributeFormControl.js.map +1 -1
  17. package/dist/esm/i18n/constants.js +2 -0
  18. package/dist/esm/i18n/constants.js.map +1 -1
  19. package/dist/esm/i18n/locales/en.js +3 -1
  20. package/dist/esm/i18n/locales/en.js.map +1 -1
  21. package/dist/esm/i18n/locales/zh.js +3 -1
  22. package/dist/esm/i18n/locales/zh.js.map +1 -1
  23. package/dist/esm/instance-list/FilterInstanceSource.js +138 -0
  24. package/dist/esm/instance-list/FilterInstanceSource.js.map +1 -0
  25. package/dist/esm/instance-list/FilterInstanceSource.module.css +13 -0
  26. package/dist/esm/instance-list/IconButton.js +10 -0
  27. package/dist/esm/instance-list/IconButton.js.map +1 -1
  28. package/dist/esm/instance-list/InstanceList.js +52 -4
  29. package/dist/esm/instance-list/InstanceList.js.map +1 -1
  30. package/dist/esm/instance-list-modal/InstanceListModal.js +6 -1
  31. package/dist/esm/instance-list-modal/InstanceListModal.js.map +1 -1
  32. package/dist/esm/model-attribute-form-control/ModelAttributeFormControl.js +2 -1
  33. package/dist/esm/model-attribute-form-control/ModelAttributeFormControl.js.map +1 -1
  34. package/dist/types/i18n/constants.d.ts +3 -1
  35. package/dist/types/instance-list/FilterInstanceSource.d.ts +15 -0
  36. package/dist/types/instance-list/FilterInstanceSource.spec.d.ts +1 -0
  37. package/dist/types/instance-list/InstanceList.d.ts +11 -0
  38. package/dist/types/instance-list-modal/InstanceListModal.d.ts +6 -0
  39. package/package.json +2 -2
@@ -0,0 +1,138 @@
1
+ import React, { useEffect, useMemo, useState, memo } from "react";
2
+ import { Popover, Input, Button, Radio, Space } from "antd";
3
+ import { IconButton } from "./IconButton";
4
+ import { SearchOutlined } from "@ant-design/icons";
5
+ import styles from "./FilterInstanceSource.module.css";
6
+ import { map, isEmpty } from "lodash";
7
+ import i18n from "i18next";
8
+ import { K, NS_LIBS_CMDB_INSTANCES } from "../i18n/constants";
9
+ function encode(keyword) {
10
+ var reg = /[[($^.\]*\\?+{}|)]/gi;
11
+ return keyword.replace(reg, key => "\\".concat(key));
12
+ }
13
+ var FilterInstanceSource = props => {
14
+ var [instanceSource, setInstanceSource] = useState(props.value);
15
+ var [objectIdNameList, setObjectIdNameList] = useState([]);
16
+ var {
17
+ checked,
18
+ visible,
19
+ jsonLocalStorage,
20
+ isAbstract
21
+ } = props;
22
+
23
+ // eslint-disable-next-line react-hooks/exhaustive-deps
24
+ var objectNameMap = jsonLocalStorage.getItem("instances-sources-objectId-name-map") || {};
25
+ var _modelIdNameMap = useMemo(() => {
26
+ return isEmpty(props.inheritanceModelIdNameMap) ? objectNameMap === null || objectNameMap === void 0 ? void 0 : objectNameMap.idNameMap : props.inheritanceModelIdNameMap;
27
+ }, [props.inheritanceModelIdNameMap, objectNameMap]);
28
+ useEffect(() => {
29
+ var _objectIdNameList = map(_modelIdNameMap, (value, key) => ({
30
+ text: value,
31
+ value: key
32
+ }));
33
+ setObjectIdNameList(_objectIdNameList);
34
+ }, [_modelIdNameMap]);
35
+ var onReset = e => {
36
+ var {
37
+ parentObjectId,
38
+ query
39
+ } = objectNameMap;
40
+ var value = {
41
+ objectId: parentObjectId,
42
+ objectName: "",
43
+ query,
44
+ checked: false
45
+ };
46
+ setInstanceSource("");
47
+ props === null || props === void 0 ? void 0 : props.onChange(value);
48
+ props === null || props === void 0 ? void 0 : props.onIconClicKChange(false);
49
+ props === null || props === void 0 ? void 0 : props.onPopoverVisibleChange(false);
50
+ };
51
+ var onConfirm = e => {
52
+ var query = {
53
+ objectId: instanceSource,
54
+ objectName: _modelIdNameMap[instanceSource],
55
+ query: {},
56
+ checked
57
+ };
58
+ props === null || props === void 0 ? void 0 : props.onChange(query);
59
+ props === null || props === void 0 ? void 0 : props.onPopoverVisibleChange(false);
60
+ };
61
+ var handleRadioChange = e => {
62
+ setInstanceSource(e.target.value);
63
+ };
64
+ var onSearch = e => {
65
+ var value = encode(e.target.value.trim());
66
+ var _objectIdNameList = map(_modelIdNameMap, (value, key) => ({
67
+ text: value,
68
+ value: key
69
+ }));
70
+ var regex = new RegExp(value, "ig");
71
+ var filterObjectIdNameList = _objectIdNameList.filter(v => regex.test(v.text));
72
+ setObjectIdNameList(filterObjectIdNameList);
73
+ };
74
+ var onIconCheckedChange = checked => {
75
+ if (isAbstract) {
76
+ props === null || props === void 0 ? void 0 : props.onIconClicKChange(checked);
77
+ props === null || props === void 0 ? void 0 : props.onPopoverVisibleChange(checked);
78
+ } else {
79
+ props === null || props === void 0 ? void 0 : props.onIconClicKChange(true);
80
+ props === null || props === void 0 ? void 0 : props.onPopoverVisibleChange(true);
81
+ }
82
+ };
83
+ var getContent = () => {
84
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Input, {
85
+ placeholder: i18n.t("".concat(NS_LIBS_CMDB_INSTANCES, ":").concat(K.SEARCH_MODEL)),
86
+ suffix: /*#__PURE__*/React.createElement(SearchOutlined, null),
87
+ onPressEnter: onSearch,
88
+ "data-testid": "instance-source-search"
89
+ }), /*#__PURE__*/React.createElement("div", {
90
+ className: styles.content
91
+ }, /*#__PURE__*/React.createElement(Radio.Group, {
92
+ value: instanceSource,
93
+ onChange: handleRadioChange
94
+ }, /*#__PURE__*/React.createElement(Space, {
95
+ direction: "vertical"
96
+ }, objectIdNameList.map(_ref => {
97
+ var {
98
+ text,
99
+ value
100
+ } = _ref;
101
+ return /*#__PURE__*/React.createElement(Radio, {
102
+ key: value,
103
+ value: value
104
+ }, text);
105
+ })))), /*#__PURE__*/React.createElement("div", {
106
+ className: styles.footer
107
+ }, /*#__PURE__*/React.createElement(Button, {
108
+ type: "text",
109
+ size: "small",
110
+ onClick: onReset,
111
+ disabled: isAbstract
112
+ }, i18n.t("".concat(NS_LIBS_CMDB_INSTANCES, ":").concat(K.RESET))), /*#__PURE__*/React.createElement(Button, {
113
+ type: "primary",
114
+ size: "small",
115
+ onClick: onConfirm
116
+ }, i18n.t("".concat(NS_LIBS_CMDB_INSTANCES, ":").concat(K.CONFIRM)))));
117
+ };
118
+ return /*#__PURE__*/React.createElement(Popover, {
119
+ content: getContent(),
120
+ placement: "bottomRight",
121
+ overlayStyle: {
122
+ width: "325px"
123
+ },
124
+ visible: visible,
125
+ trigger: "click"
126
+ }, /*#__PURE__*/React.createElement(IconButton, {
127
+ checked: checked,
128
+ onChange: onIconCheckedChange,
129
+ style: {
130
+ marginRight: 10
131
+ },
132
+ type: "filterInstanceSource",
133
+ label: "",
134
+ "data-testid": "instance-source-icon"
135
+ }));
136
+ };
137
+ export default /*#__PURE__*/memo(FilterInstanceSource);
138
+ //# sourceMappingURL=FilterInstanceSource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterInstanceSource.js","names":["React","useEffect","useMemo","useState","memo","Popover","Input","Button","Radio","Space","IconButton","SearchOutlined","styles","map","isEmpty","i18n","K","NS_LIBS_CMDB_INSTANCES","encode","keyword","reg","replace","key","FilterInstanceSource","props","instanceSource","setInstanceSource","value","objectIdNameList","setObjectIdNameList","checked","visible","jsonLocalStorage","isAbstract","objectNameMap","getItem","_modelIdNameMap","inheritanceModelIdNameMap","idNameMap","_objectIdNameList","text","onReset","e","parentObjectId","query","objectId","objectName","onChange","onIconClicKChange","onPopoverVisibleChange","onConfirm","handleRadioChange","target","onSearch","trim","regex","RegExp","filterObjectIdNameList","filter","v","test","onIconCheckedChange","getContent","t","SEARCH_MODEL","content","footer","RESET","CONFIRM","width","marginRight"],"sources":["../../../src/instance-list/FilterInstanceSource.tsx"],"sourcesContent":["import React, {\n FC,\n ReactElement,\n useEffect,\n useMemo,\n useState,\n memo,\n} from \"react\";\nimport { Popover, Input, Button, Radio, Space } from \"antd\";\nimport { IconButton } from \"./IconButton\";\nimport { SearchOutlined } from \"@ant-design/icons\";\nimport styles from \"./FilterInstanceSource.module.css\";\nimport { map, isEmpty } from \"lodash\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\n\nimport { filterObjectIdQuery } from \"./InstanceList\";\n\ninterface FilterInstanceSourceProps {\n visible?: boolean;\n checked?: boolean;\n onIconClicKChange?(checked: boolean): void;\n inheritanceModelIdNameMap?: Record<string, string>;\n value?: string;\n onChange: (value: filterObjectIdQuery) => void;\n onPopoverVisibleChange?(visible: boolean): void;\n jsonLocalStorage?: any;\n isAbstract?: boolean;\n}\n\nfunction encode(keyword: string): string {\n const reg = /[[($^.\\]*\\\\?+{}|)]/gi;\n return keyword.replace(reg, (key) => `\\\\${key}`);\n}\n\nconst FilterInstanceSource: FC<FilterInstanceSourceProps> = (props) => {\n const [instanceSource, setInstanceSource] = useState(props.value);\n const [objectIdNameList, setObjectIdNameList] = useState([]);\n const { checked, visible, jsonLocalStorage, isAbstract } = props;\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const objectNameMap =\n jsonLocalStorage.getItem(\"instances-sources-objectId-name-map\") || {};\n\n const _modelIdNameMap = useMemo(() => {\n return isEmpty(props.inheritanceModelIdNameMap)\n ? objectNameMap?.idNameMap\n : props.inheritanceModelIdNameMap;\n }, [props.inheritanceModelIdNameMap, objectNameMap]);\n\n useEffect(() => {\n const _objectIdNameList = map(_modelIdNameMap, (value, key) => ({\n text: value,\n value: key,\n }));\n setObjectIdNameList(_objectIdNameList);\n }, [_modelIdNameMap]);\n\n const onReset = (e: any): void => {\n const { parentObjectId, query } = objectNameMap;\n const value: filterObjectIdQuery = {\n objectId: parentObjectId,\n objectName: \"\",\n query,\n checked: false,\n };\n setInstanceSource(\"\");\n props?.onChange(value);\n props?.onIconClicKChange(false);\n props?.onPopoverVisibleChange(false);\n };\n\n const onConfirm = (e: any): void => {\n const query: filterObjectIdQuery = {\n objectId: instanceSource,\n objectName: _modelIdNameMap[instanceSource],\n query: {},\n checked,\n };\n props?.onChange(query);\n props?.onPopoverVisibleChange(false);\n };\n\n const handleRadioChange = (e: any): void => {\n setInstanceSource(e.target.value);\n };\n\n const onSearch = (e: any): void => {\n const value = encode(e.target.value.trim());\n const _objectIdNameList = map(_modelIdNameMap, (value, key) => ({\n text: value,\n value: key,\n }));\n const regex = new RegExp(value, \"ig\");\n const filterObjectIdNameList = _objectIdNameList.filter((v) =>\n regex.test(v.text)\n );\n setObjectIdNameList(filterObjectIdNameList);\n };\n\n const onIconCheckedChange = (checked: boolean): void => {\n if (isAbstract) {\n props?.onIconClicKChange(checked);\n props?.onPopoverVisibleChange(checked);\n } else {\n props?.onIconClicKChange(true);\n props?.onPopoverVisibleChange(true);\n }\n };\n\n const getContent = (): ReactElement => {\n return (\n <>\n <Input\n placeholder={i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.SEARCH_MODEL}`)}\n suffix={<SearchOutlined />}\n onPressEnter={onSearch}\n data-testid=\"instance-source-search\"\n />\n <div className={styles.content}>\n <Radio.Group value={instanceSource} onChange={handleRadioChange}>\n <Space direction=\"vertical\">\n {objectIdNameList.map(({ text, value }) => (\n <Radio key={value} value={value}>\n {text}\n </Radio>\n ))}\n </Space>\n </Radio.Group>\n </div>\n <div className={styles.footer}>\n <Button\n type=\"text\"\n size=\"small\"\n onClick={onReset}\n disabled={isAbstract}\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.RESET}`)}\n </Button>\n <Button type=\"primary\" size=\"small\" onClick={onConfirm}>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CONFIRM}`)}\n </Button>\n </div>\n </>\n );\n };\n return (\n <Popover\n content={getContent()}\n placement=\"bottomRight\"\n overlayStyle={{ width: \"325px\" }}\n visible={visible}\n trigger=\"click\"\n >\n <IconButton\n checked={checked}\n onChange={onIconCheckedChange}\n style={{ marginRight: 10 }}\n type=\"filterInstanceSource\"\n label={\"\"}\n data-testid=\"instance-source-icon\"\n />\n </Popover>\n );\n};\n\nexport default memo(FilterInstanceSource);\n"],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ .content {
2
+ margin: 16px 0 8px;
3
+ max-height: 264px;
4
+ overflow-x: hidden;
5
+ }
6
+ .footer {
7
+ margin: 0 -16px -12px;
8
+ padding: 8px 8px 8px 2px;
9
+ background-color: #f3f4f7;
10
+ align-items: center;
11
+ display: flex;
12
+ justify-content: space-between;
13
+ }
@@ -46,6 +46,14 @@ export function IconButton(props) {
46
46
  icon: "cube"
47
47
  }
48
48
  });
49
+ case "filterInstanceSource":
50
+ return /*#__PURE__*/React.createElement(GeneralIcon, {
51
+ icon: {
52
+ lib: "antd",
53
+ icon: "filter",
54
+ theme: "filled"
55
+ }
56
+ });
49
57
  }
50
58
  };
51
59
  var getTooltip = () => {
@@ -64,6 +72,8 @@ export function IconButton(props) {
64
72
  }) : i18n.t("".concat(NS_LIBS_CMDB_INSTANCES, ":").concat(K.CLICK_TO_SHOW), {
65
73
  label: props.label
66
74
  });
75
+ case "filterInstanceSource":
76
+ return i18n.t("".concat(NS_LIBS_CMDB_INSTANCES, ":").concat(K.CLICK_TO_FILTER_INSTANCE_SOURCE));
67
77
  }
68
78
  };
69
79
  return /*#__PURE__*/React.createElement(Tooltip, {
@@ -1 +1 @@
1
- {"version":3,"file":"IconButton.js","names":["React","Tooltip","styles","classNames","GeneralIcon","i18n","K","NS_LIBS_CMDB_INSTANCES","IconButton","props","checked","setChecked","useState","useEffect","handleClick","onChange","getIcon","type","lib","icon","prefix","getTooltip","t","CLICK_TO_CANCEL_FILTER","label","CLICK_TO_FILTER","CLICK_TO_HIDDEN","CLICK_TO_SHOW","style","iconBtnBac","selected","disabled"],"sources":["../../../src/instance-list/IconButton.tsx"],"sourcesContent":["import React from \"react\";\nimport { Tooltip } from \"antd\";\nimport styles from \"./IconButton.module.css\";\nimport classNames from \"classnames\";\nimport { GeneralIcon } from \"@next-libs/basic-components\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\n\ninterface IconButtonProps {\n checked?: boolean;\n onChange: (checked: boolean) => void;\n type: string;\n style?: Record<string, any>;\n label: string;\n disabled?: boolean;\n}\n\nexport function IconButton(props: IconButtonProps) {\n const [checked, setChecked] = React.useState(false);\n\n React.useEffect(() => {\n setChecked(!!props.checked);\n }, [props]);\n\n const handleClick = (checked: boolean) => {\n setChecked(checked);\n props.onChange(checked);\n };\n\n const getIcon = () => {\n switch (props.type) {\n case \"relateToMe\":\n return (\n <GeneralIcon icon={{ lib: \"fa\", icon: \"user\", prefix: \"fas\" }} />\n );\n case \"showHiddenInfo\":\n return <GeneralIcon icon={{ lib: \"fa\", icon: \"expand-alt\" }} />;\n case \"normalHost\":\n return <GeneralIcon icon={{ lib: \"fa\", icon: \"tv\", prefix: \"fas\" }} />;\n case \"allName\":\n return <GeneralIcon icon={{ lib: \"fa\", icon: \"cube\" }} />;\n }\n };\n const getTooltip = () => {\n switch (props.type) {\n case \"relateToMe\":\n case \"normalHost\":\n case \"allName\":\n return checked\n ? i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLICK_TO_CANCEL_FILTER}`, {\n label: props.label,\n })\n : i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLICK_TO_FILTER}`, {\n label: props.label,\n });\n case \"showHiddenInfo\":\n return checked\n ? i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLICK_TO_HIDDEN}`, {\n label: props.label,\n })\n : i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLICK_TO_SHOW}`, {\n label: props.label,\n });\n }\n };\n\n return (\n <Tooltip placement=\"top\" title={getTooltip()}>\n <a\n style={props.style}\n className={classNames({\n [styles.iconBtnBac]: true,\n [styles.selected]: checked,\n [styles.disabled]: props.disabled,\n })}\n onClick={() => !props.disabled && handleClick(!checked)}\n >\n {getIcon()}\n </a>\n </Tooltip>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"IconButton.js","names":["React","Tooltip","styles","classNames","GeneralIcon","i18n","K","NS_LIBS_CMDB_INSTANCES","IconButton","props","checked","setChecked","useState","useEffect","handleClick","onChange","getIcon","type","lib","icon","prefix","theme","getTooltip","t","CLICK_TO_CANCEL_FILTER","label","CLICK_TO_FILTER","CLICK_TO_HIDDEN","CLICK_TO_SHOW","CLICK_TO_FILTER_INSTANCE_SOURCE","style","iconBtnBac","selected","disabled"],"sources":["../../../src/instance-list/IconButton.tsx"],"sourcesContent":["import React from \"react\";\nimport { Tooltip } from \"antd\";\nimport styles from \"./IconButton.module.css\";\nimport classNames from \"classnames\";\nimport { GeneralIcon } from \"@next-libs/basic-components\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\n\ninterface IconButtonProps {\n checked?: boolean;\n onChange: (checked: boolean) => void;\n type: string;\n style?: Record<string, any>;\n label: string;\n disabled?: boolean;\n}\n\nexport function IconButton(props: IconButtonProps) {\n const [checked, setChecked] = React.useState(false);\n\n React.useEffect(() => {\n setChecked(!!props.checked);\n }, [props]);\n\n const handleClick = (checked: boolean) => {\n setChecked(checked);\n props.onChange(checked);\n };\n\n const getIcon = () => {\n switch (props.type) {\n case \"relateToMe\":\n return (\n <GeneralIcon icon={{ lib: \"fa\", icon: \"user\", prefix: \"fas\" }} />\n );\n case \"showHiddenInfo\":\n return <GeneralIcon icon={{ lib: \"fa\", icon: \"expand-alt\" }} />;\n case \"normalHost\":\n return <GeneralIcon icon={{ lib: \"fa\", icon: \"tv\", prefix: \"fas\" }} />;\n case \"allName\":\n return <GeneralIcon icon={{ lib: \"fa\", icon: \"cube\" }} />;\n case \"filterInstanceSource\":\n return (\n <GeneralIcon\n icon={{ lib: \"antd\", icon: \"filter\", theme: \"filled\" }}\n />\n );\n }\n };\n const getTooltip = () => {\n switch (props.type) {\n case \"relateToMe\":\n case \"normalHost\":\n case \"allName\":\n return checked\n ? i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLICK_TO_CANCEL_FILTER}`, {\n label: props.label,\n })\n : i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLICK_TO_FILTER}`, {\n label: props.label,\n });\n case \"showHiddenInfo\":\n return checked\n ? i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLICK_TO_HIDDEN}`, {\n label: props.label,\n })\n : i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLICK_TO_SHOW}`, {\n label: props.label,\n });\n case \"filterInstanceSource\":\n return i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.CLICK_TO_FILTER_INSTANCE_SOURCE}`\n );\n }\n };\n\n return (\n <Tooltip placement=\"top\" title={getTooltip()}>\n <a\n style={props.style}\n className={classNames({\n [styles.iconBtnBac]: true,\n [styles.selected]: checked,\n [styles.disabled]: props.disabled,\n })}\n onClick={() => !props.disabled && handleClick(!checked)}\n >\n {getIcon()}\n </a>\n </Tooltip>\n );\n}\n"],"mappings":"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"}
@@ -17,6 +17,7 @@ import { extraFieldAttrs, CMDB_MODAL_FIELDS_SETTINGS, CMDB_RESOURCE_FIELDS_SETTI
17
17
  import { ModelAttributeValueType } from "../model-attribute-form-control/ModelAttributeFormControl";
18
18
  import { IconButton } from "./IconButton";
19
19
  import { changeQueryWithCustomRules } from "../processors";
20
+ import FilterInstanceSource from "./FilterInstanceSource";
20
21
  export function joinRelationFieldAndShowkey(fields, modelData, objectList) {
21
22
  var attrIdMap = keyBy(modelData.attrList, "id");
22
23
  return fields.map(field => {
@@ -140,10 +141,10 @@ export function translateConditions(aq, idObjectMap, modelData, t) {
140
141
  });
141
142
  var attrAndRelationList = [...modelData.attrList, ...relations];
142
143
  if (!isEmpty(aq)) {
143
- for (var query of aq) {
144
- var _queries = [query];
145
- if (Object.keys(query)[0] === "$or" || Object.keys(query)[0] === "$and") {
146
- _queries = query[Object.keys(query)[0]];
144
+ for (var _query of aq) {
145
+ var _queries = [_query];
146
+ if (Object.keys(_query)[0] === "$or" || Object.keys(_query)[0] === "$and") {
147
+ _queries = _query[Object.keys(_query)[0]];
147
148
  }
148
149
  _queries.forEach(query => {
149
150
  var _attr;
@@ -302,6 +303,11 @@ export function LegacyInstanceList(props) {
302
303
  idNameMap = yield CmdbObjectApi_getIdMapName({
303
304
  parentObjectId: modelData.objectId
304
305
  });
306
+ props.showFilterInstanceSource && jsonLocalStorage.setItem("instances-sources-objectId-name-map", {
307
+ parentObjectId: modelData.objectId,
308
+ query: props.presetConfigs.query,
309
+ idNameMap
310
+ });
305
311
  }
306
312
  setInheritanceModelIdNameMap(idNameMap);
307
313
  });
@@ -382,6 +388,9 @@ export function LegacyInstanceList(props) {
382
388
  pageSize: (_ref4 = (_props$dataSource$pag2 = (_props$dataSource2 = props.dataSource) === null || _props$dataSource2 === void 0 ? void 0 : _props$dataSource2.pageSize) !== null && _props$dataSource$pag2 !== void 0 ? _props$dataSource$pag2 : props.pageSize) !== null && _ref4 !== void 0 ? _ref4 : 10,
383
389
  aliveHosts: props.aliveHosts,
384
390
  relatedToMe: props.relatedToMe,
391
+ objectIdQuery: props.objectIdQuery,
392
+ filterInstanceSource: props.filterInstanceSource,
393
+ instanceSourcePopoverVisible: false,
385
394
  inited: false,
386
395
  loading: false,
387
396
  failed: false,
@@ -915,7 +924,36 @@ export function LegacyInstanceList(props) {
915
924
  (_props$onAdvancedSear2 = props.onAdvancedSearch) === null || _props$onAdvancedSear2 === void 0 ? void 0 : _props$onAdvancedSear2.call(props, queries);
916
925
  };
917
926
  };
927
+ var onFilterInstanceSourceChange = checked => {
928
+ var _props$onFilterInstan;
929
+ setState({
930
+ filterInstanceSource: checked
931
+ });
932
+ (_props$onFilterInstan = props.onFilterInstanceSourceChange) === null || _props$onFilterInstan === void 0 ? void 0 : _props$onFilterInstan.call(props, checked);
933
+ };
934
+ var onFilterObjectIdChange = objectIdQuery => {
935
+ var _props$onFilterObject;
936
+ setState({
937
+ objectIdQuery: objectIdQuery
938
+ });
939
+ (_props$onFilterObject = props.onFilterObjectIdChange) === null || _props$onFilterObject === void 0 ? void 0 : _props$onFilterObject.call(props, objectIdQuery);
940
+ };
941
+ var onPopoverVisibleChange = visible => {
942
+ setState({
943
+ instanceSourcePopoverVisible: visible
944
+ });
945
+ };
918
946
  var conditions = translateConditions(state.aqToShow, idObjectMap, modelData);
947
+ useEffect(() => {
948
+ if (props.showFilterInstanceSource) {
949
+ var aq = initAqToShow(props.aq, modelData, false);
950
+ var aqToShow = props.aqToShow || initAqToShow(props.aq, modelData);
951
+ setState({
952
+ aq,
953
+ aqToShow
954
+ });
955
+ }
956
+ }, [props.aq, props.aqToShow, props.showFilterInstanceSource]);
919
957
  return /*#__PURE__*/React.createElement(Spin, {
920
958
  spinning: state.loading
921
959
  }, state.inited && !state.failed ? /*#__PURE__*/React.createElement(React.Fragment, null, (!props.searchDisabled || !props.advancedSearchDisabled || !props.relatedToMeDisabled || !props.aliveHostsDisabled || !props.moreButtonsDisabled) && /*#__PURE__*/React.createElement("div", {
@@ -980,6 +1018,16 @@ export function LegacyInstanceList(props) {
980
1018
  })
981
1019
  }, " ", i18n.t("".concat(NS_LIBS_CMDB_INSTANCES, ":").concat(K.CLEAR)))), ((_props$extraOperateBr = props.extraOperateBricks) === null || _props$extraOperateBr === void 0 ? void 0 : _props$extraOperateBr.useBrick) && /*#__PURE__*/React.createElement(BrickAsComponent, {
982
1020
  useBrick: props.extraOperateBricks.useBrick
1021
+ }), props.showFilterInstanceSource && /*#__PURE__*/React.createElement(FilterInstanceSource, {
1022
+ visible: state.instanceSourcePopoverVisible,
1023
+ checked: state.filterInstanceSource,
1024
+ onPopoverVisibleChange: onPopoverVisibleChange,
1025
+ onIconClicKChange: onFilterInstanceSourceChange,
1026
+ onChange: onFilterObjectIdChange,
1027
+ inheritanceModelIdNameMap: inheritanceModelIdNameMap,
1028
+ value: state.objectIdQuery,
1029
+ jsonLocalStorage: jsonLocalStorage,
1030
+ isAbstract: modelData.isAbstract
983
1031
  }), props.objectId === "HOST" && props.enableSearchByApp && /*#__PURE__*/React.createElement(Button, {
984
1032
  type: "link",
985
1033
  onClick: toggleSearchMode