@next-libs/cmdb-instances 6.26.4 → 6.26.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,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.26.5](https://github.com/easyops-cn/next-libs/compare/@next-libs/cmdb-instances@6.26.4...@next-libs/cmdb-instances@6.26.5) (2022-05-26)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **ModelAttributeFormControl:** change defaultValue property ([c62d082](https://github.com/easyops-cn/next-libs/commit/c62d0829804427ccea6ddcdc2351cdac84b7ec5a))
12
+
13
+
14
+
15
+
16
+
6
17
  ## [6.26.4](https://github.com/easyops-cn/next-libs/compare/@next-libs/cmdb-instances@6.26.3...@next-libs/cmdb-instances@6.26.4) (2022-05-25)
7
18
 
8
19
  **Note:** Version bump only for package @next-libs/cmdb-instances
@@ -374,7 +374,7 @@ class ModelAttributeFormControl extends _react.Component {
374
374
  return /*#__PURE__*/_react.default.createElement(_antd.Select, {
375
375
  placeholder: placeholder,
376
376
  mode: this.props.multiSelect ? "multiple" : undefined,
377
- defaultValue: newValue,
377
+ value: newValue,
378
378
  onChange: e => this.onChange(e),
379
379
  disabled: readOnly,
380
380
  className: this.props.className,
@@ -474,15 +474,15 @@ class ModelAttributeFormControl extends _react.Component {
474
474
  if (attribute.value.mode === ModelAttributeValueModeType.URL) {
475
475
  return FormControlTypeEnum.URL;
476
476
  }
477
-
478
- if (isSupportMultiStringValue) {
479
- return FormControlTypeEnum.TAGS;
480
- }
481
477
  }
482
478
 
483
479
  /* falls through */
484
480
 
485
481
  case ModelAttributeValueType.IP:
482
+ if (isSupportMultiStringValue) {
483
+ return FormControlTypeEnum.TAGS;
484
+ }
485
+
486
486
  return FormControlTypeEnum.TEXT;
487
487
 
488
488
  case ModelAttributeValueType.JSON:
@@ -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","isSupportMultiStringValue","items","computeFormControlItems","BOOLEAN","result","label","required","readOnly","isCreate","readonly","unique","pattern","computePattern","STRUCT","computePlaceholder","event","target","onChange","date","dateString","undefined","err","error","jsonValidateCollection","showError","restProps","errorMessage","state","jsonSchema","regex","JSON","parse","TEXT","placeholder","e","className","style","URL","NUMBER","CODE_EDITOR","validateJson","display","color","i18n","t","NS_LIBS_CMDB_INSTANCES","K","NOT_MEET_JSON","TEXTAREA","MARKDOWN","LEGACY_STRUCT","formData","RADIO","unselected","TEMPORARILY_NOT_CHOOSE","map","item","String","TAGS","width","DATE","DATETIME","dateConfig","showTime","formater","format","handleDateChange","SELECT","newValue","multiSelect","is","message","_PLAIN_TEXT","ENUM","ENUMS","RegExp","enumValue","clusterMap","STRING","mode","MULTIPLE_LINES","IP","length","Error","ENUM_ERROR_TIP","INTEGER","FLOAT","ARR","struct_define","STRUCT_ERROR_TIP","STRUCT_LIST","TYPE_NO_SUPPORT_EDIT","IP_PLACEHOLDER","placeholders","push","CLICK_TO_SELECT","ENTER_MULTIPLE_STRING_WITH_ENTER_KEY_AS_THE_SEPARATOR","ADVANCE_SEARCH_SINGLE_INPUT_PLACEHOLDER","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 isSupportMultiStringValue?: boolean;\n}\n\nexport interface ModelAttributeFormControlState {\n value?: any;\n formControl: FormControl;\n errorMessage: string;\n showError?: boolean;\n}\n\nexport const boolOptions: FormControlSelectItem[] = [\n {\n id: true,\n text: \"true\",\n },\n {\n id: false,\n text: \"false\",\n },\n];\n\nexport class ModelAttributeFormControl extends Component<\n ModelAttributeFormControlProps,\n ModelAttributeFormControlState\n> {\n componentDidUpdate(\n prevProps: Readonly<ModelAttributeFormControlProps>,\n prevState: Readonly<ModelAttributeFormControlState>,\n snapshot?: any\n ): void {\n if (\n this.props.value !== prevProps.value ||\n this.props.type !== prevProps.type ||\n this.props.attribute.id !== prevProps.attribute.id ||\n this.props.attribute.name !== prevProps.attribute.name ||\n this.props.attribute.value.type !== prevProps.attribute.value.type\n ) {\n this.setState({\n value: this.props.value,\n formControl: this.computeFormControl(\n this.props.attribute,\n this.props.id,\n this.props.type,\n this.props.objectId === \"CLUSTER\" &&\n this.props.attribute.id === \"type\"\n ),\n });\n }\n }\n\n constructor(props: ModelAttributeFormControlProps) {\n super(props);\n const { attribute, id, value, type, objectId } = props;\n const is = objectId;\n try {\n this.state = {\n value,\n errorMessage: null,\n formControl: this.computeFormControl(\n attribute,\n id,\n type,\n this.props.objectId === \"CLUSTER\" &&\n this.props.attribute.id === \"type\"\n ),\n };\n } catch (error) {\n this.state = {\n errorMessage: error.message,\n formControl: {\n type: FormControlTypeEnum._PLAIN_TEXT,\n name: attribute.name,\n id: \"\",\n },\n };\n }\n }\n\n static computePattern(\n attribute: Partial<CmdbModels.ModelObjectAttr>\n ): RegExp | undefined {\n try {\n if (\n attribute.value.type !== ModelAttributeValueType.ENUM &&\n attribute.value.type !== ModelAttributeValueType.ENUMS &&\n attribute.value.regex !== undefined &&\n attribute.value.regex !== null\n ) {\n // todo(jhuang): use `u` flag for compliance until https://github.com/angular/angular/pull/20819 is resolved\n return new RegExp(attribute.value.regex as string, \"u\");\n }\n return undefined;\n } catch (error) {\n return undefined;\n }\n }\n\n computeFormControlItems(\n attribute: Partial<CmdbModels.ModelObjectAttr>,\n isClusterType?: boolean\n ): FormControlSelectItem[] {\n if (\n attribute.value.type === ModelAttributeValueType.ENUM ||\n attribute.value.type === ModelAttributeValueType.ENUMS\n ) {\n // The backend guys are notorious to use `regex` as enum candidates. 😢\n return (attribute.value.regex as string[])?.map((enumValue) => ({\n id: enumValue,\n text: isClusterType ? clusterMap[enumValue] : enumValue,\n }));\n }\n }\n\n static computeFormControlType(\n attribute: Partial<CmdbModels.ModelObjectAttr>,\n type?: string,\n isSupportMultiStringValue?: boolean\n ): FormControlTypeEnum {\n switch (attribute.value.type) {\n case ModelAttributeValueType.STRING: {\n if (\n attribute.value.mode === ModelAttributeValueModeType.MULTIPLE_LINES\n ) {\n return FormControlTypeEnum.TEXTAREA;\n }\n if (attribute.value.mode === ModelAttributeValueModeType.MARKDOWN) {\n return FormControlTypeEnum.MARKDOWN;\n }\n if (attribute.value.mode === ModelAttributeValueModeType.URL) {\n return FormControlTypeEnum.URL;\n }\n if (isSupportMultiStringValue) {\n return FormControlTypeEnum.TAGS;\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 this.props.isSupportMultiStringValue\n );\n let items = this.computeFormControlItems(attribute, isClusterType);\n\n if (attribute.value.type === ModelAttributeValueType.BOOLEAN) {\n items = boolOptions;\n }\n\n const result: FormControl = {\n type: formControlType,\n items,\n id: id || attribute.id,\n name: attribute.id,\n label: attribute.name,\n required: attribute.required === \"true\",\n readOnly: !this.props.isCreate && attribute.readonly === \"true\",\n unique: attribute.unique === \"true\",\n pattern: ModelAttributeFormControl.computePattern(attribute),\n };\n\n if (result.type === FormControlTypeEnum.STRUCT) {\n result[\"maxlength\"] = 1;\n }\n result[\"placeholder\"] =\n ModelAttributeFormControl.computePlaceholder(result);\n return result;\n };\n\n static computePlaceholder(formControl: FormControl): string {\n if (formControl.id === \"ip\" && formControl.name === \"ip\") {\n return i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.IP_PLACEHOLDER}`);\n }\n\n const placeholders = [];\n switch (formControl.type) {\n case FormControlTypeEnum.SELECT:\n placeholders.push(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLICK_TO_SELECT}`)\n );\n break;\n case FormControlTypeEnum.DATETIME:\n case FormControlTypeEnum.DATE:\n placeholders.push(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLICK_TO_SELECT}`)\n );\n break;\n case FormControlTypeEnum.TAGS:\n placeholders.push(\n i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ENTER_MULTIPLE_STRING_WITH_ENTER_KEY_AS_THE_SEPARATOR}`\n )\n );\n break;\n default:\n placeholders.push(\n i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ADVANCE_SEARCH_SINGLE_INPUT_PLACEHOLDER}`\n )\n );\n }\n\n if (formControl.pattern !== undefined) {\n // placeholders.push(`匹配正则 ${formControl.pattern}`);\n placeholders.push(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.MATCHING_REGULAR}`, {\n regexp: formControl.pattern,\n })\n );\n }\n if (formControl.unique) {\n // placeholders.push(`${formControl.label}唯一不能重复`);\n placeholders.push(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.UNIQUE_NO_REPEAT}`, {\n label: formControl.label,\n })\n );\n }\n return placeholders.join(\",\");\n }\n\n /*computeFormControlAndCatchError = () => {\n const { attribute, objectId } = this.props;\n try {\n this.setState({\n formControl: this.computeFormControl(attribute, objectId)\n });\n } catch (error) {\n this.setState({\n errorMessage: error.message,\n formControl: {\n type: FormControlTypeEnum._PLAIN_TEXT,\n name: attribute.name,\n id: \"\"\n }\n });\n }\n };*/\n\n onChange = (event: any) => {\n let value;\n if (event && event.target) {\n value = event.target.value;\n } else {\n value = event;\n }\n\n const { onChange } = this.props;\n this.setState({ value });\n onChange && onChange(value);\n };\n\n handleDateChange = (date: Moment, dateString: string) => {\n this.onChange(dateString || undefined);\n };\n validateJson = (err: any) => {\n const error = some(err, [\"type\", \"error\"]);\n this.props.jsonValidateCollection?.(error);\n this.setState({ showError: error });\n };\n\n FormControlTypeMap = (): ReactNode => {\n const { attribute } = this.props;\n const {\n value,\n formControl: { type, ...restProps },\n errorMessage,\n } = this.state;\n // const unsupportText = `\"${type}\"类型暂时不支持编辑`;\n // const unsupportText = i18n.t(\n // `${NS_LIBS_CMDB_INSTANCES}:${K.TYPE_NO_SUPPORT_EDIT}`,\n // { type }\n // );\n let jsonSchema: any;\n if (attribute?.value?.type === \"json\" && attribute?.value?.regex) {\n jsonSchema = JSON.parse(attribute?.value?.regex);\n }\n\n switch (type) {\n case FormControlTypeEnum.TEXT: {\n const { pattern, placeholder, ...props } = restProps;\n return (\n <Input\n value={value}\n type=\"text\"\n {...props}\n placeholder={placeholder}\n onChange={(e) => this.onChange(e)}\n className={this.props.className}\n style={this.props.style}\n />\n );\n }\n\n case FormControlTypeEnum.URL: {\n const { readOnly, required, placeholder } = restProps;\n\n return (\n <AttributeFormControlUrl\n readOnly={readOnly}\n required={required}\n placeholder={placeholder}\n value={value}\n onChange={(e) => this.onChange(e)}\n />\n );\n }\n\n case FormControlTypeEnum.NUMBER: {\n const { pattern, ...props } = restProps;\n return (\n <InputNumber\n value={value}\n {...props}\n onChange={(e: any) => this.onChange(e)}\n className={this.props.className}\n style={this.props.style}\n />\n );\n }\n case FormControlTypeEnum.CODE_EDITOR:\n return (\n <>\n <CodeEditor\n value={value}\n mode={\"json\"}\n maxLines={\"Infinity\"}\n highlightActiveLine={true}\n onChange={(e: any) => this.onChange(e)}\n minLines={3}\n showLineNumbers={true}\n showPrintMargin={false}\n validateJsonSchemaMode={\"error\"}\n {...(jsonSchema ? { jsonSchema: jsonSchema } : {})}\n theme=\"tomorrow\"\n onValidate={(err: any) => this.validateJson(err)}\n />\n <label\n style={{\n display: this.state.showError ? \"block\" : \"none\",\n color: \"#fc5043\",\n }}\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.NOT_MEET_JSON}`)}\n </label>\n </>\n );\n case FormControlTypeEnum.TEXTAREA:\n case FormControlTypeEnum.MARKDOWN: {\n return (\n <Input.TextArea\n value={value}\n {...restProps}\n onChange={(e: any) => this.onChange(e)}\n className={this.props.className}\n style={this.props.style}\n rows={5}\n />\n );\n }\n\n case FormControlTypeEnum.STRUCT:\n case FormControlTypeEnum.LEGACY_STRUCT:\n return (\n <AddStruct\n isLegacy={type === FormControlTypeEnum.LEGACY_STRUCT}\n attribute={attribute}\n structData={value}\n handleStoreFunction={(formData: any) => this.onChange(formData)}\n className={this.props.className}\n style={this.props.style}\n isCreate={this.props.isCreate}\n />\n );\n\n case FormControlTypeEnum.RADIO: {\n let { items, required, readOnly } = restProps;\n\n // NODE: 对非必填单选为空的特殊处理 BY @robertman\n const unselected = {\n id: null as string,\n // text: \"暂不选择\",\n text: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.TEMPORARILY_NOT_CHOOSE}`),\n };\n\n if (!required) {\n items = [...items, unselected];\n }\n\n return (\n <Radio.Group\n onChange={(e: any) => this.onChange(e)}\n value={value !== undefined ? value : unselected.id}\n className={this.props.className}\n style={this.props.style}\n disabled={readOnly}\n >\n {items.map((item) => (\n <Radio value={item.id} key={String(item.id)}>\n {item.text}\n </Radio>\n ))}\n </Radio.Group>\n );\n }\n\n case FormControlTypeEnum.TAGS: {\n const { placeholder, readOnly } = restProps;\n return (\n <Select\n allowClear={true}\n mode=\"tags\"\n style={{ ...this.props.style, width: \"100%\" }}\n disabled={readOnly}\n placeholder={placeholder}\n value={value || []}\n onChange={(e: any) => this.onChange(e)}\n className={this.props.className}\n />\n );\n }\n\n case FormControlTypeEnum.DATE:\n case FormControlTypeEnum.DATETIME: {\n let dateConfig = {};\n if (type === FormControlTypeEnum.DATETIME) {\n dateConfig = {\n showTime: true,\n };\n }\n const { readOnly, placeholder } = restProps;\n const formater = computeDateFormat(type, value);\n return (\n <DatePicker\n value={formater.value}\n placeholder={placeholder}\n disabled={readOnly}\n format={formater.format}\n {...dateConfig}\n onChange={(date, dateString) =>\n this.handleDateChange(date, dateString)\n }\n className={this.props.className}\n style={this.props.style}\n />\n );\n }\n\n case FormControlTypeEnum.SELECT: {\n const { readOnly, placeholder } = restProps;\n const newValue =\n typeof value === \"boolean\" ? value : value ? value : [];\n return (\n <Select\n placeholder={placeholder}\n mode={this.props.multiSelect ? \"multiple\" : undefined}\n 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","isSupportMultiStringValue","items","computeFormControlItems","BOOLEAN","result","label","required","readOnly","isCreate","readonly","unique","pattern","computePattern","STRUCT","computePlaceholder","event","target","onChange","date","dateString","undefined","err","error","jsonValidateCollection","showError","restProps","errorMessage","state","jsonSchema","regex","JSON","parse","TEXT","placeholder","e","className","style","URL","NUMBER","CODE_EDITOR","validateJson","display","color","i18n","t","NS_LIBS_CMDB_INSTANCES","K","NOT_MEET_JSON","TEXTAREA","MARKDOWN","LEGACY_STRUCT","formData","RADIO","unselected","TEMPORARILY_NOT_CHOOSE","map","item","String","TAGS","width","DATE","DATETIME","dateConfig","showTime","formater","format","handleDateChange","SELECT","newValue","multiSelect","is","message","_PLAIN_TEXT","ENUM","ENUMS","RegExp","enumValue","clusterMap","STRING","mode","MULTIPLE_LINES","IP","length","Error","ENUM_ERROR_TIP","INTEGER","FLOAT","ARR","struct_define","STRUCT_ERROR_TIP","STRUCT_LIST","TYPE_NO_SUPPORT_EDIT","IP_PLACEHOLDER","placeholders","push","CLICK_TO_SELECT","ENTER_MULTIPLE_STRING_WITH_ENTER_KEY_AS_THE_SEPARATOR","ADVANCE_SEARCH_SINGLE_INPUT_PLACEHOLDER","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 isSupportMultiStringValue?: boolean;\n}\n\nexport interface ModelAttributeFormControlState {\n value?: any;\n formControl: FormControl;\n errorMessage: string;\n showError?: boolean;\n}\n\nexport const boolOptions: FormControlSelectItem[] = [\n {\n id: true,\n text: \"true\",\n },\n {\n id: false,\n text: \"false\",\n },\n];\n\nexport class ModelAttributeFormControl extends Component<\n ModelAttributeFormControlProps,\n ModelAttributeFormControlState\n> {\n componentDidUpdate(\n prevProps: Readonly<ModelAttributeFormControlProps>,\n prevState: Readonly<ModelAttributeFormControlState>,\n snapshot?: any\n ): void {\n if (\n this.props.value !== prevProps.value ||\n this.props.type !== prevProps.type ||\n this.props.attribute.id !== prevProps.attribute.id ||\n this.props.attribute.name !== prevProps.attribute.name ||\n this.props.attribute.value.type !== prevProps.attribute.value.type\n ) {\n this.setState({\n value: this.props.value,\n formControl: this.computeFormControl(\n this.props.attribute,\n this.props.id,\n this.props.type,\n this.props.objectId === \"CLUSTER\" &&\n this.props.attribute.id === \"type\"\n ),\n });\n }\n }\n\n constructor(props: ModelAttributeFormControlProps) {\n super(props);\n const { attribute, id, value, type, objectId } = props;\n const is = objectId;\n try {\n this.state = {\n value,\n errorMessage: null,\n formControl: this.computeFormControl(\n attribute,\n id,\n type,\n this.props.objectId === \"CLUSTER\" &&\n this.props.attribute.id === \"type\"\n ),\n };\n } catch (error) {\n this.state = {\n errorMessage: error.message,\n formControl: {\n type: FormControlTypeEnum._PLAIN_TEXT,\n name: attribute.name,\n id: \"\",\n },\n };\n }\n }\n\n static computePattern(\n attribute: Partial<CmdbModels.ModelObjectAttr>\n ): RegExp | undefined {\n try {\n if (\n attribute.value.type !== ModelAttributeValueType.ENUM &&\n attribute.value.type !== ModelAttributeValueType.ENUMS &&\n attribute.value.regex !== undefined &&\n attribute.value.regex !== null\n ) {\n // todo(jhuang): use `u` flag for compliance until https://github.com/angular/angular/pull/20819 is resolved\n return new RegExp(attribute.value.regex as string, \"u\");\n }\n return undefined;\n } catch (error) {\n return undefined;\n }\n }\n\n computeFormControlItems(\n attribute: Partial<CmdbModels.ModelObjectAttr>,\n isClusterType?: boolean\n ): FormControlSelectItem[] {\n if (\n attribute.value.type === ModelAttributeValueType.ENUM ||\n attribute.value.type === ModelAttributeValueType.ENUMS\n ) {\n // The backend guys are notorious to use `regex` as enum candidates. 😢\n return (attribute.value.regex as string[])?.map((enumValue) => ({\n id: enumValue,\n text: isClusterType ? clusterMap[enumValue] : enumValue,\n }));\n }\n }\n\n static computeFormControlType(\n attribute: Partial<CmdbModels.ModelObjectAttr>,\n type?: string,\n isSupportMultiStringValue?: boolean\n ): FormControlTypeEnum {\n switch (attribute.value.type) {\n case ModelAttributeValueType.STRING: {\n if (\n attribute.value.mode === ModelAttributeValueModeType.MULTIPLE_LINES\n ) {\n return FormControlTypeEnum.TEXTAREA;\n }\n if (attribute.value.mode === ModelAttributeValueModeType.MARKDOWN) {\n return FormControlTypeEnum.MARKDOWN;\n }\n if (attribute.value.mode === ModelAttributeValueModeType.URL) {\n return FormControlTypeEnum.URL;\n }\n }\n /* falls through */\n case ModelAttributeValueType.IP:\n if (isSupportMultiStringValue) {\n return FormControlTypeEnum.TAGS;\n }\n return FormControlTypeEnum.TEXT;\n case ModelAttributeValueType.JSON:\n // return FormControlTypeEnum.TEXTAREA;\n return FormControlTypeEnum.CODE_EDITOR;\n case ModelAttributeValueType.ENUM:\n if (\n !attribute.value.regex ||\n (attribute.value.regex as string[]).length === 0\n ) {\n throw new Error(\n // \"请在资源模型管理中添加枚举值, 属性: \" + attribute.name\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.ENUM_ERROR_TIP}`, {\n attribute: attribute.name,\n })\n );\n }\n if (\n attribute.value.regex &&\n (attribute.value.regex as string[]).length <= 5 &&\n (!type || type === FormControlTypeEnum.RADIO)\n ) {\n return FormControlTypeEnum.RADIO;\n }\n return FormControlTypeEnum.SELECT;\n case ModelAttributeValueType.INTEGER:\n case ModelAttributeValueType.FLOAT:\n return FormControlTypeEnum.NUMBER;\n case ModelAttributeValueType.DATE:\n return FormControlTypeEnum.DATE;\n case ModelAttributeValueType.DATETIME:\n return FormControlTypeEnum.DATETIME;\n case ModelAttributeValueType.ARR:\n return FormControlTypeEnum.TAGS;\n case ModelAttributeValueType.STRUCT:\n if (attribute.value.struct_define.length === 0) {\n throw new Error(\n // \"请在资源模型中添加结构体属性, 属性: \" + attribute.name\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.STRUCT_ERROR_TIP}`, {\n attribute: attribute.name,\n })\n );\n }\n return FormControlTypeEnum.LEGACY_STRUCT;\n case ModelAttributeValueType.STRUCT_LIST:\n if (attribute.value.struct_define.length === 0) {\n throw new Error(\n // \"请在资源模型中添加结构体属性, 属性: \" + attribute.name\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.STRUCT_ERROR_TIP}`, {\n attribute: attribute.name,\n })\n );\n }\n return FormControlTypeEnum.STRUCT;\n case ModelAttributeValueType.BOOLEAN:\n return FormControlTypeEnum.SELECT;\n case ModelAttributeValueType.ENUMS:\n return FormControlTypeEnum.SELECT;\n default:\n throw new Error(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.TYPE_NO_SUPPORT_EDIT}`, {\n type: attribute.value.type,\n })\n );\n }\n }\n\n computeFormControl = (\n attribute: Partial<CmdbModels.ModelObjectAttr>,\n id?: string,\n type?: string,\n isClusterType?: boolean\n ): FormControl => {\n const formControlType = ModelAttributeFormControl.computeFormControlType(\n attribute,\n type,\n this.props.isSupportMultiStringValue\n );\n let items = this.computeFormControlItems(attribute, isClusterType);\n\n if (attribute.value.type === ModelAttributeValueType.BOOLEAN) {\n items = boolOptions;\n }\n\n const result: FormControl = {\n type: formControlType,\n items,\n id: id || attribute.id,\n name: attribute.id,\n label: attribute.name,\n required: attribute.required === \"true\",\n readOnly: !this.props.isCreate && attribute.readonly === \"true\",\n unique: attribute.unique === \"true\",\n pattern: ModelAttributeFormControl.computePattern(attribute),\n };\n\n if (result.type === FormControlTypeEnum.STRUCT) {\n result[\"maxlength\"] = 1;\n }\n result[\"placeholder\"] =\n ModelAttributeFormControl.computePlaceholder(result);\n return result;\n };\n\n static computePlaceholder(formControl: FormControl): string {\n if (formControl.id === \"ip\" && formControl.name === \"ip\") {\n return i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.IP_PLACEHOLDER}`);\n }\n\n const placeholders = [];\n switch (formControl.type) {\n case FormControlTypeEnum.SELECT:\n placeholders.push(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLICK_TO_SELECT}`)\n );\n break;\n case FormControlTypeEnum.DATETIME:\n case FormControlTypeEnum.DATE:\n placeholders.push(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLICK_TO_SELECT}`)\n );\n break;\n case FormControlTypeEnum.TAGS:\n placeholders.push(\n i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ENTER_MULTIPLE_STRING_WITH_ENTER_KEY_AS_THE_SEPARATOR}`\n )\n );\n break;\n default:\n placeholders.push(\n i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ADVANCE_SEARCH_SINGLE_INPUT_PLACEHOLDER}`\n )\n );\n }\n\n if (formControl.pattern !== undefined) {\n // placeholders.push(`匹配正则 ${formControl.pattern}`);\n placeholders.push(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.MATCHING_REGULAR}`, {\n regexp: formControl.pattern,\n })\n );\n }\n if (formControl.unique) {\n // placeholders.push(`${formControl.label}唯一不能重复`);\n placeholders.push(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.UNIQUE_NO_REPEAT}`, {\n label: formControl.label,\n })\n );\n }\n return placeholders.join(\",\");\n }\n\n /*computeFormControlAndCatchError = () => {\n const { attribute, objectId } = this.props;\n try {\n this.setState({\n formControl: this.computeFormControl(attribute, objectId)\n });\n } catch (error) {\n this.setState({\n errorMessage: error.message,\n formControl: {\n type: FormControlTypeEnum._PLAIN_TEXT,\n name: attribute.name,\n id: \"\"\n }\n });\n }\n };*/\n\n onChange = (event: any) => {\n let value;\n if (event && event.target) {\n value = event.target.value;\n } else {\n value = event;\n }\n\n const { onChange } = this.props;\n this.setState({ value });\n onChange && onChange(value);\n };\n\n handleDateChange = (date: Moment, dateString: string) => {\n this.onChange(dateString || undefined);\n };\n validateJson = (err: any) => {\n const error = some(err, [\"type\", \"error\"]);\n this.props.jsonValidateCollection?.(error);\n this.setState({ showError: error });\n };\n\n FormControlTypeMap = (): ReactNode => {\n const { attribute } = this.props;\n const {\n value,\n formControl: { type, ...restProps },\n errorMessage,\n } = this.state;\n // const unsupportText = `\"${type}\"类型暂时不支持编辑`;\n // const unsupportText = i18n.t(\n // `${NS_LIBS_CMDB_INSTANCES}:${K.TYPE_NO_SUPPORT_EDIT}`,\n // { type }\n // );\n let jsonSchema: any;\n if (attribute?.value?.type === \"json\" && attribute?.value?.regex) {\n jsonSchema = JSON.parse(attribute?.value?.regex);\n }\n\n switch (type) {\n case FormControlTypeEnum.TEXT: {\n const { pattern, placeholder, ...props } = restProps;\n return (\n <Input\n value={value}\n type=\"text\"\n {...props}\n placeholder={placeholder}\n onChange={(e) => this.onChange(e)}\n className={this.props.className}\n style={this.props.style}\n />\n );\n }\n\n case FormControlTypeEnum.URL: {\n const { readOnly, required, placeholder } = restProps;\n\n return (\n <AttributeFormControlUrl\n readOnly={readOnly}\n required={required}\n placeholder={placeholder}\n value={value}\n onChange={(e) => this.onChange(e)}\n />\n );\n }\n\n case FormControlTypeEnum.NUMBER: {\n const { pattern, ...props } = restProps;\n return (\n <InputNumber\n value={value}\n {...props}\n onChange={(e: any) => this.onChange(e)}\n className={this.props.className}\n style={this.props.style}\n />\n );\n }\n case FormControlTypeEnum.CODE_EDITOR:\n return (\n <>\n <CodeEditor\n value={value}\n mode={\"json\"}\n maxLines={\"Infinity\"}\n highlightActiveLine={true}\n onChange={(e: any) => this.onChange(e)}\n minLines={3}\n showLineNumbers={true}\n showPrintMargin={false}\n validateJsonSchemaMode={\"error\"}\n {...(jsonSchema ? { jsonSchema: jsonSchema } : {})}\n theme=\"tomorrow\"\n onValidate={(err: any) => this.validateJson(err)}\n />\n <label\n style={{\n display: this.state.showError ? \"block\" : \"none\",\n color: \"#fc5043\",\n }}\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.NOT_MEET_JSON}`)}\n </label>\n </>\n );\n case FormControlTypeEnum.TEXTAREA:\n case FormControlTypeEnum.MARKDOWN: {\n return (\n <Input.TextArea\n value={value}\n {...restProps}\n onChange={(e: any) => this.onChange(e)}\n className={this.props.className}\n style={this.props.style}\n rows={5}\n />\n );\n }\n\n case FormControlTypeEnum.STRUCT:\n case FormControlTypeEnum.LEGACY_STRUCT:\n return (\n <AddStruct\n isLegacy={type === FormControlTypeEnum.LEGACY_STRUCT}\n attribute={attribute}\n structData={value}\n handleStoreFunction={(formData: any) => this.onChange(formData)}\n className={this.props.className}\n style={this.props.style}\n isCreate={this.props.isCreate}\n />\n );\n\n case FormControlTypeEnum.RADIO: {\n let { items, required, readOnly } = restProps;\n\n // NODE: 对非必填单选为空的特殊处理 BY @robertman\n const unselected = {\n id: null as string,\n // text: \"暂不选择\",\n text: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.TEMPORARILY_NOT_CHOOSE}`),\n };\n\n if (!required) {\n items = [...items, unselected];\n }\n\n return (\n <Radio.Group\n onChange={(e: any) => this.onChange(e)}\n value={value !== undefined ? value : unselected.id}\n className={this.props.className}\n style={this.props.style}\n disabled={readOnly}\n >\n {items.map((item) => (\n <Radio value={item.id} key={String(item.id)}>\n {item.text}\n </Radio>\n ))}\n </Radio.Group>\n );\n }\n\n case FormControlTypeEnum.TAGS: {\n const { placeholder, readOnly } = restProps;\n return (\n <Select\n allowClear={true}\n mode=\"tags\"\n style={{ ...this.props.style, width: \"100%\" }}\n disabled={readOnly}\n placeholder={placeholder}\n value={value || []}\n onChange={(e: any) => this.onChange(e)}\n className={this.props.className}\n />\n );\n }\n\n case FormControlTypeEnum.DATE:\n case FormControlTypeEnum.DATETIME: {\n let dateConfig = {};\n if (type === FormControlTypeEnum.DATETIME) {\n dateConfig = {\n showTime: true,\n };\n }\n const { readOnly, placeholder } = restProps;\n const formater = computeDateFormat(type, value);\n return (\n <DatePicker\n value={formater.value}\n placeholder={placeholder}\n disabled={readOnly}\n format={formater.format}\n {...dateConfig}\n onChange={(date, dateString) =>\n this.handleDateChange(date, dateString)\n }\n className={this.props.className}\n style={this.props.style}\n />\n );\n }\n\n case FormControlTypeEnum.SELECT: {\n const { readOnly, placeholder } = restProps;\n const newValue =\n typeof value === \"boolean\" ? value : value ? value : [];\n return (\n <Select\n placeholder={placeholder}\n mode={this.props.multiSelect ? \"multiple\" : undefined}\n value={newValue}\n onChange={(e: any) => this.onChange(e)}\n disabled={readOnly}\n className={this.props.className}\n style={this.props.style}\n >\n {restProps.items &&\n restProps.items.map(({ id, text }) => (\n <Select.Option value={id} key={id}>\n {text}\n </Select.Option>\n ))}\n </Select>\n );\n }\n\n default:\n return (\n // <Input\n // value={errorMessage}\n // readOnly\n // disabled\n // className={this.props.className}\n // style={this.props.style}\n // />\n <div\n style={{\n color: \"var(--theme-red-color)\",\n ...this.props.style,\n }}\n >\n {errorMessage}\n </div>\n );\n }\n };\n\n render(): ReactNode {\n return <>{this.FormControlTypeMap()}</>;\n }\n}\n"],"file":"ModelAttributeFormControl.js"}
@@ -361,7 +361,7 @@ export class ModelAttributeFormControl extends Component {
361
361
  return /*#__PURE__*/React.createElement(Select, {
362
362
  placeholder: _placeholder4,
363
363
  mode: this.props.multiSelect ? "multiple" : undefined,
364
- defaultValue: newValue,
364
+ value: newValue,
365
365
  onChange: e => this.onChange(e),
366
366
  disabled: _readOnly4,
367
367
  className: this.props.className,
@@ -464,15 +464,15 @@ export class ModelAttributeFormControl extends Component {
464
464
  if (attribute.value.mode === ModelAttributeValueModeType.URL) {
465
465
  return FormControlTypeEnum.URL;
466
466
  }
467
-
468
- if (isSupportMultiStringValue) {
469
- return FormControlTypeEnum.TAGS;
470
- }
471
467
  }
472
468
 
473
469
  /* falls through */
474
470
 
475
471
  case ModelAttributeValueType.IP:
472
+ if (isSupportMultiStringValue) {
473
+ return FormControlTypeEnum.TAGS;
474
+ }
475
+
476
476
  return FormControlTypeEnum.TEXT;
477
477
 
478
478
  case ModelAttributeValueType.JSON:
@@ -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","isSupportMultiStringValue","items","computeFormControlItems","BOOLEAN","result","label","required","readOnly","isCreate","readonly","unique","pattern","computePattern","STRUCT","computePlaceholder","event","target","onChange","date","dateString","undefined","err","error","jsonValidateCollection","showError","state","errorMessage","restProps","jsonSchema","regex","JSON","parse","TEXT","placeholder","e","className","style","URL","NUMBER","CODE_EDITOR","validateJson","display","color","t","NOT_MEET_JSON","TEXTAREA","MARKDOWN","LEGACY_STRUCT","formData","RADIO","unselected","TEMPORARILY_NOT_CHOOSE","map","item","String","TAGS","width","DATE","DATETIME","dateConfig","showTime","formater","format","handleDateChange","SELECT","newValue","multiSelect","is","message","_PLAIN_TEXT","ENUM","ENUMS","RegExp","enumValue","STRING","mode","MULTIPLE_LINES","IP","length","Error","ENUM_ERROR_TIP","INTEGER","FLOAT","ARR","struct_define","STRUCT_ERROR_TIP","STRUCT_LIST","TYPE_NO_SUPPORT_EDIT","IP_PLACEHOLDER","placeholders","push","CLICK_TO_SELECT","ENTER_MULTIPLE_STRING_WITH_ENTER_KEY_AS_THE_SEPARATOR","ADVANCE_SEARCH_SINGLE_INPUT_PLACEHOLDER","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 isSupportMultiStringValue?: boolean;\n}\n\nexport interface ModelAttributeFormControlState {\n value?: any;\n formControl: FormControl;\n errorMessage: string;\n showError?: boolean;\n}\n\nexport const boolOptions: FormControlSelectItem[] = [\n {\n id: true,\n text: \"true\",\n },\n {\n id: false,\n text: \"false\",\n },\n];\n\nexport class ModelAttributeFormControl extends Component<\n ModelAttributeFormControlProps,\n ModelAttributeFormControlState\n> {\n componentDidUpdate(\n prevProps: Readonly<ModelAttributeFormControlProps>,\n prevState: Readonly<ModelAttributeFormControlState>,\n snapshot?: any\n ): void {\n if (\n this.props.value !== prevProps.value ||\n this.props.type !== prevProps.type ||\n this.props.attribute.id !== prevProps.attribute.id ||\n this.props.attribute.name !== prevProps.attribute.name ||\n this.props.attribute.value.type !== prevProps.attribute.value.type\n ) {\n this.setState({\n value: this.props.value,\n formControl: this.computeFormControl(\n this.props.attribute,\n this.props.id,\n this.props.type,\n this.props.objectId === \"CLUSTER\" &&\n this.props.attribute.id === \"type\"\n ),\n });\n }\n }\n\n constructor(props: ModelAttributeFormControlProps) {\n super(props);\n const { attribute, id, value, type, objectId } = props;\n const is = objectId;\n try {\n this.state = {\n value,\n errorMessage: null,\n formControl: this.computeFormControl(\n attribute,\n id,\n type,\n this.props.objectId === \"CLUSTER\" &&\n this.props.attribute.id === \"type\"\n ),\n };\n } catch (error) {\n this.state = {\n errorMessage: error.message,\n formControl: {\n type: FormControlTypeEnum._PLAIN_TEXT,\n name: attribute.name,\n id: \"\",\n },\n };\n }\n }\n\n static computePattern(\n attribute: Partial<CmdbModels.ModelObjectAttr>\n ): RegExp | undefined {\n try {\n if (\n attribute.value.type !== ModelAttributeValueType.ENUM &&\n attribute.value.type !== ModelAttributeValueType.ENUMS &&\n attribute.value.regex !== undefined &&\n attribute.value.regex !== null\n ) {\n // todo(jhuang): use `u` flag for compliance until https://github.com/angular/angular/pull/20819 is resolved\n return new RegExp(attribute.value.regex as string, \"u\");\n }\n return undefined;\n } catch (error) {\n return undefined;\n }\n }\n\n computeFormControlItems(\n attribute: Partial<CmdbModels.ModelObjectAttr>,\n isClusterType?: boolean\n ): FormControlSelectItem[] {\n if (\n attribute.value.type === ModelAttributeValueType.ENUM ||\n attribute.value.type === ModelAttributeValueType.ENUMS\n ) {\n // The backend guys are notorious to use `regex` as enum candidates. 😢\n return (attribute.value.regex as string[])?.map((enumValue) => ({\n id: enumValue,\n text: isClusterType ? clusterMap[enumValue] : enumValue,\n }));\n }\n }\n\n static computeFormControlType(\n attribute: Partial<CmdbModels.ModelObjectAttr>,\n type?: string,\n isSupportMultiStringValue?: boolean\n ): FormControlTypeEnum {\n switch (attribute.value.type) {\n case ModelAttributeValueType.STRING: {\n if (\n attribute.value.mode === ModelAttributeValueModeType.MULTIPLE_LINES\n ) {\n return FormControlTypeEnum.TEXTAREA;\n }\n if (attribute.value.mode === ModelAttributeValueModeType.MARKDOWN) {\n return FormControlTypeEnum.MARKDOWN;\n }\n if (attribute.value.mode === ModelAttributeValueModeType.URL) {\n return FormControlTypeEnum.URL;\n }\n if (isSupportMultiStringValue) {\n return FormControlTypeEnum.TAGS;\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 this.props.isSupportMultiStringValue\n );\n let items = this.computeFormControlItems(attribute, isClusterType);\n\n if (attribute.value.type === ModelAttributeValueType.BOOLEAN) {\n items = boolOptions;\n }\n\n const result: FormControl = {\n type: formControlType,\n items,\n id: id || attribute.id,\n name: attribute.id,\n label: attribute.name,\n required: attribute.required === \"true\",\n readOnly: !this.props.isCreate && attribute.readonly === \"true\",\n unique: attribute.unique === \"true\",\n pattern: ModelAttributeFormControl.computePattern(attribute),\n };\n\n if (result.type === FormControlTypeEnum.STRUCT) {\n result[\"maxlength\"] = 1;\n }\n result[\"placeholder\"] =\n ModelAttributeFormControl.computePlaceholder(result);\n return result;\n };\n\n static computePlaceholder(formControl: FormControl): string {\n if (formControl.id === \"ip\" && formControl.name === \"ip\") {\n return i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.IP_PLACEHOLDER}`);\n }\n\n const placeholders = [];\n switch (formControl.type) {\n case FormControlTypeEnum.SELECT:\n placeholders.push(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLICK_TO_SELECT}`)\n );\n break;\n case FormControlTypeEnum.DATETIME:\n case FormControlTypeEnum.DATE:\n placeholders.push(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLICK_TO_SELECT}`)\n );\n break;\n case FormControlTypeEnum.TAGS:\n placeholders.push(\n i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ENTER_MULTIPLE_STRING_WITH_ENTER_KEY_AS_THE_SEPARATOR}`\n )\n );\n break;\n default:\n placeholders.push(\n i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ADVANCE_SEARCH_SINGLE_INPUT_PLACEHOLDER}`\n )\n );\n }\n\n if (formControl.pattern !== undefined) {\n // placeholders.push(`匹配正则 ${formControl.pattern}`);\n placeholders.push(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.MATCHING_REGULAR}`, {\n regexp: formControl.pattern,\n })\n );\n }\n if (formControl.unique) {\n // placeholders.push(`${formControl.label}唯一不能重复`);\n placeholders.push(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.UNIQUE_NO_REPEAT}`, {\n label: formControl.label,\n })\n );\n }\n return placeholders.join(\",\");\n }\n\n /*computeFormControlAndCatchError = () => {\n const { attribute, objectId } = this.props;\n try {\n this.setState({\n formControl: this.computeFormControl(attribute, objectId)\n });\n } catch (error) {\n this.setState({\n errorMessage: error.message,\n formControl: {\n type: FormControlTypeEnum._PLAIN_TEXT,\n name: attribute.name,\n id: \"\"\n }\n });\n }\n };*/\n\n onChange = (event: any) => {\n let value;\n if (event && event.target) {\n value = event.target.value;\n } else {\n value = event;\n }\n\n const { onChange } = this.props;\n this.setState({ value });\n onChange && onChange(value);\n };\n\n handleDateChange = (date: Moment, dateString: string) => {\n this.onChange(dateString || undefined);\n };\n validateJson = (err: any) => {\n const error = some(err, [\"type\", \"error\"]);\n this.props.jsonValidateCollection?.(error);\n this.setState({ showError: error });\n };\n\n FormControlTypeMap = (): ReactNode => {\n const { attribute } = this.props;\n const {\n value,\n formControl: { type, ...restProps },\n errorMessage,\n } = this.state;\n // const unsupportText = `\"${type}\"类型暂时不支持编辑`;\n // const unsupportText = i18n.t(\n // `${NS_LIBS_CMDB_INSTANCES}:${K.TYPE_NO_SUPPORT_EDIT}`,\n // { type }\n // );\n let jsonSchema: any;\n if (attribute?.value?.type === \"json\" && attribute?.value?.regex) {\n jsonSchema = JSON.parse(attribute?.value?.regex);\n }\n\n switch (type) {\n case FormControlTypeEnum.TEXT: {\n const { pattern, placeholder, ...props } = restProps;\n return (\n <Input\n value={value}\n type=\"text\"\n {...props}\n placeholder={placeholder}\n onChange={(e) => this.onChange(e)}\n className={this.props.className}\n style={this.props.style}\n />\n );\n }\n\n case FormControlTypeEnum.URL: {\n const { readOnly, required, placeholder } = restProps;\n\n return (\n <AttributeFormControlUrl\n readOnly={readOnly}\n required={required}\n placeholder={placeholder}\n value={value}\n onChange={(e) => this.onChange(e)}\n />\n );\n }\n\n case FormControlTypeEnum.NUMBER: {\n const { pattern, ...props } = restProps;\n return (\n <InputNumber\n value={value}\n {...props}\n onChange={(e: any) => this.onChange(e)}\n className={this.props.className}\n style={this.props.style}\n />\n );\n }\n case FormControlTypeEnum.CODE_EDITOR:\n return (\n <>\n <CodeEditor\n value={value}\n mode={\"json\"}\n maxLines={\"Infinity\"}\n highlightActiveLine={true}\n onChange={(e: any) => this.onChange(e)}\n minLines={3}\n showLineNumbers={true}\n showPrintMargin={false}\n validateJsonSchemaMode={\"error\"}\n {...(jsonSchema ? { jsonSchema: jsonSchema } : {})}\n theme=\"tomorrow\"\n onValidate={(err: any) => this.validateJson(err)}\n />\n <label\n style={{\n display: this.state.showError ? \"block\" : \"none\",\n color: \"#fc5043\",\n }}\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.NOT_MEET_JSON}`)}\n </label>\n </>\n );\n case FormControlTypeEnum.TEXTAREA:\n case FormControlTypeEnum.MARKDOWN: {\n return (\n <Input.TextArea\n value={value}\n {...restProps}\n onChange={(e: any) => this.onChange(e)}\n className={this.props.className}\n style={this.props.style}\n rows={5}\n />\n );\n }\n\n case FormControlTypeEnum.STRUCT:\n case FormControlTypeEnum.LEGACY_STRUCT:\n return (\n <AddStruct\n isLegacy={type === FormControlTypeEnum.LEGACY_STRUCT}\n attribute={attribute}\n structData={value}\n handleStoreFunction={(formData: any) => this.onChange(formData)}\n className={this.props.className}\n style={this.props.style}\n isCreate={this.props.isCreate}\n />\n );\n\n case FormControlTypeEnum.RADIO: {\n let { items, required, readOnly } = restProps;\n\n // NODE: 对非必填单选为空的特殊处理 BY @robertman\n const unselected = {\n id: null as string,\n // text: \"暂不选择\",\n text: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.TEMPORARILY_NOT_CHOOSE}`),\n };\n\n if (!required) {\n items = [...items, unselected];\n }\n\n return (\n <Radio.Group\n onChange={(e: any) => this.onChange(e)}\n value={value !== undefined ? value : unselected.id}\n className={this.props.className}\n style={this.props.style}\n disabled={readOnly}\n >\n {items.map((item) => (\n <Radio value={item.id} key={String(item.id)}>\n {item.text}\n </Radio>\n ))}\n </Radio.Group>\n );\n }\n\n case FormControlTypeEnum.TAGS: {\n const { placeholder, readOnly } = restProps;\n return (\n <Select\n allowClear={true}\n mode=\"tags\"\n style={{ ...this.props.style, width: \"100%\" }}\n disabled={readOnly}\n placeholder={placeholder}\n value={value || []}\n onChange={(e: any) => this.onChange(e)}\n className={this.props.className}\n />\n );\n }\n\n case FormControlTypeEnum.DATE:\n case FormControlTypeEnum.DATETIME: {\n let dateConfig = {};\n if (type === FormControlTypeEnum.DATETIME) {\n dateConfig = {\n showTime: true,\n };\n }\n const { readOnly, placeholder } = restProps;\n const formater = computeDateFormat(type, value);\n return (\n <DatePicker\n value={formater.value}\n placeholder={placeholder}\n disabled={readOnly}\n format={formater.format}\n {...dateConfig}\n onChange={(date, dateString) =>\n this.handleDateChange(date, dateString)\n }\n className={this.props.className}\n style={this.props.style}\n />\n );\n }\n\n case FormControlTypeEnum.SELECT: {\n const { readOnly, placeholder } = restProps;\n const newValue =\n typeof value === \"boolean\" ? value : value ? value : [];\n return (\n <Select\n placeholder={placeholder}\n mode={this.props.multiSelect ? \"multiple\" : undefined}\n 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","isSupportMultiStringValue","items","computeFormControlItems","BOOLEAN","result","label","required","readOnly","isCreate","readonly","unique","pattern","computePattern","STRUCT","computePlaceholder","event","target","onChange","date","dateString","undefined","err","error","jsonValidateCollection","showError","state","errorMessage","restProps","jsonSchema","regex","JSON","parse","TEXT","placeholder","e","className","style","URL","NUMBER","CODE_EDITOR","validateJson","display","color","t","NOT_MEET_JSON","TEXTAREA","MARKDOWN","LEGACY_STRUCT","formData","RADIO","unselected","TEMPORARILY_NOT_CHOOSE","map","item","String","TAGS","width","DATE","DATETIME","dateConfig","showTime","formater","format","handleDateChange","SELECT","newValue","multiSelect","is","message","_PLAIN_TEXT","ENUM","ENUMS","RegExp","enumValue","STRING","mode","MULTIPLE_LINES","IP","length","Error","ENUM_ERROR_TIP","INTEGER","FLOAT","ARR","struct_define","STRUCT_ERROR_TIP","STRUCT_LIST","TYPE_NO_SUPPORT_EDIT","IP_PLACEHOLDER","placeholders","push","CLICK_TO_SELECT","ENTER_MULTIPLE_STRING_WITH_ENTER_KEY_AS_THE_SEPARATOR","ADVANCE_SEARCH_SINGLE_INPUT_PLACEHOLDER","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 isSupportMultiStringValue?: boolean;\n}\n\nexport interface ModelAttributeFormControlState {\n value?: any;\n formControl: FormControl;\n errorMessage: string;\n showError?: boolean;\n}\n\nexport const boolOptions: FormControlSelectItem[] = [\n {\n id: true,\n text: \"true\",\n },\n {\n id: false,\n text: \"false\",\n },\n];\n\nexport class ModelAttributeFormControl extends Component<\n ModelAttributeFormControlProps,\n ModelAttributeFormControlState\n> {\n componentDidUpdate(\n prevProps: Readonly<ModelAttributeFormControlProps>,\n prevState: Readonly<ModelAttributeFormControlState>,\n snapshot?: any\n ): void {\n if (\n this.props.value !== prevProps.value ||\n this.props.type !== prevProps.type ||\n this.props.attribute.id !== prevProps.attribute.id ||\n this.props.attribute.name !== prevProps.attribute.name ||\n this.props.attribute.value.type !== prevProps.attribute.value.type\n ) {\n this.setState({\n value: this.props.value,\n formControl: this.computeFormControl(\n this.props.attribute,\n this.props.id,\n this.props.type,\n this.props.objectId === \"CLUSTER\" &&\n this.props.attribute.id === \"type\"\n ),\n });\n }\n }\n\n constructor(props: ModelAttributeFormControlProps) {\n super(props);\n const { attribute, id, value, type, objectId } = props;\n const is = objectId;\n try {\n this.state = {\n value,\n errorMessage: null,\n formControl: this.computeFormControl(\n attribute,\n id,\n type,\n this.props.objectId === \"CLUSTER\" &&\n this.props.attribute.id === \"type\"\n ),\n };\n } catch (error) {\n this.state = {\n errorMessage: error.message,\n formControl: {\n type: FormControlTypeEnum._PLAIN_TEXT,\n name: attribute.name,\n id: \"\",\n },\n };\n }\n }\n\n static computePattern(\n attribute: Partial<CmdbModels.ModelObjectAttr>\n ): RegExp | undefined {\n try {\n if (\n attribute.value.type !== ModelAttributeValueType.ENUM &&\n attribute.value.type !== ModelAttributeValueType.ENUMS &&\n attribute.value.regex !== undefined &&\n attribute.value.regex !== null\n ) {\n // todo(jhuang): use `u` flag for compliance until https://github.com/angular/angular/pull/20819 is resolved\n return new RegExp(attribute.value.regex as string, \"u\");\n }\n return undefined;\n } catch (error) {\n return undefined;\n }\n }\n\n computeFormControlItems(\n attribute: Partial<CmdbModels.ModelObjectAttr>,\n isClusterType?: boolean\n ): FormControlSelectItem[] {\n if (\n attribute.value.type === ModelAttributeValueType.ENUM ||\n attribute.value.type === ModelAttributeValueType.ENUMS\n ) {\n // The backend guys are notorious to use `regex` as enum candidates. 😢\n return (attribute.value.regex as string[])?.map((enumValue) => ({\n id: enumValue,\n text: isClusterType ? clusterMap[enumValue] : enumValue,\n }));\n }\n }\n\n static computeFormControlType(\n attribute: Partial<CmdbModels.ModelObjectAttr>,\n type?: string,\n isSupportMultiStringValue?: boolean\n ): FormControlTypeEnum {\n switch (attribute.value.type) {\n case ModelAttributeValueType.STRING: {\n if (\n attribute.value.mode === ModelAttributeValueModeType.MULTIPLE_LINES\n ) {\n return FormControlTypeEnum.TEXTAREA;\n }\n if (attribute.value.mode === ModelAttributeValueModeType.MARKDOWN) {\n return FormControlTypeEnum.MARKDOWN;\n }\n if (attribute.value.mode === ModelAttributeValueModeType.URL) {\n return FormControlTypeEnum.URL;\n }\n }\n /* falls through */\n case ModelAttributeValueType.IP:\n if (isSupportMultiStringValue) {\n return FormControlTypeEnum.TAGS;\n }\n return FormControlTypeEnum.TEXT;\n case ModelAttributeValueType.JSON:\n // return FormControlTypeEnum.TEXTAREA;\n return FormControlTypeEnum.CODE_EDITOR;\n case ModelAttributeValueType.ENUM:\n if (\n !attribute.value.regex ||\n (attribute.value.regex as string[]).length === 0\n ) {\n throw new Error(\n // \"请在资源模型管理中添加枚举值, 属性: \" + attribute.name\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.ENUM_ERROR_TIP}`, {\n attribute: attribute.name,\n })\n );\n }\n if (\n attribute.value.regex &&\n (attribute.value.regex as string[]).length <= 5 &&\n (!type || type === FormControlTypeEnum.RADIO)\n ) {\n return FormControlTypeEnum.RADIO;\n }\n return FormControlTypeEnum.SELECT;\n case ModelAttributeValueType.INTEGER:\n case ModelAttributeValueType.FLOAT:\n return FormControlTypeEnum.NUMBER;\n case ModelAttributeValueType.DATE:\n return FormControlTypeEnum.DATE;\n case ModelAttributeValueType.DATETIME:\n return FormControlTypeEnum.DATETIME;\n case ModelAttributeValueType.ARR:\n return FormControlTypeEnum.TAGS;\n case ModelAttributeValueType.STRUCT:\n if (attribute.value.struct_define.length === 0) {\n throw new Error(\n // \"请在资源模型中添加结构体属性, 属性: \" + attribute.name\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.STRUCT_ERROR_TIP}`, {\n attribute: attribute.name,\n })\n );\n }\n return FormControlTypeEnum.LEGACY_STRUCT;\n case ModelAttributeValueType.STRUCT_LIST:\n if (attribute.value.struct_define.length === 0) {\n throw new Error(\n // \"请在资源模型中添加结构体属性, 属性: \" + attribute.name\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.STRUCT_ERROR_TIP}`, {\n attribute: attribute.name,\n })\n );\n }\n return FormControlTypeEnum.STRUCT;\n case ModelAttributeValueType.BOOLEAN:\n return FormControlTypeEnum.SELECT;\n case ModelAttributeValueType.ENUMS:\n return FormControlTypeEnum.SELECT;\n default:\n throw new Error(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.TYPE_NO_SUPPORT_EDIT}`, {\n type: attribute.value.type,\n })\n );\n }\n }\n\n computeFormControl = (\n attribute: Partial<CmdbModels.ModelObjectAttr>,\n id?: string,\n type?: string,\n isClusterType?: boolean\n ): FormControl => {\n const formControlType = ModelAttributeFormControl.computeFormControlType(\n attribute,\n type,\n this.props.isSupportMultiStringValue\n );\n let items = this.computeFormControlItems(attribute, isClusterType);\n\n if (attribute.value.type === ModelAttributeValueType.BOOLEAN) {\n items = boolOptions;\n }\n\n const result: FormControl = {\n type: formControlType,\n items,\n id: id || attribute.id,\n name: attribute.id,\n label: attribute.name,\n required: attribute.required === \"true\",\n readOnly: !this.props.isCreate && attribute.readonly === \"true\",\n unique: attribute.unique === \"true\",\n pattern: ModelAttributeFormControl.computePattern(attribute),\n };\n\n if (result.type === FormControlTypeEnum.STRUCT) {\n result[\"maxlength\"] = 1;\n }\n result[\"placeholder\"] =\n ModelAttributeFormControl.computePlaceholder(result);\n return result;\n };\n\n static computePlaceholder(formControl: FormControl): string {\n if (formControl.id === \"ip\" && formControl.name === \"ip\") {\n return i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.IP_PLACEHOLDER}`);\n }\n\n const placeholders = [];\n switch (formControl.type) {\n case FormControlTypeEnum.SELECT:\n placeholders.push(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLICK_TO_SELECT}`)\n );\n break;\n case FormControlTypeEnum.DATETIME:\n case FormControlTypeEnum.DATE:\n placeholders.push(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLICK_TO_SELECT}`)\n );\n break;\n case FormControlTypeEnum.TAGS:\n placeholders.push(\n i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ENTER_MULTIPLE_STRING_WITH_ENTER_KEY_AS_THE_SEPARATOR}`\n )\n );\n break;\n default:\n placeholders.push(\n i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ADVANCE_SEARCH_SINGLE_INPUT_PLACEHOLDER}`\n )\n );\n }\n\n if (formControl.pattern !== undefined) {\n // placeholders.push(`匹配正则 ${formControl.pattern}`);\n placeholders.push(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.MATCHING_REGULAR}`, {\n regexp: formControl.pattern,\n })\n );\n }\n if (formControl.unique) {\n // placeholders.push(`${formControl.label}唯一不能重复`);\n placeholders.push(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.UNIQUE_NO_REPEAT}`, {\n label: formControl.label,\n })\n );\n }\n return placeholders.join(\",\");\n }\n\n /*computeFormControlAndCatchError = () => {\n const { attribute, objectId } = this.props;\n try {\n this.setState({\n formControl: this.computeFormControl(attribute, objectId)\n });\n } catch (error) {\n this.setState({\n errorMessage: error.message,\n formControl: {\n type: FormControlTypeEnum._PLAIN_TEXT,\n name: attribute.name,\n id: \"\"\n }\n });\n }\n };*/\n\n onChange = (event: any) => {\n let value;\n if (event && event.target) {\n value = event.target.value;\n } else {\n value = event;\n }\n\n const { onChange } = this.props;\n this.setState({ value });\n onChange && onChange(value);\n };\n\n handleDateChange = (date: Moment, dateString: string) => {\n this.onChange(dateString || undefined);\n };\n validateJson = (err: any) => {\n const error = some(err, [\"type\", \"error\"]);\n this.props.jsonValidateCollection?.(error);\n this.setState({ showError: error });\n };\n\n FormControlTypeMap = (): ReactNode => {\n const { attribute } = this.props;\n const {\n value,\n formControl: { type, ...restProps },\n errorMessage,\n } = this.state;\n // const unsupportText = `\"${type}\"类型暂时不支持编辑`;\n // const unsupportText = i18n.t(\n // `${NS_LIBS_CMDB_INSTANCES}:${K.TYPE_NO_SUPPORT_EDIT}`,\n // { type }\n // );\n let jsonSchema: any;\n if (attribute?.value?.type === \"json\" && attribute?.value?.regex) {\n jsonSchema = JSON.parse(attribute?.value?.regex);\n }\n\n switch (type) {\n case FormControlTypeEnum.TEXT: {\n const { pattern, placeholder, ...props } = restProps;\n return (\n <Input\n value={value}\n type=\"text\"\n {...props}\n placeholder={placeholder}\n onChange={(e) => this.onChange(e)}\n className={this.props.className}\n style={this.props.style}\n />\n );\n }\n\n case FormControlTypeEnum.URL: {\n const { readOnly, required, placeholder } = restProps;\n\n return (\n <AttributeFormControlUrl\n readOnly={readOnly}\n required={required}\n placeholder={placeholder}\n value={value}\n onChange={(e) => this.onChange(e)}\n />\n );\n }\n\n case FormControlTypeEnum.NUMBER: {\n const { pattern, ...props } = restProps;\n return (\n <InputNumber\n value={value}\n {...props}\n onChange={(e: any) => this.onChange(e)}\n className={this.props.className}\n style={this.props.style}\n />\n );\n }\n case FormControlTypeEnum.CODE_EDITOR:\n return (\n <>\n <CodeEditor\n value={value}\n mode={\"json\"}\n maxLines={\"Infinity\"}\n highlightActiveLine={true}\n onChange={(e: any) => this.onChange(e)}\n minLines={3}\n showLineNumbers={true}\n showPrintMargin={false}\n validateJsonSchemaMode={\"error\"}\n {...(jsonSchema ? { jsonSchema: jsonSchema } : {})}\n theme=\"tomorrow\"\n onValidate={(err: any) => this.validateJson(err)}\n />\n <label\n style={{\n display: this.state.showError ? \"block\" : \"none\",\n color: \"#fc5043\",\n }}\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.NOT_MEET_JSON}`)}\n </label>\n </>\n );\n case FormControlTypeEnum.TEXTAREA:\n case FormControlTypeEnum.MARKDOWN: {\n return (\n <Input.TextArea\n value={value}\n {...restProps}\n onChange={(e: any) => this.onChange(e)}\n className={this.props.className}\n style={this.props.style}\n rows={5}\n />\n );\n }\n\n case FormControlTypeEnum.STRUCT:\n case FormControlTypeEnum.LEGACY_STRUCT:\n return (\n <AddStruct\n isLegacy={type === FormControlTypeEnum.LEGACY_STRUCT}\n attribute={attribute}\n structData={value}\n handleStoreFunction={(formData: any) => this.onChange(formData)}\n className={this.props.className}\n style={this.props.style}\n isCreate={this.props.isCreate}\n />\n );\n\n case FormControlTypeEnum.RADIO: {\n let { items, required, readOnly } = restProps;\n\n // NODE: 对非必填单选为空的特殊处理 BY @robertman\n const unselected = {\n id: null as string,\n // text: \"暂不选择\",\n text: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.TEMPORARILY_NOT_CHOOSE}`),\n };\n\n if (!required) {\n items = [...items, unselected];\n }\n\n return (\n <Radio.Group\n onChange={(e: any) => this.onChange(e)}\n value={value !== undefined ? value : unselected.id}\n className={this.props.className}\n style={this.props.style}\n disabled={readOnly}\n >\n {items.map((item) => (\n <Radio value={item.id} key={String(item.id)}>\n {item.text}\n </Radio>\n ))}\n </Radio.Group>\n );\n }\n\n case FormControlTypeEnum.TAGS: {\n const { placeholder, readOnly } = restProps;\n return (\n <Select\n allowClear={true}\n mode=\"tags\"\n style={{ ...this.props.style, width: \"100%\" }}\n disabled={readOnly}\n placeholder={placeholder}\n value={value || []}\n onChange={(e: any) => this.onChange(e)}\n className={this.props.className}\n />\n );\n }\n\n case FormControlTypeEnum.DATE:\n case FormControlTypeEnum.DATETIME: {\n let dateConfig = {};\n if (type === FormControlTypeEnum.DATETIME) {\n dateConfig = {\n showTime: true,\n };\n }\n const { readOnly, placeholder } = restProps;\n const formater = computeDateFormat(type, value);\n return (\n <DatePicker\n value={formater.value}\n placeholder={placeholder}\n disabled={readOnly}\n format={formater.format}\n {...dateConfig}\n onChange={(date, dateString) =>\n this.handleDateChange(date, dateString)\n }\n className={this.props.className}\n style={this.props.style}\n />\n );\n }\n\n case FormControlTypeEnum.SELECT: {\n const { readOnly, placeholder } = restProps;\n const newValue =\n typeof value === \"boolean\" ? value : value ? value : [];\n return (\n <Select\n placeholder={placeholder}\n mode={this.props.multiSelect ? \"multiple\" : undefined}\n value={newValue}\n onChange={(e: any) => this.onChange(e)}\n disabled={readOnly}\n className={this.props.className}\n style={this.props.style}\n >\n {restProps.items &&\n restProps.items.map(({ id, text }) => (\n <Select.Option value={id} key={id}>\n {text}\n </Select.Option>\n ))}\n </Select>\n );\n }\n\n default:\n return (\n // <Input\n // value={errorMessage}\n // readOnly\n // disabled\n // className={this.props.className}\n // style={this.props.style}\n // />\n <div\n style={{\n color: \"var(--theme-red-color)\",\n ...this.props.style,\n }}\n >\n {errorMessage}\n </div>\n );\n }\n };\n\n render(): ReactNode {\n return <>{this.FormControlTypeMap()}</>;\n }\n}\n"],"file":"ModelAttributeFormControl.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@next-libs/cmdb-instances",
3
- "version": "6.26.4",
3
+ "version": "6.26.5",
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": "5e13d67e89a3292057e16b2f10a9a5eed2fa9590"
53
+ "gitHead": "94a90aa0a57b9524618768a63cd1a2cf84d42055"
54
54
  }