@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
@@ -1,41 +1,25 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
-
5
4
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports.boolOptions = exports.ModelAttributeValueType = exports.ModelAttributeValueModeType = exports.ModelAttributeFormControl = exports.FormControlTypeEnum = void 0;
11
-
12
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
-
14
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
-
16
11
  var _react = _interopRequireWildcard(require("react"));
17
-
18
12
  var _i18next = _interopRequireDefault(require("i18next"));
19
-
20
13
  var _constants = require("../i18n/constants");
21
-
22
14
  var _antd = require("antd");
23
-
24
15
  var _structComponents = require("../struct-components");
25
-
26
16
  var _AttributeFormControlUrl = require("../attribute-form-control-url/AttributeFormControlUrl");
27
-
28
17
  var _processors = require("../processors");
29
-
30
18
  var _constants2 = require("../instance-list-table/constants");
31
-
32
19
  var _codeEditorComponents = require("@next-libs/code-editor-components");
33
-
34
20
  var _lodash = require("lodash");
35
-
36
21
  let ModelAttributeValueType;
37
22
  exports.ModelAttributeValueType = ModelAttributeValueType;
38
-
39
23
  (function (ModelAttributeValueType) {
40
24
  ModelAttributeValueType["STRING"] = "str";
41
25
  ModelAttributeValueType["INTEGER"] = "int";
@@ -53,20 +37,16 @@ exports.ModelAttributeValueType = ModelAttributeValueType;
53
37
  ModelAttributeValueType["BOOLEAN"] = "bool";
54
38
  ModelAttributeValueType["JSON"] = "json";
55
39
  })(ModelAttributeValueType || (exports.ModelAttributeValueType = ModelAttributeValueType = {}));
56
-
57
40
  let ModelAttributeValueModeType;
58
41
  exports.ModelAttributeValueModeType = ModelAttributeValueModeType;
59
-
60
42
  (function (ModelAttributeValueModeType) {
61
43
  ModelAttributeValueModeType["MULTIPLE_LINES"] = "multiple-lines";
62
44
  ModelAttributeValueModeType["DEFAULT"] = "default";
63
45
  ModelAttributeValueModeType["MARKDOWN"] = "markdown";
64
46
  ModelAttributeValueModeType["URL"] = "url";
65
47
  })(ModelAttributeValueModeType || (exports.ModelAttributeValueModeType = ModelAttributeValueModeType = {}));
66
-
67
48
  let FormControlTypeEnum;
68
49
  exports.FormControlTypeEnum = FormControlTypeEnum;
69
-
70
50
  (function (FormControlTypeEnum) {
71
51
  FormControlTypeEnum["TEXT"] = "text";
72
52
  FormControlTypeEnum["NUMBER"] = "number";
@@ -83,7 +63,6 @@ exports.FormControlTypeEnum = FormControlTypeEnum;
83
63
  FormControlTypeEnum["URL"] = "url";
84
64
  FormControlTypeEnum["CODE_EDITOR"] = "code_editor";
85
65
  })(FormControlTypeEnum || (exports.FormControlTypeEnum = FormControlTypeEnum = {}));
