@next-libs/cmdb-instances 7.6.0 → 7.6.2

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.
@@ -27,9 +27,9 @@ const FilterInstanceSource = props => {
27
27
  jsonLocalStorage,
28
28
  isAbstract
29
29
  } = props;
30
-
31
- // eslint-disable-next-line react-hooks/exhaustive-deps
32
- const objectNameMap = jsonLocalStorage.getItem("instances-sources-objectId-name-map") || {};
30
+ const objectNameMap = (0, _react.useMemo)(() => {
31
+ return jsonLocalStorage.getItem("instances-sources-objectId-name-map") || {};
32
+ }, [jsonLocalStorage]);
33
33
  const _modelIdNameMap = (0, _react.useMemo)(() => {
34
34
  return (0, _lodash.isEmpty)(props.inheritanceModelIdNameMap) ? objectNameMap === null || objectNameMap === void 0 ? void 0 : objectNameMap.idNameMap : props.inheritanceModelIdNameMap;
35
35
  }, [props.inheritanceModelIdNameMap, objectNameMap]);
@@ -139,6 +139,6 @@ const FilterInstanceSource = props => {
139
139
  "data-testid": "instance-source-icon"
140
140
  }));
141
141
  };
142
- var _default = /*#__PURE__*/(0, _react.memo)(FilterInstanceSource);
142
+ var _default = FilterInstanceSource;
143
143
  exports.default = _default;
144
144
  //# sourceMappingURL=FilterInstanceSource.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FilterInstanceSource.js","names":["encode","keyword","reg","replace","key","FilterInstanceSource","props","instanceSource","setInstanceSource","useState","value","objectIdNameList","setObjectIdNameList","checked","visible","jsonLocalStorage","isAbstract","objectNameMap","getItem","_modelIdNameMap","useMemo","isEmpty","inheritanceModelIdNameMap","idNameMap","useEffect","_objectIdNameList","map","text","onReset","e","parentObjectId","query","objectId","objectName","onChange","onIconClicKChange","onPopoverVisibleChange","onConfirm","handleRadioChange","target","onSearch","trim","regex","RegExp","filterObjectIdNameList","filter","v","test","onIconCheckedChange","getContent","i18n","t","NS_LIBS_CMDB_INSTANCES","K","SEARCH_MODEL","styles","content","footer","RESET","CONFIRM","width","marginRight","memo"],"sources":["../../../src/instance-list/FilterInstanceSource.tsx"],"sourcesContent":["import React, {\n FC,\n ReactElement,\n useEffect,\n useMemo,\n useState,\n memo,\n} from \"react\";\nimport { Popover, Input, Button, Radio, Space } from \"antd\";\nimport { IconButton } from \"./IconButton\";\nimport { SearchOutlined } from \"@ant-design/icons\";\nimport styles from \"./FilterInstanceSource.module.css\";\nimport { map, isEmpty } from \"lodash\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\n\nimport { filterObjectIdQuery } from \"./InstanceList\";\n\ninterface FilterInstanceSourceProps {\n visible?: boolean;\n checked?: boolean;\n onIconClicKChange?(checked: boolean): void;\n inheritanceModelIdNameMap?: Record<string, string>;\n value?: string;\n onChange: (value: filterObjectIdQuery) => void;\n onPopoverVisibleChange?(visible: boolean): void;\n jsonLocalStorage?: any;\n isAbstract?: boolean;\n}\n\nfunction encode(keyword: string): string {\n const reg = /[[($^.\\]*\\\\?+{}|)]/gi;\n return keyword.replace(reg, (key) => `\\\\${key}`);\n}\n\nconst FilterInstanceSource: FC<FilterInstanceSourceProps> = (props) => {\n const [instanceSource, setInstanceSource] = useState(props.value);\n const [objectIdNameList, setObjectIdNameList] = useState([]);\n const { checked, visible, jsonLocalStorage, isAbstract } = props;\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const objectNameMap =\n jsonLocalStorage.getItem(\"instances-sources-objectId-name-map\") || {};\n\n const _modelIdNameMap = useMemo(() => {\n return isEmpty(props.inheritanceModelIdNameMap)\n ? objectNameMap?.idNameMap\n : props.inheritanceModelIdNameMap;\n }, [props.inheritanceModelIdNameMap, objectNameMap]);\n\n useEffect(() => {\n const _objectIdNameList = map(_modelIdNameMap, (value, key) => ({\n text: value,\n value: key,\n }));\n setObjectIdNameList(_objectIdNameList);\n }, [_modelIdNameMap]);\n\n const onReset = (e: any): void => {\n const { parentObjectId, query } = objectNameMap;\n const value: filterObjectIdQuery = {\n objectId: parentObjectId,\n objectName: \"\",\n query,\n checked: false,\n };\n setInstanceSource(\"\");\n props?.onChange(value);\n props?.onIconClicKChange(false);\n props?.onPopoverVisibleChange(false);\n };\n\n const onConfirm = (e: any): void => {\n const query: filterObjectIdQuery = {\n objectId: instanceSource,\n objectName: _modelIdNameMap[instanceSource],\n query: {},\n checked,\n };\n props?.onChange(query);\n props?.onPopoverVisibleChange(false);\n };\n\n const handleRadioChange = (e: any): void => {\n setInstanceSource(e.target.value);\n };\n\n const onSearch = (e: any): void => {\n const value = encode(e.target.value.trim());\n const _objectIdNameList = map(_modelIdNameMap, (value, key) => ({\n text: value,\n value: key,\n }));\n const regex = new RegExp(value, \"ig\");\n const filterObjectIdNameList = _objectIdNameList.filter((v) =>\n regex.test(v.text)\n );\n setObjectIdNameList(filterObjectIdNameList);\n };\n\n const onIconCheckedChange = (checked: boolean): void => {\n if (isAbstract) {\n props?.onIconClicKChange(checked);\n props?.onPopoverVisibleChange(checked);\n } else {\n props?.onIconClicKChange(true);\n props?.onPopoverVisibleChange(true);\n }\n };\n\n const getContent = (): ReactElement => {\n return (\n <>\n <Input\n placeholder={i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.SEARCH_MODEL}`)}\n suffix={<SearchOutlined />}\n onPressEnter={onSearch}\n data-testid=\"instance-source-search\"\n />\n <div className={styles.content}>\n <Radio.Group value={instanceSource} onChange={handleRadioChange}>\n <Space direction=\"vertical\">\n {objectIdNameList.map(({ text, value }) => (\n <Radio key={value} value={value}>\n {text}\n </Radio>\n ))}\n </Space>\n </Radio.Group>\n </div>\n <div className={styles.footer}>\n <Button\n type=\"text\"\n size=\"small\"\n onClick={onReset}\n disabled={isAbstract}\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.RESET}`)}\n </Button>\n <Button type=\"primary\" size=\"small\" onClick={onConfirm}>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CONFIRM}`)}\n </Button>\n </div>\n </>\n );\n };\n return (\n <Popover\n content={getContent()}\n placement=\"bottomRight\"\n overlayStyle={{ width: \"325px\" }}\n visible={visible}\n trigger=\"click\"\n >\n <IconButton\n checked={checked}\n onChange={onIconCheckedChange}\n style={{ marginRight: 10 }}\n type=\"filterInstanceSource\"\n label={\"\"}\n data-testid=\"instance-source-icon\"\n />\n </Popover>\n );\n};\n\nexport default memo(FilterInstanceSource);\n"],"mappings":"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"}
1
+ {"version":3,"file":"FilterInstanceSource.js","names":["encode","keyword","reg","replace","key","FilterInstanceSource","props","instanceSource","setInstanceSource","useState","value","objectIdNameList","setObjectIdNameList","checked","visible","jsonLocalStorage","isAbstract","objectNameMap","useMemo","getItem","_modelIdNameMap","isEmpty","inheritanceModelIdNameMap","idNameMap","useEffect","_objectIdNameList","map","text","onReset","e","parentObjectId","query","objectId","objectName","onChange","onIconClicKChange","onPopoverVisibleChange","onConfirm","handleRadioChange","target","onSearch","trim","regex","RegExp","filterObjectIdNameList","filter","v","test","onIconCheckedChange","getContent","i18n","t","NS_LIBS_CMDB_INSTANCES","K","SEARCH_MODEL","styles","content","footer","RESET","CONFIRM","width","marginRight"],"sources":["../../../src/instance-list/FilterInstanceSource.tsx"],"sourcesContent":["import React, { FC, ReactElement, useEffect, useMemo, useState } from \"react\";\nimport { Popover, Input, Button, Radio, Space } from \"antd\";\nimport { IconButton } from \"./IconButton\";\nimport { SearchOutlined } from \"@ant-design/icons\";\nimport styles from \"./FilterInstanceSource.module.css\";\nimport { map, isEmpty } from \"lodash\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\n\nimport { filterObjectIdQuery } from \"./InstanceList\";\n\ninterface FilterInstanceSourceProps {\n visible?: boolean;\n checked?: boolean;\n onIconClicKChange?(checked: boolean): void;\n inheritanceModelIdNameMap?: Record<string, string>;\n value?: string;\n onChange: (value: filterObjectIdQuery) => void;\n onPopoverVisibleChange?(visible: boolean): void;\n jsonLocalStorage?: any;\n isAbstract?: boolean;\n}\n\nfunction encode(keyword: string): string {\n const reg = /[[($^.\\]*\\\\?+{}|)]/gi;\n return keyword.replace(reg, (key) => `\\\\${key}`);\n}\n\nconst FilterInstanceSource: FC<FilterInstanceSourceProps> = (props) => {\n const [instanceSource, setInstanceSource] = useState(props.value);\n const [objectIdNameList, setObjectIdNameList] = useState([]);\n const { checked, visible, jsonLocalStorage, isAbstract } = props;\n\n const objectNameMap = useMemo(() => {\n return (\n jsonLocalStorage.getItem(\"instances-sources-objectId-name-map\") || {}\n );\n }, [jsonLocalStorage]);\n\n const _modelIdNameMap = useMemo(() => {\n return isEmpty(props.inheritanceModelIdNameMap)\n ? objectNameMap?.idNameMap\n : props.inheritanceModelIdNameMap;\n }, [props.inheritanceModelIdNameMap, objectNameMap]);\n\n useEffect(() => {\n const _objectIdNameList = map(_modelIdNameMap, (value, key) => ({\n text: value,\n value: key,\n }));\n setObjectIdNameList(_objectIdNameList);\n }, [_modelIdNameMap]);\n\n const onReset = (e: any): void => {\n const { parentObjectId, query } = objectNameMap;\n const value: filterObjectIdQuery = {\n objectId: parentObjectId,\n objectName: \"\",\n query,\n checked: false,\n };\n setInstanceSource(\"\");\n props?.onChange(value);\n props?.onIconClicKChange(false);\n props?.onPopoverVisibleChange(false);\n };\n\n const onConfirm = (e: any): void => {\n const query: filterObjectIdQuery = {\n objectId: instanceSource,\n objectName: _modelIdNameMap[instanceSource],\n query: {},\n checked,\n };\n props?.onChange(query);\n props?.onPopoverVisibleChange(false);\n };\n\n const handleRadioChange = (e: any): void => {\n setInstanceSource(e.target.value);\n };\n\n const onSearch = (e: any): void => {\n const value = encode(e.target.value.trim());\n const _objectIdNameList = map(_modelIdNameMap, (value, key) => ({\n text: value,\n value: key,\n }));\n const regex = new RegExp(value, \"ig\");\n const filterObjectIdNameList = _objectIdNameList.filter((v) =>\n regex.test(v.text)\n );\n setObjectIdNameList(filterObjectIdNameList);\n };\n\n const onIconCheckedChange = (checked: boolean): void => {\n if (isAbstract) {\n props?.onIconClicKChange(checked);\n props?.onPopoverVisibleChange(checked);\n } else {\n props?.onIconClicKChange(true);\n props?.onPopoverVisibleChange(true);\n }\n };\n\n const getContent = (): ReactElement => {\n return (\n <>\n <Input\n placeholder={i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.SEARCH_MODEL}`)}\n suffix={<SearchOutlined />}\n onPressEnter={onSearch}\n data-testid=\"instance-source-search\"\n />\n <div className={styles.content}>\n <Radio.Group value={instanceSource} onChange={handleRadioChange}>\n <Space direction=\"vertical\">\n {objectIdNameList.map(({ text, value }) => (\n <Radio key={value} value={value}>\n {text}\n </Radio>\n ))}\n </Space>\n </Radio.Group>\n </div>\n <div className={styles.footer}>\n <Button\n type=\"text\"\n size=\"small\"\n onClick={onReset}\n disabled={isAbstract}\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.RESET}`)}\n </Button>\n <Button type=\"primary\" size=\"small\" onClick={onConfirm}>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CONFIRM}`)}\n </Button>\n </div>\n </>\n );\n };\n return (\n <Popover\n content={getContent()}\n placement=\"bottomRight\"\n overlayStyle={{ width: \"325px\" }}\n visible={visible}\n trigger=\"click\"\n >\n <IconButton\n checked={checked}\n onChange={onIconCheckedChange}\n style={{ marginRight: 10 }}\n type=\"filterInstanceSource\"\n label={\"\"}\n data-testid=\"instance-source-icon\"\n />\n </Popover>\n );\n};\n\nexport default FilterInstanceSource;\n"],"mappings":"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"}
@@ -128,6 +128,7 @@ function InstanceListModal(props) {
128
128
  }
