@next-libs/cmdb-instances 6.19.8 → 6.21.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,36 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [6.21.1](https://github.com/easyops-cn/next-libs/compare/@next-libs/cmdb-instances@6.21.0...@next-libs/cmdb-instances@6.21.1) (2022-02-25)
7
+
8
+ **Note:** Version bump only for package @next-libs/cmdb-instances
9
+
10
+
11
+
12
+
13
+
14
+ # [6.21.0](https://github.com/easyops-cn/next-libs/compare/@next-libs/cmdb-instances@6.20.0...@next-libs/cmdb-instances@6.21.0) (2022-02-22)
15
+
16
+
17
+ ### Features
18
+
19
+ * make cmdb-instances-filter-form support disabling search and advancedSearch ([b2fc28a](https://github.com/easyops-cn/next-libs/commit/b2fc28a008fa60e3913a900d6f729b4945cb25dd))
20
+
21
+
22
+
23
+
24
+
25
+ # [6.20.0](https://github.com/easyops-cn/next-libs/compare/@next-libs/cmdb-instances@6.19.8...@next-libs/cmdb-instances@6.20.0) (2022-02-22)
26
+
27
+
28
+ ### Features
29
+
30
+ * **DisplaySettings:** add extraDisabledFields property ([05a06f6](https://github.com/easyops-cn/next-libs/commit/05a06f61cc971eb0e2e3d793ff22521ca7917de0))
31
+
32
+
33
+
34
+
35
+
6
36
  ## [6.19.8](https://github.com/easyops-cn/next-libs/compare/@next-libs/cmdb-instances@6.19.7...@next-libs/cmdb-instances@6.19.8) (2022-02-22)
7
37
 
8
38
  **Note:** Version bump only for package @next-libs/cmdb-instances
@@ -166,7 +166,9 @@ function CmdbInstancesSelectPanel(props, ref) {
166
166
  },
167
167
  pageSize: props.addInstancesModalPageSize,
168
168
  showSizeChanger: props.showSizeChanger,
169
- pageSizeOptions: props.pageSizeOptions
169
+ pageSizeOptions: props.pageSizeOptions,
170
+ searchDisabled: props.searchDisabled,
171
+ advancedSearchDisabled: props.advancedSearchDisabled
170
172
  }), /*#__PURE__*/_react.default.createElement(_InstanceListModal.InstanceListModal, {
171
173
  objectMap: props.objectMap,
172
174
  objectId: props.objectId,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/cmdb-instances-select-panel/CmdbInstancesSelectPanel.tsx"],"names":["CmdbInstancesSelectPanel","props","ref","modelData","objectMap","objectId","isFilterView","hideModelData","view","hide_columns","attrList","filter","item","includes","id","relation_list","left_id","left_object_id","right_id","right_object_id","displayedSelectedInstancesMaxNumber","previewMaxNumber","selectedInstanceList","setSelectedInstanceList","partialSelectedInstances","setPartialSelectedInstances","addInstancesModal","setAddInstancesModal","visible","allSelectedInstancesModal","setAllSelectedInstancesModal","fetchInstances","instanceIdList","instances","length","query","instanceId","$in","page","page_size","fields","list","initInstances","value","isOperate","slice","onFetchedInstances","openAddInstancesModal","closeAddInstancesModal","openAllSelectedInstancesModal","closeAllSelectedInstancesModal","handleInstancesSelected","selectedKeys","onChange","fieldIds","map","attr","showPreview","cs","style","selectedInstancesTableWrapper","withPreview","relation","relationLimit","right_max","$size","$lt","instanceQuery","wrapper","modalTitle","i18n","t","NS_LIBS_CMDB_INSTANCES","K","FILTER_FROM_CMDB","name","instance","singleSelect","addInstancesModalPageSize","showSizeChanger","pageSizeOptions","VIEW_ALL_SELECTED_INSTANCES","addButton","marginBottom","addTitle","CHOOSE_INSTANCE","showDetailUrl","detailUrlTemplates","pagination","v","showAllSelectedInstancesButton","VIEW_ALL_DATA","count"],"mappings":"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","sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport classnames from \"classnames\";\n\nimport { CmdbModels, InstanceApi_postSearch } from \"@next-sdk/cmdb-sdk\";\nimport { InstanceListTable } from \"../instance-list-table\";\nimport { InstanceListModal } from \"../instance-list-modal/InstanceListModal\";\nimport {\n modifyModelData,\n ModifiedModelObjectRelation,\n} from \"@next-libs/cmdb-utils\";\nimport style from \"./style.module.css\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\n\nexport interface CmdbInstancesSelectPanelProps {\n objectMap: { [key: string]: Partial<CmdbModels.ModelCmdbObject> };\n objectId: string;\n value?: string[];\n onChange?: (instanceList: any[]) => void;\n instanceQuery?: any;\n fields?: string[];\n singleSelect?: boolean;\n addTitle?: React.ReactNode | string;\n modalTitle?: React.ReactNode | string;\n previewMaxNumber?: number;\n addInstancesModalPageSize?: number;\n showSizeChanger?: boolean;\n pageSizeOptions?: string[];\n isOperate?: boolean; //cmdb实例列表支持删除实例\n showDetailUrl?: boolean;\n isFilterView?: boolean; //是否过滤视图属性\n onFetchedInstances?: (instanceList: any[]) => void; // objectId改变后触发\n relation?: Partial<ModifiedModelObjectRelation>;\n}\n\nexport function CmdbInstancesSelectPanel(\n props: CmdbInstancesSelectPanelProps,\n ref: any\n): React.ReactElement {\n let modelData = props.objectMap[props.objectId];\n if (props.isFilterView) {\n //过滤掉视图不可见字段\n const hideModelData = modelData?.view?.hide_columns || [];\n modelData = {\n ...modelData,\n attrList: modelData.attrList.filter(\n (item: any) => !hideModelData.includes(item.id)\n ),\n relation_list: modelData.relation_list.filter(\n (item: any) =>\n !(\n (hideModelData.includes(item.left_id) &&\n item.left_object_id === props.objectId) ||\n (hideModelData.includes(item.right_id) &&\n item.right_object_id === props.objectId)\n )\n ),\n };\n }\n\n const displayedSelectedInstancesMaxNumber = props.previewMaxNumber ?? 5;\n\n const [selectedInstanceList, setSelectedInstanceList] = useState([]);\n const [partialSelectedInstances, setPartialSelectedInstances] = useState([]);\n const [addInstancesModal, setAddInstancesModal] = useState({\n visible: false,\n });\n const [allSelectedInstancesModal, setAllSelectedInstancesModal] = useState({\n visible: false,\n });\n\n const fetchInstances = async (instanceIdList: string[]): Promise<any[]> => {\n let instances: any[] = [];\n if (instanceIdList?.length) {\n instances = (\n await InstanceApi_postSearch(props.objectId, {\n query: {\n instanceId: {\n $in: instanceIdList,\n },\n },\n page: 1,\n page_size: instanceIdList.length,\n // todo(ice): selected confirm with instances\n fields: { \"*\": true },\n })\n ).list;\n }\n\n return instances;\n };\n\n useEffect(() => {\n const initInstances = async (): Promise<void> => {\n const instances = await fetchInstances(props.value);\n setSelectedInstanceList(instances);\n setPartialSelectedInstances(\n props?.isOperate\n ? instances\n : instances.slice(0, displayedSelectedInstancesMaxNumber)\n );\n props.onFetchedInstances?.(instances);\n };\n\n initInstances();\n }, [props.objectId]);\n\n const openAddInstancesModal = () => {\n setAddInstancesModal({ visible: true });\n };\n\n const closeAddInstancesModal = () => {\n setAddInstancesModal({ visible: false });\n };\n\n const openAllSelectedInstancesModal = () => {\n setAllSelectedInstancesModal({ visible: true });\n };\n\n const closeAllSelectedInstancesModal = () => {\n setAllSelectedInstancesModal({ visible: false });\n };\n\n const handleInstancesSelected = async (selectedKeys: string[]) => {\n closeAddInstancesModal();\n\n const instances = await fetchInstances(selectedKeys);\n setSelectedInstanceList(instances);\n setPartialSelectedInstances(\n props?.isOperate\n ? instances\n : instances.slice(0, displayedSelectedInstancesMaxNumber)\n );\n\n props.onChange?.(instances);\n };\n\n const fieldIds = modifyModelData(modelData).attrList.map(\n (attr: any) => attr.id\n );\n const showPreview =\n selectedInstanceList.length > displayedSelectedInstancesMaxNumber;\n const cs = classnames({\n [style.selectedInstancesTableWrapper]: true,\n [style.withPreview]: showPreview,\n });\n const { relation } = props;\n let relationLimit;\n if (relation?.right_max === 1) {\n relationLimit = { [relation.right_id]: { $size: { $lt: 1 } } };\n }\n const query = props.instanceQuery ?? relationLimit;\n return (\n <div className={style.wrapper} ref={ref}>\n <InstanceListModal\n objectMap={props.objectMap}\n objectId={props.objectId}\n visible={addInstancesModal.visible}\n title={\n props.modalTitle ??\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FILTER_FROM_CMDB}`, {\n name: modelData.name,\n })\n }\n selectedRowKeys={selectedInstanceList.map(\n (instance) => instance.instanceId\n )}\n onSelected={handleInstancesSelected}\n onCancel={closeAddInstancesModal}\n singleSelect={props.singleSelect}\n presetConfigs={{\n query,\n fieldIds: props.fields,\n }}\n pageSize={props.addInstancesModalPageSize}\n showSizeChanger={props.showSizeChanger}\n pageSizeOptions={props.pageSizeOptions}\n />\n <InstanceListModal\n objectMap={props.objectMap}\n objectId={props.objectId}\n visible={allSelectedInstancesModal.visible}\n title={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.VIEW_ALL_SELECTED_INSTANCES}`\n )}\n presetConfigs={{\n query: {\n instanceId: {\n $in: selectedInstanceList.map((instance) => instance.instanceId),\n },\n },\n }}\n selectDisabled={true}\n onCancel={closeAllSelectedInstancesModal}\n />\n <a\n className={style.addButton}\n onClick={openAddInstancesModal}\n style={{ marginBottom: \"12px\" }}\n >\n {props.addTitle ??\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CHOOSE_INSTANCE}`)}\n </a>\n <div className={cs}>\n <InstanceListTable\n {...(props.showDetailUrl\n ? {\n detailUrlTemplates: {\n [props.objectId]:\n \"/next-cmdb-instance-management/next/#{objectId}/instance/#{instanceId}\",\n },\n }\n : {})}\n idObjectMap={props.objectMap}\n modelData={modelData}\n instanceListData={{\n list: partialSelectedInstances,\n }}\n fieldIds={props.fields || fieldIds}\n selectDisabled={true}\n sortDisabled={true}\n configProps={{\n pagination: false,\n }}\n isOperate={props.isOperate}\n handleDeleteFunction={(v) => {\n setSelectedInstanceList(v);\n setPartialSelectedInstances(v);\n props.onChange?.(v);\n }}\n target={\"_blank\"}\n ></InstanceListTable>\n {!props?.isOperate && showPreview && (\n <div\n className={style.showAllSelectedInstancesButton}\n onClick={openAllSelectedInstancesModal}\n >\n <a>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.VIEW_ALL_DATA}`, {\n count: selectedInstanceList.length,\n })}\n </a>\n </div>\n )}\n </div>\n </div>\n );\n}\n"],"file":"CmdbInstancesSelectPanel.js"}
1
+ {"version":3,"sources":["../../../src/cmdb-instances-select-panel/CmdbInstancesSelectPanel.tsx"],"names":["CmdbInstancesSelectPanel","props","ref","modelData","objectMap","objectId","isFilterView","hideModelData","view","hide_columns","attrList","filter","item","includes","id","relation_list","left_id","left_object_id","right_id","right_object_id","displayedSelectedInstancesMaxNumber","previewMaxNumber","selectedInstanceList","setSelectedInstanceList","partialSelectedInstances","setPartialSelectedInstances","addInstancesModal","setAddInstancesModal","visible","allSelectedInstancesModal","setAllSelectedInstancesModal","fetchInstances","instanceIdList","instances","length","query","instanceId","$in","page","page_size","fields","list","initInstances","value","isOperate","slice","onFetchedInstances","openAddInstancesModal","closeAddInstancesModal","openAllSelectedInstancesModal","closeAllSelectedInstancesModal","handleInstancesSelected","selectedKeys","onChange","fieldIds","map","attr","showPreview","cs","style","selectedInstancesTableWrapper","withPreview","relation","relationLimit","right_max","$size","$lt","instanceQuery","wrapper","modalTitle","i18n","t","NS_LIBS_CMDB_INSTANCES","K","FILTER_FROM_CMDB","name","instance","singleSelect","addInstancesModalPageSize","showSizeChanger","pageSizeOptions","searchDisabled","advancedSearchDisabled","VIEW_ALL_SELECTED_INSTANCES","addButton","marginBottom","addTitle","CHOOSE_INSTANCE","showDetailUrl","detailUrlTemplates","pagination","v","showAllSelectedInstancesButton","VIEW_ALL_DATA","count"],"mappings":"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","sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport classnames from \"classnames\";\n\nimport { CmdbModels, InstanceApi_postSearch } from \"@next-sdk/cmdb-sdk\";\nimport { InstanceListTable } from \"../instance-list-table\";\nimport { InstanceListModal } from \"../instance-list-modal/InstanceListModal\";\nimport {\n modifyModelData,\n ModifiedModelObjectRelation,\n} from \"@next-libs/cmdb-utils\";\nimport style from \"./style.module.css\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\n\nexport interface CmdbInstancesSelectPanelProps {\n objectMap: { [key: string]: Partial<CmdbModels.ModelCmdbObject> };\n objectId: string;\n value?: string[];\n onChange?: (instanceList: any[]) => void;\n instanceQuery?: any;\n fields?: string[];\n singleSelect?: boolean;\n addTitle?: React.ReactNode | string;\n modalTitle?: React.ReactNode | string;\n previewMaxNumber?: number;\n addInstancesModalPageSize?: number;\n showSizeChanger?: boolean;\n pageSizeOptions?: string[];\n isOperate?: boolean; //cmdb实例列表支持删除实例\n showDetailUrl?: boolean;\n isFilterView?: boolean; //是否过滤视图属性\n onFetchedInstances?: (instanceList: any[]) => void; // objectId改变后触发\n relation?: Partial<ModifiedModelObjectRelation>;\n searchDisabled?: boolean;\n advancedSearchDisabled?: boolean;\n}\n\nexport function CmdbInstancesSelectPanel(\n props: CmdbInstancesSelectPanelProps,\n ref: any\n): React.ReactElement {\n let modelData = props.objectMap[props.objectId];\n if (props.isFilterView) {\n //过滤掉视图不可见字段\n const hideModelData = modelData?.view?.hide_columns || [];\n modelData = {\n ...modelData,\n attrList: modelData.attrList.filter(\n (item: any) => !hideModelData.includes(item.id)\n ),\n relation_list: modelData.relation_list.filter(\n (item: any) =>\n !(\n (hideModelData.includes(item.left_id) &&\n item.left_object_id === props.objectId) ||\n (hideModelData.includes(item.right_id) &&\n item.right_object_id === props.objectId)\n )\n ),\n };\n }\n\n const displayedSelectedInstancesMaxNumber = props.previewMaxNumber ?? 5;\n\n const [selectedInstanceList, setSelectedInstanceList] = useState([]);\n const [partialSelectedInstances, setPartialSelectedInstances] = useState([]);\n const [addInstancesModal, setAddInstancesModal] = useState({\n visible: false,\n });\n const [allSelectedInstancesModal, setAllSelectedInstancesModal] = useState({\n visible: false,\n });\n\n const fetchInstances = async (instanceIdList: string[]): Promise<any[]> => {\n let instances: any[] = [];\n if (instanceIdList?.length) {\n instances = (\n await InstanceApi_postSearch(props.objectId, {\n query: {\n instanceId: {\n $in: instanceIdList,\n },\n },\n page: 1,\n page_size: instanceIdList.length,\n // todo(ice): selected confirm with instances\n fields: { \"*\": true },\n })\n ).list;\n }\n\n return instances;\n };\n\n useEffect(() => {\n const initInstances = async (): Promise<void> => {\n const instances = await fetchInstances(props.value);\n setSelectedInstanceList(instances);\n setPartialSelectedInstances(\n props?.isOperate\n ? instances\n : instances.slice(0, displayedSelectedInstancesMaxNumber)\n );\n props.onFetchedInstances?.(instances);\n };\n\n initInstances();\n }, [props.objectId]);\n\n const openAddInstancesModal = () => {\n setAddInstancesModal({ visible: true });\n };\n\n const closeAddInstancesModal = () => {\n setAddInstancesModal({ visible: false });\n };\n\n const openAllSelectedInstancesModal = () => {\n setAllSelectedInstancesModal({ visible: true });\n };\n\n const closeAllSelectedInstancesModal = () => {\n setAllSelectedInstancesModal({ visible: false });\n };\n\n const handleInstancesSelected = async (selectedKeys: string[]) => {\n closeAddInstancesModal();\n\n const instances = await fetchInstances(selectedKeys);\n setSelectedInstanceList(instances);\n setPartialSelectedInstances(\n props?.isOperate\n ? instances\n : instances.slice(0, displayedSelectedInstancesMaxNumber)\n );\n\n props.onChange?.(instances);\n };\n\n const fieldIds = modifyModelData(modelData).attrList.map(\n (attr: any) => attr.id\n );\n const showPreview =\n selectedInstanceList.length > displayedSelectedInstancesMaxNumber;\n const cs = classnames({\n [style.selectedInstancesTableWrapper]: true,\n [style.withPreview]: showPreview,\n });\n const { relation } = props;\n let relationLimit;\n if (relation?.right_max === 1) {\n relationLimit = { [relation.right_id]: { $size: { $lt: 1 } } };\n }\n const query = props.instanceQuery ?? relationLimit;\n return (\n <div className={style.wrapper} ref={ref}>\n <InstanceListModal\n objectMap={props.objectMap}\n objectId={props.objectId}\n visible={addInstancesModal.visible}\n title={\n props.modalTitle ??\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FILTER_FROM_CMDB}`, {\n name: modelData.name,\n })\n }\n selectedRowKeys={selectedInstanceList.map(\n (instance) => instance.instanceId\n )}\n onSelected={handleInstancesSelected}\n onCancel={closeAddInstancesModal}\n singleSelect={props.singleSelect}\n presetConfigs={{\n query,\n fieldIds: props.fields,\n }}\n pageSize={props.addInstancesModalPageSize}\n showSizeChanger={props.showSizeChanger}\n pageSizeOptions={props.pageSizeOptions}\n searchDisabled={props.searchDisabled}\n advancedSearchDisabled={props.advancedSearchDisabled}\n />\n <InstanceListModal\n objectMap={props.objectMap}\n objectId={props.objectId}\n visible={allSelectedInstancesModal.visible}\n title={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.VIEW_ALL_SELECTED_INSTANCES}`\n )}\n presetConfigs={{\n query: {\n instanceId: {\n $in: selectedInstanceList.map((instance) => instance.instanceId),\n },\n },\n }}\n selectDisabled={true}\n onCancel={closeAllSelectedInstancesModal}\n />\n <a\n className={style.addButton}\n onClick={openAddInstancesModal}\n style={{ marginBottom: \"12px\" }}\n >\n {props.addTitle ??\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CHOOSE_INSTANCE}`)}\n </a>\n <div className={cs}>\n <InstanceListTable\n {...(props.showDetailUrl\n ? {\n detailUrlTemplates: {\n [props.objectId]:\n \"/next-cmdb-instance-management/next/#{objectId}/instance/#{instanceId}\",\n },\n }\n : {})}\n idObjectMap={props.objectMap}\n modelData={modelData}\n instanceListData={{\n list: partialSelectedInstances,\n }}\n fieldIds={props.fields || fieldIds}\n selectDisabled={true}\n sortDisabled={true}\n configProps={{\n pagination: false,\n }}\n isOperate={props.isOperate}\n handleDeleteFunction={(v) => {\n setSelectedInstanceList(v);\n setPartialSelectedInstances(v);\n props.onChange?.(v);\n }}\n target={\"_blank\"}\n ></InstanceListTable>\n {!props?.isOperate && showPreview && (\n <div\n className={style.showAllSelectedInstancesButton}\n onClick={openAllSelectedInstancesModal}\n >\n <a>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.VIEW_ALL_DATA}`, {\n count: selectedInstanceList.length,\n })}\n </a>\n </div>\n )}\n </div>\n </div>\n );\n}\n"],"file":"CmdbInstancesSelectPanel.js"}
@@ -66,9 +66,10 @@ class DisplaySettings extends _react.default.Component {
66
66
  name: attribute.name
67
67
  }));
