@next-libs/cmdb-instances 6.48.0 → 6.49.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 (211) hide show
  1. package/dist/cjs/attribute-form-control-url/AttributeFormControlUrl.js +8 -23
  2. package/dist/cjs/attribute-form-control-url/AttributeFormControlUrl.js.map +1 -1
  3. package/dist/cjs/cmdb-instances-input-form/CmdbInstancesInputFormItem.js +3 -43
  4. package/dist/cjs/cmdb-instances-input-form/CmdbInstancesInputFormItem.js.map +1 -1
  5. package/dist/cjs/cmdb-instances-select-panel/CmdbInstancesSelectPanel.js +6 -45
  6. package/dist/cjs/cmdb-instances-select-panel/CmdbInstancesSelectPanel.js.map +1 -1
  7. package/dist/cjs/cmdb-url-link/CmdbUrlLink.js +0 -11
  8. package/dist/cjs/cmdb-url-link/CmdbUrlLink.js.map +1 -1
  9. package/dist/cjs/components/index.js +0 -4
  10. package/dist/cjs/components/index.js.map +1 -1
  11. package/dist/cjs/components/instance-format/index.js +0 -15
  12. package/dist/cjs/components/instance-format/index.js.map +1 -1
  13. package/dist/cjs/components/user-or-user-group-select/UserOrUserGroupSelect.js +33 -92
  14. package/dist/cjs/components/user-or-user-group-select/UserOrUserGroupSelect.js.map +1 -1
  15. package/dist/cjs/data-providers/fetchCmdbInstanceDetail.js +0 -3
  16. package/dist/cjs/data-providers/fetchCmdbInstanceDetail.js.map +1 -1
  17. package/dist/cjs/data-providers/fetchCmdbInstanceSearch.js +0 -2
  18. package/dist/cjs/data-providers/fetchCmdbInstanceSearch.js.map +1 -1
  19. package/dist/cjs/data-providers/fetchCmdbObjectDetail.js +0 -2
  20. package/dist/cjs/data-providers/fetchCmdbObjectDetail.js.map +1 -1
  21. package/dist/cjs/data-providers/fetchCmdbObjectList.js +0 -2
  22. package/dist/cjs/data-providers/fetchCmdbObjectList.js.map +1 -1
  23. package/dist/cjs/data-providers/fetchCmdbObjectRef.js +0 -2
  24. package/dist/cjs/data-providers/fetchCmdbObjectRef.js.map +1 -1
  25. package/dist/cjs/data-providers/index.js +0 -10
  26. package/dist/cjs/data-providers/index.js.map +1 -1
  27. package/dist/cjs/float-display-brick/FloatDisplayBrick.js +0 -7
  28. package/dist/cjs/float-display-brick/FloatDisplayBrick.js.map +1 -1
  29. package/dist/cjs/i18n/constants.js +0 -1
  30. package/dist/cjs/i18n/constants.js.map +1 -1
  31. package/dist/cjs/i18n/index.js +0 -7
  32. package/dist/cjs/i18n/index.js.map +1 -1
  33. package/dist/cjs/i18n/locales/en.js +0 -2
  34. package/dist/cjs/i18n/locales/en.js.map +1 -1
  35. package/dist/cjs/i18n/locales/zh.js +0 -2
  36. package/dist/cjs/i18n/locales/zh.js.map +1 -1
  37. package/dist/cjs/index.js +0 -29
  38. package/dist/cjs/index.js.map +1 -1
  39. package/dist/cjs/instance-attribute-form/InstanceAttributeForm.js +4 -25
  40. package/dist/cjs/instance-attribute-form/InstanceAttributeForm.js.map +1 -1
  41. package/dist/cjs/instance-detail/InstanceDetail.js +42 -124
  42. package/dist/cjs/instance-detail/InstanceDetail.js.map +1 -1
  43. package/dist/cjs/instance-detail/components/instance-relation-field-display/constants.js.map +1 -1
  44. package/dist/cjs/instance-detail/components/instance-relation-field-display/instance-relation-field-display.js +4 -19
  45. package/dist/cjs/instance-detail/components/instance-relation-field-display/instance-relation-field-display.js.map +1 -1
  46. package/dist/cjs/instance-detail/components/instance-relation-table-show/instance-relation-table-show.js +4 -11
  47. package/dist/cjs/instance-detail/components/instance-relation-table-show/instance-relation-table-show.js.map +1 -1
  48. package/dist/cjs/instance-detail/constants/index.js.map +1 -1
  49. package/dist/cjs/instance-list/IconButton.js +0 -18
  50. package/dist/cjs/instance-list/IconButton.js.map +1 -1
  51. package/dist/cjs/instance-list/InstanceList.js +47 -212
  52. package/dist/cjs/instance-list/InstanceList.js.map +1 -1
  53. package/dist/cjs/instance-list/constants.js +0 -7
  54. package/dist/cjs/instance-list/constants.js.map +1 -1
  55. package/dist/cjs/instance-list-modal/InstanceListModal.js +8 -32
  56. package/dist/cjs/instance-list-modal/InstanceListModal.js.map +1 -1
  57. package/dist/cjs/instance-list-table/AdvancedSearch.js +12 -133
  58. package/dist/cjs/instance-list-table/AdvancedSearch.js.map +1 -1
  59. package/dist/cjs/instance-list-table/AdvancedSearchCondition.js +3 -45
  60. package/dist/cjs/instance-list-table/AdvancedSearchCondition.js.map +1 -1
  61. package/dist/cjs/instance-list-table/DisplaySettings.js +0 -24
  62. package/dist/cjs/instance-list-table/DisplaySettings.js.map +1 -1
  63. package/dist/cjs/instance-list-table/DisplaySettingsModal.js +0 -10
  64. package/dist/cjs/instance-list-table/DisplaySettingsModal.js.map +1 -1
  65. package/dist/cjs/instance-list-table/DynamicSearch.js +4 -44
  66. package/dist/cjs/instance-list-table/DynamicSearch.js.map +1 -1
  67. package/dist/cjs/instance-list-table/InstanceListTable.js +30 -151
  68. package/dist/cjs/instance-list-table/InstanceListTable.js.map +1 -1
  69. package/dist/cjs/instance-list-table/MoreButtonsContainer.js +0 -15
  70. package/dist/cjs/instance-list-table/MoreButtonsContainer.js.map +1 -1
  71. package/dist/cjs/instance-list-table/constants.js +0 -2
  72. package/dist/cjs/instance-list-table/constants.js.map +1 -1
  73. package/dist/cjs/instance-list-table/data-providers/fetchCmdbInstanceAggregateCount.js +0 -2
  74. package/dist/cjs/instance-list-table/data-providers/fetchCmdbInstanceAggregateCount.js.map +1 -1
  75. package/dist/cjs/instance-list-table/data-providers/fetchCmdbInstanceCount.js +0 -2
  76. package/dist/cjs/instance-list-table/data-providers/fetchCmdbInstanceCount.js.map +1 -1
  77. package/dist/cjs/instance-list-table/data-providers/fetchCmdbInstanceDetail.js +0 -2
  78. package/dist/cjs/instance-list-table/data-providers/fetchCmdbInstanceDetail.js.map +1 -1
  79. package/dist/cjs/instance-list-table/data-providers/fetchCmdbObjectDetail.js +0 -2
  80. package/dist/cjs/instance-list-table/data-providers/fetchCmdbObjectDetail.js.map +1 -1
  81. package/dist/cjs/instance-list-table/data-providers/fetchPermRoleList.js +0 -2
  82. package/dist/cjs/instance-list-table/data-providers/fetchPermRoleList.js.map +1 -1
  83. package/dist/cjs/instance-list-table/data-providers/fetchPermissionList.js +0 -2
  84. package/dist/cjs/instance-list-table/data-providers/fetchPermissionList.js.map +1 -1
  85. package/dist/cjs/instance-list-table/data-providers/getDefaultValueTemplate.js +1 -2
  86. package/dist/cjs/instance-list-table/data-providers/getDefaultValueTemplate.js.map +1 -1
  87. package/dist/cjs/instance-list-table/data-providers/index.js +0 -16
  88. package/dist/cjs/instance-list-table/data-providers/index.js.map +1 -1
  89. package/dist/cjs/instance-list-table/data-providers/searchCmdbInstances.js +0 -2
  90. package/dist/cjs/instance-list-table/data-providers/searchCmdbInstances.js.map +1 -1
  91. package/dist/cjs/instance-list-table/index.js +0 -12
  92. package/dist/cjs/instance-list-table/index.js.map +1 -1
  93. package/dist/cjs/instance-list-table/utils.js +0 -24
  94. package/dist/cjs/instance-list-table/utils.js.map +1 -1
  95. package/dist/cjs/model-attribute-form/ModelAttributeForm.js +27 -99
  96. package/dist/cjs/model-attribute-form/ModelAttributeForm.js.map +1 -1
  97. package/dist/cjs/model-attribute-form/constants.js.map +1 -1
  98. package/dist/cjs/model-attribute-form-control/ModelAttributeFormControl.js +13 -94
  99. package/dist/cjs/model-attribute-form-control/ModelAttributeFormControl.js.map +1 -1
  100. package/dist/cjs/model-relation-form/ModelRelationForm.js +0 -18
  101. package/dist/cjs/model-relation-form/ModelRelationForm.js.map +1 -1
  102. package/dist/cjs/processors.js +2 -21
  103. package/dist/cjs/processors.js.map +1 -1
  104. package/dist/cjs/struct-components/AddStruct.js +4 -15
  105. package/dist/cjs/struct-components/AddStruct.js.map +1 -1
  106. package/dist/cjs/struct-components/AddStructModal.js +0 -48
  107. package/dist/cjs/struct-components/AddStructModal.js.map +1 -1
  108. package/dist/cjs/struct-components/StructTable.js +2 -32
  109. package/dist/cjs/struct-components/StructTable.js.map +1 -1
  110. package/dist/cjs/struct-components/index.js +0 -8
  111. package/dist/cjs/struct-components/index.js.map +1 -1
  112. package/dist/cjs/struct-components/interfaces.js +0 -1
  113. package/dist/cjs/struct-components/interfaces.js.map +1 -1
  114. package/dist/cjs/struct-components/mockData.js.map +1 -1
  115. package/dist/esm/attribute-form-control-url/AttributeFormControlUrl.js +8 -18
  116. package/dist/esm/attribute-form-control-url/AttributeFormControlUrl.js.map +1 -1
  117. package/dist/esm/cmdb-instances-input-form/CmdbInstancesInputFormItem.js +3 -35
  118. package/dist/esm/cmdb-instances-input-form/CmdbInstancesInputFormItem.js.map +1 -1
  119. package/dist/esm/cmdb-instances-select-panel/CmdbInstancesSelectPanel.js +4 -32
  120. package/dist/esm/cmdb-instances-select-panel/CmdbInstancesSelectPanel.js.map +1 -1
  121. package/dist/esm/cmdb-url-link/CmdbUrlLink.js +0 -3
  122. package/dist/esm/cmdb-url-link/CmdbUrlLink.js.map +1 -1
  123. package/dist/esm/components/index.js.map +1 -1
  124. package/dist/esm/components/instance-format/index.js +0 -5
  125. package/dist/esm/components/instance-format/index.js.map +1 -1
  126. package/dist/esm/components/user-or-user-group-select/UserOrUserGroupSelect.js +19 -74
  127. package/dist/esm/components/user-or-user-group-select/UserOrUserGroupSelect.js.map +1 -1
  128. package/dist/esm/data-providers/fetchCmdbInstanceDetail.js.map +1 -1
  129. package/dist/esm/data-providers/fetchCmdbInstanceSearch.js.map +1 -1
  130. package/dist/esm/data-providers/fetchCmdbObjectDetail.js.map +1 -1
  131. package/dist/esm/data-providers/fetchCmdbObjectList.js.map +1 -1
  132. package/dist/esm/data-providers/fetchCmdbObjectRef.js.map +1 -1
  133. package/dist/esm/data-providers/index.js.map +1 -1
  134. package/dist/esm/float-display-brick/FloatDisplayBrick.js +0 -1
  135. package/dist/esm/float-display-brick/FloatDisplayBrick.js.map +1 -1
  136. package/dist/esm/i18n/constants.js +0 -1
  137. package/dist/esm/i18n/constants.js.map +1 -1
  138. package/dist/esm/i18n/index.js +2 -1
  139. package/dist/esm/i18n/index.js.map +1 -1
  140. package/dist/esm/i18n/locales/en.js.map +1 -1
  141. package/dist/esm/i18n/locales/zh.js.map +1 -1
  142. package/dist/esm/index.js +2 -2
  143. package/dist/esm/index.js.map +1 -1
  144. package/dist/esm/instance-attribute-form/InstanceAttributeForm.js +4 -10
  145. package/dist/esm/instance-attribute-form/InstanceAttributeForm.js.map +1 -1
  146. package/dist/esm/instance-detail/InstanceDetail.js +36 -111
  147. package/dist/esm/instance-detail/InstanceDetail.js.map +1 -1
  148. package/dist/esm/instance-detail/components/instance-relation-field-display/constants.js.map +1 -1
  149. package/dist/esm/instance-detail/components/instance-relation-field-display/instance-relation-field-display.js +4 -10
  150. package/dist/esm/instance-detail/components/instance-relation-field-display/instance-relation-field-display.js.map +1 -1
  151. package/dist/esm/instance-detail/components/instance-relation-table-show/instance-relation-table-show.js +2 -2
  152. package/dist/esm/instance-detail/components/instance-relation-table-show/instance-relation-table-show.js.map +1 -1
  153. package/dist/esm/instance-detail/constants/index.js.map +1 -1
  154. package/dist/esm/instance-list/IconButton.js +0 -8
  155. package/dist/esm/instance-list/IconButton.js.map +1 -1
  156. package/dist/esm/instance-list/InstanceList.js +41 -182
  157. package/dist/esm/instance-list/InstanceList.js.map +1 -1
  158. package/dist/esm/instance-list/constants.js +0 -2
  159. package/dist/esm/instance-list/constants.js.map +1 -1
  160. package/dist/esm/instance-list-modal/InstanceListModal.js +8 -20
  161. package/dist/esm/instance-list-modal/InstanceListModal.js.map +1 -1
  162. package/dist/esm/instance-list-table/AdvancedSearch.js +10 -119
  163. package/dist/esm/instance-list-table/AdvancedSearch.js.map +1 -1
  164. package/dist/esm/instance-list-table/AdvancedSearchCondition.js +1 -31
  165. package/dist/esm/instance-list-table/AdvancedSearchCondition.js.map +1 -1
  166. package/dist/esm/instance-list-table/DisplaySettings.js +0 -16
  167. package/dist/esm/instance-list-table/DisplaySettings.js.map +1 -1
  168. package/dist/esm/instance-list-table/DisplaySettingsModal.js +0 -3
  169. package/dist/esm/instance-list-table/DisplaySettingsModal.js.map +1 -1
  170. package/dist/esm/instance-list-table/DynamicSearch.js +0 -34
  171. package/dist/esm/instance-list-table/DynamicSearch.js.map +1 -1
  172. package/dist/esm/instance-list-table/InstanceListTable.js +23 -138
  173. package/dist/esm/instance-list-table/InstanceListTable.js.map +1 -1
  174. package/dist/esm/instance-list-table/MoreButtonsContainer.js +0 -7
  175. package/dist/esm/instance-list-table/MoreButtonsContainer.js.map +1 -1
  176. package/dist/esm/instance-list-table/constants.js +0 -2
  177. package/dist/esm/instance-list-table/constants.js.map +1 -1
  178. package/dist/esm/instance-list-table/data-providers/fetchCmdbInstanceAggregateCount.js.map +1 -1
  179. package/dist/esm/instance-list-table/data-providers/fetchCmdbInstanceCount.js.map +1 -1
  180. package/dist/esm/instance-list-table/data-providers/fetchCmdbInstanceDetail.js.map +1 -1
  181. package/dist/esm/instance-list-table/data-providers/fetchCmdbObjectDetail.js.map +1 -1
  182. package/dist/esm/instance-list-table/data-providers/fetchPermRoleList.js.map +1 -1
  183. package/dist/esm/instance-list-table/data-providers/fetchPermissionList.js.map +1 -1
  184. package/dist/esm/instance-list-table/data-providers/getDefaultValueTemplate.js +1 -1
  185. package/dist/esm/instance-list-table/data-providers/getDefaultValueTemplate.js.map +1 -1
  186. package/dist/esm/instance-list-table/data-providers/index.js.map +1 -1
  187. package/dist/esm/instance-list-table/data-providers/searchCmdbInstances.js.map +1 -1
  188. package/dist/esm/instance-list-table/index.js.map +1 -1
  189. package/dist/esm/instance-list-table/utils.js +0 -15
  190. package/dist/esm/instance-list-table/utils.js.map +1 -1
  191. package/dist/esm/model-attribute-form/ModelAttributeForm.js +19 -92
  192. package/dist/esm/model-attribute-form/ModelAttributeForm.js.map +1 -1
  193. package/dist/esm/model-attribute-form/constants.js.map +1 -1
  194. package/dist/esm/model-attribute-form-control/ModelAttributeFormControl.js +27 -102
  195. package/dist/esm/model-attribute-form-control/ModelAttributeFormControl.js.map +1 -1
  196. package/dist/esm/model-relation-form/ModelRelationForm.js +0 -10
  197. package/dist/esm/model-relation-form/ModelRelationForm.js.map +1 -1
  198. package/dist/esm/processors.js +2 -7
  199. package/dist/esm/processors.js.map +1 -1
  200. package/dist/esm/struct-components/AddStruct.js +4 -9
  201. package/dist/esm/struct-components/AddStruct.js.map +1 -1
  202. package/dist/esm/struct-components/AddStructModal.js +0 -36
  203. package/dist/esm/struct-components/AddStructModal.js.map +1 -1
  204. package/dist/esm/struct-components/StructTable.js +2 -26
  205. package/dist/esm/struct-components/StructTable.js.map +1 -1
  206. package/dist/esm/struct-components/index.js.map +1 -1
  207. package/dist/esm/struct-components/interfaces.js +0 -1
  208. package/dist/esm/struct-components/interfaces.js.map +1 -1
  209. package/dist/esm/struct-components/mockData.js.map +1 -1
  210. package/package.json +9 -9
  211. package/CHANGELOG.md +0 -3687
