@next-bricks/form-platform 0.6.0 → 0.6.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.
- package/dist/bricks.json +6 -6
- package/dist/chunks/6223.ef1a783e.js.map +1 -1
- package/dist/chunks/eo-user-or-user-group-select.b49b99a5.js.map +1 -1
- package/dist/chunks/{main.dadcb141.js → main.0e8ed5c0.js} +2 -2
- package/dist/chunks/{main.dadcb141.js.map → main.0e8ed5c0.js.map} +1 -1
- package/dist/examples.json +3 -3
- package/dist/index.1c21b41c.js +2 -0
- package/dist/{index.d4f23f12.js.map → index.1c21b41c.js.map} +1 -1
- package/dist/manifest.json +111 -109
- package/docs/eo-user-or-user-group-select.md +120 -3
- package/docs/eo-user-or-user-group-select.react.md +126 -0
- package/package.json +2 -2
- package/dist/index.d4f23f12.js +0 -2
package/dist/bricks.json
CHANGED
|
@@ -2,20 +2,20 @@
|
|
|
2
2
|
"id": "bricks/form-platform",
|
|
3
3
|
"bricks": [],
|
|
4
4
|
"elements": [
|
|
5
|
-
"eo-
|
|
6
|
-
"eo-
|
|
5
|
+
"eo-cmdb-instance-select",
|
|
6
|
+
"eo-user-or-user-group-select"
|
|
7
7
|
],
|
|
8
8
|
"processors": [],
|
|
9
9
|
"editors": [],
|
|
10
10
|
"dependencies": {
|
|
11
|
+
"eo-cmdb-instance-select": [
|
|
12
|
+
"eo-form-item"
|
|
13
|
+
],
|
|
11
14
|
"eo-user-or-user-group-select": [
|
|
12
15
|
"eo-form-item",
|
|
13
16
|
"eo-button",
|
|
14
17
|
"eo-select"
|
|
15
|
-
],
|
|
16
|
-
"eo-cmdb-instance-select": [
|
|
17
|
-
"eo-form-item"
|
|
18
18
|
]
|
|
19
19
|
},
|
|
20
|
-
"filePath": "bricks/form-platform/dist/index.
|
|
20
|
+
"filePath": "bricks/form-platform/dist/index.1c21b41c.js"
|
|
21
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/6223.ef1a783e.js","mappings":"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","sources":["webpack:///./src/user-or-user-group-select/styles.shadow.css","webpack:///../../node_modules/@next-api-sdk/cmdb-sdk/dist/esm/api/cmdb/instance/postSearch.js","webpack:///./src/user-or-user-group-select/index.tsx","webpack:///./src/cmdb-instance-select/index.tsx"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block}:host([hidden]){display:none}.select-wrapper{display:flex;align-items:center}eo-select{width:100%}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","import _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport { http } from \"@next-core/http\";\n/**\n * @description 搜索实例\n * @endpoint POST /object/:objectId/instance/_search\n */\nexport var InstanceApi_postSearch = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator(function* (objectId, data, options) {\n return (/**! @contract easyops.api.cmdb.instance.PostSearch@1.1.0 */(yield http.post(\"api/gateway/cmdb.instance.PostSearch/object/\".concat(objectId, \"/instance/_search\"), data, options)).data\n );\n });\n return function InstanceApi_postSearch(_x, _x2, _x3) {\n return _ref.apply(this, arguments);\n };\n}();\n//# sourceMappingURL=postSearch.js.map","import React, {\n useEffect,\n useState,\n useMemo,\n useRef,\n useCallback,\n} from \"react\";\nimport { createDecorators, EventEmitter } from \"@next-core/element\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { auth } from \"@next-core/easyops-runtime\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\nimport { FormItem, FormItemProps } from \"@next-bricks/form/form-item\";\nimport { Select, SelectProps } from \"@next-bricks/form/select\";\nimport { FormItemElementBase, pickFormItemProps } from \"@next-shared/form\";\nimport { InstanceApi_postSearch, CmdbModels } from \"@next-api-sdk/cmdb-sdk\";\n\nimport {\n zipObject,\n map,\n debounce,\n startsWith,\n filter,\n isNil,\n uniq,\n find,\n isEqual,\n groupBy,\n compact,\n some,\n keyBy,\n DebouncedFunc,\n} from \"lodash\";\nimport type { Button, ButtonProps } from \"@next-bricks/basic/button\";\n\n// --- NOTE: uncomment these lines below to enable i18n for your brick ---\n// import { useTranslation, initializeReactI18n } from \"@next-core/i18n/react\";\n// import { K, NS, locales } from \"./i18n.js\";\n// initializeReactI18n(NS, locales);\ntype ModelObjectItem = Partial<CmdbModels.ModelCmdbObject>;\n\nconst { defineElement, property, event } = createDecorators();\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\nconst WrappedButton = wrapBrick<Button, ButtonProps>(\"eo-button\");\n\nconst WrappedSelect = wrapBrick<\n Select,\n SelectProps & {\n onchange: () => void;\n onfocus: () => void;\n onsearch: DebouncedFunc<(e: any) => void>;\n }\n>(\"eo-select\");\n\nexport interface EoUserOrUserGroupSelectProps extends FormItemProps {\n value?: string[] | undefined;\n placeholder?: string;\n disabled?: boolean;\n readOnly?: boolean;\n clearable?: boolean;\n validateState?: string;\n onChange?: (value: string[]) => void;\n objectList?: ModelObjectItem[];\n query?: Record<string, any>;\n userGroupQuery?: Record<string, any>;\n userQuery?: Record<string, any>;\n userKey?: \"name\" | \"instanceId\";\n optionsMode: \"user\" | \"group\" | \"all\";\n staticList?: string[];\n isMultiple?: boolean;\n hideAddMeQuickly?: boolean;\n themeVariant?: \"default\" | \"elevo\";\n}\n\nexport interface MarkdownDisplayEventsMap {\n change: CustomEvent<string[]>;\n}\n\nexport interface MarkdownDisplayEventsMapping {\n onChange: \"change\";\n}\n\n/**\n * 用户(组)选择器\n * @author dophijing\n * @category form-input-business\n * @insider\n */\nexport\n@defineElement(\"eo-user-or-user-group-select\", {\n styleTexts: [styleText],\n})\nclass EoUserOrUserGroupSelect extends FormItemElementBase {\n /**\n * 字段名称\n */\n @property() accessor name: string | undefined;\n /**\n * 字段说明\n */\n @property() accessor label: string | undefined;\n /**\n * 是否必填\n */\n @property({\n type: Boolean,\n })\n accessor required: boolean | undefined;\n\n /**\n * 字段placeholder\n */\n @property() accessor placeholder: string | undefined;\n /**\n * 值\n */\n @property({\n attribute: false,\n })\n accessor value: string[] | undefined;\n\n /**\n * 模型列表(按需传递 USER/USER_GROUP 的模型定义,用于显示对应实例名称)\n *\n * 注:get object ref 被滥用,这里先暂不支持自动拉取。\n */\n @property({\n attribute: false,\n })\n accessor objectList: Partial<CmdbModels.ModelCmdbObject>[] | undefined;\n\n /**\n * 用户和用户组`search`接口的`query`,此参数比较适用于,两者接口需要参数相同的情况\n * advanced\n */\n @property({\n attribute: false,\n })\n accessor query: Record<string, any> | undefined;\n\n /**\n * 针对`USER/instance/_search`接口的`query`,此参数比较适用于,可能只需要针对用户做筛选的情况\n * @group advanced\n */\n @property({\n attribute: false,\n })\n accessor userQuery: Record<string, any> | undefined;\n\n /**\n * 针对`USER_GROUP/instance/_search`接口的`query`,此参数比较适用于,可能只需要针对用户组做筛选的情况\n * @group advanced\n */\n @property({\n attribute: false,\n })\n accessor userGroupQuery: Record<string, any> | undefined;\n\n /**\n * 用户对象的唯一标识字段,即:value 使用的字段名\n *\n * @default \"name\"\n */\n @property()\n accessor userKey: \"name\" | \"instanceId\" | undefined;\n\n /**\n * 支持选择用户、用户组或者两者\n * {\n * \"optionType\": \"button\",\n * \"options\": [\n * {\n * \"label\": \"All\",\n * \"value\": \"all\"\n * },\n * {\n * \"label\": \"User\",\n * \"value\": \"user\",\n * \"icon\": {\n * \"lib\": \"antd\",\n * \"icon\": \"user\",\n * \"theme\": \"outlined\"\n * }\n * },\n * {\n * \"label\": \"Group\",\n * \"value\": \"group\",\n * \"icon\": {\n * \"lib\": \"antd\",\n * \"icon\": \"usergroup-add\",\n * \"theme\": \"outlined\"\n * }\n * }\n * ]\n * }\n * @group advanced\n */\n @property()\n accessor optionsMode: \"user\" | \"group\" | \"all\" = \"all\";\n\n /**\n * 是否禁用\n */\n @property({\n type: Boolean,\n })\n accessor disabled: boolean | undefined;\n\n /**\n * 是否多选,默认为多选\n * @group advanced\n */\n @property({\n type: Boolean,\n })\n accessor isMultiple: boolean = true;\n\n /**\n * 固定白名单列表,该列表中的值用户不能取消。\n * @group advanced\n */\n @property({\n attribute: false,\n })\n accessor staticList: string[] | undefined;\n\n /**\n * 快速选择我\n * @group advanced\n */\n @property({\n type: Boolean,\n })\n accessor hideAddMeQuickly: boolean = true;\n\n /** 主题变体 */\n @property()\n accessor themeVariant: \"default\" | \"elevo\" | undefined;\n\n @event({ type: \"change\" })\n accessor #changeEvent!: EventEmitter<string[]>;\n\n handleUserOrUserGroupChange = (values: string[]) => {\n Promise.resolve().then(() => {\n this.#changeEvent.emit(values);\n this.getFormElement()?.resetValidateState();\n });\n };\n\n render() {\n return (\n <EoUserOrUserGroupSelectComponent\n formElement={this.getFormElement()}\n curElement={this}\n name={this.name}\n label={this.label}\n placeholder={this.placeholder}\n required={this.required}\n value={this.value}\n validateState={this.validateState}\n notRender={this.notRender}\n helpBrick={this.helpBrick}\n trigger=\"handleUserOrUserGroupChange\"\n onChange={this.handleUserOrUserGroupChange}\n objectList={this.objectList}\n query={this.query}\n userQuery={this.userQuery}\n userGroupQuery={this.userGroupQuery}\n userKey={this.userKey}\n optionsMode={this.optionsMode}\n staticList={this.staticList}\n isMultiple={this.isMultiple}\n disabled={this.disabled}\n hideAddMeQuickly={this.hideAddMeQuickly}\n themeVariant={this.themeVariant}\n />\n );\n }\n}\n\nexport function EoUserOrUserGroupSelectComponent(\n props: EoUserOrUserGroupSelectProps\n) {\n // const { t } = useTranslation(NS);\n // const hello = t(K.HELLO);\n const objectList = props.objectList;\n const userKey = props.userKey === \"instanceId\" ? props.userKey : \"name\";\n const [searchValue, setSearchValue] = useState<string>();\n const [userList, setUserList] = useState<any[]>([]);\n const [userGroupList, setUserGroupList] = useState<any[]>([]);\n const [selectedValue, setSelectedValue] = useState([]);\n const staticValue = useRef([]);\n\n const computedValue = useMemo(() => {\n if (isNil(props.value)) {\n return undefined;\n } else {\n return props.isMultiple ? [...props.value] : props.value?.[0];\n }\n }, [props.value, props.isMultiple]);\n\n const getShowKey = useCallback(\n (objectId: string): string[] => {\n const objectMap = keyBy(objectList, \"objectId\");\n return (\n (objectMap[objectId]?.view && objectMap[objectId].view?.show_key) || [\n \"name\",\n ]\n );\n },\n [objectList]\n );\n\n const fetchInstanceList = async (\n objectId: \"USER\" | \"USER_GROUP\",\n keyword: string\n ) => {\n const showKey =\n objectId === \"USER\" ? getShowKey(\"USER\") : getShowKey(\"USER_GROUP\");\n\n const showKeyQuery = {\n $or: map(uniq([...showKey, \"name\"]), (v) => ({\n [v]: { $like: `%${keyword}%` },\n })),\n ...(objectId === \"USER\"\n ? {\n state: \"valid\",\n }\n : {}),\n };\n\n const fetchByCurrentValue = () => {\n // 对于分组是以 \":instanceId\" 的格式存储在 value 中\n const staticIn =\n objectId === \"USER\"\n ? props.value?.filter((v) => !v.startsWith(\":\"))\n : props.value\n ?.filter((v) => v.startsWith(\":\"))\n .map((v) => v.slice(1));\n\n if (staticIn?.length) {\n return InstanceApi_postSearch(objectId, {\n page: 1,\n page_size: staticIn.length,\n fields: {\n ...zipObject(\n showKey,\n map(showKey, () => true)\n ),\n\n name: true,\n },\n query:\n objectId === \"USER\"\n ? {\n [userKey]: {\n $in: staticIn,\n },\n }\n : {\n instanceId: {\n $in: staticIn,\n },\n },\n });\n }\n return Promise.resolve({ list: [] });\n };\n\n const [{ list: searchList }, { list: valueList }] = await Promise.all([\n InstanceApi_postSearch(objectId, {\n page: 1,\n page_size: 20,\n fields: {\n ...zipObject(\n showKey,\n map(showKey, () => true)\n ),\n\n name: true,\n },\n query:\n props.userQuery && objectId === \"USER\"\n ? {\n $and: [props.userQuery, showKeyQuery],\n }\n : props.userGroupQuery && objectId === \"USER_GROUP\"\n ? {\n $and: [props.userGroupQuery, showKeyQuery],\n }\n : props.query\n ? {\n $and: [props.query, showKeyQuery],\n }\n : showKeyQuery,\n }),\n fetchByCurrentValue(),\n ]);\n\n for (const item of valueList!) {\n const exists = searchList!.find((v) => v.instanceId === item.instanceId);\n if (!exists) {\n searchList!.push(item);\n }\n }\n\n return searchList!;\n };\n\n const searchUser = async (value: string) => {\n setUserList(await fetchInstanceList(\"USER\", value));\n };\n\n // 用户组在instanceId前面加上:\n const searchUserGroup = async (value: string) => {\n const result = await fetchInstanceList(\"USER_GROUP\", value);\n setUserGroupList(\n result.map((v) => {\n v.instanceId = \":\" + v.instanceId;\n return v;\n })\n );\n };\n\n const searchUserOrUserGroupInstances = async (value: string) => {\n setSearchValue(value);\n await Promise.all([\n ...(props.optionsMode !== \"group\" ? [searchUser(value)] : []),\n ...(props.optionsMode !== \"user\" ? [searchUserGroup(value)] : []),\n ]);\n };\n\n const handleFocus = () => {\n if (isNil(searchValue) || searchValue !== \"\") {\n searchUserOrUserGroupInstances(\"\");\n }\n };\n\n const prevValueRef = useRef<string[] | undefined>();\n\n useEffect(() => {\n // Re-fetch when value changes (such as updating the value programmatically)\n // TODO: avoid unnecessary requests\n if (props.value?.length && !isEqual(props.value, prevValueRef.current)) {\n prevValueRef.current = props.value;\n searchUserOrUserGroupInstances(\"\");\n }\n }, [props.value]);\n\n const triggerChange = (changedValue: string[]) => {\n props.onChange?.(changedValue);\n };\n\n const handleSelectChange = (e: any) => {\n const originValue = e.detail?.value;\n\n const value = filter(\n Array.isArray(originValue)\n ? originValue\n : originValue\n ? [originValue]\n : [],\n (item) => {\n return !find(props.staticList, (v) => v === item);\n }\n );\n\n value.unshift(...staticValue.current);\n setSelectedValue(value as any);\n triggerChange(value);\n if (searchValue !== \"\") {\n searchUserOrUserGroupInstances(\"\");\n }\n };\n\n const isDifferent = () => {\n const userOfValues = props.value?.filter((v) => !v.startsWith(\":\")) || [];\n const userGroupOfValues =\n props.value?.filter((v) => v.startsWith(\":\")) || [];\n const userOfSelectedValue = map(\n filter(selectedValue, (item: any) => !item?.key?.startsWith(\":\")),\n \"key\"\n );\n\n const userGroupOfSelectedValue = map(\n filter(selectedValue, (item: any) => item?.key?.startsWith(\":\")),\n \"key\"\n );\n\n return (\n !isEqual([...userOfValues].sort(), [...userOfSelectedValue].sort()) ||\n !isEqual(\n [...userGroupOfValues].sort(),\n [...userGroupOfSelectedValue].sort()\n )\n );\n };\n\n const initializeStaticList = () => {\n return groupBy(props.staticList, (v) =>\n startsWith(v, \":\") ? \"userGroup\" : \"user\"\n );\n };\n const getLabel = (\n objectId: \"USER\" | \"USER_GROUP\",\n instanceData: any\n ): string => {\n const showKey =\n objectId === \"USER\" ? getShowKey(\"USER\") : getShowKey(\"USER_GROUP\");\n let showName;\n if (Array.isArray(showKey)) {\n showName = showKey\n .map((key, index) => {\n if (index === 0) {\n return instanceData[key];\n } else {\n return instanceData[key] ? \"(\" + instanceData[key] + \")\" : \"\";\n }\n })\n .join(\"\");\n } else {\n showName = instanceData[showKey];\n }\n return showName || instanceData.name;\n };\n\n useEffect(() => {\n const initializeSelectedValue = async () => {\n if (props.value) {\n let selectedUser: any[] = [];\n let selectedUserGroup: any[] = [];\n const usersValue = props.value.filter((v) => !v.startsWith(\":\"));\n const userGroupsValue = props.value.filter((v) => v.startsWith(\":\"));\n const staticKeys = initializeStaticList();\n const user: string[] = compact(\n uniq(([] as string[]).concat(staticKeys.user).concat(usersValue))\n );\n\n const userGroup: string[] = compact(\n uniq(\n ([] as string[])\n .concat(staticKeys.userGroup)\n .concat(userGroupsValue)\n )\n );\n\n if (\n (staticKeys.user &&\n some(staticKeys.user, (v) => !usersValue.includes(v))) ||\n (staticKeys.userGroup &&\n some(staticKeys.userGroup, (v) => !userGroupsValue.includes(v)))\n ) {\n triggerChange([...user, ...userGroup]);\n }\n const staticValueToSet: any = [];\n if (user.length && props.optionsMode !== \"group\") {\n selectedUser = (\n await InstanceApi_postSearch(\"USER\", {\n query: {\n [userKey]: {\n $in: user,\n },\n },\n\n page: 1,\n page_size: user.length,\n fields: {\n ...zipObject(\n getShowKey(\"USER\"),\n map(getShowKey(\"USER\"), () => true)\n ),\n\n name: true,\n },\n })\n ).list as any[];\n }\n if (userGroup.length && props.optionsMode !== \"user\") {\n selectedUserGroup = (\n await InstanceApi_postSearch(\"USER_GROUP\", {\n query: {\n instanceId: {\n // 默认带为\":\"+instanceId,这里查询的时候去掉前面的冒号\n $in: map(userGroup, (v) => (v as string).slice(1)),\n },\n },\n\n page: 1,\n page_size: userGroup.length,\n fields: {\n ...zipObject(\n getShowKey(\"USER_GROUP\"),\n map(getShowKey(\"USER_GROUP\"), () => true)\n ),\n\n name: true,\n },\n })\n ).list as any[];\n }\n let labelValue = [\n ...map(selectedUser, (v) => {\n const labelText = getLabel(\"USER\", v);\n const result = {\n key: v[userKey],\n label: labelText,\n };\n\n if (props.staticList?.includes(v[userKey])) {\n staticValueToSet.push(result);\n }\n return result;\n }),\n ...map(selectedUserGroup, (v) => {\n const labelText = getLabel(\"USER_GROUP\", v);\n const result = {\n key: \":\" + v.instanceId,\n label: labelText,\n };\n\n if (props.staticList?.includes(\":\" + v.instanceId)) {\n staticValueToSet.push(result);\n }\n return result;\n }),\n ];\n\n labelValue = [\n ...staticValueToSet,\n ...filter(labelValue, (v) => !props.staticList?.includes(v.key)),\n ];\n setSelectedValue(labelValue as any);\n setUserList(selectedUser);\n setUserGroupList(selectedUserGroup);\n staticValue.current = staticValueToSet;\n }\n };\n if (isDifferent()) {\n initializeSelectedValue();\n }\n }, []);\n\n const selectOptions = useMemo(() => {\n let userListOptions: any = [];\n let userGroupListOptions: any = [];\n if (userList.length) {\n userListOptions = userList.map((user) => ({\n label: getLabel(\"USER\", user),\n value: user[userKey],\n closeable: !props?.staticList?.includes(user[userKey]),\n tag: \"用户(仅显示前20项,更多结果请搜索)\",\n }));\n }\n if (userGroupList.length) {\n userGroupListOptions = userGroupList.map((group) => ({\n label: getLabel(\"USER_GROUP\", group),\n value: group.instanceId,\n closeable: !props?.staticList?.includes(group.instanceId),\n tag: \"用户组(仅显示前20项,更多结果请搜索)\",\n }));\n }\n\n return props.optionsMode === \"user\"\n ? userListOptions\n : props.optionsMode === \"group\"\n ? userGroupListOptions\n : [...userListOptions, ...userGroupListOptions];\n }, [userList, userGroupList, props.optionsMode, props.staticList, userKey]);\n\n // 快速选择我\n const addMeQuickly = async () => {\n const myUserValue =\n auth.getAuth()[userKey === \"instanceId\" ? \"userInstanceId\" : \"username\"];\n if (find(selectedValue, (v) => v === myUserValue)) {\n // 如果已选择项中包含我,则不重新发起请求\n return;\n }\n const myUser = (\n await InstanceApi_postSearch(\"USER\", {\n query: {\n [userKey]: {\n $eq: myUserValue,\n },\n },\n\n page: 1,\n page_size: 1,\n fields: {\n ...zipObject(\n getShowKey(\"USER\"),\n map(getShowKey(\"USER\"), () => true)\n ),\n\n name: true,\n },\n })\n ).list as any[];\n myUser.length && setUserList([...userList, ...myUser]);\n handleSelectChange({ detail: { value: [...selectedValue, myUserValue] } });\n };\n\n return (\n <WrappedFormItem exportparts=\"message\" {...pickFormItemProps(props)}>\n <div className=\"select-wrapper\">\n <WrappedSelect\n clearable={true}\n mode={props.isMultiple ? \"multiple\" : undefined}\n placeholder={props.placeholder}\n value={computedValue}\n onchange={handleSelectChange as any}\n onfocus={handleFocus}\n onsearch={debounce((e) => {\n searchUserOrUserGroupInstances(e.detail.value as string);\n }, 500)}\n options={selectOptions as any}\n disabled={props.disabled}\n groupBy=\"tag\"\n themeVariant={props.themeVariant}\n />\n {!props.hideAddMeQuickly && props.optionsMode !== \"group\" && (\n <WrappedButton\n onClick={addMeQuickly}\n type=\"link\"\n size=\"large\"\n style={{ fontSize: \"16px\" }}\n icon={{\n lib: \"easyops\",\n icon: \"quick-add-me\",\n }}\n />\n )}\n </div>\n </WrappedFormItem>\n );\n}\n","import React, { useEffect, useMemo, useRef } from \"react\";\nimport { createDecorators, EventEmitter } from \"@next-core/element\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\nimport { FormItem, FormItemProps } from \"@next-bricks/form/form-item\";\nimport { FormItemElementBase, pickFormItemProps } from \"@next-shared/form\";\nimport {\n CmdbInstanceSelect,\n ComplexOption,\n} from \"./CmdbInstanceSelectInternal\";\nimport { isNil } from \"lodash\";\nimport { ConfigProvider, theme } from \"antd\";\nimport { StyleProvider, createCache } from \"@ant-design/cssinjs\";\nimport { useCurrentTheme } from \"@next-core/react-runtime\";\nimport { i18n, initializeI18n } from \"@next-core/i18n\";\nimport { NS, locales } from \"./i18n.js\";\nimport enUS from \"antd/locale/en_US.js\";\nimport zhCN from \"antd/locale/zh_CN.js\";\ninitializeI18n(NS, locales);\n\nconst { defineElement, property, event } = createDecorators();\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\n\nexport interface EoCmdbInstanceSelectProps extends FormItemProps {\n shadowRoot: ShadowRoot | null;\n objectId: string;\n mode?: string;\n pageSize?: number;\n instanceQuery?: any;\n placeholder?: string;\n fields?: Partial<ComplexOption<string>>;\n minimumInputLength?: number;\n value?: string | string[];\n onChange?: (value: string | string[], option?: ComplexOption) => void;\n onOptionsChange?: (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 useExternalCmdbApi?: boolean;\n externalSourceId?: string;\n validateState?: string;\n trigger?: string;\n}\n\nexport interface CmdbInstanceSelectEventsMap {\n change: CustomEvent<string | string[]>;\n \"change.v2\": CustomEvent<ComplexOption>;\n \"options.change\": CustomEvent<{ options: ComplexOption[]; name: string }>;\n}\n\nexport interface CmdbInstanceSelectEventsMapping {\n onChange: \"change\";\n onChangeV2: \"change.v2\";\n onOptionsChange: \"options.change\";\n}\n\n/**\n * CMDB 实例选择器\n * @author jo\n * @category form-input-business\n * @insider\n */\nexport\n@defineElement(\"eo-cmdb-instance-select\", {\n styleTexts: [styleText],\n})\nclass EoCmdbInstanceSelect extends FormItemElementBase {\n /**\n * 字段名称\n */\n @property() accessor name: string | undefined;\n\n /**\n * 字段说明\n */\n @property() accessor label: string | undefined;\n\n /**\n * 是否必填\n */\n @property({\n type: Boolean,\n })\n accessor required: boolean | undefined;\n\n /**\n * 字段placeholder\n */\n @property() accessor placeholder: string | undefined;\n\n /**\n * 值\n */\n @property({\n attribute: false,\n })\n accessor value: string | string[] | undefined;\n\n /**\n * 模型 id\n */\n @property()\n accessor objectId!: string;\n\n /**\n * 是否禁用\n */\n @property({\n type: Boolean,\n })\n accessor disabled: boolean | undefined;\n\n /**\n * 支持清除选项\n */\n @property({\n type: Boolean,\n })\n accessor allowClear: boolean | undefined;\n\n /**\n * 多选模式\n */\n @property()\n accessor mode: string | undefined;\n\n /**\n * 配置搜索接口的pageSize\n */\n @property({\n type: Number,\n })\n accessor pageSize: number | undefined;\n\n /**\n * 下拉框选项的过滤条件\n */\n @property({\n attribute: false,\n })\n accessor instanceQuery: any;\n\n /**\n * 自定义 select 下拉选项的 label 和 value 字段\n */\n @property({\n attribute: false,\n })\n accessor fields: Partial<ComplexOption<string>> | undefined;\n\n /**\n * 输入多少个字符才触发搜索动作\n */\n @property({\n type: Number,\n })\n accessor minimumInputLength: number | undefined;\n\n /**\n * 配置额外的字段进行搜索\n */\n @property({\n attribute: false,\n })\n accessor extraSearchKey: string[] | undefined;\n\n /**\n * 配置接口需要返回的额外字段\n */\n @property({\n attribute: false,\n })\n accessor extraFields: string[] | undefined;\n\n /**\n * 下拉选项的渲染方式\n */\n @property()\n accessor popoverPositionType: \"default\" | \"parent\" | undefined;\n\n /**\n * 控制下拉框中的label显示一个或者多个\n */\n @property({\n type: Boolean,\n })\n accessor isMultiLabel: boolean | undefined;\n\n /**\n * 下拉列表的最后一行是否显示提示\n */\n @property({\n type: Boolean,\n })\n accessor showSearchTip: boolean | undefined;\n\n /**\n * 可自定义label显示的模板\n */\n @property()\n accessor labelTemplate: string | undefined;\n\n /**\n * 输入框样式\n */\n @property({\n attribute: false,\n })\n accessor inputBoxStyle: React.CSSProperties | undefined;\n\n /**\n * 按照权限过滤实例\n */\n @property({\n attribute: false,\n })\n accessor permission: Array<\"read\" | \"update\" | \"operate\"> | undefined;\n\n /**\n * 下拉框中是否启用tooltip显示label全称\n */\n @property({\n type: Boolean,\n })\n accessor showTooltip: boolean | undefined;\n\n /**\n * 是否忽略不存在字段\n */\n @property({\n type: Boolean,\n })\n accessor ignoreMissingFieldError: boolean | undefined;\n\n /**\n * 实例通过showKey自定义展示\n */\n @property({\n type: Boolean,\n })\n accessor showKeyField: boolean | undefined;\n\n /**\n * 下拉菜单和选择器同宽\n */\n @property({\n type: Boolean,\n })\n accessor dropdownMatchSelectWidth: boolean | undefined;\n\n /**\n * 设置下拉框容器的样式\n */\n @property({\n attribute: false,\n })\n accessor dropdownStyle: React.CSSProperties | undefined;\n\n /**\n * 是否在选完值后取消聚焦\n */\n @property({\n type: Boolean,\n })\n accessor blurAfterValueChanged: boolean | undefined;\n\n /**\n * 配置接口返回数据的排序规则\n */\n @property({\n attribute: false,\n })\n accessor sort: Array<Record<string, number | string>> | undefined;\n\n /**\n * 使用外部数据源\n */\n @property({\n type: Boolean,\n })\n accessor useExternalCmdbApi: boolean | undefined;\n\n /**\n * 外部数据源id\n */\n @property()\n accessor externalSourceId: string | undefined;\n\n @event({ type: \"change\" })\n accessor #changeEvent!: EventEmitter<string | string[]>;\n\n @event({ type: \"change.v2\" })\n accessor #changeEventV2!: EventEmitter<ComplexOption>;\n\n @event({ type: \"options.change\" })\n accessor #optionsChangeEvent!: EventEmitter<{\n options: ComplexOption[];\n name: string;\n }>;\n\n handleChange = (value: string | string[], option?: ComplexOption) => {\n this.value = value;\n Promise.resolve().then(() => {\n this.#changeEvent.emit(value);\n this.#changeEventV2.emit(option || ({ value } as ComplexOption));\n this.getFormElement()?.resetValidateState();\n });\n };\n\n handleOptionsChange = (options: ComplexOption[]) => {\n Promise.resolve().then(() => {\n this.#optionsChangeEvent.emit({\n options,\n name: this.name!,\n });\n });\n };\n\n render() {\n return (\n <EoCmdbInstanceSelectComponent\n formElement={this.getFormElement()}\n curElement={this}\n name={this.name}\n label={this.label}\n required={this.required}\n value={this.value}\n validateState={this.validateState}\n notRender={this.notRender}\n helpBrick={this.helpBrick}\n trigger=\"handleChange\"\n onChange={this.handleChange}\n onOptionsChange={this.handleOptionsChange}\n objectId={this.objectId}\n disabled={this.disabled}\n allowClear={this.allowClear}\n mode={this.mode}\n pageSize={this.pageSize}\n instanceQuery={this.instanceQuery}\n fields={this.fields}\n minimumInputLength={this.minimumInputLength}\n extraSearchKey={this.extraSearchKey}\n extraFields={this.extraFields}\n popoverPositionType={this.popoverPositionType}\n isMultiLabel={this.isMultiLabel}\n showSearchTip={this.showSearchTip}\n labelTemplate={this.labelTemplate}\n inputBoxStyle={this.inputBoxStyle}\n permission={this.permission}\n showTooltip={this.showTooltip}\n ignoreMissingFieldError={this.ignoreMissingFieldError}\n showKeyField={this.showKeyField}\n dropdownMatchSelectWidth={this.dropdownMatchSelectWidth}\n dropdownStyle={this.dropdownStyle}\n blurAfterValueChanged={this.blurAfterValueChanged}\n sort={this.sort}\n useExternalCmdbApi={this.useExternalCmdbApi}\n externalSourceId={this.externalSourceId}\n placeholder={this.placeholder}\n shadowRoot={this.shadowRoot}\n />\n );\n }\n}\n\nexport function EoCmdbInstanceSelectComponent(\n props: EoCmdbInstanceSelectProps\n) {\n const selectRef = useRef<any>();\n const currentTheme = useCurrentTheme();\n const locale =\n i18n.language && i18n.language.split(\"-\")[0] === \"en\" ? enUS : zhCN;\n\n useEffect(() => {\n if (!isNil(props.value)) {\n selectRef.current?.setInitValue?.(props.value);\n }\n }, [props.value]);\n\n const handleChange = (value: string, option?: ComplexOption) => {\n props.onChange?.(value, option);\n };\n\n const handleOptionsChange = (options: ComplexOption[]) => {\n props.onOptionsChange?.(options);\n };\n\n const cache = useMemo(() => {\n return createCache();\n }, []);\n\n return (\n <WrappedFormItem exportparts=\"message\" {...pickFormItemProps(props)}>\n <ConfigProvider\n locale={locale as any}\n theme={{\n algorithm:\n currentTheme === \"dark-v2\"\n ? theme.darkAlgorithm\n : theme.defaultAlgorithm,\n }}\n >\n <StyleProvider container={props.shadowRoot as ShadowRoot} cache={cache}>\n <CmdbInstanceSelect\n ref={selectRef}\n objectId={props.objectId}\n mode={props.mode}\n pageSize={props.pageSize}\n instanceQuery={props.instanceQuery}\n placeholder={props.placeholder}\n fields={props.fields}\n firstRender={true}\n minimumInputLength={props.minimumInputLength}\n value={props.value}\n onChange={handleChange}\n optionsChange={handleOptionsChange}\n allowClear={props.allowClear}\n inputBoxStyle={props.inputBoxStyle}\n extraSearchKey={props.extraSearchKey}\n extraFields={props.extraFields}\n popoverPositionType={props.popoverPositionType}\n isMultiLabel={props.isMultiLabel}\n showSearchTip={props.showSearchTip}\n labelTemplate={props.labelTemplate}\n disabled={props.disabled}\n permission={props.permission}\n showTooltip={props.showTooltip}\n ignoreMissingFieldError={props.ignoreMissingFieldError}\n showKeyField={props.showKeyField}\n dropdownMatchSelectWidth={props.dropdownMatchSelectWidth}\n dropdownStyle={props.dropdownStyle}\n blurAfterValueChanged={props.blurAfterValueChanged}\n sort={props.sort}\n useExternalCmdbApi={props.useExternalCmdbApi}\n externalSourceId={props.externalSourceId}\n getPopupContainer={(trigger: HTMLElement) => trigger}\n />\n </StyleProvider>\n </ConfigProvider>\n </WrappedFormItem>\n );\n}\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","toString","InstanceApi_postSearch","_ref","objectId","data","options","http","post","concat","_x","_x2","_x3","apply","this","arguments","defineElement","property","event","createDecorators","WrappedFormItem","wrapBrick","WrappedButton","WrappedSelect","_EoUserOrUserGroupSel","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_EoUserOrUserGroupSelect_brand","WeakSet","EoUserOrUserGroupSelect","FormItemElementBase","constructor","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","_init_name","_init_extra_name","_init_label","_init_extra_label","_init_required","_init_extra_required","_init_placeholder","_init_extra_placeholder","_init_value","_init_extra_value","_init_objectList","_init_extra_objectList","_init_query","_init_extra_query","_init_userQuery","_init_extra_userQuery","_init_userGroupQuery","_init_extra_userGroupQuery","_init_userKey","_init_extra_userKey","_init_optionsMode","_init_extra_optionsMode","_init_disabled","_init_extra_disabled","_init_isMultiple","_init_extra_isMultiple","_init_staticList","_init_extra_staticList","_init_hideAddMeQuickly","_init_extra_hideAddMeQuickly","_init_themeVariant","_init_extra_themeVariant","_init_changeEvent","_defineProperty","_init_extra_changeEvent","values","Promise","resolve","then","_this$getFormElement","_classPrivateGetter","_get_changeEvent","emit","getFormElement","resetValidateState","name","_classPrivateFieldGet","v","_classPrivateFieldSet","label","required","placeholder","value","objectList","query","userQuery","userGroupQuery","userKey","optionsMode","disabled","isMultiple","staticList","hideAddMeQuickly","themeVariant","render","React","EoUserOrUserGroupSelectComponent","formElement","curElement","validateState","notRender","helpBrick","trigger","onChange","handleUserOrUserGroupChange","props","searchValue","setSearchValue","useState","userList","setUserList","userGroupList","setUserGroupList","selectedValue","setSelectedValue","staticValue","useRef","computedValue","useMemo","_props$value","isNil","getShowKey","useCallback","_objectMap$objectId","_objectMap$objectId$v","objectMap","keyBy","view","show_key","fetchInstanceList","async","keyword","showKey","showKeyQuery","$or","map","uniq","$like","state","list","searchList","valueList","all","page","page_size","fields","zipObject","$and","fetchByCurrentValue","_props$value2","_props$value3","staticIn","filter","startsWith","slice","length","$in","instanceId","item","find","searchUser","searchUserGroup","result","searchUserOrUserGroupInstances","prevValueRef","useEffect","_props$value4","isEqual","current","triggerChange","changedValue","_props$onChange","call","handleSelectChange","e","_e$detail","originValue","detail","Array","isArray","unshift","getLabel","instanceData","showName","key","index","join","isDifferent","_props$value5","_props$value6","userOfValues","userGroupOfValues","userOfSelectedValue","_item$key","userGroupOfSelectedValue","_item$key2","sort","selectedUser","selectedUserGroup","usersValue","userGroupsValue","staticKeys","groupBy","user","compact","userGroup","some","includes","staticValueToSet","labelValue","_props$staticList","labelText","_props$staticList2","_props$staticList3","initializeSelectedValue","selectOptions","userListOptions","userGroupListOptions","_props$staticList4","closeable","tag","group","_props$staticList5","_extends","exportparts","pickFormItemProps","className","clearable","mode","undefined","onchange","onfocus","handleFocus","onsearch","debounce","onClick","myUserValue","auth","getAuth","myUser","$eq","type","size","style","fontSize","icon","lib","_EoUserOrUserGroupSelect","_set_changeEvent","c","_initClass","_applyDecs","styleTexts","styleText","Boolean","attribute","o","_","has","_checkInRHS","initializeI18n","NS","locales","_EoCmdbInstanceSelect","_R","_S","_T","_U","_V","_W","_X","_Y","_Z","_a","_b","_c","_d","_e","_EoCmdbInstanceSelect_brand","_f","_g","EoCmdbInstanceSelect","_init_objectId","_init_extra_objectId","_init_allowClear","_init_extra_allowClear","_init_mode","_init_extra_mode","_init_pageSize","_init_extra_pageSize","_init_instanceQuery","_init_extra_instanceQuery","_init_fields","_init_extra_fields","_init_minimumInputLength","_init_extra_minimumInputLength","_init_extraSearchKey","_init_extra_extraSearchKey","_init_extraFields","_init_extra_extraFields","_init_popoverPositionType","_init_extra_popoverPositionType","_init_isMultiLabel","_init_extra_isMultiLabel","_init_showSearchTip","_init_extra_showSearchTip","_init_labelTemplate","_init_extra_labelTemplate","_init_inputBoxStyle","_init_extra_inputBoxStyle","_init_permission","_init_extra_permission","_init_showTooltip","_init_extra_showTooltip","_init_ignoreMissingFieldError","_init_extra_ignoreMissingFieldError","_init_showKeyField","_init_extra_showKeyField","_init_dropdownMatchSelectWidth","_init_extra_dropdownMatchSelectWidth","_init_dropdownStyle","_init_extra_dropdownStyle","_init_blurAfterValueChanged","_init_extra_blurAfterValueChanged","_init_sort","_init_extra_sort","_init_useExternalCmdbApi","_init_extra_useExternalCmdbApi","_init_externalSourceId","_init_extra_externalSourceId","_init_changeEventV","_init_extra_changeEventV","_init_optionsChangeEvent","_init_extra_optionsChangeEvent","option","_get_changeEventV","_get_optionsChangeEvent","allowClear","pageSize","instanceQuery","minimumInputLength","extraSearchKey","extraFields","popoverPositionType","isMultiLabel","showSearchTip","labelTemplate","inputBoxStyle","permission","showTooltip","ignoreMissingFieldError","showKeyField","dropdownMatchSelectWidth","dropdownStyle","blurAfterValueChanged","useExternalCmdbApi","externalSourceId","EoCmdbInstanceSelectComponent","handleChange","onOptionsChange","handleOptionsChange","shadowRoot","selectRef","currentTheme","useCurrentTheme","locale","i18n","language","split","enUS","zhCN","_selectRef$current","_selectRef$current$se","setInitValue","cache","createCache","ConfigProvider","theme","algorithm","darkAlgorithm","defaultAlgorithm","StyleProvider","container","CmdbInstanceSelect","ref","firstRender","optionsChange","_props$onOptionsChang","getPopupContainer","_EoCmdbInstanceSelect2","_set_changeEventV","_set_optionsChangeEvent","Number"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"chunks/6223.ef1a783e.js","mappings":"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","sources":["webpack:///./src/user-or-user-group-select/styles.shadow.css","webpack:///../../node_modules/@next-api-sdk/cmdb-sdk/dist/esm/api/cmdb/instance/postSearch.js","webpack:///./src/user-or-user-group-select/index.tsx","webpack:///./src/cmdb-instance-select/index.tsx"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block}:host([hidden]){display:none}.select-wrapper{display:flex;align-items:center}eo-select{width:100%}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","import _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport { http } from \"@next-core/http\";\n/**\n * @description 搜索实例\n * @endpoint POST /object/:objectId/instance/_search\n */\nexport var InstanceApi_postSearch = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator(function* (objectId, data, options) {\n return (/**! @contract easyops.api.cmdb.instance.PostSearch@1.1.0 */(yield http.post(\"api/gateway/cmdb.instance.PostSearch/object/\".concat(objectId, \"/instance/_search\"), data, options)).data\n );\n });\n return function InstanceApi_postSearch(_x, _x2, _x3) {\n return _ref.apply(this, arguments);\n };\n}();\n//# sourceMappingURL=postSearch.js.map","import React, {\n useEffect,\n useState,\n useMemo,\n useRef,\n useCallback,\n} from \"react\";\nimport { createDecorators, EventEmitter } from \"@next-core/element\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { auth } from \"@next-core/easyops-runtime\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\nimport { FormItem, FormItemProps } from \"@next-bricks/form/form-item\";\nimport { Select, SelectProps } from \"@next-bricks/form/select\";\nimport { FormItemElementBase, pickFormItemProps } from \"@next-shared/form\";\nimport { InstanceApi_postSearch, CmdbModels } from \"@next-api-sdk/cmdb-sdk\";\n\nimport {\n zipObject,\n map,\n debounce,\n startsWith,\n filter,\n isNil,\n uniq,\n find,\n isEqual,\n groupBy,\n compact,\n some,\n keyBy,\n DebouncedFunc,\n} from \"lodash\";\nimport type { Button, ButtonProps } from \"@next-bricks/basic/button\";\n\n// --- NOTE: uncomment these lines below to enable i18n for your brick ---\n// import { useTranslation, initializeReactI18n } from \"@next-core/i18n/react\";\n// import { K, NS, locales } from \"./i18n.js\";\n// initializeReactI18n(NS, locales);\ntype ModelObjectItem = Partial<CmdbModels.ModelCmdbObject>;\n\nconst { defineElement, property, event } = createDecorators();\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\nconst WrappedButton = wrapBrick<Button, ButtonProps>(\"eo-button\");\n\nconst WrappedSelect = wrapBrick<\n Select,\n SelectProps & {\n onchange: () => void;\n onfocus: () => void;\n onsearch: DebouncedFunc<(e: any) => void>;\n }\n>(\"eo-select\");\n\nexport interface EoUserOrUserGroupSelectProps extends FormItemProps {\n value?: string[] | undefined;\n placeholder?: string;\n disabled?: boolean;\n readOnly?: boolean;\n clearable?: boolean;\n validateState?: string;\n onChange?: (value: string[]) => void;\n objectList?: ModelObjectItem[];\n query?: Record<string, any>;\n userGroupQuery?: Record<string, any>;\n userQuery?: Record<string, any>;\n userKey?: \"name\" | \"instanceId\";\n optionsMode: \"user\" | \"group\" | \"all\";\n staticList?: string[];\n isMultiple?: boolean;\n hideAddMeQuickly?: boolean;\n themeVariant?: \"default\" | \"elevo\";\n}\n\nexport interface MarkdownDisplayEventsMap {\n change: CustomEvent<string[]>;\n}\n\nexport interface MarkdownDisplayEventsMapping {\n onChange: \"change\";\n}\n\n/**\n * 用户(组)选择器\n * @author dophijing\n * @category form-input-business\n * @insider\n */\nexport\n@defineElement(\"eo-user-or-user-group-select\", {\n styleTexts: [styleText],\n})\nclass EoUserOrUserGroupSelect extends FormItemElementBase {\n /**\n * 字段名称\n */\n @property() accessor name: string | undefined;\n /**\n * 字段说明\n */\n @property() accessor label: string | undefined;\n /**\n * 是否必填\n */\n @property({\n type: Boolean,\n })\n accessor required: boolean | undefined;\n\n /**\n * 字段placeholder\n */\n @property() accessor placeholder: string | undefined;\n /**\n * 值\n */\n @property({\n attribute: false,\n })\n accessor value: string[] | undefined;\n\n /**\n * 模型列表(按需传递 USER/USER_GROUP 的模型定义,用于显示对应实例名称)\n *\n * 注:get object ref 被滥用,这里先暂不支持自动拉取。\n */\n @property({\n attribute: false,\n })\n accessor objectList: Partial<CmdbModels.ModelCmdbObject>[] | undefined;\n\n /**\n * 用户和用户组`search`接口的`query`,此参数比较适用于,两者接口需要参数相同的情况\n * advanced\n */\n @property({\n attribute: false,\n })\n accessor query: Record<string, any> | undefined;\n\n /**\n * 针对`USER/instance/_search`接口的`query`,此参数比较适用于,可能只需要针对用户做筛选的情况\n * @group advanced\n */\n @property({\n attribute: false,\n })\n accessor userQuery: Record<string, any> | undefined;\n\n /**\n * 针对`USER_GROUP/instance/_search`接口的`query`,此参数比较适用于,可能只需要针对用户组做筛选的情况\n * @group advanced\n */\n @property({\n attribute: false,\n })\n accessor userGroupQuery: Record<string, any> | undefined;\n\n /**\n * 用户对象的唯一标识字段,即:value 使用的字段名\n *\n * @default \"name\"\n */\n @property()\n accessor userKey: \"name\" | \"instanceId\" | undefined;\n\n /**\n * 支持选择用户、用户组或者两者\n * {\n * \"optionType\": \"button\",\n * \"options\": [\n * {\n * \"label\": \"All\",\n * \"value\": \"all\"\n * },\n * {\n * \"label\": \"User\",\n * \"value\": \"user\",\n * \"icon\": {\n * \"lib\": \"antd\",\n * \"icon\": \"user\",\n * \"theme\": \"outlined\"\n * }\n * },\n * {\n * \"label\": \"Group\",\n * \"value\": \"group\",\n * \"icon\": {\n * \"lib\": \"antd\",\n * \"icon\": \"usergroup-add\",\n * \"theme\": \"outlined\"\n * }\n * }\n * ]\n * }\n * @group advanced\n */\n @property()\n accessor optionsMode: \"user\" | \"group\" | \"all\" = \"all\";\n\n /**\n * 是否禁用\n */\n @property({\n type: Boolean,\n })\n accessor disabled: boolean | undefined;\n\n /**\n * 是否多选,默认为多选\n * @group advanced\n */\n @property({\n type: Boolean,\n })\n accessor isMultiple: boolean = true;\n\n /**\n * 固定白名单列表,该列表中的值用户不能取消。\n * @group advanced\n */\n @property({\n attribute: false,\n })\n accessor staticList: string[] | undefined;\n\n /**\n * 快速选择我\n * @group advanced\n */\n @property({\n type: Boolean,\n })\n accessor hideAddMeQuickly: boolean = true;\n\n /** 主题变体 */\n @property()\n accessor themeVariant: \"default\" | \"elevo\" | undefined;\n\n /**\n * 值变化时触发\n * @detail 当前选中的用户名或用户组实例 ID 列表\n */\n @event({ type: \"change\" })\n accessor #changeEvent!: EventEmitter<string[]>;\n\n handleUserOrUserGroupChange = (values: string[]) => {\n Promise.resolve().then(() => {\n this.#changeEvent.emit(values);\n this.getFormElement()?.resetValidateState();\n });\n };\n\n render() {\n return (\n <EoUserOrUserGroupSelectComponent\n formElement={this.getFormElement()}\n curElement={this}\n name={this.name}\n label={this.label}\n placeholder={this.placeholder}\n required={this.required}\n value={this.value}\n validateState={this.validateState}\n notRender={this.notRender}\n helpBrick={this.helpBrick}\n trigger=\"handleUserOrUserGroupChange\"\n onChange={this.handleUserOrUserGroupChange}\n objectList={this.objectList}\n query={this.query}\n userQuery={this.userQuery}\n userGroupQuery={this.userGroupQuery}\n userKey={this.userKey}\n optionsMode={this.optionsMode}\n staticList={this.staticList}\n isMultiple={this.isMultiple}\n disabled={this.disabled}\n hideAddMeQuickly={this.hideAddMeQuickly}\n themeVariant={this.themeVariant}\n />\n );\n }\n}\n\nexport function EoUserOrUserGroupSelectComponent(\n props: EoUserOrUserGroupSelectProps\n) {\n // const { t } = useTranslation(NS);\n // const hello = t(K.HELLO);\n const objectList = props.objectList;\n const userKey = props.userKey === \"instanceId\" ? props.userKey : \"name\";\n const [searchValue, setSearchValue] = useState<string>();\n const [userList, setUserList] = useState<any[]>([]);\n const [userGroupList, setUserGroupList] = useState<any[]>([]);\n const [selectedValue, setSelectedValue] = useState([]);\n const staticValue = useRef([]);\n\n const computedValue = useMemo(() => {\n if (isNil(props.value)) {\n return undefined;\n } else {\n return props.isMultiple ? [...props.value] : props.value?.[0];\n }\n }, [props.value, props.isMultiple]);\n\n const getShowKey = useCallback(\n (objectId: string): string[] => {\n const objectMap = keyBy(objectList, \"objectId\");\n return (\n (objectMap[objectId]?.view && objectMap[objectId].view?.show_key) || [\n \"name\",\n ]\n );\n },\n [objectList]\n );\n\n const fetchInstanceList = async (\n objectId: \"USER\" | \"USER_GROUP\",\n keyword: string\n ) => {\n const showKey =\n objectId === \"USER\" ? getShowKey(\"USER\") : getShowKey(\"USER_GROUP\");\n\n const showKeyQuery = {\n $or: map(uniq([...showKey, \"name\"]), (v) => ({\n [v]: { $like: `%${keyword}%` },\n })),\n ...(objectId === \"USER\"\n ? {\n state: \"valid\",\n }\n : {}),\n };\n\n const fetchByCurrentValue = () => {\n // 对于分组是以 \":instanceId\" 的格式存储在 value 中\n const staticIn =\n objectId === \"USER\"\n ? props.value?.filter((v) => !v.startsWith(\":\"))\n : props.value\n ?.filter((v) => v.startsWith(\":\"))\n .map((v) => v.slice(1));\n\n if (staticIn?.length) {\n return InstanceApi_postSearch(objectId, {\n page: 1,\n page_size: staticIn.length,\n fields: {\n ...zipObject(\n showKey,\n map(showKey, () => true)\n ),\n\n name: true,\n },\n query:\n objectId === \"USER\"\n ? {\n [userKey]: {\n $in: staticIn,\n },\n }\n : {\n instanceId: {\n $in: staticIn,\n },\n },\n });\n }\n return Promise.resolve({ list: [] });\n };\n\n const [{ list: searchList }, { list: valueList }] = await Promise.all([\n InstanceApi_postSearch(objectId, {\n page: 1,\n page_size: 20,\n fields: {\n ...zipObject(\n showKey,\n map(showKey, () => true)\n ),\n\n name: true,\n },\n query:\n props.userQuery && objectId === \"USER\"\n ? {\n $and: [props.userQuery, showKeyQuery],\n }\n : props.userGroupQuery && objectId === \"USER_GROUP\"\n ? {\n $and: [props.userGroupQuery, showKeyQuery],\n }\n : props.query\n ? {\n $and: [props.query, showKeyQuery],\n }\n : showKeyQuery,\n }),\n fetchByCurrentValue(),\n ]);\n\n for (const item of valueList!) {\n const exists = searchList!.find((v) => v.instanceId === item.instanceId);\n if (!exists) {\n searchList!.push(item);\n }\n }\n\n return searchList!;\n };\n\n const searchUser = async (value: string) => {\n setUserList(await fetchInstanceList(\"USER\", value));\n };\n\n // 用户组在instanceId前面加上:\n const searchUserGroup = async (value: string) => {\n const result = await fetchInstanceList(\"USER_GROUP\", value);\n setUserGroupList(\n result.map((v) => {\n v.instanceId = \":\" + v.instanceId;\n return v;\n })\n );\n };\n\n const searchUserOrUserGroupInstances = async (value: string) => {\n setSearchValue(value);\n await Promise.all([\n ...(props.optionsMode !== \"group\" ? [searchUser(value)] : []),\n ...(props.optionsMode !== \"user\" ? [searchUserGroup(value)] : []),\n ]);\n };\n\n const handleFocus = () => {\n if (isNil(searchValue) || searchValue !== \"\") {\n searchUserOrUserGroupInstances(\"\");\n }\n };\n\n const prevValueRef = useRef<string[] | undefined>();\n\n useEffect(() => {\n // Re-fetch when value changes (such as updating the value programmatically)\n // TODO: avoid unnecessary requests\n if (props.value?.length && !isEqual(props.value, prevValueRef.current)) {\n prevValueRef.current = props.value;\n searchUserOrUserGroupInstances(\"\");\n }\n }, [props.value]);\n\n const triggerChange = (changedValue: string[]) => {\n props.onChange?.(changedValue);\n };\n\n const handleSelectChange = (e: any) => {\n const originValue = e.detail?.value;\n\n const value = filter(\n Array.isArray(originValue)\n ? originValue\n : originValue\n ? [originValue]\n : [],\n (item) => {\n return !find(props.staticList, (v) => v === item);\n }\n );\n\n value.unshift(...staticValue.current);\n setSelectedValue(value as any);\n triggerChange(value);\n if (searchValue !== \"\") {\n searchUserOrUserGroupInstances(\"\");\n }\n };\n\n const isDifferent = () => {\n const userOfValues = props.value?.filter((v) => !v.startsWith(\":\")) || [];\n const userGroupOfValues =\n props.value?.filter((v) => v.startsWith(\":\")) || [];\n const userOfSelectedValue = map(\n filter(selectedValue, (item: any) => !item?.key?.startsWith(\":\")),\n \"key\"\n );\n\n const userGroupOfSelectedValue = map(\n filter(selectedValue, (item: any) => item?.key?.startsWith(\":\")),\n \"key\"\n );\n\n return (\n !isEqual([...userOfValues].sort(), [...userOfSelectedValue].sort()) ||\n !isEqual(\n [...userGroupOfValues].sort(),\n [...userGroupOfSelectedValue].sort()\n )\n );\n };\n\n const initializeStaticList = () => {\n return groupBy(props.staticList, (v) =>\n startsWith(v, \":\") ? \"userGroup\" : \"user\"\n );\n };\n const getLabel = (\n objectId: \"USER\" | \"USER_GROUP\",\n instanceData: any\n ): string => {\n const showKey =\n objectId === \"USER\" ? getShowKey(\"USER\") : getShowKey(\"USER_GROUP\");\n let showName;\n if (Array.isArray(showKey)) {\n showName = showKey\n .map((key, index) => {\n if (index === 0) {\n return instanceData[key];\n } else {\n return instanceData[key] ? \"(\" + instanceData[key] + \")\" : \"\";\n }\n })\n .join(\"\");\n } else {\n showName = instanceData[showKey];\n }\n return showName || instanceData.name;\n };\n\n useEffect(() => {\n const initializeSelectedValue = async () => {\n if (props.value) {\n let selectedUser: any[] = [];\n let selectedUserGroup: any[] = [];\n const usersValue = props.value.filter((v) => !v.startsWith(\":\"));\n const userGroupsValue = props.value.filter((v) => v.startsWith(\":\"));\n const staticKeys = initializeStaticList();\n const user: string[] = compact(\n uniq(([] as string[]).concat(staticKeys.user).concat(usersValue))\n );\n\n const userGroup: string[] = compact(\n uniq(\n ([] as string[])\n .concat(staticKeys.userGroup)\n .concat(userGroupsValue)\n )\n );\n\n if (\n (staticKeys.user &&\n some(staticKeys.user, (v) => !usersValue.includes(v))) ||\n (staticKeys.userGroup &&\n some(staticKeys.userGroup, (v) => !userGroupsValue.includes(v)))\n ) {\n triggerChange([...user, ...userGroup]);\n }\n const staticValueToSet: any = [];\n if (user.length && props.optionsMode !== \"group\") {\n selectedUser = (\n await InstanceApi_postSearch(\"USER\", {\n query: {\n [userKey]: {\n $in: user,\n },\n },\n\n page: 1,\n page_size: user.length,\n fields: {\n ...zipObject(\n getShowKey(\"USER\"),\n map(getShowKey(\"USER\"), () => true)\n ),\n\n name: true,\n },\n })\n ).list as any[];\n }\n if (userGroup.length && props.optionsMode !== \"user\") {\n selectedUserGroup = (\n await InstanceApi_postSearch(\"USER_GROUP\", {\n query: {\n instanceId: {\n // 默认带为\":\"+instanceId,这里查询的时候去掉前面的冒号\n $in: map(userGroup, (v) => (v as string).slice(1)),\n },\n },\n\n page: 1,\n page_size: userGroup.length,\n fields: {\n ...zipObject(\n getShowKey(\"USER_GROUP\"),\n map(getShowKey(\"USER_GROUP\"), () => true)\n ),\n\n name: true,\n },\n })\n ).list as any[];\n }\n let labelValue = [\n ...map(selectedUser, (v) => {\n const labelText = getLabel(\"USER\", v);\n const result = {\n key: v[userKey],\n label: labelText,\n };\n\n if (props.staticList?.includes(v[userKey])) {\n staticValueToSet.push(result);\n }\n return result;\n }),\n ...map(selectedUserGroup, (v) => {\n const labelText = getLabel(\"USER_GROUP\", v);\n const result = {\n key: \":\" + v.instanceId,\n label: labelText,\n };\n\n if (props.staticList?.includes(\":\" + v.instanceId)) {\n staticValueToSet.push(result);\n }\n return result;\n }),\n ];\n\n labelValue = [\n ...staticValueToSet,\n ...filter(labelValue, (v) => !props.staticList?.includes(v.key)),\n ];\n setSelectedValue(labelValue as any);\n setUserList(selectedUser);\n setUserGroupList(selectedUserGroup);\n staticValue.current = staticValueToSet;\n }\n };\n if (isDifferent()) {\n initializeSelectedValue();\n }\n }, []);\n\n const selectOptions = useMemo(() => {\n let userListOptions: any = [];\n let userGroupListOptions: any = [];\n if (userList.length) {\n userListOptions = userList.map((user) => ({\n label: getLabel(\"USER\", user),\n value: user[userKey],\n closeable: !props?.staticList?.includes(user[userKey]),\n tag: \"用户(仅显示前20项,更多结果请搜索)\",\n }));\n }\n if (userGroupList.length) {\n userGroupListOptions = userGroupList.map((group) => ({\n label: getLabel(\"USER_GROUP\", group),\n value: group.instanceId,\n closeable: !props?.staticList?.includes(group.instanceId),\n tag: \"用户组(仅显示前20项,更多结果请搜索)\",\n }));\n }\n\n return props.optionsMode === \"user\"\n ? userListOptions\n : props.optionsMode === \"group\"\n ? userGroupListOptions\n : [...userListOptions, ...userGroupListOptions];\n }, [userList, userGroupList, props.optionsMode, props.staticList, userKey]);\n\n // 快速选择我\n const addMeQuickly = async () => {\n const myUserValue =\n auth.getAuth()[userKey === \"instanceId\" ? \"userInstanceId\" : \"username\"];\n if (find(selectedValue, (v) => v === myUserValue)) {\n // 如果已选择项中包含我,则不重新发起请求\n return;\n }\n const myUser = (\n await InstanceApi_postSearch(\"USER\", {\n query: {\n [userKey]: {\n $eq: myUserValue,\n },\n },\n\n page: 1,\n page_size: 1,\n fields: {\n ...zipObject(\n getShowKey(\"USER\"),\n map(getShowKey(\"USER\"), () => true)\n ),\n\n name: true,\n },\n })\n ).list as any[];\n myUser.length && setUserList([...userList, ...myUser]);\n handleSelectChange({ detail: { value: [...selectedValue, myUserValue] } });\n };\n\n return (\n <WrappedFormItem exportparts=\"message\" {...pickFormItemProps(props)}>\n <div className=\"select-wrapper\">\n <WrappedSelect\n clearable={true}\n mode={props.isMultiple ? \"multiple\" : undefined}\n placeholder={props.placeholder}\n value={computedValue}\n onchange={handleSelectChange as any}\n onfocus={handleFocus}\n onsearch={debounce((e) => {\n searchUserOrUserGroupInstances(e.detail.value as string);\n }, 500)}\n options={selectOptions as any}\n disabled={props.disabled}\n groupBy=\"tag\"\n themeVariant={props.themeVariant}\n />\n {!props.hideAddMeQuickly && props.optionsMode !== \"group\" && (\n <WrappedButton\n onClick={addMeQuickly}\n type=\"link\"\n size=\"large\"\n style={{ fontSize: \"16px\" }}\n icon={{\n lib: \"easyops\",\n icon: \"quick-add-me\",\n }}\n />\n )}\n </div>\n </WrappedFormItem>\n );\n}\n","import React, { useEffect, useMemo, useRef } from \"react\";\nimport { createDecorators, EventEmitter } from \"@next-core/element\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport styleText from \"./styles.shadow.css\";\nimport { FormItem, FormItemProps } from \"@next-bricks/form/form-item\";\nimport { FormItemElementBase, pickFormItemProps } from \"@next-shared/form\";\nimport {\n CmdbInstanceSelect,\n ComplexOption,\n} from \"./CmdbInstanceSelectInternal\";\nimport { isNil } from \"lodash\";\nimport { ConfigProvider, theme } from \"antd\";\nimport { StyleProvider, createCache } from \"@ant-design/cssinjs\";\nimport { useCurrentTheme } from \"@next-core/react-runtime\";\nimport { i18n, initializeI18n } from \"@next-core/i18n\";\nimport { NS, locales } from \"./i18n.js\";\nimport enUS from \"antd/locale/en_US.js\";\nimport zhCN from \"antd/locale/zh_CN.js\";\ninitializeI18n(NS, locales);\n\nconst { defineElement, property, event } = createDecorators();\nconst WrappedFormItem = wrapBrick<FormItem, FormItemProps>(\"eo-form-item\");\n\nexport interface EoCmdbInstanceSelectProps extends FormItemProps {\n shadowRoot: ShadowRoot | null;\n objectId: string;\n mode?: string;\n pageSize?: number;\n instanceQuery?: any;\n placeholder?: string;\n fields?: Partial<ComplexOption<string>>;\n minimumInputLength?: number;\n value?: string | string[];\n onChange?: (value: string | string[], option?: ComplexOption) => void;\n onOptionsChange?: (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 useExternalCmdbApi?: boolean;\n externalSourceId?: string;\n validateState?: string;\n trigger?: string;\n}\n\nexport interface CmdbInstanceSelectEventsMap {\n change: CustomEvent<string | string[]>;\n \"change.v2\": CustomEvent<ComplexOption>;\n \"options.change\": CustomEvent<{ options: ComplexOption[]; name: string }>;\n}\n\nexport interface CmdbInstanceSelectEventsMapping {\n onChange: \"change\";\n onChangeV2: \"change.v2\";\n onOptionsChange: \"options.change\";\n}\n\n/**\n * CMDB 实例选择器\n * @author jo\n * @category form-input-business\n * @insider\n */\nexport\n@defineElement(\"eo-cmdb-instance-select\", {\n styleTexts: [styleText],\n})\nclass EoCmdbInstanceSelect extends FormItemElementBase {\n /**\n * 字段名称\n */\n @property() accessor name: string | undefined;\n\n /**\n * 字段说明\n */\n @property() accessor label: string | undefined;\n\n /**\n * 是否必填\n */\n @property({\n type: Boolean,\n })\n accessor required: boolean | undefined;\n\n /**\n * 字段placeholder\n */\n @property() accessor placeholder: string | undefined;\n\n /**\n * 值\n */\n @property({\n attribute: false,\n })\n accessor value: string | string[] | undefined;\n\n /**\n * 模型 id\n */\n @property()\n accessor objectId!: string;\n\n /**\n * 是否禁用\n */\n @property({\n type: Boolean,\n })\n accessor disabled: boolean | undefined;\n\n /**\n * 支持清除选项\n */\n @property({\n type: Boolean,\n })\n accessor allowClear: boolean | undefined;\n\n /**\n * 多选模式\n */\n @property()\n accessor mode: string | undefined;\n\n /**\n * 配置搜索接口的pageSize\n */\n @property({\n type: Number,\n })\n accessor pageSize: number | undefined;\n\n /**\n * 下拉框选项的过滤条件\n */\n @property({\n attribute: false,\n })\n accessor instanceQuery: any;\n\n /**\n * 自定义 select 下拉选项的 label 和 value 字段\n */\n @property({\n attribute: false,\n })\n accessor fields: Partial<ComplexOption<string>> | undefined;\n\n /**\n * 输入多少个字符才触发搜索动作\n */\n @property({\n type: Number,\n })\n accessor minimumInputLength: number | undefined;\n\n /**\n * 配置额外的字段进行搜索\n */\n @property({\n attribute: false,\n })\n accessor extraSearchKey: string[] | undefined;\n\n /**\n * 配置接口需要返回的额外字段\n */\n @property({\n attribute: false,\n })\n accessor extraFields: string[] | undefined;\n\n /**\n * 下拉选项的渲染方式\n */\n @property()\n accessor popoverPositionType: \"default\" | \"parent\" | undefined;\n\n /**\n * 控制下拉框中的label显示一个或者多个\n */\n @property({\n type: Boolean,\n })\n accessor isMultiLabel: boolean | undefined;\n\n /**\n * 下拉列表的最后一行是否显示提示\n */\n @property({\n type: Boolean,\n })\n accessor showSearchTip: boolean | undefined;\n\n /**\n * 可自定义label显示的模板\n */\n @property()\n accessor labelTemplate: string | undefined;\n\n /**\n * 输入框样式\n */\n @property({\n attribute: false,\n })\n accessor inputBoxStyle: React.CSSProperties | undefined;\n\n /**\n * 按照权限过滤实例\n */\n @property({\n attribute: false,\n })\n accessor permission: Array<\"read\" | \"update\" | \"operate\"> | undefined;\n\n /**\n * 下拉框中是否启用tooltip显示label全称\n */\n @property({\n type: Boolean,\n })\n accessor showTooltip: boolean | undefined;\n\n /**\n * 是否忽略不存在字段\n */\n @property({\n type: Boolean,\n })\n accessor ignoreMissingFieldError: boolean | undefined;\n\n /**\n * 实例通过showKey自定义展示\n */\n @property({\n type: Boolean,\n })\n accessor showKeyField: boolean | undefined;\n\n /**\n * 下拉菜单和选择器同宽\n */\n @property({\n type: Boolean,\n })\n accessor dropdownMatchSelectWidth: boolean | undefined;\n\n /**\n * 设置下拉框容器的样式\n */\n @property({\n attribute: false,\n })\n accessor dropdownStyle: React.CSSProperties | undefined;\n\n /**\n * 是否在选完值后取消聚焦\n */\n @property({\n type: Boolean,\n })\n accessor blurAfterValueChanged: boolean | undefined;\n\n /**\n * 配置接口返回数据的排序规则\n */\n @property({\n attribute: false,\n })\n accessor sort: Array<Record<string, number | string>> | undefined;\n\n /**\n * 使用外部数据源\n */\n @property({\n type: Boolean,\n })\n accessor useExternalCmdbApi: boolean | undefined;\n\n /**\n * 外部数据源id\n */\n @property()\n accessor externalSourceId: string | undefined;\n\n @event({ type: \"change\" })\n accessor #changeEvent!: EventEmitter<string | string[]>;\n\n @event({ type: \"change.v2\" })\n accessor #changeEventV2!: EventEmitter<ComplexOption>;\n\n @event({ type: \"options.change\" })\n accessor #optionsChangeEvent!: EventEmitter<{\n options: ComplexOption[];\n name: string;\n }>;\n\n handleChange = (value: string | string[], option?: ComplexOption) => {\n this.value = value;\n Promise.resolve().then(() => {\n this.#changeEvent.emit(value);\n this.#changeEventV2.emit(option || ({ value } as ComplexOption));\n this.getFormElement()?.resetValidateState();\n });\n };\n\n handleOptionsChange = (options: ComplexOption[]) => {\n Promise.resolve().then(() => {\n this.#optionsChangeEvent.emit({\n options,\n name: this.name!,\n });\n });\n };\n\n render() {\n return (\n <EoCmdbInstanceSelectComponent\n formElement={this.getFormElement()}\n curElement={this}\n name={this.name}\n label={this.label}\n required={this.required}\n value={this.value}\n validateState={this.validateState}\n notRender={this.notRender}\n helpBrick={this.helpBrick}\n trigger=\"handleChange\"\n onChange={this.handleChange}\n onOptionsChange={this.handleOptionsChange}\n objectId={this.objectId}\n disabled={this.disabled}\n allowClear={this.allowClear}\n mode={this.mode}\n pageSize={this.pageSize}\n instanceQuery={this.instanceQuery}\n fields={this.fields}\n minimumInputLength={this.minimumInputLength}\n extraSearchKey={this.extraSearchKey}\n extraFields={this.extraFields}\n popoverPositionType={this.popoverPositionType}\n isMultiLabel={this.isMultiLabel}\n showSearchTip={this.showSearchTip}\n labelTemplate={this.labelTemplate}\n inputBoxStyle={this.inputBoxStyle}\n permission={this.permission}\n showTooltip={this.showTooltip}\n ignoreMissingFieldError={this.ignoreMissingFieldError}\n showKeyField={this.showKeyField}\n dropdownMatchSelectWidth={this.dropdownMatchSelectWidth}\n dropdownStyle={this.dropdownStyle}\n blurAfterValueChanged={this.blurAfterValueChanged}\n sort={this.sort}\n useExternalCmdbApi={this.useExternalCmdbApi}\n externalSourceId={this.externalSourceId}\n placeholder={this.placeholder}\n shadowRoot={this.shadowRoot}\n />\n );\n }\n}\n\nexport function EoCmdbInstanceSelectComponent(\n props: EoCmdbInstanceSelectProps\n) {\n const selectRef = useRef<any>();\n const currentTheme = useCurrentTheme();\n const locale =\n i18n.language && i18n.language.split(\"-\")[0] === \"en\" ? enUS : zhCN;\n\n useEffect(() => {\n if (!isNil(props.value)) {\n selectRef.current?.setInitValue?.(props.value);\n }\n }, [props.value]);\n\n const handleChange = (value: string, option?: ComplexOption) => {\n props.onChange?.(value, option);\n };\n\n const handleOptionsChange = (options: ComplexOption[]) => {\n props.onOptionsChange?.(options);\n };\n\n const cache = useMemo(() => {\n return createCache();\n }, []);\n\n return (\n <WrappedFormItem exportparts=\"message\" {...pickFormItemProps(props)}>\n <ConfigProvider\n locale={locale as any}\n theme={{\n algorithm:\n currentTheme === \"dark-v2\"\n ? theme.darkAlgorithm\n : theme.defaultAlgorithm,\n }}\n >\n <StyleProvider container={props.shadowRoot as ShadowRoot} cache={cache}>\n <CmdbInstanceSelect\n ref={selectRef}\n objectId={props.objectId}\n mode={props.mode}\n pageSize={props.pageSize}\n instanceQuery={props.instanceQuery}\n placeholder={props.placeholder}\n fields={props.fields}\n firstRender={true}\n minimumInputLength={props.minimumInputLength}\n value={props.value}\n onChange={handleChange}\n optionsChange={handleOptionsChange}\n allowClear={props.allowClear}\n inputBoxStyle={props.inputBoxStyle}\n extraSearchKey={props.extraSearchKey}\n extraFields={props.extraFields}\n popoverPositionType={props.popoverPositionType}\n isMultiLabel={props.isMultiLabel}\n showSearchTip={props.showSearchTip}\n labelTemplate={props.labelTemplate}\n disabled={props.disabled}\n permission={props.permission}\n showTooltip={props.showTooltip}\n ignoreMissingFieldError={props.ignoreMissingFieldError}\n showKeyField={props.showKeyField}\n dropdownMatchSelectWidth={props.dropdownMatchSelectWidth}\n dropdownStyle={props.dropdownStyle}\n blurAfterValueChanged={props.blurAfterValueChanged}\n sort={props.sort}\n useExternalCmdbApi={props.useExternalCmdbApi}\n externalSourceId={props.externalSourceId}\n getPopupContainer={(trigger: HTMLElement) => trigger}\n />\n </StyleProvider>\n </ConfigProvider>\n </WrappedFormItem>\n );\n}\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","toString","InstanceApi_postSearch","_ref","objectId","data","options","http","post","concat","_x","_x2","_x3","apply","this","arguments","defineElement","property","event","createDecorators","WrappedFormItem","wrapBrick","WrappedButton","WrappedSelect","_EoUserOrUserGroupSel","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_EoUserOrUserGroupSelect_brand","WeakSet","EoUserOrUserGroupSelect","FormItemElementBase","constructor","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","_init_name","_init_extra_name","_init_label","_init_extra_label","_init_required","_init_extra_required","_init_placeholder","_init_extra_placeholder","_init_value","_init_extra_value","_init_objectList","_init_extra_objectList","_init_query","_init_extra_query","_init_userQuery","_init_extra_userQuery","_init_userGroupQuery","_init_extra_userGroupQuery","_init_userKey","_init_extra_userKey","_init_optionsMode","_init_extra_optionsMode","_init_disabled","_init_extra_disabled","_init_isMultiple","_init_extra_isMultiple","_init_staticList","_init_extra_staticList","_init_hideAddMeQuickly","_init_extra_hideAddMeQuickly","_init_themeVariant","_init_extra_themeVariant","_init_changeEvent","_defineProperty","_init_extra_changeEvent","values","Promise","resolve","then","_this$getFormElement","_classPrivateGetter","_get_changeEvent","emit","getFormElement","resetValidateState","name","_classPrivateFieldGet","v","_classPrivateFieldSet","label","required","placeholder","value","objectList","query","userQuery","userGroupQuery","userKey","optionsMode","disabled","isMultiple","staticList","hideAddMeQuickly","themeVariant","render","React","EoUserOrUserGroupSelectComponent","formElement","curElement","validateState","notRender","helpBrick","trigger","onChange","handleUserOrUserGroupChange","props","searchValue","setSearchValue","useState","userList","setUserList","userGroupList","setUserGroupList","selectedValue","setSelectedValue","staticValue","useRef","computedValue","useMemo","_props$value","isNil","getShowKey","useCallback","_objectMap$objectId","_objectMap$objectId$v","objectMap","keyBy","view","show_key","fetchInstanceList","async","keyword","showKey","showKeyQuery","$or","map","uniq","$like","state","list","searchList","valueList","all","page","page_size","fields","zipObject","$and","fetchByCurrentValue","_props$value2","_props$value3","staticIn","filter","startsWith","slice","length","$in","instanceId","item","find","searchUser","searchUserGroup","result","searchUserOrUserGroupInstances","prevValueRef","useEffect","_props$value4","isEqual","current","triggerChange","changedValue","_props$onChange","call","handleSelectChange","e","_e$detail","originValue","detail","Array","isArray","unshift","getLabel","instanceData","showName","key","index","join","isDifferent","_props$value5","_props$value6","userOfValues","userGroupOfValues","userOfSelectedValue","_item$key","userGroupOfSelectedValue","_item$key2","sort","selectedUser","selectedUserGroup","usersValue","userGroupsValue","staticKeys","groupBy","user","compact","userGroup","some","includes","staticValueToSet","labelValue","_props$staticList","labelText","_props$staticList2","_props$staticList3","initializeSelectedValue","selectOptions","userListOptions","userGroupListOptions","_props$staticList4","closeable","tag","group","_props$staticList5","_extends","exportparts","pickFormItemProps","className","clearable","mode","undefined","onchange","onfocus","handleFocus","onsearch","debounce","onClick","myUserValue","auth","getAuth","myUser","$eq","type","size","style","fontSize","icon","lib","_EoUserOrUserGroupSelect","_set_changeEvent","c","_initClass","_applyDecs","styleTexts","styleText","Boolean","attribute","o","_","has","_checkInRHS","initializeI18n","NS","locales","_EoCmdbInstanceSelect","_R","_S","_T","_U","_V","_W","_X","_Y","_Z","_a","_b","_c","_d","_e","_EoCmdbInstanceSelect_brand","_f","_g","EoCmdbInstanceSelect","_init_objectId","_init_extra_objectId","_init_allowClear","_init_extra_allowClear","_init_mode","_init_extra_mode","_init_pageSize","_init_extra_pageSize","_init_instanceQuery","_init_extra_instanceQuery","_init_fields","_init_extra_fields","_init_minimumInputLength","_init_extra_minimumInputLength","_init_extraSearchKey","_init_extra_extraSearchKey","_init_extraFields","_init_extra_extraFields","_init_popoverPositionType","_init_extra_popoverPositionType","_init_isMultiLabel","_init_extra_isMultiLabel","_init_showSearchTip","_init_extra_showSearchTip","_init_labelTemplate","_init_extra_labelTemplate","_init_inputBoxStyle","_init_extra_inputBoxStyle","_init_permission","_init_extra_permission","_init_showTooltip","_init_extra_showTooltip","_init_ignoreMissingFieldError","_init_extra_ignoreMissingFieldError","_init_showKeyField","_init_extra_showKeyField","_init_dropdownMatchSelectWidth","_init_extra_dropdownMatchSelectWidth","_init_dropdownStyle","_init_extra_dropdownStyle","_init_blurAfterValueChanged","_init_extra_blurAfterValueChanged","_init_sort","_init_extra_sort","_init_useExternalCmdbApi","_init_extra_useExternalCmdbApi","_init_externalSourceId","_init_extra_externalSourceId","_init_changeEventV","_init_extra_changeEventV","_init_optionsChangeEvent","_init_extra_optionsChangeEvent","option","_get_changeEventV","_get_optionsChangeEvent","allowClear","pageSize","instanceQuery","minimumInputLength","extraSearchKey","extraFields","popoverPositionType","isMultiLabel","showSearchTip","labelTemplate","inputBoxStyle","permission","showTooltip","ignoreMissingFieldError","showKeyField","dropdownMatchSelectWidth","dropdownStyle","blurAfterValueChanged","useExternalCmdbApi","externalSourceId","EoCmdbInstanceSelectComponent","handleChange","onOptionsChange","handleOptionsChange","shadowRoot","selectRef","currentTheme","useCurrentTheme","locale","i18n","language","split","enUS","zhCN","_selectRef$current","_selectRef$current$se","setInitValue","cache","createCache","ConfigProvider","theme","algorithm","darkAlgorithm","defaultAlgorithm","StyleProvider","container","CmdbInstanceSelect","ref","firstRender","optionsChange","_props$onOptionsChang","getPopupContainer","_EoCmdbInstanceSelect2","_set_changeEventV","_set_optionsChangeEvent","Number"],"sourceRoot":""}
|