@next-libs/cmdb-instances 7.30.29 → 7.31.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,19 @@ 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 _getRuntime$getMiscSe, _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 miscShowKeyFields = (_getRuntime$getMiscSe = (0, _brickKit.getRuntime)().getMiscSettings()) === null || _getRuntime$getMiscSe === void 0 ? void 0 : _getRuntime$getMiscSe.cmdbInstanceSelectShowKeyFields;
33
+ const effectiveShowKeyField = (_props$showKeyField = props.showKeyField) !== null && _props$showKeyField !== void 0 ? _props$showKeyField : !!(miscShowKeyFields !== null && miscShowKeyFields !== void 0 && miscShowKeyFields.includes(props.objectId));
29
34
  const {
30
- showKeyField,
31
35
  // 默认显示 label 为模型的 name/hostname, value 为 instanceId
32
36
  // 当showKeyField时,实例展示是用showKey里的数据展示
33
37
  fields = {
34
- label: [showKeyField ? "#showKey" : (0, _cmdbUtils.getInstanceNameKey)(props.objectId)],
38
+ label: [effectiveShowKeyField ? "#showKey" : (0, _cmdbUtils.getInstanceNameKey)(props.objectId)],
35
39
  value: "instanceId"
36
40
  },
37
41
  firstRender = true,
@@ -178,7 +182,7 @@ const CmdbInstanceSelect = exports.CmdbInstanceSelect = /*#__PURE__*/_react.defa
178
182
  if (Array.isArray(label)) {
179
183
  const firstKey = label[0];
180
184
  const resKey = label.slice(1, label.length).join(",");
181
- if (Array.isArray(firstKey) && props.showKeyField) {
185
+ if (Array.isArray(firstKey) && effectiveShowKeyField) {
182
186
  const subFirstKey = firstKey[0];
183
187
  const subResKey = firstKey.slice(1, firstKey.length).join(",");
184
188
  return subResKey && isMultiLabel ? `${subFirstKey}(${subResKey})` : subFirstKey !== null && subFirstKey !== void 0 ? subFirstKey : "";
@@ -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","_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":";;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AAEA,IAAAG,OAAA,GAAAH,OAAA;AAWA,IAAAI,SAAA,GAAAJ,OAAA;AAOA,IAAAK,QAAA,GAAAL,OAAA;AACA,IAAAM,UAAA,GAAAN,OAAA;AACA,IAAAO,WAAA,GAAAC,sBAAA,CAAAR,OAAA;AAEA,IAAAS,UAAA,GAAAT,OAAA;AAEA,IAAAU,yBAAA,GAAAF,sBAAA,CAAAR,OAAA;AA6CO,SAASW,eAAeA,CAACC,aAAkB,EAAS;EACzD,MAAMC,GAAG,GAAGC,KAAK,CAACC,OAAO,CAACH,aAAa,CAAC,GAAGA,aAAa,GAAG,CAACA,aAAa,CAAC;EAE1E,OAAO,IAAAI,eAAO,EAACH,GAAG,CAAC;AACrB;AAEO,MAAMI,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,gBAAGE,cAAK,CAACC,UAAU,CAAC,SAASH,kBAAkBA,CAC5EI,KAA8B,EAC9BC,GAAQ,EACY;EAAA,IAAAC,qBAAA,EAAAC,mBAAA;EACpB,MAAM;IAAEC;EAAE,CAAC,GAAG,IAAAC,4BAAc,EAACC,iCAAsB,CAAC;EACpD;EACA;EACA,MAAMC,iBAAiB,IAAAL,qBAAA,GAAG,IAAAM,oBAAU,EAAC,CAAC,CAACC,eAAe,CAAC,CAAC,cAAAP,qBAAA,uBAA9BA,qBAAA,CACtBQ,+BAAuD;EAC3D,MAAMC,qBAAqB,IAAAR,mBAAA,GACzBH,KAAK,CAACY,YAAY,cAAAT,mBAAA,cAAAA,mBAAA,GAAI,CAAC,EAACI,iBAAiB,aAAjBA,iBAAiB,eAAjBA,iBAAiB,CAAEM,QAAQ,CAACb,KAAK,CAACc,QAAQ,CAAC;EACrE,MAAM;IACJ;IACA;IACAC,MAAM,GAAG;MACPC,KAAK,EAAE,CACLL,qBAAqB,GAAG,UAAU,GAAG,IAAAM,6BAAkB,EAACjB,KAAK,CAACc,QAAQ,CAAC,CACxE;MACDI,KAAK,EAAE;IACT,CAAC;IACDC,WAAW,GAAG,IAAI;IAClBC,kBAAkB,GAAG,CAAC;IACtBC,cAAc,GAAG,EAAE;IACnBC,WAAW,GAAG,EAAE;IAChBC,IAAI;IACJC,WAAW;IACXC,UAAU;IACVC,QAAQ,GAAG,EAAE;IACbC,YAAY,GAAG,IAAI;IACnBC,aAAa;IACbC,UAAU;IACVC,uBAAuB;IACvBC,wBAAwB,GAAG,IAAI;IAC/BC,qBAAqB;IACrBC,MAAM;IACNC,kBAAkB;IAClBC;EACF,CAAC,GAAGnC,KAAK;EACT,MAAMoC,SAAS,GAAG9C,eAAe,CAACU,KAAK,CAACT,aAAa,CAAC;EACtD;EACA,IAAI,CAACwB,MAAM,CAACG,KAAK,EAAE;IACjBH,MAAM,CAACG,KAAK,GAAG,YAAY;EAC7B;EAEA,MAAM,CAACA,KAAK,EAAEmB,QAAQ,CAAC,GAAGvC,cAAK,CAACwC,QAAQ,CAAU,CAAC;EACnD,MAAM,CAACxB,QAAQ,EAAEyB,WAAW,CAAC,GAAGzC,cAAK,CAACwC,QAAQ,CAAS,CAAC;EACxD,MAAM,CAACE,OAAO,EAAEC,UAAU,CAAC,GAAG3C,cAAK,CAACwC,QAAQ,CAAkB,EAAE,CAAC;EACjE,MAAM,CAACI,eAAe,EAAEC,kBAAkB,CAAC,GAAG7C,cAAK,CAACwC,QAAQ,CAC1D,EACF,CAAC;EACD,MAAM,CAACM,KAAK,EAAEC,QAAQ,CAAC,GAAG/C,cAAK,CAACwC,QAAQ,CAAC,CAAC,CAAC;EAC3C,MAAM,CAACQ,OAAO,EAAEC,UAAU,CAAC,GAAGjD,cAAK,CAACwC,QAAQ,CAAC,KAAK,CAAC;;EAEnD;EACA,MAAMU,oBAAoB,GAAG,IAAAC,qBAAW,EACtC,sDAAsD,EACtD;IAAEC,KAAK,EAAE;EAAM,CACjB,CAAC;;EAED;EACA,MAAMC,qBAAqB,GAAG,IAAAC,cAAO,EAAC,MAAM;IAC1C,OAAO;MACLtC,QAAQ,EAAEd,KAAK,CAACc,QAAQ;MACxBuC,QAAQ,EAAErD,KAAK,CAACmC;IAClB,CAAC;EACH,CAAC,EAAE,CAACnC,KAAK,CAACc,QAAQ,EAAEqB,gBAAgB,CAAC,CAAC;EACtC,MAAMmB,aAAa,GAAGA,CAAA,KAAM;IAC1B,MAAMC,MAAM,GAAG,CACbxC,MAAM,CAACG,KAAK,EACZ,IAAIzB,KAAK,CAACC,OAAO,CAACqB,MAAM,CAACC,KAAK,CAAC,GAAGD,MAAM,CAACC,KAAK,GAAG,CAACD,MAAM,CAACC,KAAK,CAAC,CAAC,EAChE,GAAGK,cAAc,EACjB,GAAGC,WAAW,CACf;IAED,IAAItB,KAAK,CAACc,QAAQ,KAAK,MAAM,EAAE;MAC7ByC,MAAM,CAACC,IAAI,CAAC,WAAW,CAAC;IAC1B;IACA,OAAOD,MAAM;EACf,CAAC;EAED,MAAME,YAAY,GAAIC,QAAa,IAAW;IAC5C,IAAIC,QAAqB;IACzB,IAAIpC,IAAI,KAAK,UAAU,EAAE;MACvB,MAAMqC,QAAQ,GAAG,IAAIC,GAAG,CAACH,QAAQ,CAAC;MAClCC,QAAQ,GAAGnB,OAAO,CAACsB,MAAM,CAAEC,IAAI,IAAKH,QAAQ,CAACI,GAAG,CAACD,IAAI,CAAC7C,KAAK,CAAC,CAAC;MAC7D,MAAM+C,WAAW,GAAG,IAAIJ,GAAG,CACzB,IAAAK,kBAAU,EACRR,QAAQ,EACPC,QAAQ,CAAWQ,GAAG,CAAEJ,IAAI,IAAKA,IAAI,CAAC7C,KAAK,CAC9C,CACF,CAAC;MACDyC,QAAQ,GAAGA,QAAQ,CAACS,MAAM,CACxB1B,eAAe,CAACoB,MAAM,CAAEC,IAAI,IAAKE,WAAW,CAACD,GAAG,CAACD,IAAI,CAAC7C,KAAK,CAAC,CAC9D,CAAC;IACH,CAAC,MAAM;MACLyC,QAAQ,GAAGnB,OAAO,CAAC6B,IAAI,CAAEN,IAAI,IAAKA,IAAI,CAAC7C,KAAK,KAAKwC,QAAQ,CAAC;IAC5D;IAEA,IAAI1B,qBAAqB,EAAE;MACzB,MAAMsC,WAAW,GAAGC,QAAQ,CAACC,sBAAsB,CACjD,qBACF,CAAC;MACD,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,WAAW,CAACI,MAAM,EAAED,CAAC,EAAE,EAAE;QAAA,IAAAE,qBAAA,EAAAC,sBAAA;QAC3C,CAAAD,qBAAA,GAAAL,WAAW,CAACG,CAAC,CAAC,CAACI,oBAAoB,CAAC,OAAO,CAAC,cAAAF,qBAAA,wBAAAC,sBAAA,GAA5CD,qBAAA,CAA+C,CAAC,CAAC,cAAAC,sBAAA,uBAAjDA,sBAAA,CAAmDE,IAAI,CAAC,CAAC;MAC3D;IACF;IACAzC,QAAQ,CAACqB,QAAQ,CAAC;IAClBf,kBAAkB,CAACgB,QAAQ,CAAC;IAC5B3D,KAAK,CAAC+E,QAAQ,IAAI/E,KAAK,CAAC+E,QAAQ,CAACrB,QAAQ,EAAEC,QAAQ,CAAC;EACtD,CAAC;EACD;EACA,MAAMqB,YAAY,GAAG,MAAAA,CACnBC,CAAS,EACTC,UAAe,EACfC,WAAW,GAAG,KAAK,EACnBC,aAAsB,KACO;IAC7B,IAAID,WAAW,IAAIF,CAAC,CAACP,MAAM,IAAItD,kBAAkB,EAAE;MACjD,IAAI;QAAA,IAAAiE,oBAAA;QACF,IAAIC,IAAI,GAAG,EAAE;QACb,IAAI,CAACtF,KAAK,CAACc,QAAQ,EAAE;UACnB;QACF;QACAiC,UAAU,CAAC,IAAI,CAAC;QAChB,MAAMwC,WAAW,GAAG9F,KAAK,CAACC,OAAO,CAACqB,MAAM,CAACC,KAAK,CAAC,GAC3CD,MAAM,CAACC,KAAK,CAACmD,GAAG,CAAEnD,KAAK,KAAM;UAAE,CAACA,KAAK,GAAG;YAAEwE,KAAK,EAAE,IAAIP,CAAC;UAAI;QAAE,CAAC,CAAC,CAAC,GAC/D,CAAC;UAAE,CAAClE,MAAM,CAACC,KAAK,GAAG;YAAEwE,KAAK,EAAE,IAAIP,CAAC;UAAI;QAAE,CAAC,CAAC;QAC7C,MAAMQ,UAAU,GAAG;UACjBC,KAAK,EAAE;YACLC,IAAI,EAAE,CACJ;cACEC,GAAG,EAAE,CACH,GAAGL,WAAW,EACd,GAAGlE,cAAc,CAAC8C,GAAG,CAAE0B,GAAG,KAAM;gBAC9B,CAACA,GAAG,GAAG;kBAAEL,KAAK,EAAE,IAAIP,CAAC;gBAAI;cAC3B,CAAC,CAAC,CAAC;YAEP,CAAC,EAED,GAAGC,UAAU;UAEjB,CAAC;UACD,IAAIrD,UAAU,GAAG;YAAEA;UAAW,CAAC,GAAG,CAAC,CAAC,CAAC;UACrCd,MAAM,EAAEuC,aAAa,CAAC,CAAC;UACvBwC,IAAI,EAAE,CAAC;UACPC,SAAS,EAAEX,aAAa,IAAI1D,QAAQ;UACpCsE,0BAA0B,EAAElE,uBAAuB;UACnDmE,IAAI,EAAEjG,KAAK,CAACiG;QACd,CAAC;QACD,MAAMC,IAAI,GAAGhE,kBAAkB,GAC3B,MAAMc,oBAAoB,CAAC0C,KAAK,CAAC,CAC/B;UACE,GAAGD,UAAU;UACb,GAAGtC;QACL,CAAC,CACF,CAAC,GACF,MAAM,IAAAgD,iCAAwB,EAACnG,KAAK,CAACc,QAAQ,EAAE2E,UAAU,CAAC;QAE9DH,IAAI,GAAGY,IAAI,CAACZ,IAAI;QAChBzC,QAAQ,CAACqD,IAAI,CAACtD,KAAK,CAAC;QACpB;QACA,MAAMwD,MAAM,GAAGd,IAAI,CAACnB,GAAG,CAAEJ,IAAS,KAAM;UACtC,GAAGA,IAAI;UACP/C,KAAK,EAAEvB,KAAK,CAACC,OAAO,CAACqB,MAAM,CAACC,KAAK,CAAC,GAC9BD,MAAM,CAACC,KAAK,CAACmD,GAAG,CAAEnD,KAAK,IAAK,IAAAqF,WAAG,EAACtC,IAAI,EAAE/C,KAAK,CAAC,CAAC,GAC7C,IAAAqF,WAAG,EAACtC,IAAI,EAAEhD,MAAM,CAACC,KAAK,CAAC;UAC3BE,KAAK,EAAE,IAAAmF,WAAG,EAACtC,IAAI,EAAEhD,MAAM,CAACG,KAAK,CAAC;UAC9B,IAAIlB,KAAK,CAACc,QAAQ,KAAK,MAAM,GACzB;YACEwF,SAAS,EAAE,IAAAD,WAAG,EAACtC,IAAI,EAAE,WAAW,EAAE,aAAa;UACjD,CAAC,GACD,CAAC,CAAC;QACR,CAAC,CAAC,CAAC;QACHtB,UAAU,CAAC2D,MAAM,CAAC;QAClB,CAAAf,oBAAA,GAAArF,KAAK,CAACuG,aAAa,cAAAlB,oBAAA,uBAAnBA,oBAAA,CAAAmB,IAAA,CAAAxG,KAAK,EAAiBoG,MAAM,CAAC;QAC7B,OAAOA,MAAM;MACf,CAAC,CAAC,OAAOK,CAAC,EAAE;QACV,IAAAC,yBAAe,EAACD,CAAC,CAAC;MACpB,CAAC,SAAS;QACR1D,UAAU,CAAC,KAAK,CAAC;MACnB;IACF;EACF,CAAC;EACD,MAAM4D,iBAAiB,GAAG,MAAAA,CAAA,KAA2B;IACnD,MAAM3B,YAAY,CAAC,EAAE,EAAE5C,SAAS,CAAC;EACnC,CAAC;EACD,MAAMwE,eAAe,GAAIC,EAAO,IAAK;IACnC,IAAI7G,KAAK,CAAC8G,aAAa,EAAE;MACvB,OAAO,IAAAC,wBAAa,EAAC/G,KAAK,CAAC8G,aAAa,EAAED,EAAE,CAAC;IAC/C,CAAC,MAAM;MACL,MAAM7F,KAAK,GAAG6F,EAAE,CAAC7F,KAAK;MACtB,IAAIvB,KAAK,CAACC,OAAO,CAACsB,KAAK,CAAC,EAAE;QACxB,MAAMgG,QAAQ,GAAGhG,KAAK,CAAC,CAAC,CAAC;QACzB,MAAMiG,MAAM,GAAGjG,KAAK,CAACkG,KAAK,CAAC,CAAC,EAAElG,KAAK,CAAC0D,MAAM,CAAC,CAACyC,IAAI,CAAC,GAAG,CAAC;QACrD,IAAI1H,KAAK,CAACC,OAAO,CAACsH,QAAQ,CAAC,IAAIrG,qBAAqB,EAAE;UACpD,MAAMyG,WAAW,GAAGJ,QAAQ,CAAC,CAAC,CAAC;UAC/B,MAAMK,SAAS,GAAGL,QAAQ,CAACE,KAAK,CAAC,CAAC,EAAEF,QAAQ,CAACtC,MAAM,CAAC,CAACyC,IAAI,CAAC,GAAG,CAAC;UAC9D,OAAOE,SAAS,IAAI1F,YAAY,GAC5B,GAAGyF,WAAW,IAAIC,SAAS,GAAG,GAC9BD,WAAW,aAAXA,WAAW,cAAXA,WAAW,GAAI,EAAE;QACvB;QACA,OAAOH,MAAM,IAAItF,YAAY,GACzB,GAAGqF,QAAQ,aAARA,QAAQ,cAARA,QAAQ,GAAI,KAAK,IAAIC,MAAM,GAAG,GACjCD,QAAQ,aAARA,QAAQ,cAARA,QAAQ,GAAI,EAAE;MACpB,CAAC,MAAM;QACL,OAAOhG,KAAK;MACd;IACF;EACF,CAAC;EAEDlB,cAAK,CAACwH,SAAS,CAAC,MAAM;IACpB;IACA;IACA,IACEtH,KAAK,CAACc,QAAQ,IACd,CAAC,IAAAyG,aAAK,EAACvH,KAAK,CAACkB,KAAK,CAAC,KAClB,CAAC,IAAAsG,eAAO,EAACxH,KAAK,CAACc,QAAQ,EAAEA,QAAQ,CAAC,IAAI,CAAC,IAAA0G,eAAO,EAACxH,KAAK,CAACkB,KAAK,EAAEA,KAAK,CAAC,CAAC,EACpE;MACA,CAAC,MAAAuG,YAAA,IAAY;QACX,MAAMrB,MAAM,GAAG,MAAMpB,YAAY,CAC/B,EAAE,EACF,CACE;UACE,CAACjE,MAAM,CAACG,KAAK,IAAI,YAAY,GAAG;YAC9BwG,GAAG,EAAE,IAAAC,iBAAS,EAAC3H,KAAK,CAACkB,KAAK;UAC5B;QACF,CAAC,EAED,GAAGkB,SAAS,CACb,EACD,IAAI,EACJ,EAAAqF,YAAA,GAAAzH,KAAK,CAACkB,KAAK,cAAAuG,YAAA,uBAAXA,YAAA,CAAa/C,MAAM,KAAIhD,QAAQ,GAAG1B,KAAK,CAACkB,KAAK,CAACwD,MAAM,GAAGhD,QACzD,CAAC;QACDiB,kBAAkB,CAACyD,MAAM,CAAC;MAC5B,CAAC,EAAE,CAAC;IACN;IACA,MAAMwB,MAAM,GACV5H,KAAK,CAACuB,IAAI,KAAK,UAAU,IAAI,CAAC,IAAAsG,YAAI,EAAC7H,KAAK,CAACkB,KAAK,CAAC,GAAG,EAAE,GAAGlB,KAAK,CAACkB,KAAK;IACpEmB,QAAQ,CAACuF,MAAM,CAAC;IAChBrF,WAAW,CAACvC,KAAK,CAACc,QAAQ,CAAC;EAC7B,CAAC,EAAE,CAACd,KAAK,CAACkB,KAAK,EAAElB,KAAK,CAACc,QAAQ,CAAC,CAAC;EAEjChB,cAAK,CAACwH,SAAS,CAAC,MAAM;IACpB,IAAI,CAACnG,WAAW,EAAE;MAChB,MAAM2G,QAAiB,GAAGvG,IAAI,KAAK,UAAU,GAAG,EAAE,GAAG,EAAE;MACvDc,QAAQ,CAACyF,QAAQ,CAAC;IACpB;EACF,CAAC,EAAE,CAAC9H,KAAK,CAACc,QAAQ,CAAC,CAAC;EACpB;EACA,MAAMiH,cAAc,GAAG,IAAAC,gBAAQ,EAC5B/C,CAAS,IAAKD,YAAY,CAACC,CAAC,EAAE7C,SAAS,CAAC,EACzC,GACF,CAAC;EAED,oBACE3D,MAAA,CAAAwJ,OAAA,CAAAC,aAAA,CAACrJ,KAAA,CAAAsJ,MAAM,MAAAC,SAAA,CAAAH,OAAA;IACLhI,GAAG,EAAEA,GAAI;IACT6C,OAAO,EAAEA,OAAQ;IACjBuF,SAAS,EAAC,qBAAqB;IAC/B5G,UAAU,EAAEA,UAAW;IACvB6G,KAAK,EAAE,IAAAC,gBAAQ,EAACvI,KAAK,CAACwI,aAAa,EAAE;MAAEC,KAAK,EAAE;IAAO,CAAC,CAAE;IACxDC,UAAU;IACVC,YAAY,EAAE,KAAM;IACpBzH,KAAK,EAAEA,KAAqB;IAC5BK,IAAI,EAAEA,IAA4B;IAClCC,WAAW,EAAEA,WAAW,IAAIpB,CAAC,CAACwI,YAAC,CAACC,iBAAiB,CAAE;IACnD9D,QAAQ,EAAEtB,YAAa;IACvBqF,QAAQ,EAAEf,cAAe;IACzBgB,OAAO,EAAEpC,iBAAkB;IAC3BqC,QAAQ,EAAEhJ,KAAK,CAACgJ,QAAS;IACzBC,aAAa,EAAE;MAAEC,OAAO,EAAE,KAAK;MAAE,GAAGlJ,KAAK,CAACiJ;IAAc,CAAE;IAC1DlH,wBAAwB,EAAEA,wBAAyB;IACnDoH,cAAc,EAAGC,IAAI,IAAK;MACxB,oBACE3K,MAAA,CAAAwJ,OAAA,CAAAC,aAAA,cACGkB,IAAI,EACJxH,aAAa,IAAIgB,KAAK,GAAGlB,QAAQ,iBAChCjD,MAAA,CAAAwJ,OAAA,CAAAC,aAAA;QAAKG,SAAS,EAAEC,iCAAK,CAACe;MAAY,GAC/BjJ,CAAC,CAACwI,YAAC,CAACU,iBAAiB,EAAE;QAAE5H;MAAS,CAAC,CACjC,CAEJ,CAAC;IAEV;EAAE,GACG1B,KAAK,CAACuJ,mBAAmB,KAAK,QAAQ,GACvC;IAAEC,iBAAiB,EAAGC,WAAW,IAAKA,WAAW,CAACC;EAAc,CAAC,GACjE,CAAC,CAAC,GAELlH,OAAO,CAAC2B,GAAG,CAAC,CAAC0C,EAAE,EAAE8C,KAAK,KAAK;IAAA,IAAAC,SAAA;IAC1B,MAAMC,WAAW,GAAGjD,eAAe,CAACC,EAAE,CAAC;IACvC,oBACEpI,MAAA,CAAAwJ,OAAA,CAAAC,aAAA,CAACrJ,KAAA,CAAAsJ,MAAM,CAAC2B,MAAM;MAACjE,GAAG,EAAE8D,KAAM;MAACzI,KAAK,EAAE2F,EAAE,CAAC3F,KAAM;MAACF,KAAK,EAAE6I;IAAY,gBAC7DpL,MAAA,CAAAwJ,OAAA,CAAAC,aAAA,CAACrJ,KAAA,CAAAkL,OAAO;MAACC,KAAK,EAAEhK,KAAK,CAACiK,WAAW,GAAGJ,WAAW,GAAGK;IAAU,gBAC1DzL,MAAA,CAAAwJ,OAAA,CAAAC,aAAA;MAAKG,SAAS,EAAE,IAAA8B,mBAAU,EAAC7B,iCAAK,CAAC8B,SAAS;IAAE,GACzCvD,EAAE,CAACP,SAAS,iBACX7H,MAAA,CAAAwJ,OAAA,CAAAC,aAAA,4BACEzJ,MAAA,CAAAwJ,OAAA,CAAAC,aAAA,CAACrJ,KAAA,CAAAwL,MAAM;MACLC,GAAG,EAAEzD,EAAE,CAACP,SAAU;MAClBiE,IAAI,EAAE,EAAG;MACTlC,SAAS,EAAE,IAAA8B,mBAAU,EAAC7B,iCAAK,CAACkC,MAAM,EAAE;QAClC,CAAClC,iCAAK,CAACmC,WAAW,GAAG5D,EAAE,CAACP,SAAS,KAAK;MACxC,CAAC;IAAE,GAEFO,EAAE,CAACP,SAAS,KAAK,aAAa,MAAAsD,SAAA,GAAI/C,EAAE,CAAC7F,KAAK,cAAA4I,SAAA,uBAARA,SAAA,CAAU1C,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAClD,CACJ,CACP,eACDzI,MAAA,CAAAwJ,OAAA,CAAAC,aAAA;MACEG,SAAS,EAAE,IAAA8B,mBAAU,EAAC7B,iCAAK,CAACoC,UAAU,CAAE;MACxC,eAAY;IAAc,GAEzBb,WACG,CAAC,EACN,CAAA5H,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAE0I,QAAQ,kBACflM,MAAA,CAAAwJ,OAAA,CAAAC,aAAA;MAAKG,SAAS,EAAEC,iCAAK,CAACsC;IAAgB,gBACpCnM,MAAA,CAAAwJ,OAAA,CAAAC,aAAA,CAACnJ,SAAA,CAAA8L,gBAAgB;MAACF,QAAQ,EAAE1I,MAAM,CAAC0I,QAAS;MAACzE,IAAI,EAAEW;IAAG,CAAE,CACrD,CAEJ,CACE,CACI,CAAC;EAEpB,CAAC,CACK,CAAC;AAEb,CAAC,CAAC","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,19 @@ 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 _getRuntime$getMiscSe, _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 miscShowKeyFields = (_getRuntime$getMiscSe = getRuntime().getMiscSettings()) === null || _getRuntime$getMiscSe === void 0 ? void 0 : _getRuntime$getMiscSe.cmdbInstanceSelectShowKeyFields;
26
+ var effectiveShowKeyField = (_props$showKeyField = props.showKeyField) !== null && _props$showKeyField !== void 0 ? _props$showKeyField : !!(miscShowKeyFields !== null && miscShowKeyFields !== void 0 && miscShowKeyFields.includes(props.objectId));
22
27
  var {
23
- showKeyField,
24
28
  // 默认显示 label 为模型的 name/hostname, value 为 instanceId
25
29
  // 当showKeyField时,实例展示是用showKey里的数据展示
26
30
  fields = {
27
- label: [showKeyField ? "#showKey" : getInstanceNameKey(props.objectId)],
31
+ label: [effectiveShowKeyField ? "#showKey" : getInstanceNameKey(props.objectId)],
28
32
  value: "instanceId"
29
33
  },
30
34
  firstRender = true,
@@ -178,7 +182,7 @@ export var CmdbInstanceSelect = /*#__PURE__*/React.forwardRef(function CmdbInsta
178
182
  if (Array.isArray(label)) {
179
183
  var firstKey = label[0];
180
184
  var resKey = label.slice(1, label.length).join(",");
181
- if (Array.isArray(firstKey) && props.showKeyField) {
185
+ if (Array.isArray(firstKey) && effectiveShowKeyField) {
182
186
  var subFirstKey = firstKey[0];
183
187
  var subResKey = firstKey.slice(1, firstKey.length).join(",");
184
188
  return subResKey && isMultiLabel ? "".concat(subFirstKey, "(").concat(subResKey, ")") : subFirstKey !== null && subFirstKey !== void 0 ? subFirstKey : "";
@@ -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","_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":";;;AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,SAASC,cAAc,QAAQ,eAAe;AAC9C,SAASC,MAAM,EAAEC,MAAM,EAAEC,OAAO,QAAQ,MAAM;AAE9C,SACEC,QAAQ,EACRC,GAAG,EACHC,OAAO,EACPC,SAAS,EACTC,QAAQ,EACRC,OAAO,EACPC,UAAU,EACVC,KAAK,EACLC,IAAI,QACC,QAAQ;AACf,SACEC,gBAAgB,EAChBC,eAAe,EACfC,WAAW,EACXC,UAAU,QACL,sBAAsB;AAE7B,SAASC,wBAAwB,QAAQ,oBAAoB;AAC7D,SAASC,kBAAkB,EAAEC,aAAa,QAAQ,uBAAuB;AACzE,OAAOC,UAAU,MAAM,YAAY;AAEnC,SAASC,sBAAsB,EAAEC,CAAC,QAAQ,mBAAmB;AAE7D,OAAOC,KAAK,MAAM,iCAAiC;AA6CnD,OAAO,SAASC,eAAeA,CAACC,aAAkB,EAAS;EACzD,IAAMC,GAAG,GAAGC,KAAK,CAACC,OAAO,CAACH,aAAa,CAAC,GAAGA,aAAa,GAAG,CAACA,aAAa,CAAC;EAE1E,OAAOnB,OAAO,CAACoB,GAAG,CAAC;AACrB;AAEA,OAAO,IAAMG,kBAAkB,gBAAG/B,KAAK,CAACgC,UAAU,CAAC,SAASD,kBAAkBA,CAC5EE,KAA8B,EAC9BC,GAAQ,EACY;EAAA,IAAAC,qBAAA,EAAAC,mBAAA;EACpB,IAAM;IAAEC;EAAE,CAAC,GAAGnC,cAAc,CAACqB,sBAAsB,CAAC;EACpD;EACA;EACA,IAAMe,iBAAiB,IAAAH,qBAAA,GAAGjB,UAAU,CAAC,CAAC,CAACqB,eAAe,CAAC,CAAC,cAAAJ,qBAAA,uBAA9BA,qBAAA,CACtBK,+BAAuD;EAC3D,IAAMC,qBAAqB,IAAAL,mBAAA,GACzBH,KAAK,CAACS,YAAY,cAAAN,mBAAA,cAAAA,mBAAA,GAAI,CAAC,EAACE,iBAAiB,aAAjBA,iBAAiB,eAAjBA,iBAAiB,CAAEK,QAAQ,CAACV,KAAK,CAACW,QAAQ,CAAC;EACrE,IAAM;IACJ;IACA;IACAC,MAAM,GAAG;MACPC,KAAK,EAAE,CACLL,qBAAqB,GAAG,UAAU,GAAGrB,kBAAkB,CAACa,KAAK,CAACW,QAAQ,CAAC,CACxE;MACDG,KAAK,EAAE;IACT,CAAC;IACDC,WAAW,GAAG,IAAI;IAClBC,kBAAkB,GAAG,CAAC;IACtBC,cAAc,GAAG,EAAE;IACnBC,WAAW,GAAG,EAAE;IAChBC,IAAI;IACJC,WAAW;IACXC,UAAU;IACVC,QAAQ,GAAG,EAAE;IACbC,YAAY,GAAG,IAAI;IACnBC,aAAa;IACbC,UAAU;IACVC,uBAAuB;IACvBC,wBAAwB,GAAG,IAAI;IAC/BC,qBAAqB;IACrBC,MAAM;IACNC,kBAAkB;IAClBC;EACF,CAAC,GAAG/B,KAAK;EACT,IAAMgC,SAAS,GAAGvC,eAAe,CAACO,KAAK,CAACN,aAAa,CAAC;EACtD;EACA,IAAI,CAACkB,MAAM,CAACE,KAAK,EAAE;IACjBF,MAAM,CAACE,KAAK,GAAG,YAAY;EAC7B;EAEA,IAAM,CAACA,KAAK,EAAEmB,QAAQ,CAAC,GAAGlE,KAAK,CAACmE,QAAQ,CAAU,CAAC;EACnD,IAAM,CAACvB,QAAQ,EAAEwB,WAAW,CAAC,GAAGpE,KAAK,CAACmE,QAAQ,CAAS,CAAC;EACxD,IAAM,CAACE,OAAO,EAAEC,UAAU,CAAC,GAAGtE,KAAK,CAACmE,QAAQ,CAAkB,EAAE,CAAC;EACjE,IAAM,CAACI,eAAe,EAAEC,kBAAkB,CAAC,GAAGxE,KAAK,CAACmE,QAAQ,CAC1D,EACF,CAAC;EACD,IAAM,CAACM,KAAK,EAAEC,QAAQ,CAAC,GAAG1E,KAAK,CAACmE,QAAQ,CAAC,CAAC,CAAC;EAC3C,IAAM,CAACQ,OAAO,EAAEC,UAAU,CAAC,GAAG5E,KAAK,CAACmE,QAAQ,CAAC,KAAK,CAAC;;EAEnD;EACA,IAAMU,oBAAoB,GAAG5D,WAAW,CACtC,sDAAsD,EACtD;IAAE6D,KAAK,EAAE;EAAM,CACjB,CAAC;;EAED;EACA,IAAMC,qBAAqB,GAAG9E,OAAO,CAAC,MAAM;IAC1C,OAAO;MACL2C,QAAQ,EAAEX,KAAK,CAACW,QAAQ;MACxBoC,QAAQ,EAAE/C,KAAK,CAAC+B;IAClB,CAAC;EACH,CAAC,EAAE,CAAC/B,KAAK,CAACW,QAAQ,EAAEoB,gBAAgB,CAAC,CAAC;EACtC,IAAMiB,aAAa,GAAGA,CAAA,KAAM;IAC1B,IAAMC,MAAM,GAAG,CACbrC,MAAM,CAACE,KAAK,EACZ,IAAIlB,KAAK,CAACC,OAAO,CAACe,MAAM,CAACC,KAAK,CAAC,GAAGD,MAAM,CAACC,KAAK,GAAG,CAACD,MAAM,CAACC,KAAK,CAAC,CAAC,EAChE,GAAGI,cAAc,EACjB,GAAGC,WAAW,CACf;IAED,IAAIlB,KAAK,CAACW,QAAQ,KAAK,MAAM,EAAE;MAC7BsC,MAAM,CAACC,IAAI,CAAC,WAAW,CAAC;IAC1B;IACA,OAAOD,MAAM;EACf,CAAC;EAED,IAAME,YAAY,GAAIC,QAAa,IAAW;IAC5C,IAAIC,QAAqB;IACzB,IAAIlC,IAAI,KAAK,UAAU,EAAE;MACvB,IAAMmC,QAAQ,GAAG,IAAIC,GAAG,CAACH,QAAQ,CAAC;MAClCC,QAAQ,GAAGjB,OAAO,CAACoB,MAAM,CAAEC,IAAI,IAAKH,QAAQ,CAACI,GAAG,CAACD,IAAI,CAAC3C,KAAK,CAAC,CAAC;MAC7D,IAAM6C,WAAW,GAAG,IAAIJ,GAAG,CACzB5E,UAAU,CACRyE,QAAQ,EACPC,QAAQ,CAAWO,GAAG,CAAEH,IAAI,IAAKA,IAAI,CAAC3C,KAAK,CAC9C,CACF,CAAC;MACDuC,QAAQ,GAAGA,QAAQ,CAACQ,MAAM,CACxBvB,eAAe,CAACkB,MAAM,CAAEC,IAAI,IAAKE,WAAW,CAACD,GAAG,CAACD,IAAI,CAAC3C,KAAK,CAAC,CAC9D,CAAC;IACH,CAAC,MAAM;MACLuC,QAAQ,GAAGjB,OAAO,CAAC0B,IAAI,CAAEL,IAAI,IAAKA,IAAI,CAAC3C,KAAK,KAAKsC,QAAQ,CAAC;IAC5D;IAEA,IAAIxB,qBAAqB,EAAE;MACzB,IAAMmC,WAAW,GAAGC,QAAQ,CAACC,sBAAsB,CACjD,qBACF,CAAC;MACD,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,WAAW,CAACI,MAAM,EAAED,CAAC,EAAE,EAAE;QAAA,IAAAE,qBAAA,EAAAC,sBAAA;QAC3C,CAAAD,qBAAA,GAAAL,WAAW,CAACG,CAAC,CAAC,CAACI,oBAAoB,CAAC,OAAO,CAAC,cAAAF,qBAAA,wBAAAC,sBAAA,GAA5CD,qBAAA,CAA+C,CAAC,CAAC,cAAAC,sBAAA,uBAAjDA,sBAAA,CAAmDE,IAAI,CAAC,CAAC;MAC3D;IACF;IACAtC,QAAQ,CAACmB,QAAQ,CAAC;IAClBb,kBAAkB,CAACc,QAAQ,CAAC;IAC5BrD,KAAK,CAACwE,QAAQ,IAAIxE,KAAK,CAACwE,QAAQ,CAACpB,QAAQ,EAAEC,QAAQ,CAAC;EACtD,CAAC;EACD;EACA,IAAMoB,YAAY;IAAA,IAAAC,IAAA,GAAAC,iBAAA,CAAG,WACnBC,CAAS,EACTC,UAAe,EAGc;MAAA,IAF7BC,WAAW,GAAAC,SAAA,CAAAZ,MAAA,QAAAY,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAG,KAAK;MAAA,IACnBE,aAAsB,GAAAF,SAAA,CAAAZ,MAAA,OAAAY,SAAA,MAAAC,SAAA;MAEtB,IAAIF,WAAW,IAAIF,CAAC,CAACT,MAAM,IAAInD,kBAAkB,EAAE;QACjD,IAAI;UAAA,IAAAkE,oBAAA;UACF,IAAIC,IAAI,GAAG,EAAE;UACb,IAAI,CAACnF,KAAK,CAACW,QAAQ,EAAE;YACnB;UACF;UACAgC,UAAU,CAAC,IAAI,CAAC;UAChB,IAAMyC,WAAW,GAAGxF,KAAK,CAACC,OAAO,CAACe,MAAM,CAACC,KAAK,CAAC,GAC3CD,MAAM,CAACC,KAAK,CAAC+C,GAAG,CAAE/C,KAAK,KAAM;YAAE,CAACA,KAAK,GAAG;cAAEwE,KAAK,MAAAxB,MAAA,CAAMe,CAAC;YAAI;UAAE,CAAC,CAAC,CAAC,GAC/D,CAAC;YAAE,CAAChE,MAAM,CAACC,KAAK,GAAG;cAAEwE,KAAK,MAAAxB,MAAA,CAAMe,CAAC;YAAI;UAAE,CAAC,CAAC;UAC7C,IAAMU,UAAU,GAAAC,aAAA,CAAAA,aAAA;YACdC,KAAK,EAAE;cACLC,IAAI,EAAE,CACJ;gBACEC,GAAG,EAAE,CACH,GAAGN,WAAW,EACd,GAAGnE,cAAc,CAAC2C,GAAG,CAAE+B,GAAG,KAAM;kBAC9B,CAACA,GAAG,GAAG;oBAAEN,KAAK,MAAAxB,MAAA,CAAMe,CAAC;kBAAI;gBAC3B,CAAC,CAAC,CAAC;cAEP,CAAC,EAED,GAAGC,UAAU;YAEjB;UAAC,GACGpD,UAAU,GAAG;YAAEA;UAAW,CAAC,GAAG,CAAC,CAAC;YACpCb,MAAM,EAAEoC,aAAa,CAAC,CAAC;YACvB4C,IAAI,EAAE,CAAC;YACPC,SAAS,EAAEZ,aAAa,IAAI3D,QAAQ;YACpCwE,0BAA0B,EAAEpE,uBAAuB;YACnDqE,IAAI,EAAE/F,KAAK,CAAC+F;UAAI,EACjB;UACD,IAAMC,IAAI,GAAGlE,kBAAkB,SACrBc,oBAAoB,CAAC4C,KAAK,CAAC,CAAAD,aAAA,CAAAA,aAAA,KAE1BD,UAAU,GACVxC,qBAAqB,EAE3B,CAAC,SACI5D,wBAAwB,CAACc,KAAK,CAACW,QAAQ,EAAE2E,UAAU,CAAC;UAE9DH,IAAI,GAAGa,IAAI,CAACb,IAAI;UAChB1C,QAAQ,CAACuD,IAAI,CAACxD,KAAK,CAAC;UACpB;UACA,IAAMyD,MAAM,GAAGd,IAAI,CAACvB,GAAG,CAAEH,IAAS,IAAA8B,aAAA,CAAAA,aAAA,KAC7B9B,IAAI;YACP5C,KAAK,EAAEjB,KAAK,CAACC,OAAO,CAACe,MAAM,CAACC,KAAK,CAAC,GAC9BD,MAAM,CAACC,KAAK,CAAC+C,GAAG,CAAE/C,KAAK,IAAKvC,GAAG,CAACmF,IAAI,EAAE5C,KAAK,CAAC,CAAC,GAC7CvC,GAAG,CAACmF,IAAI,EAAE7C,MAAM,CAACC,KAAK,CAAC;YAC3BC,KAAK,EAAExC,GAAG,CAACmF,IAAI,EAAE7C,MAAM,CAACE,KAAK;UAAC,GAC1Bd,KAAK,CAACW,QAAQ,KAAK,MAAM,GACzB;YACEuF,SAAS,EAAE5H,GAAG,CAACmF,IAAI,EAAE,WAAW,EAAE,aAAa;UACjD,CAAC,GACD,CAAC,CAAC,CACN,CAAC;UACHpB,UAAU,CAAC4D,MAAM,CAAC;UAClB,CAAAf,oBAAA,GAAAlF,KAAK,CAACmG,aAAa,cAAAjB,oBAAA,uBAAnBA,oBAAA,CAAAkB,IAAA,CAAApG,KAAK,EAAiBiG,MAAM,CAAC;UAC7B,OAAOA,MAAM;QACf,CAAC,CAAC,OAAOI,CAAC,EAAE;UACVtH,eAAe,CAACsH,CAAC,CAAC;QACpB,CAAC,SAAS;UACR1D,UAAU,CAAC,KAAK,CAAC;QACnB;MACF;IACF,CAAC;IAAA,gBAvEK8B,YAAYA,CAAA6B,EAAA,EAAAC,GAAA;MAAA,OAAA7B,IAAA,CAAA8B,KAAA,OAAAzB,SAAA;IAAA;EAAA,GAuEjB;EACD,IAAM0B,iBAAiB;IAAA,IAAAC,KAAA,GAAA/B,iBAAA,CAAG,aAA2B;MACnD,MAAMF,YAAY,CAAC,EAAE,EAAEzC,SAAS,CAAC;IACnC,CAAC;IAAA,gBAFKyE,iBAAiBA,CAAA;MAAA,OAAAC,KAAA,CAAAF,KAAA,OAAAzB,SAAA;IAAA;EAAA,GAEtB;EACD,IAAM4B,eAAe,GAAIC,EAAO,IAAK;IACnC,IAAI5G,KAAK,CAAC6G,aAAa,EAAE;MACvB,OAAOzH,aAAa,CAACY,KAAK,CAAC6G,aAAa,EAAED,EAAE,CAAC;IAC/C,CAAC,MAAM;MACL,IAAM/F,KAAK,GAAG+F,EAAE,CAAC/F,KAAK;MACtB,IAAIjB,KAAK,CAACC,OAAO,CAACgB,KAAK,CAAC,EAAE;QACxB,IAAMiG,QAAQ,GAAGjG,KAAK,CAAC,CAAC,CAAC;QACzB,IAAMkG,MAAM,GAAGlG,KAAK,CAACmG,KAAK,CAAC,CAAC,EAAEnG,KAAK,CAACsD,MAAM,CAAC,CAAC8C,IAAI,CAAC,GAAG,CAAC;QACrD,IAAIrH,KAAK,CAACC,OAAO,CAACiH,QAAQ,CAAC,IAAItG,qBAAqB,EAAE;UACpD,IAAM0G,WAAW,GAAGJ,QAAQ,CAAC,CAAC,CAAC;UAC/B,IAAMK,SAAS,GAAGL,QAAQ,CAACE,KAAK,CAAC,CAAC,EAAEF,QAAQ,CAAC3C,MAAM,CAAC,CAAC8C,IAAI,CAAC,GAAG,CAAC;UAC9D,OAAOE,SAAS,IAAI5F,YAAY,MAAAsC,MAAA,CACzBqD,WAAW,OAAArD,MAAA,CAAIsD,SAAS,SAC3BD,WAAW,aAAXA,WAAW,cAAXA,WAAW,GAAI,EAAE;QACvB;QACA,OAAOH,MAAM,IAAIxF,YAAY,MAAAsC,MAAA,CACtBiD,QAAQ,aAARA,QAAQ,cAARA,QAAQ,GAAI,KAAK,OAAAjD,MAAA,CAAIkD,MAAM,SAC9BD,QAAQ,aAARA,QAAQ,cAARA,QAAQ,GAAI,EAAE;MACpB,CAAC,MAAM;QACL,OAAOjG,KAAK;MACd;IACF;EACF,CAAC;EAED9C,KAAK,CAACqJ,SAAS,CAAC,MAAM;IACpB;IACA;IACA,IACEpH,KAAK,CAACW,QAAQ,IACd,CAAC/B,KAAK,CAACoB,KAAK,CAACc,KAAK,CAAC,KAClB,CAACpC,OAAO,CAACsB,KAAK,CAACW,QAAQ,EAAEA,QAAQ,CAAC,IAAI,CAACjC,OAAO,CAACsB,KAAK,CAACc,KAAK,EAAEA,KAAK,CAAC,CAAC,EACpE;MACA6D,iBAAA,CAAC,aAAY;QAAA,IAAA0C,YAAA;QACX,IAAMpB,MAAM,SAASxB,YAAY,CAC/B,EAAE,EACF,CACE;UACE,CAAC7D,MAAM,CAACE,KAAK,IAAI,YAAY,GAAG;YAC9BwG,GAAG,EAAE9I,SAAS,CAACwB,KAAK,CAACc,KAAK;UAC5B;QACF,CAAC,EAED,GAAGkB,SAAS,CACb,EACD,IAAI,EACJ,EAAAqF,YAAA,GAAArH,KAAK,CAACc,KAAK,cAAAuG,YAAA,uBAAXA,YAAA,CAAalD,MAAM,KAAI7C,QAAQ,GAAGtB,KAAK,CAACc,KAAK,CAACqD,MAAM,GAAG7C,QACzD,CAAC;QACDiB,kBAAkB,CAAC0D,MAAM,CAAC;MAC5B,CAAC,EAAE,CAAC;IACN;IACA,IAAMsB,MAAM,GACVvH,KAAK,CAACmB,IAAI,KAAK,UAAU,IAAI,CAACtC,IAAI,CAACmB,KAAK,CAACc,KAAK,CAAC,GAAG,EAAE,GAAGd,KAAK,CAACc,KAAK;IACpEmB,QAAQ,CAACsF,MAAM,CAAC;IAChBpF,WAAW,CAACnC,KAAK,CAACW,QAAQ,CAAC;EAC7B,CAAC,EAAE,CAACX,KAAK,CAACc,KAAK,EAAEd,KAAK,CAACW,QAAQ,CAAC,CAAC;EAEjC5C,KAAK,CAACqJ,SAAS,CAAC,MAAM;IACpB,IAAI,CAACrG,WAAW,EAAE;MAChB,IAAMyG,QAAiB,GAAGrG,IAAI,KAAK,UAAU,GAAG,EAAE,GAAG,EAAE;MACvDc,QAAQ,CAACuF,QAAQ,CAAC;IACpB;EACF,CAAC,EAAE,CAACxH,KAAK,CAACW,QAAQ,CAAC,CAAC;EACpB;EACA,IAAM8G,cAAc,GAAGpJ,QAAQ,CAC5BuG,CAAS,IAAKH,YAAY,CAACG,CAAC,EAAE5C,SAAS,CAAC,EACzC,GACF,CAAC;EAED,oBACEjE,KAAA,CAAA2J,aAAA,CAACxJ,MAAM,EAAAyJ,QAAA;IACL1H,GAAG,EAAEA,GAAI;IACTyC,OAAO,EAAEA,OAAQ;IACjBkF,SAAS,EAAC,qBAAqB;IAC/BvG,UAAU,EAAEA,UAAW;IACvB7B,KAAK,EAAEf,QAAQ,CAACuB,KAAK,CAAC6H,aAAa,EAAE;MAAEC,KAAK,EAAE;IAAO,CAAC,CAAE;IACxDC,UAAU;IACVC,YAAY,EAAE,KAAM;IACpBlH,KAAK,EAAEA,KAAqB;IAC5BK,IAAI,EAAEA,IAA4B;IAClCC,WAAW,EAAEA,WAAW,IAAIhB,CAAC,CAACb,CAAC,CAAC0I,iBAAiB,CAAE;IACnDzD,QAAQ,EAAErB,YAAa;IACvB+E,QAAQ,EAAET,cAAe;IACzBU,OAAO,EAAE1B,iBAAkB;IAC3B2B,QAAQ,EAAEpI,KAAK,CAACoI,QAAS;IACzBC,aAAa,EAAA9C,aAAA;MAAI+C,OAAO,EAAE;IAAK,GAAKtI,KAAK,CAACqI,aAAa,CAAG;IAC1D1G,wBAAwB,EAAEA,wBAAyB;IACnD4G,cAAc,EAAGC,IAAI,IAAK;MACxB,oBACEzK,KAAA,CAAA2J,aAAA,cACGc,IAAI,EACJhH,aAAa,IAAIgB,KAAK,GAAGlB,QAAQ,iBAChCvD,KAAA,CAAA2J,aAAA;QAAKE,SAAS,EAAEpI,KAAK,CAACiJ;MAAY,GAC/BrI,CAAC,CAACb,CAAC,CAACmJ,iBAAiB,EAAE;QAAEpH;MAAS,CAAC,CACjC,CAEJ,CAAC;IAEV;EAAE,GACGtB,KAAK,CAAC2I,mBAAmB,KAAK,QAAQ,GACvC;IAAEC,iBAAiB,EAAGC,WAAW,IAAKA,WAAW,CAACC;EAAc,CAAC,GACjE,CAAC,CAAC,GAEL1G,OAAO,CAACwB,GAAG,CAAC,CAACgD,EAAE,EAAEmC,KAAK,KAAK;IAAA,IAAAC,SAAA;IAC1B,IAAMC,WAAW,GAAGtC,eAAe,CAACC,EAAE,CAAC;IACvC,oBACE7I,KAAA,CAAA2J,aAAA,CAACxJ,MAAM,CAACgL,MAAM;MAACvD,GAAG,EAAEoD,KAAM;MAACjI,KAAK,EAAE8F,EAAE,CAAC9F,KAAM;MAACD,KAAK,EAAEoI;IAAY,gBAC7DlL,KAAA,CAAA2J,aAAA,CAACtJ,OAAO;MAAC+K,KAAK,EAAEnJ,KAAK,CAACoJ,WAAW,GAAGH,WAAW,GAAGjE;IAAU,gBAC1DjH,KAAA,CAAA2J,aAAA;MAAKE,SAAS,EAAEvI,UAAU,CAACG,KAAK,CAAC6J,SAAS;IAAE,GACzCzC,EAAE,CAACV,SAAS,iBACXnI,KAAA,CAAA2J,aAAA,4BACE3J,KAAA,CAAA2J,aAAA,CAACvJ,MAAM;MACLmL,GAAG,EAAE1C,EAAE,CAACV,SAAU;MAClBqD,IAAI,EAAE,EAAG;MACT3B,SAAS,EAAEvI,UAAU,CAACG,KAAK,CAACgK,MAAM,EAAE;QAClC,CAAChK,KAAK,CAACiK,WAAW,GAAG7C,EAAE,CAACV,SAAS,KAAK;MACxC,CAAC;IAAE,GAEFU,EAAE,CAACV,SAAS,KAAK,aAAa,MAAA8C,SAAA,GAAIpC,EAAE,CAAC/F,KAAK,cAAAmI,SAAA,uBAARA,SAAA,CAAUhC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAClD,CACJ,CACP,eACDjJ,KAAA,CAAA2J,aAAA;MACEE,SAAS,EAAEvI,UAAU,CAACG,KAAK,CAACkK,UAAU,CAAE;MACxC,eAAY;IAAc,GAEzBT,WACG,CAAC,EACN,CAAApH,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAE8H,QAAQ,kBACf5L,KAAA,CAAA2J,aAAA;MAAKE,SAAS,EAAEpI,KAAK,CAACoK;IAAgB,gBACpC7L,KAAA,CAAA2J,aAAA,CAAC5I,gBAAgB;MAAC6K,QAAQ,EAAE9H,MAAM,CAAC8H,QAAS;MAAC3D,IAAI,EAAEY;IAAG,CAAE,CACrD,CAEJ,CACE,CACI,CAAC;EAEpB,CAAC,CACK,CAAC;AAEb,CAAC,CAAC","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.31.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": "a03dd42990bc08427e199cffa5e419a9851326b9"
58
58
  }