@next-libs/cmdb-instances 7.6.2 → 7.6.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -21,6 +21,7 @@ function encode(keyword) {
|
|
|
21
21
|
const FilterInstanceSource = props => {
|
|
22
22
|
const [instanceSource, setInstanceSource] = (0, _react.useState)(props.value);
|
|
23
23
|
const [objectIdNameList, setObjectIdNameList] = (0, _react.useState)([]);
|
|
24
|
+
const [keyword, setKeyword] = (0, _react.useState)(undefined);
|
|
24
25
|
const {
|
|
25
26
|
checked,
|
|
26
27
|
visible,
|
|
@@ -51,6 +52,7 @@ const FilterInstanceSource = props => {
|
|
|
51
52
|
query,
|
|
52
53
|
checked: false
|
|
53
54
|
};
|
|
55
|
+
setKeyword(undefined);
|
|
54
56
|
setInstanceSource("");
|
|
55
57
|
props === null || props === void 0 ? void 0 : props.onChange(value);
|
|
56
58
|
props === null || props === void 0 ? void 0 : props.onIconClicKChange(false);
|
|
@@ -60,9 +62,10 @@ const FilterInstanceSource = props => {
|
|
|
60
62
|
const query = {
|
|
61
63
|
objectId: instanceSource,
|
|
62
64
|
objectName: _modelIdNameMap[instanceSource],
|
|
63
|
-
query: {},
|
|
65
|
+
query: (objectNameMap === null || objectNameMap === void 0 ? void 0 : objectNameMap.query) || {},
|
|
64
66
|
checked
|
|
65
67
|
};
|
|
68
|
+
setKeyword(undefined);
|
|
66
69
|
props === null || props === void 0 ? void 0 : props.onChange(query);
|
|
67
70
|
props === null || props === void 0 ? void 0 : props.onPopoverVisibleChange(false);
|
|
68
71
|
};
|
|
@@ -77,6 +80,7 @@ const FilterInstanceSource = props => {
|
|
|
77
80
|
}));
|
|
78
81
|
const regex = new RegExp(value, "ig");
|
|
79
82
|
const filterObjectIdNameList = _objectIdNameList.filter(v => regex.test(v.text));
|
|
83
|
+
setKeyword(e.target.value.trim());
|
|
80
84
|
setObjectIdNameList(filterObjectIdNameList);
|
|
81
85
|
};
|
|
82
86
|
const onIconCheckedChange = checked => {
|
|
@@ -93,6 +97,7 @@ const FilterInstanceSource = props => {
|
|
|
93
97
|
placeholder: _i18next.default.t(`${_constants.NS_LIBS_CMDB_INSTANCES}:${_constants.K.SEARCH_MODEL}`),
|
|
94
98
|
suffix: /*#__PURE__*/_react.default.createElement(_icons.SearchOutlined, null),
|
|
95
99
|
onPressEnter: onSearch,
|
|
100
|
+
value: keyword,
|
|
96
101
|
"data-testid": "instance-source-search"
|
|
97
102
|
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
98
103
|
className: _FilterInstanceSourceModule.default.content
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterInstanceSource.js","names":["encode","keyword","reg","replace","key","FilterInstanceSource","props","instanceSource","setInstanceSource","useState","value","objectIdNameList","setObjectIdNameList","checked","visible","jsonLocalStorage","isAbstract","objectNameMap","useMemo","getItem","_modelIdNameMap","isEmpty","inheritanceModelIdNameMap","idNameMap","useEffect","_objectIdNameList","map","text","onReset","e","parentObjectId","query","objectId","objectName","onChange","onIconClicKChange","onPopoverVisibleChange","onConfirm","handleRadioChange","target","onSearch","trim","regex","RegExp","filterObjectIdNameList","filter","v","test","onIconCheckedChange","getContent","i18n","t","NS_LIBS_CMDB_INSTANCES","K","SEARCH_MODEL","styles","content","footer","RESET","CONFIRM","width","marginRight"],"sources":["../../../src/instance-list/FilterInstanceSource.tsx"],"sourcesContent":["import React, { FC, ReactElement, useEffect, useMemo, useState } from \"react\";\nimport { Popover, Input, Button, Radio, Space } from \"antd\";\nimport { IconButton } from \"./IconButton\";\nimport { SearchOutlined } from \"@ant-design/icons\";\nimport styles from \"./FilterInstanceSource.module.css\";\nimport { map, isEmpty } from \"lodash\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\n\nimport { filterObjectIdQuery } from \"./InstanceList\";\n\ninterface FilterInstanceSourceProps {\n visible?: boolean;\n checked?: boolean;\n onIconClicKChange?(checked: boolean): void;\n inheritanceModelIdNameMap?: Record<string, string>;\n value?: string;\n onChange: (value: filterObjectIdQuery) => void;\n onPopoverVisibleChange?(visible: boolean): void;\n jsonLocalStorage?: any;\n isAbstract?: boolean;\n}\n\nfunction encode(keyword: string): string {\n const reg = /[[($^.\\]*\\\\?+{}|)]/gi;\n return keyword.replace(reg, (key) => `\\\\${key}`);\n}\n\nconst FilterInstanceSource: FC<FilterInstanceSourceProps> = (props) => {\n const [instanceSource, setInstanceSource] = useState(props.value);\n const [objectIdNameList, setObjectIdNameList] = useState([]);\n const { checked, visible, jsonLocalStorage, isAbstract } = props;\n\n const objectNameMap = useMemo(() => {\n return (\n jsonLocalStorage.getItem(\"instances-sources-objectId-name-map\") || {}\n );\n }, [jsonLocalStorage]);\n\n const _modelIdNameMap = useMemo(() => {\n return isEmpty(props.inheritanceModelIdNameMap)\n ? objectNameMap?.idNameMap\n : props.inheritanceModelIdNameMap;\n }, [props.inheritanceModelIdNameMap, objectNameMap]);\n\n useEffect(() => {\n const _objectIdNameList = map(_modelIdNameMap, (value, key) => ({\n text: value,\n value: key,\n }));\n setObjectIdNameList(_objectIdNameList);\n }, [_modelIdNameMap]);\n\n const onReset = (e: any): void => {\n const { parentObjectId, query } = objectNameMap;\n const value: filterObjectIdQuery = {\n objectId: parentObjectId,\n objectName: \"\",\n query,\n checked: false,\n };\n 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 FilterInstanceSource;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FilterInstanceSource.js","names":["encode","keyword","reg","replace","key","FilterInstanceSource","props","instanceSource","setInstanceSource","useState","value","objectIdNameList","setObjectIdNameList","setKeyword","undefined","checked","visible","jsonLocalStorage","isAbstract","objectNameMap","useMemo","getItem","_modelIdNameMap","isEmpty","inheritanceModelIdNameMap","idNameMap","useEffect","_objectIdNameList","map","text","onReset","e","parentObjectId","query","objectId","objectName","onChange","onIconClicKChange","onPopoverVisibleChange","onConfirm","handleRadioChange","target","onSearch","trim","regex","RegExp","filterObjectIdNameList","filter","v","test","onIconCheckedChange","getContent","i18n","t","NS_LIBS_CMDB_INSTANCES","K","SEARCH_MODEL","styles","content","footer","RESET","CONFIRM","width","marginRight"],"sources":["../../../src/instance-list/FilterInstanceSource.tsx"],"sourcesContent":["import React, { FC, ReactElement, useEffect, useMemo, useState } from \"react\";\nimport { Popover, Input, Button, Radio, Space } from \"antd\";\nimport { IconButton } from \"./IconButton\";\nimport { SearchOutlined } from \"@ant-design/icons\";\nimport styles from \"./FilterInstanceSource.module.css\";\nimport { map, isEmpty } from \"lodash\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\n\nimport { filterObjectIdQuery } from \"./InstanceList\";\n\ninterface FilterInstanceSourceProps {\n visible?: boolean;\n checked?: boolean;\n onIconClicKChange?(checked: boolean): void;\n inheritanceModelIdNameMap?: Record<string, string>;\n value?: string;\n onChange: (value: filterObjectIdQuery) => void;\n onPopoverVisibleChange?(visible: boolean): void;\n jsonLocalStorage?: any;\n isAbstract?: boolean;\n}\n\nfunction encode(keyword: string): string {\n const reg = /[[($^.\\]*\\\\?+{}|)]/gi;\n return keyword.replace(reg, (key) => `\\\\${key}`);\n}\n\nconst FilterInstanceSource: FC<FilterInstanceSourceProps> = (props) => {\n const [instanceSource, setInstanceSource] = useState(props.value);\n const [objectIdNameList, setObjectIdNameList] = useState([]);\n const [keyword, setKeyword] = useState(undefined);\n const { checked, visible, jsonLocalStorage, isAbstract } = props;\n\n const objectNameMap = useMemo(() => {\n return (\n jsonLocalStorage.getItem(\"instances-sources-objectId-name-map\") || {}\n );\n }, [jsonLocalStorage]);\n\n const _modelIdNameMap = useMemo(() => {\n return isEmpty(props.inheritanceModelIdNameMap)\n ? objectNameMap?.idNameMap\n : props.inheritanceModelIdNameMap;\n }, [props.inheritanceModelIdNameMap, objectNameMap]);\n\n useEffect(() => {\n const _objectIdNameList = map(_modelIdNameMap, (value, key) => ({\n text: value,\n value: key,\n }));\n setObjectIdNameList(_objectIdNameList);\n }, [_modelIdNameMap]);\n\n const onReset = (e: any): void => {\n const { parentObjectId, query } = objectNameMap;\n const value: filterObjectIdQuery = {\n objectId: parentObjectId,\n objectName: \"\",\n query,\n checked: false,\n };\n setKeyword(undefined);\n setInstanceSource(\"\");\n props?.onChange(value);\n props?.onIconClicKChange(false);\n props?.onPopoverVisibleChange(false);\n };\n\n const onConfirm = (e: any): void => {\n const query: filterObjectIdQuery = {\n objectId: instanceSource,\n objectName: _modelIdNameMap[instanceSource],\n query: objectNameMap?.query || {},\n checked,\n };\n setKeyword(undefined);\n props?.onChange(query);\n props?.onPopoverVisibleChange(false);\n };\n\n const handleRadioChange = (e: any): void => {\n setInstanceSource(e.target.value);\n };\n\n const onSearch = (e: any): void => {\n const value = encode(e.target.value.trim());\n const _objectIdNameList = map(_modelIdNameMap, (value, key) => ({\n text: value,\n value: key,\n }));\n const regex = new RegExp(value, \"ig\");\n const filterObjectIdNameList = _objectIdNameList.filter((v) =>\n regex.test(v.text)\n );\n setKeyword(e.target.value.trim());\n setObjectIdNameList(filterObjectIdNameList);\n };\n\n const onIconCheckedChange = (checked: boolean): void => {\n if (isAbstract) {\n props?.onIconClicKChange(checked);\n props?.onPopoverVisibleChange(checked);\n } else {\n props?.onIconClicKChange(true);\n props?.onPopoverVisibleChange(true);\n }\n };\n\n const getContent = (): ReactElement => {\n return (\n <>\n <Input\n placeholder={i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.SEARCH_MODEL}`)}\n suffix={<SearchOutlined />}\n onPressEnter={onSearch}\n value={keyword}\n data-testid=\"instance-source-search\"\n />\n <div className={styles.content}>\n <Radio.Group value={instanceSource} onChange={handleRadioChange}>\n <Space direction=\"vertical\">\n {objectIdNameList.map(({ text, value }) => (\n <Radio key={value} value={value}>\n {text}\n </Radio>\n ))}\n </Space>\n </Radio.Group>\n </div>\n <div className={styles.footer}>\n <Button\n type=\"text\"\n size=\"small\"\n onClick={onReset}\n disabled={isAbstract}\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.RESET}`)}\n </Button>\n <Button type=\"primary\" size=\"small\" onClick={onConfirm}>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CONFIRM}`)}\n </Button>\n </div>\n </>\n );\n };\n return (\n <Popover\n content={getContent()}\n placement=\"bottomRight\"\n overlayStyle={{ width: \"325px\" }}\n visible={visible}\n trigger=\"click\"\n >\n <IconButton\n checked={checked}\n onChange={onIconCheckedChange}\n style={{ marginRight: 10 }}\n type=\"filterInstanceSource\"\n label={\"\"}\n data-testid=\"instance-source-icon\"\n />\n </Popover>\n );\n};\n\nexport default FilterInstanceSource;\n"],"mappings":"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"}
|
|
@@ -13,6 +13,7 @@ function encode(keyword) {
|
|
|
13
13
|
var FilterInstanceSource = props => {
|
|
14
14
|
var [instanceSource, setInstanceSource] = useState(props.value);
|
|
15
15
|
var [objectIdNameList, setObjectIdNameList] = useState([]);
|
|
16
|
+
var [keyword, setKeyword] = useState(undefined);
|
|
16
17
|
var {
|
|
17
18
|
checked,
|
|
18
19
|
visible,
|
|
@@ -43,6 +44,7 @@ var FilterInstanceSource = props => {
|
|
|
43
44
|
query,
|
|
44
45
|
checked: false
|
|
45
46
|
};
|
|
47
|
+
setKeyword(undefined);
|
|
46
48
|
setInstanceSource("");
|
|
47
49
|
props === null || props === void 0 ? void 0 : props.onChange(value);
|
|
48
50
|
props === null || props === void 0 ? void 0 : props.onIconClicKChange(false);
|
|
@@ -52,9 +54,10 @@ var FilterInstanceSource = props => {
|
|
|
52
54
|
var query = {
|
|
53
55
|
objectId: instanceSource,
|
|
54
56
|
objectName: _modelIdNameMap[instanceSource],
|
|
55
|
-
query: {},
|
|
57
|
+
query: (objectNameMap === null || objectNameMap === void 0 ? void 0 : objectNameMap.query) || {},
|
|
56
58
|
checked
|
|
57
59
|
};
|
|
60
|
+
setKeyword(undefined);
|
|
58
61
|
props === null || props === void 0 ? void 0 : props.onChange(query);
|
|
59
62
|
props === null || props === void 0 ? void 0 : props.onPopoverVisibleChange(false);
|
|
60
63
|
};
|
|
@@ -69,6 +72,7 @@ var FilterInstanceSource = props => {
|
|
|
69
72
|
}));
|
|
70
73
|
var regex = new RegExp(value, "ig");
|
|
71
74
|
var filterObjectIdNameList = _objectIdNameList.filter(v => regex.test(v.text));
|
|
75
|
+
setKeyword(e.target.value.trim());
|
|
72
76
|
setObjectIdNameList(filterObjectIdNameList);
|
|
73
77
|
};
|
|
74
78
|
var onIconCheckedChange = checked => {
|
|
@@ -85,6 +89,7 @@ var FilterInstanceSource = props => {
|
|
|
85
89
|
placeholder: i18n.t("".concat(NS_LIBS_CMDB_INSTANCES, ":").concat(K.SEARCH_MODEL)),
|
|
86
90
|
suffix: /*#__PURE__*/React.createElement(SearchOutlined, null),
|
|
87
91
|
onPressEnter: onSearch,
|
|
92
|
+
value: keyword,
|
|
88
93
|
"data-testid": "instance-source-search"
|
|
89
94
|
}), /*#__PURE__*/React.createElement("div", {
|
|
90
95
|
className: styles.content
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterInstanceSource.js","names":["React","useEffect","useMemo","useState","Popover","Input","Button","Radio","Space","IconButton","SearchOutlined","styles","map","isEmpty","i18n","K","NS_LIBS_CMDB_INSTANCES","encode","keyword","reg","replace","key","FilterInstanceSource","props","instanceSource","setInstanceSource","value","objectIdNameList","setObjectIdNameList","checked","visible","jsonLocalStorage","isAbstract","objectNameMap","getItem","_modelIdNameMap","inheritanceModelIdNameMap","idNameMap","_objectIdNameList","text","onReset","e","parentObjectId","query","objectId","objectName","onChange","onIconClicKChange","onPopoverVisibleChange","onConfirm","handleRadioChange","target","onSearch","trim","regex","RegExp","filterObjectIdNameList","filter","v","test","onIconCheckedChange","getContent","t","SEARCH_MODEL","content","footer","RESET","CONFIRM","width","marginRight"],"sources":["../../../src/instance-list/FilterInstanceSource.tsx"],"sourcesContent":["import React, { FC, ReactElement, useEffect, useMemo, useState } from \"react\";\nimport { Popover, Input, Button, Radio, Space } from \"antd\";\nimport { IconButton } from \"./IconButton\";\nimport { SearchOutlined } from \"@ant-design/icons\";\nimport styles from \"./FilterInstanceSource.module.css\";\nimport { map, isEmpty } from \"lodash\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\n\nimport { filterObjectIdQuery } from \"./InstanceList\";\n\ninterface FilterInstanceSourceProps {\n visible?: boolean;\n checked?: boolean;\n onIconClicKChange?(checked: boolean): void;\n inheritanceModelIdNameMap?: Record<string, string>;\n value?: string;\n onChange: (value: filterObjectIdQuery) => void;\n onPopoverVisibleChange?(visible: boolean): void;\n jsonLocalStorage?: any;\n isAbstract?: boolean;\n}\n\nfunction encode(keyword: string): string {\n const reg = /[[($^.\\]*\\\\?+{}|)]/gi;\n return keyword.replace(reg, (key) => `\\\\${key}`);\n}\n\nconst FilterInstanceSource: FC<FilterInstanceSourceProps> = (props) => {\n const [instanceSource, setInstanceSource] = useState(props.value);\n const [objectIdNameList, setObjectIdNameList] = useState([]);\n const { checked, visible, jsonLocalStorage, isAbstract } = props;\n\n const objectNameMap = useMemo(() => {\n return (\n jsonLocalStorage.getItem(\"instances-sources-objectId-name-map\") || {}\n );\n }, [jsonLocalStorage]);\n\n const _modelIdNameMap = useMemo(() => {\n return isEmpty(props.inheritanceModelIdNameMap)\n ? objectNameMap?.idNameMap\n : props.inheritanceModelIdNameMap;\n }, [props.inheritanceModelIdNameMap, objectNameMap]);\n\n useEffect(() => {\n const _objectIdNameList = map(_modelIdNameMap, (value, key) => ({\n text: value,\n value: key,\n }));\n setObjectIdNameList(_objectIdNameList);\n }, [_modelIdNameMap]);\n\n const onReset = (e: any): void => {\n const { parentObjectId, query } = objectNameMap;\n const value: filterObjectIdQuery = {\n objectId: parentObjectId,\n objectName: \"\",\n query,\n checked: false,\n };\n 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 FilterInstanceSource;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAsBC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,OAAO;AAC7E,SAASC,OAAO,EAAEC,KAAK,EAAEC,MAAM,EAAEC,KAAK,EAAEC,KAAK,QAAQ,MAAM;AAC3D,SAASC,UAAU,QAAQ,cAAc;AACzC,SAASC,cAAc,QAAQ,mBAAmB;AAClD,OAAOC,MAAM,MAAM,mCAAmC;AACtD,SAASC,GAAG,EAAEC,OAAO,QAAQ,QAAQ;AACrC,OAAOC,IAAI,MAAM,SAAS;AAC1B,SAASC,CAAC,EAAEC,sBAAsB,QAAQ,mBAAmB;AAgB7D,SAASC,MAAM,CAACC,OAAe,EAAU;EACvC,IAAMC,GAAG,GAAG,sBAAsB;EAClC,OAAOD,OAAO,CAACE,OAAO,CAACD,GAAG,EAAGE,GAAG,gBAAUA,GAAG,CAAE,CAAC;AAClD;AAEA,IAAMC,oBAAmD,GAAIC,KAAK,IAAK;EACrE,IAAM,CAACC,cAAc,EAAEC,iBAAiB,CAAC,GAAGtB,QAAQ,CAACoB,KAAK,CAACG,KAAK,CAAC;EACjE,IAAM,CAACC,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGzB,QAAQ,CAAC,EAAE,CAAC;EAC5D,IAAM;IAAE0B,OAAO;IAAEC,OAAO;IAAEC,gBAAgB;IAAEC;EAAW,CAAC,GAAGT,KAAK;EAEhE,IAAMU,aAAa,GAAG/B,OAAO,CAAC,MAAM;IAClC,OACE6B,gBAAgB,CAACG,OAAO,CAAC,qCAAqC,CAAC,IAAI,CAAC,CAAC;EAEzE,CAAC,EAAE,CAACH,gBAAgB,CAAC,CAAC;EAEtB,IAAMI,eAAe,GAAGjC,OAAO,CAAC,MAAM;IACpC,OAAOW,OAAO,CAACU,KAAK,CAACa,yBAAyB,CAAC,GAC3CH,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEI,SAAS,GACxBd,KAAK,CAACa,yBAAyB;EACrC,CAAC,EAAE,CAACb,KAAK,CAACa,yBAAyB,EAAEH,aAAa,CAAC,CAAC;EAEpDhC,SAAS,CAAC,MAAM;IACd,IAAMqC,iBAAiB,GAAG1B,GAAG,CAACuB,eAAe,EAAE,CAACT,KAAK,EAAEL,GAAG,MAAM;MAC9DkB,IAAI,EAAEb,KAAK;MACXA,KAAK,EAAEL;IACT,CAAC,CAAC,CAAC;IACHO,mBAAmB,CAACU,iBAAiB,CAAC;EACxC,CAAC,EAAE,CAACH,eAAe,CAAC,CAAC;EAErB,IAAMK,OAAO,GAAIC,CAAM,IAAW;IAChC,IAAM;MAAEC,cAAc;MAAEC;IAAM,CAAC,GAAGV,aAAa;IAC/C,IAAMP,KAA0B,GAAG;MACjCkB,QAAQ,EAAEF,cAAc;MACxBG,UAAU,EAAE,EAAE;MACdF,KAAK;MACLd,OAAO,EAAE;IACX,CAAC;IACDJ,iBAAiB,CAAC,EAAE,CAAC;IACrBF,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEuB,QAAQ,CAACpB,KAAK,CAAC;IACtBH,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEwB,iBAAiB,CAAC,KAAK,CAAC;IAC/BxB,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEyB,sBAAsB,CAAC,KAAK,CAAC;EACtC,CAAC;EAED,IAAMC,SAAS,GAAIR,CAAM,IAAW;IAClC,IAAME,KAA0B,GAAG;MACjCC,QAAQ,EAAEpB,cAAc;MACxBqB,UAAU,EAAEV,eAAe,CAACX,cAAc,CAAC;MAC3CmB,KAAK,EAAE,CAAC,CAAC;MACTd;IACF,CAAC;IACDN,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEuB,QAAQ,CAACH,KAAK,CAAC;IACtBpB,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEyB,sBAAsB,CAAC,KAAK,CAAC;EACtC,CAAC;EAED,IAAME,iBAAiB,GAAIT,CAAM,IAAW;IAC1ChB,iBAAiB,CAACgB,CAAC,CAACU,MAAM,CAACzB,KAAK,CAAC;EACnC,CAAC;EAED,IAAM0B,QAAQ,GAAIX,CAAM,IAAW;IACjC,IAAMf,KAAK,GAAGT,MAAM,CAACwB,CAAC,CAACU,MAAM,CAACzB,KAAK,CAAC2B,IAAI,EAAE,CAAC;IAC3C,IAAMf,iBAAiB,GAAG1B,GAAG,CAACuB,eAAe,EAAE,CAACT,KAAK,EAAEL,GAAG,MAAM;MAC9DkB,IAAI,EAAEb,KAAK;MACXA,KAAK,EAAEL;IACT,CAAC,CAAC,CAAC;IACH,IAAMiC,KAAK,GAAG,IAAIC,MAAM,CAAC7B,KAAK,EAAE,IAAI,CAAC;IACrC,IAAM8B,sBAAsB,GAAGlB,iBAAiB,CAACmB,MAAM,CAAEC,CAAC,IACxDJ,KAAK,CAACK,IAAI,CAACD,CAAC,CAACnB,IAAI,CAAC,CACnB;IACDX,mBAAmB,CAAC4B,sBAAsB,CAAC;EAC7C,CAAC;EAED,IAAMI,mBAAmB,GAAI/B,OAAgB,IAAW;IACtD,IAAIG,UAAU,EAAE;MACdT,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEwB,iBAAiB,CAAClB,OAAO,CAAC;MACjCN,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEyB,sBAAsB,CAACnB,OAAO,CAAC;IACxC,CAAC,MAAM;MACLN,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEwB,iBAAiB,CAAC,IAAI,CAAC;MAC9BxB,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEyB,sBAAsB,CAAC,IAAI,CAAC;IACrC;EACF,CAAC;EAED,IAAMa,UAAU,GAAG,MAAoB;IACrC,oBACE,uDACE,oBAAC,KAAK;MACJ,WAAW,EAAE/C,IAAI,CAACgD,CAAC,WAAI9C,sBAAsB,cAAID,CAAC,CAACgD,YAAY,EAAI;MACnE,MAAM,eAAE,oBAAC,cAAc,OAAI;MAC3B,YAAY,EAAEX,QAAS;MACvB,eAAY;IAAwB,EACpC,eACF;MAAK,SAAS,EAAEzC,MAAM,CAACqD;IAAQ,gBAC7B,oBAAC,KAAK,CAAC,KAAK;MAAC,KAAK,EAAExC,cAAe;MAAC,QAAQ,EAAE0B;IAAkB,gBAC9D,oBAAC,KAAK;MAAC,SAAS,EAAC;IAAU,GACxBvB,gBAAgB,CAACf,GAAG,CAAC;MAAA,IAAC;QAAE2B,IAAI;QAAEb;MAAM,CAAC;MAAA,oBACpC,oBAAC,KAAK;QAAC,GAAG,EAAEA,KAAM;QAAC,KAAK,EAAEA;MAAM,GAC7Ba,IAAI,CACC;IAAA,CACT,CAAC,CACI,CACI,CACV,eACN;MAAK,SAAS,EAAE5B,MAAM,CAACsD;IAAO,gBAC5B,oBAAC,MAAM;MACL,IAAI,EAAC,MAAM;MACX,IAAI,EAAC,OAAO;MACZ,OAAO,EAAEzB,OAAQ;MACjB,QAAQ,EAAER;IAAW,GAEpBlB,IAAI,CAACgD,CAAC,WAAI9C,sBAAsB,cAAID,CAAC,CAACmD,KAAK,EAAG,CACxC,eACT,oBAAC,MAAM;MAAC,IAAI,EAAC,SAAS;MAAC,IAAI,EAAC,OAAO;MAAC,OAAO,EAAEjB;IAAU,GACpDnC,IAAI,CAACgD,CAAC,WAAI9C,sBAAsB,cAAID,CAAC,CAACoD,OAAO,EAAG,CAC1C,CACL,CACL;EAEP,CAAC;EACD,oBACE,oBAAC,OAAO;IACN,OAAO,EAAEN,UAAU,EAAG;IACtB,SAAS,EAAC,aAAa;IACvB,YAAY,EAAE;MAAEO,KAAK,EAAE;IAAQ,CAAE;IACjC,OAAO,EAAEtC,OAAQ;IACjB,OAAO,EAAC;EAAO,gBAEf,oBAAC,UAAU;IACT,OAAO,EAAED,OAAQ;IACjB,QAAQ,EAAE+B,mBAAoB;IAC9B,KAAK,EAAE;MAAES,WAAW,EAAE;IAAG,CAAE;IAC3B,IAAI,EAAC,sBAAsB;IAC3B,KAAK,EAAE,EAAG;IACV,eAAY;EAAsB,EAClC,CACM;AAEd,CAAC;AAED,eAAe/C,oBAAoB"}
|
|
1
|
+
{"version":3,"file":"FilterInstanceSource.js","names":["React","useEffect","useMemo","useState","Popover","Input","Button","Radio","Space","IconButton","SearchOutlined","styles","map","isEmpty","i18n","K","NS_LIBS_CMDB_INSTANCES","encode","keyword","reg","replace","key","FilterInstanceSource","props","instanceSource","setInstanceSource","value","objectIdNameList","setObjectIdNameList","setKeyword","undefined","checked","visible","jsonLocalStorage","isAbstract","objectNameMap","getItem","_modelIdNameMap","inheritanceModelIdNameMap","idNameMap","_objectIdNameList","text","onReset","e","parentObjectId","query","objectId","objectName","onChange","onIconClicKChange","onPopoverVisibleChange","onConfirm","handleRadioChange","target","onSearch","trim","regex","RegExp","filterObjectIdNameList","filter","v","test","onIconCheckedChange","getContent","t","SEARCH_MODEL","content","footer","RESET","CONFIRM","width","marginRight"],"sources":["../../../src/instance-list/FilterInstanceSource.tsx"],"sourcesContent":["import React, { FC, ReactElement, useEffect, useMemo, useState } from \"react\";\nimport { Popover, Input, Button, Radio, Space } from \"antd\";\nimport { IconButton } from \"./IconButton\";\nimport { SearchOutlined } from \"@ant-design/icons\";\nimport styles from \"./FilterInstanceSource.module.css\";\nimport { map, isEmpty } from \"lodash\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\n\nimport { filterObjectIdQuery } from \"./InstanceList\";\n\ninterface FilterInstanceSourceProps {\n visible?: boolean;\n checked?: boolean;\n onIconClicKChange?(checked: boolean): void;\n inheritanceModelIdNameMap?: Record<string, string>;\n value?: string;\n onChange: (value: filterObjectIdQuery) => void;\n onPopoverVisibleChange?(visible: boolean): void;\n jsonLocalStorage?: any;\n isAbstract?: boolean;\n}\n\nfunction encode(keyword: string): string {\n const reg = /[[($^.\\]*\\\\?+{}|)]/gi;\n return keyword.replace(reg, (key) => `\\\\${key}`);\n}\n\nconst FilterInstanceSource: FC<FilterInstanceSourceProps> = (props) => {\n const [instanceSource, setInstanceSource] = useState(props.value);\n const [objectIdNameList, setObjectIdNameList] = useState([]);\n const [keyword, setKeyword] = useState(undefined);\n const { checked, visible, jsonLocalStorage, isAbstract } = props;\n\n const objectNameMap = useMemo(() => {\n return (\n jsonLocalStorage.getItem(\"instances-sources-objectId-name-map\") || {}\n );\n }, [jsonLocalStorage]);\n\n const _modelIdNameMap = useMemo(() => {\n return isEmpty(props.inheritanceModelIdNameMap)\n ? objectNameMap?.idNameMap\n : props.inheritanceModelIdNameMap;\n }, [props.inheritanceModelIdNameMap, objectNameMap]);\n\n useEffect(() => {\n const _objectIdNameList = map(_modelIdNameMap, (value, key) => ({\n text: value,\n value: key,\n }));\n setObjectIdNameList(_objectIdNameList);\n }, [_modelIdNameMap]);\n\n const onReset = (e: any): void => {\n const { parentObjectId, query } = objectNameMap;\n const value: filterObjectIdQuery = {\n objectId: parentObjectId,\n objectName: \"\",\n query,\n checked: false,\n };\n setKeyword(undefined);\n setInstanceSource(\"\");\n props?.onChange(value);\n props?.onIconClicKChange(false);\n props?.onPopoverVisibleChange(false);\n };\n\n const onConfirm = (e: any): void => {\n const query: filterObjectIdQuery = {\n objectId: instanceSource,\n objectName: _modelIdNameMap[instanceSource],\n query: objectNameMap?.query || {},\n checked,\n };\n setKeyword(undefined);\n props?.onChange(query);\n props?.onPopoverVisibleChange(false);\n };\n\n const handleRadioChange = (e: any): void => {\n setInstanceSource(e.target.value);\n };\n\n const onSearch = (e: any): void => {\n const value = encode(e.target.value.trim());\n const _objectIdNameList = map(_modelIdNameMap, (value, key) => ({\n text: value,\n value: key,\n }));\n const regex = new RegExp(value, \"ig\");\n const filterObjectIdNameList = _objectIdNameList.filter((v) =>\n regex.test(v.text)\n );\n setKeyword(e.target.value.trim());\n setObjectIdNameList(filterObjectIdNameList);\n };\n\n const onIconCheckedChange = (checked: boolean): void => {\n if (isAbstract) {\n props?.onIconClicKChange(checked);\n props?.onPopoverVisibleChange(checked);\n } else {\n props?.onIconClicKChange(true);\n props?.onPopoverVisibleChange(true);\n }\n };\n\n const getContent = (): ReactElement => {\n return (\n <>\n <Input\n placeholder={i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.SEARCH_MODEL}`)}\n suffix={<SearchOutlined />}\n onPressEnter={onSearch}\n value={keyword}\n data-testid=\"instance-source-search\"\n />\n <div className={styles.content}>\n <Radio.Group value={instanceSource} onChange={handleRadioChange}>\n <Space direction=\"vertical\">\n {objectIdNameList.map(({ text, value }) => (\n <Radio key={value} value={value}>\n {text}\n </Radio>\n ))}\n </Space>\n </Radio.Group>\n </div>\n <div className={styles.footer}>\n <Button\n type=\"text\"\n size=\"small\"\n onClick={onReset}\n disabled={isAbstract}\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.RESET}`)}\n </Button>\n <Button type=\"primary\" size=\"small\" onClick={onConfirm}>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CONFIRM}`)}\n </Button>\n </div>\n </>\n );\n };\n return (\n <Popover\n content={getContent()}\n placement=\"bottomRight\"\n overlayStyle={{ width: \"325px\" }}\n visible={visible}\n trigger=\"click\"\n >\n <IconButton\n checked={checked}\n onChange={onIconCheckedChange}\n style={{ marginRight: 10 }}\n type=\"filterInstanceSource\"\n label={\"\"}\n data-testid=\"instance-source-icon\"\n />\n </Popover>\n );\n};\n\nexport default FilterInstanceSource;\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@next-libs/cmdb-instances",
|
|
3
|
-
"version": "7.6.
|
|
3
|
+
"version": "7.6.3",
|
|
4
4
|
"description": "> TODO: description",
|
|
5
5
|
"homepage": "https://github.com/easyops-cn/next-libs/tree/master/libs/cmdb-instances",
|
|
6
6
|
"license": "GPL-3.0",
|
|
@@ -50,5 +50,5 @@
|
|
|
50
50
|
"immutability-helper": "^3.1.1",
|
|
51
51
|
"marked": "^2.1.3"
|
|
52
52
|
},
|
|
53
|
-
"gitHead": "
|
|
53
|
+
"gitHead": "55af10bd802144d0479d3695ff8f6b8d42f2b3bf"
|
|
54
54
|
}
|