@@ -3,8 +3,8 @@ import _extends from "@babel/runtime/helpers/extends";
3
3
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
4
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
5
5
  var _excluded = ["type"],
6
- _excluded2 = ["pattern", "placeholder"],
7
- _excluded3 = ["pattern"];
6
+ _excluded2 = ["pattern", "placeholder"],
7
+ _excluded3 = ["pattern"];
8
8
  import React, { Component } from "react";
9
9
  import i18n from "i18next";
10
10
  import { NS_LIBS_CMDB_INSTANCES, K } from "../i18n/constants";
@@ -16,7 +16,6 @@ import { clusterMap } from "../instance-list-table/constants";
16
16
  import { CodeEditor } from "@next-libs/code-editor-components";
17
17
  import { some } from "lodash";
18
18
  export var ModelAttributeValueType;
19
-
20
19
  (function (ModelAttributeValueType) {
21
20
  ModelAttributeValueType["STRING"] = "str";
22
21
  ModelAttributeValueType["INTEGER"] = "int";
@@ -34,18 +33,14 @@ export var ModelAttributeValueType;
34
33
  ModelAttributeValueType["BOOLEAN"] = "bool";
35
34
  ModelAttributeValueType["JSON"] = "json";
36
35
  })(ModelAttributeValueType || (ModelAttributeValueType = {}));
37
-
38
36
  export var ModelAttributeValueModeType;
39
-
40
37
  (function (ModelAttributeValueModeType) {
41
38
  ModelAttributeValueModeType["MULTIPLE_LINES"] = "multiple-lines";
42
39
  ModelAttributeValueModeType["DEFAULT"] = "default";
43
40
  ModelAttributeValueModeType["MARKDOWN"] = "markdown";
44
41
  ModelAttributeValueModeType["URL"] = "url";
45
42
  })(ModelAttributeValueModeType || (ModelAttributeValueModeType = {}));
46
-
47
43
  export var FormControlTypeEnum;
48
-
49
44
  (function (FormControlTypeEnum) {
50
45
  FormControlTypeEnum["TEXT"] = "text";
51
46
  FormControlTypeEnum["NUMBER"] = "number";
@@ -62,7 +57,6 @@ export var FormControlTypeEnum;
62
57
  FormControlTypeEnum["URL"] = "url";
63
58
  FormControlTypeEnum["CODE_EDITOR"] = "code_editor";
64
59
  })(FormControlTypeEnum || (FormControlTypeEnum = {}));
65
-
66
60
  export var boolOptions = [{
67
61
  id: true,
68
62
  text: "true"
@@ -79,18 +73,14 @@ export class ModelAttributeFormControl extends Component {
79
73
  });
80
74
  }
81
75
  }
82
-
83
76
  constructor(_props) {
84
77
  super(_props);
85
-
86
78
  _defineProperty(this, "computeFormControl", (attribute, id, type, isClusterType) => {
87
79
  var formControlType = ModelAttributeFormControl.computeFormControlType(attribute, type, this.props.isSupportMultiStringValue);
88
80
  var items = this.computeFormControlItems(attribute, isClusterType);
89
-
90
81
  if (attribute.value.type === ModelAttributeValueType.BOOLEAN) {
91
82
  items = boolOptions;
92
83
  }
93
-
94
84
  var result = {
95
85
  type: formControlType,
96
86
  items,
@@ -102,24 +92,19 @@ export class ModelAttributeFormControl extends Component {
102
92
  unique: attribute.unique === "true",
103
93
  pattern: ModelAttributeFormControl.computePattern(attribute)
104
94
  };
105
-
106
95
  if (result.type === FormControlTypeEnum.STRUCT) {
107
96
  result["maxlength"] = 1;
108
97
  }
109
-
110
98
  result["placeholder"] = ModelAttributeFormControl.computePlaceholder(result);
111
99
  return result;
112
100
  });
113
-
114
101
  _defineProperty(this, "onChange", event => {
115
102
  var value;
116
-
117
103
  if (event && event.target) {
118
104
  value = event.target.value;
119
105
  } else {
120
106
  value = event;
121
107
  }
122
-
123
108
  var {
124
109
  onChange
125
110
  } = this.props;
@@ -128,60 +113,49 @@ export class ModelAttributeFormControl extends Component {
128
113
  });
129
114
  onChange && onChange(value);
130
115
  });
131
-
132
116
  _defineProperty(this, "handleDateChange", (date, dateString) => {
133
117
  this.onChange(dateString || undefined);
134
118
  });
135
-
136
119
  _defineProperty(this, "validateJson", err => {
137
120
  var _this$props$jsonValid, _this$props;
138
-
139
121
  var error = some(err, ["type", "error"]);
140
122
  (_this$props$jsonValid = (_this$props = this.props).jsonValidateCollection) === null || _this$props$jsonValid === void 0 ? void 0 : _this$props$jsonValid.call(_this$props, error);
141
123
  this.setState({
142
124
  showError: error
143
125
  });
144
126
  });
145
-
146
127
  _defineProperty(this, "FormControlTypeMap", () => {
147
128
  var _attribute$value, _attribute$value2;
148
-
149
129
  var {
150
130
  attribute
151
131
  } = this.props;
152
-
153
132
  var _this$state = this.state,
154
- {
155
- value,
156
- formControl: {
157
- type
158
- },
159
- errorMessage
160
- } = _this$state,
161
- restProps = _objectWithoutProperties(_this$state.formControl, _excluded); // const unsupportText = `"${type}"类型暂时不支持编辑`;
133
+ {
134
+ value,
135
+ formControl: {
136
+ type
137
+ },
138
+ errorMessage
139
+ } = _this$state,
140
+ restProps = _objectWithoutProperties(_this$state.formControl, _excluded);
141
+ // const unsupportText = `"${type}"类型暂时不支持编辑`;
162
142
  // const unsupportText = i18n.t(
163
143
  // `${NS_LIBS_CMDB_INSTANCES}:${K.TYPE_NO_SUPPORT_EDIT}`,
164
144
  // { type }
165
145
  // );
166
-
167
-
168
146
  var jsonSchema;
169
-
170
147
  if ((attribute === null || attribute === void 0 ? void 0 : (_attribute$value = attribute.value) === null || _attribute$value === void 0 ? void 0 : _attribute$value.type) === "json" && attribute !== null && attribute !== void 0 && (_attribute$value2 = attribute.value) !== null && _attribute$value2 !== void 0 && _attribute$value2.regex) {
171
148
  var _attribute$value3;
172
-
173
149
  jsonSchema = JSON.parse(attribute === null || attribute === void 0 ? void 0 : (_attribute$value3 = attribute.value) === null || _attribute$value3 === void 0 ? void 0 : _attribute$value3.regex);
174
150
  }
175
-
176
151
  switch (type) {
177
152
  case FormControlTypeEnum.TEXT:
178
153
  {
179
154
  var {
180
- pattern,
181
- placeholder
182
- } = restProps,
183
- props = _objectWithoutProperties(restProps, _excluded2);
184
-
155
+ pattern,
156
+ placeholder
157
+ } = restProps,
158
+ props = _objectWithoutProperties(restProps, _excluded2);
185
159
  return /*#__PURE__*/React.createElement(Input, _extends({
186
160
  value: value,
187
161
  type: "text"
@@ -192,7 +166,6 @@ export class ModelAttributeFormControl extends Component {
192
166
  style: this.props.style
193
167
  }));
194
168
  }
195
-
196
169
  case FormControlTypeEnum.URL:
197
170
  {
198
171
  var {
@@ -208,14 +181,12 @@ export class ModelAttributeFormControl extends Component {
208
181
  onChange: e => this.onChange(e)
209
182
  });
210
183
  }
211
-
212
184
  case FormControlTypeEnum.NUMBER:
213
185
  {
214
186
  var {
215
- pattern: _pattern
216
- } = restProps,
217
- props = _objectWithoutProperties(restProps, _excluded3);
218
-
187
+ pattern: _pattern
188
+ } = restProps,
189
+ props = _objectWithoutProperties(restProps, _excluded3);
219
190
  return /*#__PURE__*/React.createElement(InputNumber, _extends({
220
191
  value: value
221
192
  }, props, {
@@ -224,7 +195,6 @@ export class ModelAttributeFormControl extends Component {
224
195
  style: this.props.style
225
196
  }));
226
197
  }
227
-
228
198
  case FormControlTypeEnum.CODE_EDITOR:
229
199
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(CodeEditor, _extends({
230
200
  value: value,
@@ -247,7 +217,6 @@ export class ModelAttributeFormControl extends Component {
247
217
  color: "#fc5043"
248
218
  }
249
219
  }, i18n.t("".concat(NS_LIBS_CMDB_INSTANCES, ":").concat(K.NOT_MEET_JSON))));
250
-
251
220
  case FormControlTypeEnum.TEXTAREA:
252
221
  case FormControlTypeEnum.MARKDOWN:
253
222
  {
@@ -260,7 +229,6 @@ export class ModelAttributeFormControl extends Component {
260
229
  rows: 5
261
230
  }));
262
231
  }
263
-
264
232
  case FormControlTypeEnum.STRUCT:
265
233
  case FormControlTypeEnum.LEGACY_STRUCT:
266
234
  return /*#__PURE__*/React.createElement(AddStruct, {
@@ -272,25 +240,23 @@ export class ModelAttributeFormControl extends Component {
272
240
  style: this.props.style,
273
241
  isCreate: this.props.isCreate
274
242
  });
275
-
276
243
  case FormControlTypeEnum.RADIO:
277
244
  {
278
245
  var {
279
246
  items,
280
247
  required: _required,
281
248
  readOnly: _readOnly
282
- } = restProps; // NODE: 对非必填单选为空的特殊处理 BY @robertman
249
+ } = restProps;
283
250
 
251
+ // NODE: 对非必填单选为空的特殊处理 BY @robertman
284
252
  var unselected = {
285
253
  id: null,
286
254
  // text: "暂不选择",
287
255
  text: i18n.t("".concat(NS_LIBS_CMDB_INSTANCES, ":").concat(K.TEMPORARILY_NOT_CHOOSE))
288
256
  };
289
-
290
257
  if (!_required) {
291
258
  items = [...items, unselected];
292
259
  }
293
-
294
260
  return /*#__PURE__*/React.createElement(Radio.Group, {
295
261
  onChange: e => this.onChange(e),
296
262
  value: value !== undefined ? value : unselected.id,
@@ -302,7 +268,6 @@ export class ModelAttributeFormControl extends Component {
302
268
  key: String(item.id)
303
269
  }, item.text)));
304
270
  }
305
-
306
271
  case FormControlTypeEnum.TAGS:
307
272
  {
308
273
  var {
@@ -322,18 +287,15 @@ export class ModelAttributeFormControl extends Component {
322
287
  className: this.props.className
323
288
  });
324
289
  }
325
-
326
290
  case FormControlTypeEnum.DATE:
327
291
  case FormControlTypeEnum.DATETIME:
328
292
  {
329
293
  var dateConfig = {};
330
-
331
294
  if (type === FormControlTypeEnum.DATETIME) {
332
295
  dateConfig = {
333
296
  showTime: true
334
297
  };
335
298
  }
336
-
337
299
  var {
338
300
  readOnly: _readOnly3,
339
301
  placeholder: _placeholder3
@@ -350,7 +312,6 @@ export class ModelAttributeFormControl extends Component {
350
312
  style: this.props.style
351
313
  }));
352
314
  }