86
-
87
66
  const boolOptions = [{
88
67
  id: true,
89
68
  text: "true"
@@ -92,7 +71,6 @@ const boolOptions = [{
92
71
  text: "false"
93
72
  }];
94
73
  exports.boolOptions = boolOptions;
95
-
96
74
  class ModelAttributeFormControl extends _react.Component {
97
75
  componentDidUpdate(prevProps, prevState, snapshot) {
98
76
  if (this.props.value !== prevProps.value || this.props.type !== prevProps.type || this.props.attribute.id !== prevProps.attribute.id || this.props.attribute.name !== prevProps.attribute.name || this.props.attribute.value.type !== prevProps.attribute.value.type) {
@@ -102,17 +80,14 @@ class ModelAttributeFormControl extends _react.Component {
102
80
  });
103
81
  }
104
82
  }
105
-
106
83
  constructor(_props) {
107
84
  super(_props);
108
85
  (0, _defineProperty2.default)(this, "computeFormControl", (attribute, id, type, isClusterType) => {
109
86
  const formControlType = ModelAttributeFormControl.computeFormControlType(attribute, type, this.props.isSupportMultiStringValue);
110
87
  let items = this.computeFormControlItems(attribute, isClusterType);
111
-
112
88
  if (attribute.value.type === ModelAttributeValueType.BOOLEAN) {
113
89
  items = boolOptions;
114
90
  }
115
-
116
91
  const result = {
117
92
  type: formControlType,
118
93
  items,
@@ -124,23 +99,19 @@ class ModelAttributeFormControl extends _react.Component {
124
99
  unique: attribute.unique === "true",
125
100
  pattern: ModelAttributeFormControl.computePattern(attribute)
126
101
  };
127
-
128
102
  if (result.type === FormControlTypeEnum.STRUCT) {
129
103
  result["maxlength"] = 1;
130
104
  }
131
-
132
105
  result["placeholder"] = ModelAttributeFormControl.computePlaceholder(result);
133
106
  return result;
134
107
  });
135
108
  (0, _defineProperty2.default)(this, "onChange", event => {
136
109
  let value;
137
-
138
110
  if (event && event.target) {
139
111
  value = event.target.value;
140
112
  } else {
141
113
  value = event;
142
114
  }
143
-
144
115
  const {
145
116
  onChange
146
117
  } = this.props;
@@ -154,7 +125,6 @@ class ModelAttributeFormControl extends _react.Component {
154
125
  });
155
126
  (0, _defineProperty2.default)(this, "validateJson", err => {
156
127
  var _this$props$jsonValid, _this$props;
157
-
158
128
  const error = (0, _lodash.some)(err, ["type", "error"]);
159
129
  (_this$props$jsonValid = (_this$props = this.props).jsonValidateCollection) === null || _this$props$jsonValid === void 0 ? void 0 : _this$props$jsonValid.call(_this$props, error);
160
130
  this.setState({
@@ -163,7 +133,6 @@ class ModelAttributeFormControl extends _react.Component {
163
133
  });
164
134
  (0, _defineProperty2.default)(this, "FormControlTypeMap", () => {
165
135
  var _attribute$value, _attribute$value2;
166
-
167
136
  const {
168
137
  attribute
169
138
  } = this.props;
@@ -174,20 +143,17 @@ class ModelAttributeFormControl extends _react.Component {
174
143
  ...restProps
175
144
  },
176
145
  errorMessage
177
- } = this.state; // const unsupportText = `"${type}"类型暂时不支持编辑`;
146
+ } = this.state;
147
+ // const unsupportText = `"${type}"类型暂时不支持编辑`;
178
148
  // const unsupportText = i18n.t(
179
149
  // `${NS_LIBS_CMDB_INSTANCES}:${K.TYPE_NO_SUPPORT_EDIT}`,
180
150
  // { type }
181
151
  // );
182
-
183
152
  let jsonSchema;
184
-
185
153
  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) {
186
154
  var _attribute$value3;
187
-
188
155
  jsonSchema = JSON.parse(attribute === null || attribute === void 0 ? void 0 : (_attribute$value3 = attribute.value) === null || _attribute$value3 === void 0 ? void 0 : _attribute$value3.regex);
189
156
  }
190
-
191
157
  switch (type) {
192
158
  case FormControlTypeEnum.TEXT:
193
159
  {
@@ -206,7 +172,6 @@ class ModelAttributeFormControl extends _react.Component {
206
172
  style: this.props.style
207
173
  }));
208
174
  }
209
-
210
175
  case FormControlTypeEnum.URL:
211
176
  {
212
177
  const {
@@ -222,7 +187,6 @@ class ModelAttributeFormControl extends _react.Component {
222
187
  onChange: e => this.onChange(e)
223
188
  });
224
189
  }
225
-
226
190
  case FormControlTypeEnum.NUMBER:
227
191
  {
228
192
  const {
@@ -237,7 +201,6 @@ class ModelAttributeFormControl extends _react.Component {
237
201
  style: this.props.style
238
202
  }));
239
203
  }
240
-
241
204
  case FormControlTypeEnum.CODE_EDITOR:
242
205
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_codeEditorComponents.CodeEditor, (0, _extends2.default)({
243
206
  value: value,
@@ -260,7 +223,6 @@ class ModelAttributeFormControl extends _react.Component {
260
223
  color: "#fc5043"
261
224
  }
262
225
  }, _i18next.default.t(`${_constants.NS_LIBS_CMDB_INSTANCES}:${_constants.K.NOT_MEET_JSON}`)));
263
-
264
226
  case FormControlTypeEnum.TEXTAREA:
265
227
  case FormControlTypeEnum.MARKDOWN:
266
228
  {
@@ -273,7 +235,6 @@ class ModelAttributeFormControl extends _react.Component {
273
235
  rows: 5
274
236
  }));
275
237
  }
276
-
277
238
  case FormControlTypeEnum.STRUCT:
278
239
  case FormControlTypeEnum.LEGACY_STRUCT:
279
240
  return /*#__PURE__*/_react.default.createElement(_structComponents.AddStruct, {
@@ -285,25 +246,23 @@ class ModelAttributeFormControl extends _react.Component {
285
246
  style: this.props.style,
286
247
  isCreate: this.props.isCreate
287
248
  });
288
-
289
249
  case FormControlTypeEnum.RADIO:
290
250
  {
291
251
  let {
292
252
  items,
293
253
  required,
294
254
  readOnly
295
- } = restProps; // NODE: 对非必填单选为空的特殊处理 BY @robertman
255
+ } = restProps;
296
256
 
257
+ // NODE: 对非必填单选为空的特殊处理 BY @robertman
297
258
  const unselected = {
298
259
  id: null,
299
260
  // text: "暂不选择",
300
261
  text: _i18next.default.t(`${_constants.NS_LIBS_CMDB_INSTANCES}:${_constants.K.TEMPORARILY_NOT_CHOOSE}`)
301
262
  };
302
-
303
263
  if (!required) {
304
264
  items = [...items, unselected];
305
265
  }
306
-
307
266
  return /*#__PURE__*/_react.default.createElement(_antd.Radio.Group, {
308
267
  onChange: e => this.onChange(e),
309
268
  value: value !== undefined ? value : unselected.id,
@@ -315,7 +274,6 @@ class ModelAttributeFormControl extends _react.Component {
315
274
  key: String(item.id)
316
275
  }, item.text)));
317
276
  }
318
-
319
277
  case FormControlTypeEnum.TAGS:
320
278
  {
321
279
  const {
@@ -325,7 +283,8 @@ class ModelAttributeFormControl extends _react.Component {
325
283
  return /*#__PURE__*/_react.default.createElement(_antd.Select, {
326
284
  allowClear: true,
327
285
  mode: "tags",
328
- style: { ...this.props.style,
286
+ style: {
287
+ ...this.props.style,
329
288
  width: "100%"
330
289
  },
331
290
  disabled: readOnly,
@@ -335,18 +294,15 @@ class ModelAttributeFormControl extends _react.Component {
335
294
  className: this.props.className
336
295
  });
337
296
  }
338
-
339
297
  case FormControlTypeEnum.DATE:
340
298
  case FormControlTypeEnum.DATETIME:
341
299
  {
342
300
  let dateConfig = {};
343
-
344
301
  if (type === FormControlTypeEnum.DATETIME) {
345
302
  dateConfig = {
346
303
  showTime: true
347
304
  };
348
305
  }
349
-
350
306
  const {
351
307
  readOnly,
352
308
  placeholder
@@ -363,7 +319,6 @@ class ModelAttributeFormControl extends _react.Component {
363
319
  style: this.props.style
364
320
  }));
365
321
  }
366
-
367
322
  case FormControlTypeEnum.SELECT:
368
323
  {
369
324
  const {
@@ -387,7 +342,6 @@ class ModelAttributeFormControl extends _react.Component {
387
342
  key: id
388
343
  }, text)));
389
344
  }
390
-
391
345
  default:
392
346
  return (
393
347
  /*#__PURE__*/
@@ -415,7 +369,6 @@ class ModelAttributeFormControl extends _react.Component {
415
369
  objectId
416
370
  } = _props;
417
371
  const is = objectId;
418
-
419
372
  try {
420
373
  this.state = {
421
374
  value: _value,
@@ -433,24 +386,20 @@ class ModelAttributeFormControl extends _react.Component {
433
386
  };
434
387
  }
435
388
  }
436
-
437
389
  static computePattern(attribute) {
438
390
  try {
439
391
  if (attribute.value.type !== ModelAttributeValueType.ENUM && attribute.value.type !== ModelAttributeValueType.ENUMS && attribute.value.regex !== undefined && attribute.value.regex !== null) {
440
392
  // todo(jhuang): use `u` flag for compliance until https://github.com/angular/angular/pull/20819 is resolved
441
393
  return new RegExp(attribute.value.regex, "u");
442
394
  }
443
-
444
395
  return undefined;
445
396
  } catch (error) {
446
397
  return undefined;
447
398
  }
448
399
  }
449
-
450
400
  computeFormControlItems(attribute, isClusterType) {
451
401
  if (attribute.value.type === ModelAttributeValueType.ENUM || attribute.value.type === ModelAttributeValueType.ENUMS) {
452
402
  var _attribute$value$rege;
453
-
454
403
  // The backend guys are notorious to use `regex` as enum candidates. 😢
455
404
  return (_attribute$value$rege = attribute.value.regex) === null || _attribute$value$rege === void 0 ? void 0 : _attribute$value$rege.map(enumValue => ({
456
405
  id: enumValue,
@@ -458,7 +407,6 @@ class ModelAttributeFormControl extends _react.Component {
458
407
  }));
459
408
  }
460
409
  }
461
-
462
410
  static computeFormControlType(attribute, type, isSupportMultiStringValue) {
463
411
  switch (attribute.value.type) {
464
412
  case ModelAttributeValueType.STRING:
@@ -466,134 +414,108 @@ class ModelAttributeFormControl extends _react.Component {
466
414
  if (attribute.value.mode === ModelAttributeValueModeType.MULTIPLE_LINES) {
467
415
  return FormControlTypeEnum.TEXTAREA;
468
416
  }
469
-
470
417
  if (attribute.value.mode === ModelAttributeValueModeType.MARKDOWN) {
471
418
  return FormControlTypeEnum.MARKDOWN;
472
419
  }
473
-
474
420
  if (attribute.value.mode === ModelAttributeValueModeType.URL) {
475
421
  return FormControlTypeEnum.URL;
476
422
  }
477
423
  }
478
-
479
424
  /* falls through */
480
-
481
425
  case ModelAttributeValueType.IP:
482
426
  if (isSupportMultiStringValue) {
483
427
  return FormControlTypeEnum.TAGS;
484
428
  }
485
-
486
429
  return FormControlTypeEnum.TEXT;
487
-
488
430
  case ModelAttributeValueType.JSON:
489
431
  // return FormControlTypeEnum.TEXTAREA;
490
432
  return FormControlTypeEnum.CODE_EDITOR;
491
-
492
433
  case ModelAttributeValueType.ENUM:
493
434
  if (!attribute.value.regex || attribute.value.regex.length === 0) {
494
- throw new Error( // "请在资源模型管理中添加枚举值, 属性: " + attribute.name
435
+ throw new Error(
436
+ // "请在资源模型管理中添加枚举值, 属性: " + attribute.name
495
437
  _i18next.default.t(`${_constants.NS_LIBS_CMDB_INSTANCES}:${_constants.K.ENUM_ERROR_TIP}`, {
496
438
  attribute: attribute.name
497
439
  }));
498
440
  }
499
-
500
441
  if (attribute.value.regex && attribute.value.regex.length <= 5 && (!type || type === FormControlTypeEnum.RADIO)) {
501
442
  return FormControlTypeEnum.RADIO;
502
443
  }
503
-
504
444
  return FormControlTypeEnum.SELECT;
505
-
506
445
  case ModelAttributeValueType.INTEGER:
507
446
  case ModelAttributeValueType.FLOAT:
508
447
  return FormControlTypeEnum.NUMBER;
509
-
510
448
  case ModelAttributeValueType.DATE:
511
449
  return FormControlTypeEnum.DATE;
512
-
513
450
  case ModelAttributeValueType.DATETIME:
514
451
  return FormControlTypeEnum.DATETIME;
515
-
516
452
  case ModelAttributeValueType.ARR:
517
453
  return FormControlTypeEnum.TAGS;
518
-
519
454
  case ModelAttributeValueType.STRUCT:
520
455
  if (attribute.value.struct_define.length === 0) {
521
- throw new Error( // "请在资源模型中添加结构体属性, 属性: " + attribute.name
456
+ throw new Error(
457
+ // "请在资源模型中添加结构体属性, 属性: " + attribute.name
522
458
  _i18next.default.t(`${_constants.NS_LIBS_CMDB_INSTANCES}:${_constants.K.STRUCT_ERROR_TIP}`, {
523
459
  attribute: attribute.name
524
460
  }));
525
461
  }
526
-
527
462
  return FormControlTypeEnum.LEGACY_STRUCT;
528
-
529
463
  case ModelAttributeValueType.STRUCT_LIST:
530
464
  if (attribute.value.struct_define.length === 0) {
531
- throw new Error( // "请在资源模型中添加结构体属性, 属性: " + attribute.name
465
+ throw new Error(
466
+ // "请在资源模型中添加结构体属性, 属性: " + attribute.name
532
467
  _i18next.default.t(`${_constants.NS_LIBS_CMDB_INSTANCES}:${_constants.K.STRUCT_ERROR_TIP}`, {
533
468
  attribute: attribute.name
534
469
  }));
535
470
  }
536
-
537
471
  return FormControlTypeEnum.STRUCT;
538
-
539
472
  case ModelAttributeValueType.BOOLEAN:
540
473
  return FormControlTypeEnum.SELECT;
541
-
542
474
  case ModelAttributeValueType.ENUMS:
543
475
  return FormControlTypeEnum.SELECT;
544
-
545
476
  default:
546
477
  throw new Error(_i18next.default.t(`${_constants.NS_LIBS_CMDB_INSTANCES}:${_constants.K.TYPE_NO_SUPPORT_EDIT}`, {
547
478
  type: attribute.value.type
548
479
  }));
549
480
  }
550
481
  }
551
-
552
482
  static computePlaceholder(formControl) {
553
483
  if (formControl.id === "ip" && formControl.name === "ip") {
554
484
  return _i18next.default.t(`${_constants.NS_LIBS_CMDB_INSTANCES}:${_constants.K.IP_PLACEHOLDER}`);
555
485
  }
556
-
557
486
  const placeholders = [];
558
-
559
487
  switch (formControl.type) {
560
488
  case FormControlTypeEnum.SELECT:
561
489
  placeholders.push(_i18next.default.t(`${_constants.NS_LIBS_CMDB_INSTANCES}:${_constants.K.CLICK_TO_SELECT}`));
562
490
  break;
563
-
564
491
  case FormControlTypeEnum.DATETIME:
565
492
  case FormControlTypeEnum.DATE:
566
493
  placeholders.push(_i18next.default.t(`${_constants.NS_LIBS_CMDB_INSTANCES}:${_constants.K.CLICK_TO_SELECT}`));
567
494
  break;
568
-
569
495
  case FormControlTypeEnum.TAGS:
570
496
  placeholders.push(_i18next.default.t(`${_constants.NS_LIBS_CMDB_INSTANCES}:${_constants.K.ENTER_MULTIPLE_STRING_WITH_ENTER_KEY_AS_THE_SEPARATOR}`));
571
497
  break;
572
-
573
498
  case FormControlTypeEnum.NUMBER:
574
499
  placeholders.push(_i18next.default.t(`${_constants.NS_LIBS_CMDB_INSTANCES}:${_constants.K.NUMBER_INPUT_PLACEHOLDER}`));
575
500
  break;
576
-
577
501
  default:
578
502
  placeholders.push(_i18next.default.t(`${_constants.NS_LIBS_CMDB_INSTANCES}:${_constants.K.ADVANCE_SEARCH_SINGLE_INPUT_PLACEHOLDER}`));
579
503
  }
580
-
581
504
  if (formControl.pattern !== undefined) {
582
505
  // placeholders.push(`匹配正则 ${formControl.pattern}`);
583
506
  placeholders.push(_i18next.default.t(`${_constants.NS_LIBS_CMDB_INSTANCES}:${_constants.K.MATCHING_REGULAR}`, {
584
507
  regexp: formControl.pattern
585
508
  }));
586
509
  }
587
-
588
510
  if (formControl.unique) {
589
511
  // placeholders.push(`${formControl.label}唯一不能重复`);
590
512
  placeholders.push(_i18next.default.t(`${_constants.NS_LIBS_CMDB_INSTANCES}:${_constants.K.UNIQUE_NO_REPEAT}`, {
591
513
  label: formControl.label
592
514
  }));
593
515
  }
594
-
595
516
  return placeholders.join(",");
596
517
  }
518
+
597
519
  /*computeFormControlAndCatchError = () => {
598
520
  const { attribute, objectId } = this.props;
599
521
  try {
@@ -612,12 +534,9 @@ class ModelAttributeFormControl extends _react.Component {
612
534
  }
613
535
  };*/
614
536
 
615
-
616
537
  render() {
617
538
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, this.FormControlTypeMap());
618
539
  }
619
-
620
540
  }
621
-
622
541
  exports.ModelAttributeFormControl = ModelAttributeFormControl;
623
542
  //# sourceMappingURL=ModelAttributeFormControl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModelAttributeFormControl.js","names":["ModelAttributeValueType","ModelAttributeValueModeType","FormControlTypeEnum","boolOptions","id","text","ModelAttributeFormControl","Component","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","some","jsonValidateCollection","showError","restProps","errorMessage","state","jsonSchema","regex","JSON","parse","TEXT","placeholder","e","className","style","URL","NUMBER","CODE_EDITOR","validateJson","display","color","i18n","t","NS_LIBS_CMDB_INSTANCES","K","NOT_MEET_JSON","TEXTAREA","MARKDOWN","LEGACY_STRUCT","formData","RADIO","unselected","TEMPORARILY_NOT_CHOOSE","map","item","String","TAGS","width","DATE","DATETIME","dateConfig","showTime","formater","computeDateFormat","format","handleDateChange","SELECT","newValue","multiSelect","is","message","_PLAIN_TEXT","ENUM","ENUMS","RegExp","enumValue","clusterMap","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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"}
1
+ {"version":3,"file":"ModelAttributeFormControl.js","names":["ModelAttributeValueType","ModelAttributeValueModeType","FormControlTypeEnum","boolOptions","id","text","ModelAttributeFormControl","Component","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","some","jsonValidateCollection","showError","restProps","errorMessage","state","jsonSchema","regex","JSON","parse","TEXT","placeholder","e","className","style","URL","NUMBER","CODE_EDITOR","validateJson","display","color","i18n","t","NS_LIBS_CMDB_INSTANCES","K","NOT_MEET_JSON","TEXTAREA","MARKDOWN","LEGACY_STRUCT","formData","RADIO","unselected","TEMPORARILY_NOT_CHOOSE","map","item","String","TAGS","width","DATE","DATETIME","dateConfig","showTime","formater","computeDateFormat","format","handleDateChange","SELECT","newValue","multiSelect","is","message","_PLAIN_TEXT","ENUM","ENUMS","RegExp","enumValue","clusterMap","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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"}