@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.2",
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": "07f0a4fd464e902725304dbddb0a7aceb1f50450"
53
+ "gitHead": "55af10bd802144d0479d3695ff8f6b8d42f2b3bf"
54
54
  }