@next-libs/cmdb-instances 7.27.2 → 7.28.0

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 (51) hide show
  1. package/dist/cjs/i18n/constants.js +4 -0
  2. package/dist/cjs/i18n/constants.js.map +1 -1
  3. package/dist/cjs/i18n/locales/en.js +5 -1
  4. package/dist/cjs/i18n/locales/en.js.map +1 -1
  5. package/dist/cjs/i18n/locales/zh.js +5 -1
  6. package/dist/cjs/i18n/locales/zh.js.map +1 -1
  7. package/dist/cjs/instance-list/InstanceList.js +2 -1
  8. package/dist/cjs/instance-list/InstanceList.js.map +1 -1
  9. package/dist/cjs/instance-list-drawer/InstanceListDrawer.js +1 -4
  10. package/dist/cjs/instance-list-drawer/InstanceListDrawer.js.map +1 -1
  11. package/dist/cjs/instance-list-table/DisplaySettingsModal.js +50 -10
  12. package/dist/cjs/instance-list-table/DisplaySettingsModal.js.map +1 -1
  13. package/dist/cjs/instance-list-table/InstanceListTable.js +5 -13
  14. package/dist/cjs/instance-list-table/InstanceListTable.js.map +1 -1
  15. package/dist/cjs/instance-list-table/MoreButtonsContainer.js +1 -0
  16. package/dist/cjs/instance-list-table/MoreButtonsContainer.js.map +1 -1
  17. package/dist/cjs/instance-list-table/SortSettings.js +145 -0
  18. package/dist/cjs/instance-list-table/SortSettings.js.map +1 -0
  19. package/dist/cjs/instance-list-table/TableTooltip.js +39 -0
  20. package/dist/cjs/instance-list-table/TableTooltip.js.map +1 -0
  21. package/dist/esm/i18n/constants.js +4 -0
  22. package/dist/esm/i18n/constants.js.map +1 -1
  23. package/dist/esm/i18n/locales/en.js +5 -1
  24. package/dist/esm/i18n/locales/en.js.map +1 -1
  25. package/dist/esm/i18n/locales/zh.js +5 -1
  26. package/dist/esm/i18n/locales/zh.js.map +1 -1
  27. package/dist/esm/instance-list/InstanceList.js +2 -1
  28. package/dist/esm/instance-list/InstanceList.js.map +1 -1
  29. package/dist/esm/instance-list-drawer/InstanceListDrawer.js +1 -4
  30. package/dist/esm/instance-list-drawer/InstanceListDrawer.js.map +1 -1
  31. package/dist/esm/instance-list-table/DisplaySettingsModal.js +51 -10
  32. package/dist/esm/instance-list-table/DisplaySettingsModal.js.map +1 -1
  33. package/dist/esm/instance-list-table/InstanceListTable.js +5 -13
  34. package/dist/esm/instance-list-table/InstanceListTable.js.map +1 -1
  35. package/dist/esm/instance-list-table/InstanceListTable.module.css +0 -11
  36. package/dist/esm/instance-list-table/MoreButtonsContainer.js +1 -0
  37. package/dist/esm/instance-list-table/MoreButtonsContainer.js.map +1 -1
  38. package/dist/esm/instance-list-table/SortSettings.js +141 -0
  39. package/dist/esm/instance-list-table/SortSettings.js.map +1 -0
  40. package/dist/esm/instance-list-table/SortSettings.module.css +15 -0
  41. package/dist/esm/instance-list-table/TableTooltip.js +30 -0
  42. package/dist/esm/instance-list-table/TableTooltip.js.map +1 -0
  43. package/dist/esm/instance-list-table/TableTooltip.module.css +4 -0
  44. package/dist/types/i18n/constants.d.ts +5 -1
  45. package/dist/types/instance-list-table/DisplaySettingsModal.d.ts +4 -0
  46. package/dist/types/instance-list-table/MoreButtonsContainer.d.ts +4 -0
  47. package/dist/types/instance-list-table/SortSettings.d.ts +13 -0
  48. package/dist/types/instance-list-table/SortSettings.spec.d.ts +1 -0
  49. package/dist/types/instance-list-table/TableTooltip.d.ts +6 -0
  50. package/dist/types/instance-list-table/TableTooltip.spec.d.ts +1 -0
  51. package/package.json +2 -2
@@ -37,15 +37,12 @@ export function InstanceListDrawer(props) {
37
37
  }, i18n.t("".concat(NS_LIBS_CMDB_INSTANCES, ":").concat(K.BACK))));
38
38
  };
39
39
  var handleRelationMoreIconClick = record => {
40
- var _record$record$left_i;
41
40
  setState({
42
41
  open: true,
43
42
  objectId: record.objectId,
44
43
  drawerTitle: record.left_name,
45
44
  query: {
46
- instanceId: {
47
- $in: (record === null || record === void 0 ? void 0 : (_record$record$left_i = record[record.left_id]) === null || _record$record$left_i === void 0 ? void 0 : _record$record$left_i.map(v => v.instanceId)) || []
48
- }
45
+ ["".concat(record.right_id, ".instanceId")]: record.instanceId
49
46
  }
50
47
  });
51
48
  };
