@next-libs/cmdb-instances 6.14.1 → 6.16.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +44 -0
- package/dist/cjs/instance-detail/InstanceDetail.js +8 -1
- package/dist/cjs/instance-detail/InstanceDetail.js.map +1 -1
- package/dist/cjs/model-attribute-form/ModelAttributeForm.js +42 -26
- package/dist/cjs/model-attribute-form/ModelAttributeForm.js.map +1 -1
- package/dist/cjs/model-attribute-form-control/ModelAttributeFormControl.js +2 -1
- package/dist/cjs/model-attribute-form-control/ModelAttributeFormControl.js.map +1 -1
- package/dist/cjs/struct-components/AddStruct.js +2 -2
- package/dist/cjs/struct-components/AddStruct.js.map +1 -1
- package/dist/esm/instance-detail/InstanceDetail.js +10 -3
- package/dist/esm/instance-detail/InstanceDetail.js.map +1 -1
- package/dist/esm/model-attribute-form/ModelAttributeForm.js +69 -41
- package/dist/esm/model-attribute-form/ModelAttributeForm.js.map +1 -1
- package/dist/esm/model-attribute-form-control/ModelAttributeFormControl.js +2 -1
- package/dist/esm/model-attribute-form-control/ModelAttributeFormControl.js.map +1 -1
- package/dist/esm/struct-components/AddStruct.js +2 -2
- package/dist/esm/struct-components/AddStruct.js.map +1 -1
- package/dist/types/model-attribute-form/ModelAttributeForm.d.ts +3 -0
- package/dist/types/struct-components/AddStruct.d.ts +1 -0
- package/package.json +2 -2
|
@@ -4,7 +4,8 @@ import _objectSpread from "@babel/runtime/helpers/objectSpread2";
|
|
|
4
4
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
5
5
|
import React, { Component } from "react";
|
|
6
6
|
import { Form } from "@ant-design/compatible";
|
|
7
|
-
import { Button, Checkbox, Collapse } from "antd";
|
|
7
|
+
import { Button, Checkbox, Collapse, Tooltip } from "antd";
|
|
8
|
+
import { InfoCircleOutlined } from "@ant-design/icons";
|
|
8
9
|
import { FormControlTypeEnum, ModelAttributeFormControl, ModelAttributeValueType } from "../model-attribute-form-control/ModelAttributeFormControl";
|
|
9
10
|
import { AttributeFormControlUrl } from "../attribute-form-control-url/AttributeFormControlUrl";
|
|
10
11
|
import _, { get, isNil, keyBy } from "lodash";
|
|
@@ -60,36 +61,58 @@ export class ModelAttributeForm extends Component {
|
|
|
60
61
|
} : {}), this.props.objectId === "APP" ? appPermissionAuthorizers : {});
|
|
61
62
|
});
|
|
62
63
|
|
|
63
|
-
_defineProperty(this, "
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
continueCreating
|
|
70
|
-
} = _this.state;
|
|
64
|
+
_defineProperty(this, "validateFieldsCallback", /*#__PURE__*/function () {
|
|
65
|
+
var _ref = _asyncToGenerator(function* (err, values) {
|
|
66
|
+
if (!err) {
|
|
67
|
+
var {
|
|
68
|
+
continueCreating
|
|
69
|
+
} = _this.state;
|
|
71
70
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
var result = yield _this.props.onSubmit({
|
|
77
|
-
continueCreating,
|
|
78
|
-
values: _this.props.enabledWhiteList && _this.props.permissionList ? _this.valuesProcess(values) : values
|
|
79
|
-
});
|
|
71
|
+
_this.setState({
|
|
72
|
+
sending: true
|
|
73
|
+
});
|
|
80
74
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
75
|
+
var result = yield _this.props.onSubmit({
|
|
76
|
+
continueCreating,
|
|
77
|
+
values: _this.props.enabledWhiteList && _this.props.permissionList ? _this.valuesProcess(values) : values
|
|
78
|
+
});
|
|
84
79
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
});
|
|
80
|
+
if (result !== "error" && continueCreating) {
|
|
81
|
+
_this.props.form.resetFields();
|
|
88
82
|
}
|
|
83
|
+
|
|
84
|
+
_this.setState({
|
|
85
|
+
sending: false
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
return function (_x, _x2) {
|
|
91
|
+
return _ref.apply(this, arguments);
|
|
92
|
+
};
|
|
93
|
+
}());
|
|
94
|
+
|
|
95
|
+
_defineProperty(this, "handleSubmit", e => {
|
|
96
|
+
e.preventDefault();
|
|
97
|
+
this.props.scrollToFirstError ? this.props.form.validateFieldsAndScroll({
|
|
98
|
+
scroll: {
|
|
99
|
+
offsetTop: this.props.offsetTop || 60
|
|
100
|
+
}
|
|
101
|
+
}, /*#__PURE__*/function () {
|
|
102
|
+
var _ref2 = _asyncToGenerator(function* (err, values) {
|
|
103
|
+
yield _this.validateFieldsCallback(err, values);
|
|
89
104
|
});
|
|
90
105
|
|
|
91
|
-
return function (
|
|
92
|
-
return
|
|
106
|
+
return function (_x3, _x4) {
|
|
107
|
+
return _ref2.apply(this, arguments);
|
|
108
|
+
};
|
|
109
|
+
}()) : this.props.form.validateFields( /*#__PURE__*/function () {
|
|
110
|
+
var _ref3 = _asyncToGenerator(function* (err, values) {
|
|
111
|
+
yield _this.validateFieldsCallback(err, values);
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
return function (_x5, _x6) {
|
|
115
|
+
return _ref3.apply(this, arguments);
|
|
93
116
|
};
|
|
94
117
|
}());
|
|
95
118
|
});
|
|
@@ -165,8 +188,8 @@ export class ModelAttributeForm extends Component {
|
|
|
165
188
|
var _basicInfoAttr$tag, _left_tags;
|
|
166
189
|
|
|
167
190
|
var groupTag = (basicInfoAttr === null || basicInfoAttr === void 0 ? void 0 : (_basicInfoAttr$tag = basicInfoAttr.tag) === null || _basicInfoAttr$tag === void 0 ? void 0 : _basicInfoAttr$tag[0]) || (basicInfoAttr === null || basicInfoAttr === void 0 ? void 0 : (_left_tags = basicInfoAttr.left_tags) === null || _left_tags === void 0 ? void 0 : _left_tags[0]) || DEFAULT_ATTRIBUTE_TAG;
|
|
168
|
-
var attrs = AttrListGroupByTag.find(
|
|
169
|
-
var [key] =
|
|
191
|
+
var attrs = AttrListGroupByTag.find(_ref4 => {
|
|
192
|
+
var [key] = _ref4;
|
|
170
193
|
return key === groupTag;
|
|
171
194
|
}); // 判断是否为黑名单内的属性
|
|
172
195
|
|
|
@@ -190,19 +213,19 @@ export class ModelAttributeForm extends Component {
|
|
|
190
213
|
|
|
191
214
|
static getFieldsByTag(attributeList, fieldsByTag, modelData) {
|
|
192
215
|
var map = new Map([]);
|
|
193
|
-
fieldsByTag.forEach(
|
|
216
|
+
fieldsByTag.forEach(_ref5 => {
|
|
194
217
|
var {
|
|
195
218
|
name,
|
|
196
219
|
fields
|
|
197
|
-
} =
|
|
220
|
+
} = _ref5;
|
|
198
221
|
|
|
199
222
|
if (!map.has(name)) {
|
|
200
223
|
map.set(name, []);
|
|
201
224
|
fields.forEach(field => {
|
|
202
|
-
var appendAttr = modelData ? modelData.__fieldList.find(__field => __field.__id === field) : attributeList.find(
|
|
225
|
+
var appendAttr = modelData ? modelData.__fieldList.find(__field => __field.__id === field) : attributeList.find(_ref6 => {
|
|
203
226
|
var {
|
|
204
227
|
id
|
|
205
|
-
} =
|
|
228
|
+
} = _ref6;
|
|
206
229
|
return id === field;
|
|
207
230
|
});
|
|
208
231
|
|
|
@@ -244,11 +267,9 @@ export class ModelAttributeForm extends Component {
|
|
|
244
267
|
get disabled() {
|
|
245
268
|
var {
|
|
246
269
|
sending
|
|
247
|
-
} = this.state;
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
} = this.props.form;
|
|
251
|
-
return this.handleFormErrors(getFieldsError()) || sending;
|
|
270
|
+
} = this.state; // const { getFieldsError } = this.props.form;
|
|
271
|
+
|
|
272
|
+
return sending;
|
|
252
273
|
} // get submitBtnText() {
|
|
253
274
|
// return this.props.isCreate
|
|
254
275
|
// ? i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.SAVE}`)
|
|
@@ -339,8 +360,8 @@ export class ModelAttributeForm extends Component {
|
|
|
339
360
|
var {
|
|
340
361
|
getFieldDecorator
|
|
341
362
|
} = form;
|
|
342
|
-
var defaultActiveKey = this.state.attrListGroupByTag.map(
|
|
343
|
-
var [key] =
|
|
363
|
+
var defaultActiveKey = this.state.attrListGroupByTag.map(_ref7 => {
|
|
364
|
+
var [key] = _ref7;
|
|
344
365
|
return key;
|
|
345
366
|
});
|
|
346
367
|
|
|
@@ -352,8 +373,8 @@ export class ModelAttributeForm extends Component {
|
|
|
352
373
|
bordered: false,
|
|
353
374
|
defaultActiveKey: defaultActiveKey,
|
|
354
375
|
className: styles.collapseStyle
|
|
355
|
-
}, this.state.attrListGroupByTag.map(
|
|
356
|
-
var [tag, list] =
|
|
376
|
+
}, this.state.attrListGroupByTag.map(_ref8 => {
|
|
377
|
+
var [tag, list] = _ref8;
|
|
357
378
|
return /*#__PURE__*/React.createElement(Panel, {
|
|
358
379
|
header: tag,
|
|
359
380
|
key: tag,
|
|
@@ -362,7 +383,14 @@ export class ModelAttributeForm extends Component {
|
|
|
362
383
|
var _attribute$value;
|
|
363
384
|
|
|
364
385
|
return attribute.__isRelation ? this.renderRelationFormControl(attribute) : /*#__PURE__*/React.createElement(Form.Item, _extends({
|
|
365
|
-
label: attribute.name,
|
|
386
|
+
label: /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement("span", null, attribute.name), attribute.description && attribute.description !== "" && /*#__PURE__*/React.createElement(Tooltip, {
|
|
387
|
+
title: attribute.description
|
|
388
|
+
}, /*#__PURE__*/React.createElement(InfoCircleOutlined, {
|
|
389
|
+
style: {
|
|
390
|
+
padding: "0 2px",
|
|
391
|
+
color: "var(--theme-blue-color)"
|
|
392
|
+
}
|
|
393
|
+
}))),
|
|
366
394
|
key: attribute.name
|
|
367
395
|
}, this.formItemProps), getFieldDecorator(attribute.id, {
|
|
368
396
|
rules: this.rules(attribute),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/model-attribute-form/ModelAttributeForm.tsx"],"names":["React","Component","Form","Button","Checkbox","Collapse","FormControlTypeEnum","ModelAttributeFormControl","ModelAttributeValueType","AttributeFormControlUrl","_","get","isNil","keyBy","CmdbInstancesSelectPanel","modifyModelData","styles","UserOrUserGroupSelect","permissionListMapOfApp","i18n","K","NS_LIBS_CMDB_INSTANCES","DEFAULT_ATTRIBUTE_TAG","ModelAttributeForm","constructor","props","labelCol","span","wrapperCol","key","includes","values","appPermissionAuthorizers","Object","forEach","r","selectedUser","concat","selectedUserGroup","deleteAuthorizers","readAuthorizers","updateAuthorizers","objectId","operateAuthorizers","e","preventDefault","form","validateFields","err","continueCreating","state","setState","sending","result","onSubmit","enabledWhiteList","permissionList","valuesProcess","resetFields","target","checked","relation","InitialRelationValue","attributeFormControlInitialValueMap","left_id","initialValue","map","instanceData","instanceId","left_name","formItemProps","getFieldDecorator","isFilterView","right_object_id","modelMap","t","ADD","left_max","showDetailUrl","onCancel","objectList","modelData","hideModelData","view","hide_columns","AttrListGroupByTag","fieldsByTag","items","fields","filter","item","name","getFieldsByTag","basicInfoAttrList","basicInfoAttr","groupTag","tag","left_tags","attrs","find","blackList","id","push","attrListGroupByTag","showError","attributeList","Map","has","set","field","appendAttr","__fieldList","__field","__id","undefined","Array","from","sortAttributeList","tagList","store","prop","v","handleFormErrors","fieldsError","keys","some","disabled","getFieldsError","tagsValidator","attribute","rule","value","callback","isArray","NOT_MEET_REGEX","isValidAll","every","computePattern","test","urlValidator","url","breakDownValue","rules","required","requiredRule","IP","STRING","JSON","type","whitespace","message","ATTRIBUTE_NAME_REQUIRED","attribute_name","computeFormControlType","regex","INTEGER","ENUMS","URL","validator","TAGS","pattern","error","render","Panel","brickList","allowContinueCreate","showCancelButton","cancelText","cancelType","defaultActiveKey","brick","collapse","collapseStyle","list","index","__isRelation","renderRelationFormControl","isString","stringify","isCreate","header","label","element","getFieldsValue","options","PERMISSION_WHITELIST","remark","permissionAttrProcess","action","objectListOfUser","submitContainer","borderTop","paddingTop","paddingLeft","handleCheckContinueCreating","CREATE_ANOTHER","handleSubmit","SAVE","marginLeft","handleCancel","CANCEL","InstanceModelAttributeForm","create"],"mappings":";;;;AAAA,OAAOA,KAAP,IAAgBC,SAAhB,QAA4C,OAA5C;AACA,SAASC,IAAT,QAAqB,wBAArB;AACA,SAASC,MAAT,EAAiBC,QAAjB,EAA2BC,QAA3B,QAA2C,MAA3C;AAYA,SACEC,mBADF,EAEEC,yBAFF,EAGEC,uBAHF,QAIO,2DAJP;AAKA,SAASC,uBAAT,QAAwC,uDAAxC;AACA,OAAOC,CAAP,IAAYC,GAAZ,EAAiBC,KAAjB,EAAwBC,KAAxB,QAAqC,QAArC;AAEA,SAASC,wBAAT,QAAyC,yDAAzC;AACA,SAKEC,eALF,QAMO,uBANP;AAOA,OAAOC,MAAP,MAAmB,iCAAnB;AACA,SAASC,qBAAT,QAAsC,eAAtC;AACA,SAASC,sBAAT,QAAuC,aAAvC;AACA,OAAOC,IAAP,MAAiB,SAAjB;AACA,SAASC,CAAT,EAAYC,sBAAZ,QAA0C,mBAA1C;AACA,IAAMC,qBAAqB,GAAG,MAA9B;AAiDA,OAAO,MAAMC,kBAAN,SAAiCtB,SAAjC,CAGL;AAcAuB,EAAAA,WAAW,CAACC,KAAD,EAAiC;AAAA;;AAC1C,UAAMA,KAAN,CAD0C;AAAA;;AAAA,sCAb4B,EAa5B;;AAAA,uCAZa,IAYb;;AAAA,2CALb;AAC7BC,MAAAA,QAAQ,EAAE;AAAEC,QAAAA,IAAI,EAAE;AAAR,OADmB;AAE7BC,MAAAA,UAAU,EAAE;AAAED,QAAAA,IAAI,EAAE;AAAR;AAFiB,KAKa;;AAAA,mDAkHnBE,GAAD,IAAiB;AACvC,UAAIA,GAAG,CAACC,QAAJ,CAAa,iBAAb,CAAJ,EAAqC,OAAO,iBAAP;AACrC,UAAID,GAAG,CAACC,QAAJ,CAAa,iBAAb,CAAJ,EAAqC,OAAO,mBAAP;AACrC,UAAID,GAAG,CAACC,QAAJ,CAAa,iBAAb,CAAJ,EAAqC,OAAO,mBAAP,CAHE,CAIvC;;AACA,UAAID,GAAG,CAACC,QAAJ,CAAa,kBAAb,CAAJ,EAAsC,OAAO,oBAAP,CALC,CAMvC;;AACA,aAAOZ,sBAAsB,CAACW,GAAD,CAAtB,IAA+BA,GAAtC;AACD,KA1H2C;;AAAA,2CA4H3BE,MAAD,IAAiC;AAC/C,UAAMC,wBAA6C,GAAG,EAAtD;AACAC,MAAAA,MAAM,CAACF,MAAP,CAAcb,sBAAd,EAAsCgB,OAAtC,CAA+CC,CAAD,IAAO;AACnDH,QAAAA,wBAAwB,CAACG,CAAD,CAAxB,GAA8BJ,MAAM,CAACI,CAAD,CAAN,GAC1BJ,MAAM,CAACI,CAAD,CAAN,CAAUC,YAAV,CAAuBC,MAAvB,CAA8BN,MAAM,CAACI,CAAD,CAAN,CAAUG,iBAAxC,CAD0B,GAE1B,EAFJ;AAGD,OAJD;AAKA,2DACKP,MADL;AAEEQ,QAAAA,iBAAiB,EAAER,MAAM,CAACQ,iBAAP,GACfR,MAAM,CAACQ,iBAAP,CAAyBH,YAAzB,CAAsCC,MAAtC,CACEN,MAAM,CAACQ,iBAAP,CAAyBD,iBAD3B,CADe,GAIf,EANN;AAOEE,QAAAA,eAAe,EAAET,MAAM,CAACS,eAAP,GACbT,MAAM,CAACS,eAAP,CAAuBJ,YAAvB,CAAoCC,MAApC,CACEN,MAAM,CAACS,eAAP,CAAuBF,iBADzB,CADa,GAIb,EAXN;AAYEG,QAAAA,iBAAiB,EAAEV,MAAM,CAACU,iBAAP,GACfV,MAAM,CAACU,iBAAP,CAAyBL,YAAzB,CAAsCC,MAAtC,CACEN,MAAM,CAACU,iBAAP,CAAyBH,iBAD3B,CADe,GAIf;AAhBN,SAiBM,KAAKb,KAAL,CAAWiB,QAAX,KAAwB,MAAxB,GACA;AACEC,QAAAA,kBAAkB,EAAEZ,MAAM,CAACY,kBAAP,GAChBZ,MAAM,CAACY,kBAAP,CAA0BP,YAA1B,CAAuCC,MAAvC,CACEN,MAAM,CAACY,kBAAP,CAA0BL,iBAD5B,CADgB,GAIhB;AALN,OADA,GAQA,EAzBN,GA0BM,KAAKb,KAAL,CAAWiB,QAAX,KAAwB,KAAxB,GAAgCV,wBAAhC,GAA2D,EA1BjE;AA4BD,KA/J2C;;AAAA,0CAiK5BY,CAAD,IAAkB;AAC/BA,MAAAA,CAAC,CAACC,cAAF;AACA,WAAKpB,KAAL,CAAWqB,IAAX,CAAgBC,cAAhB;AAAA,qCAA+B,WAAOC,GAAP,EAAYjB,MAAZ,EAAuB;AACpD,cAAI,CAACiB,GAAL,EAAU;AACR,gBAAM;AAAEC,cAAAA;AAAF,gBAAuB,KAAI,CAACC,KAAlC;;AACA,YAAA,KAAI,CAACC,QAAL,CAAc;AAAEC,cAAAA,OAAO,EAAE;AAAX,aAAd;;AACA,gBAAMC,MAAM,SAAS,KAAI,CAAC5B,KAAL,CAAW6B,QAAX,CAAoB;AACvCL,cAAAA,gBADuC;AAEvClB,cAAAA,MAAM,EACJ,KAAI,CAACN,KAAL,CAAW8B,gBAAX,IAA+B,KAAI,CAAC9B,KAAL,CAAW+B,cAA1C,GACI,KAAI,CAACC,aAAL,CAAmB1B,MAAnB,CADJ,GAEIA;AALiC,aAApB,CAArB;;AAOA,gBAAIsB,MAAM,KAAK,OAAX,IAAsBJ,gBAA1B,EAA4C;AAC1C,cAAA,KAAI,CAACxB,KAAL,CAAWqB,IAAX,CAAgBY,WAAhB;AACD;;AACD,YAAA,KAAI,CAACP,QAAL,CAAc;AAAEC,cAAAA,OAAO,EAAE;AAAX,aAAd;AACD;AACF,SAhBD;;AAAA;AAAA;AAAA;AAAA;AAiBD,KApL2C;;AAAA,yDAgSbR,CAAD,IAAY;AACxC,WAAKO,QAAL,CAAc;AAAEF,QAAAA,gBAAgB,EAAEL,CAAC,CAACe,MAAF,CAASC;AAA7B,OAAd;AACD,KAlS2C;;AAAA,uDAqS1CC,QAD0B,IAEvB;AACH,UAAMC,oBAAoB,GAAGnD,GAAG,CAC9B,KAAKc,KAAL,CAAWsC,mCADmB,EAE9BF,QAAQ,CAACG,OAFqB,CAAhC;AAIA,UAAMC,YAAY,GAAGH,oBAAoB,GACrCA,oBAAoB,CAACI,GAArB,CAA0BC,YAAD,IAAuBA,YAAY,CAACC,UAA7D,CADqC,GAErC,EAFJ;AAIA,0BACE,oBAAC,IAAD,CAAM,IAAN;AACE,QAAA,KAAK,EAAEP,QAAQ,CAACQ,SADlB;AAEE,QAAA,GAAG,EAAER,QAAQ,CAACG;AAFhB,SAGM,KAAKM,aAHX,GAKG,KAAK7C,KAAL,CAAWqB,IAAX,CAAgByB,iBAAhB,CAAkCV,QAAQ,CAACG,OAA3C,EAAoD;AAAEC,QAAAA;AAAF,OAApD,gBACC,oBAAC,wBAAD;AACE,QAAA,YAAY,EAAE,KAAKxC,KAAL,CAAW+C,YAD3B;AAEE,QAAA,QAAQ,EAAEX,QAAQ,CAACY,eAFrB;AAGE,QAAA,SAAS,EAAE,KAAKC,QAHlB;AAIE,QAAA,QAAQ,EAAEvD,IAAI,CAACwD,CAAL,WAAUtD,sBAAV,cAAoCD,CAAC,CAACwD,GAAtC,EAJZ;AAKE,QAAA,YAAY,EAAEf,QAAQ,CAACgB,QAAT,KAAsB,CALtC;AAME,QAAA,SAAS,EAAE,IANb;AAOE,QAAA,aAAa,EAAE,KAAKpD,KAAL,CAAWqD;AAP5B,QADD,CALH,CADF;AAmBD,KAlU2C;;AAAA,0CAoU7B,MAAM;AAAA;;AACnB,kDAAKrD,KAAL,EAAWsD,QAAX;AACD,KAtU2C;;AAE1C,QAAI,KAAKtD,KAAL,CAAWuD,UAAf,EAA2B;AACzB,WAAKN,QAAL,GAAgB7D,KAAK,CAAC,KAAKY,KAAL,CAAWuD,UAAZ,EAAwB,UAAxB,CAArB;AACD,KAJyC,CAK1C;;;AACA,QAAI,KAAKvD,KAAL,CAAWwD,SAAf,EAA0B;AACxB,WAAKA,SAAL,GAAiBlE,eAAe,CAAC,KAAKU,KAAL,CAAWwD,SAAZ,CAAhC;AACD,KAFD,MAEO;AACL,UAAI,KAAKxD,KAAL,CAAWuD,UAAf,EAA2B;AACzB,aAAKC,SAAL,GAAiBlE,eAAe,CAAC,KAAK2D,QAAL,CAAc,KAAKjD,KAAL,CAAWiB,QAAzB,CAAD,CAAhC;AACD;AACF;;AAED,QAAMwC,aAAuB,GAAG,KAAKD,SAAL,CAAeE,IAAf,CAAoBC,YAApB,IAAoC,EAApE;AACA,QAAIC,kBAA2C,GAAG,EAAlD;AACA,QAAIC,WAAJ;;AACA,QAAI7D,KAAK,CAAC6C,aAAV,EAAyB;AACvB,WAAKA,aAAL,GAAqB7C,KAAK,CAAC6C,aAA3B;AACD;;AACD,QAAI7C,KAAK,CAAC6D,WAAV,EAAuB;AACrBA,MAAAA,WAAW,GAAG,KAAK7D,KAAL,CAAW6D,WAAX,CAAuBpB,GAAvB,CAA4BqB,KAAD,IAAW;AAClD,YAAIC,MAAJ;;AACA,YAAID,KAAK,CAACC,MAAV,EAAkB;AAChBA,UAAAA,MAAM,GAAGD,KAAK,CAACC,MAAN,CAAaC,MAAb,CACNC,IAAD,IAAUA,IAAI,IAAI,CAACR,aAAa,CAACpD,QAAd,CAAuB4D,IAAvB,CADZ,CAAT;AAGD;;AACD,eAAO;AACLC,UAAAA,IAAI,EAAEJ,KAAK,CAACI,IADP;AAELH,UAAAA;AAFK,SAAP;AAID,OAXa,CAAd;AAYAH,MAAAA,kBAAkB,GAAG9D,kBAAkB,CAACqE,cAAnB,CACnB,KAAKnE,KAAL,CAAWoE,iBADQ,EAEnBP,WAFmB,EAGnB,KAAKL,SAHc,CAArB;AAKD,KAlBD,MAkBO;AACLxD,MAAAA,KAAK,CAACoE,iBAAN,CAAwB3D,OAAxB,CAAiC4D,aAAD,IAAmB;AAAA;;AACjD,YAAMC,QAAQ,GACZ,CAAAD,aAAa,SAAb,IAAAA,aAAa,WAAb,kCAAAA,aAAa,CAAEE,GAAf,0EAAqB,CAArB,OACCF,aADD,aACCA,aADD,qCACCA,aAAD,CAAwBG,SADxB,+CACA,WAAoC,CAApC,CADA,KAEA3E,qBAHF;AAKA,YAAM4E,KAAK,GAAGb,kBAAkB,CAACc,IAAnB,CAAwB;AAAA,cAAC,CAACtE,GAAD,CAAD;AAAA,iBAAWA,GAAG,KAAKkE,QAAnB;AAAA,SAAxB,CAAd,CANiD,CAOjD;;AACA,YACEnF,KAAK,CAACa,KAAK,CAAC2E,SAAP,CAAL,IACA,CAAC3E,KAAK,CAAC2E,SAAN,CAAgBtE,QAAhB,CAAyBgE,aAAa,CAACO,EAAvC,CAFH,EAGE;AACA,cAAIH,KAAJ,EAAW;AACTA,YAAAA,KAAK,CAAC,CAAD,CAAL,CAASI,IAAT,CAAcR,aAAd;AACD,WAFD,MAEO;AACLT,YAAAA,kBAAkB,CAACiB,IAAnB,CAAwB,CAACP,QAAD,EAAW,CAACD,aAAD,CAAX,CAAxB;AACD;AACF;AACF,OAlBD;AAmBD;;AACD,SAAK5C,KAAL,GAAa;AACXE,MAAAA,OAAO,EAAE,KADE;AAEXmD,MAAAA,kBAAkB,EAAElB,kBAFT;AAGXpC,MAAAA,gBAAgB,EAAE,KAHP;AAIXuD,MAAAA,SAAS,EAAE;AAJA,KAAb;AAMD;;AAEoB,SAAdZ,cAAc,CACnBa,aADmB,EAEnBnB,WAFmB,EAGnBL,SAHmB,EAIM;AACzB,QAAMf,GAAG,GAAG,IAAIwC,GAAJ,CAAuD,EAAvD,CAAZ;AAEApB,IAAAA,WAAW,CAACpD,OAAZ,CAAoB,SAAsB;AAAA,UAArB;AAAEyD,QAAAA,IAAF;AAAQH,QAAAA;AAAR,OAAqB;;AACxC,UAAI,CAACtB,GAAG,CAACyC,GAAJ,CAAQhB,IAAR,CAAL,EAAoB;AAClBzB,QAAAA,GAAG,CAAC0C,GAAJ,CAAQjB,IAAR,EAAc,EAAd;AACAH,QAAAA,MAAM,CAACtD,OAAP,CAAgB2E,KAAD,IAAW;AACxB,cAAMC,UAAU,GAAG7B,SAAS,GACxBA,SAAS,CAAC8B,WAAV,CAAsBZ,IAAtB,CAA4Ba,OAAD,IAAaA,OAAO,CAACC,IAAR,KAAiBJ,KAAzD,CADwB,GAExBJ,aAAa,CAACN,IAAd,CAAmB;AAAA,gBAAC;AAAEE,cAAAA;AAAF,aAAD;AAAA,mBAAYA,EAAE,KAAKQ,KAAnB;AAAA,WAAnB,CAFJ;;AAGA,cAAIC,UAAU,KAAKI,SAAnB,EAA8B;AAC5BhD,YAAAA,GAAG,CAAC0C,GAAJ,CAAQjB,IAAR,EAAc,CAAC,GAAGzB,GAAG,CAACvD,GAAJ,CAAQgF,IAAR,CAAJ,EAAmBmB,UAAnB,CAAd;AACD;AACF,SAPD;AAQD;AACF,KAZD;AAcA,WAAOK,KAAK,CAACC,IAAN,CAAWlD,GAAX,CAAP;AACD;;AAEuB,SAAjBmD,iBAAiB,CACtBZ,aADsB,EAEtBa,OAFsB,EAGkC;AACxD,QAAMC,KAA6D,GAAG,EAAtE;AACA;;AAFwD,0BAG7CvB,GAH6C;AAItD,UAAI,CAACuB,KAAK,CAACvB,GAAD,CAAV,EAAiB;AACfuB,QAAAA,KAAK,CAACvB,GAAD,CAAL,GAAa,EAAb;AACD;;AAEDsB,MAAAA,OAAO,CAACtB,GAAD,CAAP,CAAa9D,OAAb,CAAsBsF,IAAD,IAAU;AAC7B,YAAMnE,MAAM,GAAGoD,aAAa,CAACT,GAAD,CAAb,CAAmBG,IAAnB,CAAyBsB,CAAD,IAAOA,CAAC,CAACpB,EAAF,KAASmB,IAAxC,CAAf;AACAD,QAAAA,KAAK,CAACvB,GAAD,CAAL,CAAWM,IAAX,CAAgBjD,MAAhB;AACD,OAHD;AARsD;;AAGxD,SAAK,IAAM2C,GAAX,IAAkBsB,OAAlB,EAA2B;AAAA,YAAhBtB,GAAgB;AAS1B;;AAED,WAAOuB,KAAP;AACD;;AAEDG,EAAAA,gBAAgB,CAACC,WAAD,EAAoD;AAClE,WAAO1F,MAAM,CAAC2F,IAAP,CAAYD,WAAZ,EAAyBE,IAAzB,CAA+BhB,KAAD,IAAWc,WAAW,CAACd,KAAD,CAApD,CAAP;AACD;;AAqEW,MAARiB,QAAQ,GAAY;AACtB,QAAM;AAAE1E,MAAAA;AAAF,QAAc,KAAKF,KAAzB;AACA,QAAM;AAAE6E,MAAAA;AAAF,QAAqB,KAAKtG,KAAL,CAAWqB,IAAtC;AACA,WAAO,KAAK4E,gBAAL,CAAsBK,cAAc,EAApC,KAA2C3E,OAAlD;AACD,GAxMD,CA0MA;AACA;AACA;AACA;AACA;;;AAEoB,SAAb4E,aAAa,CAClBC,SADkB,EAEsD;AACxE,WAAO,CAACC,IAAD,EAAYC,KAAZ,EAA6BC,QAA7B,KAAkE;AACvE,UAAI,CAACD,KAAL,EAAY;AACV,eAAOC,QAAQ,EAAf;AACD;;AACD,UAAI,CAACjB,KAAK,CAACkB,OAAN,CAAcF,KAAd,CAAL,EAA2B;AACzB,eAAOC,QAAQ,CACbjH,IAAI,CAACwD,CAAL,WAAUtD,sBAAV,cAAoCD,CAAC,CAACkH,cAAtC,EADa,CAAf;AAGD;;AAED,UAAMC,UAAU,GAAGJ,KAAK,CAACK,KAAN,CAAaf,CAAD,IAC7BlH,yBAAyB,CAACkI,cAA1B,CAAyCR,SAAzC,EAAoDS,IAApD,CAAyDjB,CAAzD,CADiB,CAAnB;AAIAc,MAAAA,UAAU,GACNH,QAAQ,EADF,GAENA,QAAQ,CAACjH,IAAI,CAACwD,CAAL,WAAUtD,sBAAV,cAAoCD,CAAC,CAACkH,cAAtC,EAAD,CAFZ;AAGD,KAjBD;AAkBD;;AAEkB,SAAZK,YAAY,CACjBV,SADiB,EAEqD;AACtE,WAAO,CAACC,IAAD,EAAYC,KAAZ,EAA2BC,QAA3B,KAAgE;AACrE,UAAM;AAAEQ,QAAAA;AAAF,UAAUnI,uBAAuB,CAACoI,cAAxB,CAAuCV,KAAvC,CAAhB;AACA5H,MAAAA,yBAAyB,CAACkI,cAA1B,CAAyCR,SAAzC,EAAoDS,IAApD,CAAyDE,GAAzD,IACIR,QAAQ,EADZ,GAEIA,QAAQ,CAACjH,IAAI,CAACwD,CAAL,WAAUtD,sBAAV,cAAoCD,CAAC,CAACkH,cAAtC,EAAD,CAFZ;AAGD,KALD;AAMD;;AAEDQ,EAAAA,KAAK,CAACb,SAAD,EAAmE;AACtE;AACA,QAAMc,QAAQ,GAAGd,SAAS,CAACc,QAAV,KAAuB,OAAxC;AACA,QAAMC,YAAY,GAAG,CACnBxI,uBAAuB,CAACyI,EADL,EAEnBzI,uBAAuB,CAAC0I,MAFL,EAGnB1I,uBAAuB,CAAC2I,IAHL,EAInBrH,QAJmB,CAIVmG,SAAS,CAACE,KAAV,CAAgBiB,IAJN,IAKjB;AACEL,MAAAA,QADF;AAEEM,MAAAA,UAAU,EAAEN,QAFd;AAGEO,MAAAA,OAAO,EAAEnI,IAAI,CAACwD,CAAL,WACJtD,sBADI,cACsBD,CAAC,CAACmI,uBADxB,GAEP;AAAEC,QAAAA,cAAc,EAAEvB,SAAS,CAACtC;AAA5B,OAFO;AAHX,KALiB,GAajB;AACEoD,MAAAA,QADF;AAEEO,MAAAA,OAAO,EAAEnI,IAAI,CAACwD,CAAL,WACJtD,sBADI,cACsBD,CAAC,CAACmI,uBADxB,GAEP;AAAEC,QAAAA,cAAc,EAAEvB,SAAS,CAACtC;AAA5B,OAFO;AAFX,KAbJ;;AAoBA,QAAI;AACF,UAAMyD,IAAI,GAAG7I,yBAAyB,CAACkJ,sBAA1B,CAAiDxB,SAAjD,CAAb;;AACA,UACEA,SAAS,CAACE,KAAV,CAAgBuB,KAAhB,KAA0B,IAA1B,IACAzB,SAAS,CAACE,KAAV,CAAgBiB,IAAhB,KAAyB5I,uBAAuB,CAACmJ,OADjD,IAEA1B,SAAS,CAACE,KAAV,CAAgBiB,IAAhB,KAAyB5I,uBAAuB,CAACoJ,KAHnD,EAIE;AACA,eAAO,CAACZ,YAAD,CAAP;AACD;;AAED,UAAII,IAAI,KAAK9I,mBAAmB,CAACuJ,GAAjC,EAAsC;AACpC,eAAO,CACLb,YADK,EAEL;AAAEc,UAAAA,SAAS,EAAEvI,kBAAkB,CAACoH,YAAnB,CAAgCV,SAAhC;AAAb,SAFK,CAAP;AAID;;AAED,UAAImB,IAAI,KAAK9I,mBAAmB,CAACyJ,IAAjC,EAAuC;AACrC,eAAO,CACLf,YADK,EAEL;AAAEc,UAAAA,SAAS,EAAEvI,kBAAkB,CAACyG,aAAnB,CAAiCC,SAAjC;AAAb,SAFK,CAAP;AAID;;AAED,aAAO,CACLe,YADK,EAEL;AACEgB,QAAAA,OAAO,EAAEzJ,yBAAyB,CAACkI,cAA1B,CAAyCR,SAAzC,CADX;AAEEqB,QAAAA,OAAO,EAAEnI,IAAI,CAACwD,CAAL,WAAUtD,sBAAV,cAAoCD,CAAC,CAACkH,cAAtC;AAFX,OAFK,CAAP;AAOD,KA/BD,CA+BE,OAAO2B,KAAP,EAAc;AACd;AACA,aAAO,CAACjB,YAAD,CAAP;AACD;AACF;;AA0CDkB,EAAAA,MAAM,GAAoB;AACxB,QAAMC,KAAK,GAAG9J,QAAQ,CAAC8J,KAAvB;AACA,QAAM;AACJrH,MAAAA,IADI;AAEJiB,MAAAA,mCAFI;AAGJqG,MAAAA,SAHI;AAIJC,MAAAA,mBAJI;AAKJC,MAAAA,gBALI;AAMJC,MAAAA,UANI;AAOJC,MAAAA;AAPI,QAQF,KAAK/I,KART;AASA,QAAM;AAAE8C,MAAAA;AAAF,QAAwBzB,IAA9B;AAEA,QAAI2H,gBAAgB,GAAG,KAAKvH,KAAL,CAAWqD,kBAAX,CAA8BrC,GAA9B,CAAkC;AAAA,UAAC,CAACrC,GAAD,CAAD;AAAA,aAAWA,GAAX;AAAA,KAAlC,CAAvB;;AAEA,QAAIsF,KAAK,CAACkB,OAAN,CAAc+B,SAAd,CAAJ,EAA8B;AAC5BK,MAAAA,gBAAgB,GAAG,CACjB,GAAGA,gBADc,EAEjB,GAAGL,SAAS,CAAClG,GAAV,CAAewG,KAAD,IAAWA,KAAK,CAAC/E,IAA/B,CAFc,CAAnB;AAID;;AAED,QAAMgF,QAAQ,GAAG,KAAKzH,KAAL,CAAWqD,kBAAX,iBACf,oBAAC,QAAD;AACE,MAAA,QAAQ,EAAE,KADZ;AAEE,MAAA,gBAAgB,EAAEkE,gBAFpB;AAGE,MAAA,SAAS,EAAEzJ,MAAM,CAAC4J;AAHpB,OAKG,KAAK1H,KAAL,CAAWqD,kBAAX,CAA8BrC,GAA9B,CAAkC;AAAA,UAAC,CAAC8B,GAAD,EAAM6E,IAAN,CAAD;AAAA,0BACjC,oBAAC,KAAD;AAAO,QAAA,MAAM,EAAE7E,GAAf;AAAoB,QAAA,GAAG,EAAEA,GAAzB;AAA8B,QAAA,WAAW,EAAE;AAA3C,SACG6E,IAAI,CAAC3G,GAAL,CACC,CAAC+D,SAAD,EAA8C6C,KAA9C;AAAA;;AAAA,eACE7C,SAAS,CAAC8C,YAAV,GACE,KAAKC,yBAAL,CAA+B/C,SAA/B,CADF,gBAGE,oBAAC,IAAD,CAAM,IAAN;AACE,UAAA,KAAK,EAAEA,SAAS,CAACtC,IADnB;AAEE,UAAA,GAAG,EAAEsC,SAAS,CAACtC;AAFjB,WAGM,KAAKrB,aAHX,GAKGC,iBAAiB,CAAC0D,SAAS,CAAC5B,EAAX,EAAe;AAC/ByC,UAAAA,KAAK,EAAE,KAAKA,KAAL,CAAWb,SAAX,CADwB;AAE/B;AACAhE,UAAAA,YAAY,EACVgE,SAAS,CAACE,KAAV,CAAgBiB,IAAhB,KAAyB,MAAzB,IACA,CAAC1I,CAAC,CAACuK,QAAF,CACClH,mCAAmC,CAACkE,SAAS,CAAC5B,EAAX,CADpC,CADD,GAII8C,IAAI,CAAC+B,SAAL,CACEnH,mCAAmC,CAACkE,SAAS,CAAC5B,EAAX,CADrC,EAEE,IAFF,EAGE,CAHF,CAJJ,GASItC,mCAAmC,CAACkE,SAAS,CAAC5B,EAAX;AAbV,SAAf,CAAjB,eAeC,oBAAC,yBAAD;AACE,UAAA,QAAQ,EAAE,KAAK5E,KAAL,CAAW0J,QADvB;AAEE,UAAA,SAAS,EAAElD,SAFb;AAGE,UAAA,WAAW,EACT,CAAAA,SAAS,SAAT,IAAAA,SAAS,WAAT,gCAAAA,SAAS,CAAEE,KAAX,sEAAkBiB,IAAlB,MACA5I,uBAAuB,CAACoJ,KAL5B;AAOE,UAAA,QAAQ,EAAE,KAAKnI,KAAL,CAAWiB,QAPvB;AAQE,UAAA,sBAAsB,EAAGM,GAAD,IAAc;AACpC,gBAAMwD,SAAS,qBAAQ,KAAKtD,KAAL,CAAWsD,SAAnB,CAAf;;AACAA,YAAAA,SAAS,CAACR,GAAG,GAAG8E,KAAP,CAAT,GAAyB9H,GAAzB;AACA,iBAAKG,QAAL,CAAc;AAAEqD,cAAAA;AAAF,aAAd;AACD;AAZH,UAfD,CALH,CAJJ;AAAA,OADD,CADH,CADiC;AAAA,KAAlC,CALH,EAqDG4D,SAAS,IACRA,SAAS,CAAClG,GAAV,CAAewG,KAAD,iBACZ,oBAAC,KAAD;AAAO,MAAA,MAAM,EAAEA,KAAK,CAACU,MAArB;AAA6B,MAAA,GAAG,EAAEV,KAAK,CAAC/E;AAAxC,oBACE,oBAAC,IAAD,CAAM,IAAN;AACE,MAAA,KAAK,EAAE+E,KAAK,CAACW,KADf;AAEE,MAAA,GAAG,EAAEX,KAAK,CAAC/E;AAFb,OAGM,KAAKrB,aAHX,gBAKE,oBAAC,KAAD,CAAO,IAAP;AACE,MAAA,GAAG,EAAGgH,OAAD,IAAkB;AACrBA,QAAAA,OAAO,KACHA,OAAO,CAAC,OAAD,CAAP,GAAmB,KAAK7J,KAAL,CAAWqB,IAAX,CAAgByI,cAAhB,EAApB,EACAD,OAAO,CAAC,SAAD,CAAP,GAAqBZ,KAAK,CAACc,OAFvB,CAAP;AAGD;AALH,MALF,CADF,CADF,CAtDJ,EAwEG,KAAK/J,KAAL,CAAW8B,gBAAX,IAA+B,KAAK9B,KAAL,CAAW+B,cAA1C,iBACC,oBAAC,KAAD;AACE,MAAA,MAAM,EAAErC,IAAI,CAACwD,CAAL,WACHtD,sBADG,cACuBD,CAAC,CAACqK,oBADzB,EADV;AAIE,MAAA,GAAG,EAAE;AAJP,OAMG,KAAKhK,KAAL,CAAW+B,cAAX,CAA0BU,GAA1B,CAA+B/B,CAAD,IAAO;AACpC,0BACE,oBAAC,IAAD,CAAM,IAAN;AAAW,QAAA,KAAK,EAAEA,CAAC,CAACuJ,MAApB;AAA4B,QAAA,GAAG,EAAEvJ,CAAC,CAACkE;AAAnC,SAA2C,KAAK/B,aAAhD,GACGC,iBAAiB,CAChB,KAAKoH,qBAAL,CAA2BxJ,CAAC,CAACyJ,MAA7B,CADgB,EAEhB,EAFgB,CAAjB,eAIC,oBAAC,qBAAD;AACE,QAAA,SAAS,EAAE/K,KAAK,CAAC,KAAKY,KAAL,CAAWoK,gBAAZ,EAA8B,UAA9B,CADlB;AAEE,QAAA,WAAW,EAAC;AAFd,QAJD,CADH,CADF;AAaD,KAdA,CANH,CAzEJ,CADF;AAmGA,QAAMC,eAAe,gBACnB;AACE,MAAA,SAAS,EAAC,sBADZ;AAEE,MAAA,KAAK,EAAE;AAAEC,QAAAA,SAAS,EAAE,MAAb;AAAqBC,QAAAA,UAAU,EAAE,MAAjC;AAAyCC,QAAAA,WAAW,EAAE;AAAtD;AAFT,oBAIE;AAAK,MAAA,SAAS,EAAC;AAAf,oBACE,oBAAC,IAAD,CAAM,IAAN,eAAe,KAAK3H,aAApB;AAAmC,MAAA,KAAK,EAAC,GAAzC;AAA6C,MAAA,KAAK,EAAE;AAApD,QACG+F,mBAAmB,iBAClB,oBAAC,QAAD;AAAU,MAAA,QAAQ,EAAE,KAAK6B;AAAzB,OACG/K,IAAI,CAACwD,CAAL,WAAUtD,sBAAV,cAAoCD,CAAC,CAAC+K,cAAtC,EADH,CAFJ,eAME,oBAAC,MAAD;AACE,MAAA,IAAI,EAAC,SADP;AAEE,MAAA,OAAO,EAAGvJ,CAAD,IAAO,KAAKwJ,YAAL,CAAkBxJ,CAAlB,CAFlB;AAGE,MAAA,QAAQ,EACN,KAAKkF,QAAL,IACA7F,MAAM,CAACF,MAAP,CAAc,KAAKmB,KAAL,CAAWsD,SAAzB,EAAoC1E,QAApC,CAA6C,IAA7C,CALJ;AAOE,qBAAY;AAPd,OASGX,IAAI,CAACwD,CAAL,WAAUtD,sBAAV,cAAoCD,CAAC,CAACiL,IAAtC,EATH,CANF,EAkBG/B,gBAAgB,iBACf,oBAAC,MAAD;AACE,MAAA,IAAI,EAAEE,UADR;AAEE,MAAA,KAAK,EAAE;AAAE8B,QAAAA,UAAU,EAAE;AAAd,OAFT;AAGE,MAAA,OAAO,EAAE,KAAKC;AAHhB,OAKGhC,UALH,aAKGA,UALH,cAKGA,UALH,GAKiBpJ,IAAI,CAACwD,CAAL,WAAUtD,sBAAV,cAAoCD,CAAC,CAACoL,MAAtC,EALjB,CAnBJ,CADF,CAJF,CADF;AAsCA,wBACE,oBAAC,IAAD,QACG7B,QADH,EAEGmB,eAFH,CADF;AAMD;;AA3fD;;gBAHWvK,kB,kBAOW;AACpB+I,EAAAA,gBAAgB,EAAE,IADE;AAEpBE,EAAAA,UAAU,EAAE;AAFQ,C;;AA0fxB,OAAO,IAAMiC,0BAA0B,GACrCvM,IAAI,CAACwM,MAAL,GAAuCnL,kBAAvC,CADK","sourcesContent":["import React, { Component, FormEvent } from \"react\";\nimport { Form } from \"@ant-design/compatible\";\nimport { Button, Checkbox, Collapse } from \"antd\";\nimport { ButtonType } from \"antd/lib/button\";\nimport {\n CmdbModels,\n InstanceApi_GetDefaultValueTemplateResponseBody,\n InstanceApi_GetDetailResponseBody,\n} from \"@next-sdk/cmdb-sdk\";\nimport {\n FormComponentProps,\n FormItemProps,\n ValidationRule,\n} from \"@ant-design/compatible/lib/form\";\nimport {\n FormControlTypeEnum,\n ModelAttributeFormControl,\n ModelAttributeValueType,\n} from \"../model-attribute-form-control/ModelAttributeFormControl\";\nimport { AttributeFormControlUrl } from \"../attribute-form-control-url/AttributeFormControlUrl\";\nimport _, { get, isNil, keyBy } from \"lodash\";\n\nimport { CmdbInstancesSelectPanel } from \"../cmdb-instances-select-panel/CmdbInstancesSelectPanel\";\nimport {\n ModifiedModelCmdbObject,\n ModifiedModelObjectAttr,\n ModifiedModelObjectField,\n ModifiedModelObjectRelation,\n modifyModelData,\n} from \"@next-libs/cmdb-utils\";\nimport styles from \"./ModelAttributeForm.module.css\";\nimport { UserOrUserGroupSelect } from \"../components\";\nimport { permissionListMapOfApp } from \"./constants\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nconst DEFAULT_ATTRIBUTE_TAG = \"基本信息\";\nexport interface ModelAttributeFormChildren {\n header: string;\n name: string;\n label: string;\n options?: { [key: string]: any };\n}\n\nexport interface FieldsByTag {\n name: string;\n fields: string[];\n}\n\ninterface ModelAttributeFormProps extends FormComponentProps {\n isCreate?: boolean;\n disabled?: boolean;\n objectId?: string;\n allowContinueCreate?: boolean;\n blackList?: string[]; // 黑名单\n brickList?: ModelAttributeFormChildren[];\n fieldsByTag?: FieldsByTag[];\n formItemProps?: FormItemProps;\n onSubmit(data: any): Promise<any>;\n basicInfoAttrList?: Partial<CmdbModels.ModelObjectAttr>[];\n objectList?: Partial<CmdbModels.ModelCmdbObject>[];\n modelData?: Partial<CmdbModels.ModelCmdbObject>;\n attributeFormControlInitialValueMap:\n | InstanceApi_GetDefaultValueTemplateResponseBody\n | Partial<InstanceApi_GetDetailResponseBody>;\n showCancelButton?: boolean;\n cancelText?: string;\n cancelType?: ButtonType;\n onCancel?(): void;\n showDetailUrl?: boolean;\n isFilterView?: boolean;\n objectListOfUser?: Partial<CmdbModels.ModelCmdbObject>[];\n permissionList?: Record<string, any>[];\n enabledWhiteList?: boolean;\n}\n\nexport type attributesFieldsByTag = [string, ModifiedModelObjectField[]];\n\ninterface ModelAttributeFormState {\n sending: boolean;\n attrListGroupByTag: attributesFieldsByTag[];\n continueCreating: boolean;\n showError?: Record<string, any>;\n}\n\nexport class ModelAttributeForm extends Component<\n ModelAttributeFormProps,\n ModelAttributeFormState\n> {\n private modelMap: Record<string, Partial<CmdbModels.ModelCmdbObject>> = {};\n private modelData: Partial<CmdbModels.ModelCmdbObject> = null;\n\n static defaultProps = {\n showCancelButton: true,\n cancelType: \"default\" as ButtonType,\n };\n\n formItemProps: FormItemProps = {\n labelCol: { span: 6 },\n wrapperCol: { span: 18 },\n };\n\n constructor(props: ModelAttributeFormProps) {\n super(props);\n if (this.props.objectList) {\n this.modelMap = keyBy(this.props.objectList, \"objectId\");\n }\n // istanbul ignore else\n if (this.props.modelData) {\n this.modelData = modifyModelData(this.props.modelData);\n } else {\n if (this.props.objectList) {\n this.modelData = modifyModelData(this.modelMap[this.props.objectId]);\n }\n }\n\n const hideModelData: string[] = this.modelData.view.hide_columns || [];\n let AttrListGroupByTag: attributesFieldsByTag[] = [];\n let fieldsByTag;\n if (props.formItemProps) {\n this.formItemProps = props.formItemProps;\n }\n if (props.fieldsByTag) {\n fieldsByTag = this.props.fieldsByTag.map((items) => {\n let fields;\n if (items.fields) {\n fields = items.fields.filter(\n (item) => item && !hideModelData.includes(item)\n );\n }\n return {\n name: items.name,\n fields,\n };\n });\n AttrListGroupByTag = ModelAttributeForm.getFieldsByTag(\n this.props.basicInfoAttrList,\n fieldsByTag,\n this.modelData\n );\n } else {\n props.basicInfoAttrList.forEach((basicInfoAttr) => {\n const groupTag =\n basicInfoAttr?.tag?.[0] ||\n (basicInfoAttr as any)?.left_tags?.[0] ||\n DEFAULT_ATTRIBUTE_TAG;\n\n const attrs = AttrListGroupByTag.find(([key]) => key === groupTag);\n // 判断是否为黑名单内的属性\n if (\n isNil(props.blackList) ||\n !props.blackList.includes(basicInfoAttr.id)\n ) {\n if (attrs) {\n attrs[1].push(basicInfoAttr);\n } else {\n AttrListGroupByTag.push([groupTag, [basicInfoAttr]]);\n }\n }\n });\n }\n this.state = {\n sending: false,\n attrListGroupByTag: AttrListGroupByTag,\n continueCreating: false,\n showError: {},\n };\n }\n\n static getFieldsByTag(\n attributeList: Partial<CmdbModels.ModelObjectAttr>[],\n fieldsByTag: FieldsByTag[],\n modelData?: Partial<ModifiedModelCmdbObject>\n ): attributesFieldsByTag[] {\n const map = new Map<string, Partial<CmdbModels.ModelObjectAttr>[]>([]);\n\n fieldsByTag.forEach(({ name, fields }) => {\n if (!map.has(name)) {\n map.set(name, []);\n fields.forEach((field) => {\n const appendAttr = modelData\n ? modelData.__fieldList.find((__field) => __field.__id === field)\n : attributeList.find(({ id }) => id === field);\n if (appendAttr !== undefined) {\n map.set(name, [...map.get(name), appendAttr]);\n }\n });\n }\n });\n\n return Array.from(map);\n }\n\n static sortAttributeList(\n attributeList: { [s: string]: Partial<CmdbModels.ModelObjectAttr>[] },\n tagList: { [s: string]: string[] }\n ): { [s: string]: Partial<CmdbModels.ModelObjectAttr>[] } {\n const store: { [s: string]: Partial<CmdbModels.ModelObjectAttr>[] } = {};\n /* istanbul ignore next */\n for (const tag in tagList) {\n if (!store[tag]) {\n store[tag] = [];\n }\n\n tagList[tag].forEach((prop) => {\n const result = attributeList[tag].find((v) => v.id === prop);\n store[tag].push(result);\n });\n }\n\n return store;\n }\n\n handleFormErrors(fieldsError: Record<string, string[] | undefined>) {\n return Object.keys(fieldsError).some((field) => fieldsError[field]);\n }\n permissionAttrProcess = (key: string) => {\n if (key.includes(\"instance_access\")) return \"readAuthorizers\";\n if (key.includes(\"instance_delete\")) return \"deleteAuthorizers\";\n if (key.includes(\"instance_update\")) return \"updateAuthorizers\";\n // HOST特有\n if (key.includes(\"instance_operate\")) return \"operateAuthorizers\";\n // APP特有\n return permissionListMapOfApp[key] || key;\n };\n\n valuesProcess = (values: Record<string, any>) => {\n const appPermissionAuthorizers: Record<string, any> = {};\n Object.values(permissionListMapOfApp).forEach((r) => {\n appPermissionAuthorizers[r] = values[r]\n ? values[r].selectedUser.concat(values[r].selectedUserGroup)\n : [];\n });\n return {\n ...values,\n deleteAuthorizers: values.deleteAuthorizers\n ? values.deleteAuthorizers.selectedUser.concat(\n values.deleteAuthorizers.selectedUserGroup\n )\n : [],\n readAuthorizers: values.readAuthorizers\n ? values.readAuthorizers.selectedUser.concat(\n values.readAuthorizers.selectedUserGroup\n )\n : [],\n updateAuthorizers: values.updateAuthorizers\n ? values.updateAuthorizers.selectedUser.concat(\n values.updateAuthorizers.selectedUserGroup\n )\n : [],\n ...(this.props.objectId === \"HOST\"\n ? {\n operateAuthorizers: values.operateAuthorizers\n ? values.operateAuthorizers.selectedUser.concat(\n values.operateAuthorizers.selectedUserGroup\n )\n : [],\n }\n : {}),\n ...(this.props.objectId === \"APP\" ? appPermissionAuthorizers : {}),\n };\n };\n\n handleSubmit = (e: FormEvent) => {\n e.preventDefault();\n this.props.form.validateFields(async (err, values) => {\n if (!err) {\n const { continueCreating } = this.state;\n this.setState({ sending: true });\n const result = await this.props.onSubmit({\n continueCreating,\n values:\n this.props.enabledWhiteList && this.props.permissionList\n ? this.valuesProcess(values)\n : values,\n });\n if (result !== \"error\" && continueCreating) {\n this.props.form.resetFields();\n }\n this.setState({ sending: false });\n }\n });\n };\n\n get disabled(): boolean {\n const { sending } = this.state;\n const { getFieldsError } = this.props.form;\n return this.handleFormErrors(getFieldsError()) || sending;\n }\n\n // get submitBtnText() {\n // return this.props.isCreate\n // ? i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.SAVE}`)\n // : i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.MODIFICATION}`);\n // }\n\n static tagsValidator(\n attribute: Partial<CmdbModels.ModelObjectAttr>\n ): (rule: any, value: string[], callback: (msg?: string) => void) => void {\n return (rule: any, value: string[], callback: (msg?: string) => void) => {\n if (!value) {\n return callback();\n }\n if (!Array.isArray(value)) {\n return callback(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.NOT_MEET_REGEX}`)\n );\n }\n\n const isValidAll = value.every((v) =>\n ModelAttributeFormControl.computePattern(attribute).test(v)\n );\n\n isValidAll\n ? callback()\n : callback(i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.NOT_MEET_REGEX}`));\n };\n }\n\n static urlValidator(\n attribute: Partial<CmdbModels.ModelObjectAttr>\n ): (rule: any, value: string, callback: (msg?: string) => void) => void {\n return (rule: any, value: string, callback: (msg?: string) => void) => {\n const { url } = AttributeFormControlUrl.breakDownValue(value);\n ModelAttributeFormControl.computePattern(attribute).test(url)\n ? callback()\n : callback(i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.NOT_MEET_REGEX}`));\n };\n }\n\n rules(attribute: Partial<CmdbModels.ModelObjectAttr>): ValidationRule[] {\n // historical issues: 如果是INTEGER和URL类型暂时不用正则表达式验证\n const required = attribute.required !== \"false\";\n const requiredRule = [\n ModelAttributeValueType.IP,\n ModelAttributeValueType.STRING,\n ModelAttributeValueType.JSON,\n ].includes(attribute.value.type as ModelAttributeValueType)\n ? {\n required,\n whitespace: required,\n message: i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ATTRIBUTE_NAME_REQUIRED}`,\n { attribute_name: attribute.name }\n ),\n }\n : {\n required,\n message: i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ATTRIBUTE_NAME_REQUIRED}`,\n { attribute_name: attribute.name }\n ),\n };\n try {\n const type = ModelAttributeFormControl.computeFormControlType(attribute);\n if (\n attribute.value.regex === null ||\n attribute.value.type === ModelAttributeValueType.INTEGER ||\n attribute.value.type === ModelAttributeValueType.ENUMS\n ) {\n return [requiredRule];\n }\n\n if (type === FormControlTypeEnum.URL) {\n return [\n requiredRule,\n { validator: ModelAttributeForm.urlValidator(attribute) },\n ];\n }\n\n if (type === FormControlTypeEnum.TAGS) {\n return [\n requiredRule,\n { validator: ModelAttributeForm.tagsValidator(attribute) },\n ];\n }\n\n return [\n requiredRule,\n {\n pattern: ModelAttributeFormControl.computePattern(attribute),\n message: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.NOT_MEET_REGEX}`),\n },\n ];\n } catch (error) {\n // 例如无枚举值、结构体未添加字段等\n return [requiredRule];\n }\n }\n\n handleCheckContinueCreating = (e: any) => {\n this.setState({ continueCreating: e.target.checked });\n };\n\n renderRelationFormControl = (\n relation: Partial<ModifiedModelObjectRelation>\n ) => {\n const InitialRelationValue = get(\n this.props.attributeFormControlInitialValueMap,\n relation.left_id\n );\n const initialValue = InitialRelationValue\n ? InitialRelationValue.map((instanceData: any) => instanceData.instanceId)\n : [];\n\n return (\n <Form.Item\n label={relation.left_name}\n key={relation.left_id}\n {...this.formItemProps}\n >\n {this.props.form.getFieldDecorator(relation.left_id, { initialValue })(\n <CmdbInstancesSelectPanel\n isFilterView={this.props.isFilterView}\n objectId={relation.right_object_id}\n objectMap={this.modelMap}\n addTitle={i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.ADD}`)}\n singleSelect={relation.left_max === 1}\n isOperate={true}\n showDetailUrl={this.props.showDetailUrl}\n />\n )}\n </Form.Item>\n );\n };\n\n handleCancel = () => {\n this.props.onCancel?.();\n };\n\n render(): React.ReactNode {\n const Panel = Collapse.Panel;\n const {\n form,\n attributeFormControlInitialValueMap,\n brickList,\n allowContinueCreate,\n showCancelButton,\n cancelText,\n cancelType,\n } = this.props;\n const { getFieldDecorator } = form;\n\n let defaultActiveKey = this.state.attrListGroupByTag.map(([key]) => key);\n\n if (Array.isArray(brickList)) {\n defaultActiveKey = [\n ...defaultActiveKey,\n ...brickList.map((brick) => brick.name),\n ];\n }\n\n const collapse = this.state.attrListGroupByTag && (\n <Collapse\n bordered={false}\n defaultActiveKey={defaultActiveKey}\n className={styles.collapseStyle}\n >\n {this.state.attrListGroupByTag.map(([tag, list]) => (\n <Panel header={tag} key={tag} forceRender={true}>\n {list.map(\n (attribute: Partial<ModifiedModelObjectAttr>, index: number) =>\n attribute.__isRelation ? (\n this.renderRelationFormControl(attribute)\n ) : (\n <Form.Item\n label={attribute.name}\n key={attribute.name}\n {...this.formItemProps}\n >\n {getFieldDecorator(attribute.id, {\n rules: this.rules(attribute),\n //默认值为string,但是新建时接口转成了object,故编辑时后台返回的也是object\n initialValue:\n attribute.value.type === \"json\" &&\n !_.isString(\n attributeFormControlInitialValueMap[attribute.id]\n )\n ? JSON.stringify(\n attributeFormControlInitialValueMap[attribute.id],\n null,\n 2\n )\n : attributeFormControlInitialValueMap[attribute.id],\n })(\n <ModelAttributeFormControl\n isCreate={this.props.isCreate}\n attribute={attribute}\n multiSelect={\n attribute?.value?.type ===\n ModelAttributeValueType.ENUMS\n }\n objectId={this.props.objectId}\n jsonValidateCollection={(err: any) => {\n const showError = { ...this.state.showError };\n showError[tag + index] = err;\n this.setState({ showError });\n }}\n />\n )}\n </Form.Item>\n )\n )}\n </Panel>\n ))}\n\n {brickList &&\n brickList.map((brick) => (\n <Panel header={brick.header} key={brick.name}>\n <Form.Item\n label={brick.label}\n key={brick.name}\n {...this.formItemProps}\n >\n <brick.name\n ref={(element: any) => {\n element &&\n ((element[\"value\"] = this.props.form.getFieldsValue()),\n (element[\"options\"] = brick.options));\n }}\n />\n </Form.Item>\n </Panel>\n ))}\n\n {this.props.enabledWhiteList && this.props.permissionList && (\n <Panel\n header={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.PERMISSION_WHITELIST}`\n )}\n key={\"permission\"}\n >\n {this.props.permissionList.map((r) => {\n return (\n <Form.Item label={r.remark} key={r.id} {...this.formItemProps}>\n {getFieldDecorator(\n this.permissionAttrProcess(r.action) as string,\n {}\n )(\n <UserOrUserGroupSelect\n objectMap={keyBy(this.props.objectListOfUser, \"objectId\")}\n optionsMode=\"all\"\n ></UserOrUserGroupSelect>\n )}\n </Form.Item>\n );\n })}\n </Panel>\n )}\n </Collapse>\n );\n const submitContainer = (\n <div\n className=\"ant-collapse-content\"\n style={{ borderTop: \"none\", paddingTop: \"16px\", paddingLeft: \"20px\" }}\n >\n <div className=\"ant-collapse-content-box\">\n <Form.Item {...this.formItemProps} label=\" \" colon={false}>\n {allowContinueCreate && (\n <Checkbox onChange={this.handleCheckContinueCreating}>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CREATE_ANOTHER}`)}\n </Checkbox>\n )}\n <Button\n type=\"primary\"\n onClick={(e) => this.handleSubmit(e)}\n disabled={\n this.disabled ||\n Object.values(this.state.showError).includes(true)\n }\n data-testid=\"submit-btn\"\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.SAVE}`)}\n </Button>\n\n {showCancelButton && (\n <Button\n type={cancelType}\n style={{ marginLeft: 8 }}\n onClick={this.handleCancel}\n >\n {cancelText ?? i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CANCEL}`)}\n </Button>\n )}\n </Form.Item>\n </div>\n </div>\n );\n\n return (\n <Form>\n {collapse}\n {submitContainer}\n </Form>\n );\n }\n}\n\nexport const InstanceModelAttributeForm =\n Form.create<ModelAttributeFormProps>()(ModelAttributeForm);\n"],"file":"ModelAttributeForm.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/model-attribute-form/ModelAttributeForm.tsx"],"names":["React","Component","Form","Button","Checkbox","Collapse","Tooltip","InfoCircleOutlined","FormControlTypeEnum","ModelAttributeFormControl","ModelAttributeValueType","AttributeFormControlUrl","_","get","isNil","keyBy","CmdbInstancesSelectPanel","modifyModelData","styles","UserOrUserGroupSelect","permissionListMapOfApp","i18n","K","NS_LIBS_CMDB_INSTANCES","DEFAULT_ATTRIBUTE_TAG","ModelAttributeForm","constructor","props","labelCol","span","wrapperCol","key","includes","values","appPermissionAuthorizers","Object","forEach","r","selectedUser","concat","selectedUserGroup","deleteAuthorizers","readAuthorizers","updateAuthorizers","objectId","operateAuthorizers","err","continueCreating","state","setState","sending","result","onSubmit","enabledWhiteList","permissionList","valuesProcess","form","resetFields","e","preventDefault","scrollToFirstError","validateFieldsAndScroll","scroll","offsetTop","validateFieldsCallback","validateFields","target","checked","relation","InitialRelationValue","attributeFormControlInitialValueMap","left_id","initialValue","map","instanceData","instanceId","left_name","formItemProps","getFieldDecorator","isFilterView","right_object_id","modelMap","t","ADD","left_max","showDetailUrl","onCancel","objectList","modelData","hideModelData","view","hide_columns","AttrListGroupByTag","fieldsByTag","items","fields","filter","item","name","getFieldsByTag","basicInfoAttrList","basicInfoAttr","groupTag","tag","left_tags","attrs","find","blackList","id","push","attrListGroupByTag","showError","attributeList","Map","has","set","field","appendAttr","__fieldList","__field","__id","undefined","Array","from","sortAttributeList","tagList","store","prop","v","handleFormErrors","fieldsError","keys","some","disabled","tagsValidator","attribute","rule","value","callback","isArray","NOT_MEET_REGEX","isValidAll","every","computePattern","test","urlValidator","url","breakDownValue","rules","required","requiredRule","IP","STRING","JSON","type","whitespace","message","ATTRIBUTE_NAME_REQUIRED","attribute_name","computeFormControlType","regex","INTEGER","ENUMS","URL","validator","TAGS","pattern","error","render","Panel","brickList","allowContinueCreate","showCancelButton","cancelText","cancelType","defaultActiveKey","brick","collapse","collapseStyle","list","index","__isRelation","renderRelationFormControl","description","padding","color","isString","stringify","isCreate","header","label","element","getFieldsValue","options","PERMISSION_WHITELIST","remark","permissionAttrProcess","action","objectListOfUser","submitContainer","borderTop","paddingTop","paddingLeft","handleCheckContinueCreating","CREATE_ANOTHER","handleSubmit","SAVE","marginLeft","handleCancel","CANCEL","InstanceModelAttributeForm","create"],"mappings":"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","sourcesContent":["import React, { Component, FormEvent } from \"react\";\nimport { Form } from \"@ant-design/compatible\";\nimport { Button, Checkbox, Collapse, Tooltip } from \"antd\";\nimport { ButtonType } from \"antd/lib/button\";\nimport { InfoCircleOutlined } from \"@ant-design/icons\";\nimport {\n CmdbModels,\n InstanceApi_GetDefaultValueTemplateResponseBody,\n InstanceApi_GetDetailResponseBody,\n} from \"@next-sdk/cmdb-sdk\";\nimport {\n FormComponentProps,\n FormItemProps,\n ValidationRule,\n} from \"@ant-design/compatible/lib/form\";\nimport {\n FormControlTypeEnum,\n ModelAttributeFormControl,\n ModelAttributeValueType,\n} from \"../model-attribute-form-control/ModelAttributeFormControl\";\nimport { AttributeFormControlUrl } from \"../attribute-form-control-url/AttributeFormControlUrl\";\nimport _, { get, isNil, keyBy } from \"lodash\";\n\nimport { CmdbInstancesSelectPanel } from \"../cmdb-instances-select-panel/CmdbInstancesSelectPanel\";\nimport {\n ModifiedModelCmdbObject,\n ModifiedModelObjectAttr,\n ModifiedModelObjectField,\n ModifiedModelObjectRelation,\n modifyModelData,\n} from \"@next-libs/cmdb-utils\";\nimport styles from \"./ModelAttributeForm.module.css\";\nimport { UserOrUserGroupSelect } from \"../components\";\nimport { permissionListMapOfApp } from \"./constants\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nconst DEFAULT_ATTRIBUTE_TAG = \"基本信息\";\nexport interface ModelAttributeFormChildren {\n header: string;\n name: string;\n label: string;\n options?: { [key: string]: any };\n}\n\nexport interface FieldsByTag {\n name: string;\n fields: string[];\n}\n\ninterface ModelAttributeFormProps extends FormComponentProps {\n isCreate?: boolean;\n disabled?: boolean;\n objectId?: string;\n allowContinueCreate?: boolean;\n blackList?: string[]; // 黑名单\n brickList?: ModelAttributeFormChildren[];\n fieldsByTag?: FieldsByTag[];\n formItemProps?: FormItemProps;\n onSubmit(data: any): Promise<any>;\n basicInfoAttrList?: Partial<CmdbModels.ModelObjectAttr>[];\n objectList?: Partial<CmdbModels.ModelCmdbObject>[];\n modelData?: Partial<CmdbModels.ModelCmdbObject>;\n attributeFormControlInitialValueMap:\n | InstanceApi_GetDefaultValueTemplateResponseBody\n | Partial<InstanceApi_GetDetailResponseBody>;\n showCancelButton?: boolean;\n cancelText?: string;\n cancelType?: ButtonType;\n onCancel?(): void;\n showDetailUrl?: boolean;\n isFilterView?: boolean;\n objectListOfUser?: Partial<CmdbModels.ModelCmdbObject>[];\n permissionList?: Record<string, any>[];\n enabledWhiteList?: boolean;\n scrollToFirstError?: boolean;\n offsetTop?: number;\n}\n\nexport type attributesFieldsByTag = [string, ModifiedModelObjectField[]];\n\ninterface ModelAttributeFormState {\n sending: boolean;\n attrListGroupByTag: attributesFieldsByTag[];\n continueCreating: boolean;\n showError?: Record<string, any>;\n}\n\nexport class ModelAttributeForm extends Component<\n ModelAttributeFormProps,\n ModelAttributeFormState\n> {\n private modelMap: Record<string, Partial<CmdbModels.ModelCmdbObject>> = {};\n private modelData: Partial<CmdbModels.ModelCmdbObject> = null;\n\n static defaultProps = {\n showCancelButton: true,\n cancelType: \"default\" as ButtonType,\n };\n\n formItemProps: FormItemProps = {\n labelCol: { span: 6 },\n wrapperCol: { span: 18 },\n };\n\n constructor(props: ModelAttributeFormProps) {\n super(props);\n if (this.props.objectList) {\n this.modelMap = keyBy(this.props.objectList, \"objectId\");\n }\n // istanbul ignore else\n if (this.props.modelData) {\n this.modelData = modifyModelData(this.props.modelData);\n } else {\n if (this.props.objectList) {\n this.modelData = modifyModelData(this.modelMap[this.props.objectId]);\n }\n }\n\n const hideModelData: string[] = this.modelData.view.hide_columns || [];\n let AttrListGroupByTag: attributesFieldsByTag[] = [];\n let fieldsByTag;\n if (props.formItemProps) {\n this.formItemProps = props.formItemProps;\n }\n if (props.fieldsByTag) {\n fieldsByTag = this.props.fieldsByTag.map((items) => {\n let fields;\n if (items.fields) {\n fields = items.fields.filter(\n (item) => item && !hideModelData.includes(item)\n );\n }\n return {\n name: items.name,\n fields,\n };\n });\n AttrListGroupByTag = ModelAttributeForm.getFieldsByTag(\n this.props.basicInfoAttrList,\n fieldsByTag,\n this.modelData\n );\n } else {\n props.basicInfoAttrList.forEach((basicInfoAttr) => {\n const groupTag =\n basicInfoAttr?.tag?.[0] ||\n (basicInfoAttr as any)?.left_tags?.[0] ||\n DEFAULT_ATTRIBUTE_TAG;\n\n const attrs = AttrListGroupByTag.find(([key]) => key === groupTag);\n // 判断是否为黑名单内的属性\n if (\n isNil(props.blackList) ||\n !props.blackList.includes(basicInfoAttr.id)\n ) {\n if (attrs) {\n attrs[1].push(basicInfoAttr);\n } else {\n AttrListGroupByTag.push([groupTag, [basicInfoAttr]]);\n }\n }\n });\n }\n this.state = {\n sending: false,\n attrListGroupByTag: AttrListGroupByTag,\n continueCreating: false,\n showError: {},\n };\n }\n\n static getFieldsByTag(\n attributeList: Partial<CmdbModels.ModelObjectAttr>[],\n fieldsByTag: FieldsByTag[],\n modelData?: Partial<ModifiedModelCmdbObject>\n ): attributesFieldsByTag[] {\n const map = new Map<string, Partial<CmdbModels.ModelObjectAttr>[]>([]);\n\n fieldsByTag.forEach(({ name, fields }) => {\n if (!map.has(name)) {\n map.set(name, []);\n fields.forEach((field) => {\n const appendAttr = modelData\n ? modelData.__fieldList.find((__field) => __field.__id === field)\n : attributeList.find(({ id }) => id === field);\n if (appendAttr !== undefined) {\n map.set(name, [...map.get(name), appendAttr]);\n }\n });\n }\n });\n\n return Array.from(map);\n }\n\n static sortAttributeList(\n attributeList: { [s: string]: Partial<CmdbModels.ModelObjectAttr>[] },\n tagList: { [s: string]: string[] }\n ): { [s: string]: Partial<CmdbModels.ModelObjectAttr>[] } {\n const store: { [s: string]: Partial<CmdbModels.ModelObjectAttr>[] } = {};\n /* istanbul ignore next */\n for (const tag in tagList) {\n if (!store[tag]) {\n store[tag] = [];\n }\n\n tagList[tag].forEach((prop) => {\n const result = attributeList[tag].find((v) => v.id === prop);\n store[tag].push(result);\n });\n }\n\n return store;\n }\n\n handleFormErrors(fieldsError: Record<string, string[] | undefined>) {\n return Object.keys(fieldsError).some((field) => fieldsError[field]);\n }\n permissionAttrProcess = (key: string) => {\n if (key.includes(\"instance_access\")) return \"readAuthorizers\";\n if (key.includes(\"instance_delete\")) return \"deleteAuthorizers\";\n if (key.includes(\"instance_update\")) return \"updateAuthorizers\";\n // HOST特有\n if (key.includes(\"instance_operate\")) return \"operateAuthorizers\";\n // APP特有\n return permissionListMapOfApp[key] || key;\n };\n\n valuesProcess = (values: Record<string, any>) => {\n const appPermissionAuthorizers: Record<string, any> = {};\n Object.values(permissionListMapOfApp).forEach((r) => {\n appPermissionAuthorizers[r] = values[r]\n ? values[r].selectedUser.concat(values[r].selectedUserGroup)\n : [];\n });\n return {\n ...values,\n deleteAuthorizers: values.deleteAuthorizers\n ? values.deleteAuthorizers.selectedUser.concat(\n values.deleteAuthorizers.selectedUserGroup\n )\n : [],\n readAuthorizers: values.readAuthorizers\n ? values.readAuthorizers.selectedUser.concat(\n values.readAuthorizers.selectedUserGroup\n )\n : [],\n updateAuthorizers: values.updateAuthorizers\n ? values.updateAuthorizers.selectedUser.concat(\n values.updateAuthorizers.selectedUserGroup\n )\n : [],\n ...(this.props.objectId === \"HOST\"\n ? {\n operateAuthorizers: values.operateAuthorizers\n ? values.operateAuthorizers.selectedUser.concat(\n values.operateAuthorizers.selectedUserGroup\n )\n : [],\n }\n : {}),\n ...(this.props.objectId === \"APP\" ? appPermissionAuthorizers : {}),\n };\n };\n /* istanbul ignore next */\n validateFieldsCallback = async (err: any, values: any) => {\n if (!err) {\n const { continueCreating } = this.state;\n this.setState({ sending: true });\n const result = await this.props.onSubmit({\n continueCreating,\n values:\n this.props.enabledWhiteList && this.props.permissionList\n ? this.valuesProcess(values)\n : values,\n });\n if (result !== \"error\" && continueCreating) {\n this.props.form.resetFields();\n }\n this.setState({ sending: false });\n }\n };\n /* istanbul ignore next */\n handleSubmit = (e: FormEvent) => {\n e.preventDefault();\n this.props.scrollToFirstError\n ? this.props.form.validateFieldsAndScroll(\n {\n scroll: {\n offsetTop: this.props.offsetTop || 60,\n },\n },\n async (err, values) => {\n await this.validateFieldsCallback(err, values);\n }\n )\n : this.props.form.validateFields(async (err, values) => {\n await this.validateFieldsCallback(err, values);\n });\n };\n\n get disabled(): boolean {\n const { sending } = this.state;\n // const { getFieldsError } = this.props.form;\n return sending;\n }\n\n // get submitBtnText() {\n // return this.props.isCreate\n // ? i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.SAVE}`)\n // : i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.MODIFICATION}`);\n // }\n\n static tagsValidator(\n attribute: Partial<CmdbModels.ModelObjectAttr>\n ): (rule: any, value: string[], callback: (msg?: string) => void) => void {\n return (rule: any, value: string[], callback: (msg?: string) => void) => {\n if (!value) {\n return callback();\n }\n if (!Array.isArray(value)) {\n return callback(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.NOT_MEET_REGEX}`)\n );\n }\n\n const isValidAll = value.every((v) =>\n ModelAttributeFormControl.computePattern(attribute).test(v)\n );\n\n isValidAll\n ? callback()\n : callback(i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.NOT_MEET_REGEX}`));\n };\n }\n\n static urlValidator(\n attribute: Partial<CmdbModels.ModelObjectAttr>\n ): (rule: any, value: string, callback: (msg?: string) => void) => void {\n return (rule: any, value: string, callback: (msg?: string) => void) => {\n const { url } = AttributeFormControlUrl.breakDownValue(value);\n ModelAttributeFormControl.computePattern(attribute).test(url)\n ? callback()\n : callback(i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.NOT_MEET_REGEX}`));\n };\n }\n\n rules(attribute: Partial<CmdbModels.ModelObjectAttr>): ValidationRule[] {\n // historical issues: 如果是INTEGER和URL类型暂时不用正则表达式验证\n const required = attribute.required !== \"false\";\n const requiredRule = [\n ModelAttributeValueType.IP,\n ModelAttributeValueType.STRING,\n ModelAttributeValueType.JSON,\n ].includes(attribute.value.type as ModelAttributeValueType)\n ? {\n required,\n whitespace: required,\n message: i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ATTRIBUTE_NAME_REQUIRED}`,\n { attribute_name: attribute.name }\n ),\n }\n : {\n required,\n message: i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ATTRIBUTE_NAME_REQUIRED}`,\n { attribute_name: attribute.name }\n ),\n };\n try {\n const type = ModelAttributeFormControl.computeFormControlType(attribute);\n if (\n attribute.value.regex === null ||\n attribute.value.type === ModelAttributeValueType.INTEGER ||\n attribute.value.type === ModelAttributeValueType.ENUMS\n ) {\n return [requiredRule];\n }\n\n if (type === FormControlTypeEnum.URL) {\n return [\n requiredRule,\n { validator: ModelAttributeForm.urlValidator(attribute) },\n ];\n }\n\n if (type === FormControlTypeEnum.TAGS) {\n return [\n requiredRule,\n { validator: ModelAttributeForm.tagsValidator(attribute) },\n ];\n }\n\n return [\n requiredRule,\n {\n pattern: ModelAttributeFormControl.computePattern(attribute),\n message: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.NOT_MEET_REGEX}`),\n },\n ];\n } catch (error) {\n // 例如无枚举值、结构体未添加字段等\n return [requiredRule];\n }\n }\n\n handleCheckContinueCreating = (e: any) => {\n this.setState({ continueCreating: e.target.checked });\n };\n\n renderRelationFormControl = (\n relation: Partial<ModifiedModelObjectRelation>\n ) => {\n const InitialRelationValue = get(\n this.props.attributeFormControlInitialValueMap,\n relation.left_id\n );\n const initialValue = InitialRelationValue\n ? InitialRelationValue.map((instanceData: any) => instanceData.instanceId)\n : [];\n\n return (\n <Form.Item\n label={relation.left_name}\n key={relation.left_id}\n {...this.formItemProps}\n >\n {this.props.form.getFieldDecorator(relation.left_id, { initialValue })(\n <CmdbInstancesSelectPanel\n isFilterView={this.props.isFilterView}\n objectId={relation.right_object_id}\n objectMap={this.modelMap}\n addTitle={i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.ADD}`)}\n singleSelect={relation.left_max === 1}\n isOperate={true}\n showDetailUrl={this.props.showDetailUrl}\n />\n )}\n </Form.Item>\n );\n };\n\n handleCancel = () => {\n this.props.onCancel?.();\n };\n\n render(): React.ReactNode {\n const Panel = Collapse.Panel;\n const {\n form,\n attributeFormControlInitialValueMap,\n brickList,\n allowContinueCreate,\n showCancelButton,\n cancelText,\n cancelType,\n } = this.props;\n const { getFieldDecorator } = form;\n\n let defaultActiveKey = this.state.attrListGroupByTag.map(([key]) => key);\n\n if (Array.isArray(brickList)) {\n defaultActiveKey = [\n ...defaultActiveKey,\n ...brickList.map((brick) => brick.name),\n ];\n }\n\n const collapse = this.state.attrListGroupByTag && (\n <Collapse\n bordered={false}\n defaultActiveKey={defaultActiveKey}\n className={styles.collapseStyle}\n >\n {this.state.attrListGroupByTag.map(([tag, list]) => (\n <Panel header={tag} key={tag} forceRender={true}>\n {list.map(\n (attribute: Partial<ModifiedModelObjectAttr>, index: number) =>\n attribute.__isRelation ? (\n this.renderRelationFormControl(attribute)\n ) : (\n <Form.Item\n label={\n <span>\n <span>{attribute.name}</span>\n {attribute.description && attribute.description !== \"\" && (\n <Tooltip title={attribute.description}>\n <InfoCircleOutlined\n style={{\n padding: \"0 2px\",\n color: \"var(--theme-blue-color)\",\n }}\n />\n </Tooltip>\n )}\n </span>\n }\n key={attribute.name}\n {...this.formItemProps}\n >\n {getFieldDecorator(attribute.id, {\n rules: this.rules(attribute),\n //默认值为string,但是新建时接口转成了object,故编辑时后台返回的也是object\n initialValue:\n attribute.value.type === \"json\" &&\n !_.isString(\n attributeFormControlInitialValueMap[attribute.id]\n )\n ? JSON.stringify(\n attributeFormControlInitialValueMap[attribute.id],\n null,\n 2\n )\n : attributeFormControlInitialValueMap[attribute.id],\n })(\n <ModelAttributeFormControl\n isCreate={this.props.isCreate}\n attribute={attribute}\n multiSelect={\n attribute?.value?.type ===\n ModelAttributeValueType.ENUMS\n }\n objectId={this.props.objectId}\n jsonValidateCollection={(err: any) => {\n const showError = { ...this.state.showError };\n showError[tag + index] = err;\n this.setState({ showError });\n }}\n />\n )}\n </Form.Item>\n )\n )}\n </Panel>\n ))}\n\n {brickList &&\n brickList.map((brick) => (\n <Panel header={brick.header} key={brick.name}>\n <Form.Item\n label={brick.label}\n key={brick.name}\n {...this.formItemProps}\n >\n <brick.name\n ref={(element: any) => {\n element &&\n ((element[\"value\"] = this.props.form.getFieldsValue()),\n (element[\"options\"] = brick.options));\n }}\n />\n </Form.Item>\n </Panel>\n ))}\n\n {this.props.enabledWhiteList && this.props.permissionList && (\n <Panel\n header={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.PERMISSION_WHITELIST}`\n )}\n key={\"permission\"}\n >\n {this.props.permissionList.map((r) => {\n return (\n <Form.Item label={r.remark} key={r.id} {...this.formItemProps}>\n {getFieldDecorator(\n this.permissionAttrProcess(r.action) as string,\n {}\n )(\n <UserOrUserGroupSelect\n objectMap={keyBy(this.props.objectListOfUser, \"objectId\")}\n optionsMode=\"all\"\n ></UserOrUserGroupSelect>\n )}\n </Form.Item>\n );\n })}\n </Panel>\n )}\n </Collapse>\n );\n const submitContainer = (\n <div\n className=\"ant-collapse-content\"\n style={{ borderTop: \"none\", paddingTop: \"16px\", paddingLeft: \"20px\" }}\n >\n <div className=\"ant-collapse-content-box\">\n <Form.Item {...this.formItemProps} label=\" \" colon={false}>\n {allowContinueCreate && (\n <Checkbox onChange={this.handleCheckContinueCreating}>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CREATE_ANOTHER}`)}\n </Checkbox>\n )}\n <Button\n type=\"primary\"\n onClick={(e) => this.handleSubmit(e)}\n disabled={\n this.disabled ||\n Object.values(this.state.showError).includes(true)\n }\n data-testid=\"submit-btn\"\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.SAVE}`)}\n </Button>\n\n {showCancelButton && (\n <Button\n type={cancelType}\n style={{ marginLeft: 8 }}\n onClick={this.handleCancel}\n >\n {cancelText ?? i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CANCEL}`)}\n </Button>\n )}\n </Form.Item>\n </div>\n </div>\n );\n\n return (\n <Form>\n {collapse}\n {submitContainer}\n </Form>\n );\n }\n}\n\nexport const InstanceModelAttributeForm =\n Form.create<ModelAttributeFormProps>()(ModelAttributeForm);\n"],"file":"ModelAttributeForm.js"}
|
|
@@ -269,7 +269,8 @@ export class ModelAttributeFormControl extends Component {
|
|
|
269
269
|
structData: value,
|
|
270
270
|
handleStoreFunction: formData => this.onChange(formData),
|
|
271
271
|
className: this.props.className,
|
|
272
|
-
style: this.props.style
|
|
272
|
+
style: this.props.style,
|
|
273
|
+
isCreate: this.props.isCreate
|
|
273
274
|
});
|
|
274
275
|
|
|
275
276
|
case FormControlTypeEnum.RADIO:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/model-attribute-form-control/ModelAttributeFormControl.tsx"],"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","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","tag","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","includes","ENTER_MULTIPLE_STRING_WITH_ENTER_KEY_AS_THE_SEPARATOR","MATCHING_REGULAR","regexp","UNIQUE_NO_REPEAT","join","render","FormControlTypeMap"],"mappings":"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","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}\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 ): 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 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 );\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 if (formControl.type === FormControlTypeEnum.SELECT) {\n // placeholders.push(\"点击选择\");\n placeholders.push(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLICK_TO_SELECT}`)\n );\n }\n if (\n [FormControlTypeEnum.DATETIME, FormControlTypeEnum.DATE].includes(\n formControl.type\n )\n ) {\n // placeholders.push(\"点击选择\");\n placeholders.push(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLICK_TO_SELECT}`)\n );\n }\n\n if (formControl.type === 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 // placeholders.push(\"输入多个,以回车间隔\");\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 />\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 {value &&\n (value as string[]).map((tag) => (\n <Select.Option value={tag} key={tag}>\n {tag}\n </Select.Option>\n ))}\n </Select>\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 defaultValue={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"],"file":"ModelAttributeFormControl.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/model-attribute-form-control/ModelAttributeFormControl.tsx"],"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","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","tag","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","includes","ENTER_MULTIPLE_STRING_WITH_ENTER_KEY_AS_THE_SEPARATOR","MATCHING_REGULAR","regexp","UNIQUE_NO_REPEAT","join","render","FormControlTypeMap"],"mappings":"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","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}\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 ): 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 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 );\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 if (formControl.type === FormControlTypeEnum.SELECT) {\n // placeholders.push(\"点击选择\");\n placeholders.push(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLICK_TO_SELECT}`)\n );\n }\n if (\n [FormControlTypeEnum.DATETIME, FormControlTypeEnum.DATE].includes(\n formControl.type\n )\n ) {\n // placeholders.push(\"点击选择\");\n placeholders.push(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLICK_TO_SELECT}`)\n );\n }\n\n if (formControl.type === 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 // placeholders.push(\"输入多个,以回车间隔\");\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 {value &&\n (value as string[]).map((tag) => (\n <Select.Option value={tag} key={tag}>\n {tag}\n </Select.Option>\n ))}\n </Select>\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 defaultValue={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"],"file":"ModelAttributeFormControl.js"}
|
|
@@ -63,7 +63,7 @@ export class AddStruct extends React.Component {
|
|
|
63
63
|
className: className
|
|
64
64
|
}, /*#__PURE__*/React.createElement(Button, {
|
|
65
65
|
type: "link",
|
|
66
|
-
disabled: isLegacy && !isEmpty(structData),
|
|
66
|
+
disabled: isLegacy && !isEmpty(structData) || attribute.readonly === "true" && !this.props.isCreate,
|
|
67
67
|
onClick: this.handleOpenAddModal
|
|
68
68
|
}, i18n.t("".concat(NS_LIBS_CMDB_INSTANCES, ":").concat(K.ADD))), /*#__PURE__*/React.createElement(AddStructModal // 新建的情况下不必给初值,初值为空对象时codeEditor才能正常回填
|
|
69
69
|
, {
|
|
@@ -75,7 +75,7 @@ export class AddStruct extends React.Component {
|
|
|
75
75
|
}), /*#__PURE__*/React.createElement(StructTable, {
|
|
76
76
|
structData: structData,
|
|
77
77
|
attribute: attribute,
|
|
78
|
-
isEditable:
|
|
78
|
+
isEditable: this.props.attribute.readonly === "false" || this.props.isCreate,
|
|
79
79
|
isLegacy: isLegacy,
|
|
80
80
|
handleStoreFunction: this.handleEditStruct
|
|
81
81
|
}));
|