@next-libs/cmdb-instances 7.10.5 → 7.10.6
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/cjs/cmdb-instances-input-form/CmdbInstancesInputFormItem.js +2 -1
- package/dist/cjs/cmdb-instances-input-form/CmdbInstancesInputFormItem.js.map +1 -1
- package/dist/cjs/cmdb-instances-select-panel/CmdbInstancesSelectPanel.js +4 -2
- package/dist/cjs/cmdb-instances-select-panel/CmdbInstancesSelectPanel.js.map +1 -1
- package/dist/cjs/components/user-or-user-group-select/UserOrUserGroupSelect.js +3 -1
- package/dist/cjs/components/user-or-user-group-select/UserOrUserGroupSelect.js.map +1 -1
- package/dist/esm/cmdb-instances-input-form/CmdbInstancesInputFormItem.js +2 -1
- package/dist/esm/cmdb-instances-input-form/CmdbInstancesInputFormItem.js.map +1 -1
- package/dist/esm/cmdb-instances-select-panel/CmdbInstancesSelectPanel.js +4 -2
- package/dist/esm/cmdb-instances-select-panel/CmdbInstancesSelectPanel.js.map +1 -1
- package/dist/esm/components/user-or-user-group-select/UserOrUserGroupSelect.js +3 -1
- package/dist/esm/components/user-or-user-group-select/UserOrUserGroupSelect.js.map +1 -1
- package/dist/types/cmdb-instances-input-form/CmdbInstancesInputFormItem.d.ts +1 -0
- package/dist/types/cmdb-instances-select-panel/CmdbInstancesSelectPanel.d.ts +3 -0
- package/dist/types/components/user-or-user-group-select/UserOrUserGroupSelect.d.ts +1 -0
- package/package.json +2 -2
|
@@ -260,7 +260,8 @@ const LegacyCmdbInstancesInputFormItem = (props, ref) => {
|
|
|
260
260
|
showSizeChanger: props.showSizeChanger,
|
|
261
261
|
hideSearchConditions: props.hideSearchConditions,
|
|
262
262
|
advancedSearchDisabled: props.advancedSearchDisabled,
|
|
263
|
-
"data-testid": "select-modal"
|
|
263
|
+
"data-testid": "select-modal",
|
|
264
|
+
saveFieldsBackend: props.saveFieldsBackend
|
|
264
265
|
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
265
266
|
className: _cmdbInstancesInputFormModule.default.cmdbInstancesInputFormWrapper
|
|
266
267
|
}, /*#__PURE__*/_react.default.createElement(_antd.Input, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CmdbInstancesInputFormItem.js","names":["separator","LegacyCmdbInstancesInputFormItem","props","ref","t","useTranslation","NS_LIBS_CMDB_INSTANCES","presetQuery","permission","useMemo","objectId","checkAgentStatus","_agentStatus","checkPermission","push","fields","length","forEach","field","objectData","modifyModelData","objectMap","fieldData","__fieldList","find","__id","fieldId","visible","setVisible","useState","selectedInstances","setSelectedInstances","valid","invalid","inputValue","setInputValue","inputFocused","setInputFocused","previewVisible","setPreviewVisible","selectedInstancesQuery","previewEnabled","instanceId","$in","map","instance","query","undefined","checkSelectedInstances","instances","InstanceApi_postSearch","page_size","list","instanceIdSet","Set","selectedInstancesMap","groupBy","selectedInstance","has","true","false","invalidSelectedInstance","updateSelected","instanceIds","page","instanceData","join","checkDisabled","useEffect","value","handleChange","onChange","onChangeV2","checkFieldValues","fieldValues","$and","validSelectedInstances","filter","includes","validFieldValues","invalidFieldValues","fieldValue","checkInputValue","match","split","openSelectInstancesModal","closeSelectInstancesModal","handleInstancesSelected","selectedKeys","handleInputChanged","event","target","handleInputBlur","closeInvalidFieldValuesModal","text","selectFromText","K","SELECT_FROM_CMDB","TIP","DELETE","INVALID_OR_FORBIDDEN_IPS","INVALID","name","extraFilterBricks","fieldIds","singleSelect","defaultQuery","pageSize","pageSizeOptions","showSizeChanger","hideSearchConditions","advancedSearchDisabled","style","cmdbInstancesInputFormWrapper","fieldInput","allowClear","inputDisabled","modalButton","addButtonDisabled","VIEW_SPECIFIC_INSTANCES","CmdbInstancesInputFormItem","forwardRef"],"sources":["../../../src/cmdb-instances-input-form/CmdbInstancesInputFormItem.tsx"],"sourcesContent":["/* eslint-disable react-hooks/exhaustive-deps */\n\nimport React, { forwardRef, useState, useEffect, useMemo } from \"react\";\nimport { Input, Button, Modal } from \"antd\";\nimport { groupBy, map } from \"lodash\";\n\nimport { InstanceListModal } from \"../instance-list-modal/InstanceListModal\";\nimport { modifyModelData, Query } from \"@next-libs/cmdb-utils\";\nimport { CmdbModels, InstanceApi_postSearch } from \"@next-sdk/cmdb-sdk\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { NS_LIBS_CMDB_INSTANCES, K } from \"../i18n/constants\";\n\nimport style from \"./cmdb-instances-input-form.module.css\";\nimport { UseBrickConf } from \"@next-core/brick-types\";\n\nconst separator = \" \";\n\nexport interface CmdbInstancesInputFormItemProps {\n selectFromText?: string;\n objectMap?: { [objectId: string]: Partial<CmdbModels.ModelCmdbObject> };\n objectId?: string;\n fieldId?: string;\n fields?: string[];\n singleSelect?: boolean;\n inputDisabled?: boolean;\n checkDisabled?: boolean;\n checkAgentStatus?: boolean;\n checkPermission?: boolean;\n selectedInstanceIds?: string[];\n value?: string[];\n children?: React.ReactNode;\n query?: { [fieldId: string]: any }[];\n onChange?: (value: string[]) => void;\n onChangeV2?: (value: any[]) => void;\n allowClear?: boolean;\n defaultQuery?: { [fieldId: string]: any }[];\n addButtonDisabled?: boolean;\n previewEnabled?: boolean;\n pageSize?: number;\n pageSizeOptions?: string[];\n showSizeChanger?: boolean;\n hideSearchConditions?: boolean;\n advancedSearchDisabled?: boolean;\n extraFilterBricks?: {\n useBrick: UseBrickConf;\n };\n}\n\nexport const LegacyCmdbInstancesInputFormItem = (\n props: CmdbInstancesInputFormItemProps,\n ref: React.Ref<HTMLDivElement>\n): React.ReactElement => {\n const { t } = useTranslation(NS_LIBS_CMDB_INSTANCES);\n\n const { presetQuery, permission } = useMemo(() => {\n const presetQuery = {} as any;\n const permission: string[] = [];\n\n if (props.objectId === \"HOST\") {\n if (props.checkAgentStatus) {\n presetQuery._agentStatus = \"正常\";\n }\n if (props.checkPermission) {\n permission.push(\"operate\");\n }\n }\n\n return { presetQuery, permission };\n }, [props.objectId, props.checkAgentStatus, props.checkPermission]);\n const fields = useMemo(() => {\n if (props.fields?.length) {\n const fields: Record<string, boolean> = {};\n\n props.fields.forEach((field) => {\n fields[field] = true;\n });\n\n return fields;\n }\n }, [props.fields]);\n\n const objectData = modifyModelData(props.objectMap[props.objectId]);\n const fieldData = objectData.__fieldList.find(\n (field) => field.__id === props.fieldId\n );\n\n const [visible, setVisible] = useState(false);\n const [selectedInstances, setSelectedInstances] = useState({\n valid: [],\n invalid: [],\n });\n const [inputValue, setInputValue] = useState(\"\");\n const [inputFocused, setInputFocused] = useState(false);\n const [previewVisible, setPreviewVisible] = useState(false);\n const selectedInstancesQuery = useMemo<Query[]>(\n () =>\n props.previewEnabled && selectedInstances.valid.length > 0\n ? [\n {\n instanceId: {\n $in: selectedInstances.valid.map(\n (instance) => instance.instanceId\n ),\n },\n ...presetQuery,\n },\n ...(props.query ? props.query : []),\n ]\n : undefined,\n [selectedInstances.valid, presetQuery, props.query]\n );\n\n const checkSelectedInstances = async (\n selectedInstances: any[]\n ): Promise<string[]> => {\n if (selectedInstances) {\n const instances = (\n await InstanceApi_postSearch(props.objectId, {\n page_size: selectedInstances.length,\n query: {\n instanceId: {\n $in: selectedInstances.map((instance) => instance.instanceId),\n },\n ...presetQuery,\n },\n permission,\n fields: fields || {\n instanceId: true,\n [props.fieldId]: true,\n },\n })\n ).list;\n const instanceIdSet = new Set(\n instances.map((instance) => instance.instanceId)\n );\n\n const selectedInstancesMap = groupBy(\n selectedInstances,\n (selectedInstance) => instanceIdSet.has(selectedInstance.instanceId)\n );\n\n setSelectedInstances({\n valid: selectedInstancesMap.true || [],\n invalid: (selectedInstancesMap.false || []).map(\n (invalidSelectedInstance) => invalidSelectedInstance[props.fieldId]\n ),\n });\n\n return selectedInstancesMap.true ? selectedInstancesMap.true : [];\n }\n };\n\n const updateSelected = async (instanceIds: string[]): Promise<any[]> => {\n let selectedInstances: any[] = [];\n if (instanceIds?.length) {\n selectedInstances = (\n await InstanceApi_postSearch(props.objectId, {\n page: 1,\n page_size: instanceIds.length,\n query: {\n instanceId: {\n $in: instanceIds,\n },\n },\n fields: fields || {\n instanceId: true,\n [props.fieldId]: true,\n },\n })\n ).list;\n }\n\n setInputValue(\n selectedInstances\n .map((instanceData) => instanceData[props.fieldId])\n .join(separator)\n );\n\n let instances = selectedInstances;\n if (selectedInstances.length) {\n if (!props.checkDisabled) {\n instances = await checkSelectedInstances(selectedInstances);\n }\n } else {\n setSelectedInstances({ valid: [], invalid: [] });\n }\n return instances;\n };\n\n useEffect(() => {\n updateSelected(props.value);\n }, [props.value]);\n\n const handleChange = (instances: any[]): void => {\n props.onChange?.(instances.map((instance) => instance.instanceId));\n props.onChangeV2?.(instances);\n };\n\n const checkFieldValues = async (fieldValues: string[]): Promise<void> => {\n if (fieldValues) {\n const instances = (\n await InstanceApi_postSearch(props.objectId, {\n query: {\n $and: [\n {\n [props.fieldId]: {\n $in: fieldValues,\n },\n ...presetQuery,\n },\n ...(props.query ? props.query : []),\n ],\n },\n permission,\n fields: fields || {\n instanceId: true,\n [props.fieldId]: true,\n },\n })\n ).list;\n\n const validSelectedInstances = instances.filter((instance) =>\n fieldValues.includes(instance[props.fieldId])\n );\n\n const validFieldValues = validSelectedInstances.map(\n (instance) => instance[props.fieldId]\n );\n const invalidFieldValues = fieldValues.filter(\n (fieldValue) => !validFieldValues.includes(fieldValue)\n );\n\n setSelectedInstances({\n valid: validSelectedInstances || [],\n invalid: invalidFieldValues || [],\n });\n\n !invalidFieldValues.length && handleChange(validSelectedInstances);\n }\n };\n\n const checkInputValue = async (inputValue: string): Promise<void> => {\n const fieldValues =\n props.fieldId === \"ip\"\n ? inputValue.match(\n /\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b(?:\\[[^[\\],;\\s]*\\])?/g\n )\n : inputValue.split(separator);\n\n checkFieldValues(fieldValues);\n };\n\n const openSelectInstancesModal = (): void => {\n setVisible(true);\n };\n\n const closeSelectInstancesModal = (): void => {\n setVisible(false);\n };\n\n const handleInstancesSelected = async (\n selectedKeys: string[]\n ): Promise<void> => {\n closeSelectInstancesModal();\n\n const instances = await updateSelected(selectedKeys);\n\n if (!props.checkDisabled) {\n await checkFieldValues(map(instances, props.fieldId));\n } else {\n handleChange(instances);\n }\n };\n\n const handleInputChanged = (event: { target: { value: string } }): void => {\n setInputValue(event.target.value);\n };\n\n const handleInputBlur = async (event: {\n target: { value: string };\n }): Promise<void> => {\n const inputValue = event.target.value;\n if (inputValue) {\n if (!props.checkDisabled) {\n await checkInputValue(inputValue);\n } else {\n const fieldValues =\n props.fieldId === \"ip\"\n ? inputValue.match(\n /\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b(?:\\[[^[\\],;\\s]*\\])?/g\n )\n : inputValue.split(separator);\n\n const instances = (\n await InstanceApi_postSearch(props.objectId, {\n query: {\n $and: [\n {\n [props.fieldId]: {\n $in: fieldValues,\n },\n },\n ...(props.query ? props.query : []),\n ],\n },\n fields: fields || {\n instanceId: true,\n [props.fieldId]: true,\n },\n })\n ).list;\n\n setSelectedInstances({\n valid: instances || [],\n invalid: [],\n });\n\n handleChange(instances);\n }\n } else {\n setSelectedInstances({\n valid: [],\n invalid: [],\n });\n\n handleChange([]);\n }\n\n setInputFocused(false);\n };\n\n const closeInvalidFieldValuesModal = (): void => {\n setSelectedInstances({\n valid: selectedInstances.valid,\n invalid: [],\n });\n setInputValue(\n selectedInstances.valid\n .map((instance) => instance[props.fieldId])\n .join(separator)\n );\n props.onChange?.(\n selectedInstances.valid.map((instance) => instance.instanceId)\n );\n };\n\n const text = props.selectFromText\n ? props.selectFromText\n : t(K.SELECT_FROM_CMDB);\n\n return (\n <div ref={ref}>\n <Modal\n title={t(K.TIP)}\n visible={selectedInstances.invalid.length !== 0}\n closable={false}\n maskClosable={false}\n footer={[\n <Button\n type=\"primary\"\n key=\"delete\"\n onClick={closeInvalidFieldValuesModal}\n >\n {t(K.DELETE)}\n </Button>,\n ]}\n onCancel={closeInvalidFieldValuesModal}\n >\n {props.objectId === \"HOST\" && props.fieldId === \"ip\"\n ? `${t(K.INVALID_OR_FORBIDDEN_IPS)}${selectedInstances.invalid.join(\n \", \"\n )}`\n : `${t(K.INVALID)}${fieldData.name}:${selectedInstances.invalid.join(\n \", \"\n )}`}\n </Modal>\n <InstanceListModal\n objectMap={props.objectMap}\n extraFilterBricks={props.extraFilterBricks}\n objectId={props.objectId}\n visible={visible}\n title={text}\n aq={props.query}\n presetConfigs={{ query: presetQuery, fieldIds: props.fields }}\n permission={permission}\n selectedRowKeys={selectedInstances.valid.map(\n (instance) => instance.instanceId\n )}\n onSelected={handleInstancesSelected}\n singleSelect={props.singleSelect}\n onCancel={closeSelectInstancesModal}\n defaultQuery={props.defaultQuery}\n pageSize={props.pageSize}\n pageSizeOptions={props.pageSizeOptions}\n showSizeChanger={props.showSizeChanger}\n hideSearchConditions={props.hideSearchConditions}\n advancedSearchDisabled={props.advancedSearchDisabled}\n data-testid=\"select-modal\"\n />\n <div className={style.cmdbInstancesInputFormWrapper}>\n <Input\n data-testid=\"field-value-input\"\n className={style.fieldInput}\n onChange={handleInputChanged}\n value={inputValue}\n onFocus={() => setInputFocused(true)}\n onBlur={handleInputBlur}\n allowClear={props.allowClear}\n disabled={props.inputDisabled}\n />\n <Button\n className={style.modalButton}\n onClick={openSelectInstancesModal}\n disabled={props.addButtonDisabled}\n >\n {text}\n </Button>\n </div>\n {props.previewEnabled && (\n <>\n <InstanceListModal\n objectMap={props.objectMap}\n extraFilterBricks={props.extraFilterBricks}\n objectId={props.objectId}\n visible={previewVisible}\n title={t(K.VIEW_SPECIFIC_INSTANCES)}\n aq={selectedInstancesQuery}\n presetConfigs={{ query: presetQuery, fieldIds: props.fields }}\n permission={permission}\n onCancel={() => setPreviewVisible(false)}\n defaultQuery={props.defaultQuery}\n searchDisabled\n advancedSearchDisabled\n aliveHostsDisabled\n relatedToMeDisabled\n moreButtonsDisabled\n selectDisabled\n pageSize={props.pageSize}\n pageSizeOptions={props.pageSizeOptions}\n showSizeChanger={props.showSizeChanger}\n data-testid=\"preview-modal\"\n />\n <Button\n type=\"link\"\n size=\"small\"\n disabled={!selectedInstancesQuery || inputFocused}\n onClick={() => setPreviewVisible(true)}\n data-testid=\"preview-button\"\n >\n {t(K.VIEW_SPECIFIC_INSTANCES)}\n </Button>\n </>\n )}\n </div>\n );\n};\n\nexport const CmdbInstancesInputFormItem = forwardRef<\n HTMLDivElement,\n CmdbInstancesInputFormItemProps\n>(LegacyCmdbInstancesInputFormItem);\n"],"mappings":";;;;;;;;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AAbA;;AAgBA,MAAMA,SAAS,GAAG,GAAG;AAiCd,MAAMC,gCAAgC,GAAG,CAC9CC,KAAsC,EACtCC,GAA8B,KACP;EACvB,MAAM;IAAEC;EAAE,CAAC,GAAG,IAAAC,4BAAc,EAACC,iCAAsB,CAAC;EAEpD,MAAM;IAAEC,WAAW;IAAEC;EAAW,CAAC,GAAG,IAAAC,cAAO,EAAC,MAAM;IAChD,MAAMF,WAAW,GAAG,CAAC,CAAQ;IAC7B,MAAMC,UAAoB,GAAG,EAAE;IAE/B,IAAIN,KAAK,CAACQ,QAAQ,KAAK,MAAM,EAAE;MAC7B,IAAIR,KAAK,CAACS,gBAAgB,EAAE;QAC1BJ,WAAW,CAACK,YAAY,GAAG,IAAI;MACjC;MACA,IAAIV,KAAK,CAACW,eAAe,EAAE;QACzBL,UAAU,CAACM,IAAI,CAAC,SAAS,CAAC;MAC5B;IACF;IAEA,OAAO;MAAEP,WAAW;MAAEC;IAAW,CAAC;EACpC,CAAC,EAAE,CAACN,KAAK,CAACQ,QAAQ,EAAER,KAAK,CAACS,gBAAgB,EAAET,KAAK,CAACW,eAAe,CAAC,CAAC;EACnE,MAAME,MAAM,GAAG,IAAAN,cAAO,EAAC,MAAM;IAAA;IAC3B,qBAAIP,KAAK,CAACa,MAAM,0CAAZ,cAAcC,MAAM,EAAE;MACxB,MAAMD,MAA+B,GAAG,CAAC,CAAC;MAE1Cb,KAAK,CAACa,MAAM,CAACE,OAAO,CAAEC,KAAK,IAAK;QAC9BH,MAAM,CAACG,KAAK,CAAC,GAAG,IAAI;MACtB,CAAC,CAAC;MAEF,OAAOH,MAAM;IACf;EACF,CAAC,EAAE,CAACb,KAAK,CAACa,MAAM,CAAC,CAAC;EAElB,MAAMI,UAAU,GAAG,IAAAC,0BAAe,EAAClB,KAAK,CAACmB,SAAS,CAACnB,KAAK,CAACQ,QAAQ,CAAC,CAAC;EACnE,MAAMY,SAAS,GAAGH,UAAU,CAACI,WAAW,CAACC,IAAI,CAC1CN,KAAK,IAAKA,KAAK,CAACO,IAAI,KAAKvB,KAAK,CAACwB,OAAO,CACxC;EAED,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAG,IAAAC,eAAQ,EAAC,KAAK,CAAC;EAC7C,MAAM,CAACC,iBAAiB,EAAEC,oBAAoB,CAAC,GAAG,IAAAF,eAAQ,EAAC;IACzDG,KAAK,EAAE,EAAE;IACTC,OAAO,EAAE;EACX,CAAC,CAAC;EACF,MAAM,CAACC,UAAU,EAAEC,aAAa,CAAC,GAAG,IAAAN,eAAQ,EAAC,EAAE,CAAC;EAChD,MAAM,CAACO,YAAY,EAAEC,eAAe,CAAC,GAAG,IAAAR,eAAQ,EAAC,KAAK,CAAC;EACvD,MAAM,CAACS,cAAc,EAAEC,iBAAiB,CAAC,GAAG,IAAAV,eAAQ,EAAC,KAAK,CAAC;EAC3D,MAAMW,sBAAsB,GAAG,IAAA/B,cAAO,EACpC,MACEP,KAAK,CAACuC,cAAc,IAAIX,iBAAiB,CAACE,KAAK,CAAChB,MAAM,GAAG,CAAC,GACtD,CACE;IACE0B,UAAU,EAAE;MACVC,GAAG,EAAEb,iBAAiB,CAACE,KAAK,CAACY,GAAG,CAC7BC,QAAQ,IAAKA,QAAQ,CAACH,UAAU;IAErC,CAAC;IACD,GAAGnC;EACL,CAAC,EACD,IAAIL,KAAK,CAAC4C,KAAK,GAAG5C,KAAK,CAAC4C,KAAK,GAAG,EAAE,CAAC,CACpC,GACDC,SAAS,EACf,CAACjB,iBAAiB,CAACE,KAAK,EAAEzB,WAAW,EAAEL,KAAK,CAAC4C,KAAK,CAAC,CACpD;EAED,MAAME,sBAAsB,GAAG,MAC7BlB,iBAAwB,IACF;IACtB,IAAIA,iBAAiB,EAAE;MACrB,MAAMmB,SAAS,GAAG,CAChB,MAAM,IAAAC,+BAAsB,EAAChD,KAAK,CAACQ,QAAQ,EAAE;QAC3CyC,SAAS,EAAErB,iBAAiB,CAACd,MAAM;QACnC8B,KAAK,EAAE;UACLJ,UAAU,EAAE;YACVC,GAAG,EAAEb,iBAAiB,CAACc,GAAG,CAAEC,QAAQ,IAAKA,QAAQ,CAACH,UAAU;UAC9D,CAAC;UACD,GAAGnC;QACL,CAAC;QACDC,UAAU;QACVO,MAAM,EAAEA,MAAM,IAAI;UAChB2B,UAAU,EAAE,IAAI;UAChB,CAACxC,KAAK,CAACwB,OAAO,GAAG;QACnB;MACF,CAAC,CAAC,EACF0B,IAAI;MACN,MAAMC,aAAa,GAAG,IAAIC,GAAG,CAC3BL,SAAS,CAACL,GAAG,CAAEC,QAAQ,IAAKA,QAAQ,CAACH,UAAU,CAAC,CACjD;MAED,MAAMa,oBAAoB,GAAG,IAAAC,eAAO,EAClC1B,iBAAiB,EAChB2B,gBAAgB,IAAKJ,aAAa,CAACK,GAAG,CAACD,gBAAgB,CAACf,UAAU,CAAC,CACrE;MAEDX,oBAAoB,CAAC;QACnBC,KAAK,EAAEuB,oBAAoB,CAACI,IAAI,IAAI,EAAE;QACtC1B,OAAO,EAAE,CAACsB,oBAAoB,CAACK,KAAK,IAAI,EAAE,EAAEhB,GAAG,CAC5CiB,uBAAuB,IAAKA,uBAAuB,CAAC3D,KAAK,CAACwB,OAAO,CAAC;MAEvE,CAAC,CAAC;MAEF,OAAO6B,oBAAoB,CAACI,IAAI,GAAGJ,oBAAoB,CAACI,IAAI,GAAG,EAAE;IACnE;EACF,CAAC;EAED,MAAMG,cAAc,GAAG,MAAOC,WAAqB,IAAqB;IACtE,IAAIjC,iBAAwB,GAAG,EAAE;IACjC,IAAIiC,WAAW,aAAXA,WAAW,eAAXA,WAAW,CAAE/C,MAAM,EAAE;MACvBc,iBAAiB,GAAG,CAClB,MAAM,IAAAoB,+BAAsB,EAAChD,KAAK,CAACQ,QAAQ,EAAE;QAC3CsD,IAAI,EAAE,CAAC;QACPb,SAAS,EAAEY,WAAW,CAAC/C,MAAM;QAC7B8B,KAAK,EAAE;UACLJ,UAAU,EAAE;YACVC,GAAG,EAAEoB;UACP;QACF,CAAC;QACDhD,MAAM,EAAEA,MAAM,IAAI;UAChB2B,UAAU,EAAE,IAAI;UAChB,CAACxC,KAAK,CAACwB,OAAO,GAAG;QACnB;MACF,CAAC,CAAC,EACF0B,IAAI;IACR;IAEAjB,aAAa,CACXL,iBAAiB,CACdc,GAAG,CAAEqB,YAAY,IAAKA,YAAY,CAAC/D,KAAK,CAACwB,OAAO,CAAC,CAAC,CAClDwC,IAAI,CAAClE,SAAS,CAAC,CACnB;IAED,IAAIiD,SAAS,GAAGnB,iBAAiB;IACjC,IAAIA,iBAAiB,CAACd,MAAM,EAAE;MAC5B,IAAI,CAACd,KAAK,CAACiE,aAAa,EAAE;QACxBlB,SAAS,GAAG,MAAMD,sBAAsB,CAAClB,iBAAiB,CAAC;MAC7D;IACF,CAAC,MAAM;MACLC,oBAAoB,CAAC;QAAEC,KAAK,EAAE,EAAE;QAAEC,OAAO,EAAE;MAAG,CAAC,CAAC;IAClD;IACA,OAAOgB,SAAS;EAClB,CAAC;EAED,IAAAmB,gBAAS,EAAC,MAAM;IACdN,cAAc,CAAC5D,KAAK,CAACmE,KAAK,CAAC;EAC7B,CAAC,EAAE,CAACnE,KAAK,CAACmE,KAAK,CAAC,CAAC;EAEjB,MAAMC,YAAY,GAAIrB,SAAgB,IAAW;IAAA;IAC/C,mBAAA/C,KAAK,CAACqE,QAAQ,oDAAd,qBAAArE,KAAK,EAAY+C,SAAS,CAACL,GAAG,CAAEC,QAAQ,IAAKA,QAAQ,CAACH,UAAU,CAAC,CAAC;IAClE,oBAAAxC,KAAK,CAACsE,UAAU,qDAAhB,sBAAAtE,KAAK,EAAc+C,SAAS,CAAC;EAC/B,CAAC;EAED,MAAMwB,gBAAgB,GAAG,MAAOC,WAAqB,IAAoB;IACvE,IAAIA,WAAW,EAAE;MACf,MAAMzB,SAAS,GAAG,CAChB,MAAM,IAAAC,+BAAsB,EAAChD,KAAK,CAACQ,QAAQ,EAAE;QAC3CoC,KAAK,EAAE;UACL6B,IAAI,EAAE,CACJ;YACE,CAACzE,KAAK,CAACwB,OAAO,GAAG;cACfiB,GAAG,EAAE+B;YACP,CAAC;YACD,GAAGnE;UACL,CAAC,EACD,IAAIL,KAAK,CAAC4C,KAAK,GAAG5C,KAAK,CAAC4C,KAAK,GAAG,EAAE,CAAC;QAEvC,CAAC;QACDtC,UAAU;QACVO,MAAM,EAAEA,MAAM,IAAI;UAChB2B,UAAU,EAAE,IAAI;UAChB,CAACxC,KAAK,CAACwB,OAAO,GAAG;QACnB;MACF,CAAC,CAAC,EACF0B,IAAI;MAEN,MAAMwB,sBAAsB,GAAG3B,SAAS,CAAC4B,MAAM,CAAEhC,QAAQ,IACvD6B,WAAW,CAACI,QAAQ,CAACjC,QAAQ,CAAC3C,KAAK,CAACwB,OAAO,CAAC,CAAC,CAC9C;MAED,MAAMqD,gBAAgB,GAAGH,sBAAsB,CAAChC,GAAG,CAChDC,QAAQ,IAAKA,QAAQ,CAAC3C,KAAK,CAACwB,OAAO,CAAC,CACtC;MACD,MAAMsD,kBAAkB,GAAGN,WAAW,CAACG,MAAM,CAC1CI,UAAU,IAAK,CAACF,gBAAgB,CAACD,QAAQ,CAACG,UAAU,CAAC,CACvD;MAEDlD,oBAAoB,CAAC;QACnBC,KAAK,EAAE4C,sBAAsB,IAAI,EAAE;QACnC3C,OAAO,EAAE+C,kBAAkB,IAAI;MACjC,CAAC,CAAC;MAEF,CAACA,kBAAkB,CAAChE,MAAM,IAAIsD,YAAY,CAACM,sBAAsB,CAAC;IACpE;EACF,CAAC;EAED,MAAMM,eAAe,GAAG,MAAOhD,UAAkB,IAAoB;IACnE,MAAMwC,WAAW,GACfxE,KAAK,CAACwB,OAAO,KAAK,IAAI,GAClBQ,UAAU,CAACiD,KAAK,CACd,oHAAoH,CACrH,GACDjD,UAAU,CAACkD,KAAK,CAACpF,SAAS,CAAC;IAEjCyE,gBAAgB,CAACC,WAAW,CAAC;EAC/B,CAAC;EAED,MAAMW,wBAAwB,GAAG,MAAY;IAC3CzD,UAAU,CAAC,IAAI,CAAC;EAClB,CAAC;EAED,MAAM0D,yBAAyB,GAAG,MAAY;IAC5C1D,UAAU,CAAC,KAAK,CAAC;EACnB,CAAC;EAED,MAAM2D,uBAAuB,GAAG,MAC9BC,YAAsB,IACJ;IAClBF,yBAAyB,EAAE;IAE3B,MAAMrC,SAAS,GAAG,MAAMa,cAAc,CAAC0B,YAAY,CAAC;IAEpD,IAAI,CAACtF,KAAK,CAACiE,aAAa,EAAE;MACxB,MAAMM,gBAAgB,CAAC,IAAA7B,WAAG,EAACK,SAAS,EAAE/C,KAAK,CAACwB,OAAO,CAAC,CAAC;IACvD,CAAC,MAAM;MACL4C,YAAY,CAACrB,SAAS,CAAC;IACzB;EACF,CAAC;EAED,MAAMwC,kBAAkB,GAAIC,KAAoC,IAAW;IACzEvD,aAAa,CAACuD,KAAK,CAACC,MAAM,CAACtB,KAAK,CAAC;EACnC,CAAC;EAED,MAAMuB,eAAe,GAAG,MAAOF,KAE9B,IAAoB;IACnB,MAAMxD,UAAU,GAAGwD,KAAK,CAACC,MAAM,CAACtB,KAAK;IACrC,IAAInC,UAAU,EAAE;MACd,IAAI,CAAChC,KAAK,CAACiE,aAAa,EAAE;QACxB,MAAMe,eAAe,CAAChD,UAAU,CAAC;MACnC,CAAC,MAAM;QACL,MAAMwC,WAAW,GACfxE,KAAK,CAACwB,OAAO,KAAK,IAAI,GAClBQ,UAAU,CAACiD,KAAK,CACd,oHAAoH,CACrH,GACDjD,UAAU,CAACkD,KAAK,CAACpF,SAAS,CAAC;QAEjC,MAAMiD,SAAS,GAAG,CAChB,MAAM,IAAAC,+BAAsB,EAAChD,KAAK,CAACQ,QAAQ,EAAE;UAC3CoC,KAAK,EAAE;YACL6B,IAAI,EAAE,CACJ;cACE,CAACzE,KAAK,CAACwB,OAAO,GAAG;gBACfiB,GAAG,EAAE+B;cACP;YACF,CAAC,EACD,IAAIxE,KAAK,CAAC4C,KAAK,GAAG5C,KAAK,CAAC4C,KAAK,GAAG,EAAE,CAAC;UAEvC,CAAC;UACD/B,MAAM,EAAEA,MAAM,IAAI;YAChB2B,UAAU,EAAE,IAAI;YAChB,CAACxC,KAAK,CAACwB,OAAO,GAAG;UACnB;QACF,CAAC,CAAC,EACF0B,IAAI;QAENrB,oBAAoB,CAAC;UACnBC,KAAK,EAAEiB,SAAS,IAAI,EAAE;UACtBhB,OAAO,EAAE;QACX,CAAC,CAAC;QAEFqC,YAAY,CAACrB,SAAS,CAAC;MACzB;IACF,CAAC,MAAM;MACLlB,oBAAoB,CAAC;QACnBC,KAAK,EAAE,EAAE;QACTC,OAAO,EAAE;MACX,CAAC,CAAC;MAEFqC,YAAY,CAAC,EAAE,CAAC;IAClB;IAEAjC,eAAe,CAAC,KAAK,CAAC;EACxB,CAAC;EAED,MAAMwD,4BAA4B,GAAG,MAAY;IAAA;IAC/C9D,oBAAoB,CAAC;MACnBC,KAAK,EAAEF,iBAAiB,CAACE,KAAK;MAC9BC,OAAO,EAAE;IACX,CAAC,CAAC;IACFE,aAAa,CACXL,iBAAiB,CAACE,KAAK,CACpBY,GAAG,CAAEC,QAAQ,IAAKA,QAAQ,CAAC3C,KAAK,CAACwB,OAAO,CAAC,CAAC,CAC1CwC,IAAI,CAAClE,SAAS,CAAC,CACnB;IACD,oBAAAE,KAAK,CAACqE,QAAQ,qDAAd,sBAAArE,KAAK,EACH4B,iBAAiB,CAACE,KAAK,CAACY,GAAG,CAAEC,QAAQ,IAAKA,QAAQ,CAACH,UAAU,CAAC,CAC/D;EACH,CAAC;EAED,MAAMoD,IAAI,GAAG5F,KAAK,CAAC6F,cAAc,GAC7B7F,KAAK,CAAC6F,cAAc,GACpB3F,CAAC,CAAC4F,YAAC,CAACC,gBAAgB,CAAC;EAEzB,oBACE;IAAK,GAAG,EAAE9F;EAAI,gBACZ,6BAAC,WAAK;IACJ,KAAK,EAAEC,CAAC,CAAC4F,YAAC,CAACE,GAAG,CAAE;IAChB,OAAO,EAAEpE,iBAAiB,CAACG,OAAO,CAACjB,MAAM,KAAK,CAAE;IAChD,QAAQ,EAAE,KAAM;IAChB,YAAY,EAAE,KAAM;IACpB,MAAM,EAAE,cACN,6BAAC,YAAM;MACL,IAAI,EAAC,SAAS;MACd,GAAG,EAAC,QAAQ;MACZ,OAAO,EAAE6E;IAA6B,GAErCzF,CAAC,CAAC4F,YAAC,CAACG,MAAM,CAAC,CACL,CACT;IACF,QAAQ,EAAEN;EAA6B,GAEtC3F,KAAK,CAACQ,QAAQ,KAAK,MAAM,IAAIR,KAAK,CAACwB,OAAO,KAAK,IAAI,GAC/C,GAAEtB,CAAC,CAAC4F,YAAC,CAACI,wBAAwB,CAAE,GAAEtE,iBAAiB,CAACG,OAAO,CAACiC,IAAI,CAC/D,IAAI,CACJ,EAAC,GACF,GAAE9D,CAAC,CAAC4F,YAAC,CAACK,OAAO,CAAE,GAAE/E,SAAS,CAACgF,IAAK,IAAGxE,iBAAiB,CAACG,OAAO,CAACiC,IAAI,CAChE,IAAI,CACJ,EAAC,CACD,eACR,6BAAC,oCAAiB;IAChB,SAAS,EAAEhE,KAAK,CAACmB,SAAU;IAC3B,iBAAiB,EAAEnB,KAAK,CAACqG,iBAAkB;IAC3C,QAAQ,EAAErG,KAAK,CAACQ,QAAS;IACzB,OAAO,EAAEiB,OAAQ;IACjB,KAAK,EAAEmE,IAAK;IACZ,EAAE,EAAE5F,KAAK,CAAC4C,KAAM;IAChB,aAAa,EAAE;MAAEA,KAAK,EAAEvC,WAAW;MAAEiG,QAAQ,EAAEtG,KAAK,CAACa;IAAO,CAAE;IAC9D,UAAU,EAAEP,UAAW;IACvB,eAAe,EAAEsB,iBAAiB,CAACE,KAAK,CAACY,GAAG,CACzCC,QAAQ,IAAKA,QAAQ,CAACH,UAAU,CACjC;IACF,UAAU,EAAE6C,uBAAwB;IACpC,YAAY,EAAErF,KAAK,CAACuG,YAAa;IACjC,QAAQ,EAAEnB,yBAA0B;IACpC,YAAY,EAAEpF,KAAK,CAACwG,YAAa;IACjC,QAAQ,EAAExG,KAAK,CAACyG,QAAS;IACzB,eAAe,EAAEzG,KAAK,CAAC0G,eAAgB;IACvC,eAAe,EAAE1G,KAAK,CAAC2G,eAAgB;IACvC,oBAAoB,EAAE3G,KAAK,CAAC4G,oBAAqB;IACjD,sBAAsB,EAAE5G,KAAK,CAAC6G,sBAAuB;IACrD,eAAY;EAAc,EAC1B,eACF;IAAK,SAAS,EAAEC,qCAAK,CAACC;EAA8B,gBAClD,6BAAC,WAAK;IACJ,eAAY,mBAAmB;IAC/B,SAAS,EAAED,qCAAK,CAACE,UAAW;IAC5B,QAAQ,EAAEzB,kBAAmB;IAC7B,KAAK,EAAEvD,UAAW;IAClB,OAAO,EAAE,MAAMG,eAAe,CAAC,IAAI,CAAE;IACrC,MAAM,EAAEuD,eAAgB;IACxB,UAAU,EAAE1F,KAAK,CAACiH,UAAW;IAC7B,QAAQ,EAAEjH,KAAK,CAACkH;EAAc,EAC9B,eACF,6BAAC,YAAM;IACL,SAAS,EAAEJ,qCAAK,CAACK,WAAY;IAC7B,OAAO,EAAEhC,wBAAyB;IAClC,QAAQ,EAAEnF,KAAK,CAACoH;EAAkB,GAEjCxB,IAAI,CACE,CACL,EACL5F,KAAK,CAACuC,cAAc,iBACnB,yEACE,6BAAC,oCAAiB;IAChB,SAAS,EAAEvC,KAAK,CAACmB,SAAU;IAC3B,iBAAiB,EAAEnB,KAAK,CAACqG,iBAAkB;IAC3C,QAAQ,EAAErG,KAAK,CAACQ,QAAS;IACzB,OAAO,EAAE4B,cAAe;IACxB,KAAK,EAAElC,CAAC,CAAC4F,YAAC,CAACuB,uBAAuB,CAAE;IACpC,EAAE,EAAE/E,sBAAuB;IAC3B,aAAa,EAAE;MAAEM,KAAK,EAAEvC,WAAW;MAAEiG,QAAQ,EAAEtG,KAAK,CAACa;IAAO,CAAE;IAC9D,UAAU,EAAEP,UAAW;IACvB,QAAQ,EAAE,MAAM+B,iBAAiB,CAAC,KAAK,CAAE;IACzC,YAAY,EAAErC,KAAK,CAACwG,YAAa;IACjC,cAAc;IACd,sBAAsB;IACtB,kBAAkB;IAClB,mBAAmB;IACnB,mBAAmB;IACnB,cAAc;IACd,QAAQ,EAAExG,KAAK,CAACyG,QAAS;IACzB,eAAe,EAAEzG,KAAK,CAAC0G,eAAgB;IACvC,eAAe,EAAE1G,KAAK,CAAC2G,eAAgB;IACvC,eAAY;EAAe,EAC3B,eACF,6BAAC,YAAM;IACL,IAAI,EAAC,MAAM;IACX,IAAI,EAAC,OAAO;IACZ,QAAQ,EAAE,CAACrE,sBAAsB,IAAIJ,YAAa;IAClD,OAAO,EAAE,MAAMG,iBAAiB,CAAC,IAAI,CAAE;IACvC,eAAY;EAAgB,GAE3BnC,CAAC,CAAC4F,YAAC,CAACuB,uBAAuB,CAAC,CACtB,CAEZ,CACG;AAEV,CAAC;AAAC;AAEK,MAAMC,0BAA0B,gBAAG,IAAAC,iBAAU,EAGlDxH,gCAAgC,CAAC;AAAC"}
|
|
1
|
+
{"version":3,"file":"CmdbInstancesInputFormItem.js","names":["separator","LegacyCmdbInstancesInputFormItem","props","ref","t","useTranslation","NS_LIBS_CMDB_INSTANCES","presetQuery","permission","useMemo","objectId","checkAgentStatus","_agentStatus","checkPermission","push","fields","length","forEach","field","objectData","modifyModelData","objectMap","fieldData","__fieldList","find","__id","fieldId","visible","setVisible","useState","selectedInstances","setSelectedInstances","valid","invalid","inputValue","setInputValue","inputFocused","setInputFocused","previewVisible","setPreviewVisible","selectedInstancesQuery","previewEnabled","instanceId","$in","map","instance","query","undefined","checkSelectedInstances","instances","InstanceApi_postSearch","page_size","list","instanceIdSet","Set","selectedInstancesMap","groupBy","selectedInstance","has","true","false","invalidSelectedInstance","updateSelected","instanceIds","page","instanceData","join","checkDisabled","useEffect","value","handleChange","onChange","onChangeV2","checkFieldValues","fieldValues","$and","validSelectedInstances","filter","includes","validFieldValues","invalidFieldValues","fieldValue","checkInputValue","match","split","openSelectInstancesModal","closeSelectInstancesModal","handleInstancesSelected","selectedKeys","handleInputChanged","event","target","handleInputBlur","closeInvalidFieldValuesModal","text","selectFromText","K","SELECT_FROM_CMDB","TIP","DELETE","INVALID_OR_FORBIDDEN_IPS","INVALID","name","extraFilterBricks","fieldIds","singleSelect","defaultQuery","pageSize","pageSizeOptions","showSizeChanger","hideSearchConditions","advancedSearchDisabled","saveFieldsBackend","style","cmdbInstancesInputFormWrapper","fieldInput","allowClear","inputDisabled","modalButton","addButtonDisabled","VIEW_SPECIFIC_INSTANCES","CmdbInstancesInputFormItem","forwardRef"],"sources":["../../../src/cmdb-instances-input-form/CmdbInstancesInputFormItem.tsx"],"sourcesContent":["/* eslint-disable react-hooks/exhaustive-deps */\n\nimport React, { forwardRef, useState, useEffect, useMemo } from \"react\";\nimport { Input, Button, Modal } from \"antd\";\nimport { groupBy, map } from \"lodash\";\n\nimport { InstanceListModal } from \"../instance-list-modal/InstanceListModal\";\nimport { modifyModelData, Query } from \"@next-libs/cmdb-utils\";\nimport { CmdbModels, InstanceApi_postSearch } from \"@next-sdk/cmdb-sdk\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { NS_LIBS_CMDB_INSTANCES, K } from \"../i18n/constants\";\n\nimport style from \"./cmdb-instances-input-form.module.css\";\nimport { UseBrickConf } from \"@next-core/brick-types\";\n\nconst separator = \" \";\n\nexport interface CmdbInstancesInputFormItemProps {\n selectFromText?: string;\n objectMap?: { [objectId: string]: Partial<CmdbModels.ModelCmdbObject> };\n objectId?: string;\n fieldId?: string;\n fields?: string[];\n singleSelect?: boolean;\n inputDisabled?: boolean;\n checkDisabled?: boolean;\n checkAgentStatus?: boolean;\n checkPermission?: boolean;\n selectedInstanceIds?: string[];\n value?: string[];\n children?: React.ReactNode;\n query?: { [fieldId: string]: any }[];\n onChange?: (value: string[]) => void;\n onChangeV2?: (value: any[]) => void;\n allowClear?: boolean;\n defaultQuery?: { [fieldId: string]: any }[];\n addButtonDisabled?: boolean;\n previewEnabled?: boolean;\n pageSize?: number;\n pageSizeOptions?: string[];\n showSizeChanger?: boolean;\n hideSearchConditions?: boolean;\n advancedSearchDisabled?: boolean;\n extraFilterBricks?: {\n useBrick: UseBrickConf;\n };\n saveFieldsBackend?: boolean;\n}\n\nexport const LegacyCmdbInstancesInputFormItem = (\n props: CmdbInstancesInputFormItemProps,\n ref: React.Ref<HTMLDivElement>\n): React.ReactElement => {\n const { t } = useTranslation(NS_LIBS_CMDB_INSTANCES);\n\n const { presetQuery, permission } = useMemo(() => {\n const presetQuery = {} as any;\n const permission: string[] = [];\n\n if (props.objectId === \"HOST\") {\n if (props.checkAgentStatus) {\n presetQuery._agentStatus = \"正常\";\n }\n if (props.checkPermission) {\n permission.push(\"operate\");\n }\n }\n\n return { presetQuery, permission };\n }, [props.objectId, props.checkAgentStatus, props.checkPermission]);\n const fields = useMemo(() => {\n if (props.fields?.length) {\n const fields: Record<string, boolean> = {};\n\n props.fields.forEach((field) => {\n fields[field] = true;\n });\n\n return fields;\n }\n }, [props.fields]);\n\n const objectData = modifyModelData(props.objectMap[props.objectId]);\n const fieldData = objectData.__fieldList.find(\n (field) => field.__id === props.fieldId\n );\n\n const [visible, setVisible] = useState(false);\n const [selectedInstances, setSelectedInstances] = useState({\n valid: [],\n invalid: [],\n });\n const [inputValue, setInputValue] = useState(\"\");\n const [inputFocused, setInputFocused] = useState(false);\n const [previewVisible, setPreviewVisible] = useState(false);\n const selectedInstancesQuery = useMemo<Query[]>(\n () =>\n props.previewEnabled && selectedInstances.valid.length > 0\n ? [\n {\n instanceId: {\n $in: selectedInstances.valid.map(\n (instance) => instance.instanceId\n ),\n },\n ...presetQuery,\n },\n ...(props.query ? props.query : []),\n ]\n : undefined,\n [selectedInstances.valid, presetQuery, props.query]\n );\n\n const checkSelectedInstances = async (\n selectedInstances: any[]\n ): Promise<string[]> => {\n if (selectedInstances) {\n const instances = (\n await InstanceApi_postSearch(props.objectId, {\n page_size: selectedInstances.length,\n query: {\n instanceId: {\n $in: selectedInstances.map((instance) => instance.instanceId),\n },\n ...presetQuery,\n },\n permission,\n fields: fields || {\n instanceId: true,\n [props.fieldId]: true,\n },\n })\n ).list;\n const instanceIdSet = new Set(\n instances.map((instance) => instance.instanceId)\n );\n\n const selectedInstancesMap = groupBy(\n selectedInstances,\n (selectedInstance) => instanceIdSet.has(selectedInstance.instanceId)\n );\n\n setSelectedInstances({\n valid: selectedInstancesMap.true || [],\n invalid: (selectedInstancesMap.false || []).map(\n (invalidSelectedInstance) => invalidSelectedInstance[props.fieldId]\n ),\n });\n\n return selectedInstancesMap.true ? selectedInstancesMap.true : [];\n }\n };\n\n const updateSelected = async (instanceIds: string[]): Promise<any[]> => {\n let selectedInstances: any[] = [];\n if (instanceIds?.length) {\n selectedInstances = (\n await InstanceApi_postSearch(props.objectId, {\n page: 1,\n page_size: instanceIds.length,\n query: {\n instanceId: {\n $in: instanceIds,\n },\n },\n fields: fields || {\n instanceId: true,\n [props.fieldId]: true,\n },\n })\n ).list;\n }\n\n setInputValue(\n selectedInstances\n .map((instanceData) => instanceData[props.fieldId])\n .join(separator)\n );\n\n let instances = selectedInstances;\n if (selectedInstances.length) {\n if (!props.checkDisabled) {\n instances = await checkSelectedInstances(selectedInstances);\n }\n } else {\n setSelectedInstances({ valid: [], invalid: [] });\n }\n return instances;\n };\n\n useEffect(() => {\n updateSelected(props.value);\n }, [props.value]);\n\n const handleChange = (instances: any[]): void => {\n props.onChange?.(instances.map((instance) => instance.instanceId));\n props.onChangeV2?.(instances);\n };\n\n const checkFieldValues = async (fieldValues: string[]): Promise<void> => {\n if (fieldValues) {\n const instances = (\n await InstanceApi_postSearch(props.objectId, {\n query: {\n $and: [\n {\n [props.fieldId]: {\n $in: fieldValues,\n },\n ...presetQuery,\n },\n ...(props.query ? props.query : []),\n ],\n },\n permission,\n fields: fields || {\n instanceId: true,\n [props.fieldId]: true,\n },\n })\n ).list;\n\n const validSelectedInstances = instances.filter((instance) =>\n fieldValues.includes(instance[props.fieldId])\n );\n\n const validFieldValues = validSelectedInstances.map(\n (instance) => instance[props.fieldId]\n );\n const invalidFieldValues = fieldValues.filter(\n (fieldValue) => !validFieldValues.includes(fieldValue)\n );\n\n setSelectedInstances({\n valid: validSelectedInstances || [],\n invalid: invalidFieldValues || [],\n });\n\n !invalidFieldValues.length && handleChange(validSelectedInstances);\n }\n };\n\n const checkInputValue = async (inputValue: string): Promise<void> => {\n const fieldValues =\n props.fieldId === \"ip\"\n ? inputValue.match(\n /\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b(?:\\[[^[\\],;\\s]*\\])?/g\n )\n : inputValue.split(separator);\n\n checkFieldValues(fieldValues);\n };\n\n const openSelectInstancesModal = (): void => {\n setVisible(true);\n };\n\n const closeSelectInstancesModal = (): void => {\n setVisible(false);\n };\n\n const handleInstancesSelected = async (\n selectedKeys: string[]\n ): Promise<void> => {\n closeSelectInstancesModal();\n\n const instances = await updateSelected(selectedKeys);\n\n if (!props.checkDisabled) {\n await checkFieldValues(map(instances, props.fieldId));\n } else {\n handleChange(instances);\n }\n };\n\n const handleInputChanged = (event: { target: { value: string } }): void => {\n setInputValue(event.target.value);\n };\n\n const handleInputBlur = async (event: {\n target: { value: string };\n }): Promise<void> => {\n const inputValue = event.target.value;\n if (inputValue) {\n if (!props.checkDisabled) {\n await checkInputValue(inputValue);\n } else {\n const fieldValues =\n props.fieldId === \"ip\"\n ? inputValue.match(\n /\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b(?:\\[[^[\\],;\\s]*\\])?/g\n )\n : inputValue.split(separator);\n\n const instances = (\n await InstanceApi_postSearch(props.objectId, {\n query: {\n $and: [\n {\n [props.fieldId]: {\n $in: fieldValues,\n },\n },\n ...(props.query ? props.query : []),\n ],\n },\n fields: fields || {\n instanceId: true,\n [props.fieldId]: true,\n },\n })\n ).list;\n\n setSelectedInstances({\n valid: instances || [],\n invalid: [],\n });\n\n handleChange(instances);\n }\n } else {\n setSelectedInstances({\n valid: [],\n invalid: [],\n });\n\n handleChange([]);\n }\n\n setInputFocused(false);\n };\n\n const closeInvalidFieldValuesModal = (): void => {\n setSelectedInstances({\n valid: selectedInstances.valid,\n invalid: [],\n });\n setInputValue(\n selectedInstances.valid\n .map((instance) => instance[props.fieldId])\n .join(separator)\n );\n props.onChange?.(\n selectedInstances.valid.map((instance) => instance.instanceId)\n );\n };\n\n const text = props.selectFromText\n ? props.selectFromText\n : t(K.SELECT_FROM_CMDB);\n\n return (\n <div ref={ref}>\n <Modal\n title={t(K.TIP)}\n visible={selectedInstances.invalid.length !== 0}\n closable={false}\n maskClosable={false}\n footer={[\n <Button\n type=\"primary\"\n key=\"delete\"\n onClick={closeInvalidFieldValuesModal}\n >\n {t(K.DELETE)}\n </Button>,\n ]}\n onCancel={closeInvalidFieldValuesModal}\n >\n {props.objectId === \"HOST\" && props.fieldId === \"ip\"\n ? `${t(K.INVALID_OR_FORBIDDEN_IPS)}${selectedInstances.invalid.join(\n \", \"\n )}`\n : `${t(K.INVALID)}${fieldData.name}:${selectedInstances.invalid.join(\n \", \"\n )}`}\n </Modal>\n <InstanceListModal\n objectMap={props.objectMap}\n extraFilterBricks={props.extraFilterBricks}\n objectId={props.objectId}\n visible={visible}\n title={text}\n aq={props.query}\n presetConfigs={{ query: presetQuery, fieldIds: props.fields }}\n permission={permission}\n selectedRowKeys={selectedInstances.valid.map(\n (instance) => instance.instanceId\n )}\n onSelected={handleInstancesSelected}\n singleSelect={props.singleSelect}\n onCancel={closeSelectInstancesModal}\n defaultQuery={props.defaultQuery}\n pageSize={props.pageSize}\n pageSizeOptions={props.pageSizeOptions}\n showSizeChanger={props.showSizeChanger}\n hideSearchConditions={props.hideSearchConditions}\n advancedSearchDisabled={props.advancedSearchDisabled}\n data-testid=\"select-modal\"\n saveFieldsBackend={props.saveFieldsBackend}\n />\n <div className={style.cmdbInstancesInputFormWrapper}>\n <Input\n data-testid=\"field-value-input\"\n className={style.fieldInput}\n onChange={handleInputChanged}\n value={inputValue}\n onFocus={() => setInputFocused(true)}\n onBlur={handleInputBlur}\n allowClear={props.allowClear}\n disabled={props.inputDisabled}\n />\n <Button\n className={style.modalButton}\n onClick={openSelectInstancesModal}\n disabled={props.addButtonDisabled}\n >\n {text}\n </Button>\n </div>\n {props.previewEnabled && (\n <>\n <InstanceListModal\n objectMap={props.objectMap}\n extraFilterBricks={props.extraFilterBricks}\n objectId={props.objectId}\n visible={previewVisible}\n title={t(K.VIEW_SPECIFIC_INSTANCES)}\n aq={selectedInstancesQuery}\n presetConfigs={{ query: presetQuery, fieldIds: props.fields }}\n permission={permission}\n onCancel={() => setPreviewVisible(false)}\n defaultQuery={props.defaultQuery}\n searchDisabled\n advancedSearchDisabled\n aliveHostsDisabled\n relatedToMeDisabled\n moreButtonsDisabled\n selectDisabled\n pageSize={props.pageSize}\n pageSizeOptions={props.pageSizeOptions}\n showSizeChanger={props.showSizeChanger}\n data-testid=\"preview-modal\"\n />\n <Button\n type=\"link\"\n size=\"small\"\n disabled={!selectedInstancesQuery || inputFocused}\n onClick={() => setPreviewVisible(true)}\n data-testid=\"preview-button\"\n >\n {t(K.VIEW_SPECIFIC_INSTANCES)}\n </Button>\n </>\n )}\n </div>\n );\n};\n\nexport const CmdbInstancesInputFormItem = forwardRef<\n HTMLDivElement,\n CmdbInstancesInputFormItemProps\n>(LegacyCmdbInstancesInputFormItem);\n"],"mappings":"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"}
|
|
@@ -185,7 +185,8 @@ function CmdbInstancesSelectPanel(props, ref) {
|
|
|
185
185
|
showCloseBtn: props.showCloseBtn,
|
|
186
186
|
showSizeChanger: props.showSizeChanger,
|
|
187
187
|
pageSizeOptions: props.pageSizeOptions,
|
|
188
|
-
aq: props.aq
|
|
188
|
+
aq: props.aq,
|
|
189
|
+
saveFieldsBackend: props.saveFieldsBackend
|
|
189
190
|
}), /*#__PURE__*/_react.default.createElement(_InstanceListModal.InstanceListModal, {
|
|
190
191
|
objectMap: modelMap,
|
|
191
192
|
objectId: props.objectId,
|
|
@@ -209,7 +210,8 @@ function CmdbInstancesSelectPanel(props, ref) {
|
|
|
209
210
|
pageSize: props.addInstancesModalPageSize,
|
|
210
211
|
showSizeChanger: props.showSizeChanger,
|
|
211
212
|
pageSizeOptions: props.pageSizeOptions,
|
|
212
|
-
onCancel: closeAllSelectedInstancesModal
|
|
213
|
+
onCancel: closeAllSelectedInstancesModal,
|
|
214
|
+
saveFieldsBackend: props.saveFieldsBackend
|
|
213
215
|
}), /*#__PURE__*/_react.default.createElement(_antd.Spin, {
|
|
214
216
|
style: {
|
|
215
217
|
textAlign: "left",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CmdbInstancesSelectPanel.js","names":["isCmdbInstancesSelectPanelPropsWithObjectMap","props","isNil","objectMap","CmdbInstancesSelectPanel","ref","modelData","objectId","isFilterView","hideModelData","view","hide_columns","attrList","filter","item","includes","id","relation_list","left_id","left_object_id","right_id","right_object_id","displayedSelectedInstancesMaxNumber","previewMaxNumber","selectedInstanceList","setSelectedInstanceList","useState","partialSelectedInstances","setPartialSelectedInstances","addInstancesModal","setAddInstancesModal","visible","allSelectedInstancesModal","setAllSelectedInstancesModal","modelMap","setModelMap","fetchInstances","instanceIdList","instances","length","InstanceApi_postSearch","query","instanceId","$in","page","page_size","fields","reduce","prev","next","list","toLoadInstanceIds","value","map","i","isObject","useEffect","getModelMap","data","CmdbObjectApi_getObjectRef","ref_object","keyBy","initInstances","isOperate","slice","onFetchedInstances","isEmpty","sort","join","openAddInstancesModal","closeAddInstancesModal","openAllSelectedInstancesModal","closeAllSelectedInstancesModal","handleInstancesSelected","selectedKeys","onChange","fieldIds","modifyModelData","attr","showPreview","cs","classnames","style","selectedInstancesTableWrapper","withPreview","relation","relationLimit","right_max","$size","$lt","instanceQuery","wrapper","modalTitle","i18n","t","NS_LIBS_CMDB_INSTANCES","K","FILTER_FROM_CMDB","name","instance","singleSelect","showBindButton","bindButtonDisabled","bindButtonText","bindEvent","addInstancesModalPageSize","searchDisabled","advancedSearchDisabled","ipCopy","showCloseBtn","showSizeChanger","pageSizeOptions","aq","VIEW_ALL_SELECTED_INSTANCES","textAlign","marginBottom","isEqual","addButton","addTitle","CHOOSE_INSTANCE","showDetailUrl","detailUrlTemplates","showPagination","pagination","v","showAllSelectedInstancesButton","VIEW_ALL_DATA","count"],"sources":["../../../src/cmdb-instances-select-panel/CmdbInstancesSelectPanel.tsx"],"sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport classnames from \"classnames\";\n\nimport {\n CmdbModels,\n InstanceApi_postSearch,\n CmdbObjectApi_getObjectRef,\n} from \"@next-sdk/cmdb-sdk\";\nimport { InstanceListTable } from \"../instance-list-table\";\nimport { InstanceListModal } from \"../instance-list-modal/InstanceListModal\";\nimport {\n modifyModelData,\n ModifiedModelObjectRelation,\n Query,\n} from \"@next-libs/cmdb-utils\";\nimport style from \"./style.module.css\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport { keyBy, isEqual, isNil, isObject, isEmpty } from \"lodash\";\nimport { Spin } from \"antd\";\n\nexport interface BaseCmdbInstancesSelectPanelProps {\n objectId: string;\n value?: any[];\n onChange?: (instanceList: any[]) => void;\n instanceQuery?: any;\n fields?: string[];\n singleSelect?: boolean;\n showBindButton?: boolean;\n bindButtonDisabled?: boolean;\n bindButtonText?: string;\n bindEvent?: () => void;\n addTitle?: React.ReactNode | string;\n modalTitle?: React.ReactNode | string;\n previewMaxNumber?: number;\n addInstancesModalPageSize?: number;\n showSizeChanger?: boolean;\n pageSizeOptions?: string[];\n isOperate?: boolean; //cmdb实例列表支持删除实例\n showDetailUrl?: boolean;\n isFilterView?: boolean; //是否过滤视图属性\n onFetchedInstances?: (instanceList: any[]) => void; // objectId改变后触发\n relation?: Partial<ModifiedModelObjectRelation>;\n searchDisabled?: boolean;\n advancedSearchDisabled?: boolean;\n showPagination?: boolean;\n aq?: Query[];\n}\n\nexport interface CmdbInstancesSelectPanelPropsWithObjectMap\n extends BaseCmdbInstancesSelectPanelProps {\n objectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>;\n ipCopy?: boolean;\n showSizeChanger?: boolean;\n showCloseBtn?: boolean;\n pageSizeOptions?: string[];\n}\n\nexport interface CmdbInstancesSelectPanelPropsWithModelData\n extends BaseCmdbInstancesSelectPanelProps {\n modelData: Partial<CmdbModels.ModelCmdbObject>;\n ipCopy?: boolean;\n showSizeChanger?: boolean;\n showCloseBtn?: boolean;\n pageSizeOptions?: string[];\n}\n\nexport type CmdbInstancesSelectPanelProps =\n | CmdbInstancesSelectPanelPropsWithObjectMap\n | CmdbInstancesSelectPanelPropsWithModelData;\n\nexport function isCmdbInstancesSelectPanelPropsWithObjectMap(\n props: CmdbInstancesSelectPanelProps\n): props is CmdbInstancesSelectPanelPropsWithObjectMap {\n return !isNil(\n (props as CmdbInstancesSelectPanelPropsWithObjectMap).objectMap\n );\n}\n\nexport function CmdbInstancesSelectPanel(\n props: CmdbInstancesSelectPanelProps,\n ref: any\n): React.ReactElement {\n let modelData: Partial<CmdbModels.ModelCmdbObject>;\n if (isCmdbInstancesSelectPanelPropsWithObjectMap(props)) {\n modelData = props.objectMap[props.objectId];\n } else {\n modelData = props.modelData;\n }\n\n if (props.isFilterView) {\n //过滤掉视图不可见字段\n const hideModelData = modelData?.view?.hide_columns || [];\n modelData = {\n ...modelData,\n attrList: modelData.attrList.filter(\n (item: any) => !hideModelData.includes(item.id)\n ),\n relation_list: modelData.relation_list.filter(\n (item: any) =>\n !(\n (hideModelData.includes(item.left_id) &&\n item.left_object_id === props.objectId) ||\n (hideModelData.includes(item.right_id) &&\n item.right_object_id === props.objectId)\n )\n ),\n };\n }\n\n const displayedSelectedInstancesMaxNumber = props.previewMaxNumber ?? 5;\n\n const [selectedInstanceList, setSelectedInstanceList] = useState([]);\n const [partialSelectedInstances, setPartialSelectedInstances] = useState([]);\n // const [instanceTableData, setInstanceTableData] = useState({list: []})\n const [addInstancesModal, setAddInstancesModal] = useState({\n visible: false,\n });\n const [allSelectedInstancesModal, setAllSelectedInstancesModal] = useState({\n visible: false,\n });\n const [modelMap, setModelMap] = useState({});\n\n const fetchInstances = async (instanceIdList: string[]): Promise<any[]> => {\n let instances: any[] = [];\n if (instanceIdList?.length) {\n instances = (\n await InstanceApi_postSearch(props.objectId, {\n query: {\n instanceId: {\n $in: instanceIdList,\n },\n },\n page: 1,\n page_size: instanceIdList.length,\n // todo(ice): selected confirm with instances\n fields: props.fields?.length\n ? props.fields.reduce(\n (prev, next) => ({ ...prev, [next]: true }),\n {}\n )\n : { \"*\": true },\n })\n ).list;\n }\n\n return instances;\n };\n const toLoadInstanceIds =\n props.value?.map((i) => (isObject(i) ? (i as any).instanceId : i)) || [];\n\n useEffect(() => {\n const getModelMap = async (): Promise<void> => {\n let modelMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>;\n\n if (isCmdbInstancesSelectPanelPropsWithObjectMap(props)) {\n modelMap = props.objectMap;\n } else {\n const { data } = await CmdbObjectApi_getObjectRef({\n ref_object: props.objectId,\n });\n modelMap = keyBy(data, \"objectId\");\n }\n setModelMap(modelMap);\n };\n getModelMap();\n }, [props.objectId]);\n\n useEffect(() => {\n let instances = [];\n\n const initInstances = async (): Promise<void> => {\n instances = await fetchInstances(toLoadInstanceIds);\n setSelectedInstanceList(instances);\n setPartialSelectedInstances(\n props?.isOperate\n ? instances\n : instances.slice(0, displayedSelectedInstancesMaxNumber)\n );\n props.onFetchedInstances?.(instances);\n };\n if (!isEmpty(toLoadInstanceIds)) {\n initInstances();\n } else {\n setSelectedInstanceList([]);\n setPartialSelectedInstances([]);\n }\n }, [toLoadInstanceIds.sort().join()]);\n const openAddInstancesModal = () => {\n setAddInstancesModal({ visible: true });\n };\n\n const closeAddInstancesModal = () => {\n setAddInstancesModal({ visible: false });\n };\n\n const openAllSelectedInstancesModal = () => {\n setAllSelectedInstancesModal({ visible: true });\n };\n\n const closeAllSelectedInstancesModal = () => {\n setAllSelectedInstancesModal({ visible: false });\n };\n\n const handleInstancesSelected = async (selectedKeys: string[]) => {\n closeAddInstancesModal();\n\n const instances = await fetchInstances(selectedKeys);\n setSelectedInstanceList(instances);\n setPartialSelectedInstances(\n props?.isOperate\n ? instances\n : instances.slice(0, displayedSelectedInstancesMaxNumber)\n );\n props.onChange?.(instances);\n };\n\n const fieldIds = modifyModelData(modelData).attrList.map(\n (attr: any) => attr.id\n );\n const showPreview =\n selectedInstanceList.length > displayedSelectedInstancesMaxNumber;\n const cs = classnames({\n [style.selectedInstancesTableWrapper]: true,\n [style.withPreview]: showPreview,\n });\n const { relation } = props;\n let relationLimit;\n if (relation?.right_max === 1) {\n relationLimit = { [relation.right_id]: { $size: { $lt: 1 } } };\n }\n const query = props.instanceQuery ?? relationLimit;\n return (\n <div className={style.wrapper} ref={ref}>\n <InstanceListModal\n objectMap={modelMap}\n objectId={props.objectId}\n visible={addInstancesModal.visible}\n title={\n props.modalTitle ??\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FILTER_FROM_CMDB}`, {\n name: modelData.name,\n })\n }\n selectedRowKeys={selectedInstanceList.map(\n (instance) => instance.instanceId\n )}\n onSelected={handleInstancesSelected}\n onCancel={closeAddInstancesModal}\n singleSelect={props.singleSelect}\n presetConfigs={{\n query,\n fieldIds: props.fields,\n }}\n showBindButton={props.showBindButton}\n bindButtonDisabled={props.bindButtonDisabled}\n bindButtonText={props.bindButtonText}\n bindEvent={props.bindEvent}\n pageSize={props.addInstancesModalPageSize}\n searchDisabled={props.searchDisabled}\n advancedSearchDisabled={props.advancedSearchDisabled}\n ipCopy={props.ipCopy}\n showCloseBtn={props.showCloseBtn}\n showSizeChanger={props.showSizeChanger}\n pageSizeOptions={props.pageSizeOptions}\n aq={props.aq}\n />\n <InstanceListModal\n objectMap={modelMap}\n objectId={props.objectId}\n visible={allSelectedInstancesModal.visible}\n showBindButton={props.showBindButton}\n bindButtonDisabled={props.bindButtonDisabled}\n bindButtonText={props.bindButtonText}\n bindEvent={props.bindEvent}\n title={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.VIEW_ALL_SELECTED_INSTANCES}`\n )}\n presetConfigs={{\n query: {\n instanceId: {\n $in: selectedInstanceList.map((instance) => instance.instanceId),\n },\n },\n fieldIds: props.fields,\n }}\n selectDisabled={!props.ipCopy}\n ipCopy={props.ipCopy}\n showCloseBtn={props.ipCopy ? true : props.showCloseBtn}\n pageSize={props.addInstancesModalPageSize}\n showSizeChanger={props.showSizeChanger}\n pageSizeOptions={props.pageSizeOptions}\n onCancel={closeAllSelectedInstancesModal}\n />\n <Spin\n style={{ textAlign: \"left\", marginBottom: \"12px\" }}\n spinning={isEqual(modelMap, {})}\n >\n <a\n className={style.addButton}\n style={{\n marginBottom: \"12px\",\n }}\n onClick={openAddInstancesModal}\n >\n {props.addTitle ??\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CHOOSE_INSTANCE}`)}\n </a>\n </Spin>\n <div className={cs}>\n <InstanceListTable\n {...(props.showDetailUrl\n ? {\n detailUrlTemplates: {\n [props.objectId]:\n \"/next-cmdb-instance-management/next/#{objectId}/instance/#{instanceId}\",\n },\n }\n : {})}\n idObjectMap={modelMap}\n modelData={modelData}\n instanceListData={{ list: partialSelectedInstances }}\n fieldIds={props.fields || fieldIds}\n selectDisabled={true}\n sortDisabled={true}\n configProps={\n props.showPagination && partialSelectedInstances.length > 10\n ? { pagination: { showSizeChanger: true } }\n : { pagination: false }\n }\n //\n isOperate={props.isOperate}\n handleDeleteFunction={(v) => {\n setSelectedInstanceList(v);\n setPartialSelectedInstances(v);\n props.onChange?.(v);\n }}\n target={\"_blank\"}\n ></InstanceListTable>\n {!props?.isOperate && showPreview && (\n <div\n className={style.showAllSelectedInstancesButton}\n onClick={openAllSelectedInstancesModal}\n >\n <a>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.VIEW_ALL_DATA}`, {\n count: selectedInstanceList.length,\n })}\n </a>\n </div>\n )}\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CmdbInstancesSelectPanel.js","names":["isCmdbInstancesSelectPanelPropsWithObjectMap","props","isNil","objectMap","CmdbInstancesSelectPanel","ref","modelData","objectId","isFilterView","hideModelData","view","hide_columns","attrList","filter","item","includes","id","relation_list","left_id","left_object_id","right_id","right_object_id","displayedSelectedInstancesMaxNumber","previewMaxNumber","selectedInstanceList","setSelectedInstanceList","useState","partialSelectedInstances","setPartialSelectedInstances","addInstancesModal","setAddInstancesModal","visible","allSelectedInstancesModal","setAllSelectedInstancesModal","modelMap","setModelMap","fetchInstances","instanceIdList","instances","length","InstanceApi_postSearch","query","instanceId","$in","page","page_size","fields","reduce","prev","next","list","toLoadInstanceIds","value","map","i","isObject","useEffect","getModelMap","data","CmdbObjectApi_getObjectRef","ref_object","keyBy","initInstances","isOperate","slice","onFetchedInstances","isEmpty","sort","join","openAddInstancesModal","closeAddInstancesModal","openAllSelectedInstancesModal","closeAllSelectedInstancesModal","handleInstancesSelected","selectedKeys","onChange","fieldIds","modifyModelData","attr","showPreview","cs","classnames","style","selectedInstancesTableWrapper","withPreview","relation","relationLimit","right_max","$size","$lt","instanceQuery","wrapper","modalTitle","i18n","t","NS_LIBS_CMDB_INSTANCES","K","FILTER_FROM_CMDB","name","instance","singleSelect","showBindButton","bindButtonDisabled","bindButtonText","bindEvent","addInstancesModalPageSize","searchDisabled","advancedSearchDisabled","ipCopy","showCloseBtn","showSizeChanger","pageSizeOptions","aq","saveFieldsBackend","VIEW_ALL_SELECTED_INSTANCES","textAlign","marginBottom","isEqual","addButton","addTitle","CHOOSE_INSTANCE","showDetailUrl","detailUrlTemplates","showPagination","pagination","v","showAllSelectedInstancesButton","VIEW_ALL_DATA","count"],"sources":["../../../src/cmdb-instances-select-panel/CmdbInstancesSelectPanel.tsx"],"sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport classnames from \"classnames\";\n\nimport {\n CmdbModels,\n InstanceApi_postSearch,\n CmdbObjectApi_getObjectRef,\n} from \"@next-sdk/cmdb-sdk\";\nimport { InstanceListTable } from \"../instance-list-table\";\nimport { InstanceListModal } from \"../instance-list-modal/InstanceListModal\";\nimport {\n modifyModelData,\n ModifiedModelObjectRelation,\n Query,\n} from \"@next-libs/cmdb-utils\";\nimport style from \"./style.module.css\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport { keyBy, isEqual, isNil, isObject, isEmpty } from \"lodash\";\nimport { Spin } from \"antd\";\n\nexport interface BaseCmdbInstancesSelectPanelProps {\n objectId: string;\n value?: any[];\n onChange?: (instanceList: any[]) => void;\n instanceQuery?: any;\n fields?: string[];\n singleSelect?: boolean;\n showBindButton?: boolean;\n bindButtonDisabled?: boolean;\n bindButtonText?: string;\n bindEvent?: () => void;\n addTitle?: React.ReactNode | string;\n modalTitle?: React.ReactNode | string;\n previewMaxNumber?: number;\n addInstancesModalPageSize?: number;\n showSizeChanger?: boolean;\n pageSizeOptions?: string[];\n isOperate?: boolean; //cmdb实例列表支持删除实例\n showDetailUrl?: boolean;\n isFilterView?: boolean; //是否过滤视图属性\n onFetchedInstances?: (instanceList: any[]) => void; // objectId改变后触发\n relation?: Partial<ModifiedModelObjectRelation>;\n searchDisabled?: boolean;\n advancedSearchDisabled?: boolean;\n showPagination?: boolean;\n aq?: Query[];\n saveFieldsBackend?: boolean;\n}\n\nexport interface CmdbInstancesSelectPanelPropsWithObjectMap\n extends BaseCmdbInstancesSelectPanelProps {\n objectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>;\n ipCopy?: boolean;\n showSizeChanger?: boolean;\n showCloseBtn?: boolean;\n pageSizeOptions?: string[];\n saveFieldsBackend?: boolean;\n}\n\nexport interface CmdbInstancesSelectPanelPropsWithModelData\n extends BaseCmdbInstancesSelectPanelProps {\n modelData: Partial<CmdbModels.ModelCmdbObject>;\n ipCopy?: boolean;\n showSizeChanger?: boolean;\n showCloseBtn?: boolean;\n pageSizeOptions?: string[];\n saveFieldsBackend?: boolean;\n}\n\nexport type CmdbInstancesSelectPanelProps =\n | CmdbInstancesSelectPanelPropsWithObjectMap\n | CmdbInstancesSelectPanelPropsWithModelData;\n\nexport function isCmdbInstancesSelectPanelPropsWithObjectMap(\n props: CmdbInstancesSelectPanelProps\n): props is CmdbInstancesSelectPanelPropsWithObjectMap {\n return !isNil(\n (props as CmdbInstancesSelectPanelPropsWithObjectMap).objectMap\n );\n}\n\nexport function CmdbInstancesSelectPanel(\n props: CmdbInstancesSelectPanelProps,\n ref: any\n): React.ReactElement {\n let modelData: Partial<CmdbModels.ModelCmdbObject>;\n if (isCmdbInstancesSelectPanelPropsWithObjectMap(props)) {\n modelData = props.objectMap[props.objectId];\n } else {\n modelData = props.modelData;\n }\n\n if (props.isFilterView) {\n //过滤掉视图不可见字段\n const hideModelData = modelData?.view?.hide_columns || [];\n modelData = {\n ...modelData,\n attrList: modelData.attrList.filter(\n (item: any) => !hideModelData.includes(item.id)\n ),\n relation_list: modelData.relation_list.filter(\n (item: any) =>\n !(\n (hideModelData.includes(item.left_id) &&\n item.left_object_id === props.objectId) ||\n (hideModelData.includes(item.right_id) &&\n item.right_object_id === props.objectId)\n )\n ),\n };\n }\n\n const displayedSelectedInstancesMaxNumber = props.previewMaxNumber ?? 5;\n\n const [selectedInstanceList, setSelectedInstanceList] = useState([]);\n const [partialSelectedInstances, setPartialSelectedInstances] = useState([]);\n // const [instanceTableData, setInstanceTableData] = useState({list: []})\n const [addInstancesModal, setAddInstancesModal] = useState({\n visible: false,\n });\n const [allSelectedInstancesModal, setAllSelectedInstancesModal] = useState({\n visible: false,\n });\n const [modelMap, setModelMap] = useState({});\n\n const fetchInstances = async (instanceIdList: string[]): Promise<any[]> => {\n let instances: any[] = [];\n if (instanceIdList?.length) {\n instances = (\n await InstanceApi_postSearch(props.objectId, {\n query: {\n instanceId: {\n $in: instanceIdList,\n },\n },\n page: 1,\n page_size: instanceIdList.length,\n // todo(ice): selected confirm with instances\n fields: props.fields?.length\n ? props.fields.reduce(\n (prev, next) => ({ ...prev, [next]: true }),\n {}\n )\n : { \"*\": true },\n })\n ).list;\n }\n\n return instances;\n };\n const toLoadInstanceIds =\n props.value?.map((i) => (isObject(i) ? (i as any).instanceId : i)) || [];\n\n useEffect(() => {\n const getModelMap = async (): Promise<void> => {\n let modelMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>;\n\n if (isCmdbInstancesSelectPanelPropsWithObjectMap(props)) {\n modelMap = props.objectMap;\n } else {\n const { data } = await CmdbObjectApi_getObjectRef({\n ref_object: props.objectId,\n });\n modelMap = keyBy(data, \"objectId\");\n }\n setModelMap(modelMap);\n };\n getModelMap();\n }, [props.objectId]);\n\n useEffect(() => {\n let instances = [];\n\n const initInstances = async (): Promise<void> => {\n instances = await fetchInstances(toLoadInstanceIds);\n setSelectedInstanceList(instances);\n setPartialSelectedInstances(\n props?.isOperate\n ? instances\n : instances.slice(0, displayedSelectedInstancesMaxNumber)\n );\n props.onFetchedInstances?.(instances);\n };\n if (!isEmpty(toLoadInstanceIds)) {\n initInstances();\n } else {\n setSelectedInstanceList([]);\n setPartialSelectedInstances([]);\n }\n }, [toLoadInstanceIds.sort().join()]);\n const openAddInstancesModal = () => {\n setAddInstancesModal({ visible: true });\n };\n\n const closeAddInstancesModal = () => {\n setAddInstancesModal({ visible: false });\n };\n\n const openAllSelectedInstancesModal = () => {\n setAllSelectedInstancesModal({ visible: true });\n };\n\n const closeAllSelectedInstancesModal = () => {\n setAllSelectedInstancesModal({ visible: false });\n };\n\n const handleInstancesSelected = async (selectedKeys: string[]) => {\n closeAddInstancesModal();\n\n const instances = await fetchInstances(selectedKeys);\n setSelectedInstanceList(instances);\n setPartialSelectedInstances(\n props?.isOperate\n ? instances\n : instances.slice(0, displayedSelectedInstancesMaxNumber)\n );\n props.onChange?.(instances);\n };\n\n const fieldIds = modifyModelData(modelData).attrList.map(\n (attr: any) => attr.id\n );\n const showPreview =\n selectedInstanceList.length > displayedSelectedInstancesMaxNumber;\n const cs = classnames({\n [style.selectedInstancesTableWrapper]: true,\n [style.withPreview]: showPreview,\n });\n const { relation } = props;\n let relationLimit;\n if (relation?.right_max === 1) {\n relationLimit = { [relation.right_id]: { $size: { $lt: 1 } } };\n }\n const query = props.instanceQuery ?? relationLimit;\n return (\n <div className={style.wrapper} ref={ref}>\n <InstanceListModal\n objectMap={modelMap}\n objectId={props.objectId}\n visible={addInstancesModal.visible}\n title={\n props.modalTitle ??\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FILTER_FROM_CMDB}`, {\n name: modelData.name,\n })\n }\n selectedRowKeys={selectedInstanceList.map(\n (instance) => instance.instanceId\n )}\n onSelected={handleInstancesSelected}\n onCancel={closeAddInstancesModal}\n singleSelect={props.singleSelect}\n presetConfigs={{\n query,\n fieldIds: props.fields,\n }}\n showBindButton={props.showBindButton}\n bindButtonDisabled={props.bindButtonDisabled}\n bindButtonText={props.bindButtonText}\n bindEvent={props.bindEvent}\n pageSize={props.addInstancesModalPageSize}\n searchDisabled={props.searchDisabled}\n advancedSearchDisabled={props.advancedSearchDisabled}\n ipCopy={props.ipCopy}\n showCloseBtn={props.showCloseBtn}\n showSizeChanger={props.showSizeChanger}\n pageSizeOptions={props.pageSizeOptions}\n aq={props.aq}\n saveFieldsBackend={props.saveFieldsBackend}\n />\n <InstanceListModal\n objectMap={modelMap}\n objectId={props.objectId}\n visible={allSelectedInstancesModal.visible}\n showBindButton={props.showBindButton}\n bindButtonDisabled={props.bindButtonDisabled}\n bindButtonText={props.bindButtonText}\n bindEvent={props.bindEvent}\n title={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.VIEW_ALL_SELECTED_INSTANCES}`\n )}\n presetConfigs={{\n query: {\n instanceId: {\n $in: selectedInstanceList.map((instance) => instance.instanceId),\n },\n },\n fieldIds: props.fields,\n }}\n selectDisabled={!props.ipCopy}\n ipCopy={props.ipCopy}\n showCloseBtn={props.ipCopy ? true : props.showCloseBtn}\n pageSize={props.addInstancesModalPageSize}\n showSizeChanger={props.showSizeChanger}\n pageSizeOptions={props.pageSizeOptions}\n onCancel={closeAllSelectedInstancesModal}\n saveFieldsBackend={props.saveFieldsBackend}\n />\n <Spin\n style={{ textAlign: \"left\", marginBottom: \"12px\" }}\n spinning={isEqual(modelMap, {})}\n >\n <a\n className={style.addButton}\n style={{\n marginBottom: \"12px\",\n }}\n onClick={openAddInstancesModal}\n >\n {props.addTitle ??\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CHOOSE_INSTANCE}`)}\n </a>\n </Spin>\n <div className={cs}>\n <InstanceListTable\n {...(props.showDetailUrl\n ? {\n detailUrlTemplates: {\n [props.objectId]:\n \"/next-cmdb-instance-management/next/#{objectId}/instance/#{instanceId}\",\n },\n }\n : {})}\n idObjectMap={modelMap}\n modelData={modelData}\n instanceListData={{ list: partialSelectedInstances }}\n fieldIds={props.fields || fieldIds}\n selectDisabled={true}\n sortDisabled={true}\n configProps={\n props.showPagination && partialSelectedInstances.length > 10\n ? { pagination: { showSizeChanger: true } }\n : { pagination: false }\n }\n //\n isOperate={props.isOperate}\n handleDeleteFunction={(v) => {\n setSelectedInstanceList(v);\n setPartialSelectedInstances(v);\n props.onChange?.(v);\n }}\n target={\"_blank\"}\n ></InstanceListTable>\n {!props?.isOperate && showPreview && (\n <div\n className={style.showAllSelectedInstancesButton}\n onClick={openAllSelectedInstancesModal}\n >\n <a>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.VIEW_ALL_DATA}`, {\n count: selectedInstanceList.length,\n })}\n </a>\n </div>\n )}\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -419,7 +419,9 @@ function LegacyUserSelectFormItem(props, ref) {
|
|
|
419
419
|
state: "valid"
|
|
420
420
|
}
|
|
421
421
|
}
|
|
422
|
-
} : {}
|
|
422
|
+
} : {}, {
|
|
423
|
+
saveFieldsBackend: props.saveFieldsBackend
|
|
424
|
+
})));
|
|
423
425
|
}
|
|
424
426
|
const UserSelectFormItem = /*#__PURE__*/(0, _react.forwardRef)(LegacyUserSelectFormItem);
|
|
425
427
|
exports.UserSelectFormItem = UserSelectFormItem;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserOrUserGroupSelect.js","names":["LegacyUserSelectFormItem","props","ref","selectRef","useRef","selectedValue","setSelectedValue","useState","staticValue","userShowKey","getInstanceNameKeys","objectMap","userGroupShowKey","t","useTranslation","NS_LIBS_CMDB_INSTANCES","getLabel","objectId","instanceData","showKey","Array","isArray","showName","map","key","index","join","getStaticLabel","label","color","isDifferent","userOfValues","value","selectedUser","userGroupOfValues","selectedUserGroup","userOfSelectedValue","filter","item","startsWith","userGroupOfSelectedValue","isEqual","sort","initializeStaticList","groupBy","staticList","v","fetching","setFetching","searchValue","setSearchValue","userList","setUserList","userGroupList","setUserGroupList","modalVisible","setModalVisible","modalObjectId","setModalObjectId","optionsMode","triggerChange","changedValue","onChange","isEmpty","useEffect","initializeSelectedValue","staticKeys","user","compact","uniq","concat","userGroup","some","includes","staticValueToSet","length","InstanceApi_postSearch","query","name","$in","page","page_size","fields","zipObject","list","instanceId","slice","labelValue","labelText","result","push","current","fetchInstanceList","keyword","showKeyQuery","$or","$like","hideInvalidUser","state","userQuery","userGroupQuery","searchUser","searchUserGroup","searchUserOrUserGroupInstances","Promise","all","handleSelectChange","originValue","find","unshift","resultValue","reject","handleFocus","isNil","openModal","closeModal","handleInstancesSelected","resultSelectedValue","uniqBy","handleModalSelected","selectedKeys","instances","toggleObjectId","title","K","FILTER_FROM_CMDB_TYPE","type","USERS","USER_GROUPS","SWITCH","addMeQuickly","myUserName","getAuth","username","myUser","$eq","getRight","btnWidth","hideAddMeQuickly","lineWidth","hideSelectByCMDB","iconWidth","styles","UserOrUserGroupSelectContainer","customSelect","placeholder","debounce","width","USERS_RESULT_LABEL","d","NO_DATA","USER_GROUPS_RESULT_LABEL","extra","right","fontSize","lib","icon","presetConfigs","UserSelectFormItem","forwardRef","UserOrUserGroupSelect","mergeUseAndUserGroup"],"sources":["../../../../src/components/user-or-user-group-select/UserOrUserGroupSelect.tsx"],"sourcesContent":["import React, {\n useState,\n forwardRef,\n ReactNode,\n useEffect,\n useRef,\n} from \"react\";\nimport { SearchOutlined } from \"@ant-design/icons\";\nimport { Select, Button, Divider } from \"antd\";\nimport styles from \"./UserOrUserGroupSelect.module.css\";\nimport { InstanceApi_postSearch } from \"@next-sdk/cmdb-sdk\";\nimport {\n zipObject,\n map,\n debounce,\n startsWith,\n filter,\n reject,\n isNil,\n uniqBy,\n uniq,\n find,\n isEmpty,\n isEqual,\n groupBy,\n compact,\n some,\n} from \"lodash\";\nimport { FormItemWrapperProps, FormItemWrapper } from \"@next-libs/forms\";\nimport { getInstanceNameKeys } from \"@next-libs/cmdb-utils\";\nimport { InstanceListModal } from \"../../instance-list-modal/InstanceListModal\";\nimport { getAuth } from \"@next-core/brick-kit\";\nimport { GeneralIcon } from \"@next-libs/basic-components\";\nimport { useTranslation } from \"react-i18next\";\nimport { NS_LIBS_CMDB_INSTANCES, K } from \"../../i18n/constants\";\n\nexport type UserOrUserGroupSelectValue = {\n selectedUser?: string[];\n selectedUserGroup?: string[];\n};\n\nexport interface UserSelectFormItemProps {\n children?: ReactNode;\n objectMap?: Record<string, any>;\n onChange?: (value: any) => void;\n placeholder?: string;\n value?: UserOrUserGroupSelectValue;\n hideAddMeQuickly?: boolean;\n hideSelectByCMDB?: boolean;\n optionsMode?: \"user\" | \"group\" | \"all\";\n staticList?: string[];\n mergeUseAndUserGroup?: boolean;\n query?: Record<string, any>;\n hideInvalidUser?: boolean;\n userGroupQuery?: Record<string, any>;\n userQuery?: Record<string, any>;\n}\n\ninterface UserOrUserGroupSelectProps extends FormItemWrapperProps {\n objectMap: Record<string, any>;\n placeholder?: string;\n value?: UserOrUserGroupSelectValue;\n hideAddMeQuickly?: boolean;\n hideSelectByCMDB?: boolean;\n onChange?: (value: any) => void;\n optionsMode?: \"user\" | \"group\" | \"all\";\n staticList?: string[];\n mergeUseAndUserGroup?: boolean;\n query?: Record<string, any>;\n hideInvalidUser?: boolean;\n userGroupQuery?: Record<string, any>;\n userQuery?: Record<string, any>;\n}\n\nexport function LegacyUserSelectFormItem(\n props: UserSelectFormItemProps,\n ref: React.Ref<HTMLDivElement>\n): React.ReactElement {\n const selectRef = useRef();\n const [selectedValue, setSelectedValue] = useState([]);\n const staticValue = useRef([]);\n const userShowKey: string[] = getInstanceNameKeys(props.objectMap[\"USER\"]);\n const userGroupShowKey: string[] = getInstanceNameKeys(\n props.objectMap[\"USER_GROUP\"]\n );\n\n const { t } = useTranslation(NS_LIBS_CMDB_INSTANCES);\n\n const getLabel = (\n objectId: \"USER\" | \"USER_GROUP\",\n instanceData: any\n ): string => {\n const showKey = objectId === \"USER\" ? userShowKey : userGroupShowKey;\n if (Array.isArray(showKey)) {\n const 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 return showName;\n } else {\n return instanceData[showKey];\n }\n };\n\n const getStaticLabel = (label: string) => (\n <div style={{ color: \"var(--bg-color-button-link)\" }}>{label}</div>\n );\n\n const isDifferent = () => {\n const userOfValues = props.value?.selectedUser || [];\n const userGroupOfValues = props.value?.selectedUserGroup || [];\n const userOfSelectedValue = map(\n filter(selectedValue, (item) => !item.key.startsWith(\":\")),\n \"key\"\n );\n\n const userGroupOfSelectedValue = map(\n filter(selectedValue, (item) => 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\n // 后台搜索中\n const [fetching, setFetching] = useState(false);\n\n const [searchValue, setSearchValue] = useState();\n const [userList, setUserList] = useState([]);\n const [userGroupList, setUserGroupList] = useState([]);\n\n const [modalVisible, setModalVisible] = useState(false);\n const [modalObjectId, setModalObjectId] = useState(\n props.optionsMode === \"group\" ? \"USER_GROUP\" : \"USER\"\n );\n\n const triggerChange = (changedValue: any) => {\n props.onChange?.(\n isEmpty(changedValue.selectedUser) &&\n isEmpty(changedValue.selectedUserGroup)\n ? null\n : changedValue\n );\n };\n // istanbul ignore next (Migrated from next-basic)\n useEffect(() => {\n const initializeSelectedValue = async () => {\n if (props.value) {\n let selectedUser: any[] = [];\n let selectedUserGroup: any[] = [];\n const staticKeys = initializeStaticList();\n const user = compact(\n uniq([].concat(staticKeys.user).concat(props.value.selectedUser))\n );\n\n const userGroup = compact(\n uniq(\n []\n .concat(staticKeys.userGroup)\n .concat(props.value.selectedUserGroup)\n )\n );\n\n if (\n (staticKeys.user &&\n some(\n staticKeys.user,\n (v) => !props.value?.selectedUser?.includes(v)\n )) ||\n (staticKeys.userGroup &&\n some(\n staticKeys.userGroup,\n (v) => !props.value?.selectedUserGroup?.includes(v)\n ))\n ) {\n triggerChange({\n selectedUser: user,\n selectedUserGroup: userGroup,\n });\n }\n const staticValueToSet: any[] = [];\n if (user.length && props.optionsMode !== \"group\") {\n selectedUser = (\n await InstanceApi_postSearch(\"USER\", {\n query: {\n name: {\n $in: user,\n },\n },\n\n page: 1,\n page_size: user.length,\n fields: {\n ...zipObject(\n userShowKey,\n map(userShowKey, (v) => true)\n ),\n\n name: true,\n },\n })\n ).list;\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.slice(1)),\n },\n },\n\n page: 1,\n page_size: userGroup.length,\n fields: {\n ...zipObject(\n userGroupShowKey,\n map(userGroupShowKey, (v) => true)\n ),\n\n name: true,\n },\n })\n ).list;\n }\n let labelValue = [\n ...map(selectedUser, (v) => {\n const labelText = getLabel(\"USER\", v);\n const result = {\n key: v.name,\n label: props.staticList?.includes(v.name)\n ? getStaticLabel(labelText)\n : labelText,\n };\n\n if (props.staticList?.includes(v.name)) {\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: props.staticList?.includes(\":\" + v.instanceId)\n ? getStaticLabel(labelText)\n : 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\n setSelectedValue(labelValue);\n staticValue.current = staticValueToSet;\n }\n };\n if (isDifferent()) {\n initializeSelectedValue();\n }\n }, [props.value]);\n\n const fetchInstanceList = async (\n objectId: \"USER\" | \"USER_GROUP\",\n keyword: string\n ) => {\n const showKey = objectId === \"USER\" ? userShowKey : userGroupShowKey;\n const showKeyQuery = {\n $or: map(uniq([...showKey, \"name\"]), (v) => ({\n [v]: { $like: `%${keyword}%` },\n })),\n ...(props.hideInvalidUser\n ? {\n state: \"valid\",\n }\n : {}),\n };\n return (\n await InstanceApi_postSearch(objectId, {\n page: 1,\n page_size: 20,\n fields: {\n ...zipObject(\n showKey,\n map(showKey, (v) => true)\n ),\n\n name: true,\n },\n query:\n props.userQuery && objectId === \"USER\"\n ? {\n ...props.userQuery,\n ...showKeyQuery,\n }\n : props.userGroupQuery && objectId === \"USER_GROUP\"\n ? {\n ...props.userGroupQuery,\n ...showKeyQuery,\n }\n : props.query || showKeyQuery\n ? {\n ...props.query,\n ...showKeyQuery,\n }\n : showKeyQuery,\n })\n ).list;\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: any) => {\n setSearchValue(value);\n setFetching(true);\n await Promise.all([\n ...(props.optionsMode !== \"group\" ? [searchUser(value)] : []),\n ...(props.optionsMode !== \"user\" ? [searchUserGroup(value)] : []),\n ]);\n\n setFetching(false);\n };\n\n const handleSelectChange = (originValue: any) => {\n const value = filter(originValue, (item) => {\n return !find(props.staticList, (v) => v === item.key);\n });\n value.unshift(...staticValue.current);\n setSelectedValue(value);\n const resultValue = {\n selectedUser: map(\n reject(value, (v) => {\n return startsWith(v.key, \":\");\n }),\n \"key\"\n ),\n\n selectedUserGroup: map(\n filter(value, (v) => {\n return startsWith(v.key, \":\");\n }),\n \"key\"\n ),\n };\n\n triggerChange(resultValue);\n if (searchValue !== \"\") {\n searchUserOrUserGroupInstances(\"\");\n }\n };\n // istanbul ignore next (Migrated from next-basic)\n const handleFocus = () => {\n if (isNil(searchValue) || searchValue !== \"\") {\n searchUserOrUserGroupInstances(\"\");\n }\n };\n // istanbul ignore next (Migrated from next-basic)\n const openModal = () => {\n setModalVisible(true);\n };\n // istanbul ignore next (Migrated from next-basic)\n const closeModal = () => {\n setModalVisible(false);\n };\n // istanbul ignore next (Migrated from next-basic)\n const handleInstancesSelected = (\n value: Record<string, any>[],\n objectId: string\n ): void => {\n let labelValue: any[] = [];\n if (objectId === \"USER\") {\n labelValue = [\n ...map(value, (v) => {\n const labelText = getLabel(\"USER\", v);\n return {\n key: v.name,\n label: props.staticList?.includes(v.name)\n ? getStaticLabel(labelText)\n : labelText,\n };\n }),\n ];\n } else {\n labelValue = [\n ...map(value, (v) => {\n const labelText = getLabel(\"USER_GROUP\", v);\n return {\n key: \":\" + v.instanceId,\n label: props.staticList?.includes(\":\" + v.instanceId)\n ? getStaticLabel(labelText)\n : labelText,\n };\n }),\n ];\n }\n const resultSelectedValue = uniqBy(\n [...selectedValue, ...labelValue],\n \"key\"\n );\n\n setSelectedValue(resultSelectedValue);\n const resultValue = {\n selectedUser: map(\n reject(resultSelectedValue, (v) => {\n return startsWith(v.key, \":\");\n }),\n \"key\"\n ),\n\n selectedUserGroup: map(\n filter(resultSelectedValue, (v) => {\n return startsWith(v.key, \":\");\n }),\n \"key\"\n ),\n };\n\n triggerChange(resultValue);\n };\n // istanbul ignore next (Migrated from next-basic)\n const handleModalSelected = async (selectedKeys: string[]) => {\n if (selectedKeys?.length) {\n const instances = (\n await InstanceApi_postSearch(modalObjectId, {\n query: { instanceId: { $in: selectedKeys } },\n fields: { \"*\": true },\n page_size: selectedKeys.length,\n })\n ).list;\n handleInstancesSelected(instances, modalObjectId);\n }\n setModalVisible(false);\n };\n\n const toggleObjectId = () => {\n setModalObjectId(modalObjectId === \"USER\" ? \"USER_GROUP\" : \"USER\");\n };\n\n const title = (\n <div>\n {t(K.FILTER_FROM_CMDB_TYPE, {\n type: modalObjectId === \"USER\" ? t(K.USERS) : t(K.USER_GROUPS),\n })}{\" \"}\n {props.optionsMode === \"all\" && (\n <Button type=\"link\" onClick={toggleObjectId}>\n {t(K.SWITCH, {\n type: modalObjectId === \"USER\" ? t(K.USER_GROUPS) : t(K.USERS),\n })}{\" \"}\n </Button>\n )}\n </div>\n );\n\n // 快速选择我\n // istanbul ignore next (Migrated from next-basic)\n const addMeQuickly = async () => {\n const myUserName = getAuth().username;\n if (find(selectedValue, (v) => v.key === myUserName)) {\n // 如果已选择项中包含我,则不重新发起请求\n return;\n }\n const myUser = (\n await InstanceApi_postSearch(\"USER\", {\n query: {\n name: {\n $eq: myUserName,\n },\n },\n\n page: 1,\n page_size: 1,\n fields: {\n ...zipObject(\n userShowKey,\n map(userShowKey, (v) => true)\n ),\n\n name: true,\n },\n })\n ).list;\n handleInstancesSelected(myUser, \"USER\");\n };\n\n const getRight = () => {\n const btnWidth =\n !props.hideAddMeQuickly && props.optionsMode !== \"group\" ? -34 : 0;\n const lineWidth =\n !props.hideAddMeQuickly &&\n props.optionsMode !== \"group\" &&\n !props.hideSelectByCMDB\n ? -1\n : 0;\n const iconWidth = props.hideSelectByCMDB ? 0 : -32;\n return btnWidth + lineWidth + iconWidth;\n };\n\n return (\n <div\n ref={ref}\n data-testid=\"wrapper\"\n className={styles.UserOrUserGroupSelectContainer}\n >\n <Select\n className={styles.customSelect}\n ref={selectRef}\n allowClear={true}\n mode=\"multiple\"\n labelInValue\n placeholder={props.placeholder}\n filterOption={false}\n value={selectedValue}\n onChange={handleSelectChange}\n onSearch={debounce((value) => {\n searchUserOrUserGroupInstances(value as string);\n }, 500)}\n onFocus={handleFocus}\n style={{ width: \"100%\" }}\n loading={fetching}\n >\n {props.optionsMode !== \"group\" && (\n <Select.OptGroup label={t(K.USERS_RESULT_LABEL)}>\n {userList.length > 0 ? (\n userList.map((d) => (\n <Select.Option value={d.name} key={d.name}>\n {props.staticList?.includes(d.name)\n ? getStaticLabel(getLabel(\"USER\", d))\n : getLabel(\"USER\", d)}\n </Select.Option>\n ))\n ) : (\n <Select.Option value=\"empty-user\" key=\"empty-user\" disabled>\n {t(K.NO_DATA)}\n </Select.Option>\n )}\n </Select.OptGroup>\n )}\n\n {props.optionsMode !== \"user\" && (\n <Select.OptGroup label={t(K.USER_GROUPS_RESULT_LABEL)}>\n {userGroupList.length > 0 ? (\n userGroupList.map((d) => (\n <Select.Option value={d.instanceId} key={d.instanceId}>\n {props.staticList?.includes(d.instanceId)\n ? getStaticLabel(getLabel(\"USER_GROUP\", d))\n : getLabel(\"USER_GROUP\", d)}\n </Select.Option>\n ))\n ) : (\n <Select.Option\n value=\"empty-user-group\"\n key=\"empty-user-group\"\n disabled\n >\n {t(K.NO_DATA)}\n </Select.Option>\n )}\n </Select.OptGroup>\n )}\n </Select>\n <div className={styles.extra} style={{ right: getRight() }}>\n {!props.hideAddMeQuickly && props.optionsMode !== \"group\" && (\n <Button\n type=\"link\"\n onClick={addMeQuickly}\n style={{ fontSize: \"16px\" }}\n >\n <GeneralIcon icon={{ lib: \"easyops\", icon: \"quick-add-me\" }} />\n </Button>\n )}\n\n {!props.hideAddMeQuickly &&\n props.optionsMode !== \"group\" &&\n !props.hideSelectByCMDB && <Divider type=\"vertical\" />}\n {!props.hideSelectByCMDB && (\n <Button\n type=\"link\"\n icon={<SearchOutlined />}\n onClick={openModal}\n ></Button>\n )}\n </div>\n <InstanceListModal\n objectMap={props.objectMap}\n objectId={modalObjectId}\n visible={modalVisible}\n title={title}\n onSelected={handleModalSelected}\n onCancel={closeModal}\n showSizeChanger={true}\n {...(modalObjectId === \"USER\" && props.hideInvalidUser\n ? {\n presetConfigs: {\n query: {\n state: \"valid\",\n },\n },\n }\n : {})}\n />\n </div>\n );\n}\n\nexport const UserSelectFormItem = forwardRef<HTMLDivElement>(\n LegacyUserSelectFormItem\n) as any;\n\nexport function UserOrUserGroupSelect(\n props: UserOrUserGroupSelectProps\n): React.ReactElement {\n return (\n <FormItemWrapper {...props}>\n <UserSelectFormItem\n objectMap={props.objectMap}\n placeholder={props.placeholder}\n value={props.value}\n hideAddMeQuickly={props.hideAddMeQuickly}\n hideSelectByCMDB={props.hideSelectByCMDB}\n onChange={props.onChange}\n optionsMode={props.optionsMode}\n staticList={props.staticList}\n mergeUseAndUserGroup={props.mergeUseAndUserGroup}\n query={props.query}\n hideInvalidUser={props.hideInvalidUser}\n userQuery={props.userQuery}\n userGroupQuery={props.userGroupQuery}\n />\n </FormItemWrapper>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"UserOrUserGroupSelect.js","names":["LegacyUserSelectFormItem","props","ref","selectRef","useRef","selectedValue","setSelectedValue","useState","staticValue","userShowKey","getInstanceNameKeys","objectMap","userGroupShowKey","t","useTranslation","NS_LIBS_CMDB_INSTANCES","getLabel","objectId","instanceData","showKey","Array","isArray","showName","map","key","index","join","getStaticLabel","label","color","isDifferent","userOfValues","value","selectedUser","userGroupOfValues","selectedUserGroup","userOfSelectedValue","filter","item","startsWith","userGroupOfSelectedValue","isEqual","sort","initializeStaticList","groupBy","staticList","v","fetching","setFetching","searchValue","setSearchValue","userList","setUserList","userGroupList","setUserGroupList","modalVisible","setModalVisible","modalObjectId","setModalObjectId","optionsMode","triggerChange","changedValue","onChange","isEmpty","useEffect","initializeSelectedValue","staticKeys","user","compact","uniq","concat","userGroup","some","includes","staticValueToSet","length","InstanceApi_postSearch","query","name","$in","page","page_size","fields","zipObject","list","instanceId","slice","labelValue","labelText","result","push","current","fetchInstanceList","keyword","showKeyQuery","$or","$like","hideInvalidUser","state","userQuery","userGroupQuery","searchUser","searchUserGroup","searchUserOrUserGroupInstances","Promise","all","handleSelectChange","originValue","find","unshift","resultValue","reject","handleFocus","isNil","openModal","closeModal","handleInstancesSelected","resultSelectedValue","uniqBy","handleModalSelected","selectedKeys","instances","toggleObjectId","title","K","FILTER_FROM_CMDB_TYPE","type","USERS","USER_GROUPS","SWITCH","addMeQuickly","myUserName","getAuth","username","myUser","$eq","getRight","btnWidth","hideAddMeQuickly","lineWidth","hideSelectByCMDB","iconWidth","styles","UserOrUserGroupSelectContainer","customSelect","placeholder","debounce","width","USERS_RESULT_LABEL","d","NO_DATA","USER_GROUPS_RESULT_LABEL","extra","right","fontSize","lib","icon","presetConfigs","saveFieldsBackend","UserSelectFormItem","forwardRef","UserOrUserGroupSelect","mergeUseAndUserGroup"],"sources":["../../../../src/components/user-or-user-group-select/UserOrUserGroupSelect.tsx"],"sourcesContent":["import React, {\n useState,\n forwardRef,\n ReactNode,\n useEffect,\n useRef,\n} from \"react\";\nimport { SearchOutlined } from \"@ant-design/icons\";\nimport { Select, Button, Divider } from \"antd\";\nimport styles from \"./UserOrUserGroupSelect.module.css\";\nimport { InstanceApi_postSearch } from \"@next-sdk/cmdb-sdk\";\nimport {\n zipObject,\n map,\n debounce,\n startsWith,\n filter,\n reject,\n isNil,\n uniqBy,\n uniq,\n find,\n isEmpty,\n isEqual,\n groupBy,\n compact,\n some,\n} from \"lodash\";\nimport { FormItemWrapperProps, FormItemWrapper } from \"@next-libs/forms\";\nimport { getInstanceNameKeys } from \"@next-libs/cmdb-utils\";\nimport { InstanceListModal } from \"../../instance-list-modal/InstanceListModal\";\nimport { getAuth } from \"@next-core/brick-kit\";\nimport { GeneralIcon } from \"@next-libs/basic-components\";\nimport { useTranslation } from \"react-i18next\";\nimport { NS_LIBS_CMDB_INSTANCES, K } from \"../../i18n/constants\";\n\nexport type UserOrUserGroupSelectValue = {\n selectedUser?: string[];\n selectedUserGroup?: string[];\n};\n\nexport interface UserSelectFormItemProps {\n children?: ReactNode;\n objectMap?: Record<string, any>;\n onChange?: (value: any) => void;\n placeholder?: string;\n value?: UserOrUserGroupSelectValue;\n hideAddMeQuickly?: boolean;\n hideSelectByCMDB?: boolean;\n optionsMode?: \"user\" | \"group\" | \"all\";\n staticList?: string[];\n mergeUseAndUserGroup?: boolean;\n query?: Record<string, any>;\n hideInvalidUser?: boolean;\n userGroupQuery?: Record<string, any>;\n userQuery?: Record<string, any>;\n saveFieldsBackend?: boolean;\n}\n\ninterface UserOrUserGroupSelectProps extends FormItemWrapperProps {\n objectMap: Record<string, any>;\n placeholder?: string;\n value?: UserOrUserGroupSelectValue;\n hideAddMeQuickly?: boolean;\n hideSelectByCMDB?: boolean;\n onChange?: (value: any) => void;\n optionsMode?: \"user\" | \"group\" | \"all\";\n staticList?: string[];\n mergeUseAndUserGroup?: boolean;\n query?: Record<string, any>;\n hideInvalidUser?: boolean;\n userGroupQuery?: Record<string, any>;\n userQuery?: Record<string, any>;\n}\n\nexport function LegacyUserSelectFormItem(\n props: UserSelectFormItemProps,\n ref: React.Ref<HTMLDivElement>\n): React.ReactElement {\n const selectRef = useRef();\n const [selectedValue, setSelectedValue] = useState([]);\n const staticValue = useRef([]);\n const userShowKey: string[] = getInstanceNameKeys(props.objectMap[\"USER\"]);\n const userGroupShowKey: string[] = getInstanceNameKeys(\n props.objectMap[\"USER_GROUP\"]\n );\n\n const { t } = useTranslation(NS_LIBS_CMDB_INSTANCES);\n\n const getLabel = (\n objectId: \"USER\" | \"USER_GROUP\",\n instanceData: any\n ): string => {\n const showKey = objectId === \"USER\" ? userShowKey : userGroupShowKey;\n if (Array.isArray(showKey)) {\n const 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 return showName;\n } else {\n return instanceData[showKey];\n }\n };\n\n const getStaticLabel = (label: string) => (\n <div style={{ color: \"var(--bg-color-button-link)\" }}>{label}</div>\n );\n\n const isDifferent = () => {\n const userOfValues = props.value?.selectedUser || [];\n const userGroupOfValues = props.value?.selectedUserGroup || [];\n const userOfSelectedValue = map(\n filter(selectedValue, (item) => !item.key.startsWith(\":\")),\n \"key\"\n );\n\n const userGroupOfSelectedValue = map(\n filter(selectedValue, (item) => 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\n // 后台搜索中\n const [fetching, setFetching] = useState(false);\n\n const [searchValue, setSearchValue] = useState();\n const [userList, setUserList] = useState([]);\n const [userGroupList, setUserGroupList] = useState([]);\n\n const [modalVisible, setModalVisible] = useState(false);\n const [modalObjectId, setModalObjectId] = useState(\n props.optionsMode === \"group\" ? \"USER_GROUP\" : \"USER\"\n );\n\n const triggerChange = (changedValue: any) => {\n props.onChange?.(\n isEmpty(changedValue.selectedUser) &&\n isEmpty(changedValue.selectedUserGroup)\n ? null\n : changedValue\n );\n };\n // istanbul ignore next (Migrated from next-basic)\n useEffect(() => {\n const initializeSelectedValue = async () => {\n if (props.value) {\n let selectedUser: any[] = [];\n let selectedUserGroup: any[] = [];\n const staticKeys = initializeStaticList();\n const user = compact(\n uniq([].concat(staticKeys.user).concat(props.value.selectedUser))\n );\n\n const userGroup = compact(\n uniq(\n []\n .concat(staticKeys.userGroup)\n .concat(props.value.selectedUserGroup)\n )\n );\n\n if (\n (staticKeys.user &&\n some(\n staticKeys.user,\n (v) => !props.value?.selectedUser?.includes(v)\n )) ||\n (staticKeys.userGroup &&\n some(\n staticKeys.userGroup,\n (v) => !props.value?.selectedUserGroup?.includes(v)\n ))\n ) {\n triggerChange({\n selectedUser: user,\n selectedUserGroup: userGroup,\n });\n }\n const staticValueToSet: any[] = [];\n if (user.length && props.optionsMode !== \"group\") {\n selectedUser = (\n await InstanceApi_postSearch(\"USER\", {\n query: {\n name: {\n $in: user,\n },\n },\n\n page: 1,\n page_size: user.length,\n fields: {\n ...zipObject(\n userShowKey,\n map(userShowKey, (v) => true)\n ),\n\n name: true,\n },\n })\n ).list;\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.slice(1)),\n },\n },\n\n page: 1,\n page_size: userGroup.length,\n fields: {\n ...zipObject(\n userGroupShowKey,\n map(userGroupShowKey, (v) => true)\n ),\n\n name: true,\n },\n })\n ).list;\n }\n let labelValue = [\n ...map(selectedUser, (v) => {\n const labelText = getLabel(\"USER\", v);\n const result = {\n key: v.name,\n label: props.staticList?.includes(v.name)\n ? getStaticLabel(labelText)\n : labelText,\n };\n\n if (props.staticList?.includes(v.name)) {\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: props.staticList?.includes(\":\" + v.instanceId)\n ? getStaticLabel(labelText)\n : 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\n setSelectedValue(labelValue);\n staticValue.current = staticValueToSet;\n }\n };\n if (isDifferent()) {\n initializeSelectedValue();\n }\n }, [props.value]);\n\n const fetchInstanceList = async (\n objectId: \"USER\" | \"USER_GROUP\",\n keyword: string\n ) => {\n const showKey = objectId === \"USER\" ? userShowKey : userGroupShowKey;\n const showKeyQuery = {\n $or: map(uniq([...showKey, \"name\"]), (v) => ({\n [v]: { $like: `%${keyword}%` },\n })),\n ...(props.hideInvalidUser\n ? {\n state: \"valid\",\n }\n : {}),\n };\n return (\n await InstanceApi_postSearch(objectId, {\n page: 1,\n page_size: 20,\n fields: {\n ...zipObject(\n showKey,\n map(showKey, (v) => true)\n ),\n\n name: true,\n },\n query:\n props.userQuery && objectId === \"USER\"\n ? {\n ...props.userQuery,\n ...showKeyQuery,\n }\n : props.userGroupQuery && objectId === \"USER_GROUP\"\n ? {\n ...props.userGroupQuery,\n ...showKeyQuery,\n }\n : props.query || showKeyQuery\n ? {\n ...props.query,\n ...showKeyQuery,\n }\n : showKeyQuery,\n })\n ).list;\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: any) => {\n setSearchValue(value);\n setFetching(true);\n await Promise.all([\n ...(props.optionsMode !== \"group\" ? [searchUser(value)] : []),\n ...(props.optionsMode !== \"user\" ? [searchUserGroup(value)] : []),\n ]);\n\n setFetching(false);\n };\n\n const handleSelectChange = (originValue: any) => {\n const value = filter(originValue, (item) => {\n return !find(props.staticList, (v) => v === item.key);\n });\n value.unshift(...staticValue.current);\n setSelectedValue(value);\n const resultValue = {\n selectedUser: map(\n reject(value, (v) => {\n return startsWith(v.key, \":\");\n }),\n \"key\"\n ),\n\n selectedUserGroup: map(\n filter(value, (v) => {\n return startsWith(v.key, \":\");\n }),\n \"key\"\n ),\n };\n\n triggerChange(resultValue);\n if (searchValue !== \"\") {\n searchUserOrUserGroupInstances(\"\");\n }\n };\n // istanbul ignore next (Migrated from next-basic)\n const handleFocus = () => {\n if (isNil(searchValue) || searchValue !== \"\") {\n searchUserOrUserGroupInstances(\"\");\n }\n };\n // istanbul ignore next (Migrated from next-basic)\n const openModal = () => {\n setModalVisible(true);\n };\n // istanbul ignore next (Migrated from next-basic)\n const closeModal = () => {\n setModalVisible(false);\n };\n // istanbul ignore next (Migrated from next-basic)\n const handleInstancesSelected = (\n value: Record<string, any>[],\n objectId: string\n ): void => {\n let labelValue: any[] = [];\n if (objectId === \"USER\") {\n labelValue = [\n ...map(value, (v) => {\n const labelText = getLabel(\"USER\", v);\n return {\n key: v.name,\n label: props.staticList?.includes(v.name)\n ? getStaticLabel(labelText)\n : labelText,\n };\n }),\n ];\n } else {\n labelValue = [\n ...map(value, (v) => {\n const labelText = getLabel(\"USER_GROUP\", v);\n return {\n key: \":\" + v.instanceId,\n label: props.staticList?.includes(\":\" + v.instanceId)\n ? getStaticLabel(labelText)\n : labelText,\n };\n }),\n ];\n }\n const resultSelectedValue = uniqBy(\n [...selectedValue, ...labelValue],\n \"key\"\n );\n\n setSelectedValue(resultSelectedValue);\n const resultValue = {\n selectedUser: map(\n reject(resultSelectedValue, (v) => {\n return startsWith(v.key, \":\");\n }),\n \"key\"\n ),\n\n selectedUserGroup: map(\n filter(resultSelectedValue, (v) => {\n return startsWith(v.key, \":\");\n }),\n \"key\"\n ),\n };\n\n triggerChange(resultValue);\n };\n // istanbul ignore next (Migrated from next-basic)\n const handleModalSelected = async (selectedKeys: string[]) => {\n if (selectedKeys?.length) {\n const instances = (\n await InstanceApi_postSearch(modalObjectId, {\n query: { instanceId: { $in: selectedKeys } },\n fields: { \"*\": true },\n page_size: selectedKeys.length,\n })\n ).list;\n handleInstancesSelected(instances, modalObjectId);\n }\n setModalVisible(false);\n };\n\n const toggleObjectId = () => {\n setModalObjectId(modalObjectId === \"USER\" ? \"USER_GROUP\" : \"USER\");\n };\n\n const title = (\n <div>\n {t(K.FILTER_FROM_CMDB_TYPE, {\n type: modalObjectId === \"USER\" ? t(K.USERS) : t(K.USER_GROUPS),\n })}{\" \"}\n {props.optionsMode === \"all\" && (\n <Button type=\"link\" onClick={toggleObjectId}>\n {t(K.SWITCH, {\n type: modalObjectId === \"USER\" ? t(K.USER_GROUPS) : t(K.USERS),\n })}{\" \"}\n </Button>\n )}\n </div>\n );\n\n // 快速选择我\n // istanbul ignore next (Migrated from next-basic)\n const addMeQuickly = async () => {\n const myUserName = getAuth().username;\n if (find(selectedValue, (v) => v.key === myUserName)) {\n // 如果已选择项中包含我,则不重新发起请求\n return;\n }\n const myUser = (\n await InstanceApi_postSearch(\"USER\", {\n query: {\n name: {\n $eq: myUserName,\n },\n },\n\n page: 1,\n page_size: 1,\n fields: {\n ...zipObject(\n userShowKey,\n map(userShowKey, (v) => true)\n ),\n\n name: true,\n },\n })\n ).list;\n handleInstancesSelected(myUser, \"USER\");\n };\n\n const getRight = () => {\n const btnWidth =\n !props.hideAddMeQuickly && props.optionsMode !== \"group\" ? -34 : 0;\n const lineWidth =\n !props.hideAddMeQuickly &&\n props.optionsMode !== \"group\" &&\n !props.hideSelectByCMDB\n ? -1\n : 0;\n const iconWidth = props.hideSelectByCMDB ? 0 : -32;\n return btnWidth + lineWidth + iconWidth;\n };\n\n return (\n <div\n ref={ref}\n data-testid=\"wrapper\"\n className={styles.UserOrUserGroupSelectContainer}\n >\n <Select\n className={styles.customSelect}\n ref={selectRef}\n allowClear={true}\n mode=\"multiple\"\n labelInValue\n placeholder={props.placeholder}\n filterOption={false}\n value={selectedValue}\n onChange={handleSelectChange}\n onSearch={debounce((value) => {\n searchUserOrUserGroupInstances(value as string);\n }, 500)}\n onFocus={handleFocus}\n style={{ width: \"100%\" }}\n loading={fetching}\n >\n {props.optionsMode !== \"group\" && (\n <Select.OptGroup label={t(K.USERS_RESULT_LABEL)}>\n {userList.length > 0 ? (\n userList.map((d) => (\n <Select.Option value={d.name} key={d.name}>\n {props.staticList?.includes(d.name)\n ? getStaticLabel(getLabel(\"USER\", d))\n : getLabel(\"USER\", d)}\n </Select.Option>\n ))\n ) : (\n <Select.Option value=\"empty-user\" key=\"empty-user\" disabled>\n {t(K.NO_DATA)}\n </Select.Option>\n )}\n </Select.OptGroup>\n )}\n\n {props.optionsMode !== \"user\" && (\n <Select.OptGroup label={t(K.USER_GROUPS_RESULT_LABEL)}>\n {userGroupList.length > 0 ? (\n userGroupList.map((d) => (\n <Select.Option value={d.instanceId} key={d.instanceId}>\n {props.staticList?.includes(d.instanceId)\n ? getStaticLabel(getLabel(\"USER_GROUP\", d))\n : getLabel(\"USER_GROUP\", d)}\n </Select.Option>\n ))\n ) : (\n <Select.Option\n value=\"empty-user-group\"\n key=\"empty-user-group\"\n disabled\n >\n {t(K.NO_DATA)}\n </Select.Option>\n )}\n </Select.OptGroup>\n )}\n </Select>\n <div className={styles.extra} style={{ right: getRight() }}>\n {!props.hideAddMeQuickly && props.optionsMode !== \"group\" && (\n <Button\n type=\"link\"\n onClick={addMeQuickly}\n style={{ fontSize: \"16px\" }}\n >\n <GeneralIcon icon={{ lib: \"easyops\", icon: \"quick-add-me\" }} />\n </Button>\n )}\n\n {!props.hideAddMeQuickly &&\n props.optionsMode !== \"group\" &&\n !props.hideSelectByCMDB && <Divider type=\"vertical\" />}\n {!props.hideSelectByCMDB && (\n <Button\n type=\"link\"\n icon={<SearchOutlined />}\n onClick={openModal}\n ></Button>\n )}\n </div>\n <InstanceListModal\n objectMap={props.objectMap}\n objectId={modalObjectId}\n visible={modalVisible}\n title={title}\n onSelected={handleModalSelected}\n onCancel={closeModal}\n showSizeChanger={true}\n {...(modalObjectId === \"USER\" && props.hideInvalidUser\n ? {\n presetConfigs: {\n query: {\n state: \"valid\",\n },\n },\n }\n : {})}\n saveFieldsBackend={props.saveFieldsBackend}\n />\n </div>\n );\n}\n\nexport const UserSelectFormItem = forwardRef<HTMLDivElement>(\n LegacyUserSelectFormItem\n) as any;\n\nexport function UserOrUserGroupSelect(\n props: UserOrUserGroupSelectProps\n): React.ReactElement {\n return (\n <FormItemWrapper {...props}>\n <UserSelectFormItem\n objectMap={props.objectMap}\n placeholder={props.placeholder}\n value={props.value}\n hideAddMeQuickly={props.hideAddMeQuickly}\n hideSelectByCMDB={props.hideSelectByCMDB}\n onChange={props.onChange}\n optionsMode={props.optionsMode}\n staticList={props.staticList}\n mergeUseAndUserGroup={props.mergeUseAndUserGroup}\n query={props.query}\n hideInvalidUser={props.hideInvalidUser}\n userQuery={props.userQuery}\n userGroupQuery={props.userGroupQuery}\n />\n </FormItemWrapper>\n );\n}\n"],"mappings":"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"}
|
|
@@ -281,7 +281,8 @@ export var LegacyCmdbInstancesInputFormItem = (props, ref) => {
|
|
|
281
281
|
showSizeChanger: props.showSizeChanger,
|
|
282
282
|
hideSearchConditions: props.hideSearchConditions,
|
|
283
283
|
advancedSearchDisabled: props.advancedSearchDisabled,
|
|
284
|
-
"data-testid": "select-modal"
|
|
284
|
+
"data-testid": "select-modal",
|
|
285
|
+
saveFieldsBackend: props.saveFieldsBackend
|
|
285
286
|
}), /*#__PURE__*/React.createElement("div", {
|
|
286
287
|
className: style.cmdbInstancesInputFormWrapper
|
|
287
288
|
}, /*#__PURE__*/React.createElement(Input, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CmdbInstancesInputFormItem.js","names":["React","forwardRef","useState","useEffect","useMemo","Input","Button","Modal","groupBy","map","InstanceListModal","modifyModelData","InstanceApi_postSearch","useTranslation","NS_LIBS_CMDB_INSTANCES","K","style","separator","LegacyCmdbInstancesInputFormItem","props","ref","t","presetQuery","permission","objectId","checkAgentStatus","_agentStatus","checkPermission","push","fields","length","forEach","field","objectData","objectMap","fieldData","__fieldList","find","__id","fieldId","visible","setVisible","selectedInstances","setSelectedInstances","valid","invalid","inputValue","setInputValue","inputFocused","setInputFocused","previewVisible","setPreviewVisible","selectedInstancesQuery","previewEnabled","instanceId","$in","instance","query","undefined","checkSelectedInstances","instances","page_size","list","instanceIdSet","Set","selectedInstancesMap","selectedInstance","has","true","false","invalidSelectedInstance","updateSelected","instanceIds","page","instanceData","join","checkDisabled","value","handleChange","onChange","onChangeV2","checkFieldValues","fieldValues","$and","validSelectedInstances","filter","includes","validFieldValues","invalidFieldValues","fieldValue","checkInputValue","match","split","openSelectInstancesModal","closeSelectInstancesModal","handleInstancesSelected","selectedKeys","handleInputChanged","event","target","handleInputBlur","closeInvalidFieldValuesModal","text","selectFromText","SELECT_FROM_CMDB","TIP","DELETE","INVALID_OR_FORBIDDEN_IPS","INVALID","name","extraFilterBricks","fieldIds","singleSelect","defaultQuery","pageSize","pageSizeOptions","showSizeChanger","hideSearchConditions","advancedSearchDisabled","cmdbInstancesInputFormWrapper","fieldInput","allowClear","inputDisabled","modalButton","addButtonDisabled","VIEW_SPECIFIC_INSTANCES","CmdbInstancesInputFormItem"],"sources":["../../../src/cmdb-instances-input-form/CmdbInstancesInputFormItem.tsx"],"sourcesContent":["/* eslint-disable react-hooks/exhaustive-deps */\n\nimport React, { forwardRef, useState, useEffect, useMemo } from \"react\";\nimport { Input, Button, Modal } from \"antd\";\nimport { groupBy, map } from \"lodash\";\n\nimport { InstanceListModal } from \"../instance-list-modal/InstanceListModal\";\nimport { modifyModelData, Query } from \"@next-libs/cmdb-utils\";\nimport { CmdbModels, InstanceApi_postSearch } from \"@next-sdk/cmdb-sdk\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { NS_LIBS_CMDB_INSTANCES, K } from \"../i18n/constants\";\n\nimport style from \"./cmdb-instances-input-form.module.css\";\nimport { UseBrickConf } from \"@next-core/brick-types\";\n\nconst separator = \" \";\n\nexport interface CmdbInstancesInputFormItemProps {\n selectFromText?: string;\n objectMap?: { [objectId: string]: Partial<CmdbModels.ModelCmdbObject> };\n objectId?: string;\n fieldId?: string;\n fields?: string[];\n singleSelect?: boolean;\n inputDisabled?: boolean;\n checkDisabled?: boolean;\n checkAgentStatus?: boolean;\n checkPermission?: boolean;\n selectedInstanceIds?: string[];\n value?: string[];\n children?: React.ReactNode;\n query?: { [fieldId: string]: any }[];\n onChange?: (value: string[]) => void;\n onChangeV2?: (value: any[]) => void;\n allowClear?: boolean;\n defaultQuery?: { [fieldId: string]: any }[];\n addButtonDisabled?: boolean;\n previewEnabled?: boolean;\n pageSize?: number;\n pageSizeOptions?: string[];\n showSizeChanger?: boolean;\n hideSearchConditions?: boolean;\n advancedSearchDisabled?: boolean;\n extraFilterBricks?: {\n useBrick: UseBrickConf;\n };\n}\n\nexport const LegacyCmdbInstancesInputFormItem = (\n props: CmdbInstancesInputFormItemProps,\n ref: React.Ref<HTMLDivElement>\n): React.ReactElement => {\n const { t } = useTranslation(NS_LIBS_CMDB_INSTANCES);\n\n const { presetQuery, permission } = useMemo(() => {\n const presetQuery = {} as any;\n const permission: string[] = [];\n\n if (props.objectId === \"HOST\") {\n if (props.checkAgentStatus) {\n presetQuery._agentStatus = \"正常\";\n }\n if (props.checkPermission) {\n permission.push(\"operate\");\n }\n }\n\n return { presetQuery, permission };\n }, [props.objectId, props.checkAgentStatus, props.checkPermission]);\n const fields = useMemo(() => {\n if (props.fields?.length) {\n const fields: Record<string, boolean> = {};\n\n props.fields.forEach((field) => {\n fields[field] = true;\n });\n\n return fields;\n }\n }, [props.fields]);\n\n const objectData = modifyModelData(props.objectMap[props.objectId]);\n const fieldData = objectData.__fieldList.find(\n (field) => field.__id === props.fieldId\n );\n\n const [visible, setVisible] = useState(false);\n const [selectedInstances, setSelectedInstances] = useState({\n valid: [],\n invalid: [],\n });\n const [inputValue, setInputValue] = useState(\"\");\n const [inputFocused, setInputFocused] = useState(false);\n const [previewVisible, setPreviewVisible] = useState(false);\n const selectedInstancesQuery = useMemo<Query[]>(\n () =>\n props.previewEnabled && selectedInstances.valid.length > 0\n ? [\n {\n instanceId: {\n $in: selectedInstances.valid.map(\n (instance) => instance.instanceId\n ),\n },\n ...presetQuery,\n },\n ...(props.query ? props.query : []),\n ]\n : undefined,\n [selectedInstances.valid, presetQuery, props.query]\n );\n\n const checkSelectedInstances = async (\n selectedInstances: any[]\n ): Promise<string[]> => {\n if (selectedInstances) {\n const instances = (\n await InstanceApi_postSearch(props.objectId, {\n page_size: selectedInstances.length,\n query: {\n instanceId: {\n $in: selectedInstances.map((instance) => instance.instanceId),\n },\n ...presetQuery,\n },\n permission,\n fields: fields || {\n instanceId: true,\n [props.fieldId]: true,\n },\n })\n ).list;\n const instanceIdSet = new Set(\n instances.map((instance) => instance.instanceId)\n );\n\n const selectedInstancesMap = groupBy(\n selectedInstances,\n (selectedInstance) => instanceIdSet.has(selectedInstance.instanceId)\n );\n\n setSelectedInstances({\n valid: selectedInstancesMap.true || [],\n invalid: (selectedInstancesMap.false || []).map(\n (invalidSelectedInstance) => invalidSelectedInstance[props.fieldId]\n ),\n });\n\n return selectedInstancesMap.true ? selectedInstancesMap.true : [];\n }\n };\n\n const updateSelected = async (instanceIds: string[]): Promise<any[]> => {\n let selectedInstances: any[] = [];\n if (instanceIds?.length) {\n selectedInstances = (\n await InstanceApi_postSearch(props.objectId, {\n page: 1,\n page_size: instanceIds.length,\n query: {\n instanceId: {\n $in: instanceIds,\n },\n },\n fields: fields || {\n instanceId: true,\n [props.fieldId]: true,\n },\n })\n ).list;\n }\n\n setInputValue(\n selectedInstances\n .map((instanceData) => instanceData[props.fieldId])\n .join(separator)\n );\n\n let instances = selectedInstances;\n if (selectedInstances.length) {\n if (!props.checkDisabled) {\n instances = await checkSelectedInstances(selectedInstances);\n }\n } else {\n setSelectedInstances({ valid: [], invalid: [] });\n }\n return instances;\n };\n\n useEffect(() => {\n updateSelected(props.value);\n }, [props.value]);\n\n const handleChange = (instances: any[]): void => {\n props.onChange?.(instances.map((instance) => instance.instanceId));\n props.onChangeV2?.(instances);\n };\n\n const checkFieldValues = async (fieldValues: string[]): Promise<void> => {\n if (fieldValues) {\n const instances = (\n await InstanceApi_postSearch(props.objectId, {\n query: {\n $and: [\n {\n [props.fieldId]: {\n $in: fieldValues,\n },\n ...presetQuery,\n },\n ...(props.query ? props.query : []),\n ],\n },\n permission,\n fields: fields || {\n instanceId: true,\n [props.fieldId]: true,\n },\n })\n ).list;\n\n const validSelectedInstances = instances.filter((instance) =>\n fieldValues.includes(instance[props.fieldId])\n );\n\n const validFieldValues = validSelectedInstances.map(\n (instance) => instance[props.fieldId]\n );\n const invalidFieldValues = fieldValues.filter(\n (fieldValue) => !validFieldValues.includes(fieldValue)\n );\n\n setSelectedInstances({\n valid: validSelectedInstances || [],\n invalid: invalidFieldValues || [],\n });\n\n !invalidFieldValues.length && handleChange(validSelectedInstances);\n }\n };\n\n const checkInputValue = async (inputValue: string): Promise<void> => {\n const fieldValues =\n props.fieldId === \"ip\"\n ? inputValue.match(\n /\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b(?:\\[[^[\\],;\\s]*\\])?/g\n )\n : inputValue.split(separator);\n\n checkFieldValues(fieldValues);\n };\n\n const openSelectInstancesModal = (): void => {\n setVisible(true);\n };\n\n const closeSelectInstancesModal = (): void => {\n setVisible(false);\n };\n\n const handleInstancesSelected = async (\n selectedKeys: string[]\n ): Promise<void> => {\n closeSelectInstancesModal();\n\n const instances = await updateSelected(selectedKeys);\n\n if (!props.checkDisabled) {\n await checkFieldValues(map(instances, props.fieldId));\n } else {\n handleChange(instances);\n }\n };\n\n const handleInputChanged = (event: { target: { value: string } }): void => {\n setInputValue(event.target.value);\n };\n\n const handleInputBlur = async (event: {\n target: { value: string };\n }): Promise<void> => {\n const inputValue = event.target.value;\n if (inputValue) {\n if (!props.checkDisabled) {\n await checkInputValue(inputValue);\n } else {\n const fieldValues =\n props.fieldId === \"ip\"\n ? inputValue.match(\n /\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b(?:\\[[^[\\],;\\s]*\\])?/g\n )\n : inputValue.split(separator);\n\n const instances = (\n await InstanceApi_postSearch(props.objectId, {\n query: {\n $and: [\n {\n [props.fieldId]: {\n $in: fieldValues,\n },\n },\n ...(props.query ? props.query : []),\n ],\n },\n fields: fields || {\n instanceId: true,\n [props.fieldId]: true,\n },\n })\n ).list;\n\n setSelectedInstances({\n valid: instances || [],\n invalid: [],\n });\n\n handleChange(instances);\n }\n } else {\n setSelectedInstances({\n valid: [],\n invalid: [],\n });\n\n handleChange([]);\n }\n\n setInputFocused(false);\n };\n\n const closeInvalidFieldValuesModal = (): void => {\n setSelectedInstances({\n valid: selectedInstances.valid,\n invalid: [],\n });\n setInputValue(\n selectedInstances.valid\n .map((instance) => instance[props.fieldId])\n .join(separator)\n );\n props.onChange?.(\n selectedInstances.valid.map((instance) => instance.instanceId)\n );\n };\n\n const text = props.selectFromText\n ? props.selectFromText\n : t(K.SELECT_FROM_CMDB);\n\n return (\n <div ref={ref}>\n <Modal\n title={t(K.TIP)}\n visible={selectedInstances.invalid.length !== 0}\n closable={false}\n maskClosable={false}\n footer={[\n <Button\n type=\"primary\"\n key=\"delete\"\n onClick={closeInvalidFieldValuesModal}\n >\n {t(K.DELETE)}\n </Button>,\n ]}\n onCancel={closeInvalidFieldValuesModal}\n >\n {props.objectId === \"HOST\" && props.fieldId === \"ip\"\n ? `${t(K.INVALID_OR_FORBIDDEN_IPS)}${selectedInstances.invalid.join(\n \", \"\n )}`\n : `${t(K.INVALID)}${fieldData.name}:${selectedInstances.invalid.join(\n \", \"\n )}`}\n </Modal>\n <InstanceListModal\n objectMap={props.objectMap}\n extraFilterBricks={props.extraFilterBricks}\n objectId={props.objectId}\n visible={visible}\n title={text}\n aq={props.query}\n presetConfigs={{ query: presetQuery, fieldIds: props.fields }}\n permission={permission}\n selectedRowKeys={selectedInstances.valid.map(\n (instance) => instance.instanceId\n )}\n onSelected={handleInstancesSelected}\n singleSelect={props.singleSelect}\n onCancel={closeSelectInstancesModal}\n defaultQuery={props.defaultQuery}\n pageSize={props.pageSize}\n pageSizeOptions={props.pageSizeOptions}\n showSizeChanger={props.showSizeChanger}\n hideSearchConditions={props.hideSearchConditions}\n advancedSearchDisabled={props.advancedSearchDisabled}\n data-testid=\"select-modal\"\n />\n <div className={style.cmdbInstancesInputFormWrapper}>\n <Input\n data-testid=\"field-value-input\"\n className={style.fieldInput}\n onChange={handleInputChanged}\n value={inputValue}\n onFocus={() => setInputFocused(true)}\n onBlur={handleInputBlur}\n allowClear={props.allowClear}\n disabled={props.inputDisabled}\n />\n <Button\n className={style.modalButton}\n onClick={openSelectInstancesModal}\n disabled={props.addButtonDisabled}\n >\n {text}\n </Button>\n </div>\n {props.previewEnabled && (\n <>\n <InstanceListModal\n objectMap={props.objectMap}\n extraFilterBricks={props.extraFilterBricks}\n objectId={props.objectId}\n visible={previewVisible}\n title={t(K.VIEW_SPECIFIC_INSTANCES)}\n aq={selectedInstancesQuery}\n presetConfigs={{ query: presetQuery, fieldIds: props.fields }}\n permission={permission}\n onCancel={() => setPreviewVisible(false)}\n defaultQuery={props.defaultQuery}\n searchDisabled\n advancedSearchDisabled\n aliveHostsDisabled\n relatedToMeDisabled\n moreButtonsDisabled\n selectDisabled\n pageSize={props.pageSize}\n pageSizeOptions={props.pageSizeOptions}\n showSizeChanger={props.showSizeChanger}\n data-testid=\"preview-modal\"\n />\n <Button\n type=\"link\"\n size=\"small\"\n disabled={!selectedInstancesQuery || inputFocused}\n onClick={() => setPreviewVisible(true)}\n data-testid=\"preview-button\"\n >\n {t(K.VIEW_SPECIFIC_INSTANCES)}\n </Button>\n </>\n )}\n </div>\n );\n};\n\nexport const CmdbInstancesInputFormItem = forwardRef<\n HTMLDivElement,\n CmdbInstancesInputFormItemProps\n>(LegacyCmdbInstancesInputFormItem);\n"],"mappings":";;AAAA;;AAEA,OAAOA,KAAK,IAAIC,UAAU,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,OAAO,QAAQ,OAAO;AACvE,SAASC,KAAK,EAAEC,MAAM,EAAEC,KAAK,QAAQ,MAAM;AAC3C,SAASC,OAAO,EAAEC,GAAG,QAAQ,QAAQ;AAErC,SAASC,iBAAiB,QAAQ,0CAA0C;AAC5E,SAASC,eAAe,QAAe,uBAAuB;AAC9D,SAAqBC,sBAAsB,QAAQ,oBAAoB;AAEvE,SAASC,cAAc,QAAQ,eAAe;AAC9C,SAASC,sBAAsB,EAAEC,CAAC,QAAQ,mBAAmB;AAE7D,OAAOC,KAAK,MAAM,wCAAwC;AAG1D,IAAMC,SAAS,GAAG,GAAG;AAiCrB,OAAO,IAAMC,gCAAgC,GAAG,CAC9CC,KAAsC,EACtCC,GAA8B,KACP;EACvB,IAAM;IAAEC;EAAE,CAAC,GAAGR,cAAc,CAACC,sBAAsB,CAAC;EAEpD,IAAM;IAAEQ,WAAW;IAAEC;EAAW,CAAC,GAAGnB,OAAO,CAAC,MAAM;IAChD,IAAMkB,WAAW,GAAG,CAAC,CAAQ;IAC7B,IAAMC,UAAoB,GAAG,EAAE;IAE/B,IAAIJ,KAAK,CAACK,QAAQ,KAAK,MAAM,EAAE;MAC7B,IAAIL,KAAK,CAACM,gBAAgB,EAAE;QAC1BH,WAAW,CAACI,YAAY,GAAG,IAAI;MACjC;MACA,IAAIP,KAAK,CAACQ,eAAe,EAAE;QACzBJ,UAAU,CAACK,IAAI,CAAC,SAAS,CAAC;MAC5B;IACF;IAEA,OAAO;MAAEN,WAAW;MAAEC;IAAW,CAAC;EACpC,CAAC,EAAE,CAACJ,KAAK,CAACK,QAAQ,EAAEL,KAAK,CAACM,gBAAgB,EAAEN,KAAK,CAACQ,eAAe,CAAC,CAAC;EACnE,IAAME,MAAM,GAAGzB,OAAO,CAAC,MAAM;IAAA;IAC3B,qBAAIe,KAAK,CAACU,MAAM,0CAAZ,cAAcC,MAAM,EAAE;MACxB,IAAMD,OAA+B,GAAG,CAAC,CAAC;MAE1CV,KAAK,CAACU,MAAM,CAACE,OAAO,CAAEC,KAAK,IAAK;QAC9BH,OAAM,CAACG,KAAK,CAAC,GAAG,IAAI;MACtB,CAAC,CAAC;MAEF,OAAOH,OAAM;IACf;EACF,CAAC,EAAE,CAACV,KAAK,CAACU,MAAM,CAAC,CAAC;EAElB,IAAMI,UAAU,GAAGtB,eAAe,CAACQ,KAAK,CAACe,SAAS,CAACf,KAAK,CAACK,QAAQ,CAAC,CAAC;EACnE,IAAMW,SAAS,GAAGF,UAAU,CAACG,WAAW,CAACC,IAAI,CAC1CL,KAAK,IAAKA,KAAK,CAACM,IAAI,KAAKnB,KAAK,CAACoB,OAAO,CACxC;EAED,IAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAGvC,QAAQ,CAAC,KAAK,CAAC;EAC7C,IAAM,CAACwC,iBAAiB,EAAEC,oBAAoB,CAAC,GAAGzC,QAAQ,CAAC;IACzD0C,KAAK,EAAE,EAAE;IACTC,OAAO,EAAE;EACX,CAAC,CAAC;EACF,IAAM,CAACC,UAAU,EAAEC,aAAa,CAAC,GAAG7C,QAAQ,CAAC,EAAE,CAAC;EAChD,IAAM,CAAC8C,YAAY,EAAEC,eAAe,CAAC,GAAG/C,QAAQ,CAAC,KAAK,CAAC;EACvD,IAAM,CAACgD,cAAc,EAAEC,iBAAiB,CAAC,GAAGjD,QAAQ,CAAC,KAAK,CAAC;EAC3D,IAAMkD,sBAAsB,GAAGhD,OAAO,CACpC,MACEe,KAAK,CAACkC,cAAc,IAAIX,iBAAiB,CAACE,KAAK,CAACd,MAAM,GAAG,CAAC,GACtD;IAEIwB,UAAU,EAAE;MACVC,GAAG,EAAEb,iBAAiB,CAACE,KAAK,CAACnC,GAAG,CAC7B+C,QAAQ,IAAKA,QAAQ,CAACF,UAAU;IAErC;EAAC,GACEhC,WAAW,GAEhB,IAAIH,KAAK,CAACsC,KAAK,GAAGtC,KAAK,CAACsC,KAAK,GAAG,EAAE,CAAC,CACpC,GACDC,SAAS,EACf,CAAChB,iBAAiB,CAACE,KAAK,EAAEtB,WAAW,EAAEH,KAAK,CAACsC,KAAK,CAAC,CACpD;EAED,IAAME,sBAAsB;IAAA,6BAAG,WAC7BjB,iBAAwB,EACF;MACtB,IAAIA,iBAAiB,EAAE;QACrB,IAAMkB,SAAS,GAAG,OACVhD,sBAAsB,CAACO,KAAK,CAACK,QAAQ,EAAE;UAC3CqC,SAAS,EAAEnB,iBAAiB,CAACZ,MAAM;UACnC2B,KAAK;YACHH,UAAU,EAAE;cACVC,GAAG,EAAEb,iBAAiB,CAACjC,GAAG,CAAE+C,QAAQ,IAAKA,QAAQ,CAACF,UAAU;YAC9D;UAAC,GACEhC,WAAW,CACf;UACDC,UAAU;UACVM,MAAM,EAAEA,MAAM,IAAI;YAChByB,UAAU,EAAE,IAAI;YAChB,CAACnC,KAAK,CAACoB,OAAO,GAAG;UACnB;QACF,CAAC,CAAC,EACFuB,IAAI;QACN,IAAMC,aAAa,GAAG,IAAIC,GAAG,CAC3BJ,SAAS,CAACnD,GAAG,CAAE+C,QAAQ,IAAKA,QAAQ,CAACF,UAAU,CAAC,CACjD;QAED,IAAMW,oBAAoB,GAAGzD,OAAO,CAClCkC,iBAAiB,EAChBwB,gBAAgB,IAAKH,aAAa,CAACI,GAAG,CAACD,gBAAgB,CAACZ,UAAU,CAAC,CACrE;QAEDX,oBAAoB,CAAC;UACnBC,KAAK,EAAEqB,oBAAoB,CAACG,IAAI,IAAI,EAAE;UACtCvB,OAAO,EAAE,CAACoB,oBAAoB,CAACI,KAAK,IAAI,EAAE,EAAE5D,GAAG,CAC5C6D,uBAAuB,IAAKA,uBAAuB,CAACnD,KAAK,CAACoB,OAAO,CAAC;QAEvE,CAAC,CAAC;QAEF,OAAO0B,oBAAoB,CAACG,IAAI,GAAGH,oBAAoB,CAACG,IAAI,GAAG,EAAE;MACnE;IACF,CAAC;IAAA,gBAtCKT,sBAAsB;MAAA;IAAA;EAAA,GAsC3B;EAED,IAAMY,cAAc;IAAA,8BAAG,WAAOC,WAAqB,EAAqB;MACtE,IAAI9B,iBAAwB,GAAG,EAAE;MACjC,IAAI8B,WAAW,aAAXA,WAAW,eAAXA,WAAW,CAAE1C,MAAM,EAAE;QACvBY,iBAAiB,GAAG,OACZ9B,sBAAsB,CAACO,KAAK,CAACK,QAAQ,EAAE;UAC3CiD,IAAI,EAAE,CAAC;UACPZ,SAAS,EAAEW,WAAW,CAAC1C,MAAM;UAC7B2B,KAAK,EAAE;YACLH,UAAU,EAAE;cACVC,GAAG,EAAEiB;YACP;UACF,CAAC;UACD3C,MAAM,EAAEA,MAAM,IAAI;YAChByB,UAAU,EAAE,IAAI;YAChB,CAACnC,KAAK,CAACoB,OAAO,GAAG;UACnB;QACF,CAAC,CAAC,EACFuB,IAAI;MACR;MAEAf,aAAa,CACXL,iBAAiB,CACdjC,GAAG,CAAEiE,YAAY,IAAKA,YAAY,CAACvD,KAAK,CAACoB,OAAO,CAAC,CAAC,CAClDoC,IAAI,CAAC1D,SAAS,CAAC,CACnB;MAED,IAAI2C,SAAS,GAAGlB,iBAAiB;MACjC,IAAIA,iBAAiB,CAACZ,MAAM,EAAE;QAC5B,IAAI,CAACX,KAAK,CAACyD,aAAa,EAAE;UACxBhB,SAAS,SAASD,sBAAsB,CAACjB,iBAAiB,CAAC;QAC7D;MACF,CAAC,MAAM;QACLC,oBAAoB,CAAC;UAAEC,KAAK,EAAE,EAAE;UAAEC,OAAO,EAAE;QAAG,CAAC,CAAC;MAClD;MACA,OAAOe,SAAS;IAClB,CAAC;IAAA,gBAnCKW,cAAc;MAAA;IAAA;EAAA,GAmCnB;EAEDpE,SAAS,CAAC,MAAM;IACdoE,cAAc,CAACpD,KAAK,CAAC0D,KAAK,CAAC;EAC7B,CAAC,EAAE,CAAC1D,KAAK,CAAC0D,KAAK,CAAC,CAAC;EAEjB,IAAMC,YAAY,GAAIlB,SAAgB,IAAW;IAAA;IAC/C,mBAAAzC,KAAK,CAAC4D,QAAQ,oDAAd,qBAAA5D,KAAK,EAAYyC,SAAS,CAACnD,GAAG,CAAE+C,QAAQ,IAAKA,QAAQ,CAACF,UAAU,CAAC,CAAC;IAClE,oBAAAnC,KAAK,CAAC6D,UAAU,qDAAhB,sBAAA7D,KAAK,EAAcyC,SAAS,CAAC;EAC/B,CAAC;EAED,IAAMqB,gBAAgB;IAAA,8BAAG,WAAOC,WAAqB,EAAoB;MACvE,IAAIA,WAAW,EAAE;QACf,IAAMtB,SAAS,GAAG,OACVhD,sBAAsB,CAACO,KAAK,CAACK,QAAQ,EAAE;UAC3CiC,KAAK,EAAE;YACL0B,IAAI,EAAE;cAEF,CAAChE,KAAK,CAACoB,OAAO,GAAG;gBACfgB,GAAG,EAAE2B;cACP;YAAC,GACE5D,WAAW,GAEhB,IAAIH,KAAK,CAACsC,KAAK,GAAGtC,KAAK,CAACsC,KAAK,GAAG,EAAE,CAAC;UAEvC,CAAC;UACDlC,UAAU;UACVM,MAAM,EAAEA,MAAM,IAAI;YAChByB,UAAU,EAAE,IAAI;YAChB,CAACnC,KAAK,CAACoB,OAAO,GAAG;UACnB;QACF,CAAC,CAAC,EACFuB,IAAI;QAEN,IAAMsB,sBAAsB,GAAGxB,SAAS,CAACyB,MAAM,CAAE7B,QAAQ,IACvD0B,WAAW,CAACI,QAAQ,CAAC9B,QAAQ,CAACrC,KAAK,CAACoB,OAAO,CAAC,CAAC,CAC9C;QAED,IAAMgD,gBAAgB,GAAGH,sBAAsB,CAAC3E,GAAG,CAChD+C,QAAQ,IAAKA,QAAQ,CAACrC,KAAK,CAACoB,OAAO,CAAC,CACtC;QACD,IAAMiD,kBAAkB,GAAGN,WAAW,CAACG,MAAM,CAC1CI,UAAU,IAAK,CAACF,gBAAgB,CAACD,QAAQ,CAACG,UAAU,CAAC,CACvD;QAED9C,oBAAoB,CAAC;UACnBC,KAAK,EAAEwC,sBAAsB,IAAI,EAAE;UACnCvC,OAAO,EAAE2C,kBAAkB,IAAI;QACjC,CAAC,CAAC;QAEF,CAACA,kBAAkB,CAAC1D,MAAM,IAAIgD,YAAY,CAACM,sBAAsB,CAAC;MACpE;IACF,CAAC;IAAA,gBAzCKH,gBAAgB;MAAA;IAAA;EAAA,GAyCrB;EAED,IAAMS,eAAe;IAAA,8BAAG,WAAO5C,UAAkB,EAAoB;MACnE,IAAMoC,WAAW,GACf/D,KAAK,CAACoB,OAAO,KAAK,IAAI,GAClBO,UAAU,CAAC6C,KAAK,CACd,oHAAoH,CACrH,GACD7C,UAAU,CAAC8C,KAAK,CAAC3E,SAAS,CAAC;MAEjCgE,gBAAgB,CAACC,WAAW,CAAC;IAC/B,CAAC;IAAA,gBATKQ,eAAe;MAAA;IAAA;EAAA,GASpB;EAED,IAAMG,wBAAwB,GAAG,MAAY;IAC3CpD,UAAU,CAAC,IAAI,CAAC;EAClB,CAAC;EAED,IAAMqD,yBAAyB,GAAG,MAAY;IAC5CrD,UAAU,CAAC,KAAK,CAAC;EACnB,CAAC;EAED,IAAMsD,uBAAuB;IAAA,8BAAG,WAC9BC,YAAsB,EACJ;MAClBF,yBAAyB,EAAE;MAE3B,IAAMlC,SAAS,SAASW,cAAc,CAACyB,YAAY,CAAC;MAEpD,IAAI,CAAC7E,KAAK,CAACyD,aAAa,EAAE;QACxB,MAAMK,gBAAgB,CAACxE,GAAG,CAACmD,SAAS,EAAEzC,KAAK,CAACoB,OAAO,CAAC,CAAC;MACvD,CAAC,MAAM;QACLuC,YAAY,CAAClB,SAAS,CAAC;MACzB;IACF,CAAC;IAAA,gBAZKmC,uBAAuB;MAAA;IAAA;EAAA,GAY5B;EAED,IAAME,kBAAkB,GAAIC,KAAoC,IAAW;IACzEnD,aAAa,CAACmD,KAAK,CAACC,MAAM,CAACtB,KAAK,CAAC;EACnC,CAAC;EAED,IAAMuB,eAAe;IAAA,8BAAG,WAAOF,KAE9B,EAAoB;MACnB,IAAMpD,UAAU,GAAGoD,KAAK,CAACC,MAAM,CAACtB,KAAK;MACrC,IAAI/B,UAAU,EAAE;QACd,IAAI,CAAC3B,KAAK,CAACyD,aAAa,EAAE;UACxB,MAAMc,eAAe,CAAC5C,UAAU,CAAC;QACnC,CAAC,MAAM;UACL,IAAMoC,WAAW,GACf/D,KAAK,CAACoB,OAAO,KAAK,IAAI,GAClBO,UAAU,CAAC6C,KAAK,CACd,oHAAoH,CACrH,GACD7C,UAAU,CAAC8C,KAAK,CAAC3E,SAAS,CAAC;UAEjC,IAAM2C,SAAS,GAAG,OACVhD,sBAAsB,CAACO,KAAK,CAACK,QAAQ,EAAE;YAC3CiC,KAAK,EAAE;cACL0B,IAAI,EAAE,CACJ;gBACE,CAAChE,KAAK,CAACoB,OAAO,GAAG;kBACfgB,GAAG,EAAE2B;gBACP;cACF,CAAC,EACD,IAAI/D,KAAK,CAACsC,KAAK,GAAGtC,KAAK,CAACsC,KAAK,GAAG,EAAE,CAAC;YAEvC,CAAC;YACD5B,MAAM,EAAEA,MAAM,IAAI;cAChByB,UAAU,EAAE,IAAI;cAChB,CAACnC,KAAK,CAACoB,OAAO,GAAG;YACnB;UACF,CAAC,CAAC,EACFuB,IAAI;UAENnB,oBAAoB,CAAC;YACnBC,KAAK,EAAEgB,SAAS,IAAI,EAAE;YACtBf,OAAO,EAAE;UACX,CAAC,CAAC;UAEFiC,YAAY,CAAClB,SAAS,CAAC;QACzB;MACF,CAAC,MAAM;QACLjB,oBAAoB,CAAC;UACnBC,KAAK,EAAE,EAAE;UACTC,OAAO,EAAE;QACX,CAAC,CAAC;QAEFiC,YAAY,CAAC,EAAE,CAAC;MAClB;MAEA7B,eAAe,CAAC,KAAK,CAAC;IACxB,CAAC;IAAA,gBAnDKmD,eAAe;MAAA;IAAA;EAAA,GAmDpB;EAED,IAAMC,4BAA4B,GAAG,MAAY;IAAA;IAC/C1D,oBAAoB,CAAC;MACnBC,KAAK,EAAEF,iBAAiB,CAACE,KAAK;MAC9BC,OAAO,EAAE;IACX,CAAC,CAAC;IACFE,aAAa,CACXL,iBAAiB,CAACE,KAAK,CACpBnC,GAAG,CAAE+C,QAAQ,IAAKA,QAAQ,CAACrC,KAAK,CAACoB,OAAO,CAAC,CAAC,CAC1CoC,IAAI,CAAC1D,SAAS,CAAC,CACnB;IACD,oBAAAE,KAAK,CAAC4D,QAAQ,qDAAd,sBAAA5D,KAAK,EACHuB,iBAAiB,CAACE,KAAK,CAACnC,GAAG,CAAE+C,QAAQ,IAAKA,QAAQ,CAACF,UAAU,CAAC,CAC/D;EACH,CAAC;EAED,IAAMgD,IAAI,GAAGnF,KAAK,CAACoF,cAAc,GAC7BpF,KAAK,CAACoF,cAAc,GACpBlF,CAAC,CAACN,CAAC,CAACyF,gBAAgB,CAAC;EAEzB,oBACE;IAAK,GAAG,EAAEpF;EAAI,gBACZ,oBAAC,KAAK;IACJ,KAAK,EAAEC,CAAC,CAACN,CAAC,CAAC0F,GAAG,CAAE;IAChB,OAAO,EAAE/D,iBAAiB,CAACG,OAAO,CAACf,MAAM,KAAK,CAAE;IAChD,QAAQ,EAAE,KAAM;IAChB,YAAY,EAAE,KAAM;IACpB,MAAM,EAAE,cACN,oBAAC,MAAM;MACL,IAAI,EAAC,SAAS;MACd,GAAG,EAAC,QAAQ;MACZ,OAAO,EAAEuE;IAA6B,GAErChF,CAAC,CAACN,CAAC,CAAC2F,MAAM,CAAC,CACL,CACT;IACF,QAAQ,EAAEL;EAA6B,GAEtClF,KAAK,CAACK,QAAQ,KAAK,MAAM,IAAIL,KAAK,CAACoB,OAAO,KAAK,IAAI,aAC7ClB,CAAC,CAACN,CAAC,CAAC4F,wBAAwB,CAAC,SAAGjE,iBAAiB,CAACG,OAAO,CAAC8B,IAAI,CAC/D,IAAI,CACL,cACEtD,CAAC,CAACN,CAAC,CAAC6F,OAAO,CAAC,SAAGzE,SAAS,CAAC0E,IAAI,mBAAInE,iBAAiB,CAACG,OAAO,CAAC8B,IAAI,CAChE,IAAI,CACL,CAAE,CACD,eACR,oBAAC,iBAAiB;IAChB,SAAS,EAAExD,KAAK,CAACe,SAAU;IAC3B,iBAAiB,EAAEf,KAAK,CAAC2F,iBAAkB;IAC3C,QAAQ,EAAE3F,KAAK,CAACK,QAAS;IACzB,OAAO,EAAEgB,OAAQ;IACjB,KAAK,EAAE8D,IAAK;IACZ,EAAE,EAAEnF,KAAK,CAACsC,KAAM;IAChB,aAAa,EAAE;MAAEA,KAAK,EAAEnC,WAAW;MAAEyF,QAAQ,EAAE5F,KAAK,CAACU;IAAO,CAAE;IAC9D,UAAU,EAAEN,UAAW;IACvB,eAAe,EAAEmB,iBAAiB,CAACE,KAAK,CAACnC,GAAG,CACzC+C,QAAQ,IAAKA,QAAQ,CAACF,UAAU,CACjC;IACF,UAAU,EAAEyC,uBAAwB;IACpC,YAAY,EAAE5E,KAAK,CAAC6F,YAAa;IACjC,QAAQ,EAAElB,yBAA0B;IACpC,YAAY,EAAE3E,KAAK,CAAC8F,YAAa;IACjC,QAAQ,EAAE9F,KAAK,CAAC+F,QAAS;IACzB,eAAe,EAAE/F,KAAK,CAACgG,eAAgB;IACvC,eAAe,EAAEhG,KAAK,CAACiG,eAAgB;IACvC,oBAAoB,EAAEjG,KAAK,CAACkG,oBAAqB;IACjD,sBAAsB,EAAElG,KAAK,CAACmG,sBAAuB;IACrD,eAAY;EAAc,EAC1B,eACF;IAAK,SAAS,EAAEtG,KAAK,CAACuG;EAA8B,gBAClD,oBAAC,KAAK;IACJ,eAAY,mBAAmB;IAC/B,SAAS,EAAEvG,KAAK,CAACwG,UAAW;IAC5B,QAAQ,EAAEvB,kBAAmB;IAC7B,KAAK,EAAEnD,UAAW;IAClB,OAAO,EAAE,MAAMG,eAAe,CAAC,IAAI,CAAE;IACrC,MAAM,EAAEmD,eAAgB;IACxB,UAAU,EAAEjF,KAAK,CAACsG,UAAW;IAC7B,QAAQ,EAAEtG,KAAK,CAACuG;EAAc,EAC9B,eACF,oBAAC,MAAM;IACL,SAAS,EAAE1G,KAAK,CAAC2G,WAAY;IAC7B,OAAO,EAAE9B,wBAAyB;IAClC,QAAQ,EAAE1E,KAAK,CAACyG;EAAkB,GAEjCtB,IAAI,CACE,CACL,EACLnF,KAAK,CAACkC,cAAc,iBACnB,uDACE,oBAAC,iBAAiB;IAChB,SAAS,EAAElC,KAAK,CAACe,SAAU;IAC3B,iBAAiB,EAAEf,KAAK,CAAC2F,iBAAkB;IAC3C,QAAQ,EAAE3F,KAAK,CAACK,QAAS;IACzB,OAAO,EAAE0B,cAAe;IACxB,KAAK,EAAE7B,CAAC,CAACN,CAAC,CAAC8G,uBAAuB,CAAE;IACpC,EAAE,EAAEzE,sBAAuB;IAC3B,aAAa,EAAE;MAAEK,KAAK,EAAEnC,WAAW;MAAEyF,QAAQ,EAAE5F,KAAK,CAACU;IAAO,CAAE;IAC9D,UAAU,EAAEN,UAAW;IACvB,QAAQ,EAAE,MAAM4B,iBAAiB,CAAC,KAAK,CAAE;IACzC,YAAY,EAAEhC,KAAK,CAAC8F,YAAa;IACjC,cAAc;IACd,sBAAsB;IACtB,kBAAkB;IAClB,mBAAmB;IACnB,mBAAmB;IACnB,cAAc;IACd,QAAQ,EAAE9F,KAAK,CAAC+F,QAAS;IACzB,eAAe,EAAE/F,KAAK,CAACgG,eAAgB;IACvC,eAAe,EAAEhG,KAAK,CAACiG,eAAgB;IACvC,eAAY;EAAe,EAC3B,eACF,oBAAC,MAAM;IACL,IAAI,EAAC,MAAM;IACX,IAAI,EAAC,OAAO;IACZ,QAAQ,EAAE,CAAChE,sBAAsB,IAAIJ,YAAa;IAClD,OAAO,EAAE,MAAMG,iBAAiB,CAAC,IAAI,CAAE;IACvC,eAAY;EAAgB,GAE3B9B,CAAC,CAACN,CAAC,CAAC8G,uBAAuB,CAAC,CACtB,CAEZ,CACG;AAEV,CAAC;AAED,OAAO,IAAMC,0BAA0B,gBAAG7H,UAAU,CAGlDiB,gCAAgC,CAAC"}
|
|
1
|
+
{"version":3,"file":"CmdbInstancesInputFormItem.js","names":["React","forwardRef","useState","useEffect","useMemo","Input","Button","Modal","groupBy","map","InstanceListModal","modifyModelData","InstanceApi_postSearch","useTranslation","NS_LIBS_CMDB_INSTANCES","K","style","separator","LegacyCmdbInstancesInputFormItem","props","ref","t","presetQuery","permission","objectId","checkAgentStatus","_agentStatus","checkPermission","push","fields","length","forEach","field","objectData","objectMap","fieldData","__fieldList","find","__id","fieldId","visible","setVisible","selectedInstances","setSelectedInstances","valid","invalid","inputValue","setInputValue","inputFocused","setInputFocused","previewVisible","setPreviewVisible","selectedInstancesQuery","previewEnabled","instanceId","$in","instance","query","undefined","checkSelectedInstances","instances","page_size","list","instanceIdSet","Set","selectedInstancesMap","selectedInstance","has","true","false","invalidSelectedInstance","updateSelected","instanceIds","page","instanceData","join","checkDisabled","value","handleChange","onChange","onChangeV2","checkFieldValues","fieldValues","$and","validSelectedInstances","filter","includes","validFieldValues","invalidFieldValues","fieldValue","checkInputValue","match","split","openSelectInstancesModal","closeSelectInstancesModal","handleInstancesSelected","selectedKeys","handleInputChanged","event","target","handleInputBlur","closeInvalidFieldValuesModal","text","selectFromText","SELECT_FROM_CMDB","TIP","DELETE","INVALID_OR_FORBIDDEN_IPS","INVALID","name","extraFilterBricks","fieldIds","singleSelect","defaultQuery","pageSize","pageSizeOptions","showSizeChanger","hideSearchConditions","advancedSearchDisabled","saveFieldsBackend","cmdbInstancesInputFormWrapper","fieldInput","allowClear","inputDisabled","modalButton","addButtonDisabled","VIEW_SPECIFIC_INSTANCES","CmdbInstancesInputFormItem"],"sources":["../../../src/cmdb-instances-input-form/CmdbInstancesInputFormItem.tsx"],"sourcesContent":["/* eslint-disable react-hooks/exhaustive-deps */\n\nimport React, { forwardRef, useState, useEffect, useMemo } from \"react\";\nimport { Input, Button, Modal } from \"antd\";\nimport { groupBy, map } from \"lodash\";\n\nimport { InstanceListModal } from \"../instance-list-modal/InstanceListModal\";\nimport { modifyModelData, Query } from \"@next-libs/cmdb-utils\";\nimport { CmdbModels, InstanceApi_postSearch } from \"@next-sdk/cmdb-sdk\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { NS_LIBS_CMDB_INSTANCES, K } from \"../i18n/constants\";\n\nimport style from \"./cmdb-instances-input-form.module.css\";\nimport { UseBrickConf } from \"@next-core/brick-types\";\n\nconst separator = \" \";\n\nexport interface CmdbInstancesInputFormItemProps {\n selectFromText?: string;\n objectMap?: { [objectId: string]: Partial<CmdbModels.ModelCmdbObject> };\n objectId?: string;\n fieldId?: string;\n fields?: string[];\n singleSelect?: boolean;\n inputDisabled?: boolean;\n checkDisabled?: boolean;\n checkAgentStatus?: boolean;\n checkPermission?: boolean;\n selectedInstanceIds?: string[];\n value?: string[];\n children?: React.ReactNode;\n query?: { [fieldId: string]: any }[];\n onChange?: (value: string[]) => void;\n onChangeV2?: (value: any[]) => void;\n allowClear?: boolean;\n defaultQuery?: { [fieldId: string]: any }[];\n addButtonDisabled?: boolean;\n previewEnabled?: boolean;\n pageSize?: number;\n pageSizeOptions?: string[];\n showSizeChanger?: boolean;\n hideSearchConditions?: boolean;\n advancedSearchDisabled?: boolean;\n extraFilterBricks?: {\n useBrick: UseBrickConf;\n };\n saveFieldsBackend?: boolean;\n}\n\nexport const LegacyCmdbInstancesInputFormItem = (\n props: CmdbInstancesInputFormItemProps,\n ref: React.Ref<HTMLDivElement>\n): React.ReactElement => {\n const { t } = useTranslation(NS_LIBS_CMDB_INSTANCES);\n\n const { presetQuery, permission } = useMemo(() => {\n const presetQuery = {} as any;\n const permission: string[] = [];\n\n if (props.objectId === \"HOST\") {\n if (props.checkAgentStatus) {\n presetQuery._agentStatus = \"正常\";\n }\n if (props.checkPermission) {\n permission.push(\"operate\");\n }\n }\n\n return { presetQuery, permission };\n }, [props.objectId, props.checkAgentStatus, props.checkPermission]);\n const fields = useMemo(() => {\n if (props.fields?.length) {\n const fields: Record<string, boolean> = {};\n\n props.fields.forEach((field) => {\n fields[field] = true;\n });\n\n return fields;\n }\n }, [props.fields]);\n\n const objectData = modifyModelData(props.objectMap[props.objectId]);\n const fieldData = objectData.__fieldList.find(\n (field) => field.__id === props.fieldId\n );\n\n const [visible, setVisible] = useState(false);\n const [selectedInstances, setSelectedInstances] = useState({\n valid: [],\n invalid: [],\n });\n const [inputValue, setInputValue] = useState(\"\");\n const [inputFocused, setInputFocused] = useState(false);\n const [previewVisible, setPreviewVisible] = useState(false);\n const selectedInstancesQuery = useMemo<Query[]>(\n () =>\n props.previewEnabled && selectedInstances.valid.length > 0\n ? [\n {\n instanceId: {\n $in: selectedInstances.valid.map(\n (instance) => instance.instanceId\n ),\n },\n ...presetQuery,\n },\n ...(props.query ? props.query : []),\n ]\n : undefined,\n [selectedInstances.valid, presetQuery, props.query]\n );\n\n const checkSelectedInstances = async (\n selectedInstances: any[]\n ): Promise<string[]> => {\n if (selectedInstances) {\n const instances = (\n await InstanceApi_postSearch(props.objectId, {\n page_size: selectedInstances.length,\n query: {\n instanceId: {\n $in: selectedInstances.map((instance) => instance.instanceId),\n },\n ...presetQuery,\n },\n permission,\n fields: fields || {\n instanceId: true,\n [props.fieldId]: true,\n },\n })\n ).list;\n const instanceIdSet = new Set(\n instances.map((instance) => instance.instanceId)\n );\n\n const selectedInstancesMap = groupBy(\n selectedInstances,\n (selectedInstance) => instanceIdSet.has(selectedInstance.instanceId)\n );\n\n setSelectedInstances({\n valid: selectedInstancesMap.true || [],\n invalid: (selectedInstancesMap.false || []).map(\n (invalidSelectedInstance) => invalidSelectedInstance[props.fieldId]\n ),\n });\n\n return selectedInstancesMap.true ? selectedInstancesMap.true : [];\n }\n };\n\n const updateSelected = async (instanceIds: string[]): Promise<any[]> => {\n let selectedInstances: any[] = [];\n if (instanceIds?.length) {\n selectedInstances = (\n await InstanceApi_postSearch(props.objectId, {\n page: 1,\n page_size: instanceIds.length,\n query: {\n instanceId: {\n $in: instanceIds,\n },\n },\n fields: fields || {\n instanceId: true,\n [props.fieldId]: true,\n },\n })\n ).list;\n }\n\n setInputValue(\n selectedInstances\n .map((instanceData) => instanceData[props.fieldId])\n .join(separator)\n );\n\n let instances = selectedInstances;\n if (selectedInstances.length) {\n if (!props.checkDisabled) {\n instances = await checkSelectedInstances(selectedInstances);\n }\n } else {\n setSelectedInstances({ valid: [], invalid: [] });\n }\n return instances;\n };\n\n useEffect(() => {\n updateSelected(props.value);\n }, [props.value]);\n\n const handleChange = (instances: any[]): void => {\n props.onChange?.(instances.map((instance) => instance.instanceId));\n props.onChangeV2?.(instances);\n };\n\n const checkFieldValues = async (fieldValues: string[]): Promise<void> => {\n if (fieldValues) {\n const instances = (\n await InstanceApi_postSearch(props.objectId, {\n query: {\n $and: [\n {\n [props.fieldId]: {\n $in: fieldValues,\n },\n ...presetQuery,\n },\n ...(props.query ? props.query : []),\n ],\n },\n permission,\n fields: fields || {\n instanceId: true,\n [props.fieldId]: true,\n },\n })\n ).list;\n\n const validSelectedInstances = instances.filter((instance) =>\n fieldValues.includes(instance[props.fieldId])\n );\n\n const validFieldValues = validSelectedInstances.map(\n (instance) => instance[props.fieldId]\n );\n const invalidFieldValues = fieldValues.filter(\n (fieldValue) => !validFieldValues.includes(fieldValue)\n );\n\n setSelectedInstances({\n valid: validSelectedInstances || [],\n invalid: invalidFieldValues || [],\n });\n\n !invalidFieldValues.length && handleChange(validSelectedInstances);\n }\n };\n\n const checkInputValue = async (inputValue: string): Promise<void> => {\n const fieldValues =\n props.fieldId === \"ip\"\n ? inputValue.match(\n /\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b(?:\\[[^[\\],;\\s]*\\])?/g\n )\n : inputValue.split(separator);\n\n checkFieldValues(fieldValues);\n };\n\n const openSelectInstancesModal = (): void => {\n setVisible(true);\n };\n\n const closeSelectInstancesModal = (): void => {\n setVisible(false);\n };\n\n const handleInstancesSelected = async (\n selectedKeys: string[]\n ): Promise<void> => {\n closeSelectInstancesModal();\n\n const instances = await updateSelected(selectedKeys);\n\n if (!props.checkDisabled) {\n await checkFieldValues(map(instances, props.fieldId));\n } else {\n handleChange(instances);\n }\n };\n\n const handleInputChanged = (event: { target: { value: string } }): void => {\n setInputValue(event.target.value);\n };\n\n const handleInputBlur = async (event: {\n target: { value: string };\n }): Promise<void> => {\n const inputValue = event.target.value;\n if (inputValue) {\n if (!props.checkDisabled) {\n await checkInputValue(inputValue);\n } else {\n const fieldValues =\n props.fieldId === \"ip\"\n ? inputValue.match(\n /\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b(?:\\[[^[\\],;\\s]*\\])?/g\n )\n : inputValue.split(separator);\n\n const instances = (\n await InstanceApi_postSearch(props.objectId, {\n query: {\n $and: [\n {\n [props.fieldId]: {\n $in: fieldValues,\n },\n },\n ...(props.query ? props.query : []),\n ],\n },\n fields: fields || {\n instanceId: true,\n [props.fieldId]: true,\n },\n })\n ).list;\n\n setSelectedInstances({\n valid: instances || [],\n invalid: [],\n });\n\n handleChange(instances);\n }\n } else {\n setSelectedInstances({\n valid: [],\n invalid: [],\n });\n\n handleChange([]);\n }\n\n setInputFocused(false);\n };\n\n const closeInvalidFieldValuesModal = (): void => {\n setSelectedInstances({\n valid: selectedInstances.valid,\n invalid: [],\n });\n setInputValue(\n selectedInstances.valid\n .map((instance) => instance[props.fieldId])\n .join(separator)\n );\n props.onChange?.(\n selectedInstances.valid.map((instance) => instance.instanceId)\n );\n };\n\n const text = props.selectFromText\n ? props.selectFromText\n : t(K.SELECT_FROM_CMDB);\n\n return (\n <div ref={ref}>\n <Modal\n title={t(K.TIP)}\n visible={selectedInstances.invalid.length !== 0}\n closable={false}\n maskClosable={false}\n footer={[\n <Button\n type=\"primary\"\n key=\"delete\"\n onClick={closeInvalidFieldValuesModal}\n >\n {t(K.DELETE)}\n </Button>,\n ]}\n onCancel={closeInvalidFieldValuesModal}\n >\n {props.objectId === \"HOST\" && props.fieldId === \"ip\"\n ? `${t(K.INVALID_OR_FORBIDDEN_IPS)}${selectedInstances.invalid.join(\n \", \"\n )}`\n : `${t(K.INVALID)}${fieldData.name}:${selectedInstances.invalid.join(\n \", \"\n )}`}\n </Modal>\n <InstanceListModal\n objectMap={props.objectMap}\n extraFilterBricks={props.extraFilterBricks}\n objectId={props.objectId}\n visible={visible}\n title={text}\n aq={props.query}\n presetConfigs={{ query: presetQuery, fieldIds: props.fields }}\n permission={permission}\n selectedRowKeys={selectedInstances.valid.map(\n (instance) => instance.instanceId\n )}\n onSelected={handleInstancesSelected}\n singleSelect={props.singleSelect}\n onCancel={closeSelectInstancesModal}\n defaultQuery={props.defaultQuery}\n pageSize={props.pageSize}\n pageSizeOptions={props.pageSizeOptions}\n showSizeChanger={props.showSizeChanger}\n hideSearchConditions={props.hideSearchConditions}\n advancedSearchDisabled={props.advancedSearchDisabled}\n data-testid=\"select-modal\"\n saveFieldsBackend={props.saveFieldsBackend}\n />\n <div className={style.cmdbInstancesInputFormWrapper}>\n <Input\n data-testid=\"field-value-input\"\n className={style.fieldInput}\n onChange={handleInputChanged}\n value={inputValue}\n onFocus={() => setInputFocused(true)}\n onBlur={handleInputBlur}\n allowClear={props.allowClear}\n disabled={props.inputDisabled}\n />\n <Button\n className={style.modalButton}\n onClick={openSelectInstancesModal}\n disabled={props.addButtonDisabled}\n >\n {text}\n </Button>\n </div>\n {props.previewEnabled && (\n <>\n <InstanceListModal\n objectMap={props.objectMap}\n extraFilterBricks={props.extraFilterBricks}\n objectId={props.objectId}\n visible={previewVisible}\n title={t(K.VIEW_SPECIFIC_INSTANCES)}\n aq={selectedInstancesQuery}\n presetConfigs={{ query: presetQuery, fieldIds: props.fields }}\n permission={permission}\n onCancel={() => setPreviewVisible(false)}\n defaultQuery={props.defaultQuery}\n searchDisabled\n advancedSearchDisabled\n aliveHostsDisabled\n relatedToMeDisabled\n moreButtonsDisabled\n selectDisabled\n pageSize={props.pageSize}\n pageSizeOptions={props.pageSizeOptions}\n showSizeChanger={props.showSizeChanger}\n data-testid=\"preview-modal\"\n />\n <Button\n type=\"link\"\n size=\"small\"\n disabled={!selectedInstancesQuery || inputFocused}\n onClick={() => setPreviewVisible(true)}\n data-testid=\"preview-button\"\n >\n {t(K.VIEW_SPECIFIC_INSTANCES)}\n </Button>\n </>\n )}\n </div>\n );\n};\n\nexport const CmdbInstancesInputFormItem = forwardRef<\n HTMLDivElement,\n CmdbInstancesInputFormItemProps\n>(LegacyCmdbInstancesInputFormItem);\n"],"mappings":"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"}
|
|
@@ -196,7 +196,8 @@ export function CmdbInstancesSelectPanel(props, ref) {
|
|
|
196
196
|
showCloseBtn: props.showCloseBtn,
|
|
197
197
|
showSizeChanger: props.showSizeChanger,
|
|
198
198
|
pageSizeOptions: props.pageSizeOptions,
|
|
199
|
-
aq: props.aq
|
|
199
|
+
aq: props.aq,
|
|
200
|
+
saveFieldsBackend: props.saveFieldsBackend
|
|
200
201
|
}), /*#__PURE__*/React.createElement(InstanceListModal, {
|
|
201
202
|
objectMap: modelMap,
|
|
202
203
|
objectId: props.objectId,
|
|
@@ -220,7 +221,8 @@ export function CmdbInstancesSelectPanel(props, ref) {
|
|
|
220
221
|
pageSize: props.addInstancesModalPageSize,
|
|
221
222
|
showSizeChanger: props.showSizeChanger,
|
|
222
223
|
pageSizeOptions: props.pageSizeOptions,
|
|
223
|
-
onCancel: closeAllSelectedInstancesModal
|
|
224
|
+
onCancel: closeAllSelectedInstancesModal,
|
|
225
|
+
saveFieldsBackend: props.saveFieldsBackend
|
|
224
226
|
}), /*#__PURE__*/React.createElement(Spin, {
|
|
225
227
|
style: {
|
|
226
228
|
textAlign: "left",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CmdbInstancesSelectPanel.js","names":["React","useState","useEffect","classnames","InstanceApi_postSearch","CmdbObjectApi_getObjectRef","InstanceListTable","InstanceListModal","modifyModelData","style","i18n","K","NS_LIBS_CMDB_INSTANCES","keyBy","isEqual","isNil","isObject","isEmpty","Spin","isCmdbInstancesSelectPanelPropsWithObjectMap","props","objectMap","CmdbInstancesSelectPanel","ref","modelData","objectId","isFilterView","hideModelData","view","hide_columns","attrList","filter","item","includes","id","relation_list","left_id","left_object_id","right_id","right_object_id","displayedSelectedInstancesMaxNumber","previewMaxNumber","selectedInstanceList","setSelectedInstanceList","partialSelectedInstances","setPartialSelectedInstances","addInstancesModal","setAddInstancesModal","visible","allSelectedInstancesModal","setAllSelectedInstancesModal","modelMap","setModelMap","fetchInstances","instanceIdList","instances","length","query","instanceId","$in","page","page_size","fields","reduce","prev","next","list","toLoadInstanceIds","value","map","i","getModelMap","data","ref_object","initInstances","isOperate","slice","onFetchedInstances","sort","join","openAddInstancesModal","closeAddInstancesModal","openAllSelectedInstancesModal","closeAllSelectedInstancesModal","handleInstancesSelected","selectedKeys","onChange","fieldIds","attr","showPreview","cs","selectedInstancesTableWrapper","withPreview","relation","relationLimit","right_max","$size","$lt","instanceQuery","wrapper","modalTitle","t","FILTER_FROM_CMDB","name","instance","singleSelect","showBindButton","bindButtonDisabled","bindButtonText","bindEvent","addInstancesModalPageSize","searchDisabled","advancedSearchDisabled","ipCopy","showCloseBtn","showSizeChanger","pageSizeOptions","aq","VIEW_ALL_SELECTED_INSTANCES","textAlign","marginBottom","addButton","addTitle","CHOOSE_INSTANCE","showDetailUrl","detailUrlTemplates","showPagination","pagination","v","showAllSelectedInstancesButton","VIEW_ALL_DATA","count"],"sources":["../../../src/cmdb-instances-select-panel/CmdbInstancesSelectPanel.tsx"],"sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport classnames from \"classnames\";\n\nimport {\n CmdbModels,\n InstanceApi_postSearch,\n CmdbObjectApi_getObjectRef,\n} from \"@next-sdk/cmdb-sdk\";\nimport { InstanceListTable } from \"../instance-list-table\";\nimport { InstanceListModal } from \"../instance-list-modal/InstanceListModal\";\nimport {\n modifyModelData,\n ModifiedModelObjectRelation,\n Query,\n} from \"@next-libs/cmdb-utils\";\nimport style from \"./style.module.css\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport { keyBy, isEqual, isNil, isObject, isEmpty } from \"lodash\";\nimport { Spin } from \"antd\";\n\nexport interface BaseCmdbInstancesSelectPanelProps {\n objectId: string;\n value?: any[];\n onChange?: (instanceList: any[]) => void;\n instanceQuery?: any;\n fields?: string[];\n singleSelect?: boolean;\n showBindButton?: boolean;\n bindButtonDisabled?: boolean;\n bindButtonText?: string;\n bindEvent?: () => void;\n addTitle?: React.ReactNode | string;\n modalTitle?: React.ReactNode | string;\n previewMaxNumber?: number;\n addInstancesModalPageSize?: number;\n showSizeChanger?: boolean;\n pageSizeOptions?: string[];\n isOperate?: boolean; //cmdb实例列表支持删除实例\n showDetailUrl?: boolean;\n isFilterView?: boolean; //是否过滤视图属性\n onFetchedInstances?: (instanceList: any[]) => void; // objectId改变后触发\n relation?: Partial<ModifiedModelObjectRelation>;\n searchDisabled?: boolean;\n advancedSearchDisabled?: boolean;\n showPagination?: boolean;\n aq?: Query[];\n}\n\nexport interface CmdbInstancesSelectPanelPropsWithObjectMap\n extends BaseCmdbInstancesSelectPanelProps {\n objectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>;\n ipCopy?: boolean;\n showSizeChanger?: boolean;\n showCloseBtn?: boolean;\n pageSizeOptions?: string[];\n}\n\nexport interface CmdbInstancesSelectPanelPropsWithModelData\n extends BaseCmdbInstancesSelectPanelProps {\n modelData: Partial<CmdbModels.ModelCmdbObject>;\n ipCopy?: boolean;\n showSizeChanger?: boolean;\n showCloseBtn?: boolean;\n pageSizeOptions?: string[];\n}\n\nexport type CmdbInstancesSelectPanelProps =\n | CmdbInstancesSelectPanelPropsWithObjectMap\n | CmdbInstancesSelectPanelPropsWithModelData;\n\nexport function isCmdbInstancesSelectPanelPropsWithObjectMap(\n props: CmdbInstancesSelectPanelProps\n): props is CmdbInstancesSelectPanelPropsWithObjectMap {\n return !isNil(\n (props as CmdbInstancesSelectPanelPropsWithObjectMap).objectMap\n );\n}\n\nexport function CmdbInstancesSelectPanel(\n props: CmdbInstancesSelectPanelProps,\n ref: any\n): React.ReactElement {\n let modelData: Partial<CmdbModels.ModelCmdbObject>;\n if (isCmdbInstancesSelectPanelPropsWithObjectMap(props)) {\n modelData = props.objectMap[props.objectId];\n } else {\n modelData = props.modelData;\n }\n\n if (props.isFilterView) {\n //过滤掉视图不可见字段\n const hideModelData = modelData?.view?.hide_columns || [];\n modelData = {\n ...modelData,\n attrList: modelData.attrList.filter(\n (item: any) => !hideModelData.includes(item.id)\n ),\n relation_list: modelData.relation_list.filter(\n (item: any) =>\n !(\n (hideModelData.includes(item.left_id) &&\n item.left_object_id === props.objectId) ||\n (hideModelData.includes(item.right_id) &&\n item.right_object_id === props.objectId)\n )\n ),\n };\n }\n\n const displayedSelectedInstancesMaxNumber = props.previewMaxNumber ?? 5;\n\n const [selectedInstanceList, setSelectedInstanceList] = useState([]);\n const [partialSelectedInstances, setPartialSelectedInstances] = useState([]);\n // const [instanceTableData, setInstanceTableData] = useState({list: []})\n const [addInstancesModal, setAddInstancesModal] = useState({\n visible: false,\n });\n const [allSelectedInstancesModal, setAllSelectedInstancesModal] = useState({\n visible: false,\n });\n const [modelMap, setModelMap] = useState({});\n\n const fetchInstances = async (instanceIdList: string[]): Promise<any[]> => {\n let instances: any[] = [];\n if (instanceIdList?.length) {\n instances = (\n await InstanceApi_postSearch(props.objectId, {\n query: {\n instanceId: {\n $in: instanceIdList,\n },\n },\n page: 1,\n page_size: instanceIdList.length,\n // todo(ice): selected confirm with instances\n fields: props.fields?.length\n ? props.fields.reduce(\n (prev, next) => ({ ...prev, [next]: true }),\n {}\n )\n : { \"*\": true },\n })\n ).list;\n }\n\n return instances;\n };\n const toLoadInstanceIds =\n props.value?.map((i) => (isObject(i) ? (i as any).instanceId : i)) || [];\n\n useEffect(() => {\n const getModelMap = async (): Promise<void> => {\n let modelMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>;\n\n if (isCmdbInstancesSelectPanelPropsWithObjectMap(props)) {\n modelMap = props.objectMap;\n } else {\n const { data } = await CmdbObjectApi_getObjectRef({\n ref_object: props.objectId,\n });\n modelMap = keyBy(data, \"objectId\");\n }\n setModelMap(modelMap);\n };\n getModelMap();\n }, [props.objectId]);\n\n useEffect(() => {\n let instances = [];\n\n const initInstances = async (): Promise<void> => {\n instances = await fetchInstances(toLoadInstanceIds);\n setSelectedInstanceList(instances);\n setPartialSelectedInstances(\n props?.isOperate\n ? instances\n : instances.slice(0, displayedSelectedInstancesMaxNumber)\n );\n props.onFetchedInstances?.(instances);\n };\n if (!isEmpty(toLoadInstanceIds)) {\n initInstances();\n } else {\n setSelectedInstanceList([]);\n setPartialSelectedInstances([]);\n }\n }, [toLoadInstanceIds.sort().join()]);\n const openAddInstancesModal = () => {\n setAddInstancesModal({ visible: true });\n };\n\n const closeAddInstancesModal = () => {\n setAddInstancesModal({ visible: false });\n };\n\n const openAllSelectedInstancesModal = () => {\n setAllSelectedInstancesModal({ visible: true });\n };\n\n const closeAllSelectedInstancesModal = () => {\n setAllSelectedInstancesModal({ visible: false });\n };\n\n const handleInstancesSelected = async (selectedKeys: string[]) => {\n closeAddInstancesModal();\n\n const instances = await fetchInstances(selectedKeys);\n setSelectedInstanceList(instances);\n setPartialSelectedInstances(\n props?.isOperate\n ? instances\n : instances.slice(0, displayedSelectedInstancesMaxNumber)\n );\n props.onChange?.(instances);\n };\n\n const fieldIds = modifyModelData(modelData).attrList.map(\n (attr: any) => attr.id\n );\n const showPreview =\n selectedInstanceList.length > displayedSelectedInstancesMaxNumber;\n const cs = classnames({\n [style.selectedInstancesTableWrapper]: true,\n [style.withPreview]: showPreview,\n });\n const { relation } = props;\n let relationLimit;\n if (relation?.right_max === 1) {\n relationLimit = { [relation.right_id]: { $size: { $lt: 1 } } };\n }\n const query = props.instanceQuery ?? relationLimit;\n return (\n <div className={style.wrapper} ref={ref}>\n <InstanceListModal\n objectMap={modelMap}\n objectId={props.objectId}\n visible={addInstancesModal.visible}\n title={\n props.modalTitle ??\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FILTER_FROM_CMDB}`, {\n name: modelData.name,\n })\n }\n selectedRowKeys={selectedInstanceList.map(\n (instance) => instance.instanceId\n )}\n onSelected={handleInstancesSelected}\n onCancel={closeAddInstancesModal}\n singleSelect={props.singleSelect}\n presetConfigs={{\n query,\n fieldIds: props.fields,\n }}\n showBindButton={props.showBindButton}\n bindButtonDisabled={props.bindButtonDisabled}\n bindButtonText={props.bindButtonText}\n bindEvent={props.bindEvent}\n pageSize={props.addInstancesModalPageSize}\n searchDisabled={props.searchDisabled}\n advancedSearchDisabled={props.advancedSearchDisabled}\n ipCopy={props.ipCopy}\n showCloseBtn={props.showCloseBtn}\n showSizeChanger={props.showSizeChanger}\n pageSizeOptions={props.pageSizeOptions}\n aq={props.aq}\n />\n <InstanceListModal\n objectMap={modelMap}\n objectId={props.objectId}\n visible={allSelectedInstancesModal.visible}\n showBindButton={props.showBindButton}\n bindButtonDisabled={props.bindButtonDisabled}\n bindButtonText={props.bindButtonText}\n bindEvent={props.bindEvent}\n title={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.VIEW_ALL_SELECTED_INSTANCES}`\n )}\n presetConfigs={{\n query: {\n instanceId: {\n $in: selectedInstanceList.map((instance) => instance.instanceId),\n },\n },\n fieldIds: props.fields,\n }}\n selectDisabled={!props.ipCopy}\n ipCopy={props.ipCopy}\n showCloseBtn={props.ipCopy ? true : props.showCloseBtn}\n pageSize={props.addInstancesModalPageSize}\n showSizeChanger={props.showSizeChanger}\n pageSizeOptions={props.pageSizeOptions}\n onCancel={closeAllSelectedInstancesModal}\n />\n <Spin\n style={{ textAlign: \"left\", marginBottom: \"12px\" }}\n spinning={isEqual(modelMap, {})}\n >\n <a\n className={style.addButton}\n style={{\n marginBottom: \"12px\",\n }}\n onClick={openAddInstancesModal}\n >\n {props.addTitle ??\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CHOOSE_INSTANCE}`)}\n </a>\n </Spin>\n <div className={cs}>\n <InstanceListTable\n {...(props.showDetailUrl\n ? {\n detailUrlTemplates: {\n [props.objectId]:\n \"/next-cmdb-instance-management/next/#{objectId}/instance/#{instanceId}\",\n },\n }\n : {})}\n idObjectMap={modelMap}\n modelData={modelData}\n instanceListData={{ list: partialSelectedInstances }}\n fieldIds={props.fields || fieldIds}\n selectDisabled={true}\n sortDisabled={true}\n configProps={\n props.showPagination && partialSelectedInstances.length > 10\n ? { pagination: { showSizeChanger: true } }\n : { pagination: false }\n }\n //\n isOperate={props.isOperate}\n handleDeleteFunction={(v) => {\n setSelectedInstanceList(v);\n setPartialSelectedInstances(v);\n props.onChange?.(v);\n }}\n target={\"_blank\"}\n ></InstanceListTable>\n {!props?.isOperate && showPreview && (\n <div\n className={style.showAllSelectedInstancesButton}\n onClick={openAllSelectedInstancesModal}\n >\n <a>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.VIEW_ALL_DATA}`, {\n count: selectedInstanceList.length,\n })}\n </a>\n </div>\n )}\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CmdbInstancesSelectPanel.js","names":["React","useState","useEffect","classnames","InstanceApi_postSearch","CmdbObjectApi_getObjectRef","InstanceListTable","InstanceListModal","modifyModelData","style","i18n","K","NS_LIBS_CMDB_INSTANCES","keyBy","isEqual","isNil","isObject","isEmpty","Spin","isCmdbInstancesSelectPanelPropsWithObjectMap","props","objectMap","CmdbInstancesSelectPanel","ref","modelData","objectId","isFilterView","hideModelData","view","hide_columns","attrList","filter","item","includes","id","relation_list","left_id","left_object_id","right_id","right_object_id","displayedSelectedInstancesMaxNumber","previewMaxNumber","selectedInstanceList","setSelectedInstanceList","partialSelectedInstances","setPartialSelectedInstances","addInstancesModal","setAddInstancesModal","visible","allSelectedInstancesModal","setAllSelectedInstancesModal","modelMap","setModelMap","fetchInstances","instanceIdList","instances","length","query","instanceId","$in","page","page_size","fields","reduce","prev","next","list","toLoadInstanceIds","value","map","i","getModelMap","data","ref_object","initInstances","isOperate","slice","onFetchedInstances","sort","join","openAddInstancesModal","closeAddInstancesModal","openAllSelectedInstancesModal","closeAllSelectedInstancesModal","handleInstancesSelected","selectedKeys","onChange","fieldIds","attr","showPreview","cs","selectedInstancesTableWrapper","withPreview","relation","relationLimit","right_max","$size","$lt","instanceQuery","wrapper","modalTitle","t","FILTER_FROM_CMDB","name","instance","singleSelect","showBindButton","bindButtonDisabled","bindButtonText","bindEvent","addInstancesModalPageSize","searchDisabled","advancedSearchDisabled","ipCopy","showCloseBtn","showSizeChanger","pageSizeOptions","aq","saveFieldsBackend","VIEW_ALL_SELECTED_INSTANCES","textAlign","marginBottom","addButton","addTitle","CHOOSE_INSTANCE","showDetailUrl","detailUrlTemplates","showPagination","pagination","v","showAllSelectedInstancesButton","VIEW_ALL_DATA","count"],"sources":["../../../src/cmdb-instances-select-panel/CmdbInstancesSelectPanel.tsx"],"sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport classnames from \"classnames\";\n\nimport {\n CmdbModels,\n InstanceApi_postSearch,\n CmdbObjectApi_getObjectRef,\n} from \"@next-sdk/cmdb-sdk\";\nimport { InstanceListTable } from \"../instance-list-table\";\nimport { InstanceListModal } from \"../instance-list-modal/InstanceListModal\";\nimport {\n modifyModelData,\n ModifiedModelObjectRelation,\n Query,\n} from \"@next-libs/cmdb-utils\";\nimport style from \"./style.module.css\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport { keyBy, isEqual, isNil, isObject, isEmpty } from \"lodash\";\nimport { Spin } from \"antd\";\n\nexport interface BaseCmdbInstancesSelectPanelProps {\n objectId: string;\n value?: any[];\n onChange?: (instanceList: any[]) => void;\n instanceQuery?: any;\n fields?: string[];\n singleSelect?: boolean;\n showBindButton?: boolean;\n bindButtonDisabled?: boolean;\n bindButtonText?: string;\n bindEvent?: () => void;\n addTitle?: React.ReactNode | string;\n modalTitle?: React.ReactNode | string;\n previewMaxNumber?: number;\n addInstancesModalPageSize?: number;\n showSizeChanger?: boolean;\n pageSizeOptions?: string[];\n isOperate?: boolean; //cmdb实例列表支持删除实例\n showDetailUrl?: boolean;\n isFilterView?: boolean; //是否过滤视图属性\n onFetchedInstances?: (instanceList: any[]) => void; // objectId改变后触发\n relation?: Partial<ModifiedModelObjectRelation>;\n searchDisabled?: boolean;\n advancedSearchDisabled?: boolean;\n showPagination?: boolean;\n aq?: Query[];\n saveFieldsBackend?: boolean;\n}\n\nexport interface CmdbInstancesSelectPanelPropsWithObjectMap\n extends BaseCmdbInstancesSelectPanelProps {\n objectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>;\n ipCopy?: boolean;\n showSizeChanger?: boolean;\n showCloseBtn?: boolean;\n pageSizeOptions?: string[];\n saveFieldsBackend?: boolean;\n}\n\nexport interface CmdbInstancesSelectPanelPropsWithModelData\n extends BaseCmdbInstancesSelectPanelProps {\n modelData: Partial<CmdbModels.ModelCmdbObject>;\n ipCopy?: boolean;\n showSizeChanger?: boolean;\n showCloseBtn?: boolean;\n pageSizeOptions?: string[];\n saveFieldsBackend?: boolean;\n}\n\nexport type CmdbInstancesSelectPanelProps =\n | CmdbInstancesSelectPanelPropsWithObjectMap\n | CmdbInstancesSelectPanelPropsWithModelData;\n\nexport function isCmdbInstancesSelectPanelPropsWithObjectMap(\n props: CmdbInstancesSelectPanelProps\n): props is CmdbInstancesSelectPanelPropsWithObjectMap {\n return !isNil(\n (props as CmdbInstancesSelectPanelPropsWithObjectMap).objectMap\n );\n}\n\nexport function CmdbInstancesSelectPanel(\n props: CmdbInstancesSelectPanelProps,\n ref: any\n): React.ReactElement {\n let modelData: Partial<CmdbModels.ModelCmdbObject>;\n if (isCmdbInstancesSelectPanelPropsWithObjectMap(props)) {\n modelData = props.objectMap[props.objectId];\n } else {\n modelData = props.modelData;\n }\n\n if (props.isFilterView) {\n //过滤掉视图不可见字段\n const hideModelData = modelData?.view?.hide_columns || [];\n modelData = {\n ...modelData,\n attrList: modelData.attrList.filter(\n (item: any) => !hideModelData.includes(item.id)\n ),\n relation_list: modelData.relation_list.filter(\n (item: any) =>\n !(\n (hideModelData.includes(item.left_id) &&\n item.left_object_id === props.objectId) ||\n (hideModelData.includes(item.right_id) &&\n item.right_object_id === props.objectId)\n )\n ),\n };\n }\n\n const displayedSelectedInstancesMaxNumber = props.previewMaxNumber ?? 5;\n\n const [selectedInstanceList, setSelectedInstanceList] = useState([]);\n const [partialSelectedInstances, setPartialSelectedInstances] = useState([]);\n // const [instanceTableData, setInstanceTableData] = useState({list: []})\n const [addInstancesModal, setAddInstancesModal] = useState({\n visible: false,\n });\n const [allSelectedInstancesModal, setAllSelectedInstancesModal] = useState({\n visible: false,\n });\n const [modelMap, setModelMap] = useState({});\n\n const fetchInstances = async (instanceIdList: string[]): Promise<any[]> => {\n let instances: any[] = [];\n if (instanceIdList?.length) {\n instances = (\n await InstanceApi_postSearch(props.objectId, {\n query: {\n instanceId: {\n $in: instanceIdList,\n },\n },\n page: 1,\n page_size: instanceIdList.length,\n // todo(ice): selected confirm with instances\n fields: props.fields?.length\n ? props.fields.reduce(\n (prev, next) => ({ ...prev, [next]: true }),\n {}\n )\n : { \"*\": true },\n })\n ).list;\n }\n\n return instances;\n };\n const toLoadInstanceIds =\n props.value?.map((i) => (isObject(i) ? (i as any).instanceId : i)) || [];\n\n useEffect(() => {\n const getModelMap = async (): Promise<void> => {\n let modelMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>;\n\n if (isCmdbInstancesSelectPanelPropsWithObjectMap(props)) {\n modelMap = props.objectMap;\n } else {\n const { data } = await CmdbObjectApi_getObjectRef({\n ref_object: props.objectId,\n });\n modelMap = keyBy(data, \"objectId\");\n }\n setModelMap(modelMap);\n };\n getModelMap();\n }, [props.objectId]);\n\n useEffect(() => {\n let instances = [];\n\n const initInstances = async (): Promise<void> => {\n instances = await fetchInstances(toLoadInstanceIds);\n setSelectedInstanceList(instances);\n setPartialSelectedInstances(\n props?.isOperate\n ? instances\n : instances.slice(0, displayedSelectedInstancesMaxNumber)\n );\n props.onFetchedInstances?.(instances);\n };\n if (!isEmpty(toLoadInstanceIds)) {\n initInstances();\n } else {\n setSelectedInstanceList([]);\n setPartialSelectedInstances([]);\n }\n }, [toLoadInstanceIds.sort().join()]);\n const openAddInstancesModal = () => {\n setAddInstancesModal({ visible: true });\n };\n\n const closeAddInstancesModal = () => {\n setAddInstancesModal({ visible: false });\n };\n\n const openAllSelectedInstancesModal = () => {\n setAllSelectedInstancesModal({ visible: true });\n };\n\n const closeAllSelectedInstancesModal = () => {\n setAllSelectedInstancesModal({ visible: false });\n };\n\n const handleInstancesSelected = async (selectedKeys: string[]) => {\n closeAddInstancesModal();\n\n const instances = await fetchInstances(selectedKeys);\n setSelectedInstanceList(instances);\n setPartialSelectedInstances(\n props?.isOperate\n ? instances\n : instances.slice(0, displayedSelectedInstancesMaxNumber)\n );\n props.onChange?.(instances);\n };\n\n const fieldIds = modifyModelData(modelData).attrList.map(\n (attr: any) => attr.id\n );\n const showPreview =\n selectedInstanceList.length > displayedSelectedInstancesMaxNumber;\n const cs = classnames({\n [style.selectedInstancesTableWrapper]: true,\n [style.withPreview]: showPreview,\n });\n const { relation } = props;\n let relationLimit;\n if (relation?.right_max === 1) {\n relationLimit = { [relation.right_id]: { $size: { $lt: 1 } } };\n }\n const query = props.instanceQuery ?? relationLimit;\n return (\n <div className={style.wrapper} ref={ref}>\n <InstanceListModal\n objectMap={modelMap}\n objectId={props.objectId}\n visible={addInstancesModal.visible}\n title={\n props.modalTitle ??\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.FILTER_FROM_CMDB}`, {\n name: modelData.name,\n })\n }\n selectedRowKeys={selectedInstanceList.map(\n (instance) => instance.instanceId\n )}\n onSelected={handleInstancesSelected}\n onCancel={closeAddInstancesModal}\n singleSelect={props.singleSelect}\n presetConfigs={{\n query,\n fieldIds: props.fields,\n }}\n showBindButton={props.showBindButton}\n bindButtonDisabled={props.bindButtonDisabled}\n bindButtonText={props.bindButtonText}\n bindEvent={props.bindEvent}\n pageSize={props.addInstancesModalPageSize}\n searchDisabled={props.searchDisabled}\n advancedSearchDisabled={props.advancedSearchDisabled}\n ipCopy={props.ipCopy}\n showCloseBtn={props.showCloseBtn}\n showSizeChanger={props.showSizeChanger}\n pageSizeOptions={props.pageSizeOptions}\n aq={props.aq}\n saveFieldsBackend={props.saveFieldsBackend}\n />\n <InstanceListModal\n objectMap={modelMap}\n objectId={props.objectId}\n visible={allSelectedInstancesModal.visible}\n showBindButton={props.showBindButton}\n bindButtonDisabled={props.bindButtonDisabled}\n bindButtonText={props.bindButtonText}\n bindEvent={props.bindEvent}\n title={i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.VIEW_ALL_SELECTED_INSTANCES}`\n )}\n presetConfigs={{\n query: {\n instanceId: {\n $in: selectedInstanceList.map((instance) => instance.instanceId),\n },\n },\n fieldIds: props.fields,\n }}\n selectDisabled={!props.ipCopy}\n ipCopy={props.ipCopy}\n showCloseBtn={props.ipCopy ? true : props.showCloseBtn}\n pageSize={props.addInstancesModalPageSize}\n showSizeChanger={props.showSizeChanger}\n pageSizeOptions={props.pageSizeOptions}\n onCancel={closeAllSelectedInstancesModal}\n saveFieldsBackend={props.saveFieldsBackend}\n />\n <Spin\n style={{ textAlign: \"left\", marginBottom: \"12px\" }}\n spinning={isEqual(modelMap, {})}\n >\n <a\n className={style.addButton}\n style={{\n marginBottom: \"12px\",\n }}\n onClick={openAddInstancesModal}\n >\n {props.addTitle ??\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CHOOSE_INSTANCE}`)}\n </a>\n </Spin>\n <div className={cs}>\n <InstanceListTable\n {...(props.showDetailUrl\n ? {\n detailUrlTemplates: {\n [props.objectId]:\n \"/next-cmdb-instance-management/next/#{objectId}/instance/#{instanceId}\",\n },\n }\n : {})}\n idObjectMap={modelMap}\n modelData={modelData}\n instanceListData={{ list: partialSelectedInstances }}\n fieldIds={props.fields || fieldIds}\n selectDisabled={true}\n sortDisabled={true}\n configProps={\n props.showPagination && partialSelectedInstances.length > 10\n ? { pagination: { showSizeChanger: true } }\n : { pagination: false }\n }\n //\n isOperate={props.isOperate}\n handleDeleteFunction={(v) => {\n setSelectedInstanceList(v);\n setPartialSelectedInstances(v);\n props.onChange?.(v);\n }}\n target={\"_blank\"}\n ></InstanceListTable>\n {!props?.isOperate && showPreview && (\n <div\n className={style.showAllSelectedInstancesButton}\n onClick={openAllSelectedInstancesModal}\n >\n <a>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.VIEW_ALL_DATA}`, {\n count: selectedInstanceList.length,\n })}\n </a>\n </div>\n )}\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -432,7 +432,9 @@ export function LegacyUserSelectFormItem(props, ref) {
|
|
|
432
432
|
state: "valid"
|
|
433
433
|
}
|
|
434
434
|
}
|
|
435
|
-
} : {}
|
|
435
|
+
} : {}, {
|
|
436
|
+
saveFieldsBackend: props.saveFieldsBackend
|
|
437
|
+
})));
|
|
436
438
|
}
|
|
437
439
|
export var UserSelectFormItem = /*#__PURE__*/forwardRef(LegacyUserSelectFormItem);
|
|
438
440
|
export function UserOrUserGroupSelect(props) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserOrUserGroupSelect.js","names":["React","useState","forwardRef","useEffect","useRef","SearchOutlined","Select","Button","Divider","styles","InstanceApi_postSearch","zipObject","map","debounce","startsWith","filter","reject","isNil","uniqBy","uniq","find","isEmpty","isEqual","groupBy","compact","some","FormItemWrapper","getInstanceNameKeys","InstanceListModal","getAuth","GeneralIcon","useTranslation","NS_LIBS_CMDB_INSTANCES","K","LegacyUserSelectFormItem","props","ref","selectRef","selectedValue","setSelectedValue","staticValue","userShowKey","objectMap","userGroupShowKey","t","getLabel","objectId","instanceData","showKey","Array","isArray","showName","key","index","join","getStaticLabel","label","color","isDifferent","userOfValues","value","selectedUser","userGroupOfValues","selectedUserGroup","userOfSelectedValue","item","userGroupOfSelectedValue","sort","initializeStaticList","staticList","v","fetching","setFetching","searchValue","setSearchValue","userList","setUserList","userGroupList","setUserGroupList","modalVisible","setModalVisible","modalObjectId","setModalObjectId","optionsMode","triggerChange","changedValue","onChange","initializeSelectedValue","staticKeys","user","concat","userGroup","includes","staticValueToSet","length","query","name","$in","page","page_size","fields","list","instanceId","slice","labelValue","labelText","result","push","current","fetchInstanceList","keyword","showKeyQuery","$or","$like","hideInvalidUser","state","userQuery","userGroupQuery","searchUser","searchUserGroup","searchUserOrUserGroupInstances","Promise","all","handleSelectChange","originValue","unshift","resultValue","handleFocus","openModal","closeModal","handleInstancesSelected","resultSelectedValue","handleModalSelected","selectedKeys","instances","toggleObjectId","title","FILTER_FROM_CMDB_TYPE","type","USERS","USER_GROUPS","SWITCH","addMeQuickly","myUserName","username","myUser","$eq","getRight","btnWidth","hideAddMeQuickly","lineWidth","hideSelectByCMDB","iconWidth","UserOrUserGroupSelectContainer","customSelect","placeholder","width","USERS_RESULT_LABEL","d","NO_DATA","USER_GROUPS_RESULT_LABEL","extra","right","fontSize","lib","icon","presetConfigs","UserSelectFormItem","UserOrUserGroupSelect","mergeUseAndUserGroup"],"sources":["../../../../src/components/user-or-user-group-select/UserOrUserGroupSelect.tsx"],"sourcesContent":["import React, {\n useState,\n forwardRef,\n ReactNode,\n useEffect,\n useRef,\n} from \"react\";\nimport { SearchOutlined } from \"@ant-design/icons\";\nimport { Select, Button, Divider } from \"antd\";\nimport styles from \"./UserOrUserGroupSelect.module.css\";\nimport { InstanceApi_postSearch } from \"@next-sdk/cmdb-sdk\";\nimport {\n zipObject,\n map,\n debounce,\n startsWith,\n filter,\n reject,\n isNil,\n uniqBy,\n uniq,\n find,\n isEmpty,\n isEqual,\n groupBy,\n compact,\n some,\n} from \"lodash\";\nimport { FormItemWrapperProps, FormItemWrapper } from \"@next-libs/forms\";\nimport { getInstanceNameKeys } from \"@next-libs/cmdb-utils\";\nimport { InstanceListModal } from \"../../instance-list-modal/InstanceListModal\";\nimport { getAuth } from \"@next-core/brick-kit\";\nimport { GeneralIcon } from \"@next-libs/basic-components\";\nimport { useTranslation } from \"react-i18next\";\nimport { NS_LIBS_CMDB_INSTANCES, K } from \"../../i18n/constants\";\n\nexport type UserOrUserGroupSelectValue = {\n selectedUser?: string[];\n selectedUserGroup?: string[];\n};\n\nexport interface UserSelectFormItemProps {\n children?: ReactNode;\n objectMap?: Record<string, any>;\n onChange?: (value: any) => void;\n placeholder?: string;\n value?: UserOrUserGroupSelectValue;\n hideAddMeQuickly?: boolean;\n hideSelectByCMDB?: boolean;\n optionsMode?: \"user\" | \"group\" | \"all\";\n staticList?: string[];\n mergeUseAndUserGroup?: boolean;\n query?: Record<string, any>;\n hideInvalidUser?: boolean;\n userGroupQuery?: Record<string, any>;\n userQuery?: Record<string, any>;\n}\n\ninterface UserOrUserGroupSelectProps extends FormItemWrapperProps {\n objectMap: Record<string, any>;\n placeholder?: string;\n value?: UserOrUserGroupSelectValue;\n hideAddMeQuickly?: boolean;\n hideSelectByCMDB?: boolean;\n onChange?: (value: any) => void;\n optionsMode?: \"user\" | \"group\" | \"all\";\n staticList?: string[];\n mergeUseAndUserGroup?: boolean;\n query?: Record<string, any>;\n hideInvalidUser?: boolean;\n userGroupQuery?: Record<string, any>;\n userQuery?: Record<string, any>;\n}\n\nexport function LegacyUserSelectFormItem(\n props: UserSelectFormItemProps,\n ref: React.Ref<HTMLDivElement>\n): React.ReactElement {\n const selectRef = useRef();\n const [selectedValue, setSelectedValue] = useState([]);\n const staticValue = useRef([]);\n const userShowKey: string[] = getInstanceNameKeys(props.objectMap[\"USER\"]);\n const userGroupShowKey: string[] = getInstanceNameKeys(\n props.objectMap[\"USER_GROUP\"]\n );\n\n const { t } = useTranslation(NS_LIBS_CMDB_INSTANCES);\n\n const getLabel = (\n objectId: \"USER\" | \"USER_GROUP\",\n instanceData: any\n ): string => {\n const showKey = objectId === \"USER\" ? userShowKey : userGroupShowKey;\n if (Array.isArray(showKey)) {\n const 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 return showName;\n } else {\n return instanceData[showKey];\n }\n };\n\n const getStaticLabel = (label: string) => (\n <div style={{ color: \"var(--bg-color-button-link)\" }}>{label}</div>\n );\n\n const isDifferent = () => {\n const userOfValues = props.value?.selectedUser || [];\n const userGroupOfValues = props.value?.selectedUserGroup || [];\n const userOfSelectedValue = map(\n filter(selectedValue, (item) => !item.key.startsWith(\":\")),\n \"key\"\n );\n\n const userGroupOfSelectedValue = map(\n filter(selectedValue, (item) => 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\n // 后台搜索中\n const [fetching, setFetching] = useState(false);\n\n const [searchValue, setSearchValue] = useState();\n const [userList, setUserList] = useState([]);\n const [userGroupList, setUserGroupList] = useState([]);\n\n const [modalVisible, setModalVisible] = useState(false);\n const [modalObjectId, setModalObjectId] = useState(\n props.optionsMode === \"group\" ? \"USER_GROUP\" : \"USER\"\n );\n\n const triggerChange = (changedValue: any) => {\n props.onChange?.(\n isEmpty(changedValue.selectedUser) &&\n isEmpty(changedValue.selectedUserGroup)\n ? null\n : changedValue\n );\n };\n // istanbul ignore next (Migrated from next-basic)\n useEffect(() => {\n const initializeSelectedValue = async () => {\n if (props.value) {\n let selectedUser: any[] = [];\n let selectedUserGroup: any[] = [];\n const staticKeys = initializeStaticList();\n const user = compact(\n uniq([].concat(staticKeys.user).concat(props.value.selectedUser))\n );\n\n const userGroup = compact(\n uniq(\n []\n .concat(staticKeys.userGroup)\n .concat(props.value.selectedUserGroup)\n )\n );\n\n if (\n (staticKeys.user &&\n some(\n staticKeys.user,\n (v) => !props.value?.selectedUser?.includes(v)\n )) ||\n (staticKeys.userGroup &&\n some(\n staticKeys.userGroup,\n (v) => !props.value?.selectedUserGroup?.includes(v)\n ))\n ) {\n triggerChange({\n selectedUser: user,\n selectedUserGroup: userGroup,\n });\n }\n const staticValueToSet: any[] = [];\n if (user.length && props.optionsMode !== \"group\") {\n selectedUser = (\n await InstanceApi_postSearch(\"USER\", {\n query: {\n name: {\n $in: user,\n },\n },\n\n page: 1,\n page_size: user.length,\n fields: {\n ...zipObject(\n userShowKey,\n map(userShowKey, (v) => true)\n ),\n\n name: true,\n },\n })\n ).list;\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.slice(1)),\n },\n },\n\n page: 1,\n page_size: userGroup.length,\n fields: {\n ...zipObject(\n userGroupShowKey,\n map(userGroupShowKey, (v) => true)\n ),\n\n name: true,\n },\n })\n ).list;\n }\n let labelValue = [\n ...map(selectedUser, (v) => {\n const labelText = getLabel(\"USER\", v);\n const result = {\n key: v.name,\n label: props.staticList?.includes(v.name)\n ? getStaticLabel(labelText)\n : labelText,\n };\n\n if (props.staticList?.includes(v.name)) {\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: props.staticList?.includes(\":\" + v.instanceId)\n ? getStaticLabel(labelText)\n : 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\n setSelectedValue(labelValue);\n staticValue.current = staticValueToSet;\n }\n };\n if (isDifferent()) {\n initializeSelectedValue();\n }\n }, [props.value]);\n\n const fetchInstanceList = async (\n objectId: \"USER\" | \"USER_GROUP\",\n keyword: string\n ) => {\n const showKey = objectId === \"USER\" ? userShowKey : userGroupShowKey;\n const showKeyQuery = {\n $or: map(uniq([...showKey, \"name\"]), (v) => ({\n [v]: { $like: `%${keyword}%` },\n })),\n ...(props.hideInvalidUser\n ? {\n state: \"valid\",\n }\n : {}),\n };\n return (\n await InstanceApi_postSearch(objectId, {\n page: 1,\n page_size: 20,\n fields: {\n ...zipObject(\n showKey,\n map(showKey, (v) => true)\n ),\n\n name: true,\n },\n query:\n props.userQuery && objectId === \"USER\"\n ? {\n ...props.userQuery,\n ...showKeyQuery,\n }\n : props.userGroupQuery && objectId === \"USER_GROUP\"\n ? {\n ...props.userGroupQuery,\n ...showKeyQuery,\n }\n : props.query || showKeyQuery\n ? {\n ...props.query,\n ...showKeyQuery,\n }\n : showKeyQuery,\n })\n ).list;\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: any) => {\n setSearchValue(value);\n setFetching(true);\n await Promise.all([\n ...(props.optionsMode !== \"group\" ? [searchUser(value)] : []),\n ...(props.optionsMode !== \"user\" ? [searchUserGroup(value)] : []),\n ]);\n\n setFetching(false);\n };\n\n const handleSelectChange = (originValue: any) => {\n const value = filter(originValue, (item) => {\n return !find(props.staticList, (v) => v === item.key);\n });\n value.unshift(...staticValue.current);\n setSelectedValue(value);\n const resultValue = {\n selectedUser: map(\n reject(value, (v) => {\n return startsWith(v.key, \":\");\n }),\n \"key\"\n ),\n\n selectedUserGroup: map(\n filter(value, (v) => {\n return startsWith(v.key, \":\");\n }),\n \"key\"\n ),\n };\n\n triggerChange(resultValue);\n if (searchValue !== \"\") {\n searchUserOrUserGroupInstances(\"\");\n }\n };\n // istanbul ignore next (Migrated from next-basic)\n const handleFocus = () => {\n if (isNil(searchValue) || searchValue !== \"\") {\n searchUserOrUserGroupInstances(\"\");\n }\n };\n // istanbul ignore next (Migrated from next-basic)\n const openModal = () => {\n setModalVisible(true);\n };\n // istanbul ignore next (Migrated from next-basic)\n const closeModal = () => {\n setModalVisible(false);\n };\n // istanbul ignore next (Migrated from next-basic)\n const handleInstancesSelected = (\n value: Record<string, any>[],\n objectId: string\n ): void => {\n let labelValue: any[] = [];\n if (objectId === \"USER\") {\n labelValue = [\n ...map(value, (v) => {\n const labelText = getLabel(\"USER\", v);\n return {\n key: v.name,\n label: props.staticList?.includes(v.name)\n ? getStaticLabel(labelText)\n : labelText,\n };\n }),\n ];\n } else {\n labelValue = [\n ...map(value, (v) => {\n const labelText = getLabel(\"USER_GROUP\", v);\n return {\n key: \":\" + v.instanceId,\n label: props.staticList?.includes(\":\" + v.instanceId)\n ? getStaticLabel(labelText)\n : labelText,\n };\n }),\n ];\n }\n const resultSelectedValue = uniqBy(\n [...selectedValue, ...labelValue],\n \"key\"\n );\n\n setSelectedValue(resultSelectedValue);\n const resultValue = {\n selectedUser: map(\n reject(resultSelectedValue, (v) => {\n return startsWith(v.key, \":\");\n }),\n \"key\"\n ),\n\n selectedUserGroup: map(\n filter(resultSelectedValue, (v) => {\n return startsWith(v.key, \":\");\n }),\n \"key\"\n ),\n };\n\n triggerChange(resultValue);\n };\n // istanbul ignore next (Migrated from next-basic)\n const handleModalSelected = async (selectedKeys: string[]) => {\n if (selectedKeys?.length) {\n const instances = (\n await InstanceApi_postSearch(modalObjectId, {\n query: { instanceId: { $in: selectedKeys } },\n fields: { \"*\": true },\n page_size: selectedKeys.length,\n })\n ).list;\n handleInstancesSelected(instances, modalObjectId);\n }\n setModalVisible(false);\n };\n\n const toggleObjectId = () => {\n setModalObjectId(modalObjectId === \"USER\" ? \"USER_GROUP\" : \"USER\");\n };\n\n const title = (\n <div>\n {t(K.FILTER_FROM_CMDB_TYPE, {\n type: modalObjectId === \"USER\" ? t(K.USERS) : t(K.USER_GROUPS),\n })}{\" \"}\n {props.optionsMode === \"all\" && (\n <Button type=\"link\" onClick={toggleObjectId}>\n {t(K.SWITCH, {\n type: modalObjectId === \"USER\" ? t(K.USER_GROUPS) : t(K.USERS),\n })}{\" \"}\n </Button>\n )}\n </div>\n );\n\n // 快速选择我\n // istanbul ignore next (Migrated from next-basic)\n const addMeQuickly = async () => {\n const myUserName = getAuth().username;\n if (find(selectedValue, (v) => v.key === myUserName)) {\n // 如果已选择项中包含我,则不重新发起请求\n return;\n }\n const myUser = (\n await InstanceApi_postSearch(\"USER\", {\n query: {\n name: {\n $eq: myUserName,\n },\n },\n\n page: 1,\n page_size: 1,\n fields: {\n ...zipObject(\n userShowKey,\n map(userShowKey, (v) => true)\n ),\n\n name: true,\n },\n })\n ).list;\n handleInstancesSelected(myUser, \"USER\");\n };\n\n const getRight = () => {\n const btnWidth =\n !props.hideAddMeQuickly && props.optionsMode !== \"group\" ? -34 : 0;\n const lineWidth =\n !props.hideAddMeQuickly &&\n props.optionsMode !== \"group\" &&\n !props.hideSelectByCMDB\n ? -1\n : 0;\n const iconWidth = props.hideSelectByCMDB ? 0 : -32;\n return btnWidth + lineWidth + iconWidth;\n };\n\n return (\n <div\n ref={ref}\n data-testid=\"wrapper\"\n className={styles.UserOrUserGroupSelectContainer}\n >\n <Select\n className={styles.customSelect}\n ref={selectRef}\n allowClear={true}\n mode=\"multiple\"\n labelInValue\n placeholder={props.placeholder}\n filterOption={false}\n value={selectedValue}\n onChange={handleSelectChange}\n onSearch={debounce((value) => {\n searchUserOrUserGroupInstances(value as string);\n }, 500)}\n onFocus={handleFocus}\n style={{ width: \"100%\" }}\n loading={fetching}\n >\n {props.optionsMode !== \"group\" && (\n <Select.OptGroup label={t(K.USERS_RESULT_LABEL)}>\n {userList.length > 0 ? (\n userList.map((d) => (\n <Select.Option value={d.name} key={d.name}>\n {props.staticList?.includes(d.name)\n ? getStaticLabel(getLabel(\"USER\", d))\n : getLabel(\"USER\", d)}\n </Select.Option>\n ))\n ) : (\n <Select.Option value=\"empty-user\" key=\"empty-user\" disabled>\n {t(K.NO_DATA)}\n </Select.Option>\n )}\n </Select.OptGroup>\n )}\n\n {props.optionsMode !== \"user\" && (\n <Select.OptGroup label={t(K.USER_GROUPS_RESULT_LABEL)}>\n {userGroupList.length > 0 ? (\n userGroupList.map((d) => (\n <Select.Option value={d.instanceId} key={d.instanceId}>\n {props.staticList?.includes(d.instanceId)\n ? getStaticLabel(getLabel(\"USER_GROUP\", d))\n : getLabel(\"USER_GROUP\", d)}\n </Select.Option>\n ))\n ) : (\n <Select.Option\n value=\"empty-user-group\"\n key=\"empty-user-group\"\n disabled\n >\n {t(K.NO_DATA)}\n </Select.Option>\n )}\n </Select.OptGroup>\n )}\n </Select>\n <div className={styles.extra} style={{ right: getRight() }}>\n {!props.hideAddMeQuickly && props.optionsMode !== \"group\" && (\n <Button\n type=\"link\"\n onClick={addMeQuickly}\n style={{ fontSize: \"16px\" }}\n >\n <GeneralIcon icon={{ lib: \"easyops\", icon: \"quick-add-me\" }} />\n </Button>\n )}\n\n {!props.hideAddMeQuickly &&\n props.optionsMode !== \"group\" &&\n !props.hideSelectByCMDB && <Divider type=\"vertical\" />}\n {!props.hideSelectByCMDB && (\n <Button\n type=\"link\"\n icon={<SearchOutlined />}\n onClick={openModal}\n ></Button>\n )}\n </div>\n <InstanceListModal\n objectMap={props.objectMap}\n objectId={modalObjectId}\n visible={modalVisible}\n title={title}\n onSelected={handleModalSelected}\n onCancel={closeModal}\n showSizeChanger={true}\n {...(modalObjectId === \"USER\" && props.hideInvalidUser\n ? {\n presetConfigs: {\n query: {\n state: \"valid\",\n },\n },\n }\n : {})}\n />\n </div>\n );\n}\n\nexport const UserSelectFormItem = forwardRef<HTMLDivElement>(\n LegacyUserSelectFormItem\n) as any;\n\nexport function UserOrUserGroupSelect(\n props: UserOrUserGroupSelectProps\n): React.ReactElement {\n return (\n <FormItemWrapper {...props}>\n <UserSelectFormItem\n objectMap={props.objectMap}\n placeholder={props.placeholder}\n value={props.value}\n hideAddMeQuickly={props.hideAddMeQuickly}\n hideSelectByCMDB={props.hideSelectByCMDB}\n onChange={props.onChange}\n optionsMode={props.optionsMode}\n staticList={props.staticList}\n mergeUseAndUserGroup={props.mergeUseAndUserGroup}\n query={props.query}\n hideInvalidUser={props.hideInvalidUser}\n userQuery={props.userQuery}\n userGroupQuery={props.userGroupQuery}\n />\n </FormItemWrapper>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"UserOrUserGroupSelect.js","names":["React","useState","forwardRef","useEffect","useRef","SearchOutlined","Select","Button","Divider","styles","InstanceApi_postSearch","zipObject","map","debounce","startsWith","filter","reject","isNil","uniqBy","uniq","find","isEmpty","isEqual","groupBy","compact","some","FormItemWrapper","getInstanceNameKeys","InstanceListModal","getAuth","GeneralIcon","useTranslation","NS_LIBS_CMDB_INSTANCES","K","LegacyUserSelectFormItem","props","ref","selectRef","selectedValue","setSelectedValue","staticValue","userShowKey","objectMap","userGroupShowKey","t","getLabel","objectId","instanceData","showKey","Array","isArray","showName","key","index","join","getStaticLabel","label","color","isDifferent","userOfValues","value","selectedUser","userGroupOfValues","selectedUserGroup","userOfSelectedValue","item","userGroupOfSelectedValue","sort","initializeStaticList","staticList","v","fetching","setFetching","searchValue","setSearchValue","userList","setUserList","userGroupList","setUserGroupList","modalVisible","setModalVisible","modalObjectId","setModalObjectId","optionsMode","triggerChange","changedValue","onChange","initializeSelectedValue","staticKeys","user","concat","userGroup","includes","staticValueToSet","length","query","name","$in","page","page_size","fields","list","instanceId","slice","labelValue","labelText","result","push","current","fetchInstanceList","keyword","showKeyQuery","$or","$like","hideInvalidUser","state","userQuery","userGroupQuery","searchUser","searchUserGroup","searchUserOrUserGroupInstances","Promise","all","handleSelectChange","originValue","unshift","resultValue","handleFocus","openModal","closeModal","handleInstancesSelected","resultSelectedValue","handleModalSelected","selectedKeys","instances","toggleObjectId","title","FILTER_FROM_CMDB_TYPE","type","USERS","USER_GROUPS","SWITCH","addMeQuickly","myUserName","username","myUser","$eq","getRight","btnWidth","hideAddMeQuickly","lineWidth","hideSelectByCMDB","iconWidth","UserOrUserGroupSelectContainer","customSelect","placeholder","width","USERS_RESULT_LABEL","d","NO_DATA","USER_GROUPS_RESULT_LABEL","extra","right","fontSize","lib","icon","presetConfigs","saveFieldsBackend","UserSelectFormItem","UserOrUserGroupSelect","mergeUseAndUserGroup"],"sources":["../../../../src/components/user-or-user-group-select/UserOrUserGroupSelect.tsx"],"sourcesContent":["import React, {\n useState,\n forwardRef,\n ReactNode,\n useEffect,\n useRef,\n} from \"react\";\nimport { SearchOutlined } from \"@ant-design/icons\";\nimport { Select, Button, Divider } from \"antd\";\nimport styles from \"./UserOrUserGroupSelect.module.css\";\nimport { InstanceApi_postSearch } from \"@next-sdk/cmdb-sdk\";\nimport {\n zipObject,\n map,\n debounce,\n startsWith,\n filter,\n reject,\n isNil,\n uniqBy,\n uniq,\n find,\n isEmpty,\n isEqual,\n groupBy,\n compact,\n some,\n} from \"lodash\";\nimport { FormItemWrapperProps, FormItemWrapper } from \"@next-libs/forms\";\nimport { getInstanceNameKeys } from \"@next-libs/cmdb-utils\";\nimport { InstanceListModal } from \"../../instance-list-modal/InstanceListModal\";\nimport { getAuth } from \"@next-core/brick-kit\";\nimport { GeneralIcon } from \"@next-libs/basic-components\";\nimport { useTranslation } from \"react-i18next\";\nimport { NS_LIBS_CMDB_INSTANCES, K } from \"../../i18n/constants\";\n\nexport type UserOrUserGroupSelectValue = {\n selectedUser?: string[];\n selectedUserGroup?: string[];\n};\n\nexport interface UserSelectFormItemProps {\n children?: ReactNode;\n objectMap?: Record<string, any>;\n onChange?: (value: any) => void;\n placeholder?: string;\n value?: UserOrUserGroupSelectValue;\n hideAddMeQuickly?: boolean;\n hideSelectByCMDB?: boolean;\n optionsMode?: \"user\" | \"group\" | \"all\";\n staticList?: string[];\n mergeUseAndUserGroup?: boolean;\n query?: Record<string, any>;\n hideInvalidUser?: boolean;\n userGroupQuery?: Record<string, any>;\n userQuery?: Record<string, any>;\n saveFieldsBackend?: boolean;\n}\n\ninterface UserOrUserGroupSelectProps extends FormItemWrapperProps {\n objectMap: Record<string, any>;\n placeholder?: string;\n value?: UserOrUserGroupSelectValue;\n hideAddMeQuickly?: boolean;\n hideSelectByCMDB?: boolean;\n onChange?: (value: any) => void;\n optionsMode?: \"user\" | \"group\" | \"all\";\n staticList?: string[];\n mergeUseAndUserGroup?: boolean;\n query?: Record<string, any>;\n hideInvalidUser?: boolean;\n userGroupQuery?: Record<string, any>;\n userQuery?: Record<string, any>;\n}\n\nexport function LegacyUserSelectFormItem(\n props: UserSelectFormItemProps,\n ref: React.Ref<HTMLDivElement>\n): React.ReactElement {\n const selectRef = useRef();\n const [selectedValue, setSelectedValue] = useState([]);\n const staticValue = useRef([]);\n const userShowKey: string[] = getInstanceNameKeys(props.objectMap[\"USER\"]);\n const userGroupShowKey: string[] = getInstanceNameKeys(\n props.objectMap[\"USER_GROUP\"]\n );\n\n const { t } = useTranslation(NS_LIBS_CMDB_INSTANCES);\n\n const getLabel = (\n objectId: \"USER\" | \"USER_GROUP\",\n instanceData: any\n ): string => {\n const showKey = objectId === \"USER\" ? userShowKey : userGroupShowKey;\n if (Array.isArray(showKey)) {\n const 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 return showName;\n } else {\n return instanceData[showKey];\n }\n };\n\n const getStaticLabel = (label: string) => (\n <div style={{ color: \"var(--bg-color-button-link)\" }}>{label}</div>\n );\n\n const isDifferent = () => {\n const userOfValues = props.value?.selectedUser || [];\n const userGroupOfValues = props.value?.selectedUserGroup || [];\n const userOfSelectedValue = map(\n filter(selectedValue, (item) => !item.key.startsWith(\":\")),\n \"key\"\n );\n\n const userGroupOfSelectedValue = map(\n filter(selectedValue, (item) => 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\n // 后台搜索中\n const [fetching, setFetching] = useState(false);\n\n const [searchValue, setSearchValue] = useState();\n const [userList, setUserList] = useState([]);\n const [userGroupList, setUserGroupList] = useState([]);\n\n const [modalVisible, setModalVisible] = useState(false);\n const [modalObjectId, setModalObjectId] = useState(\n props.optionsMode === \"group\" ? \"USER_GROUP\" : \"USER\"\n );\n\n const triggerChange = (changedValue: any) => {\n props.onChange?.(\n isEmpty(changedValue.selectedUser) &&\n isEmpty(changedValue.selectedUserGroup)\n ? null\n : changedValue\n );\n };\n // istanbul ignore next (Migrated from next-basic)\n useEffect(() => {\n const initializeSelectedValue = async () => {\n if (props.value) {\n let selectedUser: any[] = [];\n let selectedUserGroup: any[] = [];\n const staticKeys = initializeStaticList();\n const user = compact(\n uniq([].concat(staticKeys.user).concat(props.value.selectedUser))\n );\n\n const userGroup = compact(\n uniq(\n []\n .concat(staticKeys.userGroup)\n .concat(props.value.selectedUserGroup)\n )\n );\n\n if (\n (staticKeys.user &&\n some(\n staticKeys.user,\n (v) => !props.value?.selectedUser?.includes(v)\n )) ||\n (staticKeys.userGroup &&\n some(\n staticKeys.userGroup,\n (v) => !props.value?.selectedUserGroup?.includes(v)\n ))\n ) {\n triggerChange({\n selectedUser: user,\n selectedUserGroup: userGroup,\n });\n }\n const staticValueToSet: any[] = [];\n if (user.length && props.optionsMode !== \"group\") {\n selectedUser = (\n await InstanceApi_postSearch(\"USER\", {\n query: {\n name: {\n $in: user,\n },\n },\n\n page: 1,\n page_size: user.length,\n fields: {\n ...zipObject(\n userShowKey,\n map(userShowKey, (v) => true)\n ),\n\n name: true,\n },\n })\n ).list;\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.slice(1)),\n },\n },\n\n page: 1,\n page_size: userGroup.length,\n fields: {\n ...zipObject(\n userGroupShowKey,\n map(userGroupShowKey, (v) => true)\n ),\n\n name: true,\n },\n })\n ).list;\n }\n let labelValue = [\n ...map(selectedUser, (v) => {\n const labelText = getLabel(\"USER\", v);\n const result = {\n key: v.name,\n label: props.staticList?.includes(v.name)\n ? getStaticLabel(labelText)\n : labelText,\n };\n\n if (props.staticList?.includes(v.name)) {\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: props.staticList?.includes(\":\" + v.instanceId)\n ? getStaticLabel(labelText)\n : 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\n setSelectedValue(labelValue);\n staticValue.current = staticValueToSet;\n }\n };\n if (isDifferent()) {\n initializeSelectedValue();\n }\n }, [props.value]);\n\n const fetchInstanceList = async (\n objectId: \"USER\" | \"USER_GROUP\",\n keyword: string\n ) => {\n const showKey = objectId === \"USER\" ? userShowKey : userGroupShowKey;\n const showKeyQuery = {\n $or: map(uniq([...showKey, \"name\"]), (v) => ({\n [v]: { $like: `%${keyword}%` },\n })),\n ...(props.hideInvalidUser\n ? {\n state: \"valid\",\n }\n : {}),\n };\n return (\n await InstanceApi_postSearch(objectId, {\n page: 1,\n page_size: 20,\n fields: {\n ...zipObject(\n showKey,\n map(showKey, (v) => true)\n ),\n\n name: true,\n },\n query:\n props.userQuery && objectId === \"USER\"\n ? {\n ...props.userQuery,\n ...showKeyQuery,\n }\n : props.userGroupQuery && objectId === \"USER_GROUP\"\n ? {\n ...props.userGroupQuery,\n ...showKeyQuery,\n }\n : props.query || showKeyQuery\n ? {\n ...props.query,\n ...showKeyQuery,\n }\n : showKeyQuery,\n })\n ).list;\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: any) => {\n setSearchValue(value);\n setFetching(true);\n await Promise.all([\n ...(props.optionsMode !== \"group\" ? [searchUser(value)] : []),\n ...(props.optionsMode !== \"user\" ? [searchUserGroup(value)] : []),\n ]);\n\n setFetching(false);\n };\n\n const handleSelectChange = (originValue: any) => {\n const value = filter(originValue, (item) => {\n return !find(props.staticList, (v) => v === item.key);\n });\n value.unshift(...staticValue.current);\n setSelectedValue(value);\n const resultValue = {\n selectedUser: map(\n reject(value, (v) => {\n return startsWith(v.key, \":\");\n }),\n \"key\"\n ),\n\n selectedUserGroup: map(\n filter(value, (v) => {\n return startsWith(v.key, \":\");\n }),\n \"key\"\n ),\n };\n\n triggerChange(resultValue);\n if (searchValue !== \"\") {\n searchUserOrUserGroupInstances(\"\");\n }\n };\n // istanbul ignore next (Migrated from next-basic)\n const handleFocus = () => {\n if (isNil(searchValue) || searchValue !== \"\") {\n searchUserOrUserGroupInstances(\"\");\n }\n };\n // istanbul ignore next (Migrated from next-basic)\n const openModal = () => {\n setModalVisible(true);\n };\n // istanbul ignore next (Migrated from next-basic)\n const closeModal = () => {\n setModalVisible(false);\n };\n // istanbul ignore next (Migrated from next-basic)\n const handleInstancesSelected = (\n value: Record<string, any>[],\n objectId: string\n ): void => {\n let labelValue: any[] = [];\n if (objectId === \"USER\") {\n labelValue = [\n ...map(value, (v) => {\n const labelText = getLabel(\"USER\", v);\n return {\n key: v.name,\n label: props.staticList?.includes(v.name)\n ? getStaticLabel(labelText)\n : labelText,\n };\n }),\n ];\n } else {\n labelValue = [\n ...map(value, (v) => {\n const labelText = getLabel(\"USER_GROUP\", v);\n return {\n key: \":\" + v.instanceId,\n label: props.staticList?.includes(\":\" + v.instanceId)\n ? getStaticLabel(labelText)\n : labelText,\n };\n }),\n ];\n }\n const resultSelectedValue = uniqBy(\n [...selectedValue, ...labelValue],\n \"key\"\n );\n\n setSelectedValue(resultSelectedValue);\n const resultValue = {\n selectedUser: map(\n reject(resultSelectedValue, (v) => {\n return startsWith(v.key, \":\");\n }),\n \"key\"\n ),\n\n selectedUserGroup: map(\n filter(resultSelectedValue, (v) => {\n return startsWith(v.key, \":\");\n }),\n \"key\"\n ),\n };\n\n triggerChange(resultValue);\n };\n // istanbul ignore next (Migrated from next-basic)\n const handleModalSelected = async (selectedKeys: string[]) => {\n if (selectedKeys?.length) {\n const instances = (\n await InstanceApi_postSearch(modalObjectId, {\n query: { instanceId: { $in: selectedKeys } },\n fields: { \"*\": true },\n page_size: selectedKeys.length,\n })\n ).list;\n handleInstancesSelected(instances, modalObjectId);\n }\n setModalVisible(false);\n };\n\n const toggleObjectId = () => {\n setModalObjectId(modalObjectId === \"USER\" ? \"USER_GROUP\" : \"USER\");\n };\n\n const title = (\n <div>\n {t(K.FILTER_FROM_CMDB_TYPE, {\n type: modalObjectId === \"USER\" ? t(K.USERS) : t(K.USER_GROUPS),\n })}{\" \"}\n {props.optionsMode === \"all\" && (\n <Button type=\"link\" onClick={toggleObjectId}>\n {t(K.SWITCH, {\n type: modalObjectId === \"USER\" ? t(K.USER_GROUPS) : t(K.USERS),\n })}{\" \"}\n </Button>\n )}\n </div>\n );\n\n // 快速选择我\n // istanbul ignore next (Migrated from next-basic)\n const addMeQuickly = async () => {\n const myUserName = getAuth().username;\n if (find(selectedValue, (v) => v.key === myUserName)) {\n // 如果已选择项中包含我,则不重新发起请求\n return;\n }\n const myUser = (\n await InstanceApi_postSearch(\"USER\", {\n query: {\n name: {\n $eq: myUserName,\n },\n },\n\n page: 1,\n page_size: 1,\n fields: {\n ...zipObject(\n userShowKey,\n map(userShowKey, (v) => true)\n ),\n\n name: true,\n },\n })\n ).list;\n handleInstancesSelected(myUser, \"USER\");\n };\n\n const getRight = () => {\n const btnWidth =\n !props.hideAddMeQuickly && props.optionsMode !== \"group\" ? -34 : 0;\n const lineWidth =\n !props.hideAddMeQuickly &&\n props.optionsMode !== \"group\" &&\n !props.hideSelectByCMDB\n ? -1\n : 0;\n const iconWidth = props.hideSelectByCMDB ? 0 : -32;\n return btnWidth + lineWidth + iconWidth;\n };\n\n return (\n <div\n ref={ref}\n data-testid=\"wrapper\"\n className={styles.UserOrUserGroupSelectContainer}\n >\n <Select\n className={styles.customSelect}\n ref={selectRef}\n allowClear={true}\n mode=\"multiple\"\n labelInValue\n placeholder={props.placeholder}\n filterOption={false}\n value={selectedValue}\n onChange={handleSelectChange}\n onSearch={debounce((value) => {\n searchUserOrUserGroupInstances(value as string);\n }, 500)}\n onFocus={handleFocus}\n style={{ width: \"100%\" }}\n loading={fetching}\n >\n {props.optionsMode !== \"group\" && (\n <Select.OptGroup label={t(K.USERS_RESULT_LABEL)}>\n {userList.length > 0 ? (\n userList.map((d) => (\n <Select.Option value={d.name} key={d.name}>\n {props.staticList?.includes(d.name)\n ? getStaticLabel(getLabel(\"USER\", d))\n : getLabel(\"USER\", d)}\n </Select.Option>\n ))\n ) : (\n <Select.Option value=\"empty-user\" key=\"empty-user\" disabled>\n {t(K.NO_DATA)}\n </Select.Option>\n )}\n </Select.OptGroup>\n )}\n\n {props.optionsMode !== \"user\" && (\n <Select.OptGroup label={t(K.USER_GROUPS_RESULT_LABEL)}>\n {userGroupList.length > 0 ? (\n userGroupList.map((d) => (\n <Select.Option value={d.instanceId} key={d.instanceId}>\n {props.staticList?.includes(d.instanceId)\n ? getStaticLabel(getLabel(\"USER_GROUP\", d))\n : getLabel(\"USER_GROUP\", d)}\n </Select.Option>\n ))\n ) : (\n <Select.Option\n value=\"empty-user-group\"\n key=\"empty-user-group\"\n disabled\n >\n {t(K.NO_DATA)}\n </Select.Option>\n )}\n </Select.OptGroup>\n )}\n </Select>\n <div className={styles.extra} style={{ right: getRight() }}>\n {!props.hideAddMeQuickly && props.optionsMode !== \"group\" && (\n <Button\n type=\"link\"\n onClick={addMeQuickly}\n style={{ fontSize: \"16px\" }}\n >\n <GeneralIcon icon={{ lib: \"easyops\", icon: \"quick-add-me\" }} />\n </Button>\n )}\n\n {!props.hideAddMeQuickly &&\n props.optionsMode !== \"group\" &&\n !props.hideSelectByCMDB && <Divider type=\"vertical\" />}\n {!props.hideSelectByCMDB && (\n <Button\n type=\"link\"\n icon={<SearchOutlined />}\n onClick={openModal}\n ></Button>\n )}\n </div>\n <InstanceListModal\n objectMap={props.objectMap}\n objectId={modalObjectId}\n visible={modalVisible}\n title={title}\n onSelected={handleModalSelected}\n onCancel={closeModal}\n showSizeChanger={true}\n {...(modalObjectId === \"USER\" && props.hideInvalidUser\n ? {\n presetConfigs: {\n query: {\n state: \"valid\",\n },\n },\n }\n : {})}\n saveFieldsBackend={props.saveFieldsBackend}\n />\n </div>\n );\n}\n\nexport const UserSelectFormItem = forwardRef<HTMLDivElement>(\n LegacyUserSelectFormItem\n) as any;\n\nexport function UserOrUserGroupSelect(\n props: UserOrUserGroupSelectProps\n): React.ReactElement {\n return (\n <FormItemWrapper {...props}>\n <UserSelectFormItem\n objectMap={props.objectMap}\n placeholder={props.placeholder}\n value={props.value}\n hideAddMeQuickly={props.hideAddMeQuickly}\n hideSelectByCMDB={props.hideSelectByCMDB}\n onChange={props.onChange}\n optionsMode={props.optionsMode}\n staticList={props.staticList}\n mergeUseAndUserGroup={props.mergeUseAndUserGroup}\n query={props.query}\n hideInvalidUser={props.hideInvalidUser}\n userQuery={props.userQuery}\n userGroupQuery={props.userGroupQuery}\n />\n </FormItemWrapper>\n );\n}\n"],"mappings":"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"}
|
|
@@ -36,6 +36,7 @@ export interface CmdbInstancesInputFormItemProps {
|
|
|
36
36
|
extraFilterBricks?: {
|
|
37
37
|
useBrick: UseBrickConf;
|
|
38
38
|
};
|
|
39
|
+
saveFieldsBackend?: boolean;
|
|
39
40
|
}
|
|
40
41
|
export declare const LegacyCmdbInstancesInputFormItem: (props: CmdbInstancesInputFormItemProps, ref: React.Ref<HTMLDivElement>) => React.ReactElement;
|
|
41
42
|
export declare const CmdbInstancesInputFormItem: React.ForwardRefExoticComponent<CmdbInstancesInputFormItemProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -27,6 +27,7 @@ export interface BaseCmdbInstancesSelectPanelProps {
|
|
|
27
27
|
advancedSearchDisabled?: boolean;
|
|
28
28
|
showPagination?: boolean;
|
|
29
29
|
aq?: Query[];
|
|
30
|
+
saveFieldsBackend?: boolean;
|
|
30
31
|
}
|
|
31
32
|
export interface CmdbInstancesSelectPanelPropsWithObjectMap extends BaseCmdbInstancesSelectPanelProps {
|
|
32
33
|
objectMap: Record<string, Partial<CmdbModels.ModelCmdbObject>>;
|
|
@@ -34,6 +35,7 @@ export interface CmdbInstancesSelectPanelPropsWithObjectMap extends BaseCmdbInst
|
|
|
34
35
|
showSizeChanger?: boolean;
|
|
35
36
|
showCloseBtn?: boolean;
|
|
36
37
|
pageSizeOptions?: string[];
|
|
38
|
+
saveFieldsBackend?: boolean;
|
|
37
39
|
}
|
|
38
40
|
export interface CmdbInstancesSelectPanelPropsWithModelData extends BaseCmdbInstancesSelectPanelProps {
|
|
39
41
|
modelData: Partial<CmdbModels.ModelCmdbObject>;
|
|
@@ -41,6 +43,7 @@ export interface CmdbInstancesSelectPanelPropsWithModelData extends BaseCmdbInst
|
|
|
41
43
|
showSizeChanger?: boolean;
|
|
42
44
|
showCloseBtn?: boolean;
|
|
43
45
|
pageSizeOptions?: string[];
|
|
46
|
+
saveFieldsBackend?: boolean;
|
|
44
47
|
}
|
|
45
48
|
export declare type CmdbInstancesSelectPanelProps = CmdbInstancesSelectPanelPropsWithObjectMap | CmdbInstancesSelectPanelPropsWithModelData;
|
|
46
49
|
export declare function isCmdbInstancesSelectPanelPropsWithObjectMap(props: CmdbInstancesSelectPanelProps): props is CmdbInstancesSelectPanelPropsWithObjectMap;
|
|
@@ -19,6 +19,7 @@ export interface UserSelectFormItemProps {
|
|
|
19
19
|
hideInvalidUser?: boolean;
|
|
20
20
|
userGroupQuery?: Record<string, any>;
|
|
21
21
|
userQuery?: Record<string, any>;
|
|
22
|
+
saveFieldsBackend?: boolean;
|
|
22
23
|
}
|
|
23
24
|
interface UserOrUserGroupSelectProps extends FormItemWrapperProps {
|
|
24
25
|
objectMap: Record<string, any>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@next-libs/cmdb-instances",
|
|
3
|
-
"version": "7.10.
|
|
3
|
+
"version": "7.10.6",
|
|
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",
|
|
@@ -50,5 +50,5 @@
|
|
|
50
50
|
"immutability-helper": "^3.1.1",
|
|
51
51
|
"marked": "^2.1.3"
|
|
52
52
|
},
|
|
53
|
-
"gitHead": "
|
|
53
|
+
"gitHead": "bfdf4eb88b38ea19d7d5f693662bb62fcb89ec14"
|
|
54
54
|
}
|