@next-libs/cmdb-instances 7.26.0 → 7.26.1

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.
@@ -34,16 +34,19 @@ const CmdbInstanceSelect = exports.CmdbInstanceSelect = /*#__PURE__*/_react.defa
34
34
  label: [showKeyField ? "#showKey" : (0, _cmdbUtils.getInstanceNameKey)(props.objectId)],
35
35
  value: "instanceId"
36
36
  },
37
+ firstRender = true,
37
38
  minimumInputLength = 0,
38
39
  extraSearchKey = [],
39
40
  extraFields = [],
40
41
  mode,
41
42
  placeholder,
42
43
  allowClear,
43
- pageSize,
44
+ pageSize = 30,
45
+ isMultiLabel = true,
44
46
  showSearchTip,
45
47
  permission,
46
48
  ignoreMissingFieldError,
49
+ dropdownMatchSelectWidth = true,
47
50
  blurAfterValueChanged,
48
51
  suffix,
49
52
  useExternalCmdbApi,
@@ -178,9 +181,9 @@ const CmdbInstanceSelect = exports.CmdbInstanceSelect = /*#__PURE__*/_react.defa
178
181
  if (Array.isArray(firstKey) && props.showKeyField) {
179
182
  const subFirstKey = firstKey[0];
180
183
  const subResKey = firstKey.slice(1, firstKey.length).join(",");
181
- return subResKey && props.isMultiLabel ? `${subFirstKey}(${subResKey})` : subFirstKey !== null && subFirstKey !== void 0 ? subFirstKey : "";
184
+ return subResKey && isMultiLabel ? `${subFirstKey}(${subResKey})` : subFirstKey !== null && subFirstKey !== void 0 ? subFirstKey : "";
182
185
  }
183
- return resKey && props.isMultiLabel ? `${firstKey !== null && firstKey !== void 0 ? firstKey : " - "}(${resKey})` : firstKey !== null && firstKey !== void 0 ? firstKey : "";
186
+ return resKey && isMultiLabel ? `${firstKey !== null && firstKey !== void 0 ? firstKey : " - "}(${resKey})` : firstKey !== null && firstKey !== void 0 ? firstKey : "";
184
187
  } else {
185
188
  return label;
186
189
  }
@@ -204,7 +207,7 @@ const CmdbInstanceSelect = exports.CmdbInstanceSelect = /*#__PURE__*/_react.defa
204
207
  setObjectId(props.objectId);
205
208
  }, [props.value, props.objectId]);