68
68
  this.state = {
69
- nextFields: props.currentFields.slice(),
69
+ nextFields: props.currentFields ? props.currentFields.slice() : [],
70
70
  q: "",
71
- filteredList: this.attrAndRelationList
71
+ filteredList: this.attrAndRelationList,
72
+ extraDisabledFieldSet: new Set(props.extraDisabledFields)
72
73
  };
73
74
  this.debounceHandleSearch = (0, _lodash.debounce)(this.filterColTag, 300);
74
75
  }
@@ -76,7 +77,13 @@ class DisplaySettings extends _react.default.Component {
76
77
  componentDidUpdate(prevProps) {
77
78
  if (this.props.currentFields !== prevProps.currentFields) {
78
79
  this.setState({
79
- nextFields: this.props.currentFields.slice()
80
+ nextFields: this.props.currentFields ? this.props.currentFields.slice() : []
81
+ });
82
+ }
83
+
84
+ if (this.props.extraDisabledFields !== prevProps.extraDisabledFields) {
85
+ this.setState({
86
+ extraDisabledFieldSet: new Set(this.props.extraDisabledFields)
80
87
  });
81
88
  }
82
89
  }
@@ -95,7 +102,7 @@ class DisplaySettings extends _react.default.Component {
95
102
  renderCheckbox(attr, field) {
96
103
  const fieldsKey = "nextFields";
97
104
  const checked = this.state[fieldsKey].includes(attr.id);
98
- const disabled = attr.id === this.props.extraDisabledField;
105
+ const disabled = attr.id === this.props.extraDisabledField || this.state.extraDisabledFieldSet.has(attr.id);
99
106
  return /*#__PURE__*/_react.default.createElement(_antd.Col, {
100
107
  key: attr.id,
101
108
  span: 8,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/instance-list-table/DisplaySettings.tsx"],"names":["DisplaySettings","React","Component","constructor","props","filteredList","attrAndRelationList","q","state","trim","toLowerCase","filter","attr","name","includes","setState","event","value","target","debounceHandleSearch","relationList","modelData","attrList","hideColumns","view","hide_columns","ignoredFields","CMDB_RESOURCE_FIELDS_SETTINGS","objectId","forEach","hideColumn","id","map","attribute","nextFields","currentFields","slice","filterColTag","componentDidUpdate","prevProps","handleChecked","fieldsKey","fields","checked","concat","onChange","renderCheckbox","field","disabled","extraDisabledField","padding","stopPropagation","width","wordBreak","render","extraAttrIds","extraFieldAttrs","extraFieldAttr","attrs","extraAttrs","marginTop","i18n","t","NS_LIBS_CMDB_INSTANCES","K","FIELD_SETTINGS","SEARCH_BY_FIELD_NAME","handleSearchChange","minHeight","maxHeight","overflow","length"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { debounce, remove, without, get, isEmpty } from \"lodash\";\nimport { extraFieldAttrs } from \"./constants\";\nimport { Checkbox, Col, Divider, Input, Row } from \"antd\";\nimport {\n getBatchEditableRelations,\n CMDB_RESOURCE_FIELDS_SETTINGS,\n} from \"@next-libs/cmdb-utils\";\nimport { CmdbModels } from \"@next-sdk/cmdb-sdk\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nexport interface DisplaySettingsProps {\n currentFields: string[];\n modelData: Partial<CmdbModels.ModelCmdbObject>;\n objectId?: string;\n extraDisabledField?: string;\n onChange?(fields: string[]): void;\n}\n\ninterface DisplaySettingsState {\n nextFields: string[];\n q: string;\n filteredList: any;\n}\n\nexport class DisplaySettings extends React.Component<\n DisplaySettingsProps,\n DisplaySettingsState\n> {\n debounceHandleSearch: () => void;\n attrAndRelationList: { id: string; name: string }[] = [];\n\n constructor(props: DisplaySettingsProps) {\n super(props);\n\n const relationList = getBatchEditableRelations(this.props.modelData);\n const attrAndRelationList = [\n ...this.props.modelData.attrList,\n ...relationList,\n ];\n\n let hideColumns = this.props.modelData.view.hide_columns || [];\n const ignoredFields = get(\n CMDB_RESOURCE_FIELDS_SETTINGS,\n `ignoredFields.${this.props.modelData.objectId}`,\n []\n );\n hideColumns = [...hideColumns, ...ignoredFields];\n\n if (!isEmpty(hideColumns)) {\n hideColumns.forEach((hideColumn: string) => {\n remove(attrAndRelationList, (attr) => attr.id === hideColumn);\n });\n }\n\n this.attrAndRelationList = attrAndRelationList.map((attribute: any) => ({\n id: attribute.id,\n name: attribute.name,\n }));\n\n this.state = {\n nextFields: props.currentFields.slice(),\n q: \"\",\n filteredList: this.attrAndRelationList,\n };\n this.debounceHandleSearch = debounce(this.filterColTag, 300);\n }\n\n componentDidUpdate(prevProps: DisplaySettingsProps) {\n if (this.props.currentFields !== prevProps.currentFields) {\n this.setState({ nextFields: this.props.currentFields.slice() });\n }\n }\n\n handleChecked(event: any, attr: any) {\n const fieldsKey = \"nextFields\";\n const fields = event.target.checked\n ? this.state[fieldsKey].concat(attr.id)\n : without(this.state[fieldsKey], attr.id);\n\n this.setState({ [fieldsKey]: fields });\n this.props.onChange?.(fields);\n }\n\n renderCheckbox(attr: any, field: \"nextFields\" | \"otherFields\") {\n const fieldsKey = \"nextFields\";\n const checked = this.state[fieldsKey].includes(attr.id);\n const disabled = attr.id === this.props.extraDisabledField;\n return (\n <Col\n key={attr.id}\n span={8}\n style={{ padding: 5 }}\n onClick={(event) => event.stopPropagation()}\n >\n <Checkbox\n name={field}\n style={{\n width: \"100%\",\n wordBreak: \"break-all\",\n }}\n checked={checked}\n disabled={disabled}\n onChange={(event) => this.handleChecked(event, attr)}\n data-testid={`${attr.id}-checkbox`}\n >\n {attr.name}\n </Checkbox>\n </Col>\n );\n }\n\n filterColTag = () => {\n let filteredList = this.attrAndRelationList;\n const q = this.state.q.trim().toLowerCase();\n if (q) {\n filteredList = filteredList.filter((attr) => {\n return attr.name.toLowerCase().includes(q);\n });\n }\n this.setState({\n filteredList,\n });\n };\n\n handleSearchChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const value = event.target.value;\n this.setState({\n q: value,\n });\n this.debounceHandleSearch();\n };\n\n render() {\n const filteredList = this.state.filteredList;\n const extraAttrIds = extraFieldAttrs.map(\n (extraFieldAttr) => extraFieldAttr.id\n );\n const attrs = filteredList.filter(\n (attr: any) => !extraAttrIds.includes(attr.id)\n );\n const extraAttrs = filteredList.filter((attr: any) =>\n extraAttrIds.includes(attr.id)\n );\n\n return (\n <>\n <Divider orientation=\"left\" plain style={{ marginTop: 0 }}>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FIELD_SETTINGS}`)}\n </Divider>\n <div>\n <Input.Search\n value={this.state.q}\n placeholder={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.SEARCH_BY_FIELD_NAME}`\n )}\n onChange={this.handleSearchChange}\n style={{ width: 200 }}\n data-testid=\"search-input\"\n />\n </div>\n <div\n style={{\n marginTop: 15,\n minHeight: 200,\n maxHeight: 500,\n overflow: \"auto\",\n }}\n className=\"nextFields\"\n >\n <Row>\n {attrs.map((attr: any) => this.renderCheckbox(attr, \"nextFields\"))}\n {extraAttrs.length > 0 ? (\n <>\n <Divider />\n {extraAttrs.map((attr: any) =>\n this.renderCheckbox(attr, \"nextFields\")\n )}\n </>\n ) : null}\n </Row>\n </div>\n </>\n );\n }\n}\n"],"file":"DisplaySettings.js"}
1
+ {"version":3,"sources":["../../../src/instance-list-table/DisplaySettings.tsx"],"names":["DisplaySettings","React","Component","constructor","props","filteredList","attrAndRelationList","q","state","trim","toLowerCase","filter","attr","name","includes","setState","event","value","target","debounceHandleSearch","relationList","modelData","attrList","hideColumns","view","hide_columns","ignoredFields","CMDB_RESOURCE_FIELDS_SETTINGS","objectId","forEach","hideColumn","id","map","attribute","nextFields","currentFields","slice","extraDisabledFieldSet","Set","extraDisabledFields","filterColTag","componentDidUpdate","prevProps","handleChecked","fieldsKey","fields","checked","concat","onChange","renderCheckbox","field","disabled","extraDisabledField","has","padding","stopPropagation","width","wordBreak","render","extraAttrIds","extraFieldAttrs","extraFieldAttr","attrs","extraAttrs","marginTop","i18n","t","NS_LIBS_CMDB_INSTANCES","K","FIELD_SETTINGS","SEARCH_BY_FIELD_NAME","handleSearchChange","minHeight","maxHeight","overflow","length"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { debounce, remove, without, get, isEmpty } from \"lodash\";\nimport { extraFieldAttrs } from \"./constants\";\nimport { Checkbox, Col, Divider, Input, Row } from \"antd\";\nimport {\n getBatchEditableRelations,\n CMDB_RESOURCE_FIELDS_SETTINGS,\n} from \"@next-libs/cmdb-utils\";\nimport { CmdbModels } from \"@next-sdk/cmdb-sdk\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nexport interface DisplaySettingsProps {\n currentFields: string[];\n modelData: Partial<CmdbModels.ModelCmdbObject>;\n objectId?: string;\n extraDisabledField?: string;\n extraDisabledFields?: string[];\n onChange?(fields: string[]): void;\n}\n\ninterface DisplaySettingsState {\n nextFields: string[];\n q: string;\n filteredList: any;\n extraDisabledFieldSet: Set<string>;\n}\n\nexport class DisplaySettings extends React.Component<\n DisplaySettingsProps,\n DisplaySettingsState\n> {\n debounceHandleSearch: () => void;\n attrAndRelationList: { id: string; name: string }[] = [];\n\n constructor(props: DisplaySettingsProps) {\n super(props);\n\n const relationList = getBatchEditableRelations(this.props.modelData);\n const attrAndRelationList = [\n ...this.props.modelData.attrList,\n ...relationList,\n ];\n\n let hideColumns = this.props.modelData.view.hide_columns || [];\n const ignoredFields = get(\n CMDB_RESOURCE_FIELDS_SETTINGS,\n `ignoredFields.${this.props.modelData.objectId}`,\n []\n );\n hideColumns = [...hideColumns, ...ignoredFields];\n\n if (!isEmpty(hideColumns)) {\n hideColumns.forEach((hideColumn: string) => {\n remove(attrAndRelationList, (attr) => attr.id === hideColumn);\n });\n }\n\n this.attrAndRelationList = attrAndRelationList.map((attribute: any) => ({\n id: attribute.id,\n name: attribute.name,\n }));\n\n this.state = {\n nextFields: props.currentFields ? props.currentFields.slice() : [],\n q: \"\",\n filteredList: this.attrAndRelationList,\n extraDisabledFieldSet: new Set(props.extraDisabledFields),\n };\n this.debounceHandleSearch = debounce(this.filterColTag, 300);\n }\n\n componentDidUpdate(prevProps: DisplaySettingsProps) {\n if (this.props.currentFields !== prevProps.currentFields) {\n this.setState({\n nextFields: this.props.currentFields\n ? this.props.currentFields.slice()\n : [],\n });\n }\n\n if (this.props.extraDisabledFields !== prevProps.extraDisabledFields) {\n this.setState({\n extraDisabledFieldSet: new Set(this.props.extraDisabledFields),\n });\n }\n }\n\n handleChecked(event: any, attr: any) {\n const fieldsKey = \"nextFields\";\n const fields = event.target.checked\n ? this.state[fieldsKey].concat(attr.id)\n : without(this.state[fieldsKey], attr.id);\n\n this.setState({ [fieldsKey]: fields });\n this.props.onChange?.(fields);\n }\n\n renderCheckbox(attr: any, field: \"nextFields\" | \"otherFields\") {\n const fieldsKey = \"nextFields\";\n const checked = this.state[fieldsKey].includes(attr.id);\n const disabled =\n attr.id === this.props.extraDisabledField ||\n this.state.extraDisabledFieldSet.has(attr.id);\n return (\n <Col\n key={attr.id}\n span={8}\n style={{ padding: 5 }}\n onClick={(event) => event.stopPropagation()}\n >\n <Checkbox\n name={field}\n style={{\n width: \"100%\",\n wordBreak: \"break-all\",\n }}\n checked={checked}\n disabled={disabled}\n onChange={(event) => this.handleChecked(event, attr)}\n data-testid={`${attr.id}-checkbox`}\n >\n {attr.name}\n </Checkbox>\n </Col>\n );\n }\n\n filterColTag = () => {\n let filteredList = this.attrAndRelationList;\n const q = this.state.q.trim().toLowerCase();\n if (q) {\n filteredList = filteredList.filter((attr) => {\n return attr.name.toLowerCase().includes(q);\n });\n }\n this.setState({\n filteredList,\n });\n };\n\n handleSearchChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const value = event.target.value;\n this.setState({\n q: value,\n });\n this.debounceHandleSearch();\n };\n\n render() {\n const filteredList = this.state.filteredList;\n const extraAttrIds = extraFieldAttrs.map(\n (extraFieldAttr) => extraFieldAttr.id\n );\n const attrs = filteredList.filter(\n (attr: any) => !extraAttrIds.includes(attr.id)\n );\n const extraAttrs = filteredList.filter((attr: any) =>\n extraAttrIds.includes(attr.id)\n );\n\n return (\n <>\n <Divider orientation=\"left\" plain style={{ marginTop: 0 }}>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FIELD_SETTINGS}`)}\n </Divider>\n <div>\n <Input.Search\n value={this.state.q}\n placeholder={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.SEARCH_BY_FIELD_NAME}`\n )}\n onChange={this.handleSearchChange}\n style={{ width: 200 }}\n data-testid=\"search-input\"\n />\n </div>\n <div\n style={{\n marginTop: 15,\n minHeight: 200,\n maxHeight: 500,\n overflow: \"auto\",\n }}\n className=\"nextFields\"\n >\n <Row>\n {attrs.map((attr: any) => this.renderCheckbox(attr, \"nextFields\"))}\n {extraAttrs.length > 0 ? (\n <>\n <Divider />\n {extraAttrs.map((attr: any) =>\n this.renderCheckbox(attr, \"nextFields\")\n )}\n </>\n ) : null}\n </Row>\n </div>\n </>\n );\n }\n}\n"],"file":"DisplaySettings.js"}
@@ -24,6 +24,7 @@ function DisplaySettingsModal(props) {
24
24
  modelData,
25
25
  currentFields,
26
26
  defaultFields,
27
+ extraDisabledFields,
27
28
  onOk,
28
29
  onCancel
29
30
  } = props;
@@ -34,7 +35,7 @@ function DisplaySettingsModal(props) {
34
35
  const count = (0, _react.useMemo)(() => nextFields === null || nextFields === void 0 ? void 0 : nextFields.filter(v => v !== "_object_id").length, [nextFields]);
35
36
 
36
37
  const handleReset = () => {
37
- const fields = defaultFields.slice();
38
+ const fields = defaultFields ? defaultFields.slice() : [];
38
39
  setNextFields(fields);
39
40
  onOk === null || onOk === void 0 ? void 0 : onOk({
40
41
  fields,
@@ -79,7 +80,8 @@ function DisplaySettingsModal(props) {
79
80
  }, /*#__PURE__*/_react.default.createElement(_DisplaySettings.DisplaySettings, {
80
81
  objectId: objectId,
81
82
  modelData: modelData,
82
- currentFields: currentFields,
83
+ currentFields: nextFields,
84
+ extraDisabledFields: extraDisabledFields,
83
85
  onChange: fields => setNextFields(fields)
84
86
  }));
85
87
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/instance-list-table/DisplaySettingsModal.tsx"],"names":["DisplaySettingsModal","props","visible","objectId","modelData","currentFields","defaultFields","onOk","onCancel","t","NS_LIBS_CMDB_INSTANCES","nextFields","setNextFields","count","filter","v","length","handleReset","fields","slice","isReset","K","DISPLAY_SETTINGS","display","RESTORE_DEFAULT","marginLeft","marginRight","CANCEL","CONFIRM"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAcO,SAASA,oBAAT,CACLC,KADK,EAEe;AACpB,QAAM;AACJC,IAAAA,OADI;AAEJC,IAAAA,QAFI;AAGJC,IAAAA,SAHI;AAIJC,IAAAA,aAJI;AAKJC,IAAAA,aALI;AAMJC,IAAAA,IANI;AAOJC,IAAAA;AAPI,MAQFP,KARJ;AASA,QAAM;AAAEQ,IAAAA;AAAF,MAAQ,kCAAeC,iCAAf,CAAd;AACA,QAAM,CAACC,UAAD,EAAaC,aAAb,IAA8B,qBAAmBP,aAAnB,CAApC;AACA,QAAMQ,KAAK,GAAG,oBACZ,MAAMF,UAAN,aAAMA,UAAN,uBAAMA,UAAU,CAAEG,MAAZ,CAAoBC,CAAD,IAAOA,CAAC,KAAK,YAAhC,EAA8CC,MADxC,EAEZ,CAACL,UAAD,CAFY,CAAd;;AAKA,QAAMM,WAAW,GAAG,MAAY;AAC9B,UAAMC,MAAM,GAAGZ,aAAa,CAACa,KAAd,EAAf;AAEAP,IAAAA,aAAa,CAACM,MAAD,CAAb;AACAX,IAAAA,IAAI,SAAJ,IAAAA,IAAI,WAAJ,YAAAA,IAAI,CAAG;AAAEW,MAAAA,MAAF;AAAUE,MAAAA,OAAO,EAAE;AAAnB,KAAH,CAAJ;AACD,GALD;;AAOA,sBACE,6BAAC,WAAD;AACE,IAAA,KAAK,EAAEX,CAAC,CAACY,aAAEC,gBAAH,CADV;AAEE,IAAA,OAAO,EAAEpB,OAFX;AAGE,IAAA,MAAM,eACJ;AAAK,MAAA,KAAK,EAAE;AAAEqB,QAAAA,OAAO,EAAE;AAAX;AAAZ,oBACE,uDACE,6BAAC,YAAD;AACE,MAAA,IAAI,EAAC,SADP;AAEE,MAAA,OAAO,EAAEN,WAFX;AAGE,qBAAY;AAHd,OAKGR,CAAC,CAACY,aAAEG,eAAH,CALJ,CADF,CADF,eAUE;AAAK,MAAA,KAAK,EAAE;AAAEC,QAAAA,UAAU,EAAE;AAAd;AAAZ,oBACE,6BAAC,YAAD;AACE,MAAA,IAAI,EAAC,SADP;AAEE,MAAA,OAAO,EAAEjB,QAFX;AAGE,MAAA,KAAK,EAAE;AAAEkB,QAAAA,WAAW,EAAE;AAAf,OAHT;AAIE,qBAAY;AAJd,OAMGjB,CAAC,CAACY,aAAEM,MAAH,CANJ,CADF,eASE,6BAAC,YAAD;AACE,MAAA,IAAI,EAAC,SADP;AAEE,MAAA,OAAO,EAAE,MAAM1B,KAAN,aAAMA,KAAN,uBAAMA,KAAK,CAAEM,IAAP,CAAY;AAAEW,QAAAA,MAAM,EAAEP;AAAV,OAAZ,CAFjB;AAGE,MAAA,QAAQ,EAAEE,KAAK,KAAK,CAHtB;AAIE,qBAAY;AAJd,OAMGJ,CAAC,CAACY,aAAEO,OAAH,CANJ,CATF,CAVF,CAJJ;AAkCE,IAAA,QAAQ,EAAEpB,QAlCZ;AAmCE,IAAA,cAAc,EAAE,IAnClB;AAoCE,IAAA,KAAK,EAAE,GApCT;AAqCE,IAAA,QAAQ,EAAE;AArCZ,kBAuCE,6BAAC,gCAAD;AACE,IAAA,QAAQ,EAAEL,QADZ;AAEE,IAAA,SAAS,EAAEC,SAFb;AAGE,IAAA,aAAa,EAAEC,aAHjB;AAIE,IAAA,QAAQ,EAAGa,MAAD,IAAYN,aAAa,CAACM,MAAD;AAJrC,IAvCF,CADF;AAgDD","sourcesContent":["import { Button, Modal } 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\";\n\nexport interface DisplaySettingsModalData {\n fields: string[];\n isReset?: boolean;\n}\n\nexport interface DisplaySettingsModalProps extends DisplaySettingsProps {\n visible?: boolean;\n defaultFields?: string[];\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 currentFields,\n defaultFields,\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.slice();\n\n setNextFields(fields);\n onOk?.({ fields, isReset: true });\n };\n\n return (\n <Modal\n title={t(K.DISPLAY_SETTINGS)}\n visible={visible}\n footer={\n <div style={{ display: \"flex\" }}>\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 <div style={{ marginLeft: \"auto\" }}>\n <Button\n type=\"default\"\n onClick={onCancel}\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={onCancel}\n destroyOnClose={true}\n width={780}\n centered={true}\n >\n <DisplaySettings\n objectId={objectId}\n modelData={modelData}\n currentFields={currentFields}\n onChange={(fields) => setNextFields(fields)}\n />\n </Modal>\n );\n}\n"],"file":"DisplaySettingsModal.js"}
1
+ {"version":3,"sources":["../../../src/instance-list-table/DisplaySettingsModal.tsx"],"names":["DisplaySettingsModal","props","visible","objectId","modelData","currentFields","defaultFields","extraDisabledFields","onOk","onCancel","t","NS_LIBS_CMDB_INSTANCES","nextFields","setNextFields","count","filter","v","length","handleReset","fields","slice","isReset","K","DISPLAY_SETTINGS","display","RESTORE_DEFAULT","marginLeft","marginRight","CANCEL","CONFIRM"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAcO,SAASA,oBAAT,CACLC,KADK,EAEe;AACpB,QAAM;AACJC,IAAAA,OADI;AAEJC,IAAAA,QAFI;AAGJC,IAAAA,SAHI;AAIJC,IAAAA,aAJI;AAKJC,IAAAA,aALI;AAMJC,IAAAA,mBANI;AAOJC,IAAAA,IAPI;AAQJC,IAAAA;AARI,MASFR,KATJ;AAUA,QAAM;AAAES,IAAAA;AAAF,MAAQ,kCAAeC,iCAAf,CAAd;AACA,QAAM,CAACC,UAAD,EAAaC,aAAb,IAA8B,qBAAmBR,aAAnB,CAApC;AACA,QAAMS,KAAK,GAAG,oBACZ,MAAMF,UAAN,aAAMA,UAAN,uBAAMA,UAAU,CAAEG,MAAZ,CAAoBC,CAAD,IAAOA,CAAC,KAAK,YAAhC,EAA8CC,MADxC,EAEZ,CAACL,UAAD,CAFY,CAAd;;AAKA,QAAMM,WAAW,GAAG,MAAY;AAC9B,UAAMC,MAAM,GAAGb,aAAa,GAAGA,aAAa,CAACc,KAAd,EAAH,GAA2B,EAAvD;AAEAP,IAAAA,aAAa,CAACM,MAAD,CAAb;AACAX,IAAAA,IAAI,SAAJ,IAAAA,IAAI,WAAJ,YAAAA,IAAI,CAAG;AAAEW,MAAAA,MAAF;AAAUE,MAAAA,OAAO,EAAE;AAAnB,KAAH,CAAJ;AACD,GALD;;AAOA,sBACE,6BAAC,WAAD;AACE,IAAA,KAAK,EAAEX,CAAC,CAACY,aAAEC,gBAAH,CADV;AAEE,IAAA,OAAO,EAAErB,OAFX;AAGE,IAAA,MAAM,eACJ;AAAK,MAAA,KAAK,EAAE;AAAEsB,QAAAA,OAAO,EAAE;AAAX;AAAZ,oBACE,uDACE,6BAAC,YAAD;AACE,MAAA,IAAI,EAAC,SADP;AAEE,MAAA,OAAO,EAAEN,WAFX;AAGE,qBAAY;AAHd,OAKGR,CAAC,CAACY,aAAEG,eAAH,CALJ,CADF,CADF,eAUE;AAAK,MAAA,KAAK,EAAE;AAAEC,QAAAA,UAAU,EAAE;AAAd;AAAZ,oBACE,6BAAC,YAAD;AACE,MAAA,IAAI,EAAC,SADP;AAEE,MAAA,OAAO,EAAEjB,QAFX;AAGE,MAAA,KAAK,EAAE;AAAEkB,QAAAA,WAAW,EAAE;AAAf,OAHT;AAIE,qBAAY;AAJd,OAMGjB,CAAC,CAACY,aAAEM,MAAH,CANJ,CADF,eASE,6BAAC,YAAD;AACE,MAAA,IAAI,EAAC,SADP;AAEE,MAAA,OAAO,EAAE,MAAM3B,KAAN,aAAMA,KAAN,uBAAMA,KAAK,CAAEO,IAAP,CAAY;AAAEW,QAAAA,MAAM,EAAEP;AAAV,OAAZ,CAFjB;AAGE,MAAA,QAAQ,EAAEE,KAAK,KAAK,CAHtB;AAIE,qBAAY;AAJd,OAMGJ,CAAC,CAACY,aAAEO,OAAH,CANJ,CATF,CAVF,CAJJ;AAkCE,IAAA,QAAQ,EAAEpB,QAlCZ;AAmCE,IAAA,cAAc,EAAE,IAnClB;AAoCE,IAAA,KAAK,EAAE,GApCT;AAqCE,IAAA,QAAQ,EAAE;AArCZ,kBAuCE,6BAAC,gCAAD;AACE,IAAA,QAAQ,EAAEN,QADZ;AAEE,IAAA,SAAS,EAAEC,SAFb;AAGE,IAAA,aAAa,EAAEQ,UAHjB;AAIE,IAAA,mBAAmB,EAAEL,mBAJvB;AAKE,IAAA,QAAQ,EAAGY,MAAD,IAAYN,aAAa,CAACM,MAAD;AALrC,IAvCF,CADF;AAiDD","sourcesContent":["import { Button, Modal } 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\";\n\nexport interface DisplaySettingsModalData {\n fields: string[];\n isReset?: boolean;\n}\n\nexport interface DisplaySettingsModalProps extends DisplaySettingsProps {\n visible?: boolean;\n defaultFields?: string[];\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 currentFields,\n defaultFields,\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 return (\n <Modal\n title={t(K.DISPLAY_SETTINGS)}\n visible={visible}\n footer={\n <div style={{ display: \"flex\" }}>\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 <div style={{ marginLeft: \"auto\" }}>\n <Button\n type=\"default\"\n onClick={onCancel}\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={onCancel}\n destroyOnClose={true}\n width={780}\n centered={true}\n >\n <DisplaySettings\n objectId={objectId}\n modelData={modelData}\n currentFields={nextFields}\n extraDisabledFields={extraDisabledFields}\n onChange={(fields) => setNextFields(fields)}\n />\n </Modal>\n );\n}\n"],"file":"DisplaySettingsModal.js"}
@@ -43,6 +43,19 @@ Object.keys(_DisplaySettings).forEach(function (key) {
43
43
  });
44
44
  });
45
45
 
46
+ var _DisplaySettingsModal = require("./DisplaySettingsModal");
47
+
48
+ Object.keys(_DisplaySettingsModal).forEach(function (key) {
49
+ if (key === "default" || key === "__esModule") return;
50
+ if (key in exports && exports[key] === _DisplaySettingsModal[key]) return;
51
+ Object.defineProperty(exports, key, {
52
+ enumerable: true,
53
+ get: function () {
54
+ return _DisplaySettingsModal[key];
55
+ }
56
+ });
57
+ });
58
+
46
59
  var _InstanceListTable = require("./InstanceListTable");
47
60
 
48
61
  Object.keys(_InstanceListTable).forEach(function (key) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/instance-list-table/index.ts"],"names":[],"mappings":";;;;;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","sourcesContent":["export * from \"./AdvancedSearch\";\nexport * from \"./MoreButtonsContainer\";\nexport * from \"./DisplaySettings\";\nexport * from \"./InstanceListTable\";\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/instance-list-table/index.ts"],"names":[],"mappings":";;;;;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","sourcesContent":["export * from \"./AdvancedSearch\";\nexport * from \"./MoreButtonsContainer\";\nexport * from \"./DisplaySettings\";\nexport * from \"./DisplaySettingsModal\";\nexport * from \"./InstanceListTable\";\n"],"file":"index.js"}
@@ -165,7 +165,9 @@ export function CmdbInstancesSelectPanel(props, ref) {
165
165
  },
166
166
  pageSize: props.addInstancesModalPageSize,
167
167
  showSizeChanger: props.showSizeChanger,
168
- pageSizeOptions: props.pageSizeOptions
168
+ pageSizeOptions: props.pageSizeOptions,
169
+ searchDisabled: props.searchDisabled,
170
+ advancedSearchDisabled: props.advancedSearchDisabled
169
171
  }), /*#__PURE__*/React.createElement(InstanceListModal, {
170
172
  objectMap: props.objectMap,
171
173
  objectId: props.objectId,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/cmdb-instances-select-panel/CmdbInstancesSelectPanel.tsx"],"names":["React","useState","useEffect","classnames","InstanceApi_postSearch","InstanceListTable","InstanceListModal","modifyModelData","style","i18n","K","NS_LIBS_CMDB_INSTANCES","CmdbInstancesSelectPanel","props","ref","modelData","objectMap","objectId","isFilterView","hideModelData","view","hide_columns","attrList","filter","item","includes","id","relation_list","left_id","left_object_id","right_id","right_object_id","displayedSelectedInstancesMaxNumber","previewMaxNumber","selectedInstanceList","setSelectedInstanceList","partialSelectedInstances","setPartialSelectedInstances","addInstancesModal","setAddInstancesModal","visible","allSelectedInstancesModal","setAllSelectedInstancesModal","fetchInstances","instanceIdList","instances","length","query","instanceId","$in","page","page_size","fields","list","initInstances","value","isOperate","slice","onFetchedInstances","openAddInstancesModal","closeAddInstancesModal","openAllSelectedInstancesModal","closeAllSelectedInstancesModal","handleInstancesSelected","selectedKeys","onChange","fieldIds","map","attr","showPreview","cs","selectedInstancesTableWrapper","withPreview","relation","relationLimit","right_max","$size","$lt","instanceQuery","wrapper","modalTitle","t","FILTER_FROM_CMDB","name","instance","singleSelect","addInstancesModalPageSize","showSizeChanger","pageSizeOptions","VIEW_ALL_SELECTED_INSTANCES","addButton","marginBottom","addTitle","CHOOSE_INSTANCE","showDetailUrl","detailUrlTemplates","pagination","v","showAllSelectedInstancesButton","VIEW_ALL_DATA","count"],"mappings":"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","sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport classnames from \"classnames\";\n\nimport { CmdbModels, InstanceApi_postSearch } from \"@next-sdk/cmdb-sdk\";\nimport { InstanceListTable } from \"../instance-list-table\";\nimport { InstanceListModal } from \"../instance-list-modal/InstanceListModal\";\nimport {\n modifyModelData,\n ModifiedModelObjectRelation,\n} from \"@next-libs/cmdb-utils\";\nimport style from \"./style.module.css\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\n\nexport interface CmdbInstancesSelectPanelProps {\n objectMap: { [key: string]: Partial<CmdbModels.ModelCmdbObject> };\n objectId: string;\n value?: string[];\n onChange?: (instanceList: any[]) => void;\n instanceQuery?: any;\n fields?: string[];\n singleSelect?: boolean;\n addTitle?: React.ReactNode | string;\n modalTitle?: React.ReactNode | string;\n previewMaxNumber?: number;\n addInstancesModalPageSize?: number;\n showSizeChanger?: boolean;\n pageSizeOptions?: string[];\n isOperate?: boolean; //cmdb实例列表支持删除实例\n showDetailUrl?: boolean;\n isFilterView?: boolean; //是否过滤视图属性\n onFetchedInstances?: (instanceList: any[]) => void; // objectId改变后触发\n relation?: Partial<ModifiedModelObjectRelation>;\n}\n\nexport function CmdbInstancesSelectPanel(\n props: CmdbInstancesSelectPanelProps,\n ref: any\n): React.ReactElement {\n let modelData = props.objectMap[props.objectId];\n if (props.isFilterView) {\n //过滤掉视图不可见字段\n const hideModelData = modelData?.view?.hide_columns || [];\n modelData = {\n ...modelData,\n attrList: modelData.attrList.filter(\n (item: any) => !hideModelData.includes(item.id)\n ),\n relation_list: modelData.relation_list.filter(\n (item: any) =>\n !(\n (hideModelData.includes(item.left_id) &&\n item.left_object_id === props.objectId) ||\n (hideModelData.includes(item.right_id) &&\n item.right_object_id === props.objectId)\n )\n ),\n };\n }\n\n const displayedSelectedInstancesMaxNumber = props.previewMaxNumber ?? 5;\n\n const [selectedInstanceList, setSelectedInstanceList] = useState([]);\n const [partialSelectedInstances, setPartialSelectedInstances] = useState([]);\n const [addInstancesModal, setAddInstancesModal] = useState({\n visible: false,\n });\n const [allSelectedInstancesModal, setAllSelectedInstancesModal] = useState({\n visible: false,\n });\n\n const fetchInstances = async (instanceIdList: string[]): Promise<any[]> => {\n let instances: any[] = [];\n if (instanceIdList?.length) {\n instances = (\n await InstanceApi_postSearch(props.objectId, {\n query: {\n instanceId: {\n $in: instanceIdList,\n },\n },\n page: 1,\n page_size: instanceIdList.length,\n // todo(ice): selected confirm with instances\n fields: { \"*\": true },\n })\n ).list;\n }\n\n return instances;\n };\n\n useEffect(() => {\n const initInstances = async (): Promise<void> => {\n const instances = await fetchInstances(props.value);\n setSelectedInstanceList(instances);\n setPartialSelectedInstances(\n props?.isOperate\n ? instances\n : instances.slice(0, displayedSelectedInstancesMaxNumber)\n );\n props.onFetchedInstances?.(instances);\n };\n\n initInstances();\n }, [props.objectId]);\n\n const openAddInstancesModal = () => {\n setAddInstancesModal({ visible: true });\n };\n\n const closeAddInstancesModal = () => {\n setAddInstancesModal({ visible: false });\n };\n\n const openAllSelectedInstancesModal = () => {\n setAllSelectedInstancesModal({ visible: true });\n };\n\n const closeAllSelectedInstancesModal = () => {\n setAllSelectedInstancesModal({ visible: false });\n };\n\n const handleInstancesSelected = async (selectedKeys: string[]) => {\n closeAddInstancesModal();\n\n const instances = await fetchInstances(selectedKeys);\n setSelectedInstanceList(instances);\n setPartialSelectedInstances(\n props?.isOperate\n ? instances\n : instances.slice(0, displayedSelectedInstancesMaxNumber)\n );\n\n props.onChange?.(instances);\n };\n\n const fieldIds = modifyModelData(modelData).attrList.map(\n (attr: any) => attr.id\n );\n const showPreview =\n selectedInstanceList.length > displayedSelectedInstancesMaxNumber;\n const cs = classnames({\n [style.selectedInstancesTableWrapper]: true,\n [style.withPreview]: showPreview,\n });\n const { relation } = props;\n let relationLimit;\n if (relation?.right_max === 1) {\n relationLimit = { [relation.right_id]: { $size: { $lt: 1 } } };\n }\n const query = props.instanceQuery ?? relationLimit;\n return (\n <div className={style.wrapper} ref={ref}>\n <InstanceListModal\n objectMap={props.objectMap}\n objectId={props.objectId}\n visible={addInstancesModal.visible}\n title={\n props.modalTitle ??\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FILTER_FROM_CMDB}`, {\n name: modelData.name,\n })\n }\n selectedRowKeys={selectedInstanceList.map(\n (instance) => instance.instanceId\n )}\n onSelected={handleInstancesSelected}\n onCancel={closeAddInstancesModal}\n singleSelect={props.singleSelect}\n presetConfigs={{\n query,\n fieldIds: props.fields,\n }}\n pageSize={props.addInstancesModalPageSize}\n showSizeChanger={props.showSizeChanger}\n pageSizeOptions={props.pageSizeOptions}\n />\n <InstanceListModal\n objectMap={props.objectMap}\n objectId={props.objectId}\n visible={allSelectedInstancesModal.visible}\n title={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.VIEW_ALL_SELECTED_INSTANCES}`\n )}\n presetConfigs={{\n query: {\n instanceId: {\n $in: selectedInstanceList.map((instance) => instance.instanceId),\n },\n },\n }}\n selectDisabled={true}\n onCancel={closeAllSelectedInstancesModal}\n />\n <a\n className={style.addButton}\n onClick={openAddInstancesModal}\n style={{ marginBottom: \"12px\" }}\n >\n {props.addTitle ??\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CHOOSE_INSTANCE}`)}\n </a>\n <div className={cs}>\n <InstanceListTable\n {...(props.showDetailUrl\n ? {\n detailUrlTemplates: {\n [props.objectId]:\n \"/next-cmdb-instance-management/next/#{objectId}/instance/#{instanceId}\",\n },\n }\n : {})}\n idObjectMap={props.objectMap}\n modelData={modelData}\n instanceListData={{\n list: partialSelectedInstances,\n }}\n fieldIds={props.fields || fieldIds}\n selectDisabled={true}\n sortDisabled={true}\n configProps={{\n pagination: false,\n }}\n isOperate={props.isOperate}\n handleDeleteFunction={(v) => {\n setSelectedInstanceList(v);\n setPartialSelectedInstances(v);\n props.onChange?.(v);\n }}\n target={\"_blank\"}\n ></InstanceListTable>\n {!props?.isOperate && showPreview && (\n <div\n className={style.showAllSelectedInstancesButton}\n onClick={openAllSelectedInstancesModal}\n >\n <a>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.VIEW_ALL_DATA}`, {\n count: selectedInstanceList.length,\n })}\n </a>\n </div>\n )}\n </div>\n </div>\n );\n}\n"],"file":"CmdbInstancesSelectPanel.js"}