129
129
  }, /*#__PURE__*/_react.default.createElement(_InstanceList.InstanceList, {
130
130
  aq: props.aq,
131
+ q: props.q,
131
132
  objectId: props.objectId,
132
133
  objectList: Object.values(props.objectMap),
133
134
  presetConfigs: presetConfigs,
@@ -1 +1 @@
1
- {"version":3,"file":"InstanceListModal.js","names":["addResourceBundle","InstanceListModal","props","selectedInstanceListTemp","setSelectedInstanceListTemp","useState","handleOk","length","every","i","resp","InstanceApi_postSearch","objectId","query","instanceId","$in","page_size","onSelected","onSelectedV2","list","map","selectedInstance","handleCancel","selectedRowKeys","onCancel","handleSelectionChange","event","selectedItems","selectedKeys","handlePaginationChange","getPaginationData","presetConfigs","fixAliveHosts","_agentStatus","React","useEffect","filter","Boolean","renderFooter","showBindButton","bindButtonDisabled","disabledTooltip","i18n","t","NS_LIBS_CMDB_INSTANCES","K","PERMISSION_DENIED","position","left","CREATE_AND_BIND","bindEvent","singleSelect","color","marginRight","ONLY_ONE_INSTANCE_TO_ALLOWED","selectDisabled","showCloseBtn","CLOSE","CANCEL","CONFIRM","title","visible","modalZIndex","maxHeight","overflow","aq","Object","values","objectMap","extraFilterBricks","permission","instanceSourceQuery","searchDisabled","filterInstanceSourceDisabled","advancedSearchDisabled","aliveHostsDisabled","relatedToMeDisabled","moreButtonsDisabled","sortDisabled","showSizeChanger","pageSizeOptions","pageSize","page","defaultQuery","enableSearchByApp","hideSearchConditions","isInstanceFilterForm","ipCopy","rowSelectionType","extraFixedFields","limitInstanceRange","showFilterInstanceSource","filterInstanceSource","onFilterInstanceSourceChange","objectIdQuery","onFilterObjectIdChange"],"sources":["../../../src/instance-list-modal/InstanceListModal.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { WarningOutlined } from \"@ant-design/icons\";\nimport { Modal, Button, Tooltip } from \"antd\";\nimport i18n from \"i18next\";\nimport { CmdbModels, InstanceApi_postSearch } from \"@next-sdk/cmdb-sdk\";\nimport { Query } from \"@next-libs/cmdb-utils\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport {\n InstanceList,\n filterObjectIdQuery,\n} from \"../instance-list/InstanceList\";\nimport { InstanceListPresetConfigs } from \"../instance-list-table/interfaces\";\nimport { addResourceBundle } from \"../i18n\";\nimport {\n ReadPaginationChangeDetail,\n UseBrickConf,\n} from \"@next-core/brick-types\";\naddResourceBundle();\nexport interface InstanceListModalProps {\n objectMap: { [key: string]: Partial<CmdbModels.ModelCmdbObject> };\n objectId: string;\n visible: boolean;\n title: React.ReactNode | string;\n query?: any;\n presetConfigs?: InstanceListPresetConfigs;\n permission?: string[];\n aq?: Query[];\n instanceSourceQuery?: string;\n isInstanceFilterForm?: boolean;\n searchDisabled?: boolean;\n advancedSearchDisabled?: boolean;\n aliveHostsDisabled?: boolean;\n relatedToMeDisabled?: boolean;\n moreButtonsDisabled?: boolean;\n filterInstanceSourceDisabled?: boolean;\n sortDisabled?: boolean;\n selectDisabled?: boolean;\n showCloseBtn?: boolean;\n ipCopy?: boolean;\n singleSelect?: boolean;\n selectedRowKeys?: string[];\n onCancel: () => void;\n onSelected?: (instanceIds: any[]) => void;\n onSelectedV2?: (instanceDataList: any[]) => void;\n modalZIndex?: number;\n pageSize?: number;\n page?: number;\n showSizeChanger?: boolean;\n pageSizeOptions?: string[];\n defaultQuery?: { [fieldId: string]: any }[];\n enableSearchByApp?: boolean;\n hideSearchConditions?: boolean;\n rowSelectionType?: \"checkbox\" | \"radio\";\n getPaginationData?(pagination: ReadPaginationChangeDetail): void;\n extraFixedFields?: string[];\n limitInstanceRange?: boolean;\n extraFilterBricks?: {\n useBrick: UseBrickConf;\n };\n showBindButton?: boolean;\n bindEvent?: () => void;\n bindButtonDisabled?: boolean;\n disabledTooltip?: string;\n // 是否开启实例来源筛选\n showFilterInstanceSource?: boolean;\n filterInstanceSource?: boolean;\n onFilterInstanceSourceChange?(value: boolean): void;\n onFilterObjectIdChange?(value: filterObjectIdQuery): void;\n objectIdQuery?: string;\n}\n\nexport function InstanceListModal(\n props: InstanceListModalProps\n): React.ReactElement {\n const [selectedInstanceListTemp, setSelectedInstanceListTemp] = useState([]);\n\n // istanbul ignore next\n const handleOk = async () => {\n if (\n selectedInstanceListTemp.length &&\n selectedInstanceListTemp.every((i) => typeof i === \"string\")\n ) {\n const resp = await InstanceApi_postSearch(props.objectId, {\n query: {\n instanceId: {\n $in: selectedInstanceListTemp,\n },\n },\n page_size: selectedInstanceListTemp.length,\n });\n props.onSelected?.(selectedInstanceListTemp);\n props.onSelectedV2?.(resp.list);\n return;\n }\n\n props.onSelected?.(\n selectedInstanceListTemp.map(\n (selectedInstance) => selectedInstance.instanceId\n )\n );\n props.onSelectedV2?.(selectedInstanceListTemp);\n };\n // istanbul ignore next\n const handleCancel = () => {\n // reset selected\n setSelectedInstanceListTemp(props.selectedRowKeys ?? []);\n props.onCancel();\n };\n // istanbul ignore next\n const handleSelectionChange = (event: {\n selectedKeys: string[];\n selectedItems: any[];\n }) => {\n if (event.selectedItems.length < event.selectedKeys.length) {\n setSelectedInstanceListTemp(event.selectedKeys);\n } else {\n setSelectedInstanceListTemp(event.selectedItems);\n }\n };\n //istanbul ignore next\n const handlePaginationChange = (event: {\n page: number;\n pageSize: number;\n }) => {\n props.getPaginationData?.(event);\n };\n const presetConfigs = props.presetConfigs ?? {\n query: props.query,\n };\n\n const fixAliveHosts = presetConfigs.query?._agentStatus === \"正常\";\n\n React.useEffect(() => {\n if (props.selectedRowKeys) {\n setSelectedInstanceListTemp(props.selectedRowKeys.filter(Boolean));\n }\n }, [props.selectedRowKeys]);\n\n const renderFooter = (): React.ReactElement => {\n const { showBindButton, bindButtonDisabled, disabledTooltip } = props;\n return (\n <>\n {!!showBindButton &&\n (bindButtonDisabled ? (\n <Tooltip\n title={\n disabledTooltip ||\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.PERMISSION_DENIED}`)\n }\n >\n <Button style={{ position: \"absolute\", left: \"24px\" }} disabled>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CREATE_AND_BIND}`)}\n </Button>\n </Tooltip>\n ) : (\n <Button\n style={{ position: \"absolute\", left: \"24px\" }}\n onClick={props.bindEvent}\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CREATE_AND_BIND}`)}\n </Button>\n ))}\n {props.singleSelect && selectedInstanceListTemp.length > 1 && (\n <span style={{ color: \"#ff0016\", marginRight: \"20px\" }}>\n <WarningOutlined\n style={{ color: \"#ff0016\", marginRight: \"10px\" }}\n />\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ONLY_ONE_INSTANCE_TO_ALLOWED}`\n )}\n </span>\n )}\n {(props.selectDisabled || props.showCloseBtn) && (\n <Button key=\"back\" onClick={props.onCancel}>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLOSE}`)}\n </Button>\n )}\n {!props.selectDisabled && !props.showCloseBtn && (\n <>\n <Button key=\"back\" onClick={handleCancel} type=\"text\">\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CANCEL}`)}\n </Button>\n <Button\n key=\"submit\"\n type=\"primary\"\n onClick={handleOk}\n disabled={\n !selectedInstanceListTemp.length ||\n (props.singleSelect && selectedInstanceListTemp.length > 1)\n }\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CONFIRM}`)}\n </Button>\n </>\n )}\n </>\n );\n };\n return (\n <Modal\n title={props.title}\n visible={props.visible}\n width={900}\n onOk={handleOk}\n onCancel={handleCancel}\n destroyOnClose={true}\n footer={renderFooter()}\n zIndex={props.modalZIndex ?? 1000}\n >\n <div style={{ maxHeight: 720, overflow: \"auto\" }}>\n <InstanceList\n aq={props.aq}\n objectId={props.objectId}\n objectList={Object.values(props.objectMap)}\n presetConfigs={presetConfigs}\n extraFilterBricks={props.extraFilterBricks}\n permission={props.permission}\n aliveHosts={fixAliveHosts}\n fixAliveHosts={fixAliveHosts}\n instanceSourceQuery={props.instanceSourceQuery}\n searchDisabled={props.searchDisabled}\n filterInstanceSourceDisabled={props.filterInstanceSourceDisabled}\n advancedSearchDisabled={props.advancedSearchDisabled}\n aliveHostsDisabled={props.aliveHostsDisabled}\n relatedToMeDisabled={props.relatedToMeDisabled}\n moreButtonsDisabled={props.moreButtonsDisabled}\n sortDisabled={props.sortDisabled}\n selectDisabled={props.selectDisabled}\n selectedRowKeys={props.selectedRowKeys}\n onSelectionChange={handleSelectionChange}\n showSizeChanger={props.showSizeChanger}\n pageSizeOptions={props.pageSizeOptions}\n pageSize={props.pageSize || 10}\n page={props.page}\n defaultQuery={props.defaultQuery}\n enableSearchByApp={props.enableSearchByApp}\n hideSearchConditions={props.hideSearchConditions}\n isInstanceFilterForm={props.isInstanceFilterForm}\n ipCopy={props.ipCopy}\n rowSelectionType={props.rowSelectionType}\n onPaginationChange={handlePaginationChange}\n extraFixedFields={props.extraFixedFields}\n limitInstanceRange={props.limitInstanceRange}\n showFilterInstanceSource={props.showFilterInstanceSource}\n filterInstanceSource={props.filterInstanceSource}\n onFilterInstanceSourceChange={props.onFilterInstanceSourceChange}\n objectIdQuery={props.objectIdQuery}\n onFilterObjectIdChange={props.onFilterObjectIdChange}\n />\n </div>\n </Modal>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"InstanceListModal.js","names":["addResourceBundle","InstanceListModal","props","selectedInstanceListTemp","setSelectedInstanceListTemp","useState","handleOk","length","every","i","resp","InstanceApi_postSearch","objectId","query","instanceId","$in","page_size","onSelected","onSelectedV2","list","map","selectedInstance","handleCancel","selectedRowKeys","onCancel","handleSelectionChange","event","selectedItems","selectedKeys","handlePaginationChange","getPaginationData","presetConfigs","fixAliveHosts","_agentStatus","React","useEffect","filter","Boolean","renderFooter","showBindButton","bindButtonDisabled","disabledTooltip","i18n","t","NS_LIBS_CMDB_INSTANCES","K","PERMISSION_DENIED","position","left","CREATE_AND_BIND","bindEvent","singleSelect","color","marginRight","ONLY_ONE_INSTANCE_TO_ALLOWED","selectDisabled","showCloseBtn","CLOSE","CANCEL","CONFIRM","title","visible","modalZIndex","maxHeight","overflow","aq","q","Object","values","objectMap","extraFilterBricks","permission","instanceSourceQuery","searchDisabled","filterInstanceSourceDisabled","advancedSearchDisabled","aliveHostsDisabled","relatedToMeDisabled","moreButtonsDisabled","sortDisabled","showSizeChanger","pageSizeOptions","pageSize","page","defaultQuery","enableSearchByApp","hideSearchConditions","isInstanceFilterForm","ipCopy","rowSelectionType","extraFixedFields","limitInstanceRange","showFilterInstanceSource","filterInstanceSource","onFilterInstanceSourceChange","objectIdQuery","onFilterObjectIdChange"],"sources":["../../../src/instance-list-modal/InstanceListModal.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { WarningOutlined } from \"@ant-design/icons\";\nimport { Modal, Button, Tooltip } from \"antd\";\nimport i18n from \"i18next\";\nimport { CmdbModels, InstanceApi_postSearch } from \"@next-sdk/cmdb-sdk\";\nimport { Query } from \"@next-libs/cmdb-utils\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport {\n InstanceList,\n filterObjectIdQuery,\n} from \"../instance-list/InstanceList\";\nimport { InstanceListPresetConfigs } from \"../instance-list-table/interfaces\";\nimport { addResourceBundle } from \"../i18n\";\nimport {\n ReadPaginationChangeDetail,\n UseBrickConf,\n} from \"@next-core/brick-types\";\naddResourceBundle();\nexport interface InstanceListModalProps {\n objectMap: { [key: string]: Partial<CmdbModels.ModelCmdbObject> };\n objectId: string;\n visible: boolean;\n title: React.ReactNode | string;\n q?: string;\n query?: any;\n presetConfigs?: InstanceListPresetConfigs;\n permission?: string[];\n aq?: Query[];\n instanceSourceQuery?: string;\n isInstanceFilterForm?: boolean;\n searchDisabled?: boolean;\n advancedSearchDisabled?: boolean;\n aliveHostsDisabled?: boolean;\n relatedToMeDisabled?: boolean;\n moreButtonsDisabled?: boolean;\n filterInstanceSourceDisabled?: boolean;\n sortDisabled?: boolean;\n selectDisabled?: boolean;\n showCloseBtn?: boolean;\n ipCopy?: boolean;\n singleSelect?: boolean;\n selectedRowKeys?: string[];\n onCancel: () => void;\n onSelected?: (instanceIds: any[]) => void;\n onSelectedV2?: (instanceDataList: any[]) => void;\n modalZIndex?: number;\n pageSize?: number;\n page?: number;\n showSizeChanger?: boolean;\n pageSizeOptions?: string[];\n defaultQuery?: { [fieldId: string]: any }[];\n enableSearchByApp?: boolean;\n hideSearchConditions?: boolean;\n rowSelectionType?: \"checkbox\" | \"radio\";\n getPaginationData?(pagination: ReadPaginationChangeDetail): void;\n extraFixedFields?: string[];\n limitInstanceRange?: boolean;\n extraFilterBricks?: {\n useBrick: UseBrickConf;\n };\n showBindButton?: boolean;\n bindEvent?: () => void;\n bindButtonDisabled?: boolean;\n disabledTooltip?: string;\n // 是否开启实例来源筛选\n showFilterInstanceSource?: boolean;\n filterInstanceSource?: boolean;\n onFilterInstanceSourceChange?(value: boolean): void;\n onFilterObjectIdChange?(value: filterObjectIdQuery): void;\n objectIdQuery?: string;\n}\n\nexport function InstanceListModal(\n props: InstanceListModalProps\n): React.ReactElement {\n const [selectedInstanceListTemp, setSelectedInstanceListTemp] = useState([]);\n\n // istanbul ignore next\n const handleOk = async () => {\n if (\n selectedInstanceListTemp.length &&\n selectedInstanceListTemp.every((i) => typeof i === \"string\")\n ) {\n const resp = await InstanceApi_postSearch(props.objectId, {\n query: {\n instanceId: {\n $in: selectedInstanceListTemp,\n },\n },\n page_size: selectedInstanceListTemp.length,\n });\n props.onSelected?.(selectedInstanceListTemp);\n props.onSelectedV2?.(resp.list);\n return;\n }\n\n props.onSelected?.(\n selectedInstanceListTemp.map(\n (selectedInstance) => selectedInstance.instanceId\n )\n );\n props.onSelectedV2?.(selectedInstanceListTemp);\n };\n // istanbul ignore next\n const handleCancel = () => {\n // reset selected\n setSelectedInstanceListTemp(props.selectedRowKeys ?? []);\n props.onCancel();\n };\n // istanbul ignore next\n const handleSelectionChange = (event: {\n selectedKeys: string[];\n selectedItems: any[];\n }) => {\n if (event.selectedItems.length < event.selectedKeys.length) {\n setSelectedInstanceListTemp(event.selectedKeys);\n } else {\n setSelectedInstanceListTemp(event.selectedItems);\n }\n };\n //istanbul ignore next\n const handlePaginationChange = (event: {\n page: number;\n pageSize: number;\n }) => {\n props.getPaginationData?.(event);\n };\n const presetConfigs = props.presetConfigs ?? {\n query: props.query,\n };\n\n const fixAliveHosts = presetConfigs.query?._agentStatus === \"正常\";\n\n React.useEffect(() => {\n if (props.selectedRowKeys) {\n setSelectedInstanceListTemp(props.selectedRowKeys.filter(Boolean));\n }\n }, [props.selectedRowKeys]);\n\n const renderFooter = (): React.ReactElement => {\n const { showBindButton, bindButtonDisabled, disabledTooltip } = props;\n return (\n <>\n {!!showBindButton &&\n (bindButtonDisabled ? (\n <Tooltip\n title={\n disabledTooltip ||\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.PERMISSION_DENIED}`)\n }\n >\n <Button style={{ position: \"absolute\", left: \"24px\" }} disabled>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CREATE_AND_BIND}`)}\n </Button>\n </Tooltip>\n ) : (\n <Button\n style={{ position: \"absolute\", left: \"24px\" }}\n onClick={props.bindEvent}\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CREATE_AND_BIND}`)}\n </Button>\n ))}\n {props.singleSelect && selectedInstanceListTemp.length > 1 && (\n <span style={{ color: \"#ff0016\", marginRight: \"20px\" }}>\n <WarningOutlined\n style={{ color: \"#ff0016\", marginRight: \"10px\" }}\n />\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ONLY_ONE_INSTANCE_TO_ALLOWED}`\n )}\n </span>\n )}\n {(props.selectDisabled || props.showCloseBtn) && (\n <Button key=\"back\" onClick={props.onCancel}>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLOSE}`)}\n </Button>\n )}\n {!props.selectDisabled && !props.showCloseBtn && (\n <>\n <Button key=\"back\" onClick={handleCancel} type=\"text\">\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CANCEL}`)}\n </Button>\n <Button\n key=\"submit\"\n type=\"primary\"\n onClick={handleOk}\n disabled={\n !selectedInstanceListTemp.length ||\n (props.singleSelect && selectedInstanceListTemp.length > 1)\n }\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CONFIRM}`)}\n </Button>\n </>\n )}\n </>\n );\n };\n return (\n <Modal\n title={props.title}\n visible={props.visible}\n width={900}\n onOk={handleOk}\n onCancel={handleCancel}\n destroyOnClose={true}\n footer={renderFooter()}\n zIndex={props.modalZIndex ?? 1000}\n >\n <div style={{ maxHeight: 720, overflow: \"auto\" }}>\n <InstanceList\n aq={props.aq}\n q={props.q}\n objectId={props.objectId}\n objectList={Object.values(props.objectMap)}\n presetConfigs={presetConfigs}\n extraFilterBricks={props.extraFilterBricks}\n permission={props.permission}\n aliveHosts={fixAliveHosts}\n fixAliveHosts={fixAliveHosts}\n instanceSourceQuery={props.instanceSourceQuery}\n searchDisabled={props.searchDisabled}\n filterInstanceSourceDisabled={props.filterInstanceSourceDisabled}\n advancedSearchDisabled={props.advancedSearchDisabled}\n aliveHostsDisabled={props.aliveHostsDisabled}\n relatedToMeDisabled={props.relatedToMeDisabled}\n moreButtonsDisabled={props.moreButtonsDisabled}\n sortDisabled={props.sortDisabled}\n selectDisabled={props.selectDisabled}\n selectedRowKeys={props.selectedRowKeys}\n onSelectionChange={handleSelectionChange}\n showSizeChanger={props.showSizeChanger}\n pageSizeOptions={props.pageSizeOptions}\n pageSize={props.pageSize || 10}\n page={props.page}\n defaultQuery={props.defaultQuery}\n enableSearchByApp={props.enableSearchByApp}\n hideSearchConditions={props.hideSearchConditions}\n isInstanceFilterForm={props.isInstanceFilterForm}\n ipCopy={props.ipCopy}\n rowSelectionType={props.rowSelectionType}\n onPaginationChange={handlePaginationChange}\n extraFixedFields={props.extraFixedFields}\n limitInstanceRange={props.limitInstanceRange}\n showFilterInstanceSource={props.showFilterInstanceSource}\n filterInstanceSource={props.filterInstanceSource}\n onFilterInstanceSourceChange={props.onFilterInstanceSourceChange}\n objectIdQuery={props.objectIdQuery}\n onFilterObjectIdChange={props.onFilterObjectIdChange}\n />\n </div>\n </Modal>\n );\n}\n"],"mappings":"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"}
@@ -333,7 +333,8 @@ class ModelAttributeFormControl extends _react.Component {
333
333
  onChange: e => this.onChange(e),
334
334
  disabled: readOnly,
335
335
  className: this.props.className,
336
- style: this.props.style
336
+ style: this.props.style,
337
+ showSearch: true
337
338
  }, restProps.items && restProps.items.map(({
338
339
  id,
339
340
  text
@@ -1 +1 @@
1
- {"version":3,"file":"ModelAttributeFormControl.js","names":["ModelAttributeValueType","ModelAttributeValueModeType","FormControlTypeEnum","boolOptions","id","text","ModelAttributeFormControl","Component","componentDidUpdate","prevProps","prevState","snapshot","props","value","type","attribute","name","setState","formControl","computeFormControl","isClusterType","objectId","constructor","formControlType","computeFormControlType","isSupportMultiStringValue","items","computeFormControlItems","BOOLEAN","result","label","required","readOnly","isCreate","readonly","unique","pattern","computePattern","STRUCT","computePlaceholder","event","target","onChange","date","dateString","undefined","err","error","some","jsonValidateCollection","showError","restProps","errorMessage","state","jsonSchema","regex","JSON","parse","TEXT","placeholder","e","className","style","URL","NUMBER","CODE_EDITOR","validateJson","display","color","i18n","t","NS_LIBS_CMDB_INSTANCES","K","NOT_MEET_JSON","TEXTAREA","MARKDOWN","LEGACY_STRUCT","formData","RADIO","unselected","TEMPORARILY_NOT_CHOOSE","map","item","String","TAGS","width","DATE","DATETIME","dateConfig","showTime","formater","computeDateFormat","format","handleDateChange","SELECT","newValue","multiSelect","is","message","_PLAIN_TEXT","ENUM","ENUMS","RegExp","enumValue","clusterMap","STRING","mode","MULTIPLE_LINES","IP","length","Error","ENUM_ERROR_TIP","INTEGER","FLOAT","ARR","struct_define","STRUCT_ERROR_TIP","STRUCT_LIST","TYPE_NO_SUPPORT_EDIT","IP_PLACEHOLDER","placeholders","push","CLICK_TO_SELECT","ENTER_MULTIPLE_STRING_WITH_ENTER_KEY_AS_THE_SEPARATOR","NUMBER_INPUT_PLACEHOLDER","ADVANCE_SEARCH_SINGLE_INPUT_PLACEHOLDER","MATCHING_REGULAR","regexp","UNIQUE_NO_REPEAT","join","render","FormControlTypeMap"],"sources":["../../../src/model-attribute-form-control/ModelAttributeFormControl.tsx"],"sourcesContent":["import React, { Component, ReactNode } from \"react\";\nimport { CmdbModels } from \"@next-sdk/cmdb-sdk\";\nimport i18n from \"i18next\";\nimport { NS_LIBS_CMDB_INSTANCES, K } from \"../i18n/constants\";\nimport { DatePicker, Input, InputNumber, Radio, Select } from \"antd\";\nimport { AddStruct } from \"../struct-components\";\nimport moment, { Moment } from \"moment\";\nimport { AttributeFormControlUrl } from \"../attribute-form-control-url/AttributeFormControlUrl\";\nimport { computeDateFormat, isClusterType } 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 isClusterType(this.props.objectId, this.props.attribute.id)\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 isClusterType(objectId, attribute.id)\n ),\n };\n } catch (error) {\n this.state = {\n errorMessage: error.message,\n formControl: {\n type: FormControlTypeEnum._PLAIN_TEXT,\n name: attribute.name,\n id: \"\",\n },\n };\n }\n }\n\n static computePattern(\n attribute: Partial<CmdbModels.ModelObjectAttr>\n ): RegExp | undefined {\n try {\n if (\n attribute.value.type !== ModelAttributeValueType.ENUM &&\n attribute.value.type !== ModelAttributeValueType.ENUMS &&\n attribute.value.regex !== undefined &&\n attribute.value.regex !== null\n ) {\n // todo(jhuang): use `u` flag for compliance until https://github.com/angular/angular/pull/20819 is resolved\n return new RegExp(attribute.value.regex as string, \"u\");\n }\n return undefined;\n } catch (error) {\n return undefined;\n }\n }\n\n computeFormControlItems(\n attribute: Partial<CmdbModels.ModelObjectAttr>,\n isClusterType?: boolean\n ): FormControlSelectItem[] {\n if (\n attribute.value.type === ModelAttributeValueType.ENUM ||\n attribute.value.type === ModelAttributeValueType.ENUMS\n ) {\n // The backend guys are notorious to use `regex` as enum candidates. 😢\n return (attribute.value.regex as string[])?.map((enumValue) => ({\n id: enumValue,\n text: isClusterType ? clusterMap[enumValue] : enumValue,\n }));\n }\n }\n\n static computeFormControlType(\n attribute: Partial<CmdbModels.ModelObjectAttr>,\n type?: string,\n isSupportMultiStringValue?: boolean\n ): FormControlTypeEnum {\n switch (attribute.value.type) {\n case ModelAttributeValueType.STRING: {\n if (\n attribute.value.mode === ModelAttributeValueModeType.MULTIPLE_LINES\n ) {\n return FormControlTypeEnum.TEXTAREA;\n }\n if (attribute.value.mode === ModelAttributeValueModeType.MARKDOWN) {\n return FormControlTypeEnum.MARKDOWN;\n }\n if (attribute.value.mode === ModelAttributeValueModeType.URL) {\n return FormControlTypeEnum.URL;\n }\n }\n /* falls through */\n case ModelAttributeValueType.IP:\n if (isSupportMultiStringValue) {\n return FormControlTypeEnum.TAGS;\n }\n return FormControlTypeEnum.TEXT;\n case ModelAttributeValueType.JSON:\n // return FormControlTypeEnum.TEXTAREA;\n return FormControlTypeEnum.CODE_EDITOR;\n case ModelAttributeValueType.ENUM:\n if (\n !attribute.value.regex ||\n (attribute.value.regex as string[]).length === 0\n ) {\n throw new Error(\n // \"请在资源模型管理中添加枚举值, 属性: \" + attribute.name\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.ENUM_ERROR_TIP}`, {\n attribute: attribute.name,\n })\n );\n }\n if (\n attribute.value.regex &&\n (attribute.value.regex as string[]).length <= 5 &&\n (!type || type === FormControlTypeEnum.RADIO)\n ) {\n return FormControlTypeEnum.RADIO;\n }\n return FormControlTypeEnum.SELECT;\n case ModelAttributeValueType.INTEGER:\n case ModelAttributeValueType.FLOAT:\n return FormControlTypeEnum.NUMBER;\n case ModelAttributeValueType.DATE:\n return FormControlTypeEnum.DATE;\n case ModelAttributeValueType.DATETIME:\n return FormControlTypeEnum.DATETIME;\n case ModelAttributeValueType.ARR:\n return FormControlTypeEnum.TAGS;\n case ModelAttributeValueType.STRUCT:\n if (attribute.value.struct_define.length === 0) {\n throw new Error(\n // \"请在资源模型中添加结构体属性, 属性: \" + attribute.name\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.STRUCT_ERROR_TIP}`, {\n attribute: attribute.name,\n })\n );\n }\n return FormControlTypeEnum.LEGACY_STRUCT;\n case ModelAttributeValueType.STRUCT_LIST:\n if (attribute.value.struct_define.length === 0) {\n throw new Error(\n // \"请在资源模型中添加结构体属性, 属性: \" + attribute.name\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.STRUCT_ERROR_TIP}`, {\n attribute: attribute.name,\n })\n );\n }\n return FormControlTypeEnum.STRUCT;\n case ModelAttributeValueType.BOOLEAN:\n return FormControlTypeEnum.SELECT;\n case ModelAttributeValueType.ENUMS:\n return FormControlTypeEnum.SELECT;\n default:\n throw new Error(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.TYPE_NO_SUPPORT_EDIT}`, {\n type: attribute.value.type,\n })\n );\n }\n }\n\n computeFormControl = (\n attribute: Partial<CmdbModels.ModelObjectAttr>,\n id?: string,\n type?: string,\n isClusterType?: boolean\n ): FormControl => {\n const formControlType = ModelAttributeFormControl.computeFormControlType(\n attribute,\n type,\n this.props.isSupportMultiStringValue\n );\n let items = this.computeFormControlItems(attribute, isClusterType);\n\n if (attribute.value.type === ModelAttributeValueType.BOOLEAN) {\n items = boolOptions;\n }\n\n const result: FormControl = {\n type: formControlType,\n items,\n id: id || attribute.id,\n name: attribute.id,\n label: attribute.name,\n required: attribute.required === \"true\",\n readOnly: !this.props.isCreate && attribute.readonly === \"true\",\n unique: attribute.unique === \"true\",\n pattern: ModelAttributeFormControl.computePattern(attribute),\n };\n\n if (result.type === FormControlTypeEnum.STRUCT) {\n result[\"maxlength\"] = 1;\n }\n result[\"placeholder\"] =\n ModelAttributeFormControl.computePlaceholder(result);\n return result;\n };\n\n static computePlaceholder(formControl: FormControl): string {\n if (formControl.id === \"ip\" && formControl.name === \"ip\") {\n return i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.IP_PLACEHOLDER}`);\n }\n\n const placeholders = [];\n switch (formControl.type) {\n case FormControlTypeEnum.SELECT:\n placeholders.push(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLICK_TO_SELECT}`)\n );\n break;\n case FormControlTypeEnum.DATETIME:\n case FormControlTypeEnum.DATE:\n placeholders.push(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLICK_TO_SELECT}`)\n );\n break;\n case FormControlTypeEnum.TAGS:\n placeholders.push(\n i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ENTER_MULTIPLE_STRING_WITH_ENTER_KEY_AS_THE_SEPARATOR}`\n )\n );\n break;\n case FormControlTypeEnum.NUMBER:\n placeholders.push(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.NUMBER_INPUT_PLACEHOLDER}`)\n );\n break;\n default:\n placeholders.push(\n i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ADVANCE_SEARCH_SINGLE_INPUT_PLACEHOLDER}`\n )\n );\n }\n\n if (formControl.pattern !== undefined) {\n // placeholders.push(`匹配正则 ${formControl.pattern}`);\n placeholders.push(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.MATCHING_REGULAR}`, {\n regexp: formControl.pattern,\n })\n );\n }\n if (formControl.unique) {\n // placeholders.push(`${formControl.label}唯一不能重复`);\n placeholders.push(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.UNIQUE_NO_REPEAT}`, {\n label: formControl.label,\n })\n );\n }\n return placeholders.join(\",\");\n }\n\n /*computeFormControlAndCatchError = () => {\n const { attribute, objectId } = this.props;\n try {\n this.setState({\n formControl: this.computeFormControl(attribute, objectId)\n });\n } catch (error) {\n this.setState({\n errorMessage: error.message,\n formControl: {\n type: FormControlTypeEnum._PLAIN_TEXT,\n name: attribute.name,\n id: \"\"\n }\n });\n }\n };*/\n\n onChange = (event: any) => {\n let value;\n if (event && event.target) {\n value = event.target.value;\n } else {\n value = event;\n }\n\n const { onChange } = this.props;\n this.setState({ value });\n onChange && onChange(value);\n };\n\n handleDateChange = (date: Moment, dateString: string) => {\n this.onChange(dateString || undefined);\n };\n validateJson = (err: any) => {\n const error = some(err, [\"type\", \"error\"]);\n this.props.jsonValidateCollection?.(error);\n this.setState({ showError: error });\n };\n\n FormControlTypeMap = (): ReactNode => {\n const { attribute } = this.props;\n const {\n value,\n formControl: { type, ...restProps },\n errorMessage,\n } = this.state;\n // const unsupportText = `\"${type}\"类型暂时不支持编辑`;\n // const unsupportText = i18n.t(\n // `${NS_LIBS_CMDB_INSTANCES}:${K.TYPE_NO_SUPPORT_EDIT}`,\n // { type }\n // );\n let jsonSchema: any;\n if (attribute?.value?.type === \"json\" && attribute?.value?.regex) {\n jsonSchema = JSON.parse(attribute?.value?.regex);\n }\n\n switch (type) {\n case FormControlTypeEnum.TEXT: {\n const { pattern, placeholder, ...props } = restProps;\n return (\n <Input\n value={value}\n type=\"text\"\n {...props}\n placeholder={placeholder}\n onChange={(e) => this.onChange(e)}\n className={this.props.className}\n style={this.props.style}\n />\n );\n }\n\n case FormControlTypeEnum.URL: {\n const { readOnly, required, placeholder } = restProps;\n\n return (\n <AttributeFormControlUrl\n readOnly={readOnly}\n required={required}\n placeholder={placeholder}\n value={value}\n onChange={(e) => this.onChange(e)}\n />\n );\n }\n\n case FormControlTypeEnum.NUMBER: {\n const { pattern, ...props } = restProps;\n return (\n <InputNumber\n value={value}\n {...props}\n onChange={(e: any) => this.onChange(e)}\n className={this.props.className}\n style={this.props.style}\n />\n );\n }\n case FormControlTypeEnum.CODE_EDITOR:\n return (\n <>\n <CodeEditor\n value={value}\n mode={\"json\"}\n maxLines={\"Infinity\"}\n highlightActiveLine={true}\n onChange={(e: any) => this.onChange(e)}\n minLines={3}\n showLineNumbers={true}\n showPrintMargin={false}\n validateJsonSchemaMode={\"error\"}\n {...(jsonSchema ? { jsonSchema: jsonSchema } : {})}\n theme=\"tomorrow\"\n onValidate={(err: any) => this.validateJson(err)}\n />\n <label\n style={{\n display: this.state.showError ? \"block\" : \"none\",\n color: \"#fc5043\",\n }}\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.NOT_MEET_JSON}`)}\n </label>\n </>\n );\n case FormControlTypeEnum.TEXTAREA:\n case FormControlTypeEnum.MARKDOWN: {\n return (\n <Input.TextArea\n value={value}\n {...restProps}\n onChange={(e: any) => this.onChange(e)}\n className={this.props.className}\n style={this.props.style}\n rows={5}\n />\n );\n }\n\n case FormControlTypeEnum.STRUCT:\n case FormControlTypeEnum.LEGACY_STRUCT:\n return (\n <AddStruct\n isLegacy={type === FormControlTypeEnum.LEGACY_STRUCT}\n attribute={attribute}\n structData={value}\n handleStoreFunction={(formData: any) => this.onChange(formData)}\n className={this.props.className}\n style={this.props.style}\n isCreate={this.props.isCreate}\n />\n );\n\n case FormControlTypeEnum.RADIO: {\n let { items, required, readOnly } = restProps;\n\n // NODE: 对非必填单选为空的特殊处理 BY @robertman\n const unselected = {\n id: null as string,\n // text: \"暂不选择\",\n text: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.TEMPORARILY_NOT_CHOOSE}`),\n };\n\n if (!required) {\n items = [...items, unselected];\n }\n\n return (\n <Radio.Group\n onChange={(e: any) => this.onChange(e)}\n value={value !== undefined ? value : unselected.id}\n className={this.props.className}\n style={this.props.style}\n disabled={readOnly}\n >\n {items.map((item) => (\n <Radio value={item.id} key={String(item.id)}>\n {item.text}\n </Radio>\n ))}\n </Radio.Group>\n );\n }\n\n case FormControlTypeEnum.TAGS: {\n const { placeholder, readOnly } = restProps;\n return (\n <Select\n allowClear={true}\n mode=\"tags\"\n style={{ ...this.props.style, width: \"100%\" }}\n disabled={readOnly}\n placeholder={placeholder}\n value={value || []}\n onChange={(e: any) => this.onChange(e)}\n className={this.props.className}\n />\n );\n }\n\n case FormControlTypeEnum.DATE:\n case FormControlTypeEnum.DATETIME: {\n let dateConfig = {};\n if (type === FormControlTypeEnum.DATETIME) {\n dateConfig = {\n showTime: true,\n };\n }\n const { readOnly, placeholder } = restProps;\n const formater = computeDateFormat(type, value);\n return (\n <DatePicker\n value={formater.value}\n placeholder={placeholder}\n disabled={readOnly}\n format={formater.format}\n {...dateConfig}\n onChange={(date, dateString) =>\n this.handleDateChange(date, dateString)\n }\n className={this.props.className}\n style={this.props.style}\n />\n );\n }\n\n case FormControlTypeEnum.SELECT: {\n const { readOnly, placeholder } = restProps;\n const newValue =\n typeof value === \"boolean\" ? value : value ? value : [];\n return (\n <Select\n placeholder={placeholder}\n mode={this.props.multiSelect ? \"multiple\" : undefined}\n value={newValue}\n onChange={(e: any) => this.onChange(e)}\n disabled={readOnly}\n className={this.props.className}\n style={this.props.style}\n >\n {restProps.items &&\n restProps.items.map(({ id, text }) => (\n <Select.Option value={id} key={id}>\n {text}\n </Select.Option>\n ))}\n </Select>\n );\n }\n\n default:\n return (\n // <Input\n // value={errorMessage}\n // readOnly\n // disabled\n // className={this.props.className}\n // style={this.props.style}\n // />\n <div\n style={{\n color: \"var(--theme-red-color)\",\n ...this.props.style,\n }}\n >\n {errorMessage}\n </div>\n );\n }\n };\n\n render(): ReactNode {\n return <>{this.FormControlTypeMap()}</>;\n }\n}\n"],"mappings":";;;;;;;;;;AAAA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAA8B,IAMlBA,uBAAuB;AAAA;AAAA,WAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;EAAvBA,uBAAuB;AAAA,GAAvBA,uBAAuB,uCAAvBA,uBAAuB;AAAA,IAkBvBC,2BAA2B;AAAA;AAAA,WAA3BA,2BAA2B;EAA3BA,2BAA2B;EAA3BA,2BAA2B;EAA3BA,2BAA2B;EAA3BA,2BAA2B;AAAA,GAA3BA,2BAA2B,2CAA3BA,2BAA2B;AAAA,IAO3BC,mBAAmB;AAAA;AAAA,WAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;AAAA,GAAnBA,mBAAmB,mCAAnBA,mBAAmB;AA2DxB,MAAMC,WAAoC,GAAG,CAClD;EACEC,EAAE,EAAE,IAAI;EACRC,IAAI,EAAE;AACR,CAAC,EACD;EACED,EAAE,EAAE,KAAK;EACTC,IAAI,EAAE;AACR,CAAC,CACF;AAAC;AAEK,MAAMC,yBAAyB,SAASC,gBAAS,CAGtD;EACAC,kBAAkB,CAChBC,SAAmD,EACnDC,SAAmD,EACnDC,QAAc,EACR;IACN,IACE,IAAI,CAACC,KAAK,CAACC,KAAK,KAAKJ,SAAS,CAACI,KAAK,IACpC,IAAI,CAACD,KAAK,CAACE,IAAI,KAAKL,SAAS,CAACK,IAAI,IAClC,IAAI,CAACF,KAAK,CAACG,SAAS,CAACX,EAAE,KAAKK,SAAS,CAACM,SAAS,CAACX,EAAE,IAClD,IAAI,CAACQ,KAAK,CAACG,SAAS,CAACC,IAAI,KAAKP,SAAS,CAACM,SAAS,CAACC,IAAI,IACtD,IAAI,CAACJ,KAAK,CAACG,SAAS,CAACF,KAAK,CAACC,IAAI,KAAKL,SAAS,CAACM,SAAS,CAACF,KAAK,CAACC,IAAI,EAClE;MACA,IAAI,CAACG,QAAQ,CAAC;QACZJ,KAAK,EAAE,IAAI,CAACD,KAAK,CAACC,KAAK;QACvBK,WAAW,EAAE,IAAI,CAACC,kBAAkB,CAClC,IAAI,CAACP,KAAK,CAACG,SAAS,EACpB,IAAI,CAACH,KAAK,CAACR,EAAE,EACb,IAAI,CAACQ,KAAK,CAACE,IAAI,EACf,IAAAM,yBAAa,EAAC,IAAI,CAACR,KAAK,CAACS,QAAQ,EAAE,IAAI,CAACT,KAAK,CAACG,SAAS,CAACX,EAAE,CAAC;MAE/D,CAAC,CAAC;IACJ;EACF;EAEAkB,WAAW,CAACV,MAAqC,EAAE;IACjD,KAAK,CAACA,MAAK,CAAC;IAAC,0DAuJM,CACnBG,SAA8C,EAC9CX,EAAW,EACXU,IAAa,EACbM,aAAuB,KACP;MAChB,MAAMG,eAAe,GAAGjB,yBAAyB,CAACkB,sBAAsB,CACtET,SAAS,EACTD,IAAI,EACJ,IAAI,CAACF,KAAK,CAACa,yBAAyB,CACrC;MACD,IAAIC,KAAK,GAAG,IAAI,CAACC,uBAAuB,CAACZ,SAAS,EAAEK,aAAa,CAAC;MAElE,IAAIL,SAAS,CAACF,KAAK,CAACC,IAAI,KAAKd,uBAAuB,CAAC4B,OAAO,EAAE;QAC5DF,KAAK,GAAGvB,WAAW;MACrB;MAEA,MAAM0B,MAAmB,GAAG;QAC1Bf,IAAI,EAAES,eAAe;QACrBG,KAAK;QACLtB,EAAE,EAAEA,EAAE,IAAIW,SAAS,CAACX,EAAE;QACtBY,IAAI,EAAED,SAAS,CAACX,EAAE;QAClB0B,KAAK,EAAEf,SAAS,CAACC,IAAI;QACrBe,QAAQ,EAAEhB,SAAS,CAACgB,QAAQ,KAAK,MAAM;QACvCC,QAAQ,EAAE,CAAC,IAAI,CAACpB,KAAK,CAACqB,QAAQ,IAAIlB,SAAS,CAACmB,QAAQ,KAAK,MAAM;QAC/DC,MAAM,EAAEpB,SAAS,CAACoB,MAAM,KAAK,MAAM;QACnCC,OAAO,EAAE9B,yBAAyB,CAAC+B,cAAc,CAACtB,SAAS;MAC7D,CAAC;MAED,IAAIc,MAAM,CAACf,IAAI,KAAKZ,mBAAmB,CAACoC,MAAM,EAAE;QAC9CT,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC;MACzB;MACAA,MAAM,CAAC,aAAa,CAAC,GACnBvB,yBAAyB,CAACiC,kBAAkB,CAACV,MAAM,CAAC;MACtD,OAAOA,MAAM;IACf,CAAC;IAAA,gDA6EWW,KAAU,IAAK;MACzB,IAAI3B,KAAK;MACT,IAAI2B,KAAK,IAAIA,KAAK,CAACC,MAAM,EAAE;QACzB5B,KAAK,GAAG2B,KAAK,CAACC,MAAM,CAAC5B,KAAK;MAC5B,CAAC,MAAM;QACLA,KAAK,GAAG2B,KAAK;MACf;MAEA,MAAM;QAAEE;MAAS,CAAC,GAAG,IAAI,CAAC9B,KAAK;MAC/B,IAAI,CAACK,QAAQ,CAAC;QAAEJ;MAAM,CAAC,CAAC;MACxB6B,QAAQ,IAAIA,QAAQ,CAAC7B,KAAK,CAAC;IAC7B,CAAC;IAAA,wDAEkB,CAAC8B,IAAY,EAAEC,UAAkB,KAAK;MACvD,IAAI,CAACF,QAAQ,CAACE,UAAU,IAAIC,SAAS,CAAC;IACxC,CAAC;IAAA,oDACeC,GAAQ,IAAK;MAAA;MAC3B,MAAMC,KAAK,GAAG,IAAAC,YAAI,EAACF,GAAG,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;MAC1C,4CAAI,CAAClC,KAAK,EAACqC,sBAAsB,0DAAjC,wCAAoCF,KAAK,CAAC;MAC1C,IAAI,CAAC9B,QAAQ,CAAC;QAAEiC,SAAS,EAAEH;MAAM,CAAC,CAAC;IACrC,CAAC;IAAA,0DAEoB,MAAiB;MAAA;MACpC,MAAM;QAAEhC;MAAU,CAAC,GAAG,IAAI,CAACH,KAAK;MAChC,MAAM;QACJC,KAAK;QACLK,WAAW,EAAE;UAAEJ,IAAI;UAAE,GAAGqC;QAAU,CAAC;QACnCC;MACF,CAAC,GAAG,IAAI,CAACC,KAAK;MACd;MACA;MACA;MACA;MACA;MACA,IAAIC,UAAe;MACnB,IAAI,CAAAvC,SAAS,aAATA,SAAS,2CAATA,SAAS,CAAEF,KAAK,qDAAhB,iBAAkBC,IAAI,MAAK,MAAM,IAAIC,SAAS,aAATA,SAAS,oCAATA,SAAS,CAAEF,KAAK,8CAAhB,kBAAkB0C,KAAK,EAAE;QAAA;QAChED,UAAU,GAAGE,IAAI,CAACC,KAAK,CAAC1C,SAAS,aAATA,SAAS,4CAATA,SAAS,CAAEF,KAAK,sDAAhB,kBAAkB0C,KAAK,CAAC;MAClD;MAEA,QAAQzC,IAAI;QACV,KAAKZ,mBAAmB,CAACwD,IAAI;UAAE;YAC7B,MAAM;cAAEtB,OAAO;cAAEuB,WAAW;cAAE,GAAG/C;YAAM,CAAC,GAAGuC,SAAS;YACpD,oBACE,6BAAC,WAAK;cACJ,KAAK,EAAEtC,KAAM;cACb,IAAI,EAAC;YAAM,GACPD,KAAK;cACT,WAAW,EAAE+C,WAAY;cACzB,QAAQ,EAAGC,CAAC,IAAK,IAAI,CAAClB,QAAQ,CAACkB,CAAC,CAAE;cAClC,SAAS,EAAE,IAAI,CAAChD,KAAK,CAACiD,SAAU;cAChC,KAAK,EAAE,IAAI,CAACjD,KAAK,CAACkD;YAAM,GACxB;UAEN;QAEA,KAAK5D,mBAAmB,CAAC6D,GAAG;UAAE;YAC5B,MAAM;cAAE/B,QAAQ;cAAED,QAAQ;cAAE4B;YAAY,CAAC,GAAGR,SAAS;YAErD,oBACE,6BAAC,gDAAuB;cACtB,QAAQ,EAAEnB,QAAS;cACnB,QAAQ,EAAED,QAAS;cACnB,WAAW,EAAE4B,WAAY;cACzB,KAAK,EAAE9C,KAAM;cACb,QAAQ,EAAG+C,CAAC,IAAK,IAAI,CAAClB,QAAQ,CAACkB,CAAC;YAAE,EAClC;UAEN;QAEA,KAAK1D,mBAAmB,CAAC8D,MAAM;UAAE;YAC/B,MAAM;cAAE5B,OAAO;cAAE,GAAGxB;YAAM,CAAC,GAAGuC,SAAS;YACvC,oBACE,6BAAC,iBAAW;cACV,KAAK,EAAEtC;YAAM,GACTD,KAAK;cACT,QAAQ,EAAGgD,CAAM,IAAK,IAAI,CAAClB,QAAQ,CAACkB,CAAC,CAAE;cACvC,SAAS,EAAE,IAAI,CAAChD,KAAK,CAACiD,SAAU;cAChC,KAAK,EAAE,IAAI,CAACjD,KAAK,CAACkD;YAAM,GACxB;UAEN;QACA,KAAK5D,mBAAmB,CAAC+D,WAAW;UAClC,oBACE,yEACE,6BAAC,gCAAU;YACT,KAAK,EAAEpD,KAAM;YACb,IAAI,EAAE,MAAO;YACb,QAAQ,EAAE,UAAW;YACrB,mBAAmB,EAAE,IAAK;YAC1B,QAAQ,EAAG+C,CAAM,IAAK,IAAI,CAAClB,QAAQ,CAACkB,CAAC,CAAE;YACvC,QAAQ,EAAE,CAAE;YACZ,eAAe,EAAE,IAAK;YACtB,eAAe,EAAE,KAAM;YACvB,sBAAsB,EAAE;UAAQ,GAC3BN,UAAU,GAAG;YAAEA,UAAU,EAAEA;UAAW,CAAC,GAAG,CAAC,CAAC;YACjD,KAAK,EAAC,UAAU;YAChB,UAAU,EAAGR,GAAQ,IAAK,IAAI,CAACoB,YAAY,CAACpB,GAAG;UAAE,GACjD,eACF;YACE,KAAK,EAAE;cACLqB,OAAO,EAAE,IAAI,CAACd,KAAK,CAACH,SAAS,GAAG,OAAO,GAAG,MAAM;cAChDkB,KAAK,EAAE;YACT;UAAE,GAEDC,gBAAI,CAACC,CAAC,CAAE,GAAEC,iCAAuB,IAAGC,YAAC,CAACC,aAAc,EAAC,CAAC,CACjD,CACP;QAEP,KAAKvE,mBAAmB,CAACwE,QAAQ;QACjC,KAAKxE,mBAAmB,CAACyE,QAAQ;UAAE;YACjC,oBACE,6BAAC,WAAK,CAAC,QAAQ;cACb,KAAK,EAAE9D;YAAM,GACTsC,SAAS;cACb,QAAQ,EAAGS,CAAM,IAAK,IAAI,CAAClB,QAAQ,CAACkB,CAAC,CAAE;cACvC,SAAS,EAAE,IAAI,CAAChD,KAAK,CAACiD,SAAU;cAChC,KAAK,EAAE,IAAI,CAACjD,KAAK,CAACkD,KAAM;cACxB,IAAI,EAAE;YAAE,GACR;UAEN;QAEA,KAAK5D,mBAAmB,CAACoC,MAAM;QAC/B,KAAKpC,mBAAmB,CAAC0E,aAAa;UACpC,oBACE,6BAAC,2BAAS;YACR,QAAQ,EAAE9D,IAAI,KAAKZ,mBAAmB,CAAC0E,aAAc;YACrD,SAAS,EAAE7D,SAAU;YACrB,UAAU,EAAEF,KAAM;YAClB,mBAAmB,EAAGgE,QAAa,IAAK,IAAI,CAACnC,QAAQ,CAACmC,QAAQ,CAAE;YAChE,SAAS,EAAE,IAAI,CAACjE,KAAK,CAACiD,SAAU;YAChC,KAAK,EAAE,IAAI,CAACjD,KAAK,CAACkD,KAAM;YACxB,QAAQ,EAAE,IAAI,CAAClD,KAAK,CAACqB;UAAS,EAC9B;QAGN,KAAK/B,mBAAmB,CAAC4E,KAAK;UAAE;YAC9B,IAAI;cAAEpD,KAAK;cAAEK,QAAQ;cAAEC;YAAS,CAAC,GAAGmB,SAAS;;YAE7C;YACA,MAAM4B,UAAU,GAAG;cACjB3E,EAAE,EAAE,IAAc;cAClB;cACAC,IAAI,EAAEgE,gBAAI,CAACC,CAAC,CAAE,GAAEC,iCAAuB,IAAGC,YAAC,CAACQ,sBAAuB,EAAC;YACtE,CAAC;YAED,IAAI,CAACjD,QAAQ,EAAE;cACbL,KAAK,GAAG,CAAC,GAAGA,KAAK,EAAEqD,UAAU,CAAC;YAChC;YAEA,oBACE,6BAAC,WAAK,CAAC,KAAK;cACV,QAAQ,EAAGnB,CAAM,IAAK,IAAI,CAAClB,QAAQ,CAACkB,CAAC,CAAE;cACvC,KAAK,EAAE/C,KAAK,KAAKgC,SAAS,GAAGhC,KAAK,GAAGkE,UAAU,CAAC3E,EAAG;cACnD,SAAS,EAAE,IAAI,CAACQ,KAAK,CAACiD,SAAU;cAChC,KAAK,EAAE,IAAI,CAACjD,KAAK,CAACkD,KAAM;cACxB,QAAQ,EAAE9B;YAAS,GAElBN,KAAK,CAACuD,GAAG,CAAEC,IAAI,iBACd,6BAAC,WAAK;cAAC,KAAK,EAAEA,IAAI,CAAC9E,EAAG;cAAC,GAAG,EAAE+E,MAAM,CAACD,IAAI,CAAC9E,EAAE;YAAE,GACzC8E,IAAI,CAAC7E,IAAI,CAEb,CAAC,CACU;UAElB;QAEA,KAAKH,mBAAmB,CAACkF,IAAI;UAAE;YAC7B,MAAM;cAAEzB,WAAW;cAAE3B;YAAS,CAAC,GAAGmB,SAAS;YAC3C,oBACE,6BAAC,YAAM;cACL,UAAU,EAAE,IAAK;cACjB,IAAI,EAAC,MAAM;cACX,KAAK,EAAE;gBAAE,GAAG,IAAI,CAACvC,KAAK,CAACkD,KAAK;gBAAEuB,KAAK,EAAE;cAAO,CAAE;cAC9C,QAAQ,EAAErD,QAAS;cACnB,WAAW,EAAE2B,WAAY;cACzB,KAAK,EAAE9C,KAAK,IAAI,EAAG;cACnB,QAAQ,EAAG+C,CAAM,IAAK,IAAI,CAAClB,QAAQ,CAACkB,CAAC,CAAE;cACvC,SAAS,EAAE,IAAI,CAAChD,KAAK,CAACiD;YAAU,EAChC;UAEN;QAEA,KAAK3D,mBAAmB,CAACoF,IAAI;QAC7B,KAAKpF,mBAAmB,CAACqF,QAAQ;UAAE;YACjC,IAAIC,UAAU,GAAG,CAAC,CAAC;YACnB,IAAI1E,IAAI,KAAKZ,mBAAmB,CAACqF,QAAQ,EAAE;cACzCC,UAAU,GAAG;gBACXC,QAAQ,EAAE;cACZ,CAAC;YACH;YACA,MAAM;cAAEzD,QAAQ;cAAE2B;YAAY,CAAC,GAAGR,SAAS;YAC3C,MAAMuC,QAAQ,GAAG,IAAAC,6BAAiB,EAAC7E,IAAI,EAAED,KAAK,CAAC;YAC/C,oBACE,6BAAC,gBAAU;cACT,KAAK,EAAE6E,QAAQ,CAAC7E,KAAM;cACtB,WAAW,EAAE8C,WAAY;cACzB,QAAQ,EAAE3B,QAAS;cACnB,MAAM,EAAE0D,QAAQ,CAACE;YAAO,GACpBJ,UAAU;cACd,QAAQ,EAAE,CAAC7C,IAAI,EAAEC,UAAU,KACzB,IAAI,CAACiD,gBAAgB,CAAClD,IAAI,EAAEC,UAAU,CACvC;cACD,SAAS,EAAE,IAAI,CAAChC,KAAK,CAACiD,SAAU;cAChC,KAAK,EAAE,IAAI,CAACjD,KAAK,CAACkD;YAAM,GACxB;UAEN;QAEA,KAAK5D,mBAAmB,CAAC4F,MAAM;UAAE;YAC/B,MAAM;cAAE9D,QAAQ;cAAE2B;YAAY,CAAC,GAAGR,SAAS;YAC3C,MAAM4C,QAAQ,GACZ,OAAOlF,KAAK,KAAK,SAAS,GAAGA,KAAK,GAAGA,KAAK,GAAGA,KAAK,GAAG,EAAE;YACzD,oBACE,6BAAC,YAAM;cACL,WAAW,EAAE8C,WAAY;cACzB,IAAI,EAAE,IAAI,CAAC/C,KAAK,CAACoF,WAAW,GAAG,UAAU,GAAGnD,SAAU;cACtD,KAAK,EAAEkD,QAAS;cAChB,QAAQ,EAAGnC,CAAM,IAAK,IAAI,CAAClB,QAAQ,CAACkB,CAAC,CAAE;cACvC,QAAQ,EAAE5B,QAAS;cACnB,SAAS,EAAE,IAAI,CAACpB,KAAK,CAACiD,SAAU;cAChC,KAAK,EAAE,IAAI,CAACjD,KAAK,CAACkD;YAAM,GAEvBX,SAAS,CAACzB,KAAK,IACdyB,SAAS,CAACzB,KAAK,CAACuD,GAAG,CAAC,CAAC;cAAE7E,EAAE;cAAEC;YAAK,CAAC,kBAC/B,6BAAC,YAAM,CAAC,MAAM;cAAC,KAAK,EAAED,EAAG;cAAC,GAAG,EAAEA;YAAG,GAC/BC,IAAI,CAER,CAAC,CACG;UAEb;QAEA;UACE;YAAA;YACE;YACA;YACA;YACA;YACA;YACA;YACA;YACA;cACE,KAAK,EAAE;gBACL+D,KAAK,EAAE,wBAAwB;gBAC/B,GAAG,IAAI,CAACxD,KAAK,CAACkD;cAChB;YAAE,GAEDV,YAAY;UACT;MACN;IAER,CAAC;IAlgBC,MAAM;MAAErC,SAAS,EAATA,UAAS;MAAEX,EAAE,EAAFA,GAAE;MAAES,KAAK,EAALA,MAAK;MAAEC,IAAI,EAAJA,KAAI;MAAEO;IAAS,CAAC,GAAGT,MAAK;IACtD,MAAMqF,EAAE,GAAG5E,QAAQ;IACnB,IAAI;MACF,IAAI,CAACgC,KAAK,GAAG;QACXxC,KAAK,EAALA,MAAK;QACLuC,YAAY,EAAE,IAAI;QAClBlC,WAAW,EAAE,IAAI,CAACC,kBAAkB,CAClCJ,UAAS,EACTX,GAAE,EACFU,KAAI,EACJ,IAAAM,yBAAa,EAACC,QAAQ,EAAEN,UAAS,CAACX,EAAE,CAAC;MAEzC,CAAC;IACH,CAAC,CAAC,OAAO2C,KAAK,EAAE;MACd,IAAI,CAACM,KAAK,GAAG;QACXD,YAAY,EAAEL,KAAK,CAACmD,OAAO;QAC3BhF,WAAW,EAAE;UACXJ,IAAI,EAAEZ,mBAAmB,CAACiG,WAAW;UACrCnF,IAAI,EAAED,UAAS,CAACC,IAAI;UACpBZ,EAAE,EAAE;QACN;MACF,CAAC;IACH;EACF;EAEA,OAAOiC,cAAc,CACnBtB,SAA8C,EAC1B;IACpB,IAAI;MACF,IACEA,SAAS,CAACF,KAAK,CAACC,IAAI,KAAKd,uBAAuB,CAACoG,IAAI,IACrDrF,SAAS,CAACF,KAAK,CAACC,IAAI,KAAKd,uBAAuB,CAACqG,KAAK,IACtDtF,SAAS,CAACF,KAAK,CAAC0C,KAAK,KAAKV,SAAS,IACnC9B,SAAS,CAACF,KAAK,CAAC0C,KAAK,KAAK,IAAI,EAC9B;QACA;QACA,OAAO,IAAI+C,MAAM,CAACvF,SAAS,CAACF,KAAK,CAAC0C,KAAK,EAAY,GAAG,CAAC;MACzD;MACA,OAAOV,SAAS;IAClB,CAAC,CAAC,OAAOE,KAAK,EAAE;MACd,OAAOF,SAAS;IAClB;EACF;EAEAlB,uBAAuB,CACrBZ,SAA8C,EAC9CK,aAAuB,EACE;IACzB,IACEL,SAAS,CAACF,KAAK,CAACC,IAAI,KAAKd,uBAAuB,CAACoG,IAAI,IACrDrF,SAAS,CAACF,KAAK,CAACC,IAAI,KAAKd,uBAAuB,CAACqG,KAAK,EACtD;MAAA;MACA;MACA,gCAAQtF,SAAS,CAACF,KAAK,CAAC0C,KAAK,0DAAtB,sBAAqC0B,GAAG,CAAEsB,SAAS,KAAM;QAC9DnG,EAAE,EAAEmG,SAAS;QACblG,IAAI,EAAEe,aAAa,GAAGoF,sBAAU,CAACD,SAAS,CAAC,GAAGA;MAChD,CAAC,CAAC,CAAC;IACL;EACF;EAEA,OAAO/E,sBAAsB,CAC3BT,SAA8C,EAC9CD,IAAa,EACbW,yBAAmC,EACd;IACrB,QAAQV,SAAS,CAACF,KAAK,CAACC,IAAI;MAC1B,KAAKd,uBAAuB,CAACyG,MAAM;QAAE;UACnC,IACE1F,SAAS,CAACF,KAAK,CAAC6F,IAAI,KAAKzG,2BAA2B,CAAC0G,cAAc,EACnE;YACA,OAAOzG,mBAAmB,CAACwE,QAAQ;UACrC;UACA,IAAI3D,SAAS,CAACF,KAAK,CAAC6F,IAAI,KAAKzG,2BAA2B,CAAC0E,QAAQ,EAAE;YACjE,OAAOzE,mBAAmB,CAACyE,QAAQ;UACrC;UACA,IAAI5D,SAAS,CAACF,KAAK,CAAC6F,IAAI,KAAKzG,2BAA2B,CAAC8D,GAAG,EAAE;YAC5D,OAAO7D,mBAAmB,CAAC6D,GAAG;UAChC;QACF;MACA;MACA,KAAK/D,uBAAuB,CAAC4G,EAAE;QAC7B,IAAInF,yBAAyB,EAAE;UAC7B,OAAOvB,mBAAmB,CAACkF,IAAI;QACjC;QACA,OAAOlF,mBAAmB,CAACwD,IAAI;MACjC,KAAK1D,uBAAuB,CAACwD,IAAI;QAC/B;QACA,OAAOtD,mBAAmB,CAAC+D,WAAW;MACxC,KAAKjE,uBAAuB,CAACoG,IAAI;QAC/B,IACE,CAACrF,SAAS,CAACF,KAAK,CAAC0C,KAAK,IACrBxC,SAAS,CAACF,KAAK,CAAC0C,KAAK,CAAcsD,MAAM,KAAK,CAAC,EAChD;UACA,MAAM,IAAIC,KAAK;UACb;UACAzC,gBAAI,CAACC,CAAC,CAAE,GAAEC,iCAAuB,IAAGC,YAAC,CAACuC,cAAe,EAAC,EAAE;YACtDhG,SAAS,EAAEA,SAAS,CAACC;UACvB,CAAC,CAAC,CACH;QACH;QACA,IACED,SAAS,CAACF,KAAK,CAAC0C,KAAK,IACpBxC,SAAS,CAACF,KAAK,CAAC0C,KAAK,CAAcsD,MAAM,IAAI,CAAC,KAC9C,CAAC/F,IAAI,IAAIA,IAAI,KAAKZ,mBAAmB,CAAC4E,KAAK,CAAC,EAC7C;UACA,OAAO5E,mBAAmB,CAAC4E,KAAK;QAClC;QACA,OAAO5E,mBAAmB,CAAC4F,MAAM;MACnC,KAAK9F,uBAAuB,CAACgH,OAAO;MACpC,KAAKhH,uBAAuB,CAACiH,KAAK;QAChC,OAAO/G,mBAAmB,CAAC8D,MAAM;MACnC,KAAKhE,uBAAuB,CAACsF,IAAI;QAC/B,OAAOpF,mBAAmB,CAACoF,IAAI;MACjC,KAAKtF,uBAAuB,CAACuF,QAAQ;QACnC,OAAOrF,mBAAmB,CAACqF,QAAQ;MACrC,KAAKvF,uBAAuB,CAACkH,GAAG;QAC9B,OAAOhH,mBAAmB,CAACkF,IAAI;MACjC,KAAKpF,uBAAuB,CAACsC,MAAM;QACjC,IAAIvB,SAAS,CAACF,KAAK,CAACsG,aAAa,CAACN,MAAM,KAAK,CAAC,EAAE;UAC9C,MAAM,IAAIC,KAAK;UACb;UACAzC,gBAAI,CAACC,CAAC,CAAE,GAAEC,iCAAuB,IAAGC,YAAC,CAAC4C,gBAAiB,EAAC,EAAE;YACxDrG,SAAS,EAAEA,SAAS,CAACC;UACvB,CAAC,CAAC,CACH;QACH;QACA,OAAOd,mBAAmB,CAAC0E,aAAa;MAC1C,KAAK5E,uBAAuB,CAACqH,WAAW;QACtC,IAAItG,SAAS,CAACF,KAAK,CAACsG,aAAa,CAACN,MAAM,KAAK,CAAC,EAAE;UAC9C,MAAM,IAAIC,KAAK;UACb;UACAzC,gBAAI,CAACC,CAAC,CAAE,GAAEC,iCAAuB,IAAGC,YAAC,CAAC4C,gBAAiB,EAAC,EAAE;YACxDrG,SAAS,EAAEA,SAAS,CAACC;UACvB,CAAC,CAAC,CACH;QACH;QACA,OAAOd,mBAAmB,CAACoC,MAAM;MACnC,KAAKtC,uBAAuB,CAAC4B,OAAO;QAClC,OAAO1B,mBAAmB,CAAC4F,MAAM;MACnC,KAAK9F,uBAAuB,CAACqG,KAAK;QAChC,OAAOnG,mBAAmB,CAAC4F,MAAM;MACnC;QACE,MAAM,IAAIgB,KAAK,CACbzC,gBAAI,CAACC,CAAC,CAAE,GAAEC,iCAAuB,IAAGC,YAAC,CAAC8C,oBAAqB,EAAC,EAAE;UAC5DxG,IAAI,EAAEC,SAAS,CAACF,KAAK,CAACC;QACxB,CAAC,CAAC,CACH;IAAC;EAER;EAuCA,OAAOyB,kBAAkB,CAACrB,WAAwB,EAAU;IAC1D,IAAIA,WAAW,CAACd,EAAE,KAAK,IAAI,IAAIc,WAAW,CAACF,IAAI,KAAK,IAAI,EAAE;MACxD,OAAOqD,gBAAI,CAACC,CAAC,CAAE,GAAEC,iCAAuB,IAAGC,YAAC,CAAC+C,cAAe,EAAC,CAAC;IAChE;IAEA,MAAMC,YAAY,GAAG,EAAE;IACvB,QAAQtG,WAAW,CAACJ,IAAI;MACtB,KAAKZ,mBAAmB,CAAC4F,MAAM;QAC7B0B,YAAY,CAACC,IAAI,CACfpD,gBAAI,CAACC,CAAC,CAAE,GAAEC,iCAAuB,IAAGC,YAAC,CAACkD,eAAgB,EAAC,CAAC,CACzD;QACD;MACF,KAAKxH,mBAAmB,CAACqF,QAAQ;MACjC,KAAKrF,mBAAmB,CAACoF,IAAI;QAC3BkC,YAAY,CAACC,IAAI,CACfpD,gBAAI,CAACC,CAAC,CAAE,GAAEC,iCAAuB,IAAGC,YAAC,CAACkD,eAAgB,EAAC,CAAC,CACzD;QACD;MACF,KAAKxH,mBAAmB,CAACkF,IAAI;QAC3BoC,YAAY,CAACC,IAAI,CACfpD,gBAAI,CAACC,CAAC,CACH,GAAEC,iCAAuB,IAAGC,YAAC,CAACmD,qDAAsD,EAAC,CACvF,CACF;QACD;MACF,KAAKzH,mBAAmB,CAAC8D,MAAM;QAC7BwD,YAAY,CAACC,IAAI,CACfpD,gBAAI,CAACC,CAAC,CAAE,GAAEC,iCAAuB,IAAGC,YAAC,CAACoD,wBAAyB,EAAC,CAAC,CAClE;QACD;MACF;QACEJ,YAAY,CAACC,IAAI,CACfpD,gBAAI,CAACC,CAAC,CACH,GAAEC,iCAAuB,IAAGC,YAAC,CAACqD,uCAAwC,EAAC,CACzE,CACF;IAAC;IAGN,IAAI3G,WAAW,CAACkB,OAAO,KAAKS,SAAS,EAAE;MACrC;MACA2E,YAAY,CAACC,IAAI,CACfpD,gBAAI,CAACC,CAAC,CAAE,GAAEC,iCAAuB,IAAGC,YAAC,CAACsD,gBAAiB,EAAC,EAAE;QACxDC,MAAM,EAAE7G,WAAW,CAACkB;MACtB,CAAC,CAAC,CACH;IACH;IACA,IAAIlB,WAAW,CAACiB,MAAM,EAAE;MACtB;MACAqF,YAAY,CAACC,IAAI,CACfpD,gBAAI,CAACC,CAAC,CAAE,GAAEC,iCAAuB,IAAGC,YAAC,CAACwD,gBAAiB,EAAC,EAAE;QACxDlG,KAAK,EAAEZ,WAAW,CAACY;MACrB,CAAC,CAAC,CACH;IACH;IACA,OAAO0F,YAAY,CAACS,IAAI,CAAC,GAAG,CAAC;EAC/B;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EAgQEC,MAAM,GAAc;IAClB,oBAAO,4DAAG,IAAI,CAACC,kBAAkB,EAAE,CAAI;EACzC;AACF;AAAC"}
1
+ {"version":3,"file":"ModelAttributeFormControl.js","names":["ModelAttributeValueType","ModelAttributeValueModeType","FormControlTypeEnum","boolOptions","id","text","ModelAttributeFormControl","Component","componentDidUpdate","prevProps","prevState","snapshot","props","value","type","attribute","name","setState","formControl","computeFormControl","isClusterType","objectId","constructor","formControlType","computeFormControlType","isSupportMultiStringValue","items","computeFormControlItems","BOOLEAN","result","label","required","readOnly","isCreate","readonly","unique","pattern","computePattern","STRUCT","computePlaceholder","event","target","onChange","date","dateString","undefined","err","error","some","jsonValidateCollection","showError","restProps","errorMessage","state","jsonSchema","regex","JSON","parse","TEXT","placeholder","e","className","style","URL","NUMBER","CODE_EDITOR","validateJson","display","color","i18n","t","NS_LIBS_CMDB_INSTANCES","K","NOT_MEET_JSON","TEXTAREA","MARKDOWN","LEGACY_STRUCT","formData","RADIO","unselected","TEMPORARILY_NOT_CHOOSE","map","item","String","TAGS","width","DATE","DATETIME","dateConfig","showTime","formater","computeDateFormat","format","handleDateChange","SELECT","newValue","multiSelect","is","message","_PLAIN_TEXT","ENUM","ENUMS","RegExp","enumValue","clusterMap","STRING","mode","MULTIPLE_LINES","IP","length","Error","ENUM_ERROR_TIP","INTEGER","FLOAT","ARR","struct_define","STRUCT_ERROR_TIP","STRUCT_LIST","TYPE_NO_SUPPORT_EDIT","IP_PLACEHOLDER","placeholders","push","CLICK_TO_SELECT","ENTER_MULTIPLE_STRING_WITH_ENTER_KEY_AS_THE_SEPARATOR","NUMBER_INPUT_PLACEHOLDER","ADVANCE_SEARCH_SINGLE_INPUT_PLACEHOLDER","MATCHING_REGULAR","regexp","UNIQUE_NO_REPEAT","join","render","FormControlTypeMap"],"sources":["../../../src/model-attribute-form-control/ModelAttributeFormControl.tsx"],"sourcesContent":["import React, { Component, ReactNode } from \"react\";\nimport { CmdbModels } from \"@next-sdk/cmdb-sdk\";\nimport i18n from \"i18next\";\nimport { NS_LIBS_CMDB_INSTANCES, K } from \"../i18n/constants\";\nimport { DatePicker, Input, InputNumber, Radio, Select } from \"antd\";\nimport { AddStruct } from \"../struct-components\";\nimport moment, { Moment } from \"moment\";\nimport { AttributeFormControlUrl } from \"../attribute-form-control-url/AttributeFormControlUrl\";\nimport { computeDateFormat, isClusterType } 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 isClusterType(this.props.objectId, this.props.attribute.id)\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 isClusterType(objectId, attribute.id)\n ),\n };\n } catch (error) {\n this.state = {\n errorMessage: error.message,\n formControl: {\n type: FormControlTypeEnum._PLAIN_TEXT,\n name: attribute.name,\n id: \"\",\n },\n };\n }\n }\n\n static computePattern(\n attribute: Partial<CmdbModels.ModelObjectAttr>\n ): RegExp | undefined {\n try {\n if (\n attribute.value.type !== ModelAttributeValueType.ENUM &&\n attribute.value.type !== ModelAttributeValueType.ENUMS &&\n attribute.value.regex !== undefined &&\n attribute.value.regex !== null\n ) {\n // todo(jhuang): use `u` flag for compliance until https://github.com/angular/angular/pull/20819 is resolved\n return new RegExp(attribute.value.regex as string, \"u\");\n }\n return undefined;\n } catch (error) {\n return undefined;\n }\n }\n\n computeFormControlItems(\n attribute: Partial<CmdbModels.ModelObjectAttr>,\n isClusterType?: boolean\n ): FormControlSelectItem[] {\n if (\n attribute.value.type === ModelAttributeValueType.ENUM ||\n attribute.value.type === ModelAttributeValueType.ENUMS\n ) {\n // The backend guys are notorious to use `regex` as enum candidates. 😢\n return (attribute.value.regex as string[])?.map((enumValue) => ({\n id: enumValue,\n text: isClusterType ? clusterMap[enumValue] : enumValue,\n }));\n }\n }\n\n static computeFormControlType(\n attribute: Partial<CmdbModels.ModelObjectAttr>,\n type?: string,\n isSupportMultiStringValue?: boolean\n ): FormControlTypeEnum {\n switch (attribute.value.type) {\n case ModelAttributeValueType.STRING: {\n if (\n attribute.value.mode === ModelAttributeValueModeType.MULTIPLE_LINES\n ) {\n return FormControlTypeEnum.TEXTAREA;\n }\n if (attribute.value.mode === ModelAttributeValueModeType.MARKDOWN) {\n return FormControlTypeEnum.MARKDOWN;\n }\n if (attribute.value.mode === ModelAttributeValueModeType.URL) {\n return FormControlTypeEnum.URL;\n }\n }\n /* falls through */\n case ModelAttributeValueType.IP:\n if (isSupportMultiStringValue) {\n return FormControlTypeEnum.TAGS;\n }\n return FormControlTypeEnum.TEXT;\n case ModelAttributeValueType.JSON:\n // return FormControlTypeEnum.TEXTAREA;\n return FormControlTypeEnum.CODE_EDITOR;\n case ModelAttributeValueType.ENUM:\n if (\n !attribute.value.regex ||\n (attribute.value.regex as string[]).length === 0\n ) {\n throw new Error(\n // \"请在资源模型管理中添加枚举值, 属性: \" + attribute.name\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.ENUM_ERROR_TIP}`, {\n attribute: attribute.name,\n })\n );\n }\n if (\n attribute.value.regex &&\n (attribute.value.regex as string[]).length <= 5 &&\n (!type || type === FormControlTypeEnum.RADIO)\n ) {\n return FormControlTypeEnum.RADIO;\n }\n return FormControlTypeEnum.SELECT;\n case ModelAttributeValueType.INTEGER:\n case ModelAttributeValueType.FLOAT:\n return FormControlTypeEnum.NUMBER;\n case ModelAttributeValueType.DATE:\n return FormControlTypeEnum.DATE;\n case ModelAttributeValueType.DATETIME:\n return FormControlTypeEnum.DATETIME;\n case ModelAttributeValueType.ARR:\n return FormControlTypeEnum.TAGS;\n case ModelAttributeValueType.STRUCT:\n if (attribute.value.struct_define.length === 0) {\n throw new Error(\n // \"请在资源模型中添加结构体属性, 属性: \" + attribute.name\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.STRUCT_ERROR_TIP}`, {\n attribute: attribute.name,\n })\n );\n }\n return FormControlTypeEnum.LEGACY_STRUCT;\n case ModelAttributeValueType.STRUCT_LIST:\n if (attribute.value.struct_define.length === 0) {\n throw new Error(\n // \"请在资源模型中添加结构体属性, 属性: \" + attribute.name\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.STRUCT_ERROR_TIP}`, {\n attribute: attribute.name,\n })\n );\n }\n return FormControlTypeEnum.STRUCT;\n case ModelAttributeValueType.BOOLEAN:\n return FormControlTypeEnum.SELECT;\n case ModelAttributeValueType.ENUMS:\n return FormControlTypeEnum.SELECT;\n default:\n throw new Error(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.TYPE_NO_SUPPORT_EDIT}`, {\n type: attribute.value.type,\n })\n );\n }\n }\n\n computeFormControl = (\n attribute: Partial<CmdbModels.ModelObjectAttr>,\n id?: string,\n type?: string,\n isClusterType?: boolean\n ): FormControl => {\n const formControlType = ModelAttributeFormControl.computeFormControlType(\n attribute,\n type,\n this.props.isSupportMultiStringValue\n );\n let items = this.computeFormControlItems(attribute, isClusterType);\n\n if (attribute.value.type === ModelAttributeValueType.BOOLEAN) {\n items = boolOptions;\n }\n\n const result: FormControl = {\n type: formControlType,\n items,\n id: id || attribute.id,\n name: attribute.id,\n label: attribute.name,\n required: attribute.required === \"true\",\n readOnly: !this.props.isCreate && attribute.readonly === \"true\",\n unique: attribute.unique === \"true\",\n pattern: ModelAttributeFormControl.computePattern(attribute),\n };\n\n if (result.type === FormControlTypeEnum.STRUCT) {\n result[\"maxlength\"] = 1;\n }\n result[\"placeholder\"] =\n ModelAttributeFormControl.computePlaceholder(result);\n return result;\n };\n\n static computePlaceholder(formControl: FormControl): string {\n if (formControl.id === \"ip\" && formControl.name === \"ip\") {\n return i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.IP_PLACEHOLDER}`);\n }\n\n const placeholders = [];\n switch (formControl.type) {\n case FormControlTypeEnum.SELECT:\n placeholders.push(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLICK_TO_SELECT}`)\n );\n break;\n case FormControlTypeEnum.DATETIME:\n case FormControlTypeEnum.DATE:\n placeholders.push(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLICK_TO_SELECT}`)\n );\n break;\n case FormControlTypeEnum.TAGS:\n placeholders.push(\n i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ENTER_MULTIPLE_STRING_WITH_ENTER_KEY_AS_THE_SEPARATOR}`\n )\n );\n break;\n case FormControlTypeEnum.NUMBER:\n placeholders.push(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.NUMBER_INPUT_PLACEHOLDER}`)\n );\n break;\n default:\n placeholders.push(\n i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ADVANCE_SEARCH_SINGLE_INPUT_PLACEHOLDER}`\n )\n );\n }\n\n if (formControl.pattern !== undefined) {\n // placeholders.push(`匹配正则 ${formControl.pattern}`);\n placeholders.push(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.MATCHING_REGULAR}`, {\n regexp: formControl.pattern,\n })\n );\n }\n if (formControl.unique) {\n // placeholders.push(`${formControl.label}唯一不能重复`);\n placeholders.push(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.UNIQUE_NO_REPEAT}`, {\n label: formControl.label,\n })\n );\n }\n return placeholders.join(\",\");\n }\n\n /*computeFormControlAndCatchError = () => {\n const { attribute, objectId } = this.props;\n try {\n this.setState({\n formControl: this.computeFormControl(attribute, objectId)\n });\n } catch (error) {\n this.setState({\n errorMessage: error.message,\n formControl: {\n type: FormControlTypeEnum._PLAIN_TEXT,\n name: attribute.name,\n id: \"\"\n }\n });\n }\n };*/\n\n onChange = (event: any) => {\n let value;\n if (event && event.target) {\n value = event.target.value;\n } else {\n value = event;\n }\n\n const { onChange } = this.props;\n this.setState({ value });\n onChange && onChange(value);\n };\n\n handleDateChange = (date: Moment, dateString: string) => {\n this.onChange(dateString || undefined);\n };\n validateJson = (err: any) => {\n const error = some(err, [\"type\", \"error\"]);\n this.props.jsonValidateCollection?.(error);\n this.setState({ showError: error });\n };\n\n FormControlTypeMap = (): ReactNode => {\n const { attribute } = this.props;\n const {\n value,\n formControl: { type, ...restProps },\n errorMessage,\n } = this.state;\n // const unsupportText = `\"${type}\"类型暂时不支持编辑`;\n // const unsupportText = i18n.t(\n // `${NS_LIBS_CMDB_INSTANCES}:${K.TYPE_NO_SUPPORT_EDIT}`,\n // { type }\n // );\n let jsonSchema: any;\n if (attribute?.value?.type === \"json\" && attribute?.value?.regex) {\n jsonSchema = JSON.parse(attribute?.value?.regex);\n }\n\n switch (type) {\n case FormControlTypeEnum.TEXT: {\n const { pattern, placeholder, ...props } = restProps;\n return (\n <Input\n value={value}\n type=\"text\"\n {...props}\n placeholder={placeholder}\n onChange={(e) => this.onChange(e)}\n className={this.props.className}\n style={this.props.style}\n />\n );\n }\n\n case FormControlTypeEnum.URL: {\n const { readOnly, required, placeholder } = restProps;\n\n return (\n <AttributeFormControlUrl\n readOnly={readOnly}\n required={required}\n placeholder={placeholder}\n value={value}\n onChange={(e) => this.onChange(e)}\n />\n );\n }\n\n case FormControlTypeEnum.NUMBER: {\n const { pattern, ...props } = restProps;\n return (\n <InputNumber\n value={value}\n {...props}\n onChange={(e: any) => this.onChange(e)}\n className={this.props.className}\n style={this.props.style}\n />\n );\n }\n case FormControlTypeEnum.CODE_EDITOR:\n return (\n <>\n <CodeEditor\n value={value}\n mode={\"json\"}\n maxLines={\"Infinity\"}\n highlightActiveLine={true}\n onChange={(e: any) => this.onChange(e)}\n minLines={3}\n showLineNumbers={true}\n showPrintMargin={false}\n validateJsonSchemaMode={\"error\"}\n {...(jsonSchema ? { jsonSchema: jsonSchema } : {})}\n theme=\"tomorrow\"\n onValidate={(err: any) => this.validateJson(err)}\n />\n <label\n style={{\n display: this.state.showError ? \"block\" : \"none\",\n color: \"#fc5043\",\n }}\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.NOT_MEET_JSON}`)}\n </label>\n </>\n );\n case FormControlTypeEnum.TEXTAREA:\n case FormControlTypeEnum.MARKDOWN: {\n return (\n <Input.TextArea\n value={value}\n {...restProps}\n onChange={(e: any) => this.onChange(e)}\n className={this.props.className}\n style={this.props.style}\n rows={5}\n />\n );\n }\n\n case FormControlTypeEnum.STRUCT:\n case FormControlTypeEnum.LEGACY_STRUCT:\n return (\n <AddStruct\n isLegacy={type === FormControlTypeEnum.LEGACY_STRUCT}\n attribute={attribute}\n structData={value}\n handleStoreFunction={(formData: any) => this.onChange(formData)}\n className={this.props.className}\n style={this.props.style}\n isCreate={this.props.isCreate}\n />\n );\n\n case FormControlTypeEnum.RADIO: {\n let { items, required, readOnly } = restProps;\n\n // NODE: 对非必填单选为空的特殊处理 BY @robertman\n const unselected = {\n id: null as string,\n // text: \"暂不选择\",\n text: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.TEMPORARILY_NOT_CHOOSE}`),\n };\n\n if (!required) {\n items = [...items, unselected];\n }\n\n return (\n <Radio.Group\n onChange={(e: any) => this.onChange(e)}\n value={value !== undefined ? value : unselected.id}\n className={this.props.className}\n style={this.props.style}\n disabled={readOnly}\n >\n {items.map((item) => (\n <Radio value={item.id} key={String(item.id)}>\n {item.text}\n </Radio>\n ))}\n </Radio.Group>\n );\n }\n\n case FormControlTypeEnum.TAGS: {\n const { placeholder, readOnly } = restProps;\n return (\n <Select\n allowClear={true}\n mode=\"tags\"\n style={{ ...this.props.style, width: \"100%\" }}\n disabled={readOnly}\n placeholder={placeholder}\n value={value || []}\n onChange={(e: any) => this.onChange(e)}\n className={this.props.className}\n />\n );\n }\n\n case FormControlTypeEnum.DATE:\n case FormControlTypeEnum.DATETIME: {\n let dateConfig = {};\n if (type === FormControlTypeEnum.DATETIME) {\n dateConfig = {\n showTime: true,\n };\n }\n const { readOnly, placeholder } = restProps;\n const formater = computeDateFormat(type, value);\n return (\n <DatePicker\n value={formater.value}\n placeholder={placeholder}\n disabled={readOnly}\n format={formater.format}\n {...dateConfig}\n onChange={(date, dateString) =>\n this.handleDateChange(date, dateString)\n }\n className={this.props.className}\n style={this.props.style}\n />\n );\n }\n\n case FormControlTypeEnum.SELECT: {\n const { readOnly, placeholder } = restProps;\n const newValue =\n typeof value === \"boolean\" ? value : value ? value : [];\n return (\n <Select\n placeholder={placeholder}\n mode={this.props.multiSelect ? \"multiple\" : undefined}\n value={newValue}\n onChange={(e: any) => this.onChange(e)}\n disabled={readOnly}\n className={this.props.className}\n style={this.props.style}\n showSearch\n >\n {restProps.items &&\n restProps.items.map(({ id, text }) => (\n <Select.Option value={id} key={id}>\n {text}\n </Select.Option>\n ))}\n </Select>\n );\n }\n\n default:\n return (\n // <Input\n // value={errorMessage}\n // readOnly\n // disabled\n // className={this.props.className}\n // style={this.props.style}\n // />\n <div\n style={{\n color: \"var(--theme-red-color)\",\n ...this.props.style,\n }}\n >\n {errorMessage}\n </div>\n );\n }\n };\n\n render(): ReactNode {\n return <>{this.FormControlTypeMap()}</>;\n }\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import React, { useEffect, useMemo, useState, memo } from "react";
1
+ import React, { useEffect, useMemo, useState } from "react";
2
2
  import { Popover, Input, Button, Radio, Space } from "antd";
3
3
  import { IconButton } from "./IconButton";
4
4
  import { SearchOutlined } from "@ant-design/icons";
@@ -19,9 +19,9 @@ var FilterInstanceSource = props => {
19
19
  jsonLocalStorage,
20
20
  isAbstract
21
21
  } = props;
22
-
23
- // eslint-disable-next-line react-hooks/exhaustive-deps
24
- var objectNameMap = jsonLocalStorage.getItem("instances-sources-objectId-name-map") || {};
22
+ var objectNameMap = useMemo(() => {
23
+ return jsonLocalStorage.getItem("instances-sources-objectId-name-map") || {};
24
+ }, [jsonLocalStorage]);
25
25
  var _modelIdNameMap = useMemo(() => {
26
26
  return isEmpty(props.inheritanceModelIdNameMap) ? objectNameMap === null || objectNameMap === void 0 ? void 0 : objectNameMap.idNameMap : props.inheritanceModelIdNameMap;
27
27
  }, [props.inheritanceModelIdNameMap, objectNameMap]);
@@ -134,5 +134,5 @@ var FilterInstanceSource = props => {
134
134
  "data-testid": "instance-source-icon"
135
135
  }));
136
136
  };
137
- export default /*#__PURE__*/memo(FilterInstanceSource);
137
+ export default FilterInstanceSource;
138
138
  //# sourceMappingURL=FilterInstanceSource.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FilterInstanceSource.js","names":["React","useEffect","useMemo","useState","memo","Popover","Input","Button","Radio","Space","IconButton","SearchOutlined","styles","map","isEmpty","i18n","K","NS_LIBS_CMDB_INSTANCES","encode","keyword","reg","replace","key","FilterInstanceSource","props","instanceSource","setInstanceSource","value","objectIdNameList","setObjectIdNameList","checked","visible","jsonLocalStorage","isAbstract","objectNameMap","getItem","_modelIdNameMap","inheritanceModelIdNameMap","idNameMap","_objectIdNameList","text","onReset","e","parentObjectId","query","objectId","objectName","onChange","onIconClicKChange","onPopoverVisibleChange","onConfirm","handleRadioChange","target","onSearch","trim","regex","RegExp","filterObjectIdNameList","filter","v","test","onIconCheckedChange","getContent","t","SEARCH_MODEL","content","footer","RESET","CONFIRM","width","marginRight"],"sources":["../../../src/instance-list/FilterInstanceSource.tsx"],"sourcesContent":["import React, {\n FC,\n ReactElement,\n useEffect,\n useMemo,\n useState,\n memo,\n} from \"react\";\nimport { Popover, Input, Button, Radio, Space } from \"antd\";\nimport { IconButton } from \"./IconButton\";\nimport { SearchOutlined } from \"@ant-design/icons\";\nimport styles from \"./FilterInstanceSource.module.css\";\nimport { map, isEmpty } from \"lodash\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\n\nimport { filterObjectIdQuery } from \"./InstanceList\";\n\ninterface FilterInstanceSourceProps {\n visible?: boolean;\n checked?: boolean;\n onIconClicKChange?(checked: boolean): void;\n inheritanceModelIdNameMap?: Record<string, string>;\n value?: string;\n onChange: (value: filterObjectIdQuery) => void;\n onPopoverVisibleChange?(visible: boolean): void;\n jsonLocalStorage?: any;\n isAbstract?: boolean;\n}\n\nfunction encode(keyword: string): string {\n const reg = /[[($^.\\]*\\\\?+{}|)]/gi;\n return keyword.replace(reg, (key) => `\\\\${key}`);\n}\n\nconst FilterInstanceSource: FC<FilterInstanceSourceProps> = (props) => {\n const [instanceSource, setInstanceSource] = useState(props.value);\n const [objectIdNameList, setObjectIdNameList] = useState([]);\n const { checked, visible, jsonLocalStorage, isAbstract } = props;\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const objectNameMap =\n jsonLocalStorage.getItem(\"instances-sources-objectId-name-map\") || {};\n\n const _modelIdNameMap = useMemo(() => {\n return isEmpty(props.inheritanceModelIdNameMap)\n ? objectNameMap?.idNameMap\n : props.inheritanceModelIdNameMap;\n }, [props.inheritanceModelIdNameMap, objectNameMap]);\n\n useEffect(() => {\n const _objectIdNameList = map(_modelIdNameMap, (value, key) => ({\n text: value,\n value: key,\n }));\n setObjectIdNameList(_objectIdNameList);\n }, [_modelIdNameMap]);\n\n const onReset = (e: any): void => {\n const { parentObjectId, query } = objectNameMap;\n const value: filterObjectIdQuery = {\n objectId: parentObjectId,\n objectName: \"\",\n query,\n checked: false,\n };\n setInstanceSource(\"\");\n props?.onChange(value);\n props?.onIconClicKChange(false);\n props?.onPopoverVisibleChange(false);\n };\n\n const onConfirm = (e: any): void => {\n const query: filterObjectIdQuery = {\n objectId: instanceSource,\n objectName: _modelIdNameMap[instanceSource],\n query: {},\n checked,\n };\n props?.onChange(query);\n props?.onPopoverVisibleChange(false);\n };\n\n const handleRadioChange = (e: any): void => {\n setInstanceSource(e.target.value);\n };\n\n const onSearch = (e: any): void => {\n const value = encode(e.target.value.trim());\n const _objectIdNameList = map(_modelIdNameMap, (value, key) => ({\n text: value,\n value: key,\n }));\n const regex = new RegExp(value, \"ig\");\n const filterObjectIdNameList = _objectIdNameList.filter((v) =>\n regex.test(v.text)\n );\n setObjectIdNameList(filterObjectIdNameList);\n };\n\n const onIconCheckedChange = (checked: boolean): void => {\n if (isAbstract) {\n props?.onIconClicKChange(checked);\n props?.onPopoverVisibleChange(checked);\n } else {\n props?.onIconClicKChange(true);\n props?.onPopoverVisibleChange(true);\n }\n };\n\n const getContent = (): ReactElement => {\n return (\n <>\n <Input\n placeholder={i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.SEARCH_MODEL}`)}\n suffix={<SearchOutlined />}\n onPressEnter={onSearch}\n data-testid=\"instance-source-search\"\n />\n <div className={styles.content}>\n <Radio.Group value={instanceSource} onChange={handleRadioChange}>\n <Space direction=\"vertical\">\n {objectIdNameList.map(({ text, value }) => (\n <Radio key={value} value={value}>\n {text}\n </Radio>\n ))}\n </Space>\n </Radio.Group>\n </div>\n <div className={styles.footer}>\n <Button\n type=\"text\"\n size=\"small\"\n onClick={onReset}\n disabled={isAbstract}\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.RESET}`)}\n </Button>\n <Button type=\"primary\" size=\"small\" onClick={onConfirm}>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CONFIRM}`)}\n </Button>\n </div>\n </>\n );\n };\n return (\n <Popover\n content={getContent()}\n placement=\"bottomRight\"\n overlayStyle={{ width: \"325px\" }}\n visible={visible}\n trigger=\"click\"\n >\n <IconButton\n checked={checked}\n onChange={onIconCheckedChange}\n style={{ marginRight: 10 }}\n type=\"filterInstanceSource\"\n label={\"\"}\n data-testid=\"instance-source-icon\"\n />\n </Popover>\n );\n};\n\nexport default memo(FilterInstanceSource);\n"],"mappings":"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"}
1
+ {"version":3,"file":"FilterInstanceSource.js","names":["React","useEffect","useMemo","useState","Popover","Input","Button","Radio","Space","IconButton","SearchOutlined","styles","map","isEmpty","i18n","K","NS_LIBS_CMDB_INSTANCES","encode","keyword","reg","replace","key","FilterInstanceSource","props","instanceSource","setInstanceSource","value","objectIdNameList","setObjectIdNameList","checked","visible","jsonLocalStorage","isAbstract","objectNameMap","getItem","_modelIdNameMap","inheritanceModelIdNameMap","idNameMap","_objectIdNameList","text","onReset","e","parentObjectId","query","objectId","objectName","onChange","onIconClicKChange","onPopoverVisibleChange","onConfirm","handleRadioChange","target","onSearch","trim","regex","RegExp","filterObjectIdNameList","filter","v","test","onIconCheckedChange","getContent","t","SEARCH_MODEL","content","footer","RESET","CONFIRM","width","marginRight"],"sources":["../../../src/instance-list/FilterInstanceSource.tsx"],"sourcesContent":["import React, { FC, ReactElement, useEffect, useMemo, useState } from \"react\";\nimport { Popover, Input, Button, Radio, Space } from \"antd\";\nimport { IconButton } from \"./IconButton\";\nimport { SearchOutlined } from \"@ant-design/icons\";\nimport styles from \"./FilterInstanceSource.module.css\";\nimport { map, isEmpty } from \"lodash\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\n\nimport { filterObjectIdQuery } from \"./InstanceList\";\n\ninterface FilterInstanceSourceProps {\n visible?: boolean;\n checked?: boolean;\n onIconClicKChange?(checked: boolean): void;\n inheritanceModelIdNameMap?: Record<string, string>;\n value?: string;\n onChange: (value: filterObjectIdQuery) => void;\n onPopoverVisibleChange?(visible: boolean): void;\n jsonLocalStorage?: any;\n isAbstract?: boolean;\n}\n\nfunction encode(keyword: string): string {\n const reg = /[[($^.\\]*\\\\?+{}|)]/gi;\n return keyword.replace(reg, (key) => `\\\\${key}`);\n}\n\nconst FilterInstanceSource: FC<FilterInstanceSourceProps> = (props) => {\n const [instanceSource, setInstanceSource] = useState(props.value);\n const [objectIdNameList, setObjectIdNameList] = useState([]);\n const { checked, visible, jsonLocalStorage, isAbstract } = props;\n\n const objectNameMap = useMemo(() => {\n return (\n jsonLocalStorage.getItem(\"instances-sources-objectId-name-map\") || {}\n );\n }, [jsonLocalStorage]);\n\n const _modelIdNameMap = useMemo(() => {\n return isEmpty(props.inheritanceModelIdNameMap)\n ? objectNameMap?.idNameMap\n : props.inheritanceModelIdNameMap;\n }, [props.inheritanceModelIdNameMap, objectNameMap]);\n\n useEffect(() => {\n const _objectIdNameList = map(_modelIdNameMap, (value, key) => ({\n text: value,\n value: key,\n }));\n setObjectIdNameList(_objectIdNameList);\n }, [_modelIdNameMap]);\n\n const onReset = (e: any): void => {\n const { parentObjectId, query } = objectNameMap;\n const value: filterObjectIdQuery = {\n objectId: parentObjectId,\n objectName: \"\",\n query,\n checked: false,\n };\n setInstanceSource(\"\");\n props?.onChange(value);\n props?.onIconClicKChange(false);\n props?.onPopoverVisibleChange(false);\n };\n\n const onConfirm = (e: any): void => {\n const query: filterObjectIdQuery = {\n objectId: instanceSource,\n objectName: _modelIdNameMap[instanceSource],\n query: {},\n checked,\n };\n props?.onChange(query);\n props?.onPopoverVisibleChange(false);\n };\n\n const handleRadioChange = (e: any): void => {\n setInstanceSource(e.target.value);\n };\n\n const onSearch = (e: any): void => {\n const value = encode(e.target.value.trim());\n const _objectIdNameList = map(_modelIdNameMap, (value, key) => ({\n text: value,\n value: key,\n }));\n const regex = new RegExp(value, \"ig\");\n const filterObjectIdNameList = _objectIdNameList.filter((v) =>\n regex.test(v.text)\n );\n setObjectIdNameList(filterObjectIdNameList);\n };\n\n const onIconCheckedChange = (checked: boolean): void => {\n if (isAbstract) {\n props?.onIconClicKChange(checked);\n props?.onPopoverVisibleChange(checked);\n } else {\n props?.onIconClicKChange(true);\n props?.onPopoverVisibleChange(true);\n }\n };\n\n const getContent = (): ReactElement => {\n return (\n <>\n <Input\n placeholder={i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.SEARCH_MODEL}`)}\n suffix={<SearchOutlined />}\n onPressEnter={onSearch}\n data-testid=\"instance-source-search\"\n />\n <div className={styles.content}>\n <Radio.Group value={instanceSource} onChange={handleRadioChange}>\n <Space direction=\"vertical\">\n {objectIdNameList.map(({ text, value }) => (\n <Radio key={value} value={value}>\n {text}\n </Radio>\n ))}\n </Space>\n </Radio.Group>\n </div>\n <div className={styles.footer}>\n <Button\n type=\"text\"\n size=\"small\"\n onClick={onReset}\n disabled={isAbstract}\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.RESET}`)}\n </Button>\n <Button type=\"primary\" size=\"small\" onClick={onConfirm}>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CONFIRM}`)}\n </Button>\n </div>\n </>\n );\n };\n return (\n <Popover\n content={getContent()}\n placement=\"bottomRight\"\n overlayStyle={{ width: \"325px\" }}\n visible={visible}\n trigger=\"click\"\n >\n <IconButton\n checked={checked}\n onChange={onIconCheckedChange}\n style={{ marginRight: 10 }}\n type=\"filterInstanceSource\"\n label={\"\"}\n data-testid=\"instance-source-icon\"\n />\n </Popover>\n );\n};\n\nexport default FilterInstanceSource;\n"],"mappings":"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"}
@@ -126,6 +126,7 @@ export function InstanceListModal(props) {
126
126
  }
127
127
  }, /*#__PURE__*/React.createElement(InstanceList, {
128
128
  aq: props.aq,
129
+ q: props.q,
129
130
  objectId: props.objectId,
130
131
  objectList: Object.values(props.objectMap),
131
132
  presetConfigs: presetConfigs,
@@ -1 +1 @@
1
- {"version":3,"file":"InstanceListModal.js","names":["React","useState","WarningOutlined","Modal","Button","Tooltip","i18n","InstanceApi_postSearch","K","NS_LIBS_CMDB_INSTANCES","InstanceList","addResourceBundle","InstanceListModal","props","selectedInstanceListTemp","setSelectedInstanceListTemp","handleOk","length","every","i","resp","objectId","query","instanceId","$in","page_size","onSelected","onSelectedV2","list","map","selectedInstance","handleCancel","selectedRowKeys","onCancel","handleSelectionChange","event","selectedItems","selectedKeys","handlePaginationChange","getPaginationData","presetConfigs","fixAliveHosts","_agentStatus","useEffect","filter","Boolean","renderFooter","showBindButton","bindButtonDisabled","disabledTooltip","t","PERMISSION_DENIED","position","left","CREATE_AND_BIND","bindEvent","singleSelect","color","marginRight","ONLY_ONE_INSTANCE_TO_ALLOWED","selectDisabled","showCloseBtn","CLOSE","CANCEL","CONFIRM","title","visible","modalZIndex","maxHeight","overflow","aq","Object","values","objectMap","extraFilterBricks","permission","instanceSourceQuery","searchDisabled","filterInstanceSourceDisabled","advancedSearchDisabled","aliveHostsDisabled","relatedToMeDisabled","moreButtonsDisabled","sortDisabled","showSizeChanger","pageSizeOptions","pageSize","page","defaultQuery","enableSearchByApp","hideSearchConditions","isInstanceFilterForm","ipCopy","rowSelectionType","extraFixedFields","limitInstanceRange","showFilterInstanceSource","filterInstanceSource","onFilterInstanceSourceChange","objectIdQuery","onFilterObjectIdChange"],"sources":["../../../src/instance-list-modal/InstanceListModal.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { WarningOutlined } from \"@ant-design/icons\";\nimport { Modal, Button, Tooltip } from \"antd\";\nimport i18n from \"i18next\";\nimport { CmdbModels, InstanceApi_postSearch } from \"@next-sdk/cmdb-sdk\";\nimport { Query } from \"@next-libs/cmdb-utils\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport {\n InstanceList,\n filterObjectIdQuery,\n} from \"../instance-list/InstanceList\";\nimport { InstanceListPresetConfigs } from \"../instance-list-table/interfaces\";\nimport { addResourceBundle } from \"../i18n\";\nimport {\n ReadPaginationChangeDetail,\n UseBrickConf,\n} from \"@next-core/brick-types\";\naddResourceBundle();\nexport interface InstanceListModalProps {\n objectMap: { [key: string]: Partial<CmdbModels.ModelCmdbObject> };\n objectId: string;\n visible: boolean;\n title: React.ReactNode | string;\n query?: any;\n presetConfigs?: InstanceListPresetConfigs;\n permission?: string[];\n aq?: Query[];\n instanceSourceQuery?: string;\n isInstanceFilterForm?: boolean;\n searchDisabled?: boolean;\n advancedSearchDisabled?: boolean;\n aliveHostsDisabled?: boolean;\n relatedToMeDisabled?: boolean;\n moreButtonsDisabled?: boolean;\n filterInstanceSourceDisabled?: boolean;\n sortDisabled?: boolean;\n selectDisabled?: boolean;\n showCloseBtn?: boolean;\n ipCopy?: boolean;\n singleSelect?: boolean;\n selectedRowKeys?: string[];\n onCancel: () => void;\n onSelected?: (instanceIds: any[]) => void;\n onSelectedV2?: (instanceDataList: any[]) => void;\n modalZIndex?: number;\n pageSize?: number;\n page?: number;\n showSizeChanger?: boolean;\n pageSizeOptions?: string[];\n defaultQuery?: { [fieldId: string]: any }[];\n enableSearchByApp?: boolean;\n hideSearchConditions?: boolean;\n rowSelectionType?: \"checkbox\" | \"radio\";\n getPaginationData?(pagination: ReadPaginationChangeDetail): void;\n extraFixedFields?: string[];\n limitInstanceRange?: boolean;\n extraFilterBricks?: {\n useBrick: UseBrickConf;\n };\n showBindButton?: boolean;\n bindEvent?: () => void;\n bindButtonDisabled?: boolean;\n disabledTooltip?: string;\n // 是否开启实例来源筛选\n showFilterInstanceSource?: boolean;\n filterInstanceSource?: boolean;\n onFilterInstanceSourceChange?(value: boolean): void;\n onFilterObjectIdChange?(value: filterObjectIdQuery): void;\n objectIdQuery?: string;\n}\n\nexport function InstanceListModal(\n props: InstanceListModalProps\n): React.ReactElement {\n const [selectedInstanceListTemp, setSelectedInstanceListTemp] = useState([]);\n\n // istanbul ignore next\n const handleOk = async () => {\n if (\n selectedInstanceListTemp.length &&\n selectedInstanceListTemp.every((i) => typeof i === \"string\")\n ) {\n const resp = await InstanceApi_postSearch(props.objectId, {\n query: {\n instanceId: {\n $in: selectedInstanceListTemp,\n },\n },\n page_size: selectedInstanceListTemp.length,\n });\n props.onSelected?.(selectedInstanceListTemp);\n props.onSelectedV2?.(resp.list);\n return;\n }\n\n props.onSelected?.(\n selectedInstanceListTemp.map(\n (selectedInstance) => selectedInstance.instanceId\n )\n );\n props.onSelectedV2?.(selectedInstanceListTemp);\n };\n // istanbul ignore next\n const handleCancel = () => {\n // reset selected\n setSelectedInstanceListTemp(props.selectedRowKeys ?? []);\n props.onCancel();\n };\n // istanbul ignore next\n const handleSelectionChange = (event: {\n selectedKeys: string[];\n selectedItems: any[];\n }) => {\n if (event.selectedItems.length < event.selectedKeys.length) {\n setSelectedInstanceListTemp(event.selectedKeys);\n } else {\n setSelectedInstanceListTemp(event.selectedItems);\n }\n };\n //istanbul ignore next\n const handlePaginationChange = (event: {\n page: number;\n pageSize: number;\n }) => {\n props.getPaginationData?.(event);\n };\n const presetConfigs = props.presetConfigs ?? {\n query: props.query,\n };\n\n const fixAliveHosts = presetConfigs.query?._agentStatus === \"正常\";\n\n React.useEffect(() => {\n if (props.selectedRowKeys) {\n setSelectedInstanceListTemp(props.selectedRowKeys.filter(Boolean));\n }\n }, [props.selectedRowKeys]);\n\n const renderFooter = (): React.ReactElement => {\n const { showBindButton, bindButtonDisabled, disabledTooltip } = props;\n return (\n <>\n {!!showBindButton &&\n (bindButtonDisabled ? (\n <Tooltip\n title={\n disabledTooltip ||\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.PERMISSION_DENIED}`)\n }\n >\n <Button style={{ position: \"absolute\", left: \"24px\" }} disabled>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CREATE_AND_BIND}`)}\n </Button>\n </Tooltip>\n ) : (\n <Button\n style={{ position: \"absolute\", left: \"24px\" }}\n onClick={props.bindEvent}\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CREATE_AND_BIND}`)}\n </Button>\n ))}\n {props.singleSelect && selectedInstanceListTemp.length > 1 && (\n <span style={{ color: \"#ff0016\", marginRight: \"20px\" }}>\n <WarningOutlined\n style={{ color: \"#ff0016\", marginRight: \"10px\" }}\n />\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ONLY_ONE_INSTANCE_TO_ALLOWED}`\n )}\n </span>\n )}\n {(props.selectDisabled || props.showCloseBtn) && (\n <Button key=\"back\" onClick={props.onCancel}>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLOSE}`)}\n </Button>\n )}\n {!props.selectDisabled && !props.showCloseBtn && (\n <>\n <Button key=\"back\" onClick={handleCancel} type=\"text\">\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CANCEL}`)}\n </Button>\n <Button\n key=\"submit\"\n type=\"primary\"\n onClick={handleOk}\n disabled={\n !selectedInstanceListTemp.length ||\n (props.singleSelect && selectedInstanceListTemp.length > 1)\n }\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CONFIRM}`)}\n </Button>\n </>\n )}\n </>\n );\n };\n return (\n <Modal\n title={props.title}\n visible={props.visible}\n width={900}\n onOk={handleOk}\n onCancel={handleCancel}\n destroyOnClose={true}\n footer={renderFooter()}\n zIndex={props.modalZIndex ?? 1000}\n >\n <div style={{ maxHeight: 720, overflow: \"auto\" }}>\n <InstanceList\n aq={props.aq}\n objectId={props.objectId}\n objectList={Object.values(props.objectMap)}\n presetConfigs={presetConfigs}\n extraFilterBricks={props.extraFilterBricks}\n permission={props.permission}\n aliveHosts={fixAliveHosts}\n fixAliveHosts={fixAliveHosts}\n instanceSourceQuery={props.instanceSourceQuery}\n searchDisabled={props.searchDisabled}\n filterInstanceSourceDisabled={props.filterInstanceSourceDisabled}\n advancedSearchDisabled={props.advancedSearchDisabled}\n aliveHostsDisabled={props.aliveHostsDisabled}\n relatedToMeDisabled={props.relatedToMeDisabled}\n moreButtonsDisabled={props.moreButtonsDisabled}\n sortDisabled={props.sortDisabled}\n selectDisabled={props.selectDisabled}\n selectedRowKeys={props.selectedRowKeys}\n onSelectionChange={handleSelectionChange}\n showSizeChanger={props.showSizeChanger}\n pageSizeOptions={props.pageSizeOptions}\n pageSize={props.pageSize || 10}\n page={props.page}\n defaultQuery={props.defaultQuery}\n enableSearchByApp={props.enableSearchByApp}\n hideSearchConditions={props.hideSearchConditions}\n isInstanceFilterForm={props.isInstanceFilterForm}\n ipCopy={props.ipCopy}\n rowSelectionType={props.rowSelectionType}\n onPaginationChange={handlePaginationChange}\n extraFixedFields={props.extraFixedFields}\n limitInstanceRange={props.limitInstanceRange}\n showFilterInstanceSource={props.showFilterInstanceSource}\n filterInstanceSource={props.filterInstanceSource}\n onFilterInstanceSourceChange={props.onFilterInstanceSourceChange}\n objectIdQuery={props.objectIdQuery}\n onFilterObjectIdChange={props.onFilterObjectIdChange}\n />\n </div>\n </Modal>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"InstanceListModal.js","names":["React","useState","WarningOutlined","Modal","Button","Tooltip","i18n","InstanceApi_postSearch","K","NS_LIBS_CMDB_INSTANCES","InstanceList","addResourceBundle","InstanceListModal","props","selectedInstanceListTemp","setSelectedInstanceListTemp","handleOk","length","every","i","resp","objectId","query","instanceId","$in","page_size","onSelected","onSelectedV2","list","map","selectedInstance","handleCancel","selectedRowKeys","onCancel","handleSelectionChange","event","selectedItems","selectedKeys","handlePaginationChange","getPaginationData","presetConfigs","fixAliveHosts","_agentStatus","useEffect","filter","Boolean","renderFooter","showBindButton","bindButtonDisabled","disabledTooltip","t","PERMISSION_DENIED","position","left","CREATE_AND_BIND","bindEvent","singleSelect","color","marginRight","ONLY_ONE_INSTANCE_TO_ALLOWED","selectDisabled","showCloseBtn","CLOSE","CANCEL","CONFIRM","title","visible","modalZIndex","maxHeight","overflow","aq","q","Object","values","objectMap","extraFilterBricks","permission","instanceSourceQuery","searchDisabled","filterInstanceSourceDisabled","advancedSearchDisabled","aliveHostsDisabled","relatedToMeDisabled","moreButtonsDisabled","sortDisabled","showSizeChanger","pageSizeOptions","pageSize","page","defaultQuery","enableSearchByApp","hideSearchConditions","isInstanceFilterForm","ipCopy","rowSelectionType","extraFixedFields","limitInstanceRange","showFilterInstanceSource","filterInstanceSource","onFilterInstanceSourceChange","objectIdQuery","onFilterObjectIdChange"],"sources":["../../../src/instance-list-modal/InstanceListModal.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { WarningOutlined } from \"@ant-design/icons\";\nimport { Modal, Button, Tooltip } from \"antd\";\nimport i18n from \"i18next\";\nimport { CmdbModels, InstanceApi_postSearch } from \"@next-sdk/cmdb-sdk\";\nimport { Query } from \"@next-libs/cmdb-utils\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport {\n InstanceList,\n filterObjectIdQuery,\n} from \"../instance-list/InstanceList\";\nimport { InstanceListPresetConfigs } from \"../instance-list-table/interfaces\";\nimport { addResourceBundle } from \"../i18n\";\nimport {\n ReadPaginationChangeDetail,\n UseBrickConf,\n} from \"@next-core/brick-types\";\naddResourceBundle();\nexport interface InstanceListModalProps {\n objectMap: { [key: string]: Partial<CmdbModels.ModelCmdbObject> };\n objectId: string;\n visible: boolean;\n title: React.ReactNode | string;\n q?: string;\n query?: any;\n presetConfigs?: InstanceListPresetConfigs;\n permission?: string[];\n aq?: Query[];\n instanceSourceQuery?: string;\n isInstanceFilterForm?: boolean;\n searchDisabled?: boolean;\n advancedSearchDisabled?: boolean;\n aliveHostsDisabled?: boolean;\n relatedToMeDisabled?: boolean;\n moreButtonsDisabled?: boolean;\n filterInstanceSourceDisabled?: boolean;\n sortDisabled?: boolean;\n selectDisabled?: boolean;\n showCloseBtn?: boolean;\n ipCopy?: boolean;\n singleSelect?: boolean;\n selectedRowKeys?: string[];\n onCancel: () => void;\n onSelected?: (instanceIds: any[]) => void;\n onSelectedV2?: (instanceDataList: any[]) => void;\n modalZIndex?: number;\n pageSize?: number;\n page?: number;\n showSizeChanger?: boolean;\n pageSizeOptions?: string[];\n defaultQuery?: { [fieldId: string]: any }[];\n enableSearchByApp?: boolean;\n hideSearchConditions?: boolean;\n rowSelectionType?: \"checkbox\" | \"radio\";\n getPaginationData?(pagination: ReadPaginationChangeDetail): void;\n extraFixedFields?: string[];\n limitInstanceRange?: boolean;\n extraFilterBricks?: {\n useBrick: UseBrickConf;\n };\n showBindButton?: boolean;\n bindEvent?: () => void;\n bindButtonDisabled?: boolean;\n disabledTooltip?: string;\n // 是否开启实例来源筛选\n showFilterInstanceSource?: boolean;\n filterInstanceSource?: boolean;\n onFilterInstanceSourceChange?(value: boolean): void;\n onFilterObjectIdChange?(value: filterObjectIdQuery): void;\n objectIdQuery?: string;\n}\n\nexport function InstanceListModal(\n props: InstanceListModalProps\n): React.ReactElement {\n const [selectedInstanceListTemp, setSelectedInstanceListTemp] = useState([]);\n\n // istanbul ignore next\n const handleOk = async () => {\n if (\n selectedInstanceListTemp.length &&\n selectedInstanceListTemp.every((i) => typeof i === \"string\")\n ) {\n const resp = await InstanceApi_postSearch(props.objectId, {\n query: {\n instanceId: {\n $in: selectedInstanceListTemp,\n },\n },\n page_size: selectedInstanceListTemp.length,\n });\n props.onSelected?.(selectedInstanceListTemp);\n props.onSelectedV2?.(resp.list);\n return;\n }\n\n props.onSelected?.(\n selectedInstanceListTemp.map(\n (selectedInstance) => selectedInstance.instanceId\n )\n );\n props.onSelectedV2?.(selectedInstanceListTemp);\n };\n // istanbul ignore next\n const handleCancel = () => {\n // reset selected\n setSelectedInstanceListTemp(props.selectedRowKeys ?? []);\n props.onCancel();\n };\n // istanbul ignore next\n const handleSelectionChange = (event: {\n selectedKeys: string[];\n selectedItems: any[];\n }) => {\n if (event.selectedItems.length < event.selectedKeys.length) {\n setSelectedInstanceListTemp(event.selectedKeys);\n } else {\n setSelectedInstanceListTemp(event.selectedItems);\n }\n };\n //istanbul ignore next\n const handlePaginationChange = (event: {\n page: number;\n pageSize: number;\n }) => {\n props.getPaginationData?.(event);\n };\n const presetConfigs = props.presetConfigs ?? {\n query: props.query,\n };\n\n const fixAliveHosts = presetConfigs.query?._agentStatus === \"正常\";\n\n React.useEffect(() => {\n if (props.selectedRowKeys) {\n setSelectedInstanceListTemp(props.selectedRowKeys.filter(Boolean));\n }\n }, [props.selectedRowKeys]);\n\n const renderFooter = (): React.ReactElement => {\n const { showBindButton, bindButtonDisabled, disabledTooltip } = props;\n return (\n <>\n {!!showBindButton &&\n (bindButtonDisabled ? (\n <Tooltip\n title={\n disabledTooltip ||\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.PERMISSION_DENIED}`)\n }\n >\n <Button style={{ position: \"absolute\", left: \"24px\" }} disabled>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CREATE_AND_BIND}`)}\n </Button>\n </Tooltip>\n ) : (\n <Button\n style={{ position: \"absolute\", left: \"24px\" }}\n onClick={props.bindEvent}\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CREATE_AND_BIND}`)}\n </Button>\n ))}\n {props.singleSelect && selectedInstanceListTemp.length > 1 && (\n <span style={{ color: \"#ff0016\", marginRight: \"20px\" }}>\n <WarningOutlined\n style={{ color: \"#ff0016\", marginRight: \"10px\" }}\n />\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ONLY_ONE_INSTANCE_TO_ALLOWED}`\n )}\n </span>\n )}\n {(props.selectDisabled || props.showCloseBtn) && (\n <Button key=\"back\" onClick={props.onCancel}>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLOSE}`)}\n </Button>\n )}\n {!props.selectDisabled && !props.showCloseBtn && (\n <>\n <Button key=\"back\" onClick={handleCancel} type=\"text\">\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CANCEL}`)}\n </Button>\n <Button\n key=\"submit\"\n type=\"primary\"\n onClick={handleOk}\n disabled={\n !selectedInstanceListTemp.length ||\n (props.singleSelect && selectedInstanceListTemp.length > 1)\n }\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CONFIRM}`)}\n </Button>\n </>\n )}\n </>\n );\n };\n return (\n <Modal\n title={props.title}\n visible={props.visible}\n width={900}\n onOk={handleOk}\n onCancel={handleCancel}\n destroyOnClose={true}\n footer={renderFooter()}\n zIndex={props.modalZIndex ?? 1000}\n >\n <div style={{ maxHeight: 720, overflow: \"auto\" }}>\n <InstanceList\n aq={props.aq}\n q={props.q}\n objectId={props.objectId}\n objectList={Object.values(props.objectMap)}\n presetConfigs={presetConfigs}\n extraFilterBricks={props.extraFilterBricks}\n permission={props.permission}\n aliveHosts={fixAliveHosts}\n fixAliveHosts={fixAliveHosts}\n instanceSourceQuery={props.instanceSourceQuery}\n searchDisabled={props.searchDisabled}\n filterInstanceSourceDisabled={props.filterInstanceSourceDisabled}\n advancedSearchDisabled={props.advancedSearchDisabled}\n aliveHostsDisabled={props.aliveHostsDisabled}\n relatedToMeDisabled={props.relatedToMeDisabled}\n moreButtonsDisabled={props.moreButtonsDisabled}\n sortDisabled={props.sortDisabled}\n selectDisabled={props.selectDisabled}\n selectedRowKeys={props.selectedRowKeys}\n onSelectionChange={handleSelectionChange}\n showSizeChanger={props.showSizeChanger}\n pageSizeOptions={props.pageSizeOptions}\n pageSize={props.pageSize || 10}\n page={props.page}\n defaultQuery={props.defaultQuery}\n enableSearchByApp={props.enableSearchByApp}\n hideSearchConditions={props.hideSearchConditions}\n isInstanceFilterForm={props.isInstanceFilterForm}\n ipCopy={props.ipCopy}\n rowSelectionType={props.rowSelectionType}\n onPaginationChange={handlePaginationChange}\n extraFixedFields={props.extraFixedFields}\n limitInstanceRange={props.limitInstanceRange}\n showFilterInstanceSource={props.showFilterInstanceSource}\n filterInstanceSource={props.filterInstanceSource}\n onFilterInstanceSourceChange={props.onFilterInstanceSourceChange}\n objectIdQuery={props.objectIdQuery}\n onFilterObjectIdChange={props.onFilterObjectIdChange}\n />\n </div>\n </Modal>\n );\n}\n"],"mappings":"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"}
@@ -326,7 +326,8 @@ export class ModelAttributeFormControl extends Component {
326
326
  onChange: e => this.onChange(e),
327
327
  disabled: _readOnly4,
328
328
  className: this.props.className,
329
- style: this.props.style
329
+ style: this.props.style,
330
+ showSearch: true
330
331
  }, restProps.items && restProps.items.map(_ref => {
331
332
  var {
332
333
  id,
@@ -1 +1 @@
1
- {"version":3,"file":"ModelAttributeFormControl.js","names":["React","Component","i18n","NS_LIBS_CMDB_INSTANCES","K","DatePicker","Input","InputNumber","Radio","Select","AddStruct","AttributeFormControlUrl","computeDateFormat","isClusterType","clusterMap","CodeEditor","some","ModelAttributeValueType","ModelAttributeValueModeType","FormControlTypeEnum","boolOptions","id","text","ModelAttributeFormControl","componentDidUpdate","prevProps","prevState","snapshot","props","value","type","attribute","name","setState","formControl","computeFormControl","objectId","constructor","formControlType","computeFormControlType","isSupportMultiStringValue","items","computeFormControlItems","BOOLEAN","result","label","required","readOnly","isCreate","readonly","unique","pattern","computePattern","STRUCT","computePlaceholder","event","target","onChange","date","dateString","undefined","err","error","jsonValidateCollection","showError","state","errorMessage","restProps","jsonSchema","regex","JSON","parse","TEXT","placeholder","e","className","style","URL","NUMBER","CODE_EDITOR","validateJson","display","color","t","NOT_MEET_JSON","TEXTAREA","MARKDOWN","LEGACY_STRUCT","formData","RADIO","unselected","TEMPORARILY_NOT_CHOOSE","map","item","String","TAGS","width","DATE","DATETIME","dateConfig","showTime","formater","format","handleDateChange","SELECT","newValue","multiSelect","is","message","_PLAIN_TEXT","ENUM","ENUMS","RegExp","enumValue","STRING","mode","MULTIPLE_LINES","IP","length","Error","ENUM_ERROR_TIP","INTEGER","FLOAT","ARR","struct_define","STRUCT_ERROR_TIP","STRUCT_LIST","TYPE_NO_SUPPORT_EDIT","IP_PLACEHOLDER","placeholders","push","CLICK_TO_SELECT","ENTER_MULTIPLE_STRING_WITH_ENTER_KEY_AS_THE_SEPARATOR","NUMBER_INPUT_PLACEHOLDER","ADVANCE_SEARCH_SINGLE_INPUT_PLACEHOLDER","MATCHING_REGULAR","regexp","UNIQUE_NO_REPEAT","join","render","FormControlTypeMap"],"sources":["../../../src/model-attribute-form-control/ModelAttributeFormControl.tsx"],"sourcesContent":["import React, { Component, ReactNode } from \"react\";\nimport { CmdbModels } from \"@next-sdk/cmdb-sdk\";\nimport i18n from \"i18next\";\nimport { NS_LIBS_CMDB_INSTANCES, K } from \"../i18n/constants\";\nimport { DatePicker, Input, InputNumber, Radio, Select } from \"antd\";\nimport { AddStruct } from \"../struct-components\";\nimport moment, { Moment } from \"moment\";\nimport { AttributeFormControlUrl } from \"../attribute-form-control-url/AttributeFormControlUrl\";\nimport { computeDateFormat, isClusterType } 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 isClusterType(this.props.objectId, this.props.attribute.id)\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 isClusterType(objectId, attribute.id)\n ),\n };\n } catch (error) {\n this.state = {\n errorMessage: error.message,\n formControl: {\n type: FormControlTypeEnum._PLAIN_TEXT,\n name: attribute.name,\n id: \"\",\n },\n };\n }\n }\n\n static computePattern(\n attribute: Partial<CmdbModels.ModelObjectAttr>\n ): RegExp | undefined {\n try {\n if (\n attribute.value.type !== ModelAttributeValueType.ENUM &&\n attribute.value.type !== ModelAttributeValueType.ENUMS &&\n attribute.value.regex !== undefined &&\n attribute.value.regex !== null\n ) {\n // todo(jhuang): use `u` flag for compliance until https://github.com/angular/angular/pull/20819 is resolved\n return new RegExp(attribute.value.regex as string, \"u\");\n }\n return undefined;\n } catch (error) {\n return undefined;\n }\n }\n\n computeFormControlItems(\n attribute: Partial<CmdbModels.ModelObjectAttr>,\n isClusterType?: boolean\n ): FormControlSelectItem[] {\n if (\n attribute.value.type === ModelAttributeValueType.ENUM ||\n attribute.value.type === ModelAttributeValueType.ENUMS\n ) {\n // The backend guys are notorious to use `regex` as enum candidates. 😢\n return (attribute.value.regex as string[])?.map((enumValue) => ({\n id: enumValue,\n text: isClusterType ? clusterMap[enumValue] : enumValue,\n }));\n }\n }\n\n static computeFormControlType(\n attribute: Partial<CmdbModels.ModelObjectAttr>,\n type?: string,\n isSupportMultiStringValue?: boolean\n ): FormControlTypeEnum {\n switch (attribute.value.type) {\n case ModelAttributeValueType.STRING: {\n if (\n attribute.value.mode === ModelAttributeValueModeType.MULTIPLE_LINES\n ) {\n return FormControlTypeEnum.TEXTAREA;\n }\n if (attribute.value.mode === ModelAttributeValueModeType.MARKDOWN) {\n return FormControlTypeEnum.MARKDOWN;\n }\n if (attribute.value.mode === ModelAttributeValueModeType.URL) {\n return FormControlTypeEnum.URL;\n }\n }\n /* falls through */\n case ModelAttributeValueType.IP:\n if (isSupportMultiStringValue) {\n return FormControlTypeEnum.TAGS;\n }\n return FormControlTypeEnum.TEXT;\n case ModelAttributeValueType.JSON:\n // return FormControlTypeEnum.TEXTAREA;\n return FormControlTypeEnum.CODE_EDITOR;\n case ModelAttributeValueType.ENUM:\n if (\n !attribute.value.regex ||\n (attribute.value.regex as string[]).length === 0\n ) {\n throw new Error(\n // \"请在资源模型管理中添加枚举值, 属性: \" + attribute.name\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.ENUM_ERROR_TIP}`, {\n attribute: attribute.name,\n })\n );\n }\n if (\n attribute.value.regex &&\n (attribute.value.regex as string[]).length <= 5 &&\n (!type || type === FormControlTypeEnum.RADIO)\n ) {\n return FormControlTypeEnum.RADIO;\n }\n return FormControlTypeEnum.SELECT;\n case ModelAttributeValueType.INTEGER:\n case ModelAttributeValueType.FLOAT:\n return FormControlTypeEnum.NUMBER;\n case ModelAttributeValueType.DATE:\n return FormControlTypeEnum.DATE;\n case ModelAttributeValueType.DATETIME:\n return FormControlTypeEnum.DATETIME;\n case ModelAttributeValueType.ARR:\n return FormControlTypeEnum.TAGS;\n case ModelAttributeValueType.STRUCT:\n if (attribute.value.struct_define.length === 0) {\n throw new Error(\n // \"请在资源模型中添加结构体属性, 属性: \" + attribute.name\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.STRUCT_ERROR_TIP}`, {\n attribute: attribute.name,\n })\n );\n }\n return FormControlTypeEnum.LEGACY_STRUCT;\n case ModelAttributeValueType.STRUCT_LIST:\n if (attribute.value.struct_define.length === 0) {\n throw new Error(\n // \"请在资源模型中添加结构体属性, 属性: \" + attribute.name\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.STRUCT_ERROR_TIP}`, {\n attribute: attribute.name,\n })\n );\n }\n return FormControlTypeEnum.STRUCT;\n case ModelAttributeValueType.BOOLEAN:\n return FormControlTypeEnum.SELECT;\n case ModelAttributeValueType.ENUMS:\n return FormControlTypeEnum.SELECT;\n default:\n throw new Error(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.TYPE_NO_SUPPORT_EDIT}`, {\n type: attribute.value.type,\n })\n );\n }\n }\n\n computeFormControl = (\n attribute: Partial<CmdbModels.ModelObjectAttr>,\n id?: string,\n type?: string,\n isClusterType?: boolean\n ): FormControl => {\n const formControlType = ModelAttributeFormControl.computeFormControlType(\n attribute,\n type,\n this.props.isSupportMultiStringValue\n );\n let items = this.computeFormControlItems(attribute, isClusterType);\n\n if (attribute.value.type === ModelAttributeValueType.BOOLEAN) {\n items = boolOptions;\n }\n\n const result: FormControl = {\n type: formControlType,\n items,\n id: id || attribute.id,\n name: attribute.id,\n label: attribute.name,\n required: attribute.required === \"true\",\n readOnly: !this.props.isCreate && attribute.readonly === \"true\",\n unique: attribute.unique === \"true\",\n pattern: ModelAttributeFormControl.computePattern(attribute),\n };\n\n if (result.type === FormControlTypeEnum.STRUCT) {\n result[\"maxlength\"] = 1;\n }\n result[\"placeholder\"] =\n ModelAttributeFormControl.computePlaceholder(result);\n return result;\n };\n\n static computePlaceholder(formControl: FormControl): string {\n if (formControl.id === \"ip\" && formControl.name === \"ip\") {\n return i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.IP_PLACEHOLDER}`);\n }\n\n const placeholders = [];\n switch (formControl.type) {\n case FormControlTypeEnum.SELECT:\n placeholders.push(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLICK_TO_SELECT}`)\n );\n break;\n case FormControlTypeEnum.DATETIME:\n case FormControlTypeEnum.DATE:\n placeholders.push(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLICK_TO_SELECT}`)\n );\n break;\n case FormControlTypeEnum.TAGS:\n placeholders.push(\n i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ENTER_MULTIPLE_STRING_WITH_ENTER_KEY_AS_THE_SEPARATOR}`\n )\n );\n break;\n case FormControlTypeEnum.NUMBER:\n placeholders.push(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.NUMBER_INPUT_PLACEHOLDER}`)\n );\n break;\n default:\n placeholders.push(\n i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ADVANCE_SEARCH_SINGLE_INPUT_PLACEHOLDER}`\n )\n );\n }\n\n if (formControl.pattern !== undefined) {\n // placeholders.push(`匹配正则 ${formControl.pattern}`);\n placeholders.push(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.MATCHING_REGULAR}`, {\n regexp: formControl.pattern,\n })\n );\n }\n if (formControl.unique) {\n // placeholders.push(`${formControl.label}唯一不能重复`);\n placeholders.push(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.UNIQUE_NO_REPEAT}`, {\n label: formControl.label,\n })\n );\n }\n return placeholders.join(\",\");\n }\n\n /*computeFormControlAndCatchError = () => {\n const { attribute, objectId } = this.props;\n try {\n this.setState({\n formControl: this.computeFormControl(attribute, objectId)\n });\n } catch (error) {\n this.setState({\n errorMessage: error.message,\n formControl: {\n type: FormControlTypeEnum._PLAIN_TEXT,\n name: attribute.name,\n id: \"\"\n }\n });\n }\n };*/\n\n onChange = (event: any) => {\n let value;\n if (event && event.target) {\n value = event.target.value;\n } else {\n value = event;\n }\n\n const { onChange } = this.props;\n this.setState({ value });\n onChange && onChange(value);\n };\n\n handleDateChange = (date: Moment, dateString: string) => {\n this.onChange(dateString || undefined);\n };\n validateJson = (err: any) => {\n const error = some(err, [\"type\", \"error\"]);\n this.props.jsonValidateCollection?.(error);\n this.setState({ showError: error });\n };\n\n FormControlTypeMap = (): ReactNode => {\n const { attribute } = this.props;\n const {\n value,\n formControl: { type, ...restProps },\n errorMessage,\n } = this.state;\n // const unsupportText = `\"${type}\"类型暂时不支持编辑`;\n // const unsupportText = i18n.t(\n // `${NS_LIBS_CMDB_INSTANCES}:${K.TYPE_NO_SUPPORT_EDIT}`,\n // { type }\n // );\n let jsonSchema: any;\n if (attribute?.value?.type === \"json\" && attribute?.value?.regex) {\n jsonSchema = JSON.parse(attribute?.value?.regex);\n }\n\n switch (type) {\n case FormControlTypeEnum.TEXT: {\n const { pattern, placeholder, ...props } = restProps;\n return (\n <Input\n value={value}\n type=\"text\"\n {...props}\n placeholder={placeholder}\n onChange={(e) => this.onChange(e)}\n className={this.props.className}\n style={this.props.style}\n />\n );\n }\n\n case FormControlTypeEnum.URL: {\n const { readOnly, required, placeholder } = restProps;\n\n return (\n <AttributeFormControlUrl\n readOnly={readOnly}\n required={required}\n placeholder={placeholder}\n value={value}\n onChange={(e) => this.onChange(e)}\n />\n );\n }\n\n case FormControlTypeEnum.NUMBER: {\n const { pattern, ...props } = restProps;\n return (\n <InputNumber\n value={value}\n {...props}\n onChange={(e: any) => this.onChange(e)}\n className={this.props.className}\n style={this.props.style}\n />\n );\n }\n case FormControlTypeEnum.CODE_EDITOR:\n return (\n <>\n <CodeEditor\n value={value}\n mode={\"json\"}\n maxLines={\"Infinity\"}\n highlightActiveLine={true}\n onChange={(e: any) => this.onChange(e)}\n minLines={3}\n showLineNumbers={true}\n showPrintMargin={false}\n validateJsonSchemaMode={\"error\"}\n {...(jsonSchema ? { jsonSchema: jsonSchema } : {})}\n theme=\"tomorrow\"\n onValidate={(err: any) => this.validateJson(err)}\n />\n <label\n style={{\n display: this.state.showError ? \"block\" : \"none\",\n color: \"#fc5043\",\n }}\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.NOT_MEET_JSON}`)}\n </label>\n </>\n );\n case FormControlTypeEnum.TEXTAREA:\n case FormControlTypeEnum.MARKDOWN: {\n return (\n <Input.TextArea\n value={value}\n {...restProps}\n onChange={(e: any) => this.onChange(e)}\n className={this.props.className}\n style={this.props.style}\n rows={5}\n />\n );\n }\n\n case FormControlTypeEnum.STRUCT:\n case FormControlTypeEnum.LEGACY_STRUCT:\n return (\n <AddStruct\n isLegacy={type === FormControlTypeEnum.LEGACY_STRUCT}\n attribute={attribute}\n structData={value}\n handleStoreFunction={(formData: any) => this.onChange(formData)}\n className={this.props.className}\n style={this.props.style}\n isCreate={this.props.isCreate}\n />\n );\n\n case FormControlTypeEnum.RADIO: {\n let { items, required, readOnly } = restProps;\n\n // NODE: 对非必填单选为空的特殊处理 BY @robertman\n const unselected = {\n id: null as string,\n // text: \"暂不选择\",\n text: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.TEMPORARILY_NOT_CHOOSE}`),\n };\n\n if (!required) {\n items = [...items, unselected];\n }\n\n return (\n <Radio.Group\n onChange={(e: any) => this.onChange(e)}\n value={value !== undefined ? value : unselected.id}\n className={this.props.className}\n style={this.props.style}\n disabled={readOnly}\n >\n {items.map((item) => (\n <Radio value={item.id} key={String(item.id)}>\n {item.text}\n </Radio>\n ))}\n </Radio.Group>\n );\n }\n\n case FormControlTypeEnum.TAGS: {\n const { placeholder, readOnly } = restProps;\n return (\n <Select\n allowClear={true}\n mode=\"tags\"\n style={{ ...this.props.style, width: \"100%\" }}\n disabled={readOnly}\n placeholder={placeholder}\n value={value || []}\n onChange={(e: any) => this.onChange(e)}\n className={this.props.className}\n />\n );\n }\n\n case FormControlTypeEnum.DATE:\n case FormControlTypeEnum.DATETIME: {\n let dateConfig = {};\n if (type === FormControlTypeEnum.DATETIME) {\n dateConfig = {\n showTime: true,\n };\n }\n const { readOnly, placeholder } = restProps;\n const formater = computeDateFormat(type, value);\n return (\n <DatePicker\n value={formater.value}\n placeholder={placeholder}\n disabled={readOnly}\n format={formater.format}\n {...dateConfig}\n onChange={(date, dateString) =>\n this.handleDateChange(date, dateString)\n }\n className={this.props.className}\n style={this.props.style}\n />\n );\n }\n\n case FormControlTypeEnum.SELECT: {\n const { readOnly, placeholder } = restProps;\n const newValue =\n typeof value === \"boolean\" ? value : value ? value : [];\n return (\n <Select\n placeholder={placeholder}\n mode={this.props.multiSelect ? \"multiple\" : undefined}\n value={newValue}\n onChange={(e: any) => this.onChange(e)}\n disabled={readOnly}\n className={this.props.className}\n style={this.props.style}\n >\n {restProps.items &&\n restProps.items.map(({ id, text }) => (\n <Select.Option value={id} key={id}>\n {text}\n </Select.Option>\n ))}\n </Select>\n );\n }\n\n default:\n return (\n // <Input\n // value={errorMessage}\n // readOnly\n // disabled\n // className={this.props.className}\n // style={this.props.style}\n // />\n <div\n style={{\n color: \"var(--theme-red-color)\",\n ...this.props.style,\n }}\n >\n {errorMessage}\n </div>\n );\n }\n };\n\n render(): ReactNode {\n return <>{this.FormControlTypeMap()}</>;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ModelAttributeFormControl.js","names":["React","Component","i18n","NS_LIBS_CMDB_INSTANCES","K","DatePicker","Input","InputNumber","Radio","Select","AddStruct","AttributeFormControlUrl","computeDateFormat","isClusterType","clusterMap","CodeEditor","some","ModelAttributeValueType","ModelAttributeValueModeType","FormControlTypeEnum","boolOptions","id","text","ModelAttributeFormControl","componentDidUpdate","prevProps","prevState","snapshot","props","value","type","attribute","name","setState","formControl","computeFormControl","objectId","constructor","formControlType","computeFormControlType","isSupportMultiStringValue","items","computeFormControlItems","BOOLEAN","result","label","required","readOnly","isCreate","readonly","unique","pattern","computePattern","STRUCT","computePlaceholder","event","target","onChange","date","dateString","undefined","err","error","jsonValidateCollection","showError","state","errorMessage","restProps","jsonSchema","regex","JSON","parse","TEXT","placeholder","e","className","style","URL","NUMBER","CODE_EDITOR","validateJson","display","color","t","NOT_MEET_JSON","TEXTAREA","MARKDOWN","LEGACY_STRUCT","formData","RADIO","unselected","TEMPORARILY_NOT_CHOOSE","map","item","String","TAGS","width","DATE","DATETIME","dateConfig","showTime","formater","format","handleDateChange","SELECT","newValue","multiSelect","is","message","_PLAIN_TEXT","ENUM","ENUMS","RegExp","enumValue","STRING","mode","MULTIPLE_LINES","IP","length","Error","ENUM_ERROR_TIP","INTEGER","FLOAT","ARR","struct_define","STRUCT_ERROR_TIP","STRUCT_LIST","TYPE_NO_SUPPORT_EDIT","IP_PLACEHOLDER","placeholders","push","CLICK_TO_SELECT","ENTER_MULTIPLE_STRING_WITH_ENTER_KEY_AS_THE_SEPARATOR","NUMBER_INPUT_PLACEHOLDER","ADVANCE_SEARCH_SINGLE_INPUT_PLACEHOLDER","MATCHING_REGULAR","regexp","UNIQUE_NO_REPEAT","join","render","FormControlTypeMap"],"sources":["../../../src/model-attribute-form-control/ModelAttributeFormControl.tsx"],"sourcesContent":["import React, { Component, ReactNode } from \"react\";\nimport { CmdbModels } from \"@next-sdk/cmdb-sdk\";\nimport i18n from \"i18next\";\nimport { NS_LIBS_CMDB_INSTANCES, K } from \"../i18n/constants\";\nimport { DatePicker, Input, InputNumber, Radio, Select } from \"antd\";\nimport { AddStruct } from \"../struct-components\";\nimport moment, { Moment } from \"moment\";\nimport { AttributeFormControlUrl } from \"../attribute-form-control-url/AttributeFormControlUrl\";\nimport { computeDateFormat, isClusterType } 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 isClusterType(this.props.objectId, this.props.attribute.id)\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 isClusterType(objectId, attribute.id)\n ),\n };\n } catch (error) {\n this.state = {\n errorMessage: error.message,\n formControl: {\n type: FormControlTypeEnum._PLAIN_TEXT,\n name: attribute.name,\n id: \"\",\n },\n };\n }\n }\n\n static computePattern(\n attribute: Partial<CmdbModels.ModelObjectAttr>\n ): RegExp | undefined {\n try {\n if (\n attribute.value.type !== ModelAttributeValueType.ENUM &&\n attribute.value.type !== ModelAttributeValueType.ENUMS &&\n attribute.value.regex !== undefined &&\n attribute.value.regex !== null\n ) {\n // todo(jhuang): use `u` flag for compliance until https://github.com/angular/angular/pull/20819 is resolved\n return new RegExp(attribute.value.regex as string, \"u\");\n }\n return undefined;\n } catch (error) {\n return undefined;\n }\n }\n\n computeFormControlItems(\n attribute: Partial<CmdbModels.ModelObjectAttr>,\n isClusterType?: boolean\n ): FormControlSelectItem[] {\n if (\n attribute.value.type === ModelAttributeValueType.ENUM ||\n attribute.value.type === ModelAttributeValueType.ENUMS\n ) {\n // The backend guys are notorious to use `regex` as enum candidates. 😢\n return (attribute.value.regex as string[])?.map((enumValue) => ({\n id: enumValue,\n text: isClusterType ? clusterMap[enumValue] : enumValue,\n }));\n }\n }\n\n static computeFormControlType(\n attribute: Partial<CmdbModels.ModelObjectAttr>,\n type?: string,\n isSupportMultiStringValue?: boolean\n ): FormControlTypeEnum {\n switch (attribute.value.type) {\n case ModelAttributeValueType.STRING: {\n if (\n attribute.value.mode === ModelAttributeValueModeType.MULTIPLE_LINES\n ) {\n return FormControlTypeEnum.TEXTAREA;\n }\n if (attribute.value.mode === ModelAttributeValueModeType.MARKDOWN) {\n return FormControlTypeEnum.MARKDOWN;\n }\n if (attribute.value.mode === ModelAttributeValueModeType.URL) {\n return FormControlTypeEnum.URL;\n }\n }\n /* falls through */\n case ModelAttributeValueType.IP:\n if (isSupportMultiStringValue) {\n return FormControlTypeEnum.TAGS;\n }\n return FormControlTypeEnum.TEXT;\n case ModelAttributeValueType.JSON:\n // return FormControlTypeEnum.TEXTAREA;\n return FormControlTypeEnum.CODE_EDITOR;\n case ModelAttributeValueType.ENUM:\n if (\n !attribute.value.regex ||\n (attribute.value.regex as string[]).length === 0\n ) {\n throw new Error(\n // \"请在资源模型管理中添加枚举值, 属性: \" + attribute.name\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.ENUM_ERROR_TIP}`, {\n attribute: attribute.name,\n })\n );\n }\n if (\n attribute.value.regex &&\n (attribute.value.regex as string[]).length <= 5 &&\n (!type || type === FormControlTypeEnum.RADIO)\n ) {\n return FormControlTypeEnum.RADIO;\n }\n return FormControlTypeEnum.SELECT;\n case ModelAttributeValueType.INTEGER:\n case ModelAttributeValueType.FLOAT:\n return FormControlTypeEnum.NUMBER;\n case ModelAttributeValueType.DATE:\n return FormControlTypeEnum.DATE;\n case ModelAttributeValueType.DATETIME:\n return FormControlTypeEnum.DATETIME;\n case ModelAttributeValueType.ARR:\n return FormControlTypeEnum.TAGS;\n case ModelAttributeValueType.STRUCT:\n if (attribute.value.struct_define.length === 0) {\n throw new Error(\n // \"请在资源模型中添加结构体属性, 属性: \" + attribute.name\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.STRUCT_ERROR_TIP}`, {\n attribute: attribute.name,\n })\n );\n }\n return FormControlTypeEnum.LEGACY_STRUCT;\n case ModelAttributeValueType.STRUCT_LIST:\n if (attribute.value.struct_define.length === 0) {\n throw new Error(\n // \"请在资源模型中添加结构体属性, 属性: \" + attribute.name\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.STRUCT_ERROR_TIP}`, {\n attribute: attribute.name,\n })\n );\n }\n return FormControlTypeEnum.STRUCT;\n case ModelAttributeValueType.BOOLEAN:\n return FormControlTypeEnum.SELECT;\n case ModelAttributeValueType.ENUMS:\n return FormControlTypeEnum.SELECT;\n default:\n throw new Error(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.TYPE_NO_SUPPORT_EDIT}`, {\n type: attribute.value.type,\n })\n );\n }\n }\n\n computeFormControl = (\n attribute: Partial<CmdbModels.ModelObjectAttr>,\n id?: string,\n type?: string,\n isClusterType?: boolean\n ): FormControl => {\n const formControlType = ModelAttributeFormControl.computeFormControlType(\n attribute,\n type,\n this.props.isSupportMultiStringValue\n );\n let items = this.computeFormControlItems(attribute, isClusterType);\n\n if (attribute.value.type === ModelAttributeValueType.BOOLEAN) {\n items = boolOptions;\n }\n\n const result: FormControl = {\n type: formControlType,\n items,\n id: id || attribute.id,\n name: attribute.id,\n label: attribute.name,\n required: attribute.required === \"true\",\n readOnly: !this.props.isCreate && attribute.readonly === \"true\",\n unique: attribute.unique === \"true\",\n pattern: ModelAttributeFormControl.computePattern(attribute),\n };\n\n if (result.type === FormControlTypeEnum.STRUCT) {\n result[\"maxlength\"] = 1;\n }\n result[\"placeholder\"] =\n ModelAttributeFormControl.computePlaceholder(result);\n return result;\n };\n\n static computePlaceholder(formControl: FormControl): string {\n if (formControl.id === \"ip\" && formControl.name === \"ip\") {\n return i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.IP_PLACEHOLDER}`);\n }\n\n const placeholders = [];\n switch (formControl.type) {\n case FormControlTypeEnum.SELECT:\n placeholders.push(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLICK_TO_SELECT}`)\n );\n break;\n case FormControlTypeEnum.DATETIME:\n case FormControlTypeEnum.DATE:\n placeholders.push(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLICK_TO_SELECT}`)\n );\n break;\n case FormControlTypeEnum.TAGS:\n placeholders.push(\n i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ENTER_MULTIPLE_STRING_WITH_ENTER_KEY_AS_THE_SEPARATOR}`\n )\n );\n break;\n case FormControlTypeEnum.NUMBER:\n placeholders.push(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.NUMBER_INPUT_PLACEHOLDER}`)\n );\n break;\n default:\n placeholders.push(\n i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ADVANCE_SEARCH_SINGLE_INPUT_PLACEHOLDER}`\n )\n );\n }\n\n if (formControl.pattern !== undefined) {\n // placeholders.push(`匹配正则 ${formControl.pattern}`);\n placeholders.push(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.MATCHING_REGULAR}`, {\n regexp: formControl.pattern,\n })\n );\n }\n if (formControl.unique) {\n // placeholders.push(`${formControl.label}唯一不能重复`);\n placeholders.push(\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.UNIQUE_NO_REPEAT}`, {\n label: formControl.label,\n })\n );\n }\n return placeholders.join(\",\");\n }\n\n /*computeFormControlAndCatchError = () => {\n const { attribute, objectId } = this.props;\n try {\n this.setState({\n formControl: this.computeFormControl(attribute, objectId)\n });\n } catch (error) {\n this.setState({\n errorMessage: error.message,\n formControl: {\n type: FormControlTypeEnum._PLAIN_TEXT,\n name: attribute.name,\n id: \"\"\n }\n });\n }\n };*/\n\n onChange = (event: any) => {\n let value;\n if (event && event.target) {\n value = event.target.value;\n } else {\n value = event;\n }\n\n const { onChange } = this.props;\n this.setState({ value });\n onChange && onChange(value);\n };\n\n handleDateChange = (date: Moment, dateString: string) => {\n this.onChange(dateString || undefined);\n };\n validateJson = (err: any) => {\n const error = some(err, [\"type\", \"error\"]);\n this.props.jsonValidateCollection?.(error);\n this.setState({ showError: error });\n };\n\n FormControlTypeMap = (): ReactNode => {\n const { attribute } = this.props;\n const {\n value,\n formControl: { type, ...restProps },\n errorMessage,\n } = this.state;\n // const unsupportText = `\"${type}\"类型暂时不支持编辑`;\n // const unsupportText = i18n.t(\n // `${NS_LIBS_CMDB_INSTANCES}:${K.TYPE_NO_SUPPORT_EDIT}`,\n // { type }\n // );\n let jsonSchema: any;\n if (attribute?.value?.type === \"json\" && attribute?.value?.regex) {\n jsonSchema = JSON.parse(attribute?.value?.regex);\n }\n\n switch (type) {\n case FormControlTypeEnum.TEXT: {\n const { pattern, placeholder, ...props } = restProps;\n return (\n <Input\n value={value}\n type=\"text\"\n {...props}\n placeholder={placeholder}\n onChange={(e) => this.onChange(e)}\n className={this.props.className}\n style={this.props.style}\n />\n );\n }\n\n case FormControlTypeEnum.URL: {\n const { readOnly, required, placeholder } = restProps;\n\n return (\n <AttributeFormControlUrl\n readOnly={readOnly}\n required={required}\n placeholder={placeholder}\n value={value}\n onChange={(e) => this.onChange(e)}\n />\n );\n }\n\n case FormControlTypeEnum.NUMBER: {\n const { pattern, ...props } = restProps;\n return (\n <InputNumber\n value={value}\n {...props}\n onChange={(e: any) => this.onChange(e)}\n className={this.props.className}\n style={this.props.style}\n />\n );\n }\n case FormControlTypeEnum.CODE_EDITOR:\n return (\n <>\n <CodeEditor\n value={value}\n mode={\"json\"}\n maxLines={\"Infinity\"}\n highlightActiveLine={true}\n onChange={(e: any) => this.onChange(e)}\n minLines={3}\n showLineNumbers={true}\n showPrintMargin={false}\n validateJsonSchemaMode={\"error\"}\n {...(jsonSchema ? { jsonSchema: jsonSchema } : {})}\n theme=\"tomorrow\"\n onValidate={(err: any) => this.validateJson(err)}\n />\n <label\n style={{\n display: this.state.showError ? \"block\" : \"none\",\n color: \"#fc5043\",\n }}\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.NOT_MEET_JSON}`)}\n </label>\n </>\n );\n case FormControlTypeEnum.TEXTAREA:\n case FormControlTypeEnum.MARKDOWN: {\n return (\n <Input.TextArea\n value={value}\n {...restProps}\n onChange={(e: any) => this.onChange(e)}\n className={this.props.className}\n style={this.props.style}\n rows={5}\n />\n );\n }\n\n case FormControlTypeEnum.STRUCT:\n case FormControlTypeEnum.LEGACY_STRUCT:\n return (\n <AddStruct\n isLegacy={type === FormControlTypeEnum.LEGACY_STRUCT}\n attribute={attribute}\n structData={value}\n handleStoreFunction={(formData: any) => this.onChange(formData)}\n className={this.props.className}\n style={this.props.style}\n isCreate={this.props.isCreate}\n />\n );\n\n case FormControlTypeEnum.RADIO: {\n let { items, required, readOnly } = restProps;\n\n // NODE: 对非必填单选为空的特殊处理 BY @robertman\n const unselected = {\n id: null as string,\n // text: \"暂不选择\",\n text: i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.TEMPORARILY_NOT_CHOOSE}`),\n };\n\n if (!required) {\n items = [...items, unselected];\n }\n\n return (\n <Radio.Group\n onChange={(e: any) => this.onChange(e)}\n value={value !== undefined ? value : unselected.id}\n className={this.props.className}\n style={this.props.style}\n disabled={readOnly}\n >\n {items.map((item) => (\n <Radio value={item.id} key={String(item.id)}>\n {item.text}\n </Radio>\n ))}\n </Radio.Group>\n );\n }\n\n case FormControlTypeEnum.TAGS: {\n const { placeholder, readOnly } = restProps;\n return (\n <Select\n allowClear={true}\n mode=\"tags\"\n style={{ ...this.props.style, width: \"100%\" }}\n disabled={readOnly}\n placeholder={placeholder}\n value={value || []}\n onChange={(e: any) => this.onChange(e)}\n className={this.props.className}\n />\n );\n }\n\n case FormControlTypeEnum.DATE:\n case FormControlTypeEnum.DATETIME: {\n let dateConfig = {};\n if (type === FormControlTypeEnum.DATETIME) {\n dateConfig = {\n showTime: true,\n };\n }\n const { readOnly, placeholder } = restProps;\n const formater = computeDateFormat(type, value);\n return (\n <DatePicker\n value={formater.value}\n placeholder={placeholder}\n disabled={readOnly}\n format={formater.format}\n {...dateConfig}\n onChange={(date, dateString) =>\n this.handleDateChange(date, dateString)\n }\n className={this.props.className}\n style={this.props.style}\n />\n );\n }\n\n case FormControlTypeEnum.SELECT: {\n const { readOnly, placeholder } = restProps;\n const newValue =\n typeof value === \"boolean\" ? value : value ? value : [];\n return (\n <Select\n placeholder={placeholder}\n mode={this.props.multiSelect ? \"multiple\" : undefined}\n value={newValue}\n onChange={(e: any) => this.onChange(e)}\n disabled={readOnly}\n className={this.props.className}\n style={this.props.style}\n showSearch\n >\n {restProps.items &&\n restProps.items.map(({ id, text }) => (\n <Select.Option value={id} key={id}>\n {text}\n </Select.Option>\n ))}\n </Select>\n );\n }\n\n default:\n return (\n // <Input\n // value={errorMessage}\n // readOnly\n // disabled\n // className={this.props.className}\n // style={this.props.style}\n // />\n <div\n style={{\n color: \"var(--theme-red-color)\",\n ...this.props.style,\n }}\n >\n {errorMessage}\n </div>\n );\n }\n };\n\n render(): ReactNode {\n return <>{this.FormControlTypeMap()}</>;\n }\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import React from "react";
1
+ import { FC } from "react";
2
2
  import { filterObjectIdQuery } from "./InstanceList";
3
3
  interface FilterInstanceSourceProps {
4
4
  visible?: boolean;
@@ -11,5 +11,5 @@ interface FilterInstanceSourceProps {
11
11
  jsonLocalStorage?: any;
12
12
  isAbstract?: boolean;
13
13
  }
14
- declare const _default: React.NamedExoticComponent<FilterInstanceSourceProps>;
15
- export default _default;
14
+ declare const FilterInstanceSource: FC<FilterInstanceSourceProps>;
15
+ export default FilterInstanceSource;
@@ -11,6 +11,7 @@ export interface InstanceListModalProps {
11
11
  objectId: string;
12
12
  visible: boolean;
13
13
  title: React.ReactNode | string;
14
+ q?: string;
14
15
  query?: any;
15
16
  presetConfigs?: InstanceListPresetConfigs;
16
17
  permission?: string[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@next-libs/cmdb-instances",
3
- "version": "7.6.0",
3
+ "version": "7.6.2",
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": "7748cf46b6d7006435573b9d73e5096de5034b14"
53
+ "gitHead": "07f0a4fd464e902725304dbddb0a7aceb1f50450"
54
54
  }