@next-libs/cmdb-instances 7.30.29 → 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,15 +23,21 @@ 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 _props$showKeyField;
26
27
  const {
27
28
  t
28
29
  } = (0, _reactI18next.useTranslation)(_constants.NS_LIBS_CMDB_INSTANCES);
30
+ // 编排未显式指定 showKeyField 时,由 misc 设置 cmdbInstanceSelectShowKeyFields
31
+ // 按模型启用 showKey 展示,如:["HOST", "APP"]
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;
35
+ const effectiveShowKeyField = (_props$showKeyField = props.showKeyField) !== null && _props$showKeyField !== void 0 ? _props$showKeyField : !!(miscShowKeyFields !== null && miscShowKeyFields !== void 0 && miscShowKeyFields.includes(props.objectId));
29
36
  const {
30
- showKeyField,
31
37
  // 默认显示 label 为模型的 name/hostname, value 为 instanceId
32
38
  // 当showKeyField时,实例展示是用showKey里的数据展示
33
39
  fields = {
34
- label: [showKeyField ? "#showKey" : (0, _cmdbUtils.getInstanceNameKey)(props.objectId)],
40
+ label: [effectiveShowKeyField ? "#showKey" : (0, _cmdbUtils.getInstanceNameKey)(props.objectId)],
35
41
  value: "instanceId"
36
42
  },
37
43
  firstRender = true,
@@ -178,10 +184,10 @@ const CmdbInstanceSelect = exports.CmdbInstanceSelect = /*#__PURE__*/_react.defa
178
184
  if (Array.isArray(label)) {
179
185
  const firstKey = label[0];
180
186
  const resKey = label.slice(1, label.length).join(",");
181
- if (Array.isArray(firstKey) && props.showKeyField) {
187
+ if (Array.isArray(firstKey) && effectiveShowKeyField) {
182
188
  const subFirstKey = firstKey[0];
183
189
  const subResKey = firstKey.slice(1, firstKey.length).join(",");
184
- 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 : "";
185
191
  }
186
192
  return resKey && isMultiLabel ? `${firstKey !== null && firstKey !== void 0 ? firstKey : " - "}(${resKey})` : firstKey !== null && firstKey !== void 0 ? firstKey : "";
187
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","t","useTranslation","NS_LIBS_CMDB_INSTANCES","showKeyField","fields","label","getInstanceNameKey","objectId","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} 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 const {\n showKeyField,\n // 默认显示 label 为模型的 name/hostname, value 为 instanceId\n // 当showKeyField时,实例展示是用showKey里的数据展示\n fields = {\n label: [showKeyField ? \"#showKey\" : getInstanceNameKey(props.objectId)],\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) && props.showKeyField) {\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":[]}
@@ -5,7 +5,7 @@ import React, { useMemo } from "react";
5
5
  import { useTranslation } from "react-i18next";
6
6
  import { Select, Avatar, Tooltip } from "antd";
7
7
  import { debounce, get, compact, castArray, defaults, isEqual, difference, isNil, trim } from "lodash";
8
- import { BrickAsComponent, handleHttpError, useProvider } from "@next-core/brick-kit";
8
+ import { BrickAsComponent, handleHttpError, useProvider, getRuntime } from "@next-core/brick-kit";
9
9
  import { InstanceApi_postSearchV3 } from "@next-sdk/cmdb-sdk";
10
10
  import { getInstanceNameKey, parseTemplate } from "@next-libs/cmdb-utils";
11
11
  import classNames from "classnames";
@@ -16,15 +16,21 @@ 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 _props$showKeyField;
19
20
  var {
20
21
  t
21
22
  } = useTranslation(NS_LIBS_CMDB_INSTANCES);
23
+ // 编排未显式指定 showKeyField 时,由 misc 设置 cmdbInstanceSelectShowKeyFields
24
+ // 按模型启用 showKey 展示,如:["HOST", "APP"]
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;
28
+ var effectiveShowKeyField = (_props$showKeyField = props.showKeyField) !== null && _props$showKeyField !== void 0 ? _props$showKeyField : !!(miscShowKeyFields !== null && miscShowKeyFields !== void 0 && miscShowKeyFields.includes(props.objectId));
22
29
  var {
23
- showKeyField,
24
30
  // 默认显示 label 为模型的 name/hostname, value 为 instanceId
25
31
  // 当showKeyField时,实例展示是用showKey里的数据展示
26
32
  fields = {
27
- label: [showKeyField ? "#showKey" : getInstanceNameKey(props.objectId)],
33
+ label: [effectiveShowKeyField ? "#showKey" : getInstanceNameKey(props.objectId)],
28
34
  value: "instanceId"
29
35
  },
30
36
  firstRender = true,
@@ -178,10 +184,10 @@ export var CmdbInstanceSelect = /*#__PURE__*/React.forwardRef(function CmdbInsta
178
184
  if (Array.isArray(label)) {
179
185
  var firstKey = label[0];
180
186
  var resKey = label.slice(1, label.length).join(",");
181
- if (Array.isArray(firstKey) && props.showKeyField) {
187
+ if (Array.isArray(firstKey) && effectiveShowKeyField) {
182
188
  var subFirstKey = firstKey[0];
183
189
  var subResKey = firstKey.slice(1, firstKey.length).join(",");
184
- 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 : "";
185
191
  }
186
192
  return resKey && isMultiLabel ? "".concat(firstKey !== null && firstKey !== void 0 ? firstKey : " - ", "(").concat(resKey, ")") : firstKey !== null && firstKey !== void 0 ? firstKey : "";
187
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","InstanceApi_postSearchV3","getInstanceNameKey","parseTemplate","classNames","NS_LIBS_CMDB_INSTANCES","K","style","formatUserQuery","instanceQuery","arr","Array","isArray","CmdbInstanceSelect","forwardRef","props","ref","t","showKeyField","fields","label","objectId","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} 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 const {\n showKeyField,\n // 默认显示 label 为模型的 name/hostname, value 为 instanceId\n // 当showKeyField时,实例展示是用showKey里的数据展示\n fields = {\n label: [showKeyField ? \"#showKey\" : getInstanceNameKey(props.objectId)],\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) && props.showKeyField) {\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.30.29",
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": "2e2b3caf8ea94923950a5826c066d9ba4521e2e5"
57
+ "gitHead": "542d3b889ef608c515b22fa8fb8991a1d5328e34"
58
58
  }