206
209
  _react.default.useEffect(() => {
207
- if (!props.firstRender) {
210
+ if (!firstRender) {
208
211
  const resetVal = mode === "multiple" ? [] : "";
209
212
  setValue(resetVal);
210
213
  }
@@ -232,7 +235,7 @@ const CmdbInstanceSelect = exports.CmdbInstanceSelect = /*#__PURE__*/_react.defa
232
235
  padding: "2px",
233
236
  ...props.dropdownStyle
234
237
  },
235
- dropdownMatchSelectWidth: props.dropdownMatchSelectWidth,
238
+ dropdownMatchSelectWidth: dropdownMatchSelectWidth,
236
239
  dropdownRender: menu => {
237
240
  return /*#__PURE__*/_react.default.createElement("div", null, menu, showSearchTip && total > pageSize && /*#__PURE__*/_react.default.createElement("div", {
238
241
  className: _CmdbInstanceSelectModule.default.moreChoices
@@ -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","minimumInputLength","extraSearchKey","extraFields","mode","placeholder","allowClear","pageSize","showSearchTip","permission","ignoreMissingFieldError","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","isMultiLabel","useEffect","isNil","isEqual","_props$value","$in","castArray","_value","trim","firstRender","resetVal","debounceSearch","debounce","default","createElement","Select","_extends2","className","style","defaults","inputBoxStyle","width","showSearch","filterOption","K","BACKGROUND_SEARCH","onSearch","onFocus","disabled","dropdownStyle","padding","dropdownMatchSelectWidth","dropdownRender","menu","moreChoices","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\n minimumInputLength = 0,\n extraSearchKey = [],\n extraFields = [],\n mode,\n placeholder,\n allowClear,\n pageSize,\n showSearchTip,\n permission,\n ignoreMissingFieldError,\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 && props.isMultiLabel\n ? `${subFirstKey}(${subResKey})`\n : subFirstKey ?? \"\";\n }\n return resKey && props.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 (!props.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={props.dropdownMatchSelectWidth}\n dropdownRender={(menu) => {\n return (\n <div>\n {menu}\n {showSearchTip && total > pageSize && (\n <div className={style.moreChoices}>\n 仅显示前{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","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","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 仅显示前{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":[]}
@@ -27,16 +27,19 @@ export var CmdbInstanceSelect = /*#__PURE__*/React.forwardRef(function CmdbInsta
27
27
  label: [showKeyField ? "#showKey" : getInstanceNameKey(props.objectId)],
28
28
  value: "instanceId"
29
29
  },
30
+ firstRender = true,
30
31
  minimumInputLength = 0,
31
32
  extraSearchKey = [],
32
33
  extraFields = [],
33
34
  mode,
34
35
  placeholder,
35
36
  allowClear,
36
- pageSize,
37
+ pageSize = 30,
38
+ isMultiLabel = true,
37
39
  showSearchTip,
38
40
  permission,
39
41
  ignoreMissingFieldError,
42
+ dropdownMatchSelectWidth = true,
40
43
  blurAfterValueChanged,
41
44
  suffix,
42
45
  useExternalCmdbApi,
@@ -178,9 +181,9 @@ export var CmdbInstanceSelect = /*#__PURE__*/React.forwardRef(function CmdbInsta
178
181
  if (Array.isArray(firstKey) && props.showKeyField) {
179
182
  var subFirstKey = firstKey[0];
180
183
  var subResKey = firstKey.slice(1, firstKey.length).join(",");
181
- return subResKey && props.isMultiLabel ? "".concat(subFirstKey, "(").concat(subResKey, ")") : subFirstKey !== null && subFirstKey !== void 0 ? subFirstKey : "";
184
+ return subResKey && isMultiLabel ? "".concat(subFirstKey, "(").concat(subResKey, ")") : subFirstKey !== null && subFirstKey !== void 0 ? subFirstKey : "";
182
185
  }
183
- return resKey && props.isMultiLabel ? "".concat(firstKey !== null && firstKey !== void 0 ? firstKey : " - ", "(").concat(resKey, ")") : firstKey !== null && firstKey !== void 0 ? firstKey : "";
186
+ return resKey && isMultiLabel ? "".concat(firstKey !== null && firstKey !== void 0 ? firstKey : " - ", "(").concat(resKey, ")") : firstKey !== null && firstKey !== void 0 ? firstKey : "";
184
187
  } else {
185
188
  return label;
186
189
  }
@@ -205,7 +208,7 @@ export var CmdbInstanceSelect = /*#__PURE__*/React.forwardRef(function CmdbInsta
205
208
  setObjectId(props.objectId);
206
209
  }, [props.value, props.objectId]);
207
210
  React.useEffect(() => {
208
- if (!props.firstRender) {
211
+ if (!firstRender) {
209
212
  var resetVal = mode === "multiple" ? [] : "";
210
213
  setValue(resetVal);
211
214
  }
@@ -232,7 +235,7 @@ export var CmdbInstanceSelect = /*#__PURE__*/React.forwardRef(function CmdbInsta
232
235
  dropdownStyle: _objectSpread({
233
236
  padding: "2px"
234
237
  }, props.dropdownStyle),
235
- dropdownMatchSelectWidth: props.dropdownMatchSelectWidth,
238
+ dropdownMatchSelectWidth: dropdownMatchSelectWidth,
236
239
  dropdownRender: menu => {
237
240
  return /*#__PURE__*/React.createElement("div", null, menu, showSearchTip && total > pageSize && /*#__PURE__*/React.createElement("div", {
238
241
  className: style.moreChoices
@@ -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","minimumInputLength","extraSearchKey","extraFields","mode","placeholder","allowClear","pageSize","showSearchTip","permission","ignoreMissingFieldError","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","isMultiLabel","useEffect","_props$value","$in","_value","firstRender","resetVal","debounceSearch","createElement","_extends","className","inputBoxStyle","width","showSearch","filterOption","BACKGROUND_SEARCH","onSearch","onFocus","disabled","dropdownStyle","padding","dropdownMatchSelectWidth","dropdownRender","menu","moreChoices","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\n minimumInputLength = 0,\n extraSearchKey = [],\n extraFields = [],\n mode,\n placeholder,\n allowClear,\n pageSize,\n showSearchTip,\n permission,\n ignoreMissingFieldError,\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 && props.isMultiLabel\n ? `${subFirstKey}(${subResKey})`\n : subFirstKey ?? \"\";\n }\n return resKey && props.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 (!props.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={props.dropdownMatchSelectWidth}\n dropdownRender={(menu) => {\n return (\n <div>\n {menu}\n {showSearchTip && total > pageSize && (\n <div className={style.moreChoices}>\n 仅显示前{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","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","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 仅显示前{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":[]}
@@ -7,7 +7,7 @@ export interface CmdbInstanceSelectProps {
7
7
  instanceQuery?: any;
8
8
  placeholder?: string;
9
9
  fields?: Partial<ComplexOption<string>>;
10
- firstRender: boolean;
10
+ firstRender?: boolean;
11
11
  minimumInputLength?: number;
12
12
  value?: any;
13
13
  onChange?: (value: string, option?: ComplexOption) => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@next-libs/cmdb-instances",
3
- "version": "7.26.0",
3
+ "version": "7.26.1",
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",
@@ -52,5 +52,5 @@
52
52
  "js-base64": "^3.7.7",
53
53
  "marked": "^2.1.3"
54
54
  },
55
- "gitHead": "b886fd12a71e5e814a615194eadabccf71185940"
55
+ "gitHead": "667bcc468aac015ab14a93ff2cc0704afa3d939a"
56
56
  }