1
+ {"version":3,"sources":["../../../src/cmdb-instances-select-panel/CmdbInstancesSelectPanel.tsx"],"names":["React","useState","useEffect","classnames","InstanceApi_postSearch","InstanceListTable","InstanceListModal","modifyModelData","style","i18n","K","NS_LIBS_CMDB_INSTANCES","CmdbInstancesSelectPanel","props","ref","modelData","objectMap","objectId","isFilterView","hideModelData","view","hide_columns","attrList","filter","item","includes","id","relation_list","left_id","left_object_id","right_id","right_object_id","displayedSelectedInstancesMaxNumber","previewMaxNumber","selectedInstanceList","setSelectedInstanceList","partialSelectedInstances","setPartialSelectedInstances","addInstancesModal","setAddInstancesModal","visible","allSelectedInstancesModal","setAllSelectedInstancesModal","fetchInstances","instanceIdList","instances","length","query","instanceId","$in","page","page_size","fields","list","initInstances","value","isOperate","slice","onFetchedInstances","openAddInstancesModal","closeAddInstancesModal","openAllSelectedInstancesModal","closeAllSelectedInstancesModal","handleInstancesSelected","selectedKeys","onChange","fieldIds","map","attr","showPreview","cs","selectedInstancesTableWrapper","withPreview","relation","relationLimit","right_max","$size","$lt","instanceQuery","wrapper","modalTitle","t","FILTER_FROM_CMDB","name","instance","singleSelect","addInstancesModalPageSize","showSizeChanger","pageSizeOptions","searchDisabled","advancedSearchDisabled","VIEW_ALL_SELECTED_INSTANCES","addButton","marginBottom","addTitle","CHOOSE_INSTANCE","showDetailUrl","detailUrlTemplates","pagination","v","showAllSelectedInstancesButton","VIEW_ALL_DATA","count"],"mappings":"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","sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport classnames from \"classnames\";\n\nimport { CmdbModels, InstanceApi_postSearch } from \"@next-sdk/cmdb-sdk\";\nimport { InstanceListTable } from \"../instance-list-table\";\nimport { InstanceListModal } from \"../instance-list-modal/InstanceListModal\";\nimport {\n modifyModelData,\n ModifiedModelObjectRelation,\n} from \"@next-libs/cmdb-utils\";\nimport style from \"./style.module.css\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\n\nexport interface CmdbInstancesSelectPanelProps {\n objectMap: { [key: string]: Partial<CmdbModels.ModelCmdbObject> };\n objectId: string;\n value?: string[];\n onChange?: (instanceList: any[]) => void;\n instanceQuery?: any;\n fields?: string[];\n singleSelect?: boolean;\n addTitle?: React.ReactNode | string;\n modalTitle?: React.ReactNode | string;\n previewMaxNumber?: number;\n addInstancesModalPageSize?: number;\n showSizeChanger?: boolean;\n pageSizeOptions?: string[];\n isOperate?: boolean; //cmdb实例列表支持删除实例\n showDetailUrl?: boolean;\n isFilterView?: boolean; //是否过滤视图属性\n onFetchedInstances?: (instanceList: any[]) => void; // objectId改变后触发\n relation?: Partial<ModifiedModelObjectRelation>;\n searchDisabled?: boolean;\n advancedSearchDisabled?: boolean;\n}\n\nexport function CmdbInstancesSelectPanel(\n props: CmdbInstancesSelectPanelProps,\n ref: any\n): React.ReactElement {\n let modelData = props.objectMap[props.objectId];\n if (props.isFilterView) {\n //过滤掉视图不可见字段\n const hideModelData = modelData?.view?.hide_columns || [];\n modelData = {\n ...modelData,\n attrList: modelData.attrList.filter(\n (item: any) => !hideModelData.includes(item.id)\n ),\n relation_list: modelData.relation_list.filter(\n (item: any) =>\n !(\n (hideModelData.includes(item.left_id) &&\n item.left_object_id === props.objectId) ||\n (hideModelData.includes(item.right_id) &&\n item.right_object_id === props.objectId)\n )\n ),\n };\n }\n\n const displayedSelectedInstancesMaxNumber = props.previewMaxNumber ?? 5;\n\n const [selectedInstanceList, setSelectedInstanceList] = useState([]);\n const [partialSelectedInstances, setPartialSelectedInstances] = useState([]);\n const [addInstancesModal, setAddInstancesModal] = useState({\n visible: false,\n });\n const [allSelectedInstancesModal, setAllSelectedInstancesModal] = useState({\n visible: false,\n });\n\n const fetchInstances = async (instanceIdList: string[]): Promise<any[]> => {\n let instances: any[] = [];\n if (instanceIdList?.length) {\n instances = (\n await InstanceApi_postSearch(props.objectId, {\n query: {\n instanceId: {\n $in: instanceIdList,\n },\n },\n page: 1,\n page_size: instanceIdList.length,\n // todo(ice): selected confirm with instances\n fields: { \"*\": true },\n })\n ).list;\n }\n\n return instances;\n };\n\n useEffect(() => {\n const initInstances = async (): Promise<void> => {\n const instances = await fetchInstances(props.value);\n setSelectedInstanceList(instances);\n setPartialSelectedInstances(\n props?.isOperate\n ? instances\n : instances.slice(0, displayedSelectedInstancesMaxNumber)\n );\n props.onFetchedInstances?.(instances);\n };\n\n initInstances();\n }, [props.objectId]);\n\n const openAddInstancesModal = () => {\n setAddInstancesModal({ visible: true });\n };\n\n const closeAddInstancesModal = () => {\n setAddInstancesModal({ visible: false });\n };\n\n const openAllSelectedInstancesModal = () => {\n setAllSelectedInstancesModal({ visible: true });\n };\n\n const closeAllSelectedInstancesModal = () => {\n setAllSelectedInstancesModal({ visible: false });\n };\n\n const handleInstancesSelected = async (selectedKeys: string[]) => {\n closeAddInstancesModal();\n\n const instances = await fetchInstances(selectedKeys);\n setSelectedInstanceList(instances);\n setPartialSelectedInstances(\n props?.isOperate\n ? instances\n : instances.slice(0, displayedSelectedInstancesMaxNumber)\n );\n\n props.onChange?.(instances);\n };\n\n const fieldIds = modifyModelData(modelData).attrList.map(\n (attr: any) => attr.id\n );\n const showPreview =\n selectedInstanceList.length > displayedSelectedInstancesMaxNumber;\n const cs = classnames({\n [style.selectedInstancesTableWrapper]: true,\n [style.withPreview]: showPreview,\n });\n const { relation } = props;\n let relationLimit;\n if (relation?.right_max === 1) {\n relationLimit = { [relation.right_id]: { $size: { $lt: 1 } } };\n }\n const query = props.instanceQuery ?? relationLimit;\n return (\n <div className={style.wrapper} ref={ref}>\n <InstanceListModal\n objectMap={props.objectMap}\n objectId={props.objectId}\n visible={addInstancesModal.visible}\n title={\n props.modalTitle ??\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FILTER_FROM_CMDB}`, {\n name: modelData.name,\n })\n }\n selectedRowKeys={selectedInstanceList.map(\n (instance) => instance.instanceId\n )}\n onSelected={handleInstancesSelected}\n onCancel={closeAddInstancesModal}\n singleSelect={props.singleSelect}\n presetConfigs={{\n query,\n fieldIds: props.fields,\n }}\n pageSize={props.addInstancesModalPageSize}\n showSizeChanger={props.showSizeChanger}\n pageSizeOptions={props.pageSizeOptions}\n searchDisabled={props.searchDisabled}\n advancedSearchDisabled={props.advancedSearchDisabled}\n />\n <InstanceListModal\n objectMap={props.objectMap}\n objectId={props.objectId}\n visible={allSelectedInstancesModal.visible}\n title={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.VIEW_ALL_SELECTED_INSTANCES}`\n )}\n presetConfigs={{\n query: {\n instanceId: {\n $in: selectedInstanceList.map((instance) => instance.instanceId),\n },\n },\n }}\n selectDisabled={true}\n onCancel={closeAllSelectedInstancesModal}\n />\n <a\n className={style.addButton}\n onClick={openAddInstancesModal}\n style={{ marginBottom: \"12px\" }}\n >\n {props.addTitle ??\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CHOOSE_INSTANCE}`)}\n </a>\n <div className={cs}>\n <InstanceListTable\n {...(props.showDetailUrl\n ? {\n detailUrlTemplates: {\n [props.objectId]:\n \"/next-cmdb-instance-management/next/#{objectId}/instance/#{instanceId}\",\n },\n }\n : {})}\n idObjectMap={props.objectMap}\n modelData={modelData}\n instanceListData={{\n list: partialSelectedInstances,\n }}\n fieldIds={props.fields || fieldIds}\n selectDisabled={true}\n sortDisabled={true}\n configProps={{\n pagination: false,\n }}\n isOperate={props.isOperate}\n handleDeleteFunction={(v) => {\n setSelectedInstanceList(v);\n setPartialSelectedInstances(v);\n props.onChange?.(v);\n }}\n target={\"_blank\"}\n ></InstanceListTable>\n {!props?.isOperate && showPreview && (\n <div\n className={style.showAllSelectedInstancesButton}\n onClick={openAllSelectedInstancesModal}\n >\n <a>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.VIEW_ALL_DATA}`, {\n count: selectedInstanceList.length,\n })}\n </a>\n </div>\n )}\n </div>\n </div>\n );\n}\n"],"file":"CmdbInstancesSelectPanel.js"}
@@ -54,9 +54,10 @@ export class DisplaySettings extends React.Component {
54
54
  name: attribute.name
55
55
  }));
