@next-libs/cmdb-instances 7.31.0 → 7.32.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -23,13 +23,15 @@ function formatUserQuery(instanceQuery) {
|
|
|
23
23
|
return (0, _lodash.compact)(arr);
|
|
24
24
|
}
|
|
25
25
|
const CmdbInstanceSelect = exports.CmdbInstanceSelect = /*#__PURE__*/_react.default.forwardRef(function CmdbInstanceSelect(props, ref) {
|
|
26
|
-
var
|
|
26
|
+
var _props$showKeyField;
|
|
27
27
|
const {
|
|
28
28
|
t
|
|
29
29
|
} = (0, _reactI18next.useTranslation)(_constants.NS_LIBS_CMDB_INSTANCES);
|
|
30
30
|
// 编排未显式指定 showKeyField 时,由 misc 设置 cmdbInstanceSelectShowKeyFields
|
|
31
31
|
// 按模型启用 showKey 展示,如:["HOST", "APP"]
|
|
32
|
-
const
|
|
32
|
+
const miscSettings = (0, _brickKit.getRuntime)().getMiscSettings();
|
|
33
|
+
const miscShowKeyFields = miscSettings === null || miscSettings === void 0 ? void 0 : miscSettings.cmdbInstanceSelectShowKeyFields;
|
|
34
|
+
const showKeyFieldWithSlash = (miscSettings === null || miscSettings === void 0 ? void 0 : miscSettings.showKeyFieldWithSlash) === true;
|
|
33
35
|
const effectiveShowKeyField = (_props$showKeyField = props.showKeyField) !== null && _props$showKeyField !== void 0 ? _props$showKeyField : !!(miscShowKeyFields !== null && miscShowKeyFields !== void 0 && miscShowKeyFields.includes(props.objectId));
|
|
34
36
|
const {
|
|
35
37
|
// 默认显示 label 为模型的 name/hostname, value 为 instanceId
|
|
@@ -185,7 +187,7 @@ const CmdbInstanceSelect = exports.CmdbInstanceSelect = /*#__PURE__*/_react.defa
|
|
|
185
187
|
if (Array.isArray(firstKey) && effectiveShowKeyField) {
|
|
186
188
|
const subFirstKey = firstKey[0];
|
|
187
189
|
const subResKey = firstKey.slice(1, firstKey.length).join(",");
|
|
188
|
-
return subResKey && isMultiLabel ? `${subFirstKey}(${subResKey})` : subFirstKey !== null && subFirstKey !== void 0 ? subFirstKey : "";
|
|
190
|
+
return subResKey && isMultiLabel ? showKeyFieldWithSlash ? `${subFirstKey}/${subResKey}` : `${subFirstKey}(${subResKey})` : subFirstKey !== null && subFirstKey !== void 0 ? subFirstKey : "";
|
|
189
191
|
}
|
|
190
192
|
return resKey && isMultiLabel ? `${firstKey !== null && firstKey !== void 0 ? firstKey : " - "}(${resKey})` : firstKey !== null && firstKey !== void 0 ? firstKey : "";
|
|
191
193
|
} else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CmdbInstanceSelect.js","names":["_react","_interopRequireWildcard","require","_reactI18next","_antd","_lodash","_brickKit","_cmdbSdk","_cmdbUtils","_classnames","_interopRequireDefault","_constants","_CmdbInstanceSelectModule","formatUserQuery","instanceQuery","arr","Array","isArray","compact","CmdbInstanceSelect","exports","React","forwardRef","props","ref","_getRuntime$getMiscSe","_props$showKeyField","t","useTranslation","NS_LIBS_CMDB_INSTANCES","miscShowKeyFields","getRuntime","getMiscSettings","cmdbInstanceSelectShowKeyFields","effectiveShowKeyField","showKeyField","includes","objectId","fields","label","getInstanceNameKey","value","firstRender","minimumInputLength","extraSearchKey","extraFields","mode","placeholder","allowClear","pageSize","isMultiLabel","showSearchTip","permission","ignoreMissingFieldError","dropdownMatchSelectWidth","blurAfterValueChanged","suffix","useExternalCmdbApi","externalSourceId","userQuery","setValue","useState","setObjectId","options","setOptions","selectedOptions","setSelectedOptions","total","setTotal","loading","setLoading","externalPostSearchV3","useProvider","cache","externalRequestParams","useMemo","sourceId","computeFields","result","push","handleChange","newValue","selected","valueSet","Set","filter","item","has","oldValueSet","difference","map","concat","find","selectNodes","document","getElementsByClassName","i","length","_selectNodes$i$getEle","_selectNodes$i$getEle2","getElementsByTagName","blur","onChange","handleSearch","q","extraQuery","forceSearch","pageSizeQuery","_props$optionsChange","list","fieldsQuery","$like","paramQuery","query","$and","$or","key","page","page_size","ignore_missing_field_error","sort","data","InstanceApi_postSearchV3","option","get","user_icon","optionsChange","call","e","handleHttpError","fetchInstanceData","getLabelOptions","op","labelTemplate","parseTemplate","firstKey","resKey","slice","join","subFirstKey","subResKey","useEffect","isNil","isEqual","_props$value","$in","castArray","_value","trim","resetVal","debounceSearch","debounce","default","createElement","Select","_extends2","className","style","defaults","inputBoxStyle","width","showSearch","filterOption","K","BACKGROUND_SEARCH","onSearch","onFocus","disabled","dropdownStyle","padding","dropdownRender","menu","moreChoices","MORE_RESULTS_TIPS","popoverPositionType","getPopupContainer","triggerNode","parentElement","index","_op$label","optionLabel","Option","Tooltip","title","showTooltip","undefined","classNames","optionDiv","Avatar","src","size","avatar","defaultIcon","optionSpan","useBrick","suffixContainer","BrickAsComponent"],"sources":["../../../src/cmdb-instance-select/CmdbInstanceSelect.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Select, Avatar, Tooltip } from \"antd\";\nimport { SelectValue } from \"antd/lib/select\";\nimport {\n debounce,\n get,\n compact,\n castArray,\n defaults,\n isEqual,\n difference,\n isNil,\n trim,\n} from \"lodash\";\nimport {\n BrickAsComponent,\n handleHttpError,\n useProvider,\n getRuntime,\n} from \"@next-core/brick-kit\";\nimport { UseBrickConf } from \"@next-core/brick-types\";\nimport { InstanceApi_postSearchV3 } from \"@next-sdk/cmdb-sdk\";\nimport { getInstanceNameKey, parseTemplate } from \"@next-libs/cmdb-utils\";\nimport classNames from \"classnames\";\n\nimport { NS_LIBS_CMDB_INSTANCES, K } from \"../i18n/constants\";\n\nimport style from \"./CmdbInstanceSelect.module.css\";\n\nexport interface CmdbInstanceSelectProps {\n objectId: string;\n mode?: string;\n pageSize?: number;\n instanceQuery?: any;\n placeholder?: string;\n fields?: Partial<ComplexOption<string>>;\n firstRender?: boolean;\n minimumInputLength?: number;\n value?: any;\n onChange?: (value: string, option?: ComplexOption) => void;\n optionsChange?: (options: ComplexOption[]) => void;\n allowClear?: boolean;\n inputBoxStyle?: React.CSSProperties;\n extraSearchKey?: string[];\n extraFields?: string[];\n popoverPositionType?: \"default\" | \"parent\";\n isMultiLabel?: boolean;\n showSearchTip?: boolean;\n labelTemplate?: string;\n disabled?: boolean;\n permission?: Array<\"read\" | \"update\" | \"operate\">;\n showTooltip?: boolean;\n ignoreMissingFieldError?: boolean;\n showKeyField?: boolean;\n dropdownMatchSelectWidth?: boolean;\n dropdownStyle?: React.CSSProperties;\n blurAfterValueChanged?: boolean;\n sort?: Array<Record<string, number | string>>;\n suffix?: {\n useBrick: UseBrickConf;\n };\n useBrickVisible?: boolean;\n useExternalCmdbApi?: boolean;\n externalSourceId?: string;\n}\n\nexport interface ComplexOption<T = string | number> {\n label: string[] | string;\n value: T;\n user_icon?: string; // objectId为USER的时候显示用户头像\n}\n\nexport function formatUserQuery(instanceQuery: any): any[] {\n const arr = Array.isArray(instanceQuery) ? instanceQuery : [instanceQuery];\n\n return compact(arr);\n}\n\nexport const CmdbInstanceSelect = React.forwardRef(function CmdbInstanceSelect(\n props: CmdbInstanceSelectProps,\n ref: any\n): React.ReactElement {\n const { t } = useTranslation(NS_LIBS_CMDB_INSTANCES);\n // 编排未显式指定 showKeyField 时,由 misc 设置 cmdbInstanceSelectShowKeyFields\n // 按模型启用 showKey 展示,如:[\"HOST\", \"APP\"]\n const miscShowKeyFields = getRuntime().getMiscSettings()\n ?.cmdbInstanceSelectShowKeyFields as string[] | undefined;\n const effectiveShowKeyField =\n props.showKeyField ?? !!miscShowKeyFields?.includes(props.objectId);\n const {\n // 默认显示 label 为模型的 name/hostname, value 为 instanceId\n // 当showKeyField时,实例展示是用showKey里的数据展示\n fields = {\n label: [\n effectiveShowKeyField ? \"#showKey\" : getInstanceNameKey(props.objectId),\n ],\n value: \"instanceId\",\n },\n firstRender = true,\n minimumInputLength = 0,\n extraSearchKey = [],\n extraFields = [],\n mode,\n placeholder,\n allowClear,\n pageSize = 30,\n isMultiLabel = true,\n showSearchTip,\n permission,\n ignoreMissingFieldError,\n dropdownMatchSelectWidth = true,\n blurAfterValueChanged,\n suffix,\n useExternalCmdbApi,\n externalSourceId,\n } = props;\n const userQuery = formatUserQuery(props.instanceQuery);\n //istanbul ignore else\n if (!fields.value) {\n fields.value = \"instanceId\";\n }\n\n const [value, setValue] = React.useState<unknown>();\n const [objectId, setObjectId] = React.useState<string>();\n const [options, setOptions] = React.useState<ComplexOption[]>([]);\n const [selectedOptions, setSelectedOptions] = React.useState<ComplexOption[]>(\n []\n );\n const [total, setTotal] = React.useState(0);\n const [loading, setLoading] = React.useState(false);\n\n // 用于外部调用的接口, 当useExternalCmdbApi为true,才调用这些接口\n const externalPostSearchV3 = useProvider(\n \"easyops.api.cmdb.topo_center@ProxyPostSearchV3:1.0.1\",\n { cache: false }\n );\n\n // useExternalCmdbApi为true,外部接口参数\n const externalRequestParams = useMemo(() => {\n return {\n objectId: props.objectId,\n sourceId: props.externalSourceId,\n };\n }, [props.objectId, externalSourceId]);\n const computeFields = () => {\n const result = [\n fields.value,\n ...(Array.isArray(fields.label) ? fields.label : [fields.label]),\n ...extraSearchKey,\n ...extraFields,\n ];\n\n if (props.objectId === \"USER\") {\n result.push(\"user_icon\");\n }\n return result;\n };\n\n const handleChange = (newValue: any): void => {\n let selected: any | any[];\n if (mode === \"multiple\") {\n const valueSet = new Set(newValue);\n selected = options.filter((item) => valueSet.has(item.value));\n const oldValueSet = new Set(\n difference(\n newValue,\n (selected as any[]).map((item) => item.value)\n )\n );\n selected = selected.concat(\n selectedOptions.filter((item) => oldValueSet.has(item.value))\n );\n } else {\n selected = options.find((item) => item.value === newValue);\n }\n\n if (blurAfterValueChanged) {\n const selectNodes = document.getElementsByClassName(\n \"formsCmdbInstSelect\"\n );\n for (let i = 0; i < selectNodes.length; i++) {\n selectNodes[i].getElementsByTagName(\"input\")?.[0]?.blur();\n }\n }\n setValue(newValue);\n setSelectedOptions(selected);\n props.onChange && props.onChange(newValue, selected);\n };\n //istanbul ignore else\n const handleSearch = async (\n q: string,\n extraQuery: any,\n forceSearch = false,\n pageSizeQuery?: number\n ): Promise<ComplexOption[]> => {\n if (forceSearch || q.length >= minimumInputLength) {\n try {\n let list = [];\n if (!props.objectId) {\n return;\n }\n setLoading(true);\n const fieldsQuery = Array.isArray(fields.label)\n ? fields.label.map((label) => ({ [label]: { $like: `%${q}%` } }))\n : [{ [fields.label]: { $like: `%${q}%` } }];\n const paramQuery = {\n query: {\n $and: [\n {\n $or: [\n ...fieldsQuery,\n ...extraSearchKey.map((key) => ({\n [key]: { $like: `%${q}%` },\n })),\n ],\n },\n\n ...extraQuery,\n ],\n },\n ...(permission ? { permission } : {}),\n fields: computeFields(),\n page: 1,\n page_size: pageSizeQuery || pageSize,\n ignore_missing_field_error: ignoreMissingFieldError,\n sort: props.sort,\n };\n const data = useExternalCmdbApi\n ? await externalPostSearchV3.query([\n {\n ...paramQuery,\n ...externalRequestParams,\n },\n ])\n : await InstanceApi_postSearchV3(props.objectId, paramQuery);\n\n list = data.list;\n setTotal(data.total);\n // 根据用户设置路径显示特定的 label 和 value\n const option = list.map((item: any) => ({\n ...item,\n label: Array.isArray(fields.label)\n ? fields.label.map((label) => get(item, label))\n : get(item, fields.label),\n value: get(item, fields.value),\n ...(props.objectId === \"USER\"\n ? {\n user_icon: get(item, \"user_icon\", \"defaultIcon\"),\n }\n : {}),\n }));\n setOptions(option);\n props.optionsChange?.(option);\n return option;\n } catch (e) {\n handleHttpError(e);\n } finally {\n setLoading(false);\n }\n }\n };\n const fetchInstanceData = async (): Promise<void> => {\n await handleSearch(\"\", userQuery);\n };\n const getLabelOptions = (op: any) => {\n if (props.labelTemplate) {\n return parseTemplate(props.labelTemplate, op);\n } else {\n const label = op.label;\n if (Array.isArray(label)) {\n const firstKey = label[0];\n const resKey = label.slice(1, label.length).join(\",\");\n if (Array.isArray(firstKey) && effectiveShowKeyField) {\n const subFirstKey = firstKey[0];\n const subResKey = firstKey.slice(1, firstKey.length).join(\",\");\n return subResKey && isMultiLabel\n ? `${subFirstKey}(${subResKey})`\n : subFirstKey ?? \"\";\n }\n return resKey && isMultiLabel\n ? `${firstKey ?? \" - \"}(${resKey})`\n : firstKey ?? \"\";\n } else {\n return label;\n }\n }\n };\n\n React.useEffect(() => {\n // 初始化时通过用户的 value 得出首次 label 的值\n // 由于value的不确定性,可能存在首次查询的值不唯一,初始化时也添加instanceQuery\n if (\n props.objectId &&\n !isNil(props.value) &&\n (!isEqual(props.objectId, objectId) || !isEqual(props.value, value))\n ) {\n (async () => {\n const option = await handleSearch(\n \"\",\n [\n {\n [fields.value || \"instanceId\"]: {\n $in: castArray(props.value),\n },\n },\n\n ...userQuery,\n ],\n true,\n props.value?.length >= pageSize ? props.value.length : pageSize\n );\n setSelectedOptions(option);\n })();\n }\n const _value =\n props.mode === \"multiple\" && !trim(props.value) ? [] : props.value;\n setValue(_value);\n setObjectId(props.objectId);\n }, [props.value, props.objectId]);\n\n React.useEffect(() => {\n if (!firstRender) {\n const resetVal: [] | \"\" = mode === \"multiple\" ? [] : \"\";\n setValue(resetVal);\n }\n }, [props.objectId]);\n //istanbul ignore else\n const debounceSearch = debounce(\n (q: string) => handleSearch(q, userQuery),\n 500\n );\n\n return (\n <Select\n ref={ref}\n loading={loading}\n className=\"formsCmdbInstSelect\"\n allowClear={allowClear}\n style={defaults(props.inputBoxStyle, { width: \"100%\" })}\n showSearch\n filterOption={false}\n value={value as SelectValue}\n mode={mode as \"multiple\" | \"tags\"}\n placeholder={placeholder || t(K.BACKGROUND_SEARCH)}\n onChange={handleChange}\n onSearch={debounceSearch}\n onFocus={fetchInstanceData}\n disabled={props.disabled}\n dropdownStyle={{ padding: \"2px\", ...props.dropdownStyle }}\n dropdownMatchSelectWidth={dropdownMatchSelectWidth}\n dropdownRender={(menu) => {\n return (\n <div>\n {menu}\n {showSearchTip && total > pageSize && (\n <div className={style.moreChoices}>\n {t(K.MORE_RESULTS_TIPS, { pageSize })}\n </div>\n )}\n </div>\n );\n }}\n {...(props.popoverPositionType === \"parent\"\n ? { getPopupContainer: (triggerNode) => triggerNode.parentElement }\n : {})}\n >\n {options.map((op, index) => {\n const optionLabel = getLabelOptions(op);\n return (\n <Select.Option key={index} value={op.value} label={optionLabel}>\n <Tooltip title={props.showTooltip ? optionLabel : undefined}>\n <div className={classNames(style.optionDiv)}>\n {op.user_icon && (\n <span>\n <Avatar\n src={op.user_icon}\n size={24}\n className={classNames(style.avatar, {\n [style.defaultIcon]: op.user_icon === \"defaultIcon\",\n })}\n >\n {op.user_icon === \"defaultIcon\" && op.label?.slice(0, 2)}\n </Avatar>\n </span>\n )}\n <span\n className={classNames(style.optionSpan)}\n data-testid=\"option-label\"\n >\n {optionLabel}\n </span>\n {suffix?.useBrick && (\n <div className={style.suffixContainer}>\n <BrickAsComponent useBrick={suffix.useBrick} data={op} />\n </div>\n )}\n </div>\n </Tooltip>\n </Select.Option>\n );\n })}\n </Select>\n );\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"CmdbInstanceSelect.js","names":["_react","_interopRequireWildcard","require","_reactI18next","_antd","_lodash","_brickKit","_cmdbSdk","_cmdbUtils","_classnames","_interopRequireDefault","_constants","_CmdbInstanceSelectModule","formatUserQuery","instanceQuery","arr","Array","isArray","compact","CmdbInstanceSelect","exports","React","forwardRef","props","ref","_props$showKeyField","t","useTranslation","NS_LIBS_CMDB_INSTANCES","miscSettings","getRuntime","getMiscSettings","miscShowKeyFields","cmdbInstanceSelectShowKeyFields","showKeyFieldWithSlash","effectiveShowKeyField","showKeyField","includes","objectId","fields","label","getInstanceNameKey","value","firstRender","minimumInputLength","extraSearchKey","extraFields","mode","placeholder","allowClear","pageSize","isMultiLabel","showSearchTip","permission","ignoreMissingFieldError","dropdownMatchSelectWidth","blurAfterValueChanged","suffix","useExternalCmdbApi","externalSourceId","userQuery","setValue","useState","setObjectId","options","setOptions","selectedOptions","setSelectedOptions","total","setTotal","loading","setLoading","externalPostSearchV3","useProvider","cache","externalRequestParams","useMemo","sourceId","computeFields","result","push","handleChange","newValue","selected","valueSet","Set","filter","item","has","oldValueSet","difference","map","concat","find","selectNodes","document","getElementsByClassName","i","length","_selectNodes$i$getEle","_selectNodes$i$getEle2","getElementsByTagName","blur","onChange","handleSearch","q","extraQuery","forceSearch","pageSizeQuery","_props$optionsChange","list","fieldsQuery","$like","paramQuery","query","$and","$or","key","page","page_size","ignore_missing_field_error","sort","data","InstanceApi_postSearchV3","option","get","user_icon","optionsChange","call","e","handleHttpError","fetchInstanceData","getLabelOptions","op","labelTemplate","parseTemplate","firstKey","resKey","slice","join","subFirstKey","subResKey","useEffect","isNil","isEqual","_props$value","$in","castArray","_value","trim","resetVal","debounceSearch","debounce","default","createElement","Select","_extends2","className","style","defaults","inputBoxStyle","width","showSearch","filterOption","K","BACKGROUND_SEARCH","onSearch","onFocus","disabled","dropdownStyle","padding","dropdownRender","menu","moreChoices","MORE_RESULTS_TIPS","popoverPositionType","getPopupContainer","triggerNode","parentElement","index","_op$label","optionLabel","Option","Tooltip","title","showTooltip","undefined","classNames","optionDiv","Avatar","src","size","avatar","defaultIcon","optionSpan","useBrick","suffixContainer","BrickAsComponent"],"sources":["../../../src/cmdb-instance-select/CmdbInstanceSelect.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Select, Avatar, Tooltip } from \"antd\";\nimport { SelectValue } from \"antd/lib/select\";\nimport {\n debounce,\n get,\n compact,\n castArray,\n defaults,\n isEqual,\n difference,\n isNil,\n trim,\n} from \"lodash\";\nimport {\n BrickAsComponent,\n handleHttpError,\n useProvider,\n getRuntime,\n} from \"@next-core/brick-kit\";\nimport { UseBrickConf } from \"@next-core/brick-types\";\nimport { InstanceApi_postSearchV3 } from \"@next-sdk/cmdb-sdk\";\nimport { getInstanceNameKey, parseTemplate } from \"@next-libs/cmdb-utils\";\nimport classNames from \"classnames\";\n\nimport { NS_LIBS_CMDB_INSTANCES, K } from \"../i18n/constants\";\n\nimport style from \"./CmdbInstanceSelect.module.css\";\n\nexport interface CmdbInstanceSelectProps {\n objectId: string;\n mode?: string;\n pageSize?: number;\n instanceQuery?: any;\n placeholder?: string;\n fields?: Partial<ComplexOption<string>>;\n firstRender?: boolean;\n minimumInputLength?: number;\n value?: any;\n onChange?: (value: string, option?: ComplexOption) => void;\n optionsChange?: (options: ComplexOption[]) => void;\n allowClear?: boolean;\n inputBoxStyle?: React.CSSProperties;\n extraSearchKey?: string[];\n extraFields?: string[];\n popoverPositionType?: \"default\" | \"parent\";\n isMultiLabel?: boolean;\n showSearchTip?: boolean;\n labelTemplate?: string;\n disabled?: boolean;\n permission?: Array<\"read\" | \"update\" | \"operate\">;\n showTooltip?: boolean;\n ignoreMissingFieldError?: boolean;\n showKeyField?: boolean;\n dropdownMatchSelectWidth?: boolean;\n dropdownStyle?: React.CSSProperties;\n blurAfterValueChanged?: boolean;\n sort?: Array<Record<string, number | string>>;\n suffix?: {\n useBrick: UseBrickConf;\n };\n useBrickVisible?: boolean;\n useExternalCmdbApi?: boolean;\n externalSourceId?: string;\n}\n\nexport interface ComplexOption<T = string | number> {\n label: string[] | string;\n value: T;\n user_icon?: string; // objectId为USER的时候显示用户头像\n}\n\nexport function formatUserQuery(instanceQuery: any): any[] {\n const arr = Array.isArray(instanceQuery) ? instanceQuery : [instanceQuery];\n\n return compact(arr);\n}\n\nexport const CmdbInstanceSelect = React.forwardRef(function CmdbInstanceSelect(\n props: CmdbInstanceSelectProps,\n ref: any\n): React.ReactElement {\n const { t } = useTranslation(NS_LIBS_CMDB_INSTANCES);\n // 编排未显式指定 showKeyField 时,由 misc 设置 cmdbInstanceSelectShowKeyFields\n // 按模型启用 showKey 展示,如:[\"HOST\", \"APP\"]\n const miscSettings = getRuntime().getMiscSettings();\n const miscShowKeyFields = miscSettings?.cmdbInstanceSelectShowKeyFields as\n | string[]\n | undefined;\n const showKeyFieldWithSlash = miscSettings?.showKeyFieldWithSlash === true;\n const effectiveShowKeyField =\n props.showKeyField ?? !!miscShowKeyFields?.includes(props.objectId);\n const {\n // 默认显示 label 为模型的 name/hostname, value 为 instanceId\n // 当showKeyField时,实例展示是用showKey里的数据展示\n fields = {\n label: [\n effectiveShowKeyField ? \"#showKey\" : getInstanceNameKey(props.objectId),\n ],\n value: \"instanceId\",\n },\n firstRender = true,\n minimumInputLength = 0,\n extraSearchKey = [],\n extraFields = [],\n mode,\n placeholder,\n allowClear,\n pageSize = 30,\n isMultiLabel = true,\n showSearchTip,\n permission,\n ignoreMissingFieldError,\n dropdownMatchSelectWidth = true,\n blurAfterValueChanged,\n suffix,\n useExternalCmdbApi,\n externalSourceId,\n } = props;\n const userQuery = formatUserQuery(props.instanceQuery);\n //istanbul ignore else\n if (!fields.value) {\n fields.value = \"instanceId\";\n }\n\n const [value, setValue] = React.useState<unknown>();\n const [objectId, setObjectId] = React.useState<string>();\n const [options, setOptions] = React.useState<ComplexOption[]>([]);\n const [selectedOptions, setSelectedOptions] = React.useState<ComplexOption[]>(\n []\n );\n const [total, setTotal] = React.useState(0);\n const [loading, setLoading] = React.useState(false);\n\n // 用于外部调用的接口, 当useExternalCmdbApi为true,才调用这些接口\n const externalPostSearchV3 = useProvider(\n \"easyops.api.cmdb.topo_center@ProxyPostSearchV3:1.0.1\",\n { cache: false }\n );\n\n // useExternalCmdbApi为true,外部接口参数\n const externalRequestParams = useMemo(() => {\n return {\n objectId: props.objectId,\n sourceId: props.externalSourceId,\n };\n }, [props.objectId, externalSourceId]);\n const computeFields = () => {\n const result = [\n fields.value,\n ...(Array.isArray(fields.label) ? fields.label : [fields.label]),\n ...extraSearchKey,\n ...extraFields,\n ];\n\n if (props.objectId === \"USER\") {\n result.push(\"user_icon\");\n }\n return result;\n };\n\n const handleChange = (newValue: any): void => {\n let selected: any | any[];\n if (mode === \"multiple\") {\n const valueSet = new Set(newValue);\n selected = options.filter((item) => valueSet.has(item.value));\n const oldValueSet = new Set(\n difference(\n newValue,\n (selected as any[]).map((item) => item.value)\n )\n );\n selected = selected.concat(\n selectedOptions.filter((item) => oldValueSet.has(item.value))\n );\n } else {\n selected = options.find((item) => item.value === newValue);\n }\n\n if (blurAfterValueChanged) {\n const selectNodes = document.getElementsByClassName(\n \"formsCmdbInstSelect\"\n );\n for (let i = 0; i < selectNodes.length; i++) {\n selectNodes[i].getElementsByTagName(\"input\")?.[0]?.blur();\n }\n }\n setValue(newValue);\n setSelectedOptions(selected);\n props.onChange && props.onChange(newValue, selected);\n };\n //istanbul ignore else\n const handleSearch = async (\n q: string,\n extraQuery: any,\n forceSearch = false,\n pageSizeQuery?: number\n ): Promise<ComplexOption[]> => {\n if (forceSearch || q.length >= minimumInputLength) {\n try {\n let list = [];\n if (!props.objectId) {\n return;\n }\n setLoading(true);\n const fieldsQuery = Array.isArray(fields.label)\n ? fields.label.map((label) => ({ [label]: { $like: `%${q}%` } }))\n : [{ [fields.label]: { $like: `%${q}%` } }];\n const paramQuery = {\n query: {\n $and: [\n {\n $or: [\n ...fieldsQuery,\n ...extraSearchKey.map((key) => ({\n [key]: { $like: `%${q}%` },\n })),\n ],\n },\n\n ...extraQuery,\n ],\n },\n ...(permission ? { permission } : {}),\n fields: computeFields(),\n page: 1,\n page_size: pageSizeQuery || pageSize,\n ignore_missing_field_error: ignoreMissingFieldError,\n sort: props.sort,\n };\n const data = useExternalCmdbApi\n ? await externalPostSearchV3.query([\n {\n ...paramQuery,\n ...externalRequestParams,\n },\n ])\n : await InstanceApi_postSearchV3(props.objectId, paramQuery);\n\n list = data.list;\n setTotal(data.total);\n // 根据用户设置路径显示特定的 label 和 value\n const option = list.map((item: any) => ({\n ...item,\n label: Array.isArray(fields.label)\n ? fields.label.map((label) => get(item, label))\n : get(item, fields.label),\n value: get(item, fields.value),\n ...(props.objectId === \"USER\"\n ? {\n user_icon: get(item, \"user_icon\", \"defaultIcon\"),\n }\n : {}),\n }));\n setOptions(option);\n props.optionsChange?.(option);\n return option;\n } catch (e) {\n handleHttpError(e);\n } finally {\n setLoading(false);\n }\n }\n };\n const fetchInstanceData = async (): Promise<void> => {\n await handleSearch(\"\", userQuery);\n };\n const getLabelOptions = (op: any) => {\n if (props.labelTemplate) {\n return parseTemplate(props.labelTemplate, op);\n } else {\n const label = op.label;\n if (Array.isArray(label)) {\n const firstKey = label[0];\n const resKey = label.slice(1, label.length).join(\",\");\n if (Array.isArray(firstKey) && effectiveShowKeyField) {\n const subFirstKey = firstKey[0];\n const subResKey = firstKey.slice(1, firstKey.length).join(\",\");\n return subResKey && isMultiLabel\n ? showKeyFieldWithSlash\n ? `${subFirstKey}/${subResKey}`\n : `${subFirstKey}(${subResKey})`\n : subFirstKey ?? \"\";\n }\n return resKey && isMultiLabel\n ? `${firstKey ?? \" - \"}(${resKey})`\n : firstKey ?? \"\";\n } else {\n return label;\n }\n }\n };\n\n React.useEffect(() => {\n // 初始化时通过用户的 value 得出首次 label 的值\n // 由于value的不确定性,可能存在首次查询的值不唯一,初始化时也添加instanceQuery\n if (\n props.objectId &&\n !isNil(props.value) &&\n (!isEqual(props.objectId, objectId) || !isEqual(props.value, value))\n ) {\n (async () => {\n const option = await handleSearch(\n \"\",\n [\n {\n [fields.value || \"instanceId\"]: {\n $in: castArray(props.value),\n },\n },\n\n ...userQuery,\n ],\n true,\n props.value?.length >= pageSize ? props.value.length : pageSize\n );\n setSelectedOptions(option);\n })();\n }\n const _value =\n props.mode === \"multiple\" && !trim(props.value) ? [] : props.value;\n setValue(_value);\n setObjectId(props.objectId);\n }, [props.value, props.objectId]);\n\n React.useEffect(() => {\n if (!firstRender) {\n const resetVal: [] | \"\" = mode === \"multiple\" ? [] : \"\";\n setValue(resetVal);\n }\n }, [props.objectId]);\n //istanbul ignore else\n const debounceSearch = debounce(\n (q: string) => handleSearch(q, userQuery),\n 500\n );\n\n return (\n <Select\n ref={ref}\n loading={loading}\n className=\"formsCmdbInstSelect\"\n allowClear={allowClear}\n style={defaults(props.inputBoxStyle, { width: \"100%\" })}\n showSearch\n filterOption={false}\n value={value as SelectValue}\n mode={mode as \"multiple\" | \"tags\"}\n placeholder={placeholder || t(K.BACKGROUND_SEARCH)}\n onChange={handleChange}\n onSearch={debounceSearch}\n onFocus={fetchInstanceData}\n disabled={props.disabled}\n dropdownStyle={{ padding: \"2px\", ...props.dropdownStyle }}\n dropdownMatchSelectWidth={dropdownMatchSelectWidth}\n dropdownRender={(menu) => {\n return (\n <div>\n {menu}\n {showSearchTip && total > pageSize && (\n <div className={style.moreChoices}>\n {t(K.MORE_RESULTS_TIPS, { pageSize })}\n </div>\n )}\n </div>\n );\n }}\n {...(props.popoverPositionType === \"parent\"\n ? { getPopupContainer: (triggerNode) => triggerNode.parentElement }\n : {})}\n >\n {options.map((op, index) => {\n const optionLabel = getLabelOptions(op);\n return (\n <Select.Option key={index} value={op.value} label={optionLabel}>\n <Tooltip title={props.showTooltip ? optionLabel : undefined}>\n <div className={classNames(style.optionDiv)}>\n {op.user_icon && (\n <span>\n <Avatar\n src={op.user_icon}\n size={24}\n className={classNames(style.avatar, {\n [style.defaultIcon]: op.user_icon === \"defaultIcon\",\n })}\n >\n {op.user_icon === \"defaultIcon\" && op.label?.slice(0, 2)}\n </Avatar>\n </span>\n )}\n <span\n className={classNames(style.optionSpan)}\n data-testid=\"option-label\"\n >\n {optionLabel}\n </span>\n {suffix?.useBrick && (\n <div className={style.suffixContainer}>\n <BrickAsComponent useBrick={suffix.useBrick} data={op} />\n </div>\n )}\n </div>\n </Tooltip>\n </Select.Option>\n );\n })}\n </Select>\n );\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -16,13 +16,15 @@ export function formatUserQuery(instanceQuery) {
|
|
|
16
16
|
return compact(arr);
|
|
17
17
|
}
|
|
18
18
|
export var CmdbInstanceSelect = /*#__PURE__*/React.forwardRef(function CmdbInstanceSelect(props, ref) {
|
|
19
|
-
var
|
|
19
|
+
var _props$showKeyField;
|
|
20
20
|
var {
|
|
21
21
|
t
|
|
22
22
|
} = useTranslation(NS_LIBS_CMDB_INSTANCES);
|
|
23
23
|
// 编排未显式指定 showKeyField 时,由 misc 设置 cmdbInstanceSelectShowKeyFields
|
|
24
24
|
// 按模型启用 showKey 展示,如:["HOST", "APP"]
|
|
25
|
-
var
|
|
25
|
+
var miscSettings = getRuntime().getMiscSettings();
|
|
26
|
+
var miscShowKeyFields = miscSettings === null || miscSettings === void 0 ? void 0 : miscSettings.cmdbInstanceSelectShowKeyFields;
|
|
27
|
+
var showKeyFieldWithSlash = (miscSettings === null || miscSettings === void 0 ? void 0 : miscSettings.showKeyFieldWithSlash) === true;
|
|
26
28
|
var effectiveShowKeyField = (_props$showKeyField = props.showKeyField) !== null && _props$showKeyField !== void 0 ? _props$showKeyField : !!(miscShowKeyFields !== null && miscShowKeyFields !== void 0 && miscShowKeyFields.includes(props.objectId));
|
|
27
29
|
var {
|
|
28
30
|
// 默认显示 label 为模型的 name/hostname, value 为 instanceId
|
|
@@ -185,7 +187,7 @@ export var CmdbInstanceSelect = /*#__PURE__*/React.forwardRef(function CmdbInsta
|
|
|
185
187
|
if (Array.isArray(firstKey) && effectiveShowKeyField) {
|
|
186
188
|
var subFirstKey = firstKey[0];
|
|
187
189
|
var subResKey = firstKey.slice(1, firstKey.length).join(",");
|
|
188
|
-
return subResKey && isMultiLabel ? "".concat(subFirstKey, "(").concat(subResKey, ")") : subFirstKey !== null && subFirstKey !== void 0 ? subFirstKey : "";
|
|
190
|
+
return subResKey && isMultiLabel ? showKeyFieldWithSlash ? "".concat(subFirstKey, "/").concat(subResKey) : "".concat(subFirstKey, "(").concat(subResKey, ")") : subFirstKey !== null && subFirstKey !== void 0 ? subFirstKey : "";
|
|
189
191
|
}
|
|
190
192
|
return resKey && isMultiLabel ? "".concat(firstKey !== null && firstKey !== void 0 ? firstKey : " - ", "(").concat(resKey, ")") : firstKey !== null && firstKey !== void 0 ? firstKey : "";
|
|
191
193
|
} else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CmdbInstanceSelect.js","names":["React","useMemo","useTranslation","Select","Avatar","Tooltip","debounce","get","compact","castArray","defaults","isEqual","difference","isNil","trim","BrickAsComponent","handleHttpError","useProvider","getRuntime","InstanceApi_postSearchV3","getInstanceNameKey","parseTemplate","classNames","NS_LIBS_CMDB_INSTANCES","K","style","formatUserQuery","instanceQuery","arr","Array","isArray","CmdbInstanceSelect","forwardRef","props","ref","_getRuntime$getMiscSe","_props$showKeyField","t","miscShowKeyFields","getMiscSettings","cmdbInstanceSelectShowKeyFields","effectiveShowKeyField","showKeyField","includes","objectId","fields","label","value","firstRender","minimumInputLength","extraSearchKey","extraFields","mode","placeholder","allowClear","pageSize","isMultiLabel","showSearchTip","permission","ignoreMissingFieldError","dropdownMatchSelectWidth","blurAfterValueChanged","suffix","useExternalCmdbApi","externalSourceId","userQuery","setValue","useState","setObjectId","options","setOptions","selectedOptions","setSelectedOptions","total","setTotal","loading","setLoading","externalPostSearchV3","cache","externalRequestParams","sourceId","computeFields","result","push","handleChange","newValue","selected","valueSet","Set","filter","item","has","oldValueSet","map","concat","find","selectNodes","document","getElementsByClassName","i","length","_selectNodes$i$getEle","_selectNodes$i$getEle2","getElementsByTagName","blur","onChange","handleSearch","_ref","_asyncToGenerator","q","extraQuery","forceSearch","arguments","undefined","pageSizeQuery","_props$optionsChange","list","fieldsQuery","$like","paramQuery","_objectSpread","query","$and","$or","key","page","page_size","ignore_missing_field_error","sort","data","option","user_icon","optionsChange","call","e","_x","_x2","apply","fetchInstanceData","_ref2","getLabelOptions","op","labelTemplate","firstKey","resKey","slice","join","subFirstKey","subResKey","useEffect","_props$value","$in","_value","resetVal","debounceSearch","createElement","_extends","className","inputBoxStyle","width","showSearch","filterOption","BACKGROUND_SEARCH","onSearch","onFocus","disabled","dropdownStyle","padding","dropdownRender","menu","moreChoices","MORE_RESULTS_TIPS","popoverPositionType","getPopupContainer","triggerNode","parentElement","index","_op$label","optionLabel","Option","title","showTooltip","optionDiv","src","size","avatar","defaultIcon","optionSpan","useBrick","suffixContainer"],"sources":["../../../src/cmdb-instance-select/CmdbInstanceSelect.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Select, Avatar, Tooltip } from \"antd\";\nimport { SelectValue } from \"antd/lib/select\";\nimport {\n debounce,\n get,\n compact,\n castArray,\n defaults,\n isEqual,\n difference,\n isNil,\n trim,\n} from \"lodash\";\nimport {\n BrickAsComponent,\n handleHttpError,\n useProvider,\n getRuntime,\n} from \"@next-core/brick-kit\";\nimport { UseBrickConf } from \"@next-core/brick-types\";\nimport { InstanceApi_postSearchV3 } from \"@next-sdk/cmdb-sdk\";\nimport { getInstanceNameKey, parseTemplate } from \"@next-libs/cmdb-utils\";\nimport classNames from \"classnames\";\n\nimport { NS_LIBS_CMDB_INSTANCES, K } from \"../i18n/constants\";\n\nimport style from \"./CmdbInstanceSelect.module.css\";\n\nexport interface CmdbInstanceSelectProps {\n objectId: string;\n mode?: string;\n pageSize?: number;\n instanceQuery?: any;\n placeholder?: string;\n fields?: Partial<ComplexOption<string>>;\n firstRender?: boolean;\n minimumInputLength?: number;\n value?: any;\n onChange?: (value: string, option?: ComplexOption) => void;\n optionsChange?: (options: ComplexOption[]) => void;\n allowClear?: boolean;\n inputBoxStyle?: React.CSSProperties;\n extraSearchKey?: string[];\n extraFields?: string[];\n popoverPositionType?: \"default\" | \"parent\";\n isMultiLabel?: boolean;\n showSearchTip?: boolean;\n labelTemplate?: string;\n disabled?: boolean;\n permission?: Array<\"read\" | \"update\" | \"operate\">;\n showTooltip?: boolean;\n ignoreMissingFieldError?: boolean;\n showKeyField?: boolean;\n dropdownMatchSelectWidth?: boolean;\n dropdownStyle?: React.CSSProperties;\n blurAfterValueChanged?: boolean;\n sort?: Array<Record<string, number | string>>;\n suffix?: {\n useBrick: UseBrickConf;\n };\n useBrickVisible?: boolean;\n useExternalCmdbApi?: boolean;\n externalSourceId?: string;\n}\n\nexport interface ComplexOption<T = string | number> {\n label: string[] | string;\n value: T;\n user_icon?: string; // objectId为USER的时候显示用户头像\n}\n\nexport function formatUserQuery(instanceQuery: any): any[] {\n const arr = Array.isArray(instanceQuery) ? instanceQuery : [instanceQuery];\n\n return compact(arr);\n}\n\nexport const CmdbInstanceSelect = React.forwardRef(function CmdbInstanceSelect(\n props: CmdbInstanceSelectProps,\n ref: any\n): React.ReactElement {\n const { t } = useTranslation(NS_LIBS_CMDB_INSTANCES);\n // 编排未显式指定 showKeyField 时,由 misc 设置 cmdbInstanceSelectShowKeyFields\n // 按模型启用 showKey 展示,如:[\"HOST\", \"APP\"]\n const miscShowKeyFields = getRuntime().getMiscSettings()\n ?.cmdbInstanceSelectShowKeyFields as string[] | undefined;\n const effectiveShowKeyField =\n props.showKeyField ?? !!miscShowKeyFields?.includes(props.objectId);\n const {\n // 默认显示 label 为模型的 name/hostname, value 为 instanceId\n // 当showKeyField时,实例展示是用showKey里的数据展示\n fields = {\n label: [\n effectiveShowKeyField ? \"#showKey\" : getInstanceNameKey(props.objectId),\n ],\n value: \"instanceId\",\n },\n firstRender = true,\n minimumInputLength = 0,\n extraSearchKey = [],\n extraFields = [],\n mode,\n placeholder,\n allowClear,\n pageSize = 30,\n isMultiLabel = true,\n showSearchTip,\n permission,\n ignoreMissingFieldError,\n dropdownMatchSelectWidth = true,\n blurAfterValueChanged,\n suffix,\n useExternalCmdbApi,\n externalSourceId,\n } = props;\n const userQuery = formatUserQuery(props.instanceQuery);\n //istanbul ignore else\n if (!fields.value) {\n fields.value = \"instanceId\";\n }\n\n const [value, setValue] = React.useState<unknown>();\n const [objectId, setObjectId] = React.useState<string>();\n const [options, setOptions] = React.useState<ComplexOption[]>([]);\n const [selectedOptions, setSelectedOptions] = React.useState<ComplexOption[]>(\n []\n );\n const [total, setTotal] = React.useState(0);\n const [loading, setLoading] = React.useState(false);\n\n // 用于外部调用的接口, 当useExternalCmdbApi为true,才调用这些接口\n const externalPostSearchV3 = useProvider(\n \"easyops.api.cmdb.topo_center@ProxyPostSearchV3:1.0.1\",\n { cache: false }\n );\n\n // useExternalCmdbApi为true,外部接口参数\n const externalRequestParams = useMemo(() => {\n return {\n objectId: props.objectId,\n sourceId: props.externalSourceId,\n };\n }, [props.objectId, externalSourceId]);\n const computeFields = () => {\n const result = [\n fields.value,\n ...(Array.isArray(fields.label) ? fields.label : [fields.label]),\n ...extraSearchKey,\n ...extraFields,\n ];\n\n if (props.objectId === \"USER\") {\n result.push(\"user_icon\");\n }\n return result;\n };\n\n const handleChange = (newValue: any): void => {\n let selected: any | any[];\n if (mode === \"multiple\") {\n const valueSet = new Set(newValue);\n selected = options.filter((item) => valueSet.has(item.value));\n const oldValueSet = new Set(\n difference(\n newValue,\n (selected as any[]).map((item) => item.value)\n )\n );\n selected = selected.concat(\n selectedOptions.filter((item) => oldValueSet.has(item.value))\n );\n } else {\n selected = options.find((item) => item.value === newValue);\n }\n\n if (blurAfterValueChanged) {\n const selectNodes = document.getElementsByClassName(\n \"formsCmdbInstSelect\"\n );\n for (let i = 0; i < selectNodes.length; i++) {\n selectNodes[i].getElementsByTagName(\"input\")?.[0]?.blur();\n }\n }\n setValue(newValue);\n setSelectedOptions(selected);\n props.onChange && props.onChange(newValue, selected);\n };\n //istanbul ignore else\n const handleSearch = async (\n q: string,\n extraQuery: any,\n forceSearch = false,\n pageSizeQuery?: number\n ): Promise<ComplexOption[]> => {\n if (forceSearch || q.length >= minimumInputLength) {\n try {\n let list = [];\n if (!props.objectId) {\n return;\n }\n setLoading(true);\n const fieldsQuery = Array.isArray(fields.label)\n ? fields.label.map((label) => ({ [label]: { $like: `%${q}%` } }))\n : [{ [fields.label]: { $like: `%${q}%` } }];\n const paramQuery = {\n query: {\n $and: [\n {\n $or: [\n ...fieldsQuery,\n ...extraSearchKey.map((key) => ({\n [key]: { $like: `%${q}%` },\n })),\n ],\n },\n\n ...extraQuery,\n ],\n },\n ...(permission ? { permission } : {}),\n fields: computeFields(),\n page: 1,\n page_size: pageSizeQuery || pageSize,\n ignore_missing_field_error: ignoreMissingFieldError,\n sort: props.sort,\n };\n const data = useExternalCmdbApi\n ? await externalPostSearchV3.query([\n {\n ...paramQuery,\n ...externalRequestParams,\n },\n ])\n : await InstanceApi_postSearchV3(props.objectId, paramQuery);\n\n list = data.list;\n setTotal(data.total);\n // 根据用户设置路径显示特定的 label 和 value\n const option = list.map((item: any) => ({\n ...item,\n label: Array.isArray(fields.label)\n ? fields.label.map((label) => get(item, label))\n : get(item, fields.label),\n value: get(item, fields.value),\n ...(props.objectId === \"USER\"\n ? {\n user_icon: get(item, \"user_icon\", \"defaultIcon\"),\n }\n : {}),\n }));\n setOptions(option);\n props.optionsChange?.(option);\n return option;\n } catch (e) {\n handleHttpError(e);\n } finally {\n setLoading(false);\n }\n }\n };\n const fetchInstanceData = async (): Promise<void> => {\n await handleSearch(\"\", userQuery);\n };\n const getLabelOptions = (op: any) => {\n if (props.labelTemplate) {\n return parseTemplate(props.labelTemplate, op);\n } else {\n const label = op.label;\n if (Array.isArray(label)) {\n const firstKey = label[0];\n const resKey = label.slice(1, label.length).join(\",\");\n if (Array.isArray(firstKey) && effectiveShowKeyField) {\n const subFirstKey = firstKey[0];\n const subResKey = firstKey.slice(1, firstKey.length).join(\",\");\n return subResKey && isMultiLabel\n ? `${subFirstKey}(${subResKey})`\n : subFirstKey ?? \"\";\n }\n return resKey && isMultiLabel\n ? `${firstKey ?? \" - \"}(${resKey})`\n : firstKey ?? \"\";\n } else {\n return label;\n }\n }\n };\n\n React.useEffect(() => {\n // 初始化时通过用户的 value 得出首次 label 的值\n // 由于value的不确定性,可能存在首次查询的值不唯一,初始化时也添加instanceQuery\n if (\n props.objectId &&\n !isNil(props.value) &&\n (!isEqual(props.objectId, objectId) || !isEqual(props.value, value))\n ) {\n (async () => {\n const option = await handleSearch(\n \"\",\n [\n {\n [fields.value || \"instanceId\"]: {\n $in: castArray(props.value),\n },\n },\n\n ...userQuery,\n ],\n true,\n props.value?.length >= pageSize ? props.value.length : pageSize\n );\n setSelectedOptions(option);\n })();\n }\n const _value =\n props.mode === \"multiple\" && !trim(props.value) ? [] : props.value;\n setValue(_value);\n setObjectId(props.objectId);\n }, [props.value, props.objectId]);\n\n React.useEffect(() => {\n if (!firstRender) {\n const resetVal: [] | \"\" = mode === \"multiple\" ? [] : \"\";\n setValue(resetVal);\n }\n }, [props.objectId]);\n //istanbul ignore else\n const debounceSearch = debounce(\n (q: string) => handleSearch(q, userQuery),\n 500\n );\n\n return (\n <Select\n ref={ref}\n loading={loading}\n className=\"formsCmdbInstSelect\"\n allowClear={allowClear}\n style={defaults(props.inputBoxStyle, { width: \"100%\" })}\n showSearch\n filterOption={false}\n value={value as SelectValue}\n mode={mode as \"multiple\" | \"tags\"}\n placeholder={placeholder || t(K.BACKGROUND_SEARCH)}\n onChange={handleChange}\n onSearch={debounceSearch}\n onFocus={fetchInstanceData}\n disabled={props.disabled}\n dropdownStyle={{ padding: \"2px\", ...props.dropdownStyle }}\n dropdownMatchSelectWidth={dropdownMatchSelectWidth}\n dropdownRender={(menu) => {\n return (\n <div>\n {menu}\n {showSearchTip && total > pageSize && (\n <div className={style.moreChoices}>\n {t(K.MORE_RESULTS_TIPS, { pageSize })}\n </div>\n )}\n </div>\n );\n }}\n {...(props.popoverPositionType === \"parent\"\n ? { getPopupContainer: (triggerNode) => triggerNode.parentElement }\n : {})}\n >\n {options.map((op, index) => {\n const optionLabel = getLabelOptions(op);\n return (\n <Select.Option key={index} value={op.value} label={optionLabel}>\n <Tooltip title={props.showTooltip ? optionLabel : undefined}>\n <div className={classNames(style.optionDiv)}>\n {op.user_icon && (\n <span>\n <Avatar\n src={op.user_icon}\n size={24}\n className={classNames(style.avatar, {\n [style.defaultIcon]: op.user_icon === \"defaultIcon\",\n })}\n >\n {op.user_icon === \"defaultIcon\" && op.label?.slice(0, 2)}\n </Avatar>\n </span>\n )}\n <span\n className={classNames(style.optionSpan)}\n data-testid=\"option-label\"\n >\n {optionLabel}\n </span>\n {suffix?.useBrick && (\n <div className={style.suffixContainer}>\n <BrickAsComponent useBrick={suffix.useBrick} data={op} />\n </div>\n )}\n </div>\n </Tooltip>\n </Select.Option>\n );\n })}\n </Select>\n );\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"CmdbInstanceSelect.js","names":["React","useMemo","useTranslation","Select","Avatar","Tooltip","debounce","get","compact","castArray","defaults","isEqual","difference","isNil","trim","BrickAsComponent","handleHttpError","useProvider","getRuntime","InstanceApi_postSearchV3","getInstanceNameKey","parseTemplate","classNames","NS_LIBS_CMDB_INSTANCES","K","style","formatUserQuery","instanceQuery","arr","Array","isArray","CmdbInstanceSelect","forwardRef","props","ref","_props$showKeyField","t","miscSettings","getMiscSettings","miscShowKeyFields","cmdbInstanceSelectShowKeyFields","showKeyFieldWithSlash","effectiveShowKeyField","showKeyField","includes","objectId","fields","label","value","firstRender","minimumInputLength","extraSearchKey","extraFields","mode","placeholder","allowClear","pageSize","isMultiLabel","showSearchTip","permission","ignoreMissingFieldError","dropdownMatchSelectWidth","blurAfterValueChanged","suffix","useExternalCmdbApi","externalSourceId","userQuery","setValue","useState","setObjectId","options","setOptions","selectedOptions","setSelectedOptions","total","setTotal","loading","setLoading","externalPostSearchV3","cache","externalRequestParams","sourceId","computeFields","result","push","handleChange","newValue","selected","valueSet","Set","filter","item","has","oldValueSet","map","concat","find","selectNodes","document","getElementsByClassName","i","length","_selectNodes$i$getEle","_selectNodes$i$getEle2","getElementsByTagName","blur","onChange","handleSearch","_ref","_asyncToGenerator","q","extraQuery","forceSearch","arguments","undefined","pageSizeQuery","_props$optionsChange","list","fieldsQuery","$like","paramQuery","_objectSpread","query","$and","$or","key","page","page_size","ignore_missing_field_error","sort","data","option","user_icon","optionsChange","call","e","_x","_x2","apply","fetchInstanceData","_ref2","getLabelOptions","op","labelTemplate","firstKey","resKey","slice","join","subFirstKey","subResKey","useEffect","_props$value","$in","_value","resetVal","debounceSearch","createElement","_extends","className","inputBoxStyle","width","showSearch","filterOption","BACKGROUND_SEARCH","onSearch","onFocus","disabled","dropdownStyle","padding","dropdownRender","menu","moreChoices","MORE_RESULTS_TIPS","popoverPositionType","getPopupContainer","triggerNode","parentElement","index","_op$label","optionLabel","Option","title","showTooltip","optionDiv","src","size","avatar","defaultIcon","optionSpan","useBrick","suffixContainer"],"sources":["../../../src/cmdb-instance-select/CmdbInstanceSelect.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Select, Avatar, Tooltip } from \"antd\";\nimport { SelectValue } from \"antd/lib/select\";\nimport {\n debounce,\n get,\n compact,\n castArray,\n defaults,\n isEqual,\n difference,\n isNil,\n trim,\n} from \"lodash\";\nimport {\n BrickAsComponent,\n handleHttpError,\n useProvider,\n getRuntime,\n} from \"@next-core/brick-kit\";\nimport { UseBrickConf } from \"@next-core/brick-types\";\nimport { InstanceApi_postSearchV3 } from \"@next-sdk/cmdb-sdk\";\nimport { getInstanceNameKey, parseTemplate } from \"@next-libs/cmdb-utils\";\nimport classNames from \"classnames\";\n\nimport { NS_LIBS_CMDB_INSTANCES, K } from \"../i18n/constants\";\n\nimport style from \"./CmdbInstanceSelect.module.css\";\n\nexport interface CmdbInstanceSelectProps {\n objectId: string;\n mode?: string;\n pageSize?: number;\n instanceQuery?: any;\n placeholder?: string;\n fields?: Partial<ComplexOption<string>>;\n firstRender?: boolean;\n minimumInputLength?: number;\n value?: any;\n onChange?: (value: string, option?: ComplexOption) => void;\n optionsChange?: (options: ComplexOption[]) => void;\n allowClear?: boolean;\n inputBoxStyle?: React.CSSProperties;\n extraSearchKey?: string[];\n extraFields?: string[];\n popoverPositionType?: \"default\" | \"parent\";\n isMultiLabel?: boolean;\n showSearchTip?: boolean;\n labelTemplate?: string;\n disabled?: boolean;\n permission?: Array<\"read\" | \"update\" | \"operate\">;\n showTooltip?: boolean;\n ignoreMissingFieldError?: boolean;\n showKeyField?: boolean;\n dropdownMatchSelectWidth?: boolean;\n dropdownStyle?: React.CSSProperties;\n blurAfterValueChanged?: boolean;\n sort?: Array<Record<string, number | string>>;\n suffix?: {\n useBrick: UseBrickConf;\n };\n useBrickVisible?: boolean;\n useExternalCmdbApi?: boolean;\n externalSourceId?: string;\n}\n\nexport interface ComplexOption<T = string | number> {\n label: string[] | string;\n value: T;\n user_icon?: string; // objectId为USER的时候显示用户头像\n}\n\nexport function formatUserQuery(instanceQuery: any): any[] {\n const arr = Array.isArray(instanceQuery) ? instanceQuery : [instanceQuery];\n\n return compact(arr);\n}\n\nexport const CmdbInstanceSelect = React.forwardRef(function CmdbInstanceSelect(\n props: CmdbInstanceSelectProps,\n ref: any\n): React.ReactElement {\n const { t } = useTranslation(NS_LIBS_CMDB_INSTANCES);\n // 编排未显式指定 showKeyField 时,由 misc 设置 cmdbInstanceSelectShowKeyFields\n // 按模型启用 showKey 展示,如:[\"HOST\", \"APP\"]\n const miscSettings = getRuntime().getMiscSettings();\n const miscShowKeyFields = miscSettings?.cmdbInstanceSelectShowKeyFields as\n | string[]\n | undefined;\n const showKeyFieldWithSlash = miscSettings?.showKeyFieldWithSlash === true;\n const effectiveShowKeyField =\n props.showKeyField ?? !!miscShowKeyFields?.includes(props.objectId);\n const {\n // 默认显示 label 为模型的 name/hostname, value 为 instanceId\n // 当showKeyField时,实例展示是用showKey里的数据展示\n fields = {\n label: [\n effectiveShowKeyField ? \"#showKey\" : getInstanceNameKey(props.objectId),\n ],\n value: \"instanceId\",\n },\n firstRender = true,\n minimumInputLength = 0,\n extraSearchKey = [],\n extraFields = [],\n mode,\n placeholder,\n allowClear,\n pageSize = 30,\n isMultiLabel = true,\n showSearchTip,\n permission,\n ignoreMissingFieldError,\n dropdownMatchSelectWidth = true,\n blurAfterValueChanged,\n suffix,\n useExternalCmdbApi,\n externalSourceId,\n } = props;\n const userQuery = formatUserQuery(props.instanceQuery);\n //istanbul ignore else\n if (!fields.value) {\n fields.value = \"instanceId\";\n }\n\n const [value, setValue] = React.useState<unknown>();\n const [objectId, setObjectId] = React.useState<string>();\n const [options, setOptions] = React.useState<ComplexOption[]>([]);\n const [selectedOptions, setSelectedOptions] = React.useState<ComplexOption[]>(\n []\n );\n const [total, setTotal] = React.useState(0);\n const [loading, setLoading] = React.useState(false);\n\n // 用于外部调用的接口, 当useExternalCmdbApi为true,才调用这些接口\n const externalPostSearchV3 = useProvider(\n \"easyops.api.cmdb.topo_center@ProxyPostSearchV3:1.0.1\",\n { cache: false }\n );\n\n // useExternalCmdbApi为true,外部接口参数\n const externalRequestParams = useMemo(() => {\n return {\n objectId: props.objectId,\n sourceId: props.externalSourceId,\n };\n }, [props.objectId, externalSourceId]);\n const computeFields = () => {\n const result = [\n fields.value,\n ...(Array.isArray(fields.label) ? fields.label : [fields.label]),\n ...extraSearchKey,\n ...extraFields,\n ];\n\n if (props.objectId === \"USER\") {\n result.push(\"user_icon\");\n }\n return result;\n };\n\n const handleChange = (newValue: any): void => {\n let selected: any | any[];\n if (mode === \"multiple\") {\n const valueSet = new Set(newValue);\n selected = options.filter((item) => valueSet.has(item.value));\n const oldValueSet = new Set(\n difference(\n newValue,\n (selected as any[]).map((item) => item.value)\n )\n );\n selected = selected.concat(\n selectedOptions.filter((item) => oldValueSet.has(item.value))\n );\n } else {\n selected = options.find((item) => item.value === newValue);\n }\n\n if (blurAfterValueChanged) {\n const selectNodes = document.getElementsByClassName(\n \"formsCmdbInstSelect\"\n );\n for (let i = 0; i < selectNodes.length; i++) {\n selectNodes[i].getElementsByTagName(\"input\")?.[0]?.blur();\n }\n }\n setValue(newValue);\n setSelectedOptions(selected);\n props.onChange && props.onChange(newValue, selected);\n };\n //istanbul ignore else\n const handleSearch = async (\n q: string,\n extraQuery: any,\n forceSearch = false,\n pageSizeQuery?: number\n ): Promise<ComplexOption[]> => {\n if (forceSearch || q.length >= minimumInputLength) {\n try {\n let list = [];\n if (!props.objectId) {\n return;\n }\n setLoading(true);\n const fieldsQuery = Array.isArray(fields.label)\n ? fields.label.map((label) => ({ [label]: { $like: `%${q}%` } }))\n : [{ [fields.label]: { $like: `%${q}%` } }];\n const paramQuery = {\n query: {\n $and: [\n {\n $or: [\n ...fieldsQuery,\n ...extraSearchKey.map((key) => ({\n [key]: { $like: `%${q}%` },\n })),\n ],\n },\n\n ...extraQuery,\n ],\n },\n ...(permission ? { permission } : {}),\n fields: computeFields(),\n page: 1,\n page_size: pageSizeQuery || pageSize,\n ignore_missing_field_error: ignoreMissingFieldError,\n sort: props.sort,\n };\n const data = useExternalCmdbApi\n ? await externalPostSearchV3.query([\n {\n ...paramQuery,\n ...externalRequestParams,\n },\n ])\n : await InstanceApi_postSearchV3(props.objectId, paramQuery);\n\n list = data.list;\n setTotal(data.total);\n // 根据用户设置路径显示特定的 label 和 value\n const option = list.map((item: any) => ({\n ...item,\n label: Array.isArray(fields.label)\n ? fields.label.map((label) => get(item, label))\n : get(item, fields.label),\n value: get(item, fields.value),\n ...(props.objectId === \"USER\"\n ? {\n user_icon: get(item, \"user_icon\", \"defaultIcon\"),\n }\n : {}),\n }));\n setOptions(option);\n props.optionsChange?.(option);\n return option;\n } catch (e) {\n handleHttpError(e);\n } finally {\n setLoading(false);\n }\n }\n };\n const fetchInstanceData = async (): Promise<void> => {\n await handleSearch(\"\", userQuery);\n };\n const getLabelOptions = (op: any) => {\n if (props.labelTemplate) {\n return parseTemplate(props.labelTemplate, op);\n } else {\n const label = op.label;\n if (Array.isArray(label)) {\n const firstKey = label[0];\n const resKey = label.slice(1, label.length).join(\",\");\n if (Array.isArray(firstKey) && effectiveShowKeyField) {\n const subFirstKey = firstKey[0];\n const subResKey = firstKey.slice(1, firstKey.length).join(\",\");\n return subResKey && isMultiLabel\n ? showKeyFieldWithSlash\n ? `${subFirstKey}/${subResKey}`\n : `${subFirstKey}(${subResKey})`\n : subFirstKey ?? \"\";\n }\n return resKey && isMultiLabel\n ? `${firstKey ?? \" - \"}(${resKey})`\n : firstKey ?? \"\";\n } else {\n return label;\n }\n }\n };\n\n React.useEffect(() => {\n // 初始化时通过用户的 value 得出首次 label 的值\n // 由于value的不确定性,可能存在首次查询的值不唯一,初始化时也添加instanceQuery\n if (\n props.objectId &&\n !isNil(props.value) &&\n (!isEqual(props.objectId, objectId) || !isEqual(props.value, value))\n ) {\n (async () => {\n const option = await handleSearch(\n \"\",\n [\n {\n [fields.value || \"instanceId\"]: {\n $in: castArray(props.value),\n },\n },\n\n ...userQuery,\n ],\n true,\n props.value?.length >= pageSize ? props.value.length : pageSize\n );\n setSelectedOptions(option);\n })();\n }\n const _value =\n props.mode === \"multiple\" && !trim(props.value) ? [] : props.value;\n setValue(_value);\n setObjectId(props.objectId);\n }, [props.value, props.objectId]);\n\n React.useEffect(() => {\n if (!firstRender) {\n const resetVal: [] | \"\" = mode === \"multiple\" ? [] : \"\";\n setValue(resetVal);\n }\n }, [props.objectId]);\n //istanbul ignore else\n const debounceSearch = debounce(\n (q: string) => handleSearch(q, userQuery),\n 500\n );\n\n return (\n <Select\n ref={ref}\n loading={loading}\n className=\"formsCmdbInstSelect\"\n allowClear={allowClear}\n style={defaults(props.inputBoxStyle, { width: \"100%\" })}\n showSearch\n filterOption={false}\n value={value as SelectValue}\n mode={mode as \"multiple\" | \"tags\"}\n placeholder={placeholder || t(K.BACKGROUND_SEARCH)}\n onChange={handleChange}\n onSearch={debounceSearch}\n onFocus={fetchInstanceData}\n disabled={props.disabled}\n dropdownStyle={{ padding: \"2px\", ...props.dropdownStyle }}\n dropdownMatchSelectWidth={dropdownMatchSelectWidth}\n dropdownRender={(menu) => {\n return (\n <div>\n {menu}\n {showSearchTip && total > pageSize && (\n <div className={style.moreChoices}>\n {t(K.MORE_RESULTS_TIPS, { pageSize })}\n </div>\n )}\n </div>\n );\n }}\n {...(props.popoverPositionType === \"parent\"\n ? { getPopupContainer: (triggerNode) => triggerNode.parentElement }\n : {})}\n >\n {options.map((op, index) => {\n const optionLabel = getLabelOptions(op);\n return (\n <Select.Option key={index} value={op.value} label={optionLabel}>\n <Tooltip title={props.showTooltip ? optionLabel : undefined}>\n <div className={classNames(style.optionDiv)}>\n {op.user_icon && (\n <span>\n <Avatar\n src={op.user_icon}\n size={24}\n className={classNames(style.avatar, {\n [style.defaultIcon]: op.user_icon === \"defaultIcon\",\n })}\n >\n {op.user_icon === \"defaultIcon\" && op.label?.slice(0, 2)}\n </Avatar>\n </span>\n )}\n <span\n className={classNames(style.optionSpan)}\n data-testid=\"option-label\"\n >\n {optionLabel}\n </span>\n {suffix?.useBrick && (\n <div className={style.suffixContainer}>\n <BrickAsComponent useBrick={suffix.useBrick} data={op} />\n </div>\n )}\n </div>\n </Tooltip>\n </Select.Option>\n );\n })}\n </Select>\n );\n});\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@next-libs/cmdb-instances",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.32.0",
|
|
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",
|
|
@@ -54,5 +54,5 @@
|
|
|
54
54
|
"js-base64": "^3.7.7",
|
|
55
55
|
"marked": "^2.1.3"
|
|
56
56
|
},
|
|
57
|
-
"gitHead": "
|
|
57
|
+
"gitHead": "542d3b889ef608c515b22fa8fb8991a1d5328e34"
|
|
58
58
|
}
|