@next-libs/cmdb-instances 6.12.2 → 6.12.3
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 +11 -0
- package/dist/cjs/model-attribute-form-control/ModelAttributeFormControl.js +4 -2
- package/dist/cjs/model-attribute-form-control/ModelAttributeFormControl.js.map +1 -1
- package/dist/esm/model-attribute-form-control/ModelAttributeFormControl.js +10 -8
- package/dist/esm/model-attribute-form-control/ModelAttributeFormControl.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [6.12.3](https://github.com/easyops-cn/next-libs/compare/@next-libs/cmdb-instances@6.12.2...@next-libs/cmdb-instances@6.12.3) (2021-11-25)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **cmdb:** enum readonly disabled ([3653a8c](https://github.com/easyops-cn/next-libs/commit/3653a8c8ac004277e3b9adf725edc826c4df6537))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
## [6.12.2](https://github.com/easyops-cn/next-libs/compare/@next-libs/cmdb-instances@6.12.1...@next-libs/cmdb-instances@6.12.2) (2021-11-23)
|
|
7
18
|
|
|
8
19
|
**Note:** Version bump only for package @next-libs/cmdb-instances
|
|
@@ -289,7 +289,8 @@ class ModelAttributeFormControl extends _react.Component {
|
|
|
289
289
|
{
|
|
290
290
|
let {
|
|
291
291
|
items,
|
|
292
|
-
required
|
|
292
|
+
required,
|
|
293
|
+
readOnly
|
|
293
294
|
} = restProps; // NODE: 对非必填单选为空的特殊处理 BY @robertman
|
|
294
295
|
|
|
295
296
|
const unselected = {
|
|
@@ -306,7 +307,8 @@ class ModelAttributeFormControl extends _react.Component {
|
|
|
306
307
|
onChange: e => this.onChange(e),
|
|
307
308
|
value: value !== undefined ? value : unselected.id,
|
|
308
309
|
className: this.props.className,
|
|
309
|
-
style: this.props.style
|
|
310
|
+
style: this.props.style,
|
|
311
|
+
disabled: readOnly
|
|
310
312
|
}, items.map(item => /*#__PURE__*/_react.default.createElement(_antd.Radio, {
|
|
311
313
|
value: item.id,
|
|
312
314
|
key: String(item.id)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/model-attribute-form-control/ModelAttributeFormControl.tsx"],"names":["ModelAttributeValueType","ModelAttributeValueModeType","FormControlTypeEnum","boolOptions","id","text","ModelAttributeFormControl","Component","componentDidUpdate","prevProps","prevState","snapshot","props","value","type","attribute","name","setState","formControl","computeFormControl","objectId","constructor","isClusterType","formControlType","computeFormControlType","items","computeFormControlItems","BOOLEAN","result","label","required","readOnly","isCreate","readonly","unique","pattern","computePattern","STRUCT","computePlaceholder","event","target","onChange","date","dateString","undefined","err","error","jsonValidateCollection","showError","restProps","errorMessage","state","jsonSchema","regex","JSON","parse","TEXT","placeholder","e","className","style","URL","NUMBER","CODE_EDITOR","validateJson","display","color","i18n","t","NS_LIBS_CMDB_INSTANCES","K","NOT_MEET_JSON","TEXTAREA","MARKDOWN","LEGACY_STRUCT","formData","RADIO","unselected","TEMPORARILY_NOT_CHOOSE","map","item","String","TAGS","width","tag","DATE","DATETIME","dateConfig","showTime","formater","format","handleDateChange","SELECT","newValue","multiSelect","is","message","_PLAIN_TEXT","ENUM","ENUMS","RegExp","enumValue","clusterMap","STRING","mode","MULTIPLE_LINES","IP","length","Error","ENUM_ERROR_TIP","INTEGER","FLOAT","ARR","struct_define","STRUCT_ERROR_TIP","STRUCT_LIST","TYPE_NO_SUPPORT_EDIT","IP_PLACEHOLDER","placeholders","push","CLICK_TO_SELECT","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 } = 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 >\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":["ModelAttributeValueType","ModelAttributeValueModeType","FormControlTypeEnum","boolOptions","id","text","ModelAttributeFormControl","Component","componentDidUpdate","prevProps","prevState","snapshot","props","value","type","attribute","name","setState","formControl","computeFormControl","objectId","constructor","isClusterType","formControlType","computeFormControlType","items","computeFormControlItems","BOOLEAN","result","label","required","readOnly","isCreate","readonly","unique","pattern","computePattern","STRUCT","computePlaceholder","event","target","onChange","date","dateString","undefined","err","error","jsonValidateCollection","showError","restProps","errorMessage","state","jsonSchema","regex","JSON","parse","TEXT","placeholder","e","className","style","URL","NUMBER","CODE_EDITOR","validateJson","display","color","i18n","t","NS_LIBS_CMDB_INSTANCES","K","NOT_MEET_JSON","TEXTAREA","MARKDOWN","LEGACY_STRUCT","formData","RADIO","unselected","TEMPORARILY_NOT_CHOOSE","map","item","String","TAGS","width","tag","DATE","DATETIME","dateConfig","showTime","formater","format","handleDateChange","SELECT","newValue","multiSelect","is","message","_PLAIN_TEXT","ENUM","ENUMS","RegExp","enumValue","clusterMap","STRING","mode","MULTIPLE_LINES","IP","length","Error","ENUM_ERROR_TIP","INTEGER","FLOAT","ARR","struct_define","STRUCT_ERROR_TIP","STRUCT_LIST","TYPE_NO_SUPPORT_EDIT","IP_PLACEHOLDER","placeholders","push","CLICK_TO_SELECT","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"}
|
|
@@ -276,7 +276,8 @@ export class ModelAttributeFormControl extends Component {
|
|
|
276
276
|
{
|
|
277
277
|
var {
|
|
278
278
|
items,
|
|
279
|
-
required: _required
|
|
279
|
+
required: _required,
|
|
280
|
+
readOnly: _readOnly
|
|
280
281
|
} = restProps; // NODE: 对非必填单选为空的特殊处理 BY @robertman
|
|
281
282
|
|
|
282
283
|
var unselected = {
|
|
@@ -293,7 +294,8 @@ export class ModelAttributeFormControl extends Component {
|
|
|
293
294
|
onChange: e => this.onChange(e),
|
|
294
295
|
value: value !== undefined ? value : unselected.id,
|
|
295
296
|
className: this.props.className,
|
|
296
|
-
style: this.props.style
|
|
297
|
+
style: this.props.style,
|
|
298
|
+
disabled: _readOnly
|
|
297
299
|
}, items.map(item => /*#__PURE__*/React.createElement(Radio, {
|
|
298
300
|
value: item.id,
|
|
299
301
|
key: String(item.id)
|
|
@@ -304,7 +306,7 @@ export class ModelAttributeFormControl extends Component {
|
|
|
304
306
|
{
|
|
305
307
|
var {
|
|
306
308
|
placeholder: _placeholder2,
|
|
307
|
-
readOnly:
|
|
309
|
+
readOnly: _readOnly2
|
|
308
310
|
} = restProps;
|
|
309
311
|
return /*#__PURE__*/React.createElement(Select, {
|
|
310
312
|
allowClear: true,
|
|
@@ -312,7 +314,7 @@ export class ModelAttributeFormControl extends Component {
|
|
|
312
314
|
style: _objectSpread(_objectSpread({}, this.props.style), {}, {
|
|
313
315
|
width: "100%"
|
|
314
316
|
}),
|
|
315
|
-
disabled:
|
|
317
|
+
disabled: _readOnly2,
|
|
316
318
|
placeholder: _placeholder2,
|
|
317
319
|
value: value || [],
|
|
318
320
|
onChange: e => this.onChange(e),
|
|
@@ -335,14 +337,14 @@ export class ModelAttributeFormControl extends Component {
|
|
|
335
337
|
}
|
|
336
338
|
|
|
337
339
|
var {
|
|
338
|
-
readOnly:
|
|
340
|
+
readOnly: _readOnly3,
|
|
339
341
|
placeholder: _placeholder3
|
|
340
342
|
} = restProps;
|
|
341
343
|
var formater = computeDateFormat(type, value);
|
|
342
344
|
return /*#__PURE__*/React.createElement(DatePicker, _extends({
|
|
343
345
|
value: formater.value,
|
|
344
346
|
placeholder: _placeholder3,
|
|
345
|
-
disabled:
|
|
347
|
+
disabled: _readOnly3,
|
|
346
348
|
format: formater.format
|
|
347
349
|
}, dateConfig, {
|
|
348
350
|
onChange: (date, dateString) => this.handleDateChange(date, dateString),
|
|
@@ -354,7 +356,7 @@ export class ModelAttributeFormControl extends Component {
|
|
|
354
356
|
case FormControlTypeEnum.SELECT:
|
|
355
357
|
{
|
|
356
358
|
var {
|
|
357
|
-
readOnly:
|
|
359
|
+
readOnly: _readOnly4,
|
|
358
360
|
placeholder: _placeholder4
|
|
359
361
|
} = restProps;
|
|
360
362
|
var newValue = typeof value === "boolean" ? value : value ? value : [];
|
|
@@ -363,7 +365,7 @@ export class ModelAttributeFormControl extends Component {
|
|
|
363
365
|
mode: this.props.multiSelect ? "multiple" : undefined,
|
|
364
366
|
defaultValue: newValue,
|
|
365
367
|
onChange: e => this.onChange(e),
|
|
366
|
-
disabled:
|
|
368
|
+
disabled: _readOnly4,
|
|
367
369
|
className: this.props.className,
|
|
368
370
|
style: this.props.style
|
|
369
371
|
}, restProps.items && restProps.items.map(_ref => {
|
|
@@ -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 } = 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 >\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 />\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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@next-libs/cmdb-instances",
|
|
3
|
-
"version": "6.12.
|
|
3
|
+
"version": "6.12.3",
|
|
4
4
|
"description": "> TODO: description",
|
|
5
5
|
"homepage": "https://github.com/easyops-cn/next-libs/tree/master/libs/cmdb-instances",
|
|
6
6
|
"license": "GPL-3.0",
|
|
@@ -50,5 +50,5 @@
|
|
|
50
50
|
"immutability-helper": "^3.1.1",
|
|
51
51
|
"marked": "^2.1.3"
|
|
52
52
|
},
|
|
53
|
-
"gitHead": "
|
|
53
|
+
"gitHead": "df01b03f22bc845110c85f58dabbc315cfd7c1d8"
|
|
54
54
|
}
|