56
56
  this.state = {
57
- nextFields: props.currentFields.slice(),
57
+ nextFields: props.currentFields ? props.currentFields.slice() : [],
58
58
  q: "",
59
- filteredList: this.attrAndRelationList
59
+ filteredList: this.attrAndRelationList,
60
+ extraDisabledFieldSet: new Set(props.extraDisabledFields)
60
61
  };
61
62
  this.debounceHandleSearch = debounce(this.filterColTag, 300);
62
63
  }
@@ -64,7 +65,13 @@ export class DisplaySettings extends React.Component {
64
65
  componentDidUpdate(prevProps) {
65
66
  if (this.props.currentFields !== prevProps.currentFields) {
66
67
  this.setState({
67
- nextFields: this.props.currentFields.slice()
68
+ nextFields: this.props.currentFields ? this.props.currentFields.slice() : []
69
+ });
70
+ }
71
+
72
+ if (this.props.extraDisabledFields !== prevProps.extraDisabledFields) {
73
+ this.setState({
74
+ extraDisabledFieldSet: new Set(this.props.extraDisabledFields)
68
75
  });
69
76
  }
70
77
  }
@@ -83,7 +90,7 @@ export class DisplaySettings extends React.Component {
83
90
  renderCheckbox(attr, field) {
84
91
  var fieldsKey = "nextFields";
85
92
  var checked = this.state[fieldsKey].includes(attr.id);
86
- var disabled = attr.id === this.props.extraDisabledField;
93
+ var disabled = attr.id === this.props.extraDisabledField || this.state.extraDisabledFieldSet.has(attr.id);
87
94
  return /*#__PURE__*/React.createElement(Col, {
88
95
  key: attr.id,
89
96
  span: 8,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/instance-list-table/DisplaySettings.tsx"],"names":["React","debounce","remove","without","get","isEmpty","extraFieldAttrs","Checkbox","Col","Divider","Input","Row","getBatchEditableRelations","CMDB_RESOURCE_FIELDS_SETTINGS","i18n","K","NS_LIBS_CMDB_INSTANCES","DisplaySettings","Component","constructor","props","filteredList","attrAndRelationList","q","state","trim","toLowerCase","filter","attr","name","includes","setState","event","value","target","debounceHandleSearch","relationList","modelData","attrList","hideColumns","view","hide_columns","ignoredFields","objectId","forEach","hideColumn","id","map","attribute","nextFields","currentFields","slice","filterColTag","componentDidUpdate","prevProps","handleChecked","fieldsKey","fields","checked","concat","onChange","renderCheckbox","field","disabled","extraDisabledField","padding","stopPropagation","width","wordBreak","render","extraAttrIds","extraFieldAttr","attrs","extraAttrs","marginTop","t","FIELD_SETTINGS","SEARCH_BY_FIELD_NAME","handleSearchChange","minHeight","maxHeight","overflow","length"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { debounce, remove, without, get, isEmpty } from \"lodash\";\nimport { extraFieldAttrs } from \"./constants\";\nimport { Checkbox, Col, Divider, Input, Row } from \"antd\";\nimport {\n getBatchEditableRelations,\n CMDB_RESOURCE_FIELDS_SETTINGS,\n} from \"@next-libs/cmdb-utils\";\nimport { CmdbModels } from \"@next-sdk/cmdb-sdk\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nexport interface DisplaySettingsProps {\n currentFields: string[];\n modelData: Partial<CmdbModels.ModelCmdbObject>;\n objectId?: string;\n extraDisabledField?: string;\n onChange?(fields: string[]): void;\n}\n\ninterface DisplaySettingsState {\n nextFields: string[];\n q: string;\n filteredList: any;\n}\n\nexport class DisplaySettings extends React.Component<\n DisplaySettingsProps,\n DisplaySettingsState\n> {\n debounceHandleSearch: () => void;\n attrAndRelationList: { id: string; name: string }[] = [];\n\n constructor(props: DisplaySettingsProps) {\n super(props);\n\n const relationList = getBatchEditableRelations(this.props.modelData);\n const attrAndRelationList = [\n ...this.props.modelData.attrList,\n ...relationList,\n ];\n\n let hideColumns = this.props.modelData.view.hide_columns || [];\n const ignoredFields = get(\n CMDB_RESOURCE_FIELDS_SETTINGS,\n `ignoredFields.${this.props.modelData.objectId}`,\n []\n );\n hideColumns = [...hideColumns, ...ignoredFields];\n\n if (!isEmpty(hideColumns)) {\n hideColumns.forEach((hideColumn: string) => {\n remove(attrAndRelationList, (attr) => attr.id === hideColumn);\n });\n }\n\n this.attrAndRelationList = attrAndRelationList.map((attribute: any) => ({\n id: attribute.id,\n name: attribute.name,\n }));\n\n this.state = {\n nextFields: props.currentFields.slice(),\n q: \"\",\n filteredList: this.attrAndRelationList,\n };\n this.debounceHandleSearch = debounce(this.filterColTag, 300);\n }\n\n componentDidUpdate(prevProps: DisplaySettingsProps) {\n if (this.props.currentFields !== prevProps.currentFields) {\n this.setState({ nextFields: this.props.currentFields.slice() });\n }\n }\n\n handleChecked(event: any, attr: any) {\n const fieldsKey = \"nextFields\";\n const fields = event.target.checked\n ? this.state[fieldsKey].concat(attr.id)\n : without(this.state[fieldsKey], attr.id);\n\n this.setState({ [fieldsKey]: fields });\n this.props.onChange?.(fields);\n }\n\n renderCheckbox(attr: any, field: \"nextFields\" | \"otherFields\") {\n const fieldsKey = \"nextFields\";\n const checked = this.state[fieldsKey].includes(attr.id);\n const disabled = attr.id === this.props.extraDisabledField;\n return (\n <Col\n key={attr.id}\n span={8}\n style={{ padding: 5 }}\n onClick={(event) => event.stopPropagation()}\n >\n <Checkbox\n name={field}\n style={{\n width: \"100%\",\n wordBreak: \"break-all\",\n }}\n checked={checked}\n disabled={disabled}\n onChange={(event) => this.handleChecked(event, attr)}\n data-testid={`${attr.id}-checkbox`}\n >\n {attr.name}\n </Checkbox>\n </Col>\n );\n }\n\n filterColTag = () => {\n let filteredList = this.attrAndRelationList;\n const q = this.state.q.trim().toLowerCase();\n if (q) {\n filteredList = filteredList.filter((attr) => {\n return attr.name.toLowerCase().includes(q);\n });\n }\n this.setState({\n filteredList,\n });\n };\n\n handleSearchChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const value = event.target.value;\n this.setState({\n q: value,\n });\n this.debounceHandleSearch();\n };\n\n render() {\n const filteredList = this.state.filteredList;\n const extraAttrIds = extraFieldAttrs.map(\n (extraFieldAttr) => extraFieldAttr.id\n );\n const attrs = filteredList.filter(\n (attr: any) => !extraAttrIds.includes(attr.id)\n );\n const extraAttrs = filteredList.filter((attr: any) =>\n extraAttrIds.includes(attr.id)\n );\n\n return (\n <>\n <Divider orientation=\"left\" plain style={{ marginTop: 0 }}>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FIELD_SETTINGS}`)}\n </Divider>\n <div>\n <Input.Search\n value={this.state.q}\n placeholder={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.SEARCH_BY_FIELD_NAME}`\n )}\n onChange={this.handleSearchChange}\n style={{ width: 200 }}\n data-testid=\"search-input\"\n />\n </div>\n <div\n style={{\n marginTop: 15,\n minHeight: 200,\n maxHeight: 500,\n overflow: \"auto\",\n }}\n className=\"nextFields\"\n >\n <Row>\n {attrs.map((attr: any) => this.renderCheckbox(attr, \"nextFields\"))}\n {extraAttrs.length > 0 ? (\n <>\n <Divider />\n {extraAttrs.map((attr: any) =>\n this.renderCheckbox(attr, \"nextFields\")\n )}\n </>\n ) : null}\n </Row>\n </div>\n </>\n );\n }\n}\n"],"file":"DisplaySettings.js"}
1
+ {"version":3,"sources":["../../../src/instance-list-table/DisplaySettings.tsx"],"names":["React","debounce","remove","without","get","isEmpty","extraFieldAttrs","Checkbox","Col","Divider","Input","Row","getBatchEditableRelations","CMDB_RESOURCE_FIELDS_SETTINGS","i18n","K","NS_LIBS_CMDB_INSTANCES","DisplaySettings","Component","constructor","props","filteredList","attrAndRelationList","q","state","trim","toLowerCase","filter","attr","name","includes","setState","event","value","target","debounceHandleSearch","relationList","modelData","attrList","hideColumns","view","hide_columns","ignoredFields","objectId","forEach","hideColumn","id","map","attribute","nextFields","currentFields","slice","extraDisabledFieldSet","Set","extraDisabledFields","filterColTag","componentDidUpdate","prevProps","handleChecked","fieldsKey","fields","checked","concat","onChange","renderCheckbox","field","disabled","extraDisabledField","has","padding","stopPropagation","width","wordBreak","render","extraAttrIds","extraFieldAttr","attrs","extraAttrs","marginTop","t","FIELD_SETTINGS","SEARCH_BY_FIELD_NAME","handleSearchChange","minHeight","maxHeight","overflow","length"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { debounce, remove, without, get, isEmpty } from \"lodash\";\nimport { extraFieldAttrs } from \"./constants\";\nimport { Checkbox, Col, Divider, Input, Row } from \"antd\";\nimport {\n getBatchEditableRelations,\n CMDB_RESOURCE_FIELDS_SETTINGS,\n} from \"@next-libs/cmdb-utils\";\nimport { CmdbModels } from \"@next-sdk/cmdb-sdk\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nexport interface DisplaySettingsProps {\n currentFields: string[];\n modelData: Partial<CmdbModels.ModelCmdbObject>;\n objectId?: string;\n extraDisabledField?: string;\n extraDisabledFields?: string[];\n onChange?(fields: string[]): void;\n}\n\ninterface DisplaySettingsState {\n nextFields: string[];\n q: string;\n filteredList: any;\n extraDisabledFieldSet: Set<string>;\n}\n\nexport class DisplaySettings extends React.Component<\n DisplaySettingsProps,\n DisplaySettingsState\n> {\n debounceHandleSearch: () => void;\n attrAndRelationList: { id: string; name: string }[] = [];\n\n constructor(props: DisplaySettingsProps) {\n super(props);\n\n const relationList = getBatchEditableRelations(this.props.modelData);\n const attrAndRelationList = [\n ...this.props.modelData.attrList,\n ...relationList,\n ];\n\n let hideColumns = this.props.modelData.view.hide_columns || [];\n const ignoredFields = get(\n CMDB_RESOURCE_FIELDS_SETTINGS,\n `ignoredFields.${this.props.modelData.objectId}`,\n []\n );\n hideColumns = [...hideColumns, ...ignoredFields];\n\n if (!isEmpty(hideColumns)) {\n hideColumns.forEach((hideColumn: string) => {\n remove(attrAndRelationList, (attr) => attr.id === hideColumn);\n });\n }\n\n this.attrAndRelationList = attrAndRelationList.map((attribute: any) => ({\n id: attribute.id,\n name: attribute.name,\n }));\n\n this.state = {\n nextFields: props.currentFields ? props.currentFields.slice() : [],\n q: \"\",\n filteredList: this.attrAndRelationList,\n extraDisabledFieldSet: new Set(props.extraDisabledFields),\n };\n this.debounceHandleSearch = debounce(this.filterColTag, 300);\n }\n\n componentDidUpdate(prevProps: DisplaySettingsProps) {\n if (this.props.currentFields !== prevProps.currentFields) {\n this.setState({\n nextFields: this.props.currentFields\n ? this.props.currentFields.slice()\n : [],\n });\n }\n\n if (this.props.extraDisabledFields !== prevProps.extraDisabledFields) {\n this.setState({\n extraDisabledFieldSet: new Set(this.props.extraDisabledFields),\n });\n }\n }\n\n handleChecked(event: any, attr: any) {\n const fieldsKey = \"nextFields\";\n const fields = event.target.checked\n ? this.state[fieldsKey].concat(attr.id)\n : without(this.state[fieldsKey], attr.id);\n\n this.setState({ [fieldsKey]: fields });\n this.props.onChange?.(fields);\n }\n\n renderCheckbox(attr: any, field: \"nextFields\" | \"otherFields\") {\n const fieldsKey = \"nextFields\";\n const checked = this.state[fieldsKey].includes(attr.id);\n const disabled =\n attr.id === this.props.extraDisabledField ||\n this.state.extraDisabledFieldSet.has(attr.id);\n return (\n <Col\n key={attr.id}\n span={8}\n style={{ padding: 5 }}\n onClick={(event) => event.stopPropagation()}\n >\n <Checkbox\n name={field}\n style={{\n width: \"100%\",\n wordBreak: \"break-all\",\n }}\n checked={checked}\n disabled={disabled}\n onChange={(event) => this.handleChecked(event, attr)}\n data-testid={`${attr.id}-checkbox`}\n >\n {attr.name}\n </Checkbox>\n </Col>\n );\n }\n\n filterColTag = () => {\n let filteredList = this.attrAndRelationList;\n const q = this.state.q.trim().toLowerCase();\n if (q) {\n filteredList = filteredList.filter((attr) => {\n return attr.name.toLowerCase().includes(q);\n });\n }\n this.setState({\n filteredList,\n });\n };\n\n handleSearchChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const value = event.target.value;\n this.setState({\n q: value,\n });\n this.debounceHandleSearch();\n };\n\n render() {\n const filteredList = this.state.filteredList;\n const extraAttrIds = extraFieldAttrs.map(\n (extraFieldAttr) => extraFieldAttr.id\n );\n const attrs = filteredList.filter(\n (attr: any) => !extraAttrIds.includes(attr.id)\n );\n const extraAttrs = filteredList.filter((attr: any) =>\n extraAttrIds.includes(attr.id)\n );\n\n return (\n <>\n <Divider orientation=\"left\" plain style={{ marginTop: 0 }}>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FIELD_SETTINGS}`)}\n </Divider>\n <div>\n <Input.Search\n value={this.state.q}\n placeholder={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.SEARCH_BY_FIELD_NAME}`\n )}\n onChange={this.handleSearchChange}\n style={{ width: 200 }}\n data-testid=\"search-input\"\n />\n </div>\n <div\n style={{\n marginTop: 15,\n minHeight: 200,\n maxHeight: 500,\n overflow: \"auto\",\n }}\n className=\"nextFields\"\n >\n <Row>\n {attrs.map((attr: any) => this.renderCheckbox(attr, \"nextFields\"))}\n {extraAttrs.length > 0 ? (\n <>\n <Divider />\n {extraAttrs.map((attr: any) =>\n this.renderCheckbox(attr, \"nextFields\")\n )}\n </>\n ) : null}\n </Row>\n </div>\n </>\n );\n }\n}\n"],"file":"DisplaySettings.js"}
@@ -10,6 +10,7 @@ export function DisplaySettingsModal(props) {
10
10
  modelData,
11
11
  currentFields,
12
12
  defaultFields,
13
+ extraDisabledFields,
13
14
  onOk,
14
15
  onCancel
15
16
  } = props;
@@ -20,7 +21,7 @@ export function DisplaySettingsModal(props) {
20
21
  var count = useMemo(() => nextFields === null || nextFields === void 0 ? void 0 : nextFields.filter(v => v !== "_object_id").length, [nextFields]);
21
22
 
22
23
  var handleReset = () => {
23
- var fields = defaultFields.slice();
24
+ var fields = defaultFields ? defaultFields.slice() : [];
24
25
  setNextFields(fields);
25
26
  onOk === null || onOk === void 0 ? void 0 : onOk({
26
27
  fields,
@@ -65,7 +66,8 @@ export function DisplaySettingsModal(props) {
65
66
  }, /*#__PURE__*/React.createElement(DisplaySettings, {
66
67
  objectId: objectId,
67
68
  modelData: modelData,
68
- currentFields: currentFields,
69
+ currentFields: nextFields,
70
+ extraDisabledFields: extraDisabledFields,
69
71
  onChange: fields => setNextFields(fields)
70
72
  }));
71
73
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/instance-list-table/DisplaySettingsModal.tsx"],"names":["Button","Modal","React","useMemo","useState","useTranslation","K","NS_LIBS_CMDB_INSTANCES","DisplaySettings","DisplaySettingsModal","props","visible","objectId","modelData","currentFields","defaultFields","onOk","onCancel","t","nextFields","setNextFields","count","filter","v","length","handleReset","fields","slice","isReset","DISPLAY_SETTINGS","display","RESTORE_DEFAULT","marginLeft","marginRight","CANCEL","CONFIRM"],"mappings":"AAAA,SAASA,MAAT,EAAiBC,KAAjB,QAA8B,MAA9B;AACA,OAAOC,KAAP,IAAgBC,OAAhB,EAAyBC,QAAzB,QAAyC,OAAzC;AACA,SAASC,cAAT,QAA+B,eAA/B;AACA,SAASC,CAAT,EAAYC,sBAAZ,QAA0C,mBAA1C;AACA,SAASC,eAAT,QAAsD,mBAAtD;AAcA,OAAO,SAASC,oBAAT,CACLC,KADK,EAEe;AACpB,MAAM;AACJC,IAAAA,OADI;AAEJC,IAAAA,QAFI;AAGJC,IAAAA,SAHI;AAIJC,IAAAA,aAJI;AAKJC,IAAAA,aALI;AAMJC,IAAAA,IANI;AAOJC,IAAAA;AAPI,MAQFP,KARJ;AASA,MAAM;AAAEQ,IAAAA;AAAF,MAAQb,cAAc,CAACE,sBAAD,CAA5B;AACA,MAAM,CAACY,UAAD,EAAaC,aAAb,IAA8BhB,QAAQ,CAAWU,aAAX,CAA5C;AACA,MAAMO,KAAK,GAAGlB,OAAO,CACnB,MAAMgB,UAAN,aAAMA,UAAN,uBAAMA,UAAU,CAAEG,MAAZ,CAAoBC,CAAD,IAAOA,CAAC,KAAK,YAAhC,EAA8CC,MADjC,EAEnB,CAACL,UAAD,CAFmB,CAArB;;AAKA,MAAMM,WAAW,GAAG,MAAY;AAC9B,QAAMC,MAAM,GAAGX,aAAa,CAACY,KAAd,EAAf;AAEAP,IAAAA,aAAa,CAACM,MAAD,CAAb;AACAV,IAAAA,IAAI,SAAJ,IAAAA,IAAI,WAAJ,YAAAA,IAAI,CAAG;AAAEU,MAAAA,MAAF;AAAUE,MAAAA,OAAO,EAAE;AAAnB,KAAH,CAAJ;AACD,GALD;;AAOA,sBACE,oBAAC,KAAD;AACE,IAAA,KAAK,EAAEV,CAAC,CAACZ,CAAC,CAACuB,gBAAH,CADV;AAEE,IAAA,OAAO,EAAElB,OAFX;AAGE,IAAA,MAAM,eACJ;AAAK,MAAA,KAAK,EAAE;AAAEmB,QAAAA,OAAO,EAAE;AAAX;AAAZ,oBACE,8CACE,oBAAC,MAAD;AACE,MAAA,IAAI,EAAC,SADP;AAEE,MAAA,OAAO,EAAEL,WAFX;AAGE,qBAAY;AAHd,OAKGP,CAAC,CAACZ,CAAC,CAACyB,eAAH,CALJ,CADF,CADF,eAUE;AAAK,MAAA,KAAK,EAAE;AAAEC,QAAAA,UAAU,EAAE;AAAd;AAAZ,oBACE,oBAAC,MAAD;AACE,MAAA,IAAI,EAAC,SADP;AAEE,MAAA,OAAO,EAAEf,QAFX;AAGE,MAAA,KAAK,EAAE;AAAEgB,QAAAA,WAAW,EAAE;AAAf,OAHT;AAIE,qBAAY;AAJd,OAMGf,CAAC,CAACZ,CAAC,CAAC4B,MAAH,CANJ,CADF,eASE,oBAAC,MAAD;AACE,MAAA,IAAI,EAAC,SADP;AAEE,MAAA,OAAO,EAAE,MAAMxB,KAAN,aAAMA,KAAN,uBAAMA,KAAK,CAAEM,IAAP,CAAY;AAAEU,QAAAA,MAAM,EAAEP;AAAV,OAAZ,CAFjB;AAGE,MAAA,QAAQ,EAAEE,KAAK,KAAK,CAHtB;AAIE,qBAAY;AAJd,OAMGH,CAAC,CAACZ,CAAC,CAAC6B,OAAH,CANJ,CATF,CAVF,CAJJ;AAkCE,IAAA,QAAQ,EAAElB,QAlCZ;AAmCE,IAAA,cAAc,EAAE,IAnClB;AAoCE,IAAA,KAAK,EAAE,GApCT;AAqCE,IAAA,QAAQ,EAAE;AArCZ,kBAuCE,oBAAC,eAAD;AACE,IAAA,QAAQ,EAAEL,QADZ;AAEE,IAAA,SAAS,EAAEC,SAFb;AAGE,IAAA,aAAa,EAAEC,aAHjB;AAIE,IAAA,QAAQ,EAAGY,MAAD,IAAYN,aAAa,CAACM,MAAD;AAJrC,IAvCF,CADF;AAgDD","sourcesContent":["import { Button, Modal } 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\";\n\nexport interface DisplaySettingsModalData {\n fields: string[];\n isReset?: boolean;\n}\n\nexport interface DisplaySettingsModalProps extends DisplaySettingsProps {\n visible?: boolean;\n defaultFields?: string[];\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 currentFields,\n defaultFields,\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.slice();\n\n setNextFields(fields);\n onOk?.({ fields, isReset: true });\n };\n\n return (\n <Modal\n title={t(K.DISPLAY_SETTINGS)}\n visible={visible}\n footer={\n <div style={{ display: \"flex\" }}>\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 <div style={{ marginLeft: \"auto\" }}>\n <Button\n type=\"default\"\n onClick={onCancel}\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={onCancel}\n destroyOnClose={true}\n width={780}\n centered={true}\n >\n <DisplaySettings\n objectId={objectId}\n modelData={modelData}\n currentFields={currentFields}\n onChange={(fields) => setNextFields(fields)}\n />\n </Modal>\n );\n}\n"],"file":"DisplaySettingsModal.js"}
1
+ {"version":3,"sources":["../../../src/instance-list-table/DisplaySettingsModal.tsx"],"names":["Button","Modal","React","useMemo","useState","useTranslation","K","NS_LIBS_CMDB_INSTANCES","DisplaySettings","DisplaySettingsModal","props","visible","objectId","modelData","currentFields","defaultFields","extraDisabledFields","onOk","onCancel","t","nextFields","setNextFields","count","filter","v","length","handleReset","fields","slice","isReset","DISPLAY_SETTINGS","display","RESTORE_DEFAULT","marginLeft","marginRight","CANCEL","CONFIRM"],"mappings":"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","sourcesContent":["import { Button, Modal } 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\";\n\nexport interface DisplaySettingsModalData {\n fields: string[];\n isReset?: boolean;\n}\n\nexport interface DisplaySettingsModalProps extends DisplaySettingsProps {\n visible?: boolean;\n defaultFields?: string[];\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 currentFields,\n defaultFields,\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 return (\n <Modal\n title={t(K.DISPLAY_SETTINGS)}\n visible={visible}\n footer={\n <div style={{ display: \"flex\" }}>\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 <div style={{ marginLeft: \"auto\" }}>\n <Button\n type=\"default\"\n onClick={onCancel}\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={onCancel}\n destroyOnClose={true}\n width={780}\n centered={true}\n >\n <DisplaySettings\n objectId={objectId}\n modelData={modelData}\n currentFields={nextFields}\n extraDisabledFields={extraDisabledFields}\n onChange={(fields) => setNextFields(fields)}\n />\n </Modal>\n );\n}\n"],"file":"DisplaySettingsModal.js"}
@@ -29,7 +29,7 @@
29
29
  }
30
30
 
31
31
  .moreButtonsContainer:hover {
32
- background: var(--antd-btn-special-icon-type-bg, #f5f5f5);
32
+ background: var(--antd-btn-special-icon-type-hover-bg, #f5f5f5);
33
33
  }
34
34
 
35
35
  .linkKey {
@@ -1,5 +1,6 @@
1
1
  export * from "./AdvancedSearch";
2
2
  export * from "./MoreButtonsContainer";
3
3
  export * from "./DisplaySettings";
4
+ export * from "./DisplaySettingsModal";
4
5
  export * from "./InstanceListTable";
5
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/instance-list-table/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAd;AACA,cAAc,wBAAd;AACA,cAAc,mBAAd;AACA,cAAc,qBAAd","sourcesContent":["export * from \"./AdvancedSearch\";\nexport * from \"./MoreButtonsContainer\";\nexport * from \"./DisplaySettings\";\nexport * from \"./InstanceListTable\";\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/instance-list-table/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAd;AACA,cAAc,wBAAd;AACA,cAAc,mBAAd;AACA,cAAc,wBAAd;AACA,cAAc,qBAAd","sourcesContent":["export * from \"./AdvancedSearch\";\nexport * from \"./MoreButtonsContainer\";\nexport * from \"./DisplaySettings\";\nexport * from \"./DisplaySettingsModal\";\nexport * from \"./InstanceListTable\";\n"],"file":"index.js"}
@@ -22,5 +22,7 @@ export interface CmdbInstancesSelectPanelProps {
22
22
  isFilterView?: boolean;
23
23
  onFetchedInstances?: (instanceList: any[]) => void;
24
24
  relation?: Partial<ModifiedModelObjectRelation>;
25
+ searchDisabled?: boolean;
26
+ advancedSearchDisabled?: boolean;
25
27
  }
26
28
  export declare function CmdbInstancesSelectPanel(props: CmdbInstancesSelectPanelProps, ref: any): React.ReactElement;
@@ -5,12 +5,14 @@ export interface DisplaySettingsProps {
5
5
  modelData: Partial<CmdbModels.ModelCmdbObject>;
6
6
  objectId?: string;
7
7
  extraDisabledField?: string;
8
+ extraDisabledFields?: string[];
8
9
  onChange?(fields: string[]): void;
9
10
  }
10
11
  interface DisplaySettingsState {
11
12
  nextFields: string[];
12
13
  q: string;
13
14
  filteredList: any;
15
+ extraDisabledFieldSet: Set<string>;
14
16
  }
15
17
  export declare class DisplaySettings extends React.Component<DisplaySettingsProps, DisplaySettingsState> {
16
18
  debounceHandleSearch: () => void;
@@ -1,4 +1,5 @@
1
1
  export * from "./AdvancedSearch";
2
2
  export * from "./MoreButtonsContainer";
3
3
  export * from "./DisplaySettings";
4
+ export * from "./DisplaySettingsModal";
4
5
  export * from "./InstanceListTable";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@next-libs/cmdb-instances",
3
- "version": "6.19.8",
3
+ "version": "6.21.1",
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": "8037582c5efd2f9e714b462c88b75d163a16b6e5"
53
+ "gitHead": "15480cb6dee44cd9179d55f52a65c3a1e1fb6c16"
54
54
  }