353
-
354
315
  case FormControlTypeEnum.SELECT:
355
316
  {
356
317
  var {
@@ -377,7 +338,6 @@ export class ModelAttributeFormControl extends Component {
377
338
  }, text);
378
339
  }));
379
340
  }
380
-
381
341
  default:
382
342
  return (
383
343
  /*#__PURE__*/
@@ -396,7 +356,6 @@ export class ModelAttributeFormControl extends Component {
396
356
  );
397
357
  }
398
358
  });
399
-
400
359
  var {
401
360
  attribute: _attribute,
402
361
  id: _id,
@@ -405,7 +364,6 @@ export class ModelAttributeFormControl extends Component {
405
364
  objectId
406
365
  } = _props;
407
366
  var is = objectId;
408
-
409
367
  try {
410
368
  this.state = {
411
369
  value: _value,
@@ -423,24 +381,20 @@ export class ModelAttributeFormControl extends Component {
423
381
  };
424
382
  }
425
383
  }
426
-
427
384
  static computePattern(attribute) {
428
385
  try {
429
386
  if (attribute.value.type !== ModelAttributeValueType.ENUM && attribute.value.type !== ModelAttributeValueType.ENUMS && attribute.value.regex !== undefined && attribute.value.regex !== null) {
430
387
  // todo(jhuang): use `u` flag for compliance until https://github.com/angular/angular/pull/20819 is resolved
431
388
  return new RegExp(attribute.value.regex, "u");
432
389
  }
433
-
434
390
  return undefined;
435
391
  } catch (error) {
436
392
  return undefined;
437
393
  }
438
394
  }
439
-
440
395
  computeFormControlItems(attribute, isClusterType) {
441
396
  if (attribute.value.type === ModelAttributeValueType.ENUM || attribute.value.type === ModelAttributeValueType.ENUMS) {
442
397
  var _attribute$value$rege;
443
-
444
398
  // The backend guys are notorious to use `regex` as enum candidates. 😢
445
399
  return (_attribute$value$rege = attribute.value.regex) === null || _attribute$value$rege === void 0 ? void 0 : _attribute$value$rege.map(enumValue => ({
446
400
  id: enumValue,
@@ -448,7 +402,6 @@ export class ModelAttributeFormControl extends Component {
448
402
  }));
449
403
  }
450
404
  }
451
-
452
405
  static computeFormControlType(attribute, type, isSupportMultiStringValue) {
453
406
  switch (attribute.value.type) {
454
407
  case ModelAttributeValueType.STRING:
@@ -456,134 +409,108 @@ export class ModelAttributeFormControl extends Component {
456
409
  if (attribute.value.mode === ModelAttributeValueModeType.MULTIPLE_LINES) {
457
410
  return FormControlTypeEnum.TEXTAREA;
458
411
  }
459
-
460
412
  if (attribute.value.mode === ModelAttributeValueModeType.MARKDOWN) {
461
413
  return FormControlTypeEnum.MARKDOWN;
462
414
  }
463
-
464
415
  if (attribute.value.mode === ModelAttributeValueModeType.URL) {
465
416
  return FormControlTypeEnum.URL;
466
417
  }
467
418
  }
468
-
469
419
  /* falls through */
470
-
471
420
  case ModelAttributeValueType.IP:
472
421
  if (isSupportMultiStringValue) {
473
422
  return FormControlTypeEnum.TAGS;
474
423
  }
475
-
476
424
  return FormControlTypeEnum.TEXT;
477
-
478
425
  case ModelAttributeValueType.JSON:
479
426
  // return FormControlTypeEnum.TEXTAREA;
480
427
  return FormControlTypeEnum.CODE_EDITOR;
481
-
482
428
  case ModelAttributeValueType.ENUM:
483
429
  if (!attribute.value.regex || attribute.value.regex.length === 0) {
484
- throw new Error( // "请在资源模型管理中添加枚举值, 属性: " + attribute.name
430
+ throw new Error(
431
+ // "请在资源模型管理中添加枚举值, 属性: " + attribute.name
485
432
  i18n.t("".concat(NS_LIBS_CMDB_INSTANCES, ":").concat(K.ENUM_ERROR_TIP), {
486
433
  attribute: attribute.name
487
434
  }));
488
435
  }
489
-
490
436
  if (attribute.value.regex && attribute.value.regex.length <= 5 && (!type || type === FormControlTypeEnum.RADIO)) {
491
437
  return FormControlTypeEnum.RADIO;
492
438
  }
493
-
494
439
  return FormControlTypeEnum.SELECT;
495
-
496
440
  case ModelAttributeValueType.INTEGER:
497
441
  case ModelAttributeValueType.FLOAT:
498
442
  return FormControlTypeEnum.NUMBER;
499
-
500
443
  case ModelAttributeValueType.DATE:
501
444
  return FormControlTypeEnum.DATE;
502
-
503
445
  case ModelAttributeValueType.DATETIME:
504
446
  return FormControlTypeEnum.DATETIME;
505
-
506
447
  case ModelAttributeValueType.ARR:
507
448
  return FormControlTypeEnum.TAGS;
508
-
509
449
  case ModelAttributeValueType.STRUCT:
510
450
  if (attribute.value.struct_define.length === 0) {
511
- throw new Error( // "请在资源模型中添加结构体属性, 属性: " + attribute.name
451
+ throw new Error(
452
+ // "请在资源模型中添加结构体属性, 属性: " + attribute.name
512
453
  i18n.t("".concat(NS_LIBS_CMDB_INSTANCES, ":").concat(K.STRUCT_ERROR_TIP), {
513
454
  attribute: attribute.name
514
455
  }));
515
456
  }
516
-
517
457
  return FormControlTypeEnum.LEGACY_STRUCT;
518
-
519
458
  case ModelAttributeValueType.STRUCT_LIST:
520
459
  if (attribute.value.struct_define.length === 0) {
521
- throw new Error( // "请在资源模型中添加结构体属性, 属性: " + attribute.name
460
+ throw new Error(
461
+ // "请在资源模型中添加结构体属性, 属性: " + attribute.name
522
462
  i18n.t("".concat(NS_LIBS_CMDB_INSTANCES, ":").concat(K.STRUCT_ERROR_TIP), {
523
463
  attribute: attribute.name
524
464
  }));
525
465
  }
526
-
527
466
  return FormControlTypeEnum.STRUCT;
528
-
529
467
  case ModelAttributeValueType.BOOLEAN:
530
468
  return FormControlTypeEnum.SELECT;
531
-
532
469
  case ModelAttributeValueType.ENUMS:
533
470
  return FormControlTypeEnum.SELECT;
534
-
535
471
  default:
536
472
  throw new Error(i18n.t("".concat(NS_LIBS_CMDB_INSTANCES, ":").concat(K.TYPE_NO_SUPPORT_EDIT), {
537
473
  type: attribute.value.type
538
474
  }));
539
475
  }
540
476
  }
541
-
542
477
  static computePlaceholder(formControl) {
543
478
  if (formControl.id === "ip" && formControl.name === "ip") {
544
479
  return i18n.t("".concat(NS_LIBS_CMDB_INSTANCES, ":").concat(K.IP_PLACEHOLDER));
545
480
  }
546
-
547
481
  var placeholders = [];
548
-
549
482
  switch (formControl.type) {
550
483
  case FormControlTypeEnum.SELECT:
551
484
  placeholders.push(i18n.t("".concat(NS_LIBS_CMDB_INSTANCES, ":").concat(K.CLICK_TO_SELECT)));
552
485
  break;
553
-
554
486
  case FormControlTypeEnum.DATETIME:
555
487
  case FormControlTypeEnum.DATE:
556
488
  placeholders.push(i18n.t("".concat(NS_LIBS_CMDB_INSTANCES, ":").concat(K.CLICK_TO_SELECT)));
557
489
  break;
558
-
559
490
  case FormControlTypeEnum.TAGS:
560
491
  placeholders.push(i18n.t("".concat(NS_LIBS_CMDB_INSTANCES, ":").concat(K.ENTER_MULTIPLE_STRING_WITH_ENTER_KEY_AS_THE_SEPARATOR)));
561
492
  break;
562
-
563
493
  case FormControlTypeEnum.NUMBER:
564
494
  placeholders.push(i18n.t("".concat(NS_LIBS_CMDB_INSTANCES, ":").concat(K.NUMBER_INPUT_PLACEHOLDER)));
565
495
  break;
566
-
567
496
  default:
568
497
  placeholders.push(i18n.t("".concat(NS_LIBS_CMDB_INSTANCES, ":").concat(K.ADVANCE_SEARCH_SINGLE_INPUT_PLACEHOLDER)));
569
498
  }
570
-
571
499
  if (formControl.pattern !== undefined) {
572
500
  // placeholders.push(`匹配正则 ${formControl.pattern}`);
573
501
  placeholders.push(i18n.t("".concat(NS_LIBS_CMDB_INSTANCES, ":").concat(K.MATCHING_REGULAR), {
574
502
  regexp: formControl.pattern
575
503
  }));
576
504
  }
577
-
578
505
  if (formControl.unique) {
579
506
  // placeholders.push(`${formControl.label}唯一不能重复`);
580
507
  placeholders.push(i18n.t("".concat(NS_LIBS_CMDB_INSTANCES, ":").concat(K.UNIQUE_NO_REPEAT), {
581
508
  label: formControl.label
582
509
  }));
583
510
  }
584
-
585
511
  return placeholders.join(",");
586
512
  }
513
+
587
514
  /*computeFormControlAndCatchError = () => {
588
515
  const { attribute, objectId } = this.props;
589
516
  try {
@@ -602,10 +529,8 @@ export class ModelAttributeFormControl extends Component {
602
529
  }
603
530
  };*/
604
531
 
605
-
606
532
  render() {
607
533
  return /*#__PURE__*/React.createElement(React.Fragment, null, this.FormControlTypeMap());
608
534
  }
609
-
610
535
  }
611
536
  //# sourceMappingURL=ModelAttributeFormControl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModelAttributeFormControl.js","names":["React","Component","i18n","NS_LIBS_CMDB_INSTANCES","K","DatePicker","Input","InputNumber","Radio","Select","AddStruct","AttributeFormControlUrl","computeDateFormat","clusterMap","CodeEditor","some","ModelAttributeValueType","ModelAttributeValueModeType","FormControlTypeEnum","boolOptions","id","text","ModelAttributeFormControl","componentDidUpdate","prevProps","prevState","snapshot","props","value","type","attribute","name","setState","formControl","computeFormControl","objectId","constructor","isClusterType","formControlType","computeFormControlType","isSupportMultiStringValue","items","computeFormControlItems","BOOLEAN","result","label","required","readOnly","isCreate","readonly","unique","pattern","computePattern","STRUCT","computePlaceholder","event","target","onChange","date","dateString","undefined","err","error","jsonValidateCollection","showError","state","errorMessage","restProps","jsonSchema","regex","JSON","parse","TEXT","placeholder","e","className","style","URL","NUMBER","CODE_EDITOR","validateJson","display","color","t","NOT_MEET_JSON","TEXTAREA","MARKDOWN","LEGACY_STRUCT","formData","RADIO","unselected","TEMPORARILY_NOT_CHOOSE","map","item","String","TAGS","width","DATE","DATETIME","dateConfig","showTime","formater","format","handleDateChange","SELECT","newValue","multiSelect","is","message","_PLAIN_TEXT","ENUM","ENUMS","RegExp","enumValue","STRING","mode","MULTIPLE_LINES","IP","length","Error","ENUM_ERROR_TIP","INTEGER","FLOAT","ARR","struct_define","STRUCT_ERROR_TIP","STRUCT_LIST","TYPE_NO_SUPPORT_EDIT","IP_PLACEHOLDER","placeholders","push","CLICK_TO_SELECT","ENTER_MULTIPLE_STRING_WITH_ENTER_KEY_AS_THE_SEPARATOR","NUMBER_INPUT_PLACEHOLDER","ADVANCE_SEARCH_SINGLE_INPUT_PLACEHOLDER","MATCHING_REGULAR","regexp","UNIQUE_NO_REPEAT","join","render","FormControlTypeMap"],"sources":["../../../src/model-attribute-form-control/ModelAttributeFormControl.tsx"],"sourcesContent":["import React, { Component, ReactNode } from \"react\";\nimport { CmdbModels } from \"@next-sdk/cmdb-sdk\";\nimport i18n from \"i18next\";\nimport { NS_LIBS_CMDB_INSTANCES, K } from \"../i18n/constants\";\nimport { DatePicker, Input, InputNumber, Radio, Select } from \"antd\";\nimport { AddStruct } from \"../struct-components\";\nimport moment, { Moment } from \"moment\";\nimport { AttributeFormControlUrl } from \"../attribute-form-control-url/AttributeFormControlUrl\";\nimport { computeDateFormat } from \"../processors\";\nimport { clusterMap } from \"../instance-list-table/constants\";\nimport { CodeEditor } from \"@next-libs/code-editor-components\";\nimport { some } from \"lodash\";\nexport interface FormControlSelectItem {\n id: any;\n text: string;\n}\n\nexport enum ModelAttributeValueType {\n STRING = \"str\",\n INTEGER = \"int\",\n ENUM = \"enum\",\n ENUMS = \"enums\",\n ARR = \"arr\",\n DATE = \"date\",\n DATETIME = \"datetime\",\n STRUCT = \"struct\",\n STRUCT_LIST = \"structs\",\n FOREIGN_KEY = \"FK\",\n FOREIGN_KEYS = \"FKs\",\n IP = \"ip\",\n FLOAT = \"float\",\n BOOLEAN = \"bool\",\n JSON = \"json\",\n}\n\nexport enum ModelAttributeValueModeType {\n MULTIPLE_LINES = \"multiple-lines\",\n DEFAULT = \"default\",\n MARKDOWN = \"markdown\",\n URL = \"url\",\n}\n\nexport enum FormControlTypeEnum {\n TEXT = \"text\",\n NUMBER = \"number\",\n SELECT = \"select\",\n RADIO = \"radio\",\n TEXTAREA = \"textarea\",\n DATE = \"date\",\n DATETIME = \"datetime\",\n TAGS = \"tags\",\n STRUCT = \"struct\",\n /**\n * @deprecated supported for compatibility only\n * @type {string}\n */\n LEGACY_STRUCT = \"legacy-struct\",\n // fallback to show a plain text span\n _PLAIN_TEXT = \"_plain_text\",\n MARKDOWN = \"markdown\",\n URL = \"url\",\n CODE_EDITOR = \"code_editor\",\n}\n\nexport interface FormControl {\n id: string;\n type: FormControlTypeEnum;\n items?: FormControlSelectItem[];\n name: string;\n label?: string;\n required?: boolean;\n readOnly?: boolean;\n unique?: boolean;\n pattern?: RegExp;\n placeholder?: string;\n maxlength?: number; // 结构体数组的最大长度,如果是结构体,就是1,\n}\n\nexport interface ModelAttributeFormControlProps {\n // ant-design initialValue\n id?: string;\n value?: any;\n isCreate?: boolean;\n onChange?: (value: any) => void;\n attribute: Partial<CmdbModels.ModelObjectAttr>;\n type?: string;\n multiSelect?: boolean;\n className?: string;\n style?: React.CSSProperties;\n objectId?: string;\n jsonValidateCollection?: (err: boolean) => void;\n isSupportMultiStringValue?: boolean;\n}\n\nexport interface ModelAttributeFormControlState {\n value?: any;\n formControl: FormControl;\n errorMessage: string;\n showError?: boolean;\n}\n\nexport const boolOptions: FormControlSelectItem[] = [\n {\n id: true,\n text: \"true\",\n },\n {\n id: false,\n text: \"false\",\n },\n];\n\nexport class ModelAttributeFormControl extends Component<\n ModelAttributeFormControlProps,\n ModelAttributeFormControlState\n> {\n componentDidUpdate(\n prevProps: Readonly<ModelAttributeFormControlProps>,\n prevState: Readonly<ModelAttributeFormControlState>,\n snapshot?: any\n ): void {\n if (\n this.props.value !== prevProps.value ||\n this.props.type !== prevProps.type ||\n this.props.attribute.id !== prevProps.attribute.id ||\n this.props.attribute.name !== prevProps.attribute.name ||\n this.props.attribute.value.type !== prevProps.attribute.value.type\n ) {\n this.setState({\n value: this.props.value,\n formControl: this.computeFormControl(\n this.props.attribute,\n this.props.id,\n this.props.type,\n this.props.objectId === \"CLUSTER\" &&\n this.props.attribute.id === \"type\"\n ),\n });\n }\n }\n\n constructor(props: ModelAttributeFormControlProps) {\n super(props);\n const { attribute, id, value, type, objectId } = props;\n const is = objectId;\n try {\n this.state = {\n value,\n errorMessage: null,\n formControl: this.computeFormControl(\n attribute,\n id,\n type,\n this.props.objectId === \"CLUSTER\" &&\n this.props.attribute.id === \"type\"\n ),\n };\n } catch (error) {\n this.state = {\n errorMessage: error.message,\n formControl: {\n type: FormControlTypeEnum._PLAIN_TEXT,\n name: attribute.name,\n id: \"\",\n },\n };\n }\n }\n\n static computePattern(\n attribute: Partial<CmdbModels.ModelObjectAttr>\n ): RegExp | undefined {\n try {\n if (\n attribute.value.type !== ModelAttributeValueType.ENUM &&\n attribute.value.type !== ModelAttributeValueType.ENUMS &&\n attribute.value.regex !== undefined &&\n attribute.value.regex !== null\n ) {\n // todo(jhuang): use `u` flag for compliance until https://github.com/angular/angular/pull/20819 is resolved\n return new RegExp(attribute.value.regex as string, \"u\");\n }\n return undefined;\n } catch (error) {\n return undefined;\n }\n }\n\n computeFormControlItems(\n attribute: Partial<CmdbModels.ModelObjectAttr>,\n isClusterType?: boolean\n ): FormControlSelectItem[] {\n if (\n attribute.value.type === ModelAttributeValueType.ENUM ||\n attribute.value.type === ModelAttributeValueType.ENUMS\n ) {\n // The backend guys are notorious to use `regex` as enum candidates. 😢\n return (attribute.value.regex as string[])?.map((enumValue) => ({\n id: enumValue,\n text: isClusterType ? clusterMap[enumValue] : enumValue,\n }));\n }\n }\n\n static computeFormControlType(\n attribute: Partial<CmdbModels.ModelObjectAttr>,\n type?: string,\n isSupportMultiStringValue?: boolean\n ): FormControlTypeEnum {\n switch (attribute.value.type) {\n case ModelAttributeValueType.STRING: {\n if (\n attribute.value.mode === ModelAttributeValueModeType.MULTIPLE_LINES\n ) {\n return FormControlTypeEnum.TEXTAREA;\n }\n if (attribute.value.mode === ModelAttributeValueModeType.MARKDOWN) {\n return FormControlTypeEnum.MARKDOWN;\n }\n if (attribute.value.mode === ModelAttributeValueModeType.URL) {\n return FormControlTypeEnum.URL;\n }\n }\n /* falls through */\n case ModelAttributeValueType.IP:\n if (isSupportMultiStringValue) {\n return FormControlTypeEnum.TAGS;\n }\n return FormControlTypeEnum.TEXT;\n case ModelAttributeValueType.JSON:\n // return FormControlTypeEnum.TEXTAREA;\n return FormControlTypeEnum.CODE_EDITOR;\n case ModelAttributeValueType.ENUM:\n if (\n !attribute.value.regex ||\n (attribute.value.regex as string[]).length === 0\n ) {\n throw new Error(\n // \"请在资源模型管理中添加枚举值, 属性: \" + attribute.name\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.ENUM_ERROR_TIP}`, {\n attribute: attribute.name,\n })\n );\n }\n if (\n attribute.value.regex &&\n (attribute.value.regex as string[]).length <= 5 &&\n (!type || type === FormControlTypeEnum.RADIO)\n ) {\n return FormControlTypeEnum.RADIO;\n }\n return FormControlTypeEnum.SELECT;\n case ModelAttributeValueType.INTEGER:\n case ModelAttributeValueType.FLOAT:\n return FormControlTypeEnum.NUMBER;\n case ModelAttributeValueType.DATE:\n return FormControlTypeEnum.DATE;\n case ModelAttributeValueType.DATETIME:\n return FormControlTypeEnum.DATETIME;\n case ModelAttributeValueType.ARR:\n return FormControlTypeEnum.TAGS;\n case ModelAttributeValueType.STRUCT:\n if (attribute.value.struct_define.length === 0) {\n throw new Error(\n // \"请在资源模型中添加结构体属性, 属性: \" + attribute.name\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.STRUCT_ERROR_TIP}`, {\n attribute: attribute.name,\n })\n );\n }\n return FormControlTypeEnum.LEGACY_STRUCT;\n case ModelAttributeValueType.STRUCT_LIST:\n if (attribute.value.struct_define.length === 0) {\n throw new Error(\n // \"请在资源模型中添加结构体属性, 属性: \" + attribute.name\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.STRUCT_ERROR_TIP}`, {\n attribute: attribute.name,\n })\n );\n }\n return FormControlTypeEnum.STRUCT;\n case ModelAttributeValueType.BOOLEAN:\n return FormControlTypeEnum.SELECT;\n case ModelAttributeValueType.ENUMS:\n return FormControlTypeEnum.SELECT;\n default:\n throw new Error(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.TYPE_NO_SUPPORT_EDIT}`, {\n type: attribute.value.type,\n })\n );\n }\n }\n\n computeFormControl = (\n attribute: Partial<CmdbModels.ModelObjectAttr>,\n id?: string,\n type?: string,\n isClusterType?: boolean\n ): FormControl => {\n const formControlType = ModelAttributeFormControl.computeFormControlType(\n attribute,\n type,\n this.props.isSupportMultiStringValue\n );\n let items = this.computeFormControlItems(attribute, isClusterType);\n\n if (attribute.value.type === ModelAttributeValueType.BOOLEAN) {\n items = boolOptions;\n }\n\n const result: FormControl = {\n type: formControlType,\n items,\n id: id || attribute.id,\n name: attribute.id,\n label: attribute.name,\n required: attribute.required === \"true\",\n readOnly: !this.props.isCreate && attribute.readonly === \"true\",\n unique: attribute.unique === \"true\",\n pattern: ModelAttributeFormControl.computePattern(attribute),\n };\n\n if (result.type === FormControlTypeEnum.STRUCT) {\n result[\"maxlength\"] = 1;\n }\n result[\"placeholder\"] =\n ModelAttributeFormControl.computePlaceholder(result);\n return result;\n };\n\n static computePlaceholder(formControl: FormControl): string {\n if (formControl.id === \"ip\" && formControl.name === \"ip\") {\n return i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.IP_PLACEHOLDER}`);\n }\n\n const placeholders = [];\n switch (formControl.type) {\n case FormControlTypeEnum.SELECT:\n placeholders.push(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLICK_TO_SELECT}`)\n );\n break;\n case FormControlTypeEnum.DATETIME:\n case FormControlTypeEnum.DATE:\n placeholders.push(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLICK_TO_SELECT}`)\n );\n break;\n case FormControlTypeEnum.TAGS:\n placeholders.push(\n i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ENTER_MULTIPLE_STRING_WITH_ENTER_KEY_AS_THE_SEPARATOR}`\n )\n );\n break;\n case FormControlTypeEnum.NUMBER:\n placeholders.push(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.NUMBER_INPUT_PLACEHOLDER}`)\n );\n break;\n default:\n placeholders.push(\n i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ADVANCE_SEARCH_SINGLE_INPUT_PLACEHOLDER}`\n )\n );\n }\n\n if (formControl.pattern !== undefined) {\n // placeholders.push(`匹配正则 ${formControl.pattern}`);\n placeholders.push(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.MATCHING_REGULAR}`, {\n regexp: formControl.pattern,\n })\n );\n }\n if (formControl.unique) {\n // placeholders.push(`${formControl.label}唯一不能重复`);\n placeholders.push(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.UNIQUE_NO_REPEAT}`, {\n label: formControl.label,\n })\n );\n }\n return placeholders.join(\",\");\n }\n\n /*computeFormControlAndCatchError = () => {\n const { attribute, objectId } = this.props;\n try {\n this.setState({\n formControl: this.computeFormControl(attribute, objectId)\n });\n } catch (error) {\n this.setState({\n errorMessage: error.message,\n formControl: {\n type: FormControlTypeEnum._PLAIN_TEXT,\n name: attribute.name,\n id: \"\"\n }\n });\n }\n };*/\n\n onChange = (event: any) => {\n let value;\n if (event && event.target) {\n value = event.target.value;\n } else {\n value = event;\n }\n\n const { onChange } = this.props;\n this.setState({ value });\n onChange && onChange(value);\n };\n\n handleDateChange = (date: Moment, dateString: string) => {\n this.onChange(dateString || undefined);\n };\n validateJson = (err: any) => {\n const error = some(err, [\"type\", \"error\"]);\n this.props.jsonValidateCollection?.(error);\n this.setState({ showError: error });\n };\n\n FormControlTypeMap = (): ReactNode => {\n const { attribute } = this.props;\n const {\n value,\n formControl: { type, ...restProps },\n errorMessage,\n } = this.state;\n // const unsupportText = `\"${type}\"类型暂时不支持编辑`;\n // const unsupportText = i18n.t(\n // `${NS_LIBS_CMDB_INSTANCES}:${K.TYPE_NO_SUPPORT_EDIT}`,\n // { type }\n // );\n let jsonSchema: any;\n if (attribute?.value?.type === \"json\" && attribute?.value?.regex) {\n jsonSchema = JSON.parse(attribute?.value?.regex);\n }\n\n switch (type) {\n case FormControlTypeEnum.TEXT: {\n const { pattern, placeholder, ...props } = restProps;\n return (\n <Input\n value={value}\n type=\"text\"\n {...props}\n placeholder={placeholder}\n onChange={(e) => this.onChange(e)}\n className={this.props.className}\n style={this.props.style}\n />\n );\n }\n\n case FormControlTypeEnum.URL: {\n const { readOnly, required, placeholder } = restProps;\n\n return (\n <AttributeFormControlUrl\n readOnly={readOnly}\n required={required}\n placeholder={placeholder}\n value={value}\n onChange={(e) => this.onChange(e)}\n />\n );\n }\n\n case FormControlTypeEnum.NUMBER: {\n const { pattern, ...props } = restProps;\n return (\n <InputNumber\n value={value}\n {...props}\n onChange={(e: any) => this.onChange(e)}\n className={this.props.className}\n style={this.props.style}\n />\n );\n }\n case FormControlTypeEnum.CODE_EDITOR:\n return (\n <>\n <CodeEditor\n value={value}\n mode={\"json\"}\n maxLines={\"Infinity\"}\n highlightActiveLine={true}\n onChange={(e: any) => this.onChange(e)}\n minLines={3}\n showLineNumbers={true}\n showPrintMargin={false}\n validateJsonSchemaMode={\"error\"}\n {...(jsonSchema ? { jsonSchema: jsonSchema } : {})}\n theme=\"tomorrow\"\n onValidate={(err: any) => this.validateJson(err)}\n />\n <label\n style={{\n display: this.state.showError ? \"block\" : \"none\",\n color: \"#fc5043\",\n }}\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.NOT_MEET_JSON}`)}\n </label>\n </>\n );\n case FormControlTypeEnum.TEXTAREA:\n case FormControlTypeEnum.MARKDOWN: {\n return (\n <Input.TextArea\n value={value}\n {...restProps}\n onChange={(e: any) => this.onChange(e)}\n className={this.props.className}\n style={this.props.style}\n rows={5}\n />\n );\n }\n\n case FormControlTypeEnum.STRUCT:\n case FormControlTypeEnum.LEGACY_STRUCT:\n return (\n <AddStruct\n isLegacy={type === FormControlTypeEnum.LEGACY_STRUCT}\n attribute={attribute}\n structData={value}\n handleStoreFunction={(formData: any) => this.onChange(formData)}\n className={this.props.className}\n style={this.props.style}\n isCreate={this.props.isCreate}\n />\n );\n\n case FormControlTypeEnum.RADIO: {\n let { items, required, readOnly } = restProps;\n\n // NODE: 对非必填单选为空的特殊处理 BY @robertman\n const unselected = {\n id: null as string,\n // text: \"暂不选择\",\n text: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.TEMPORARILY_NOT_CHOOSE}`),\n };\n\n if (!required) {\n items = [...items, unselected];\n }\n\n return (\n <Radio.Group\n onChange={(e: any) => this.onChange(e)}\n value={value !== undefined ? value : unselected.id}\n className={this.props.className}\n style={this.props.style}\n disabled={readOnly}\n >\n {items.map((item) => (\n <Radio value={item.id} key={String(item.id)}>\n {item.text}\n </Radio>\n ))}\n </Radio.Group>\n );\n }\n\n case FormControlTypeEnum.TAGS: {\n const { placeholder, readOnly } = restProps;\n return (\n <Select\n allowClear={true}\n mode=\"tags\"\n style={{ ...this.props.style, width: \"100%\" }}\n disabled={readOnly}\n placeholder={placeholder}\n value={value || []}\n onChange={(e: any) => this.onChange(e)}\n className={this.props.className}\n />\n );\n }\n\n case FormControlTypeEnum.DATE:\n case FormControlTypeEnum.DATETIME: {\n let dateConfig = {};\n if (type === FormControlTypeEnum.DATETIME) {\n dateConfig = {\n showTime: true,\n };\n }\n const { readOnly, placeholder } = restProps;\n const formater = computeDateFormat(type, value);\n return (\n <DatePicker\n value={formater.value}\n placeholder={placeholder}\n disabled={readOnly}\n format={formater.format}\n {...dateConfig}\n onChange={(date, dateString) =>\n this.handleDateChange(date, dateString)\n }\n className={this.props.className}\n style={this.props.style}\n />\n );\n }\n\n case FormControlTypeEnum.SELECT: {\n const { readOnly, placeholder } = restProps;\n const newValue =\n typeof value === \"boolean\" ? value : value ? value : [];\n return (\n <Select\n placeholder={placeholder}\n mode={this.props.multiSelect ? \"multiple\" : undefined}\n value={newValue}\n onChange={(e: any) => this.onChange(e)}\n disabled={readOnly}\n className={this.props.className}\n style={this.props.style}\n >\n {restProps.items &&\n restProps.items.map(({ id, text }) => (\n <Select.Option value={id} key={id}>\n {text}\n </Select.Option>\n ))}\n </Select>\n );\n }\n\n default:\n return (\n // <Input\n // value={errorMessage}\n // readOnly\n // disabled\n // className={this.props.className}\n // style={this.props.style}\n // />\n <div\n style={{\n color: \"var(--theme-red-color)\",\n ...this.props.style,\n }}\n >\n {errorMessage}\n </div>\n );\n }\n };\n\n render(): ReactNode {\n return <>{this.FormControlTypeMap()}</>;\n }\n}\n"],"mappings":";;;;;;;AAAA,OAAOA,KAAP,IAAgBC,SAAhB,QAA4C,OAA5C;AAEA,OAAOC,IAAP,MAAiB,SAAjB;AACA,SAASC,sBAAT,EAAiCC,CAAjC,QAA0C,mBAA1C;AACA,SAASC,UAAT,EAAqBC,KAArB,EAA4BC,WAA5B,EAAyCC,KAAzC,EAAgDC,MAAhD,QAA8D,MAA9D;AACA,SAASC,SAAT,QAA0B,sBAA1B;AAEA,SAASC,uBAAT,QAAwC,uDAAxC;AACA,SAASC,iBAAT,QAAkC,eAAlC;AACA,SAASC,UAAT,QAA2B,kCAA3B;AACA,SAASC,UAAT,QAA2B,mCAA3B;AACA,SAASC,IAAT,QAAqB,QAArB;AAMA,WAAYC,uBAAZ;;WAAYA,uB;EAAAA,uB;EAAAA,uB;EAAAA,uB;EAAAA,uB;EAAAA,uB;EAAAA,uB;EAAAA,uB;EAAAA,uB;EAAAA,uB;EAAAA,uB;EAAAA,uB;EAAAA,uB;EAAAA,uB;EAAAA,uB;EAAAA,uB;GAAAA,uB,KAAAA,uB;;AAkBZ,WAAYC,2BAAZ;;WAAYA,2B;EAAAA,2B;EAAAA,2B;EAAAA,2B;EAAAA,2B;GAAAA,2B,KAAAA,2B;;AAOZ,WAAYC,mBAAZ;;WAAYA,mB;EAAAA,mB;EAAAA,mB;EAAAA,mB;EAAAA,mB;EAAAA,mB;EAAAA,mB;EAAAA,mB;EAAAA,mB;EAAAA,mB;EAAAA,mB;EAAAA,mB;EAAAA,mB;EAAAA,mB;EAAAA,mB;GAAAA,mB,KAAAA,mB;;AA2DZ,OAAO,IAAMC,WAAoC,GAAG,CAClD;EACEC,EAAE,EAAE,IADN;EAEEC,IAAI,EAAE;AAFR,CADkD,EAKlD;EACED,EAAE,EAAE,KADN;EAEEC,IAAI,EAAE;AAFR,CALkD,CAA7C;AAWP,OAAO,MAAMC,yBAAN,SAAwCrB,SAAxC,CAGL;EACAsB,kBAAkB,CAChBC,SADgB,EAEhBC,SAFgB,EAGhBC,QAHgB,EAIV;IACN,IACE,KAAKC,KAAL,CAAWC,KAAX,KAAqBJ,SAAS,CAACI,KAA/B,IACA,KAAKD,KAAL,CAAWE,IAAX,KAAoBL,SAAS,CAACK,IAD9B,IAEA,KAAKF,KAAL,CAAWG,SAAX,CAAqBV,EAArB,KAA4BI,SAAS,CAACM,SAAV,CAAoBV,EAFhD,IAGA,KAAKO,KAAL,CAAWG,SAAX,CAAqBC,IAArB,KAA8BP,SAAS,CAACM,SAAV,CAAoBC,IAHlD,IAIA,KAAKJ,KAAL,CAAWG,SAAX,CAAqBF,KAArB,CAA2BC,IAA3B,KAAoCL,SAAS,CAACM,SAAV,CAAoBF,KAApB,CAA0BC,IALhE,EAME;MACA,KAAKG,QAAL,CAAc;QACZJ,KAAK,EAAE,KAAKD,KAAL,CAAWC,KADN;QAEZK,WAAW,EAAE,KAAKC,kBAAL,CACX,KAAKP,KAAL,CAAWG,SADA,EAEX,KAAKH,KAAL,CAAWP,EAFA,EAGX,KAAKO,KAAL,CAAWE,IAHA,EAIX,KAAKF,KAAL,CAAWQ,QAAX,KAAwB,SAAxB,IACE,KAAKR,KAAL,CAAWG,SAAX,CAAqBV,EAArB,KAA4B,MALnB;MAFD,CAAd;IAUD;EACF;;EAEDgB,WAAW,CAACT,MAAD,EAAwC;IACjD,MAAMA,MAAN;;IADiD,4CAyJ9B,CACnBG,SADmB,EAEnBV,EAFmB,EAGnBS,IAHmB,EAInBQ,aAJmB,KAKH;MAChB,IAAMC,eAAe,GAAGhB,yBAAyB,CAACiB,sBAA1B,CACtBT,SADsB,EAEtBD,IAFsB,EAGtB,KAAKF,KAAL,CAAWa,yBAHW,CAAxB;MAKA,IAAIC,KAAK,GAAG,KAAKC,uBAAL,CAA6BZ,SAA7B,EAAwCO,aAAxC,CAAZ;;MAEA,IAAIP,SAAS,CAACF,KAAV,CAAgBC,IAAhB,KAAyBb,uBAAuB,CAAC2B,OAArD,EAA8D;QAC5DF,KAAK,GAAGtB,WAAR;MACD;;MAED,IAAMyB,MAAmB,GAAG;QAC1Bf,IAAI,EAAES,eADoB;QAE1BG,KAF0B;QAG1BrB,EAAE,EAAEA,EAAE,IAAIU,SAAS,CAACV,EAHM;QAI1BW,IAAI,EAAED,SAAS,CAACV,EAJU;QAK1ByB,KAAK,EAAEf,SAAS,CAACC,IALS;QAM1Be,QAAQ,EAAEhB,SAAS,CAACgB,QAAV,KAAuB,MANP;QAO1BC,QAAQ,EAAE,CAAC,KAAKpB,KAAL,CAAWqB,QAAZ,IAAwBlB,SAAS,CAACmB,QAAV,KAAuB,MAP/B;QAQ1BC,MAAM,EAAEpB,SAAS,CAACoB,MAAV,KAAqB,MARH;QAS1BC,OAAO,EAAE7B,yBAAyB,CAAC8B,cAA1B,CAAyCtB,SAAzC;MATiB,CAA5B;;MAYA,IAAIc,MAAM,CAACf,IAAP,KAAgBX,mBAAmB,CAACmC,MAAxC,EAAgD;QAC9CT,MAAM,CAAC,WAAD,CAAN,GAAsB,CAAtB;MACD;;MACDA,MAAM,CAAC,aAAD,CAAN,GACEtB,yBAAyB,CAACgC,kBAA1B,CAA6CV,MAA7C,CADF;MAEA,OAAOA,MAAP;IACD,CA5LkD;;IAAA,kCAyQvCW,KAAD,IAAgB;MACzB,IAAI3B,KAAJ;;MACA,IAAI2B,KAAK,IAAIA,KAAK,CAACC,MAAnB,EAA2B;QACzB5B,KAAK,GAAG2B,KAAK,CAACC,MAAN,CAAa5B,KAArB;MACD,CAFD,MAEO;QACLA,KAAK,GAAG2B,KAAR;MACD;;MAED,IAAM;QAAEE;MAAF,IAAe,KAAK9B,KAA1B;MACA,KAAKK,QAAL,CAAc;QAAEJ;MAAF,CAAd;MACA6B,QAAQ,IAAIA,QAAQ,CAAC7B,KAAD,CAApB;IACD,CApRkD;;IAAA,0CAsRhC,CAAC8B,IAAD,EAAeC,UAAf,KAAsC;MACvD,KAAKF,QAAL,CAAcE,UAAU,IAAIC,SAA5B;IACD,CAxRkD;;IAAA,sCAyRnCC,GAAD,IAAc;MAAA;;MAC3B,IAAMC,KAAK,GAAG/C,IAAI,CAAC8C,GAAD,EAAM,CAAC,MAAD,EAAS,OAAT,CAAN,CAAlB;MACA,6CAAKlC,KAAL,EAAWoC,sBAAX,kGAAoCD,KAApC;MACA,KAAK9B,QAAL,CAAc;QAAEgC,SAAS,EAAEF;MAAb,CAAd;IACD,CA7RkD;;IAAA,4CA+R9B,MAAiB;MAAA;;MACpC,IAAM;QAAEhC;MAAF,IAAgB,KAAKH,KAA3B;;MACA,kBAII,KAAKsC,KAJT;MAAA,IAAM;QACJrC,KADI;QAEJK,WAAW,EAAE;UAAEJ;QAAF,CAFT;QAGJqC;MAHI,CAAN;MAAA,IAE0BC,SAF1B,wCAEElC,WAFF,aAFoC,CAOpC;MACA;MACA;MACA;MACA;;;MACA,IAAImC,UAAJ;;MACA,IAAI,CAAAtC,SAAS,SAAT,IAAAA,SAAS,WAAT,gCAAAA,SAAS,CAAEF,KAAX,sEAAkBC,IAAlB,MAA2B,MAA3B,IAAqCC,SAArC,aAAqCA,SAArC,oCAAqCA,SAAS,CAAEF,KAAhD,8CAAqC,kBAAkByC,KAA3D,EAAkE;QAAA;;QAChED,UAAU,GAAGE,IAAI,CAACC,KAAL,CAAWzC,SAAX,aAAWA,SAAX,4CAAWA,SAAS,CAAEF,KAAtB,sDAAW,kBAAkByC,KAA7B,CAAb;MACD;;MAED,QAAQxC,IAAR;QACE,KAAKX,mBAAmB,CAACsD,IAAzB;UAA+B;YAC7B,IAAM;cAAErB,OAAF;cAAWsB;YAAX,IAAqCN,SAA3C;YAAA,IAAiCxC,KAAjC,4BAA2CwC,SAA3C;;YACA,oBACE,oBAAC,KAAD;cACE,KAAK,EAAEvC,KADT;cAEE,IAAI,EAAC;YAFP,GAGMD,KAHN;cAIE,WAAW,EAAE8C,WAJf;cAKE,QAAQ,EAAGC,CAAD,IAAO,KAAKjB,QAAL,CAAciB,CAAd,CALnB;cAME,SAAS,EAAE,KAAK/C,KAAL,CAAWgD,SANxB;cAOE,KAAK,EAAE,KAAKhD,KAAL,CAAWiD;YAPpB,GADF;UAWD;;QAED,KAAK1D,mBAAmB,CAAC2D,GAAzB;UAA8B;YAC5B,IAAM;cAAE9B,QAAF;cAAYD,QAAZ;cAAsB2B,WAAW,EAAXA;YAAtB,IAAsCN,SAA5C;YAEA,oBACE,oBAAC,uBAAD;cACE,QAAQ,EAAEpB,QADZ;cAEE,QAAQ,EAAED,QAFZ;cAGE,WAAW,EAAE2B,YAHf;cAIE,KAAK,EAAE7C,KAJT;cAKE,QAAQ,EAAG8C,CAAD,IAAO,KAAKjB,QAAL,CAAciB,CAAd;YALnB,EADF;UASD;;QAED,KAAKxD,mBAAmB,CAAC4D,MAAzB;UAAiC;YAC/B,IAAM;cAAE3B,OAAO,EAAPA;YAAF,IAAwBgB,SAA9B;YAAA,IAAoBxC,KAApB,4BAA8BwC,SAA9B;;YACA,oBACE,oBAAC,WAAD;cACE,KAAK,EAAEvC;YADT,GAEMD,KAFN;cAGE,QAAQ,EAAG+C,CAAD,IAAY,KAAKjB,QAAL,CAAciB,CAAd,CAHxB;cAIE,SAAS,EAAE,KAAK/C,KAAL,CAAWgD,SAJxB;cAKE,KAAK,EAAE,KAAKhD,KAAL,CAAWiD;YALpB,GADF;UASD;;QACD,KAAK1D,mBAAmB,CAAC6D,WAAzB;UACE,oBACE,uDACE,oBAAC,UAAD;YACE,KAAK,EAAEnD,KADT;YAEE,IAAI,EAAE,MAFR;YAGE,QAAQ,EAAE,UAHZ;YAIE,mBAAmB,EAAE,IAJvB;YAKE,QAAQ,EAAG8C,CAAD,IAAY,KAAKjB,QAAL,CAAciB,CAAd,CALxB;YAME,QAAQ,EAAE,CANZ;YAOE,eAAe,EAAE,IAPnB;YAQE,eAAe,EAAE,KARnB;YASE,sBAAsB,EAAE;UAT1B,GAUON,UAAU,GAAG;YAAEA,UAAU,EAAEA;UAAd,CAAH,GAAgC,EAVjD;YAWE,KAAK,EAAC,UAXR;YAYE,UAAU,EAAGP,GAAD,IAAc,KAAKmB,YAAL,CAAkBnB,GAAlB;UAZ5B,GADF,eAeE;YACE,KAAK,EAAE;cACLoB,OAAO,EAAE,KAAKhB,KAAL,CAAWD,SAAX,GAAuB,OAAvB,GAAiC,MADrC;cAELkB,KAAK,EAAE;YAFF;UADT,GAMGhF,IAAI,CAACiF,CAAL,WAAUhF,sBAAV,cAAoCC,CAAC,CAACgF,aAAtC,EANH,CAfF,CADF;;QA0BF,KAAKlE,mBAAmB,CAACmE,QAAzB;QACA,KAAKnE,mBAAmB,CAACoE,QAAzB;UAAmC;YACjC,oBACE,oBAAC,KAAD,CAAO,QAAP;cACE,KAAK,EAAE1D;YADT,GAEMuC,SAFN;cAGE,QAAQ,EAAGO,CAAD,IAAY,KAAKjB,QAAL,CAAciB,CAAd,CAHxB;cAIE,SAAS,EAAE,KAAK/C,KAAL,CAAWgD,SAJxB;cAKE,KAAK,EAAE,KAAKhD,KAAL,CAAWiD,KALpB;cAME,IAAI,EAAE;YANR,GADF;UAUD;;QAED,KAAK1D,mBAAmB,CAACmC,MAAzB;QACA,KAAKnC,mBAAmB,CAACqE,aAAzB;UACE,oBACE,oBAAC,SAAD;YACE,QAAQ,EAAE1D,IAAI,KAAKX,mBAAmB,CAACqE,aADzC;YAEE,SAAS,EAAEzD,SAFb;YAGE,UAAU,EAAEF,KAHd;YAIE,mBAAmB,EAAG4D,QAAD,IAAmB,KAAK/B,QAAL,CAAc+B,QAAd,CAJ1C;YAKE,SAAS,EAAE,KAAK7D,KAAL,CAAWgD,SALxB;YAME,KAAK,EAAE,KAAKhD,KAAL,CAAWiD,KANpB;YAOE,QAAQ,EAAE,KAAKjD,KAAL,CAAWqB;UAPvB,EADF;;QAYF,KAAK9B,mBAAmB,CAACuE,KAAzB;UAAgC;YAC9B,IAAI;cAAEhD,KAAF;cAASK,QAAQ,EAARA,SAAT;cAAmBC,QAAQ,EAARA;YAAnB,IAAgCoB,SAApC,CAD8B,CAG9B;;YACA,IAAMuB,UAAU,GAAG;cACjBtE,EAAE,EAAE,IADa;cAEjB;cACAC,IAAI,EAAEnB,IAAI,CAACiF,CAAL,WAAUhF,sBAAV,cAAoCC,CAAC,CAACuF,sBAAtC;YAHW,CAAnB;;YAMA,IAAI,CAAC7C,SAAL,EAAe;cACbL,KAAK,GAAG,CAAC,GAAGA,KAAJ,EAAWiD,UAAX,CAAR;YACD;;YAED,oBACE,oBAAC,KAAD,CAAO,KAAP;cACE,QAAQ,EAAGhB,CAAD,IAAY,KAAKjB,QAAL,CAAciB,CAAd,CADxB;cAEE,KAAK,EAAE9C,KAAK,KAAKgC,SAAV,GAAsBhC,KAAtB,GAA8B8D,UAAU,CAACtE,EAFlD;cAGE,SAAS,EAAE,KAAKO,KAAL,CAAWgD,SAHxB;cAIE,KAAK,EAAE,KAAKhD,KAAL,CAAWiD,KAJpB;cAKE,QAAQ,EAAE7B;YALZ,GAOGN,KAAK,CAACmD,GAAN,CAAWC,IAAD,iBACT,oBAAC,KAAD;cAAO,KAAK,EAAEA,IAAI,CAACzE,EAAnB;cAAuB,GAAG,EAAE0E,MAAM,CAACD,IAAI,CAACzE,EAAN;YAAlC,GACGyE,IAAI,CAACxE,IADR,CADD,CAPH,CADF;UAeD;;QAED,KAAKH,mBAAmB,CAAC6E,IAAzB;UAA+B;YAC7B,IAAM;cAAEtB,WAAW,EAAXA,aAAF;cAAe1B,QAAQ,EAARA;YAAf,IAA4BoB,SAAlC;YACA,oBACE,oBAAC,MAAD;cACE,UAAU,EAAE,IADd;cAEE,IAAI,EAAC,MAFP;cAGE,KAAK,kCAAO,KAAKxC,KAAL,CAAWiD,KAAlB;gBAAyBoB,KAAK,EAAE;cAAhC,EAHP;cAIE,QAAQ,EAAEjD,UAJZ;cAKE,WAAW,EAAE0B,aALf;cAME,KAAK,EAAE7C,KAAK,IAAI,EANlB;cAOE,QAAQ,EAAG8C,CAAD,IAAY,KAAKjB,QAAL,CAAciB,CAAd,CAPxB;cAQE,SAAS,EAAE,KAAK/C,KAAL,CAAWgD;YARxB,EADF;UAYD;;QAED,KAAKzD,mBAAmB,CAAC+E,IAAzB;QACA,KAAK/E,mBAAmB,CAACgF,QAAzB;UAAmC;YACjC,IAAIC,UAAU,GAAG,EAAjB;;YACA,IAAItE,IAAI,KAAKX,mBAAmB,CAACgF,QAAjC,EAA2C;cACzCC,UAAU,GAAG;gBACXC,QAAQ,EAAE;cADC,CAAb;YAGD;;YACD,IAAM;cAAErD,QAAQ,EAARA,UAAF;cAAY0B,WAAW,EAAXA;YAAZ,IAA4BN,SAAlC;YACA,IAAMkC,QAAQ,GAAGzF,iBAAiB,CAACiB,IAAD,EAAOD,KAAP,CAAlC;YACA,oBACE,oBAAC,UAAD;cACE,KAAK,EAAEyE,QAAQ,CAACzE,KADlB;cAEE,WAAW,EAAE6C,aAFf;cAGE,QAAQ,EAAE1B,UAHZ;cAIE,MAAM,EAAEsD,QAAQ,CAACC;YAJnB,GAKMH,UALN;cAME,QAAQ,EAAE,CAACzC,IAAD,EAAOC,UAAP,KACR,KAAK4C,gBAAL,CAAsB7C,IAAtB,EAA4BC,UAA5B,CAPJ;cASE,SAAS,EAAE,KAAKhC,KAAL,CAAWgD,SATxB;cAUE,KAAK,EAAE,KAAKhD,KAAL,CAAWiD;YAVpB,GADF;UAcD;;QAED,KAAK1D,mBAAmB,CAACsF,MAAzB;UAAiC;YAC/B,IAAM;cAAEzD,QAAQ,EAARA,UAAF;cAAY0B,WAAW,EAAXA;YAAZ,IAA4BN,SAAlC;YACA,IAAMsC,QAAQ,GACZ,OAAO7E,KAAP,KAAiB,SAAjB,GAA6BA,KAA7B,GAAqCA,KAAK,GAAGA,KAAH,GAAW,EADvD;YAEA,oBACE,oBAAC,MAAD;cACE,WAAW,EAAE6C,aADf;cAEE,IAAI,EAAE,KAAK9C,KAAL,CAAW+E,WAAX,GAAyB,UAAzB,GAAsC9C,SAF9C;cAGE,KAAK,EAAE6C,QAHT;cAIE,QAAQ,EAAG/B,CAAD,IAAY,KAAKjB,QAAL,CAAciB,CAAd,CAJxB;cAKE,QAAQ,EAAE3B,UALZ;cAME,SAAS,EAAE,KAAKpB,KAAL,CAAWgD,SANxB;cAOE,KAAK,EAAE,KAAKhD,KAAL,CAAWiD;YAPpB,GASGT,SAAS,CAAC1B,KAAV,IACC0B,SAAS,CAAC1B,KAAV,CAAgBmD,GAAhB,CAAoB;cAAA,IAAC;gBAAExE,EAAF;gBAAMC;cAAN,CAAD;cAAA,oBAClB,oBAAC,MAAD,CAAQ,MAAR;gBAAe,KAAK,EAAED,EAAtB;gBAA0B,GAAG,EAAEA;cAA/B,GACGC,IADH,CADkB;YAAA,CAApB,CAVJ,CADF;UAkBD;;QAED;UACE;YAAA;YACE;YACA;YACA;YACA;YACA;YACA;YACA;YACA;cACE,KAAK;gBACH6D,KAAK,EAAE;cADJ,GAEA,KAAKvD,KAAL,CAAWiD,KAFX;YADP,GAMGV,YANH;UARF;MAnMJ;IAqND,CArgBkD;;IAEjD,IAAM;MAAEpC,SAAS,EAATA,UAAF;MAAaV,EAAE,EAAFA,GAAb;MAAiBQ,KAAK,EAALA,MAAjB;MAAwBC,IAAI,EAAJA,KAAxB;MAA8BM;IAA9B,IAA2CR,MAAjD;IACA,IAAMgF,EAAE,GAAGxE,QAAX;;IACA,IAAI;MACF,KAAK8B,KAAL,GAAa;QACXrC,KAAK,EAALA,MADW;QAEXsC,YAAY,EAAE,IAFH;QAGXjC,WAAW,EAAE,KAAKC,kBAAL,CACXJ,UADW,EAEXV,GAFW,EAGXS,KAHW,EAIX,KAAKF,KAAL,CAAWQ,QAAX,KAAwB,SAAxB,IACE,KAAKR,KAAL,CAAWG,SAAX,CAAqBV,EAArB,KAA4B,MALnB;MAHF,CAAb;IAWD,CAZD,CAYE,OAAO0C,KAAP,EAAc;MACd,KAAKG,KAAL,GAAa;QACXC,YAAY,EAAEJ,KAAK,CAAC8C,OADT;QAEX3E,WAAW,EAAE;UACXJ,IAAI,EAAEX,mBAAmB,CAAC2F,WADf;UAEX9E,IAAI,EAAED,UAAS,CAACC,IAFL;UAGXX,EAAE,EAAE;QAHO;MAFF,CAAb;IAQD;EACF;;EAEoB,OAAdgC,cAAc,CACnBtB,SADmB,EAEC;IACpB,IAAI;MACF,IACEA,SAAS,CAACF,KAAV,CAAgBC,IAAhB,KAAyBb,uBAAuB,CAAC8F,IAAjD,IACAhF,SAAS,CAACF,KAAV,CAAgBC,IAAhB,KAAyBb,uBAAuB,CAAC+F,KADjD,IAEAjF,SAAS,CAACF,KAAV,CAAgByC,KAAhB,KAA0BT,SAF1B,IAGA9B,SAAS,CAACF,KAAV,CAAgByC,KAAhB,KAA0B,IAJ5B,EAKE;QACA;QACA,OAAO,IAAI2C,MAAJ,CAAWlF,SAAS,CAACF,KAAV,CAAgByC,KAA3B,EAA4C,GAA5C,CAAP;MACD;;MACD,OAAOT,SAAP;IACD,CAXD,CAWE,OAAOE,KAAP,EAAc;MACd,OAAOF,SAAP;IACD;EACF;;EAEDlB,uBAAuB,CACrBZ,SADqB,EAErBO,aAFqB,EAGI;IACzB,IACEP,SAAS,CAACF,KAAV,CAAgBC,IAAhB,KAAyBb,uBAAuB,CAAC8F,IAAjD,IACAhF,SAAS,CAACF,KAAV,CAAgBC,IAAhB,KAAyBb,uBAAuB,CAAC+F,KAFnD,EAGE;MAAA;;MACA;MACA,gCAAQjF,SAAS,CAACF,KAAV,CAAgByC,KAAxB,0DAAO,sBAAqCuB,GAArC,CAA0CqB,SAAD,KAAgB;QAC9D7F,EAAE,EAAE6F,SAD0D;QAE9D5F,IAAI,EAAEgB,aAAa,GAAGxB,UAAU,CAACoG,SAAD,CAAb,GAA2BA;MAFgB,CAAhB,CAAzC,CAAP;IAID;EACF;;EAE4B,OAAtB1E,sBAAsB,CAC3BT,SAD2B,EAE3BD,IAF2B,EAG3BW,yBAH2B,EAIN;IACrB,QAAQV,SAAS,CAACF,KAAV,CAAgBC,IAAxB;MACE,KAAKb,uBAAuB,CAACkG,MAA7B;QAAqC;UACnC,IACEpF,SAAS,CAACF,KAAV,CAAgBuF,IAAhB,KAAyBlG,2BAA2B,CAACmG,cADvD,EAEE;YACA,OAAOlG,mBAAmB,CAACmE,QAA3B;UACD;;UACD,IAAIvD,SAAS,CAACF,KAAV,CAAgBuF,IAAhB,KAAyBlG,2BAA2B,CAACqE,QAAzD,EAAmE;YACjE,OAAOpE,mBAAmB,CAACoE,QAA3B;UACD;;UACD,IAAIxD,SAAS,CAACF,KAAV,CAAgBuF,IAAhB,KAAyBlG,2BAA2B,CAAC4D,GAAzD,EAA8D;YAC5D,OAAO3D,mBAAmB,CAAC2D,GAA3B;UACD;QACF;;MACD;;MACA,KAAK7D,uBAAuB,CAACqG,EAA7B;QACE,IAAI7E,yBAAJ,EAA+B;UAC7B,OAAOtB,mBAAmB,CAAC6E,IAA3B;QACD;;QACD,OAAO7E,mBAAmB,CAACsD,IAA3B;;MACF,KAAKxD,uBAAuB,CAACsD,IAA7B;QACE;QACA,OAAOpD,mBAAmB,CAAC6D,WAA3B;;MACF,KAAK/D,uBAAuB,CAAC8F,IAA7B;QACE,IACE,CAAChF,SAAS,CAACF,KAAV,CAAgByC,KAAjB,IACCvC,SAAS,CAACF,KAAV,CAAgByC,KAAjB,CAAoCiD,MAApC,KAA+C,CAFjD,EAGE;UACA,MAAM,IAAIC,KAAJ,EACJ;UACArH,IAAI,CAACiF,CAAL,WAAUhF,sBAAV,cAAoCC,CAAC,CAACoH,cAAtC,GAAwD;YACtD1F,SAAS,EAAEA,SAAS,CAACC;UADiC,CAAxD,CAFI,CAAN;QAMD;;QACD,IACED,SAAS,CAACF,KAAV,CAAgByC,KAAhB,IACCvC,SAAS,CAACF,KAAV,CAAgByC,KAAjB,CAAoCiD,MAApC,IAA8C,CAD9C,KAEC,CAACzF,IAAD,IAASA,IAAI,KAAKX,mBAAmB,CAACuE,KAFvC,CADF,EAIE;UACA,OAAOvE,mBAAmB,CAACuE,KAA3B;QACD;;QACD,OAAOvE,mBAAmB,CAACsF,MAA3B;;MACF,KAAKxF,uBAAuB,CAACyG,OAA7B;MACA,KAAKzG,uBAAuB,CAAC0G,KAA7B;QACE,OAAOxG,mBAAmB,CAAC4D,MAA3B;;MACF,KAAK9D,uBAAuB,CAACiF,IAA7B;QACE,OAAO/E,mBAAmB,CAAC+E,IAA3B;;MACF,KAAKjF,uBAAuB,CAACkF,QAA7B;QACE,OAAOhF,mBAAmB,CAACgF,QAA3B;;MACF,KAAKlF,uBAAuB,CAAC2G,GAA7B;QACE,OAAOzG,mBAAmB,CAAC6E,IAA3B;;MACF,KAAK/E,uBAAuB,CAACqC,MAA7B;QACE,IAAIvB,SAAS,CAACF,KAAV,CAAgBgG,aAAhB,CAA8BN,MAA9B,KAAyC,CAA7C,EAAgD;UAC9C,MAAM,IAAIC,KAAJ,EACJ;UACArH,IAAI,CAACiF,CAAL,WAAUhF,sBAAV,cAAoCC,CAAC,CAACyH,gBAAtC,GAA0D;YACxD/F,SAAS,EAAEA,SAAS,CAACC;UADmC,CAA1D,CAFI,CAAN;QAMD;;QACD,OAAOb,mBAAmB,CAACqE,aAA3B;;MACF,KAAKvE,uBAAuB,CAAC8G,WAA7B;QACE,IAAIhG,SAAS,CAACF,KAAV,CAAgBgG,aAAhB,CAA8BN,MAA9B,KAAyC,CAA7C,EAAgD;UAC9C,MAAM,IAAIC,KAAJ,EACJ;UACArH,IAAI,CAACiF,CAAL,WAAUhF,sBAAV,cAAoCC,CAAC,CAACyH,gBAAtC,GAA0D;YACxD/F,SAAS,EAAEA,SAAS,CAACC;UADmC,CAA1D,CAFI,CAAN;QAMD;;QACD,OAAOb,mBAAmB,CAACmC,MAA3B;;MACF,KAAKrC,uBAAuB,CAAC2B,OAA7B;QACE,OAAOzB,mBAAmB,CAACsF,MAA3B;;MACF,KAAKxF,uBAAuB,CAAC+F,KAA7B;QACE,OAAO7F,mBAAmB,CAACsF,MAA3B;;MACF;QACE,MAAM,IAAIe,KAAJ,CACJrH,IAAI,CAACiF,CAAL,WAAUhF,sBAAV,cAAoCC,CAAC,CAAC2H,oBAAtC,GAA8D;UAC5DlG,IAAI,EAAEC,SAAS,CAACF,KAAV,CAAgBC;QADsC,CAA9D,CADI,CAAN;IA7EJ;EAmFD;;EAuCwB,OAAlByB,kBAAkB,CAACrB,WAAD,EAAmC;IAC1D,IAAIA,WAAW,CAACb,EAAZ,KAAmB,IAAnB,IAA2Ba,WAAW,CAACF,IAAZ,KAAqB,IAApD,EAA0D;MACxD,OAAO7B,IAAI,CAACiF,CAAL,WAAUhF,sBAAV,cAAoCC,CAAC,CAAC4H,cAAtC,EAAP;IACD;;IAED,IAAMC,YAAY,GAAG,EAArB;;IACA,QAAQhG,WAAW,CAACJ,IAApB;MACE,KAAKX,mBAAmB,CAACsF,MAAzB;QACEyB,YAAY,CAACC,IAAb,CACEhI,IAAI,CAACiF,CAAL,WAAUhF,sBAAV,cAAoCC,CAAC,CAAC+H,eAAtC,EADF;QAGA;;MACF,KAAKjH,mBAAmB,CAACgF,QAAzB;MACA,KAAKhF,mBAAmB,CAAC+E,IAAzB;QACEgC,YAAY,CAACC,IAAb,CACEhI,IAAI,CAACiF,CAAL,WAAUhF,sBAAV,cAAoCC,CAAC,CAAC+H,eAAtC,EADF;QAGA;;MACF,KAAKjH,mBAAmB,CAAC6E,IAAzB;QACEkC,YAAY,CAACC,IAAb,CACEhI,IAAI,CAACiF,CAAL,WACKhF,sBADL,cAC+BC,CAAC,CAACgI,qDADjC,EADF;QAKA;;MACF,KAAKlH,mBAAmB,CAAC4D,MAAzB;QACEmD,YAAY,CAACC,IAAb,CACEhI,IAAI,CAACiF,CAAL,WAAUhF,sBAAV,cAAoCC,CAAC,CAACiI,wBAAtC,EADF;QAGA;;MACF;QACEJ,YAAY,CAACC,IAAb,CACEhI,IAAI,CAACiF,CAAL,WACKhF,sBADL,cAC+BC,CAAC,CAACkI,uCADjC,EADF;IAzBJ;;IAgCA,IAAIrG,WAAW,CAACkB,OAAZ,KAAwBS,SAA5B,EAAuC;MACrC;MACAqE,YAAY,CAACC,IAAb,CACEhI,IAAI,CAACiF,CAAL,WAAUhF,sBAAV,cAAoCC,CAAC,CAACmI,gBAAtC,GAA0D;QACxDC,MAAM,EAAEvG,WAAW,CAACkB;MADoC,CAA1D,CADF;IAKD;;IACD,IAAIlB,WAAW,CAACiB,MAAhB,EAAwB;MACtB;MACA+E,YAAY,CAACC,IAAb,CACEhI,IAAI,CAACiF,CAAL,WAAUhF,sBAAV,cAAoCC,CAAC,CAACqI,gBAAtC,GAA0D;QACxD5F,KAAK,EAAEZ,WAAW,CAACY;MADqC,CAA1D,CADF;IAKD;;IACD,OAAOoF,YAAY,CAACS,IAAb,CAAkB,GAAlB,CAAP;EACD;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EAgQEC,MAAM,GAAc;IAClB,oBAAO,0CAAG,KAAKC,kBAAL,EAAH,CAAP;EACD;;AAniBD"}
1
+ {"version":3,"file":"ModelAttributeFormControl.js","names":["React","Component","i18n","NS_LIBS_CMDB_INSTANCES","K","DatePicker","Input","InputNumber","Radio","Select","AddStruct","AttributeFormControlUrl","computeDateFormat","clusterMap","CodeEditor","some","ModelAttributeValueType","ModelAttributeValueModeType","FormControlTypeEnum","boolOptions","id","text","ModelAttributeFormControl","componentDidUpdate","prevProps","prevState","snapshot","props","value","type","attribute","name","setState","formControl","computeFormControl","objectId","constructor","isClusterType","formControlType","computeFormControlType","isSupportMultiStringValue","items","computeFormControlItems","BOOLEAN","result","label","required","readOnly","isCreate","readonly","unique","pattern","computePattern","STRUCT","computePlaceholder","event","target","onChange","date","dateString","undefined","err","error","jsonValidateCollection","showError","state","errorMessage","restProps","jsonSchema","regex","JSON","parse","TEXT","placeholder","e","className","style","URL","NUMBER","CODE_EDITOR","validateJson","display","color","t","NOT_MEET_JSON","TEXTAREA","MARKDOWN","LEGACY_STRUCT","formData","RADIO","unselected","TEMPORARILY_NOT_CHOOSE","map","item","String","TAGS","width","DATE","DATETIME","dateConfig","showTime","formater","format","handleDateChange","SELECT","newValue","multiSelect","is","message","_PLAIN_TEXT","ENUM","ENUMS","RegExp","enumValue","STRING","mode","MULTIPLE_LINES","IP","length","Error","ENUM_ERROR_TIP","INTEGER","FLOAT","ARR","struct_define","STRUCT_ERROR_TIP","STRUCT_LIST","TYPE_NO_SUPPORT_EDIT","IP_PLACEHOLDER","placeholders","push","CLICK_TO_SELECT","ENTER_MULTIPLE_STRING_WITH_ENTER_KEY_AS_THE_SEPARATOR","NUMBER_INPUT_PLACEHOLDER","ADVANCE_SEARCH_SINGLE_INPUT_PLACEHOLDER","MATCHING_REGULAR","regexp","UNIQUE_NO_REPEAT","join","render","FormControlTypeMap"],"sources":["../../../src/model-attribute-form-control/ModelAttributeFormControl.tsx"],"sourcesContent":["import React, { Component, ReactNode } from \"react\";\nimport { CmdbModels } from \"@next-sdk/cmdb-sdk\";\nimport i18n from \"i18next\";\nimport { NS_LIBS_CMDB_INSTANCES, K } from \"../i18n/constants\";\nimport { DatePicker, Input, InputNumber, Radio, Select } from \"antd\";\nimport { AddStruct } from \"../struct-components\";\nimport moment, { Moment } from \"moment\";\nimport { AttributeFormControlUrl } from \"../attribute-form-control-url/AttributeFormControlUrl\";\nimport { computeDateFormat } from \"../processors\";\nimport { clusterMap } from \"../instance-list-table/constants\";\nimport { CodeEditor } from \"@next-libs/code-editor-components\";\nimport { some } from \"lodash\";\nexport interface FormControlSelectItem {\n id: any;\n text: string;\n}\n\nexport enum ModelAttributeValueType {\n STRING = \"str\",\n INTEGER = \"int\",\n ENUM = \"enum\",\n ENUMS = \"enums\",\n ARR = \"arr\",\n DATE = \"date\",\n DATETIME = \"datetime\",\n STRUCT = \"struct\",\n STRUCT_LIST = \"structs\",\n FOREIGN_KEY = \"FK\",\n FOREIGN_KEYS = \"FKs\",\n IP = \"ip\",\n FLOAT = \"float\",\n BOOLEAN = \"bool\",\n JSON = \"json\",\n}\n\nexport enum ModelAttributeValueModeType {\n MULTIPLE_LINES = \"multiple-lines\",\n DEFAULT = \"default\",\n MARKDOWN = \"markdown\",\n URL = \"url\",\n}\n\nexport enum FormControlTypeEnum {\n TEXT = \"text\",\n NUMBER = \"number\",\n SELECT = \"select\",\n RADIO = \"radio\",\n TEXTAREA = \"textarea\",\n DATE = \"date\",\n DATETIME = \"datetime\",\n TAGS = \"tags\",\n STRUCT = \"struct\",\n /**\n * @deprecated supported for compatibility only\n * @type {string}\n */\n LEGACY_STRUCT = \"legacy-struct\",\n // fallback to show a plain text span\n _PLAIN_TEXT = \"_plain_text\",\n MARKDOWN = \"markdown\",\n URL = \"url\",\n CODE_EDITOR = \"code_editor\",\n}\n\nexport interface FormControl {\n id: string;\n type: FormControlTypeEnum;\n items?: FormControlSelectItem[];\n name: string;\n label?: string;\n required?: boolean;\n readOnly?: boolean;\n unique?: boolean;\n pattern?: RegExp;\n placeholder?: string;\n maxlength?: number; // 结构体数组的最大长度,如果是结构体,就是1,\n}\n\nexport interface ModelAttributeFormControlProps {\n // ant-design initialValue\n id?: string;\n value?: any;\n isCreate?: boolean;\n onChange?: (value: any) => void;\n attribute: Partial<CmdbModels.ModelObjectAttr>;\n type?: string;\n multiSelect?: boolean;\n className?: string;\n style?: React.CSSProperties;\n objectId?: string;\n jsonValidateCollection?: (err: boolean) => void;\n isSupportMultiStringValue?: boolean;\n}\n\nexport interface ModelAttributeFormControlState {\n value?: any;\n formControl: FormControl;\n errorMessage: string;\n showError?: boolean;\n}\n\nexport const boolOptions: FormControlSelectItem[] = [\n {\n id: true,\n text: \"true\",\n },\n {\n id: false,\n text: \"false\",\n },\n];\n\nexport class ModelAttributeFormControl extends Component<\n ModelAttributeFormControlProps,\n ModelAttributeFormControlState\n> {\n componentDidUpdate(\n prevProps: Readonly<ModelAttributeFormControlProps>,\n prevState: Readonly<ModelAttributeFormControlState>,\n snapshot?: any\n ): void {\n if (\n this.props.value !== prevProps.value ||\n this.props.type !== prevProps.type ||\n this.props.attribute.id !== prevProps.attribute.id ||\n this.props.attribute.name !== prevProps.attribute.name ||\n this.props.attribute.value.type !== prevProps.attribute.value.type\n ) {\n this.setState({\n value: this.props.value,\n formControl: this.computeFormControl(\n this.props.attribute,\n this.props.id,\n this.props.type,\n this.props.objectId === \"CLUSTER\" &&\n this.props.attribute.id === \"type\"\n ),\n });\n }\n }\n\n constructor(props: ModelAttributeFormControlProps) {\n super(props);\n const { attribute, id, value, type, objectId } = props;\n const is = objectId;\n try {\n this.state = {\n value,\n errorMessage: null,\n formControl: this.computeFormControl(\n attribute,\n id,\n type,\n this.props.objectId === \"CLUSTER\" &&\n this.props.attribute.id === \"type\"\n ),\n };\n } catch (error) {\n this.state = {\n errorMessage: error.message,\n formControl: {\n type: FormControlTypeEnum._PLAIN_TEXT,\n name: attribute.name,\n id: \"\",\n },\n };\n }\n }\n\n static computePattern(\n attribute: Partial<CmdbModels.ModelObjectAttr>\n ): RegExp | undefined {\n try {\n if (\n attribute.value.type !== ModelAttributeValueType.ENUM &&\n attribute.value.type !== ModelAttributeValueType.ENUMS &&\n attribute.value.regex !== undefined &&\n attribute.value.regex !== null\n ) {\n // todo(jhuang): use `u` flag for compliance until https://github.com/angular/angular/pull/20819 is resolved\n return new RegExp(attribute.value.regex as string, \"u\");\n }\n return undefined;\n } catch (error) {\n return undefined;\n }\n }\n\n computeFormControlItems(\n attribute: Partial<CmdbModels.ModelObjectAttr>,\n isClusterType?: boolean\n ): FormControlSelectItem[] {\n if (\n attribute.value.type === ModelAttributeValueType.ENUM ||\n attribute.value.type === ModelAttributeValueType.ENUMS\n ) {\n // The backend guys are notorious to use `regex` as enum candidates. 😢\n return (attribute.value.regex as string[])?.map((enumValue) => ({\n id: enumValue,\n text: isClusterType ? clusterMap[enumValue] : enumValue,\n }));\n }\n }\n\n static computeFormControlType(\n attribute: Partial<CmdbModels.ModelObjectAttr>,\n type?: string,\n isSupportMultiStringValue?: boolean\n ): FormControlTypeEnum {\n switch (attribute.value.type) {\n case ModelAttributeValueType.STRING: {\n if (\n attribute.value.mode === ModelAttributeValueModeType.MULTIPLE_LINES\n ) {\n return FormControlTypeEnum.TEXTAREA;\n }\n if (attribute.value.mode === ModelAttributeValueModeType.MARKDOWN) {\n return FormControlTypeEnum.MARKDOWN;\n }\n if (attribute.value.mode === ModelAttributeValueModeType.URL) {\n return FormControlTypeEnum.URL;\n }\n }\n /* falls through */\n case ModelAttributeValueType.IP:\n if (isSupportMultiStringValue) {\n return FormControlTypeEnum.TAGS;\n }\n return FormControlTypeEnum.TEXT;\n case ModelAttributeValueType.JSON:\n // return FormControlTypeEnum.TEXTAREA;\n return FormControlTypeEnum.CODE_EDITOR;\n case ModelAttributeValueType.ENUM:\n if (\n !attribute.value.regex ||\n (attribute.value.regex as string[]).length === 0\n ) {\n throw new Error(\n // \"请在资源模型管理中添加枚举值, 属性: \" + attribute.name\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.ENUM_ERROR_TIP}`, {\n attribute: attribute.name,\n })\n );\n }\n if (\n attribute.value.regex &&\n (attribute.value.regex as string[]).length <= 5 &&\n (!type || type === FormControlTypeEnum.RADIO)\n ) {\n return FormControlTypeEnum.RADIO;\n }\n return FormControlTypeEnum.SELECT;\n case ModelAttributeValueType.INTEGER:\n case ModelAttributeValueType.FLOAT:\n return FormControlTypeEnum.NUMBER;\n case ModelAttributeValueType.DATE:\n return FormControlTypeEnum.DATE;\n case ModelAttributeValueType.DATETIME:\n return FormControlTypeEnum.DATETIME;\n case ModelAttributeValueType.ARR:\n return FormControlTypeEnum.TAGS;\n case ModelAttributeValueType.STRUCT:\n if (attribute.value.struct_define.length === 0) {\n throw new Error(\n // \"请在资源模型中添加结构体属性, 属性: \" + attribute.name\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.STRUCT_ERROR_TIP}`, {\n attribute: attribute.name,\n })\n );\n }\n return FormControlTypeEnum.LEGACY_STRUCT;\n case ModelAttributeValueType.STRUCT_LIST:\n if (attribute.value.struct_define.length === 0) {\n throw new Error(\n // \"请在资源模型中添加结构体属性, 属性: \" + attribute.name\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.STRUCT_ERROR_TIP}`, {\n attribute: attribute.name,\n })\n );\n }\n return FormControlTypeEnum.STRUCT;\n case ModelAttributeValueType.BOOLEAN:\n return FormControlTypeEnum.SELECT;\n case ModelAttributeValueType.ENUMS:\n return FormControlTypeEnum.SELECT;\n default:\n throw new Error(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.TYPE_NO_SUPPORT_EDIT}`, {\n type: attribute.value.type,\n })\n );\n }\n }\n\n computeFormControl = (\n attribute: Partial<CmdbModels.ModelObjectAttr>,\n id?: string,\n type?: string,\n isClusterType?: boolean\n ): FormControl => {\n const formControlType = ModelAttributeFormControl.computeFormControlType(\n attribute,\n type,\n this.props.isSupportMultiStringValue\n );\n let items = this.computeFormControlItems(attribute, isClusterType);\n\n if (attribute.value.type === ModelAttributeValueType.BOOLEAN) {\n items = boolOptions;\n }\n\n const result: FormControl = {\n type: formControlType,\n items,\n id: id || attribute.id,\n name: attribute.id,\n label: attribute.name,\n required: attribute.required === \"true\",\n readOnly: !this.props.isCreate && attribute.readonly === \"true\",\n unique: attribute.unique === \"true\",\n pattern: ModelAttributeFormControl.computePattern(attribute),\n };\n\n if (result.type === FormControlTypeEnum.STRUCT) {\n result[\"maxlength\"] = 1;\n }\n result[\"placeholder\"] =\n ModelAttributeFormControl.computePlaceholder(result);\n return result;\n };\n\n static computePlaceholder(formControl: FormControl): string {\n if (formControl.id === \"ip\" && formControl.name === \"ip\") {\n return i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.IP_PLACEHOLDER}`);\n }\n\n const placeholders = [];\n switch (formControl.type) {\n case FormControlTypeEnum.SELECT:\n placeholders.push(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLICK_TO_SELECT}`)\n );\n break;\n case FormControlTypeEnum.DATETIME:\n case FormControlTypeEnum.DATE:\n placeholders.push(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLICK_TO_SELECT}`)\n );\n break;\n case FormControlTypeEnum.TAGS:\n placeholders.push(\n i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ENTER_MULTIPLE_STRING_WITH_ENTER_KEY_AS_THE_SEPARATOR}`\n )\n );\n break;\n case FormControlTypeEnum.NUMBER:\n placeholders.push(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.NUMBER_INPUT_PLACEHOLDER}`)\n );\n break;\n default:\n placeholders.push(\n i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ADVANCE_SEARCH_SINGLE_INPUT_PLACEHOLDER}`\n )\n );\n }\n\n if (formControl.pattern !== undefined) {\n // placeholders.push(`匹配正则 ${formControl.pattern}`);\n placeholders.push(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.MATCHING_REGULAR}`, {\n regexp: formControl.pattern,\n })\n );\n }\n if (formControl.unique) {\n // placeholders.push(`${formControl.label}唯一不能重复`);\n placeholders.push(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.UNIQUE_NO_REPEAT}`, {\n label: formControl.label,\n })\n );\n }\n return placeholders.join(\",\");\n }\n\n /*computeFormControlAndCatchError = () => {\n const { attribute, objectId } = this.props;\n try {\n this.setState({\n formControl: this.computeFormControl(attribute, objectId)\n });\n } catch (error) {\n this.setState({\n errorMessage: error.message,\n formControl: {\n type: FormControlTypeEnum._PLAIN_TEXT,\n name: attribute.name,\n id: \"\"\n }\n });\n }\n };*/\n\n onChange = (event: any) => {\n let value;\n if (event && event.target) {\n value = event.target.value;\n } else {\n value = event;\n }\n\n const { onChange } = this.props;\n this.setState({ value });\n onChange && onChange(value);\n };\n\n handleDateChange = (date: Moment, dateString: string) => {\n this.onChange(dateString || undefined);\n };\n validateJson = (err: any) => {\n const error = some(err, [\"type\", \"error\"]);\n this.props.jsonValidateCollection?.(error);\n this.setState({ showError: error });\n };\n\n FormControlTypeMap = (): ReactNode => {\n const { attribute } = this.props;\n const {\n value,\n formControl: { type, ...restProps },\n errorMessage,\n } = this.state;\n // const unsupportText = `\"${type}\"类型暂时不支持编辑`;\n // const unsupportText = i18n.t(\n // `${NS_LIBS_CMDB_INSTANCES}:${K.TYPE_NO_SUPPORT_EDIT}`,\n // { type }\n // );\n let jsonSchema: any;\n if (attribute?.value?.type === \"json\" && attribute?.value?.regex) {\n jsonSchema = JSON.parse(attribute?.value?.regex);\n }\n\n switch (type) {\n case FormControlTypeEnum.TEXT: {\n const { pattern, placeholder, ...props } = restProps;\n return (\n <Input\n value={value}\n type=\"text\"\n {...props}\n placeholder={placeholder}\n onChange={(e) => this.onChange(e)}\n className={this.props.className}\n style={this.props.style}\n />\n );\n }\n\n case FormControlTypeEnum.URL: {\n const { readOnly, required, placeholder } = restProps;\n\n return (\n <AttributeFormControlUrl\n readOnly={readOnly}\n required={required}\n placeholder={placeholder}\n value={value}\n onChange={(e) => this.onChange(e)}\n />\n );\n }\n\n case FormControlTypeEnum.NUMBER: {\n const { pattern, ...props } = restProps;\n return (\n <InputNumber\n value={value}\n {...props}\n onChange={(e: any) => this.onChange(e)}\n className={this.props.className}\n style={this.props.style}\n />\n );\n }\n case FormControlTypeEnum.CODE_EDITOR:\n return (\n <>\n <CodeEditor\n value={value}\n mode={\"json\"}\n maxLines={\"Infinity\"}\n highlightActiveLine={true}\n onChange={(e: any) => this.onChange(e)}\n minLines={3}\n showLineNumbers={true}\n showPrintMargin={false}\n validateJsonSchemaMode={\"error\"}\n {...(jsonSchema ? { jsonSchema: jsonSchema } : {})}\n theme=\"tomorrow\"\n onValidate={(err: any) => this.validateJson(err)}\n />\n <label\n style={{\n display: this.state.showError ? \"block\" : \"none\",\n color: \"#fc5043\",\n }}\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.NOT_MEET_JSON}`)}\n </label>\n </>\n );\n case FormControlTypeEnum.TEXTAREA:\n case FormControlTypeEnum.MARKDOWN: {\n return (\n <Input.TextArea\n value={value}\n {...restProps}\n onChange={(e: any) => this.onChange(e)}\n className={this.props.className}\n style={this.props.style}\n rows={5}\n />\n );\n }\n\n case FormControlTypeEnum.STRUCT:\n case FormControlTypeEnum.LEGACY_STRUCT:\n return (\n <AddStruct\n isLegacy={type === FormControlTypeEnum.LEGACY_STRUCT}\n attribute={attribute}\n structData={value}\n handleStoreFunction={(formData: any) => this.onChange(formData)}\n className={this.props.className}\n style={this.props.style}\n isCreate={this.props.isCreate}\n />\n );\n\n case FormControlTypeEnum.RADIO: {\n let { items, required, readOnly } = restProps;\n\n // NODE: 对非必填单选为空的特殊处理 BY @robertman\n const unselected = {\n id: null as string,\n // text: \"暂不选择\",\n text: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.TEMPORARILY_NOT_CHOOSE}`),\n };\n\n if (!required) {\n items = [...items, unselected];\n }\n\n return (\n <Radio.Group\n onChange={(e: any) => this.onChange(e)}\n value={value !== undefined ? value : unselected.id}\n className={this.props.className}\n style={this.props.style}\n disabled={readOnly}\n >\n {items.map((item) => (\n <Radio value={item.id} key={String(item.id)}>\n {item.text}\n </Radio>\n ))}\n </Radio.Group>\n );\n }\n\n case FormControlTypeEnum.TAGS: {\n const { placeholder, readOnly } = restProps;\n return (\n <Select\n allowClear={true}\n mode=\"tags\"\n style={{ ...this.props.style, width: \"100%\" }}\n disabled={readOnly}\n placeholder={placeholder}\n value={value || []}\n onChange={(e: any) => this.onChange(e)}\n className={this.props.className}\n />\n );\n }\n\n case FormControlTypeEnum.DATE:\n case FormControlTypeEnum.DATETIME: {\n let dateConfig = {};\n if (type === FormControlTypeEnum.DATETIME) {\n dateConfig = {\n showTime: true,\n };\n }\n const { readOnly, placeholder } = restProps;\n const formater = computeDateFormat(type, value);\n return (\n <DatePicker\n value={formater.value}\n placeholder={placeholder}\n disabled={readOnly}\n format={formater.format}\n {...dateConfig}\n onChange={(date, dateString) =>\n this.handleDateChange(date, dateString)\n }\n className={this.props.className}\n style={this.props.style}\n />\n );\n }\n\n case FormControlTypeEnum.SELECT: {\n const { readOnly, placeholder } = restProps;\n const newValue =\n typeof value === \"boolean\" ? value : value ? value : [];\n return (\n <Select\n placeholder={placeholder}\n mode={this.props.multiSelect ? \"multiple\" : undefined}\n value={newValue}\n onChange={(e: any) => this.onChange(e)}\n disabled={readOnly}\n className={this.props.className}\n style={this.props.style}\n >\n {restProps.items &&\n restProps.items.map(({ id, text }) => (\n <Select.Option value={id} key={id}>\n {text}\n </Select.Option>\n ))}\n </Select>\n );\n }\n\n default:\n return (\n // <Input\n // value={errorMessage}\n // readOnly\n // disabled\n // className={this.props.className}\n // style={this.props.style}\n // />\n <div\n style={{\n color: \"var(--theme-red-color)\",\n ...this.props.style,\n }}\n >\n {errorMessage}\n </div>\n );\n }\n };\n\n render(): ReactNode {\n return <>{this.FormControlTypeMap()}</>;\n }\n}\n"],"mappings":"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"}