@@ -1 +1 @@
1
- {"version":3,"file":"InstanceListDrawer.js","names":["React","useReducer","Button","Drawer","i18n","K","NS_LIBS_CMDB_INSTANCES","LegacyInstanceListWrapper","addResourceBundle","getRuntime","reducer","prevState","updatedProperty","_objectSpread","DEFAULT_RELATION_LIMIT","InstanceListDrawer","props","_ref","_props$relationLimit","_getRuntime$getMiscSe","_props$drawerZIndex","state","setState","open","objectId","drawerTitle","query","handleClose","renderFooter","createElement","Fragment","onClick","type","t","concat","BACK","handleRelationMoreIconClick","record","_record$record$left_i","left_name","instanceId","$in","left_id","map","v","_relationLimit","relationLimit","getMiscSettings","defaultRelationLimit","_extends","onRelationMoreIconClick","title","visible","width","drawerWidth","onClose","destroyOnClose","footer","zIndex","drawerZIndex","footerStyle","background","detailUrlTemplates","presetConfigs","selectDisabled","ipCopy","target","relatedToMe","relatedToMeDisabled","searchDisabled","sortDisabled","advancedSearchDisabled","aliveHostsDisabled","moreButtonsDisabled","showFixedHeader","showTooltip","relationLinkDisabled","showSizeChanger","useExternalCmdbApi","externalSourceId","useAutoDiscoveryProvider","useInstanceArchiveProvider","saveFieldsBackend"],"sources":["../../../src/instance-list-drawer/InstanceListDrawer.tsx"],"sourcesContent":["import React, { useReducer } from \"react\";\nimport { Button, Drawer } from \"antd\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport {\n LegacyInstanceListWrapper,\n InstanceListProps,\n} from \"../instance-list/InstanceList\";\nimport { addResourceBundle } from \"../i18n\";\nimport { getRuntime } from \"@next-core/brick-kit\";\naddResourceBundle();\n\nexport interface InstanceListDrawerProps extends InstanceListProps {\n drawerZIndex?: number;\n drawerWidth?: number;\n}\n/* istanbul ignore next */\nconst reducer = (\n prevState: InstanceListDrawerState,\n updatedProperty: Partial<InstanceListDrawerState>\n): InstanceListDrawerState => {\n return {\n ...prevState,\n ...updatedProperty,\n };\n};\n\nconst DEFAULT_RELATION_LIMIT = 5;\n\ninterface InstanceListDrawerState {\n open: boolean;\n objectId: string;\n drawerTitle: string;\n query: Record<string, any>;\n}\n\nexport function InstanceListDrawer(\n props: InstanceListDrawerProps\n): React.ReactElement {\n const [state, setState] = useReducer(reducer, {\n open: false,\n objectId: null,\n drawerTitle: \"\",\n query: null,\n });\n\n /* istanbul ignore next */\n const handleClose = (): void => {\n setState({\n open: false,\n drawerTitle: \"\",\n });\n };\n\n const renderFooter = (): React.ReactElement => {\n return (\n <>\n <Button\n data-testid={\"back-button\"}\n onClick={handleClose}\n type=\"default\"\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.BACK}`)}\n </Button>\n </>\n );\n };\n const handleRelationMoreIconClick = (record: Record<string, any>): void => {\n setState({\n open: true,\n objectId: record.objectId,\n drawerTitle: record.left_name,\n query: {\n instanceId: {\n $in: record?.[record.left_id]?.map((v: any) => v.instanceId) || [],\n },\n },\n });\n };\n\n const _relationLimit =\n props.relationLimit ??\n (getRuntime().getMiscSettings()?.defaultRelationLimit as number) ??\n DEFAULT_RELATION_LIMIT;\n return (\n <>\n <LegacyInstanceListWrapper\n {...props}\n onRelationMoreIconClick={handleRelationMoreIconClick}\n relationLimit={_relationLimit}\n />\n <Drawer\n title={state.drawerTitle}\n visible={state.open}\n width={props.drawerWidth || 900}\n onClose={handleClose}\n destroyOnClose={true}\n footer={renderFooter()}\n zIndex={props.drawerZIndex ?? 1000}\n footerStyle={{ background: \"var(--color-fill-bg-base-3)\" }}\n >\n <InstanceListDrawer\n objectId={state.objectId}\n onRelationMoreIconClick={handleRelationMoreIconClick}\n relationLimit={_relationLimit}\n detailUrlTemplates={props.detailUrlTemplates}\n presetConfigs={{ query: state.query }}\n selectDisabled={true}\n ipCopy={props.ipCopy}\n target={props.target}\n relatedToMe={props.relatedToMe}\n relatedToMeDisabled={props.relatedToMeDisabled}\n searchDisabled={props.searchDisabled}\n sortDisabled={props.sortDisabled}\n advancedSearchDisabled={props.advancedSearchDisabled}\n aliveHostsDisabled={props.aliveHostsDisabled}\n moreButtonsDisabled={props.moreButtonsDisabled}\n showFixedHeader={props.showFixedHeader}\n showTooltip={props.showTooltip}\n relationLinkDisabled={props.relationLinkDisabled}\n showSizeChanger={props.showSizeChanger}\n useExternalCmdbApi={props.useExternalCmdbApi}\n externalSourceId={props.externalSourceId}\n useAutoDiscoveryProvider={props.useAutoDiscoveryProvider}\n useInstanceArchiveProvider={props.useInstanceArchiveProvider}\n saveFieldsBackend={props.saveFieldsBackend}\n />\n </Drawer>\n </>\n );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"InstanceListDrawer.js","names":["React","useReducer","Button","Drawer","i18n","K","NS_LIBS_CMDB_INSTANCES","LegacyInstanceListWrapper","addResourceBundle","getRuntime","reducer","prevState","updatedProperty","_objectSpread","DEFAULT_RELATION_LIMIT","InstanceListDrawer","props","_ref","_props$relationLimit","_getRuntime$getMiscSe","_props$drawerZIndex","state","setState","open","objectId","drawerTitle","query","handleClose","renderFooter","createElement","Fragment","onClick","type","t","concat","BACK","handleRelationMoreIconClick","record","left_name","right_id","instanceId","_relationLimit","relationLimit","getMiscSettings","defaultRelationLimit","_extends","onRelationMoreIconClick","title","visible","width","drawerWidth","onClose","destroyOnClose","footer","zIndex","drawerZIndex","footerStyle","background","detailUrlTemplates","presetConfigs","selectDisabled","ipCopy","target","relatedToMe","relatedToMeDisabled","searchDisabled","sortDisabled","advancedSearchDisabled","aliveHostsDisabled","moreButtonsDisabled","showFixedHeader","showTooltip","relationLinkDisabled","showSizeChanger","useExternalCmdbApi","externalSourceId","useAutoDiscoveryProvider","useInstanceArchiveProvider","saveFieldsBackend"],"sources":["../../../src/instance-list-drawer/InstanceListDrawer.tsx"],"sourcesContent":["import React, { useReducer } from \"react\";\nimport { Button, Drawer } from \"antd\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport {\n LegacyInstanceListWrapper,\n InstanceListProps,\n} from \"../instance-list/InstanceList\";\nimport { addResourceBundle } from \"../i18n\";\nimport { getRuntime } from \"@next-core/brick-kit\";\naddResourceBundle();\n\nexport interface InstanceListDrawerProps extends InstanceListProps {\n drawerZIndex?: number;\n drawerWidth?: number;\n}\n/* istanbul ignore next */\nconst reducer = (\n prevState: InstanceListDrawerState,\n updatedProperty: Partial<InstanceListDrawerState>\n): InstanceListDrawerState => {\n return {\n ...prevState,\n ...updatedProperty,\n };\n};\n\nconst DEFAULT_RELATION_LIMIT = 5;\n\ninterface InstanceListDrawerState {\n open: boolean;\n objectId: string;\n drawerTitle: string;\n query: Record<string, any>;\n}\n\nexport function InstanceListDrawer(\n props: InstanceListDrawerProps\n): React.ReactElement {\n const [state, setState] = useReducer(reducer, {\n open: false,\n objectId: null,\n drawerTitle: \"\",\n query: null,\n });\n\n /* istanbul ignore next */\n const handleClose = (): void => {\n setState({\n open: false,\n drawerTitle: \"\",\n });\n };\n\n const renderFooter = (): React.ReactElement => {\n return (\n <>\n <Button\n data-testid={\"back-button\"}\n onClick={handleClose}\n type=\"default\"\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.BACK}`)}\n </Button>\n </>\n );\n };\n const handleRelationMoreIconClick = (record: Record<string, any>): void => {\n setState({\n open: true,\n objectId: record.objectId,\n drawerTitle: record.left_name,\n query: {\n [`${record.right_id}.instanceId`]: record.instanceId,\n },\n });\n };\n\n const _relationLimit =\n props.relationLimit ??\n (getRuntime().getMiscSettings()?.defaultRelationLimit as number) ??\n DEFAULT_RELATION_LIMIT;\n return (\n <>\n <LegacyInstanceListWrapper\n {...props}\n onRelationMoreIconClick={handleRelationMoreIconClick}\n relationLimit={_relationLimit}\n />\n <Drawer\n title={state.drawerTitle}\n visible={state.open}\n width={props.drawerWidth || 900}\n onClose={handleClose}\n destroyOnClose={true}\n footer={renderFooter()}\n zIndex={props.drawerZIndex ?? 1000}\n footerStyle={{ background: \"var(--color-fill-bg-base-3)\" }}\n >\n <InstanceListDrawer\n objectId={state.objectId}\n onRelationMoreIconClick={handleRelationMoreIconClick}\n relationLimit={_relationLimit}\n detailUrlTemplates={props.detailUrlTemplates}\n presetConfigs={{ query: state.query }}\n selectDisabled={true}\n ipCopy={props.ipCopy}\n target={props.target}\n relatedToMe={props.relatedToMe}\n relatedToMeDisabled={props.relatedToMeDisabled}\n searchDisabled={props.searchDisabled}\n sortDisabled={props.sortDisabled}\n advancedSearchDisabled={props.advancedSearchDisabled}\n aliveHostsDisabled={props.aliveHostsDisabled}\n moreButtonsDisabled={props.moreButtonsDisabled}\n showFixedHeader={props.showFixedHeader}\n showTooltip={props.showTooltip}\n relationLinkDisabled={props.relationLinkDisabled}\n showSizeChanger={props.showSizeChanger}\n useExternalCmdbApi={props.useExternalCmdbApi}\n externalSourceId={props.externalSourceId}\n useAutoDiscoveryProvider={props.useAutoDiscoveryProvider}\n useInstanceArchiveProvider={props.useInstanceArchiveProvider}\n saveFieldsBackend={props.saveFieldsBackend}\n />\n </Drawer>\n </>\n );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,10 +1,21 @@
1
+ /* eslint-disable @typescript-eslint/explicit-function-return-type */
1
2
  import { Button, Modal, Dropdown, Menu } from "antd";
2
3
  import React, { useMemo, useState } from "react";
3
4
  import { useTranslation } from "react-i18next";
4
5
  import { K, NS_LIBS_CMDB_INSTANCES } from "../i18n/constants";
5
6
  import { DisplaySettings } from "./DisplaySettings";
7
+ import { SortSettings } from "./SortSettings";
6
8
  import { getAuth } from "@next-core/brick-kit";
7
9
  import { EllipsisOutlined } from "@ant-design/icons";
10
+ var sortField = function () {
11
+ var dataSource = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
12
+ var order = arguments.length > 1 ? arguments[1] : undefined;
13
+ return dataSource === null || dataSource === void 0 ? void 0 : dataSource.sort((a, b) => {
14
+ var indexA = order.indexOf(a);
15
+ var indexB = order.indexOf(b);
16
+ return indexA - indexB;
17
+ });
18
+ };
8
19
  export function DisplaySettingsModal(props) {
9
20
  var {
10
21
  visible,
@@ -16,13 +27,18 @@ export function DisplaySettingsModal(props) {
16
27
  defaultFields,
17
28
  extraDisabledField,
18
29
  extraDisabledFields,
30
+ sortFields,
19
31
  onOk,
20
32
  onCancel
21
33
  } = props;
22
34
  var {
23
35
  t
24
36
  } = useTranslation(NS_LIBS_CMDB_INSTANCES);
25
- var [nextFields, setNextFields] = useState(currentFields);
37
+ var sortAttrList = sortFields ? sortFields.map(v => v.field) : [];
38
+ var sortCurrentFields = sortField(currentFields, sortAttrList);
39
+ var [nextFields, setNextFields] = useState(sortCurrentFields);
40
+ var [sortSettingsVisible, setSortSettingsVisible] = useState(false);
41
+ var [originalNextFields, setOriginalNextFields] = useState(sortCurrentFields);
26
42
  var count = useMemo(() => nextFields === null || nextFields === void 0 ? void 0 : nextFields.filter(v => v !== "_object_id").length, [nextFields]);
27
43
  var handleReset = () => {
28
44
  var fields = defaultFields ? defaultFields.slice() : [];
@@ -33,22 +49,24 @@ export function DisplaySettingsModal(props) {
33
49
  });
34
50
  };
35
51
  var handleCancel = () => {
36
- setNextFields(currentFields ? [...currentFields] : []);
52
+ setNextFields(sortCurrentFields ? [...sortCurrentFields] : []);
37
53
  onCancel === null || onCancel === void 0 ? void 0 : onCancel();
38
54
  };
55
+ var handleSortFields = () => {
56
+ setSortSettingsVisible(true);
57
+ setOriginalNextFields(nextFields ? [...nextFields] : []);
58
+ };
39
59
  var handleDropdownMenuClick = e => {
40
- // istanbul ignore next
41
60
  if (e.key === "restore-default") {
42
61
  handleReset();
43
62
  } else {
44
- // istanbul ignore next
45
63
  // 管理员将现在选中的字段设置为默认显示, 不会影响到当前列表展示字段,所以需要类似【取消】操作重置字段。
46
64
  props === null || props === void 0 ? void 0 : props.onOk({
47
65
  fields: nextFields,
48
66
  isReset: false,
49
67
  isAdminSetDisplay: true
50
68
  });
51
- setNextFields(currentFields ? [...currentFields] : []);
69
+ setNextFields(sortCurrentFields ? [...sortCurrentFields] : []);
52
70
  }
53
71
  };
54
72
  var showIsAdminSetDefault = getAuth().isAdmin;
@@ -60,7 +78,18 @@ export function DisplaySettingsModal(props) {
60
78
  key: "restore-default",
61
79
  onClick: handleDropdownMenuClick
62
80
  }, t(K.RESTORE_DEFAULT)));
63
- return /*#__PURE__*/React.createElement(Modal, {
81
+ var handleSortEnd = data => {
82
+ setNextFields(data);
83
+ };
84
+ var handleSortSettingCancel = () => {
85
+ setSortSettingsVisible(false);
86
+ setNextFields(originalNextFields ? [...originalNextFields] : []);
87
+ };
88
+ var handleSortSettingOk = () => {
89
+ setSortSettingsVisible(false);
90
+ setNextFields(nextFields ? [...nextFields] : []);
91
+ };
92
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Modal, {
64
93
  title: t(K.DISPLAY_SETTINGS),
65
94
  visible: visible,
66
95
  footer: /*#__PURE__*/React.createElement("div", {
@@ -86,11 +115,11 @@ export function DisplaySettingsModal(props) {
86
115
  }, /*#__PURE__*/React.createElement(Button, {
87
116
  type: "text",
88
117
  onClick: handleCancel,
89
- style: {
90
- marginRight: 10
91
- },
92
118
  "data-testid": "cancel-button"
93
119
  }, t(K.CANCEL)), /*#__PURE__*/React.createElement(Button, {
120
+ onClick: handleSortFields,
121
+ "data-testid": "sort-settings-button"
122
+ }, t(K.SORT_SETTINGS)), /*#__PURE__*/React.createElement(Button, {
94
123
  type: "primary",
95
124
  onClick: () => props === null || props === void 0 ? void 0 : props.onOk({
96
125
  fields: nextFields
@@ -109,6 +138,18 @@ export function DisplaySettingsModal(props) {
109
138
  extraDisabledField: extraDisabledField,
110
139
  extraDisabledFields: extraDisabledFields,
111
140
  onChange: fields => setNextFields(fields)
112
- }));
141
+ })), /*#__PURE__*/React.createElement(Modal, {
142
+ title: t(K.SORT_SETTINGS),
143
+ visible: sortSettingsVisible,
144
+ destroyOnClose: true,
145
+ centered: true,
146
+ onCancel: handleSortSettingCancel,
147
+ onOk: handleSortSettingOk
148
+ }, /*#__PURE__*/React.createElement(SortSettings, {
149
+ rowKey: "id",
150
+ modelData: modelData,
151
+ currentFields: nextFields,
152
+ onSortEnd: handleSortEnd
153
+ })));
113
154
  }
114
155
  //# sourceMappingURL=DisplaySettingsModal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DisplaySettingsModal.js","names":["Button","Modal","Dropdown","Menu","React","useMemo","useState","useTranslation","K","NS_LIBS_CMDB_INSTANCES","DisplaySettings","getAuth","EllipsisOutlined","DisplaySettingsModal","props","visible","objectId","modelData","saveFieldsBackend","useExternalCmdbApi","currentFields","defaultFields","extraDisabledField","extraDisabledFields","onOk","onCancel","t","nextFields","setNextFields","count","filter","v","length","handleReset","fields","slice","isReset","handleCancel","handleDropdownMenuClick","e","key","isAdminSetDisplay","showIsAdminSetDefault","isAdmin","dropdownMenuItems","createElement","Item","disabled","onClick","DEFAULT_DISPLAY","RESTORE_DEFAULT","title","DISPLAY_SETTINGS","footer","style","display","overlay","placement","trigger","type","icon","marginLeft","marginRight","CANCEL","CONFIRM","destroyOnClose","width","centered","onChange"],"sources":["../../../src/instance-list-table/DisplaySettingsModal.tsx"],"sourcesContent":["import { Button, Modal, Dropdown, Menu } from \"antd\";\nimport React, { useMemo, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport { DisplaySettings, DisplaySettingsProps } from \"./DisplaySettings\";\nimport { getAuth } from \"@next-core/brick-kit\";\nimport { EllipsisOutlined } from \"@ant-design/icons\";\n\nexport interface DisplaySettingsModalData {\n fields: string[];\n isReset?: boolean;\n isAdminSetDisplay?: boolean;\n}\n\nexport interface DisplaySettingsModalProps extends DisplaySettingsProps {\n visible?: boolean;\n defaultFields?: string[];\n saveFieldsBackend?: boolean;\n useExternalCmdbApi?: boolean;\n onOk?(data: DisplaySettingsModalData): void;\n onCancel?(): void;\n}\n\nexport function DisplaySettingsModal(\n props: DisplaySettingsModalProps\n): React.ReactElement {\n const {\n visible,\n objectId,\n modelData,\n saveFieldsBackend,\n useExternalCmdbApi,\n currentFields,\n defaultFields,\n extraDisabledField,\n extraDisabledFields,\n onOk,\n onCancel,\n } = props;\n const { t } = useTranslation(NS_LIBS_CMDB_INSTANCES);\n const [nextFields, setNextFields] = useState<string[]>(currentFields);\n const count = useMemo(\n () => nextFields?.filter((v) => v !== \"_object_id\").length,\n [nextFields]\n );\n\n const handleReset = (): void => {\n const fields = defaultFields ? defaultFields.slice() : [];\n\n setNextFields(fields);\n onOk?.({ fields, isReset: true });\n };\n\n const handleCancel = (): void => {\n setNextFields(currentFields ? [...currentFields] : []);\n onCancel?.();\n };\n\n const handleDropdownMenuClick = (e: any): void => {\n // istanbul ignore next\n if (e.key === \"restore-default\") {\n handleReset();\n } else {\n // istanbul ignore next\n // 管理员将现在选中的字段设置为默认显示, 不会影响到当前列表展示字段,所以需要类似【取消】操作重置字段。\n props?.onOk({\n fields: nextFields,\n isReset: false,\n isAdminSetDisplay: true,\n });\n setNextFields(currentFields ? [...currentFields] : []);\n }\n };\n\n const showIsAdminSetDefault = getAuth().isAdmin;\n\n const dropdownMenuItems = (\n <Menu>\n <Menu.Item\n key=\"set-default-display\"\n disabled={count === 0}\n onClick={handleDropdownMenuClick}\n >\n {t(K.DEFAULT_DISPLAY)}\n </Menu.Item>\n <Menu.Item key=\"restore-default\" onClick={handleDropdownMenuClick}>\n {t(K.RESTORE_DEFAULT)}\n </Menu.Item>\n </Menu>\n );\n return (\n <Modal\n title={t(K.DISPLAY_SETTINGS)}\n visible={visible}\n footer={\n <div style={{ display: \"flex\" }}>\n {showIsAdminSetDefault && saveFieldsBackend && !useExternalCmdbApi ? (\n <Dropdown\n overlay={dropdownMenuItems}\n placement=\"topLeft\"\n trigger={[\"click\"]}\n data-testid=\"admin-set-display-dropdown\"\n >\n <Button type=\"default\" icon={<EllipsisOutlined />}></Button>\n </Dropdown>\n ) : (\n <div>\n <Button\n type=\"default\"\n onClick={handleReset}\n data-testid=\"reset-button\"\n >\n {t(K.RESTORE_DEFAULT)}\n </Button>\n </div>\n )}\n <div style={{ marginLeft: \"auto\" }}>\n <Button\n type=\"text\"\n onClick={handleCancel}\n style={{ marginRight: 10 }}\n data-testid=\"cancel-button\"\n >\n {t(K.CANCEL)}\n </Button>\n <Button\n type=\"primary\"\n onClick={() => props?.onOk({ fields: nextFields })}\n disabled={count === 0}\n data-testid=\"ok-button\"\n >\n {t(K.CONFIRM)}\n </Button>\n </div>\n </div>\n }\n onCancel={handleCancel}\n destroyOnClose={true}\n width={780}\n centered={true}\n >\n <DisplaySettings\n objectId={objectId}\n modelData={modelData}\n currentFields={nextFields}\n extraDisabledField={extraDisabledField}\n extraDisabledFields={extraDisabledFields}\n onChange={(fields) => setNextFields(fields)}\n />\n </Modal>\n );\n}\n"],"mappings":"AAAA,SAASA,MAAM,EAAEC,KAAK,EAAEC,QAAQ,EAAEC,IAAI,QAAQ,MAAM;AACpD,OAAOC,KAAK,IAAIC,OAAO,EAAEC,QAAQ,QAAQ,OAAO;AAChD,SAASC,cAAc,QAAQ,eAAe;AAC9C,SAASC,CAAC,EAAEC,sBAAsB,QAAQ,mBAAmB;AAC7D,SAASC,eAAe,QAA8B,mBAAmB;AACzE,SAASC,OAAO,QAAQ,sBAAsB;AAC9C,SAASC,gBAAgB,QAAQ,mBAAmB;AAiBpD,OAAO,SAASC,oBAAoBA,CAClCC,KAAgC,EACZ;EACpB,IAAM;IACJC,OAAO;IACPC,QAAQ;IACRC,SAAS;IACTC,iBAAiB;IACjBC,kBAAkB;IAClBC,aAAa;IACbC,aAAa;IACbC,kBAAkB;IAClBC,mBAAmB;IACnBC,IAAI;IACJC;EACF,CAAC,GAAGX,KAAK;EACT,IAAM;IAAEY;EAAE,CAAC,GAAGnB,cAAc,CAACE,sBAAsB,CAAC;EACpD,IAAM,CAACkB,UAAU,EAAEC,aAAa,CAAC,GAAGtB,QAAQ,CAAWc,aAAa,CAAC;EACrE,IAAMS,KAAK,GAAGxB,OAAO,CACnB,MAAMsB,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEG,MAAM,CAAEC,CAAC,IAAKA,CAAC,KAAK,YAAY,CAAC,CAACC,MAAM,EAC1D,CAACL,UAAU,CACb,CAAC;EAED,IAAMM,WAAW,GAAGA,CAAA,KAAY;IAC9B,IAAMC,MAAM,GAAGb,aAAa,GAAGA,aAAa,CAACc,KAAK,CAAC,CAAC,GAAG,EAAE;IAEzDP,aAAa,CAACM,MAAM,CAAC;IACrBV,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAG;MAAEU,MAAM;MAAEE,OAAO,EAAE;IAAK,CAAC,CAAC;EACnC,CAAC;EAED,IAAMC,YAAY,GAAGA,CAAA,KAAY;IAC/BT,aAAa,CAACR,aAAa,GAAG,CAAC,GAAGA,aAAa,CAAC,GAAG,EAAE,CAAC;IACtDK,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAG,CAAC;EACd,CAAC;EAED,IAAMa,uBAAuB,GAAIC,CAAM,IAAW;IAChD;IACA,IAAIA,CAAC,CAACC,GAAG,KAAK,iBAAiB,EAAE;MAC/BP,WAAW,CAAC,CAAC;IACf,CAAC,MAAM;MACL;MACA;MACAnB,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEU,IAAI,CAAC;QACVU,MAAM,EAAEP,UAAU;QAClBS,OAAO,EAAE,KAAK;QACdK,iBAAiB,EAAE;MACrB,CAAC,CAAC;MACFb,aAAa,CAACR,aAAa,GAAG,CAAC,GAAGA,aAAa,CAAC,GAAG,EAAE,CAAC;IACxD;EACF,CAAC;EAED,IAAMsB,qBAAqB,GAAG/B,OAAO,CAAC,CAAC,CAACgC,OAAO;EAE/C,IAAMC,iBAAiB,gBACrBxC,KAAA,CAAAyC,aAAA,CAAC1C,IAAI,qBACHC,KAAA,CAAAyC,aAAA,CAAC1C,IAAI,CAAC2C,IAAI;IACRN,GAAG,EAAC,qBAAqB;IACzBO,QAAQ,EAAElB,KAAK,KAAK,CAAE;IACtBmB,OAAO,EAAEV;EAAwB,GAEhCZ,CAAC,CAAClB,CAAC,CAACyC,eAAe,CACX,CAAC,eACZ7C,KAAA,CAAAyC,aAAA,CAAC1C,IAAI,CAAC2C,IAAI;IAACN,GAAG,EAAC,iBAAiB;IAACQ,OAAO,EAAEV;EAAwB,GAC/DZ,CAAC,CAAClB,CAAC,CAAC0C,eAAe,CACX,CACP,CACP;EACD,oBACE9C,KAAA,CAAAyC,aAAA,CAAC5C,KAAK;IACJkD,KAAK,EAAEzB,CAAC,CAAClB,CAAC,CAAC4C,gBAAgB,CAAE;IAC7BrC,OAAO,EAAEA,OAAQ;IACjBsC,MAAM,eACJjD,KAAA,CAAAyC,aAAA;MAAKS,KAAK,EAAE;QAAEC,OAAO,EAAE;MAAO;IAAE,GAC7Bb,qBAAqB,IAAIxB,iBAAiB,IAAI,CAACC,kBAAkB,gBAChEf,KAAA,CAAAyC,aAAA,CAAC3C,QAAQ;MACPsD,OAAO,EAAEZ,iBAAkB;MAC3Ba,SAAS,EAAC,SAAS;MACnBC,OAAO,EAAE,CAAC,OAAO,CAAE;MACnB,eAAY;IAA4B,gBAExCtD,KAAA,CAAAyC,aAAA,CAAC7C,MAAM;MAAC2D,IAAI,EAAC,SAAS;MAACC,IAAI,eAAExD,KAAA,CAAAyC,aAAA,CAACjC,gBAAgB,MAAE;IAAE,CAAS,CACnD,CAAC,gBAEXR,KAAA,CAAAyC,aAAA,2BACEzC,KAAA,CAAAyC,aAAA,CAAC7C,MAAM;MACL2D,IAAI,EAAC,SAAS;MACdX,OAAO,EAAEf,WAAY;MACrB,eAAY;IAAc,GAEzBP,CAAC,CAAClB,CAAC,CAAC0C,eAAe,CACd,CACL,CACN,eACD9C,KAAA,CAAAyC,aAAA;MAAKS,KAAK,EAAE;QAAEO,UAAU,EAAE;MAAO;IAAE,gBACjCzD,KAAA,CAAAyC,aAAA,CAAC7C,MAAM;MACL2D,IAAI,EAAC,MAAM;MACXX,OAAO,EAAEX,YAAa;MACtBiB,KAAK,EAAE;QAAEQ,WAAW,EAAE;MAAG,CAAE;MAC3B,eAAY;IAAe,GAE1BpC,CAAC,CAAClB,CAAC,CAACuD,MAAM,CACL,CAAC,eACT3D,KAAA,CAAAyC,aAAA,CAAC7C,MAAM;MACL2D,IAAI,EAAC,SAAS;MACdX,OAAO,EAAEA,CAAA,KAAMlC,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEU,IAAI,CAAC;QAAEU,MAAM,EAAEP;MAAW,CAAC,CAAE;MACnDoB,QAAQ,EAAElB,KAAK,KAAK,CAAE;MACtB,eAAY;IAAW,GAEtBH,CAAC,CAAClB,CAAC,CAACwD,OAAO,CACN,CACL,CACF,CACN;IACDvC,QAAQ,EAAEY,YAAa;IACvB4B,cAAc,EAAE,IAAK;IACrBC,KAAK,EAAE,GAAI;IACXC,QAAQ,EAAE;EAAK,gBAEf/D,KAAA,CAAAyC,aAAA,CAACnC,eAAe;IACdM,QAAQ,EAAEA,QAAS;IACnBC,SAAS,EAAEA,SAAU;IACrBG,aAAa,EAAEO,UAAW;IAC1BL,kBAAkB,EAAEA,kBAAmB;IACvCC,mBAAmB,EAAEA,mBAAoB;IACzC6C,QAAQ,EAAGlC,MAAM,IAAKN,aAAa,CAACM,MAAM;EAAE,CAC7C,CACI,CAAC;AAEZ","ignoreList":[]}
1
+ {"version":3,"file":"DisplaySettingsModal.js","names":["Button","Modal","Dropdown","Menu","React","useMemo","useState","useTranslation","K","NS_LIBS_CMDB_INSTANCES","DisplaySettings","SortSettings","getAuth","EllipsisOutlined","sortField","dataSource","arguments","length","undefined","order","sort","a","b","indexA","indexOf","indexB","DisplaySettingsModal","props","visible","objectId","modelData","saveFieldsBackend","useExternalCmdbApi","currentFields","defaultFields","extraDisabledField","extraDisabledFields","sortFields","onOk","onCancel","t","sortAttrList","map","v","field","sortCurrentFields","nextFields","setNextFields","sortSettingsVisible","setSortSettingsVisible","originalNextFields","setOriginalNextFields","count","filter","handleReset","fields","slice","isReset","handleCancel","handleSortFields","handleDropdownMenuClick","e","key","isAdminSetDisplay","showIsAdminSetDefault","isAdmin","dropdownMenuItems","createElement","Item","disabled","onClick","DEFAULT_DISPLAY","RESTORE_DEFAULT","handleSortEnd","data","handleSortSettingCancel","handleSortSettingOk","Fragment","title","DISPLAY_SETTINGS","footer","style","display","overlay","placement","trigger","type","icon","marginLeft","CANCEL","SORT_SETTINGS","CONFIRM","destroyOnClose","width","centered","onChange","rowKey","onSortEnd"],"sources":["../../../src/instance-list-table/DisplaySettingsModal.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport { Button, Modal, Dropdown, Menu } from \"antd\";\nimport React, { useMemo, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport { DisplaySettings, DisplaySettingsProps } from \"./DisplaySettings\";\nimport { SortSettings } from \"./SortSettings\";\nimport { getAuth } from \"@next-core/brick-kit\";\nimport { EllipsisOutlined } from \"@ant-design/icons\";\n\nexport interface DisplaySettingsModalData {\n fields: string[];\n isReset?: boolean;\n isAdminSetDisplay?: boolean;\n}\n\nexport interface DisplaySettingsModalProps extends DisplaySettingsProps {\n visible?: boolean;\n defaultFields?: string[];\n saveFieldsBackend?: boolean;\n useExternalCmdbApi?: boolean;\n sortFields?: { field: string; order: number }[];\n onOk?(data: DisplaySettingsModalData): void;\n onCancel?(): void;\n}\n\nconst sortField = (dataSource: string[] = [], order: string[]) => {\n return dataSource?.sort((a: string, b: string) => {\n const indexA = order.indexOf(a);\n const indexB = order.indexOf(b);\n return indexA - indexB;\n });\n};\nexport function DisplaySettingsModal(\n props: DisplaySettingsModalProps\n): React.ReactElement {\n const {\n visible,\n objectId,\n modelData,\n saveFieldsBackend,\n useExternalCmdbApi,\n currentFields,\n defaultFields,\n extraDisabledField,\n extraDisabledFields,\n sortFields,\n onOk,\n onCancel,\n } = props;\n\n const { t } = useTranslation(NS_LIBS_CMDB_INSTANCES);\n const sortAttrList = sortFields ? sortFields.map((v) => v.field) : [];\n const sortCurrentFields = sortField(currentFields, sortAttrList);\n\n const [nextFields, setNextFields] = useState<string[]>(sortCurrentFields);\n const [sortSettingsVisible, setSortSettingsVisible] =\n useState<boolean>(false);\n const [originalNextFields, setOriginalNextFields] =\n useState<string[]>(sortCurrentFields);\n\n const count = useMemo(\n () => nextFields?.filter((v) => v !== \"_object_id\").length,\n [nextFields]\n );\n\n const handleReset = (): void => {\n const fields = defaultFields ? defaultFields.slice() : [];\n setNextFields(fields);\n onOk?.({ fields, isReset: true });\n };\n\n const handleCancel = (): void => {\n setNextFields(sortCurrentFields ? [...sortCurrentFields] : []);\n onCancel?.();\n };\n\n const handleSortFields = (): void => {\n setSortSettingsVisible(true);\n setOriginalNextFields(nextFields ? [...nextFields] : []);\n };\n\n const handleDropdownMenuClick = (e: any): void => {\n if (e.key === \"restore-default\") {\n handleReset();\n } else {\n // 管理员将现在选中的字段设置为默认显示, 不会影响到当前列表展示字段,所以需要类似【取消】操作重置字段。\n props?.onOk({\n fields: nextFields,\n isReset: false,\n isAdminSetDisplay: true,\n });\n setNextFields(sortCurrentFields ? [...sortCurrentFields] : []);\n }\n };\n\n const showIsAdminSetDefault = getAuth().isAdmin;\n\n const dropdownMenuItems = (\n <Menu>\n <Menu.Item\n key=\"set-default-display\"\n disabled={count === 0}\n onClick={handleDropdownMenuClick}\n >\n {t(K.DEFAULT_DISPLAY)}\n </Menu.Item>\n <Menu.Item key=\"restore-default\" onClick={handleDropdownMenuClick}>\n {t(K.RESTORE_DEFAULT)}\n </Menu.Item>\n </Menu>\n );\n\n const handleSortEnd = (data: any): void => {\n setNextFields(data);\n };\n\n const handleSortSettingCancel = (): void => {\n setSortSettingsVisible(false);\n setNextFields(originalNextFields ? [...originalNextFields] : []);\n };\n\n const handleSortSettingOk = (): void => {\n setSortSettingsVisible(false);\n setNextFields(nextFields ? [...nextFields] : []);\n };\n\n return (\n <>\n <Modal\n title={t(K.DISPLAY_SETTINGS)}\n visible={visible}\n footer={\n <div style={{ display: \"flex\" }}>\n {showIsAdminSetDefault &&\n saveFieldsBackend &&\n !useExternalCmdbApi ? (\n <Dropdown\n overlay={dropdownMenuItems}\n placement=\"topLeft\"\n trigger={[\"click\"]}\n data-testid=\"admin-set-display-dropdown\"\n >\n <Button type=\"default\" icon={<EllipsisOutlined />}></Button>\n </Dropdown>\n ) : (\n <div>\n <Button\n type=\"default\"\n onClick={handleReset}\n data-testid=\"reset-button\"\n >\n {t(K.RESTORE_DEFAULT)}\n </Button>\n </div>\n )}\n <div style={{ marginLeft: \"auto\" }}>\n <Button\n type=\"text\"\n onClick={handleCancel}\n data-testid=\"cancel-button\"\n >\n {t(K.CANCEL)}\n </Button>\n <Button\n onClick={handleSortFields}\n data-testid=\"sort-settings-button\"\n >\n {t(K.SORT_SETTINGS)}\n </Button>\n <Button\n type=\"primary\"\n onClick={() => props?.onOk({ fields: nextFields })}\n disabled={count === 0}\n data-testid=\"ok-button\"\n >\n {t(K.CONFIRM)}\n </Button>\n </div>\n </div>\n }\n onCancel={handleCancel}\n destroyOnClose={true}\n width={780}\n centered={true}\n >\n <DisplaySettings\n objectId={objectId}\n modelData={modelData}\n currentFields={nextFields}\n extraDisabledField={extraDisabledField}\n extraDisabledFields={extraDisabledFields}\n onChange={(fields) => setNextFields(fields)}\n />\n </Modal>\n <Modal\n title={t(K.SORT_SETTINGS)}\n visible={sortSettingsVisible}\n destroyOnClose={true}\n centered={true}\n onCancel={handleSortSettingCancel}\n onOk={handleSortSettingOk}\n >\n <SortSettings\n rowKey=\"id\"\n modelData={modelData}\n currentFields={nextFields}\n onSortEnd={handleSortEnd}\n />\n </Modal>\n </>\n );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -26,6 +26,7 @@ import { CmdbUrlLink } from "../cmdb-url-link/CmdbUrlLink";
26
26
  import { FloatDisplayBrick } from "../float-display-brick/FloatDisplayBrick";
27
27
  import { JsonDisplayBrick } from "../json-display-brick/JsonDisplayBrick";
28
28
  import { XmlDisplayBrick } from "../xml-display-brick/XmlDisplayBrick";
29
+ import { TableTooltip } from "./TableTooltip";
29
30
  // const { Paragraph } = Typography;
30
31
  var SortOrder;
31
32
  (function (SortOrder) {
@@ -704,7 +705,7 @@ export class LegacyInstanceListTable extends React.Component {
704
705
  if (instances && instances.length > 0) {
705
706
  var objectId = relation["".concat(sides.that, "_object_id")];
706
707
  var leftName = relation["".concat(sides.this, "_name")];
707
- var leftId = relation["".concat(sides.this, "_id")];
708
+ var rightId = relation["".concat(sides.that, "_id")];
708
709
  var nameKeys = getInstanceNameKeys(this.props.idObjectMap[objectId]);
709
710
  var detailUrlTemplate;
710
711
  if (this.props.detailUrlTemplates) {
@@ -747,22 +748,13 @@ export class LegacyInstanceListTable extends React.Component {
747
748
  className: classnames(styles.instanceListTableRelationWrapper)
748
749
  }, /*#__PURE__*/React.createElement("span", {
749
750
  className: styles.instanceListTableRelationText
750
- }, instanceNodes), /*#__PURE__*/React.createElement(Tooltip, {
751
- title: i18n.t("".concat(NS_LIBS_CMDB_INSTANCES, ":").concat(K.RELATION_INSTANCE_TOOLTIP)),
752
- placement: "top"
753
- }, /*#__PURE__*/React.createElement(GeneralIcon, {
754
- icon: {
755
- lib: "easyops",
756
- category: "patch-manager",
757
- icon: "patch-list"
758
- },
759
- iconClassName: styles.relationMoreIcon,
751
+ }, instanceNodes), /*#__PURE__*/React.createElement(TableTooltip, {
760
752
  onClick: () => this.handleRelationMoreIconClick(_objectSpread(_objectSpread({}, record), {}, {
761
753
  objectId,
762
754
  left_name: leftName,
763
- left_id: leftId
755
+ right_id: rightId
764
756
  }))
765
- })));
757
+ }));
766
758
  return instanceNodesWrapper;
767
759
  } else {
768
760
  return null;