@next-libs/cmdb-instances 7.6.11 → 7.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -174,6 +174,10 @@ function CmdbInstancesSelectPanel(props, ref) {
174
174
  query,
175
175
  fieldIds: props.fields
176
176
  },
177
+ showBindButton: props.showBindButton,
178
+ bindButtonDisabled: props.bindButtonDisabled,
179
+ bindButtonText: props.bindButtonText,
180
+ bindEvent: props.bindEvent,
177
181
  pageSize: props.addInstancesModalPageSize,
178
182
  searchDisabled: props.searchDisabled,
179
183
  advancedSearchDisabled: props.advancedSearchDisabled,
@@ -186,6 +190,10 @@ function CmdbInstancesSelectPanel(props, ref) {
186
190
  objectMap: modelMap,
187
191
  objectId: props.objectId,
188
192
  visible: allSelectedInstancesModal.visible,
193
+ showBindButton: props.showBindButton,
194
+ bindButtonDisabled: props.bindButtonDisabled,
195
+ bindButtonText: props.bindButtonText,
196
+ bindEvent: props.bindEvent,
189
197
  title: _i18next.default.t(`${_constants.NS_LIBS_CMDB_INSTANCES}:${_constants.K.VIEW_ALL_SELECTED_INSTANCES}`),
190
198
  presetConfigs: {
191
199
  query: {
@@ -198,6 +206,7 @@ function CmdbInstancesSelectPanel(props, ref) {
198
206
  selectDisabled: !props.ipCopy,
199
207
  ipCopy: props.ipCopy,
200
208
  showCloseBtn: props.ipCopy ? true : props.showCloseBtn,
209
+ pageSize: props.addInstancesModalPageSize,
201
210
  showSizeChanger: props.showSizeChanger,
202
211
  pageSizeOptions: props.pageSizeOptions,
203
212
  onCancel: closeAllSelectedInstancesModal
@@ -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","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 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 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 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 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":";;;;;;;;;;AAAA;AACA;AAEA;AAKA;AACA;AACA;AAKA;AACA;AACA;AACA;AACA;AAgDO,SAASA,4CAA4C,CAC1DC,KAAoC,EACiB;EACrD,OAAO,CAAC,IAAAC,aAAK,EACVD,KAAK,CAAgDE,SAAS,CAChE;AACH;AAEO,SAASC,wBAAwB,CACtCH,KAAoC,EACpCI,GAAQ,EACY;EAAA;EACpB,IAAIC,SAA8C;EAClD,IAAIN,4CAA4C,CAACC,KAAK,CAAC,EAAE;IACvDK,SAAS,GAAGL,KAAK,CAACE,SAAS,CAACF,KAAK,CAACM,QAAQ,CAAC;EAC7C,CAAC,MAAM;IACLD,SAAS,GAAGL,KAAK,CAACK,SAAS;EAC7B;EAEA,IAAIL,KAAK,CAACO,YAAY,EAAE;IAAA;IACtB;IACA,MAAMC,aAAa,GAAG,eAAAH,SAAS,kEAAT,WAAWI,IAAI,oDAAf,gBAAiBC,YAAY,KAAI,EAAE;IACzDL,SAAS,GAAG;MACV,GAAGA,SAAS;MACZM,QAAQ,EAAEN,SAAS,CAACM,QAAQ,CAACC,MAAM,CAChCC,IAAS,IAAK,CAACL,aAAa,CAACM,QAAQ,CAACD,IAAI,CAACE,EAAE,CAAC,CAChD;MACDC,aAAa,EAAEX,SAAS,CAACW,aAAa,CAACJ,MAAM,CAC1CC,IAAS,IACR,EACGL,aAAa,CAACM,QAAQ,CAACD,IAAI,CAACI,OAAO,CAAC,IACnCJ,IAAI,CAACK,cAAc,KAAKlB,KAAK,CAACM,QAAQ,IACvCE,aAAa,CAACM,QAAQ,CAACD,IAAI,CAACM,QAAQ,CAAC,IACpCN,IAAI,CAACO,eAAe,KAAKpB,KAAK,CAACM,QAAS,CAC3C;IAEP,CAAC;EACH;EAEA,MAAMe,mCAAmC,4BAAGrB,KAAK,CAACsB,gBAAgB,yEAAI,CAAC;EAEvE,MAAM,CAACC,oBAAoB,EAAEC,uBAAuB,CAAC,GAAG,IAAAC,eAAQ,EAAC,EAAE,CAAC;EACpE,MAAM,CAACC,wBAAwB,EAAEC,2BAA2B,CAAC,GAAG,IAAAF,eAAQ,EAAC,EAAE,CAAC;EAC5E;EACA,MAAM,CAACG,iBAAiB,EAAEC,oBAAoB,CAAC,GAAG,IAAAJ,eAAQ,EAAC;IACzDK,OAAO,EAAE;EACX,CAAC,CAAC;EACF,MAAM,CAACC,yBAAyB,EAAEC,4BAA4B,CAAC,GAAG,IAAAP,eAAQ,EAAC;IACzEK,OAAO,EAAE;EACX,CAAC,CAAC;EACF,MAAM,CAACG,QAAQ,EAAEC,WAAW,CAAC,GAAG,IAAAT,eAAQ,EAAC,CAAC,CAAC,CAAC;EAE5C,MAAMU,cAAc,GAAG,MAAOC,cAAwB,IAAqB;IACzE,IAAIC,SAAgB,GAAG,EAAE;IACzB,IAAID,cAAc,aAAdA,cAAc,eAAdA,cAAc,CAAEE,MAAM,EAAE;MAAA;MAC1BD,SAAS,GAAG,CACV,MAAM,IAAAE,+BAAsB,EAACvC,KAAK,CAACM,QAAQ,EAAE;QAC3CkC,KAAK,EAAE;UACLC,UAAU,EAAE;YACVC,GAAG,EAAEN;UACP;QACF,CAAC;QACDO,IAAI,EAAE,CAAC;QACPC,SAAS,EAAER,cAAc,CAACE,MAAM;QAChC;QACAO,MAAM,EAAE,iBAAA7C,KAAK,CAAC6C,MAAM,0CAAZ,cAAcP,MAAM,GACxBtC,KAAK,CAAC6C,MAAM,CAACC,MAAM,CACjB,CAACC,IAAI,EAAEC,IAAI,MAAM;UAAE,GAAGD,IAAI;UAAE,CAACC,IAAI,GAAG;QAAK,CAAC,CAAC,EAC3C,CAAC,CAAC,CACH,GACD;UAAE,GAAG,EAAE;QAAK;MAClB,CAAC,CAAC,EACFC,IAAI;IACR;IAEA,OAAOZ,SAAS;EAClB,CAAC;EACD,MAAMa,iBAAiB,GACrB,iBAAAlD,KAAK,CAACmD,KAAK,iDAAX,aAAaC,GAAG,CAAEC,CAAC,IAAM,IAAAC,gBAAQ,EAACD,CAAC,CAAC,GAAIA,CAAC,CAASZ,UAAU,GAAGY,CAAE,CAAC,KAAI,EAAE;EAE1E,IAAAE,gBAAS,EAAC,MAAM;IACd,MAAMC,WAAW,GAAG,YAA2B;MAC7C,IAAIvB,QAA6D;MAEjE,IAAIlC,4CAA4C,CAACC,KAAK,CAAC,EAAE;QACvDiC,QAAQ,GAAGjC,KAAK,CAACE,SAAS;MAC5B,CAAC,MAAM;QACL,MAAM;UAAEuD;QAAK,CAAC,GAAG,MAAM,IAAAC,mCAA0B,EAAC;UAChDC,UAAU,EAAE3D,KAAK,CAACM;QACpB,CAAC,CAAC;QACF2B,QAAQ,GAAG,IAAA2B,aAAK,EAACH,IAAI,EAAE,UAAU,CAAC;MACpC;MACAvB,WAAW,CAACD,QAAQ,CAAC;IACvB,CAAC;IACDuB,WAAW,EAAE;EACf,CAAC,EAAE,CAACxD,KAAK,CAACM,QAAQ,CAAC,CAAC;EAEpB,IAAAiD,gBAAS,EAAC,MAAM;IACd,IAAIlB,SAAS,GAAG,EAAE;IAElB,MAAMwB,aAAa,GAAG,YAA2B;MAAA;MAC/CxB,SAAS,GAAG,MAAMF,cAAc,CAACe,iBAAiB,CAAC;MACnD1B,uBAAuB,CAACa,SAAS,CAAC;MAClCV,2BAA2B,CACzB3B,KAAK,aAALA,KAAK,eAALA,KAAK,CAAE8D,SAAS,GACZzB,SAAS,GACTA,SAAS,CAAC0B,KAAK,CAAC,CAAC,EAAE1C,mCAAmC,CAAC,CAC5D;MACD,yBAAArB,KAAK,CAACgE,kBAAkB,0DAAxB,2BAAAhE,KAAK,EAAsBqC,SAAS,CAAC;IACvC,CAAC;IACD,IAAI,CAAC,IAAA4B,eAAO,EAACf,iBAAiB,CAAC,EAAE;MAC/BW,aAAa,EAAE;IACjB,CAAC,MAAM;MACLrC,uBAAuB,CAAC,EAAE,CAAC;MAC3BG,2BAA2B,CAAC,EAAE,CAAC;IACjC;EACF,CAAC,EAAE,CAACuB,iBAAiB,CAACgB,IAAI,EAAE,CAACC,IAAI,EAAE,CAAC,CAAC;EACrC,MAAMC,qBAAqB,GAAG,MAAM;IAClCvC,oBAAoB,CAAC;MAAEC,OAAO,EAAE;IAAK,CAAC,CAAC;EACzC,CAAC;EAED,MAAMuC,sBAAsB,GAAG,MAAM;IACnCxC,oBAAoB,CAAC;MAAEC,OAAO,EAAE;IAAM,CAAC,CAAC;EAC1C,CAAC;EAED,MAAMwC,6BAA6B,GAAG,MAAM;IAC1CtC,4BAA4B,CAAC;MAAEF,OAAO,EAAE;IAAK,CAAC,CAAC;EACjD,CAAC;EAED,MAAMyC,8BAA8B,GAAG,MAAM;IAC3CvC,4BAA4B,CAAC;MAAEF,OAAO,EAAE;IAAM,CAAC,CAAC;EAClD,CAAC;EAED,MAAM0C,uBAAuB,GAAG,MAAOC,YAAsB,IAAK;IAAA;IAChEJ,sBAAsB,EAAE;IAExB,MAAMhC,SAAS,GAAG,MAAMF,cAAc,CAACsC,YAAY,CAAC;IACpDjD,uBAAuB,CAACa,SAAS,CAAC;IAClCV,2BAA2B,CACzB3B,KAAK,aAALA,KAAK,eAALA,KAAK,CAAE8D,SAAS,GACZzB,SAAS,GACTA,SAAS,CAAC0B,KAAK,CAAC,CAAC,EAAE1C,mCAAmC,CAAC,CAC5D;IACD,mBAAArB,KAAK,CAAC0E,QAAQ,oDAAd,qBAAA1E,KAAK,EAAYqC,SAAS,CAAC;EAC7B,CAAC;EAED,MAAMsC,QAAQ,GAAG,IAAAC,0BAAe,EAACvE,SAAS,CAAC,CAACM,QAAQ,CAACyC,GAAG,CACrDyB,IAAS,IAAKA,IAAI,CAAC9D,EAAE,CACvB;EACD,MAAM+D,WAAW,GACfvD,oBAAoB,CAACe,MAAM,GAAGjB,mCAAmC;EACnE,MAAM0D,EAAE,GAAG,IAAAC,mBAAU,EAAC;IACpB,CAACC,oBAAK,CAACC,6BAA6B,GAAG,IAAI;IAC3C,CAACD,oBAAK,CAACE,WAAW,GAAGL;EACvB,CAAC,CAAC;EACF,MAAM;IAAEM;EAAS,CAAC,GAAGpF,KAAK;EAC1B,IAAIqF,aAAa;EACjB,IAAI,CAAAD,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEE,SAAS,MAAK,CAAC,EAAE;IAC7BD,aAAa,GAAG;MAAE,CAACD,QAAQ,CAACjE,QAAQ,GAAG;QAAEoE,KAAK,EAAE;UAAEC,GAAG,EAAE;QAAE;MAAE;IAAE,CAAC;EAChE;EACA,MAAMhD,KAAK,2BAAGxC,KAAK,CAACyF,aAAa,uEAAIJ,aAAa;EAClD,oBACE;IAAK,SAAS,EAAEJ,oBAAK,CAACS,OAAQ;IAAC,GAAG,EAAEtF;EAAI,gBACtC,6BAAC,oCAAiB;IAChB,SAAS,EAAE6B,QAAS;IACpB,QAAQ,EAAEjC,KAAK,CAACM,QAAS;IACzB,OAAO,EAAEsB,iBAAiB,CAACE,OAAQ;IACnC,KAAK,uBACH9B,KAAK,CAAC2F,UAAU,iEAChBC,gBAAI,CAACC,CAAC,CAAE,GAAEC,iCAAuB,IAAGC,YAAC,CAACC,gBAAiB,EAAC,EAAE;MACxDC,IAAI,EAAE5F,SAAS,CAAC4F;IAClB,CAAC,CACF;IACD,eAAe,EAAE1E,oBAAoB,CAAC6B,GAAG,CACtC8C,QAAQ,IAAKA,QAAQ,CAACzD,UAAU,CACjC;IACF,UAAU,EAAE+B,uBAAwB;IACpC,QAAQ,EAAEH,sBAAuB;IACjC,YAAY,EAAErE,KAAK,CAACmG,YAAa;IACjC,aAAa,EAAE;MACb3D,KAAK;MACLmC,QAAQ,EAAE3E,KAAK,CAAC6C;IAClB,CAAE;IACF,QAAQ,EAAE7C,KAAK,CAACoG,yBAA0B;IAC1C,cAAc,EAAEpG,KAAK,CAACqG,cAAe;IACrC,sBAAsB,EAAErG,KAAK,CAACsG,sBAAuB;IACrD,MAAM,EAAEtG,KAAK,CAACuG,MAAO;IACrB,YAAY,EAAEvG,KAAK,CAACwG,YAAa;IACjC,eAAe,EAAExG,KAAK,CAACyG,eAAgB;IACvC,eAAe,EAAEzG,KAAK,CAAC0G,eAAgB;IACvC,EAAE,EAAE1G,KAAK,CAAC2G;EAAG,EACb,eACF,6BAAC,oCAAiB;IAChB,SAAS,EAAE1E,QAAS;IACpB,QAAQ,EAAEjC,KAAK,CAACM,QAAS;IACzB,OAAO,EAAEyB,yBAAyB,CAACD,OAAQ;IAC3C,KAAK,EAAE8D,gBAAI,CAACC,CAAC,CACV,GAAEC,iCAAuB,IAAGC,YAAC,CAACa,2BAA4B,EAAC,CAC5D;IACF,aAAa,EAAE;MACbpE,KAAK,EAAE;QACLC,UAAU,EAAE;UACVC,GAAG,EAAEnB,oBAAoB,CAAC6B,GAAG,CAAE8C,QAAQ,IAAKA,QAAQ,CAACzD,UAAU;QACjE;MACF,CAAC;MACDkC,QAAQ,EAAE3E,KAAK,CAAC6C;IAClB,CAAE;IACF,cAAc,EAAE,CAAC7C,KAAK,CAACuG,MAAO;IAC9B,MAAM,EAAEvG,KAAK,CAACuG,MAAO;IACrB,YAAY,EAAEvG,KAAK,CAACuG,MAAM,GAAG,IAAI,GAAGvG,KAAK,CAACwG,YAAa;IACvD,eAAe,EAAExG,KAAK,CAACyG,eAAgB;IACvC,eAAe,EAAEzG,KAAK,CAAC0G,eAAgB;IACvC,QAAQ,EAAEnC;EAA+B,EACzC,eACF,6BAAC,UAAI;IACH,KAAK,EAAE;MAAEsC,SAAS,EAAE,MAAM;MAAEC,YAAY,EAAE;IAAO,CAAE;IACnD,QAAQ,EAAE,IAAAC,eAAO,EAAC9E,QAAQ,EAAE,CAAC,CAAC;EAAE,gBAEhC;IACE,SAAS,EAAEgD,oBAAK,CAAC+B,SAAU;IAC3B,KAAK,EAAE;MACLF,YAAY,EAAE;IAChB,CAAE;IACF,OAAO,EAAE1C;EAAsB,sBAE9BpE,KAAK,CAACiH,QAAQ,6DACbrB,gBAAI,CAACC,CAAC,CAAE,GAAEC,iCAAuB,IAAGC,YAAC,CAACmB,eAAgB,EAAC,CAAC,CACxD,CACC,eACP;IAAK,SAAS,EAAEnC;EAAG,gBACjB,6BAAC,oCAAiB,6BACX/E,KAAK,CAACmH,aAAa,GACpB;IACEC,kBAAkB,EAAE;MAClB,CAACpH,KAAK,CAACM,QAAQ,GACb;IACJ;EACF,CAAC,GACD,CAAC,CAAC;IACN,WAAW,EAAE2B,QAAS;IACtB,SAAS,EAAE5B,SAAU;IACrB,gBAAgB,EAAE;MAAE4C,IAAI,EAAEvB;IAAyB,CAAE;IACrD,QAAQ,EAAE1B,KAAK,CAAC6C,MAAM,IAAI8B,QAAS;IACnC,cAAc,EAAE,IAAK;IACrB,YAAY,EAAE,IAAK;IACnB,WAAW,EACT3E,KAAK,CAACqH,cAAc,IAAI3F,wBAAwB,CAACY,MAAM,GAAG,EAAE,GACxD;MAAEgF,UAAU,EAAE;QAAEb,eAAe,EAAE;MAAK;IAAE,CAAC,GACzC;MAAEa,UAAU,EAAE;IAAM;IAE1B;IAAA;IACA,SAAS,EAAEtH,KAAK,CAAC8D,SAAU;IAC3B,oBAAoB,EAAGyD,CAAC,IAAK;MAAA;MAC3B/F,uBAAuB,CAAC+F,CAAC,CAAC;MAC1B5F,2BAA2B,CAAC4F,CAAC,CAAC;MAC9B,oBAAAvH,KAAK,CAAC0E,QAAQ,qDAAd,sBAAA1E,KAAK,EAAYuH,CAAC,CAAC;IACrB,CAAE;IACF,MAAM,EAAE;EAAS,GACE,EACpB,EAACvH,KAAK,aAALA,KAAK,eAALA,KAAK,CAAE8D,SAAS,KAAIgB,WAAW,iBAC/B;IACE,SAAS,EAAEG,oBAAK,CAACuC,8BAA+B;IAChD,OAAO,EAAElD;EAA8B,gBAEvC,wCACGsB,gBAAI,CAACC,CAAC,CAAE,GAAEC,iCAAuB,IAAGC,YAAC,CAAC0B,aAAc,EAAC,EAAE;IACtDC,KAAK,EAAEnG,oBAAoB,CAACe;EAC9B,CAAC,CAAC,CACA,CAEP,CACG,CACF;AAEV"}
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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"}
@@ -72,7 +72,8 @@ function InstanceListModal(props) {
72
72
  const {
73
73
  showBindButton,
74
74
  bindButtonDisabled,
75
- disabledTooltip
75
+ disabledTooltip,
76
+ bindButtonText
76
77
  } = props;
77
78
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, !!showBindButton && (bindButtonDisabled ? /*#__PURE__*/_react.default.createElement(_antd.Tooltip, {
78
79
  title: disabledTooltip || _i18next.default.t(`${_constants.NS_LIBS_CMDB_INSTANCES}:${_constants.K.PERMISSION_DENIED}`)
@@ -82,13 +83,13 @@ function InstanceListModal(props) {
82
83
  left: "24px"
83
84
  },
84
85
  disabled: true
85
- }, _i18next.default.t(`${_constants.NS_LIBS_CMDB_INSTANCES}:${_constants.K.CREATE_AND_BIND}`))) : /*#__PURE__*/_react.default.createElement(_antd.Button, {
86
+ }, bindButtonText || _i18next.default.t(`${_constants.NS_LIBS_CMDB_INSTANCES}:${_constants.K.CREATE_AND_BIND}`))) : /*#__PURE__*/_react.default.createElement(_antd.Button, {
86
87
  style: {
87
88
  position: "absolute",
88
89
  left: "24px"
89
90
  },
90
91
  onClick: props.bindEvent
91
- }, _i18next.default.t(`${_constants.NS_LIBS_CMDB_INSTANCES}:${_constants.K.CREATE_AND_BIND}`))), props.singleSelect && selectedInstanceListTemp.length > 1 && /*#__PURE__*/_react.default.createElement("span", {
92
+ }, bindButtonText || _i18next.default.t(`${_constants.NS_LIBS_CMDB_INSTANCES}:${_constants.K.CREATE_AND_BIND}`))), props.singleSelect && selectedInstanceListTemp.length > 1 && /*#__PURE__*/_react.default.createElement("span", {
92
93
  style: {
93
94
  color: "#ff0016",
94
95
  marginRight: "20px"
@@ -1 +1 @@
1
- {"version":3,"file":"InstanceListModal.js","names":["addResourceBundle","InstanceListModal","props","selectedInstanceListTemp","setSelectedInstanceListTemp","useState","handleOk","length","every","i","resp","InstanceApi_postSearch","objectId","query","instanceId","$in","page_size","onSelected","onSelectedV2","list","map","selectedInstance","handleCancel","selectedRowKeys","onCancel","handleSelectionChange","event","selectedItems","selectedKeys","handlePaginationChange","getPaginationData","presetConfigs","fixAliveHosts","_agentStatus","React","useEffect","filter","Boolean","renderFooter","showBindButton","bindButtonDisabled","disabledTooltip","i18n","t","NS_LIBS_CMDB_INSTANCES","K","PERMISSION_DENIED","position","left","CREATE_AND_BIND","bindEvent","singleSelect","color","marginRight","ONLY_ONE_INSTANCE_TO_ALLOWED","selectDisabled","showCloseBtn","CLOSE","CANCEL","CONFIRM","title","visible","modalZIndex","maxHeight","overflow","aq","q","Object","values","objectMap","extraFilterBricks","permission","instanceSourceQuery","searchDisabled","filterInstanceSourceDisabled","advancedSearchDisabled","aliveHostsDisabled","relatedToMeDisabled","moreButtonsDisabled","sortDisabled","showSizeChanger","pageSizeOptions","pageSize","page","defaultQuery","enableSearchByApp","hideSearchConditions","isInstanceFilterForm","ipCopy","rowSelectionType","extraFixedFields","limitInstanceRange","showFilterInstanceSource","filterInstanceSource","onFilterInstanceSourceChange","objectIdQuery","onFilterObjectIdChange"],"sources":["../../../src/instance-list-modal/InstanceListModal.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { WarningOutlined } from \"@ant-design/icons\";\nimport { Modal, Button, Tooltip } from \"antd\";\nimport i18n from \"i18next\";\nimport { CmdbModels, InstanceApi_postSearch } from \"@next-sdk/cmdb-sdk\";\nimport { Query } from \"@next-libs/cmdb-utils\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport {\n InstanceList,\n filterObjectIdQuery,\n} from \"../instance-list/InstanceList\";\nimport { InstanceListPresetConfigs } from \"../instance-list-table/interfaces\";\nimport { addResourceBundle } from \"../i18n\";\nimport {\n ReadPaginationChangeDetail,\n UseBrickConf,\n} from \"@next-core/brick-types\";\naddResourceBundle();\nexport interface InstanceListModalProps {\n objectMap: { [key: string]: Partial<CmdbModels.ModelCmdbObject> };\n objectId: string;\n visible: boolean;\n title: React.ReactNode | string;\n q?: string;\n query?: any;\n presetConfigs?: InstanceListPresetConfigs;\n permission?: string[];\n aq?: Query[];\n instanceSourceQuery?: string;\n isInstanceFilterForm?: boolean;\n searchDisabled?: boolean;\n advancedSearchDisabled?: boolean;\n aliveHostsDisabled?: boolean;\n relatedToMeDisabled?: boolean;\n moreButtonsDisabled?: boolean;\n filterInstanceSourceDisabled?: boolean;\n sortDisabled?: boolean;\n selectDisabled?: boolean;\n showCloseBtn?: boolean;\n ipCopy?: boolean;\n singleSelect?: boolean;\n selectedRowKeys?: string[];\n onCancel: () => void;\n onSelected?: (instanceIds: any[]) => void;\n onSelectedV2?: (instanceDataList: any[]) => void;\n modalZIndex?: number;\n pageSize?: number;\n page?: number;\n showSizeChanger?: boolean;\n pageSizeOptions?: string[];\n defaultQuery?: { [fieldId: string]: any }[];\n enableSearchByApp?: boolean;\n hideSearchConditions?: boolean;\n rowSelectionType?: \"checkbox\" | \"radio\";\n getPaginationData?(pagination: ReadPaginationChangeDetail): void;\n extraFixedFields?: string[];\n limitInstanceRange?: boolean;\n extraFilterBricks?: {\n useBrick: UseBrickConf;\n };\n showBindButton?: boolean;\n bindEvent?: () => void;\n bindButtonDisabled?: boolean;\n disabledTooltip?: string;\n // 是否开启实例来源筛选\n showFilterInstanceSource?: boolean;\n filterInstanceSource?: boolean;\n onFilterInstanceSourceChange?(value: boolean): void;\n onFilterObjectIdChange?(value: filterObjectIdQuery): void;\n objectIdQuery?: string;\n}\n\nexport function InstanceListModal(\n props: InstanceListModalProps\n): React.ReactElement {\n const [selectedInstanceListTemp, setSelectedInstanceListTemp] = useState([]);\n\n // istanbul ignore next\n const handleOk = async () => {\n if (\n selectedInstanceListTemp.length &&\n selectedInstanceListTemp.every((i) => typeof i === \"string\")\n ) {\n const resp = await InstanceApi_postSearch(props.objectId, {\n query: {\n instanceId: {\n $in: selectedInstanceListTemp,\n },\n },\n page_size: selectedInstanceListTemp.length,\n });\n props.onSelected?.(selectedInstanceListTemp);\n props.onSelectedV2?.(resp.list);\n return;\n }\n\n props.onSelected?.(\n selectedInstanceListTemp.map(\n (selectedInstance) => selectedInstance.instanceId\n )\n );\n props.onSelectedV2?.(selectedInstanceListTemp);\n };\n // istanbul ignore next\n const handleCancel = () => {\n // reset selected\n setSelectedInstanceListTemp(props.selectedRowKeys ?? []);\n props.onCancel();\n };\n // istanbul ignore next\n const handleSelectionChange = (event: {\n selectedKeys: string[];\n selectedItems: any[];\n }) => {\n if (event.selectedItems.length < event.selectedKeys.length) {\n setSelectedInstanceListTemp(event.selectedKeys);\n } else {\n setSelectedInstanceListTemp(event.selectedItems);\n }\n };\n //istanbul ignore next\n const handlePaginationChange = (event: {\n page: number;\n pageSize: number;\n }) => {\n props.getPaginationData?.(event);\n };\n const presetConfigs = props.presetConfigs ?? {\n query: props.query,\n };\n\n const fixAliveHosts = presetConfigs.query?._agentStatus === \"正常\";\n\n React.useEffect(() => {\n if (props.selectedRowKeys) {\n setSelectedInstanceListTemp(props.selectedRowKeys.filter(Boolean));\n }\n }, [props.selectedRowKeys]);\n\n const renderFooter = (): React.ReactElement => {\n const { showBindButton, bindButtonDisabled, disabledTooltip } = props;\n return (\n <>\n {!!showBindButton &&\n (bindButtonDisabled ? (\n <Tooltip\n title={\n disabledTooltip ||\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.PERMISSION_DENIED}`)\n }\n >\n <Button style={{ position: \"absolute\", left: \"24px\" }} disabled>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CREATE_AND_BIND}`)}\n </Button>\n </Tooltip>\n ) : (\n <Button\n style={{ position: \"absolute\", left: \"24px\" }}\n onClick={props.bindEvent}\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CREATE_AND_BIND}`)}\n </Button>\n ))}\n {props.singleSelect && selectedInstanceListTemp.length > 1 && (\n <span style={{ color: \"#ff0016\", marginRight: \"20px\" }}>\n <WarningOutlined\n style={{ color: \"#ff0016\", marginRight: \"10px\" }}\n />\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ONLY_ONE_INSTANCE_TO_ALLOWED}`\n )}\n </span>\n )}\n {(props.selectDisabled || props.showCloseBtn) && (\n <Button key=\"back\" onClick={props.onCancel}>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLOSE}`)}\n </Button>\n )}\n {!props.selectDisabled && !props.showCloseBtn && (\n <>\n <Button key=\"back\" onClick={handleCancel} type=\"text\">\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CANCEL}`)}\n </Button>\n <Button\n key=\"submit\"\n type=\"primary\"\n onClick={handleOk}\n disabled={\n !selectedInstanceListTemp.length ||\n (props.singleSelect && selectedInstanceListTemp.length > 1)\n }\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CONFIRM}`)}\n </Button>\n </>\n )}\n </>\n );\n };\n return (\n <Modal\n title={props.title}\n visible={props.visible}\n width={900}\n onOk={handleOk}\n onCancel={handleCancel}\n destroyOnClose={true}\n footer={renderFooter()}\n zIndex={props.modalZIndex ?? 1000}\n >\n <div style={{ maxHeight: 720, overflow: \"auto\" }}>\n <InstanceList\n aq={props.aq}\n q={props.q}\n objectId={props.objectId}\n objectList={Object.values(props.objectMap)}\n presetConfigs={presetConfigs}\n extraFilterBricks={props.extraFilterBricks}\n permission={props.permission}\n aliveHosts={fixAliveHosts}\n fixAliveHosts={fixAliveHosts}\n instanceSourceQuery={props.instanceSourceQuery}\n searchDisabled={props.searchDisabled}\n filterInstanceSourceDisabled={props.filterInstanceSourceDisabled}\n advancedSearchDisabled={props.advancedSearchDisabled}\n aliveHostsDisabled={props.aliveHostsDisabled}\n relatedToMeDisabled={props.relatedToMeDisabled}\n moreButtonsDisabled={props.moreButtonsDisabled}\n sortDisabled={props.sortDisabled}\n selectDisabled={props.selectDisabled}\n selectedRowKeys={props.selectedRowKeys}\n onSelectionChange={handleSelectionChange}\n showSizeChanger={props.showSizeChanger}\n pageSizeOptions={props.pageSizeOptions}\n pageSize={props.pageSize || 10}\n page={props.page}\n defaultQuery={props.defaultQuery}\n enableSearchByApp={props.enableSearchByApp}\n hideSearchConditions={props.hideSearchConditions}\n isInstanceFilterForm={props.isInstanceFilterForm}\n ipCopy={props.ipCopy}\n rowSelectionType={props.rowSelectionType}\n onPaginationChange={handlePaginationChange}\n extraFixedFields={props.extraFixedFields}\n limitInstanceRange={props.limitInstanceRange}\n showFilterInstanceSource={props.showFilterInstanceSource}\n filterInstanceSource={props.filterInstanceSource}\n onFilterInstanceSourceChange={props.onFilterInstanceSourceChange}\n objectIdQuery={props.objectIdQuery}\n onFilterObjectIdChange={props.onFilterObjectIdChange}\n />\n </div>\n </Modal>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"InstanceListModal.js","names":["addResourceBundle","InstanceListModal","props","selectedInstanceListTemp","setSelectedInstanceListTemp","useState","handleOk","length","every","i","resp","InstanceApi_postSearch","objectId","query","instanceId","$in","page_size","onSelected","onSelectedV2","list","map","selectedInstance","handleCancel","selectedRowKeys","onCancel","handleSelectionChange","event","selectedItems","selectedKeys","handlePaginationChange","getPaginationData","presetConfigs","fixAliveHosts","_agentStatus","React","useEffect","filter","Boolean","renderFooter","showBindButton","bindButtonDisabled","disabledTooltip","bindButtonText","i18n","t","NS_LIBS_CMDB_INSTANCES","K","PERMISSION_DENIED","position","left","CREATE_AND_BIND","bindEvent","singleSelect","color","marginRight","ONLY_ONE_INSTANCE_TO_ALLOWED","selectDisabled","showCloseBtn","CLOSE","CANCEL","CONFIRM","title","visible","modalZIndex","maxHeight","overflow","aq","q","Object","values","objectMap","extraFilterBricks","permission","instanceSourceQuery","searchDisabled","filterInstanceSourceDisabled","advancedSearchDisabled","aliveHostsDisabled","relatedToMeDisabled","moreButtonsDisabled","sortDisabled","showSizeChanger","pageSizeOptions","pageSize","page","defaultQuery","enableSearchByApp","hideSearchConditions","isInstanceFilterForm","ipCopy","rowSelectionType","extraFixedFields","limitInstanceRange","showFilterInstanceSource","filterInstanceSource","onFilterInstanceSourceChange","objectIdQuery","onFilterObjectIdChange"],"sources":["../../../src/instance-list-modal/InstanceListModal.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { WarningOutlined } from \"@ant-design/icons\";\nimport { Modal, Button, Tooltip } from \"antd\";\nimport i18n from \"i18next\";\nimport { CmdbModels, InstanceApi_postSearch } from \"@next-sdk/cmdb-sdk\";\nimport { Query } from \"@next-libs/cmdb-utils\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport {\n InstanceList,\n filterObjectIdQuery,\n} from \"../instance-list/InstanceList\";\nimport { InstanceListPresetConfigs } from \"../instance-list-table/interfaces\";\nimport { addResourceBundle } from \"../i18n\";\nimport {\n ReadPaginationChangeDetail,\n UseBrickConf,\n} from \"@next-core/brick-types\";\naddResourceBundle();\nexport interface InstanceListModalProps {\n objectMap: { [key: string]: Partial<CmdbModels.ModelCmdbObject> };\n objectId: string;\n visible: boolean;\n title: React.ReactNode | string;\n q?: string;\n query?: any;\n presetConfigs?: InstanceListPresetConfigs;\n permission?: string[];\n aq?: Query[];\n instanceSourceQuery?: string;\n isInstanceFilterForm?: boolean;\n searchDisabled?: boolean;\n advancedSearchDisabled?: boolean;\n aliveHostsDisabled?: boolean;\n relatedToMeDisabled?: boolean;\n moreButtonsDisabled?: boolean;\n filterInstanceSourceDisabled?: boolean;\n sortDisabled?: boolean;\n selectDisabled?: boolean;\n showCloseBtn?: boolean;\n ipCopy?: boolean;\n singleSelect?: boolean;\n selectedRowKeys?: string[];\n onCancel: () => void;\n onSelected?: (instanceIds: any[]) => void;\n onSelectedV2?: (instanceDataList: any[]) => void;\n modalZIndex?: number;\n pageSize?: number;\n page?: number;\n showSizeChanger?: boolean;\n pageSizeOptions?: string[];\n defaultQuery?: { [fieldId: string]: any }[];\n enableSearchByApp?: boolean;\n hideSearchConditions?: boolean;\n rowSelectionType?: \"checkbox\" | \"radio\";\n getPaginationData?(pagination: ReadPaginationChangeDetail): void;\n extraFixedFields?: string[];\n limitInstanceRange?: boolean;\n extraFilterBricks?: {\n useBrick: UseBrickConf;\n };\n showBindButton?: boolean;\n bindEvent?: () => void;\n bindButtonDisabled?: boolean;\n bindButtonText?: string;\n disabledTooltip?: string;\n // 是否开启实例来源筛选\n showFilterInstanceSource?: boolean;\n filterInstanceSource?: boolean;\n onFilterInstanceSourceChange?(value: boolean): void;\n onFilterObjectIdChange?(value: filterObjectIdQuery): void;\n objectIdQuery?: string;\n}\n\nexport function InstanceListModal(\n props: InstanceListModalProps\n): React.ReactElement {\n const [selectedInstanceListTemp, setSelectedInstanceListTemp] = useState([]);\n\n // istanbul ignore next\n const handleOk = async () => {\n if (\n selectedInstanceListTemp.length &&\n selectedInstanceListTemp.every((i) => typeof i === \"string\")\n ) {\n const resp = await InstanceApi_postSearch(props.objectId, {\n query: {\n instanceId: {\n $in: selectedInstanceListTemp,\n },\n },\n page_size: selectedInstanceListTemp.length,\n });\n props.onSelected?.(selectedInstanceListTemp);\n props.onSelectedV2?.(resp.list);\n return;\n }\n\n props.onSelected?.(\n selectedInstanceListTemp.map(\n (selectedInstance) => selectedInstance.instanceId\n )\n );\n props.onSelectedV2?.(selectedInstanceListTemp);\n };\n // istanbul ignore next\n const handleCancel = () => {\n // reset selected\n setSelectedInstanceListTemp(props.selectedRowKeys ?? []);\n props.onCancel();\n };\n // istanbul ignore next\n const handleSelectionChange = (event: {\n selectedKeys: string[];\n selectedItems: any[];\n }) => {\n if (event.selectedItems.length < event.selectedKeys.length) {\n setSelectedInstanceListTemp(event.selectedKeys);\n } else {\n setSelectedInstanceListTemp(event.selectedItems);\n }\n };\n //istanbul ignore next\n const handlePaginationChange = (event: {\n page: number;\n pageSize: number;\n }) => {\n props.getPaginationData?.(event);\n };\n const presetConfigs = props.presetConfigs ?? {\n query: props.query,\n };\n\n const fixAliveHosts = presetConfigs.query?._agentStatus === \"正常\";\n\n React.useEffect(() => {\n if (props.selectedRowKeys) {\n setSelectedInstanceListTemp(props.selectedRowKeys.filter(Boolean));\n }\n }, [props.selectedRowKeys]);\n\n const renderFooter = (): React.ReactElement => {\n const {\n showBindButton,\n bindButtonDisabled,\n disabledTooltip,\n bindButtonText,\n } = props;\n return (\n <>\n {!!showBindButton &&\n (bindButtonDisabled ? (\n <Tooltip\n title={\n disabledTooltip ||\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.PERMISSION_DENIED}`)\n }\n >\n <Button style={{ position: \"absolute\", left: \"24px\" }} disabled>\n {bindButtonText ||\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CREATE_AND_BIND}`)}\n </Button>\n </Tooltip>\n ) : (\n <Button\n style={{ position: \"absolute\", left: \"24px\" }}\n onClick={props.bindEvent}\n >\n {bindButtonText ||\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CREATE_AND_BIND}`)}\n </Button>\n ))}\n {props.singleSelect && selectedInstanceListTemp.length > 1 && (\n <span style={{ color: \"#ff0016\", marginRight: \"20px\" }}>\n <WarningOutlined\n style={{ color: \"#ff0016\", marginRight: \"10px\" }}\n />\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ONLY_ONE_INSTANCE_TO_ALLOWED}`\n )}\n </span>\n )}\n {(props.selectDisabled || props.showCloseBtn) && (\n <Button key=\"back\" onClick={props.onCancel}>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLOSE}`)}\n </Button>\n )}\n {!props.selectDisabled && !props.showCloseBtn && (\n <>\n <Button key=\"back\" onClick={handleCancel} type=\"text\">\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CANCEL}`)}\n </Button>\n <Button\n key=\"submit\"\n type=\"primary\"\n onClick={handleOk}\n disabled={\n !selectedInstanceListTemp.length ||\n (props.singleSelect && selectedInstanceListTemp.length > 1)\n }\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CONFIRM}`)}\n </Button>\n </>\n )}\n </>\n );\n };\n return (\n <Modal\n title={props.title}\n visible={props.visible}\n width={900}\n onOk={handleOk}\n onCancel={handleCancel}\n destroyOnClose={true}\n footer={renderFooter()}\n zIndex={props.modalZIndex ?? 1000}\n >\n <div style={{ maxHeight: 720, overflow: \"auto\" }}>\n <InstanceList\n aq={props.aq}\n q={props.q}\n objectId={props.objectId}\n objectList={Object.values(props.objectMap)}\n presetConfigs={presetConfigs}\n extraFilterBricks={props.extraFilterBricks}\n permission={props.permission}\n aliveHosts={fixAliveHosts}\n fixAliveHosts={fixAliveHosts}\n instanceSourceQuery={props.instanceSourceQuery}\n searchDisabled={props.searchDisabled}\n filterInstanceSourceDisabled={props.filterInstanceSourceDisabled}\n advancedSearchDisabled={props.advancedSearchDisabled}\n aliveHostsDisabled={props.aliveHostsDisabled}\n relatedToMeDisabled={props.relatedToMeDisabled}\n moreButtonsDisabled={props.moreButtonsDisabled}\n sortDisabled={props.sortDisabled}\n selectDisabled={props.selectDisabled}\n selectedRowKeys={props.selectedRowKeys}\n onSelectionChange={handleSelectionChange}\n showSizeChanger={props.showSizeChanger}\n pageSizeOptions={props.pageSizeOptions}\n pageSize={props.pageSize || 10}\n page={props.page}\n defaultQuery={props.defaultQuery}\n enableSearchByApp={props.enableSearchByApp}\n hideSearchConditions={props.hideSearchConditions}\n isInstanceFilterForm={props.isInstanceFilterForm}\n ipCopy={props.ipCopy}\n rowSelectionType={props.rowSelectionType}\n onPaginationChange={handlePaginationChange}\n extraFixedFields={props.extraFixedFields}\n limitInstanceRange={props.limitInstanceRange}\n showFilterInstanceSource={props.showFilterInstanceSource}\n filterInstanceSource={props.filterInstanceSource}\n onFilterInstanceSourceChange={props.onFilterInstanceSourceChange}\n objectIdQuery={props.objectIdQuery}\n onFilterObjectIdChange={props.onFilterObjectIdChange}\n />\n </div>\n </Modal>\n );\n}\n"],"mappings":"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"}
@@ -185,6 +185,10 @@ export function CmdbInstancesSelectPanel(props, ref) {
185
185
  query,
186
186
  fieldIds: props.fields
187
187
  },
188
+ showBindButton: props.showBindButton,
189
+ bindButtonDisabled: props.bindButtonDisabled,
190
+ bindButtonText: props.bindButtonText,
191
+ bindEvent: props.bindEvent,
188
192
  pageSize: props.addInstancesModalPageSize,
189
193
  searchDisabled: props.searchDisabled,
190
194
  advancedSearchDisabled: props.advancedSearchDisabled,
@@ -197,6 +201,10 @@ export function CmdbInstancesSelectPanel(props, ref) {
197
201
  objectMap: modelMap,
198
202
  objectId: props.objectId,
199
203
  visible: allSelectedInstancesModal.visible,
204
+ showBindButton: props.showBindButton,
205
+ bindButtonDisabled: props.bindButtonDisabled,
206
+ bindButtonText: props.bindButtonText,
207
+ bindEvent: props.bindEvent,
200
208
  title: i18n.t("".concat(NS_LIBS_CMDB_INSTANCES, ":").concat(K.VIEW_ALL_SELECTED_INSTANCES)),
201
209
  presetConfigs: {
202
210
  query: {
@@ -209,6 +217,7 @@ export function CmdbInstancesSelectPanel(props, ref) {
209
217
  selectDisabled: !props.ipCopy,
210
218
  ipCopy: props.ipCopy,
211
219
  showCloseBtn: props.ipCopy ? true : props.showCloseBtn,
220
+ pageSize: props.addInstancesModalPageSize,
212
221
  showSizeChanger: props.showSizeChanger,
213
222
  pageSizeOptions: props.pageSizeOptions,
214
223
  onCancel: closeAllSelectedInstancesModal
@@ -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","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 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 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 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 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":";;;AAAA,OAAOA,KAAK,IAAIC,QAAQ,EAAEC,SAAS,QAAQ,OAAO;AAClD,OAAOC,UAAU,MAAM,YAAY;AAEnC,SAEEC,sBAAsB,EACtBC,0BAA0B,QACrB,oBAAoB;AAC3B,SAASC,iBAAiB,QAAQ,wBAAwB;AAC1D,SAASC,iBAAiB,QAAQ,0CAA0C;AAC5E,SACEC,eAAe,QAGV,uBAAuB;AAC9B,OAAOC,KAAK,MAAM,oBAAoB;AACtC,OAAOC,IAAI,MAAM,SAAS;AAC1B,SAASC,CAAC,EAAEC,sBAAsB,QAAQ,mBAAmB;AAC7D,SAASC,KAAK,EAAEC,OAAO,EAAEC,KAAK,EAAEC,QAAQ,EAAEC,OAAO,QAAQ,QAAQ;AACjE,SAASC,IAAI,QAAQ,MAAM;AAgD3B,OAAO,SAASC,4CAA4C,CAC1DC,KAAoC,EACiB;EACrD,OAAO,CAACL,KAAK,CACVK,KAAK,CAAgDC,SAAS,CAChE;AACH;AAEA,OAAO,SAASC,wBAAwB,CACtCF,KAAoC,EACpCG,GAAQ,EACY;EAAA;EACpB,IAAIC,SAA8C;EAClD,IAAIL,4CAA4C,CAACC,KAAK,CAAC,EAAE;IACvDI,SAAS,GAAGJ,KAAK,CAACC,SAAS,CAACD,KAAK,CAACK,QAAQ,CAAC;EAC7C,CAAC,MAAM;IACLD,SAAS,GAAGJ,KAAK,CAACI,SAAS;EAC7B;EAEA,IAAIJ,KAAK,CAACM,YAAY,EAAE;IAAA;IACtB;IACA,IAAMC,aAAa,GAAG,eAAAH,SAAS,kEAAT,WAAWI,IAAI,oDAAf,gBAAiBC,YAAY,KAAI,EAAE;IACzDL,SAAS,mCACJA,SAAS;MACZM,QAAQ,EAAEN,SAAS,CAACM,QAAQ,CAACC,MAAM,CAChCC,IAAS,IAAK,CAACL,aAAa,CAACM,QAAQ,CAACD,IAAI,CAACE,EAAE,CAAC,CAChD;MACDC,aAAa,EAAEX,SAAS,CAACW,aAAa,CAACJ,MAAM,CAC1CC,IAAS,IACR,EACGL,aAAa,CAACM,QAAQ,CAACD,IAAI,CAACI,OAAO,CAAC,IACnCJ,IAAI,CAACK,cAAc,KAAKjB,KAAK,CAACK,QAAQ,IACvCE,aAAa,CAACM,QAAQ,CAACD,IAAI,CAACM,QAAQ,CAAC,IACpCN,IAAI,CAACO,eAAe,KAAKnB,KAAK,CAACK,QAAS,CAC3C;IACJ,EACF;EACH;EAEA,IAAMe,mCAAmC,4BAAGpB,KAAK,CAACqB,gBAAgB,yEAAI,CAAC;EAEvE,IAAM,CAACC,oBAAoB,EAAEC,uBAAuB,CAAC,GAAG1C,QAAQ,CAAC,EAAE,CAAC;EACpE,IAAM,CAAC2C,wBAAwB,EAAEC,2BAA2B,CAAC,GAAG5C,QAAQ,CAAC,EAAE,CAAC;EAC5E;EACA,IAAM,CAAC6C,iBAAiB,EAAEC,oBAAoB,CAAC,GAAG9C,QAAQ,CAAC;IACzD+C,OAAO,EAAE;EACX,CAAC,CAAC;EACF,IAAM,CAACC,yBAAyB,EAAEC,4BAA4B,CAAC,GAAGjD,QAAQ,CAAC;IACzE+C,OAAO,EAAE;EACX,CAAC,CAAC;EACF,IAAM,CAACG,QAAQ,EAAEC,WAAW,CAAC,GAAGnD,QAAQ,CAAC,CAAC,CAAC,CAAC;EAE5C,IAAMoD,cAAc;IAAA,6BAAG,WAAOC,cAAwB,EAAqB;MACzE,IAAIC,SAAgB,GAAG,EAAE;MACzB,IAAID,cAAc,aAAdA,cAAc,eAAdA,cAAc,CAAEE,MAAM,EAAE;QAAA;QAC1BD,SAAS,GAAG,OACJnD,sBAAsB,CAACgB,KAAK,CAACK,QAAQ,EAAE;UAC3CgC,KAAK,EAAE;YACLC,UAAU,EAAE;cACVC,GAAG,EAAEL;YACP;UACF,CAAC;UACDM,IAAI,EAAE,CAAC;UACPC,SAAS,EAAEP,cAAc,CAACE,MAAM;UAChC;UACAM,MAAM,EAAE,iBAAA1C,KAAK,CAAC0C,MAAM,0CAAZ,cAAcN,MAAM,GACxBpC,KAAK,CAAC0C,MAAM,CAACC,MAAM,CACjB,CAACC,IAAI,EAAEC,IAAI,qCAAWD,IAAI;YAAE,CAACC,IAAI,GAAG;UAAI,EAAG,EAC3C,CAAC,CAAC,CACH,GACD;YAAE,GAAG,EAAE;UAAK;QAClB,CAAC,CAAC,EACFC,IAAI;MACR;MAEA,OAAOX,SAAS;IAClB,CAAC;IAAA,gBAxBKF,cAAc;MAAA;IAAA;EAAA,GAwBnB;EACD,IAAMc,iBAAiB,GACrB,iBAAA/C,KAAK,CAACgD,KAAK,iDAAX,aAAaC,GAAG,CAAEC,CAAC,IAAMtD,QAAQ,CAACsD,CAAC,CAAC,GAAIA,CAAC,CAASZ,UAAU,GAAGY,CAAE,CAAC,KAAI,EAAE;EAE1EpE,SAAS,CAAC,MAAM;IACd,IAAMqE,WAAW;MAAA,8BAAG,aAA2B;QAC7C,IAAIpB,QAA6D;QAEjE,IAAIhC,4CAA4C,CAACC,KAAK,CAAC,EAAE;UACvD+B,QAAQ,GAAG/B,KAAK,CAACC,SAAS;QAC5B,CAAC,MAAM;UACL,IAAM;YAAEmD;UAAK,CAAC,SAASnE,0BAA0B,CAAC;YAChDoE,UAAU,EAAErD,KAAK,CAACK;UACpB,CAAC,CAAC;UACF0B,QAAQ,GAAGtC,KAAK,CAAC2D,IAAI,EAAE,UAAU,CAAC;QACpC;QACApB,WAAW,CAACD,QAAQ,CAAC;MACvB,CAAC;MAAA,gBAZKoB,WAAW;QAAA;MAAA;IAAA,GAYhB;IACDA,WAAW,EAAE;EACf,CAAC,EAAE,CAACnD,KAAK,CAACK,QAAQ,CAAC,CAAC;EAEpBvB,SAAS,CAAC,MAAM;IACd,IAAIqD,SAAS,GAAG,EAAE;IAElB,IAAMmB,aAAa;MAAA,8BAAG,aAA2B;QAAA;QAC/CnB,SAAS,SAASF,cAAc,CAACc,iBAAiB,CAAC;QACnDxB,uBAAuB,CAACY,SAAS,CAAC;QAClCV,2BAA2B,CACzBzB,KAAK,aAALA,KAAK,eAALA,KAAK,CAAEuD,SAAS,GACZpB,SAAS,GACTA,SAAS,CAACqB,KAAK,CAAC,CAAC,EAAEpC,mCAAmC,CAAC,CAC5D;QACD,yBAAApB,KAAK,CAACyD,kBAAkB,0DAAxB,2BAAAzD,KAAK,EAAsBmC,SAAS,CAAC;MACvC,CAAC;MAAA,gBATKmB,aAAa;QAAA;MAAA;IAAA,GASlB;IACD,IAAI,CAACzD,OAAO,CAACkD,iBAAiB,CAAC,EAAE;MAC/BO,aAAa,EAAE;IACjB,CAAC,MAAM;MACL/B,uBAAuB,CAAC,EAAE,CAAC;MAC3BE,2BAA2B,CAAC,EAAE,CAAC;IACjC;EACF,CAAC,EAAE,CAACsB,iBAAiB,CAACW,IAAI,EAAE,CAACC,IAAI,EAAE,CAAC,CAAC;EACrC,IAAMC,qBAAqB,GAAG,MAAM;IAClCjC,oBAAoB,CAAC;MAAEC,OAAO,EAAE;IAAK,CAAC,CAAC;EACzC,CAAC;EAED,IAAMiC,sBAAsB,GAAG,MAAM;IACnClC,oBAAoB,CAAC;MAAEC,OAAO,EAAE;IAAM,CAAC,CAAC;EAC1C,CAAC;EAED,IAAMkC,6BAA6B,GAAG,MAAM;IAC1ChC,4BAA4B,CAAC;MAAEF,OAAO,EAAE;IAAK,CAAC,CAAC;EACjD,CAAC;EAED,IAAMmC,8BAA8B,GAAG,MAAM;IAC3CjC,4BAA4B,CAAC;MAAEF,OAAO,EAAE;IAAM,CAAC,CAAC;EAClD,CAAC;EAED,IAAMoC,uBAAuB;IAAA,8BAAG,WAAOC,YAAsB,EAAK;MAAA;MAChEJ,sBAAsB,EAAE;MAExB,IAAM1B,SAAS,SAASF,cAAc,CAACgC,YAAY,CAAC;MACpD1C,uBAAuB,CAACY,SAAS,CAAC;MAClCV,2BAA2B,CACzBzB,KAAK,aAALA,KAAK,eAALA,KAAK,CAAEuD,SAAS,GACZpB,SAAS,GACTA,SAAS,CAACqB,KAAK,CAAC,CAAC,EAAEpC,mCAAmC,CAAC,CAC5D;MACD,mBAAApB,KAAK,CAACkE,QAAQ,oDAAd,qBAAAlE,KAAK,EAAYmC,SAAS,CAAC;IAC7B,CAAC;IAAA,gBAXK6B,uBAAuB;MAAA;IAAA;EAAA,GAW5B;EAED,IAAMG,QAAQ,GAAG/E,eAAe,CAACgB,SAAS,CAAC,CAACM,QAAQ,CAACuC,GAAG,CACrDmB,IAAS,IAAKA,IAAI,CAACtD,EAAE,CACvB;EACD,IAAMuD,WAAW,GACf/C,oBAAoB,CAACc,MAAM,GAAGhB,mCAAmC;EACnE,IAAMkD,EAAE,GAAGvF,UAAU,CAAC;IACpB,CAACM,KAAK,CAACkF,6BAA6B,GAAG,IAAI;IAC3C,CAAClF,KAAK,CAACmF,WAAW,GAAGH;EACvB,CAAC,CAAC;EACF,IAAM;IAAEI;EAAS,CAAC,GAAGzE,KAAK;EAC1B,IAAI0E,aAAa;EACjB,IAAI,CAAAD,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEE,SAAS,MAAK,CAAC,EAAE;IAC7BD,aAAa,GAAG;MAAE,CAACD,QAAQ,CAACvD,QAAQ,GAAG;QAAE0D,KAAK,EAAE;UAAEC,GAAG,EAAE;QAAE;MAAE;IAAE,CAAC;EAChE;EACA,IAAMxC,KAAK,2BAAGrC,KAAK,CAAC8E,aAAa,uEAAIJ,aAAa;EAClD,oBACE;IAAK,SAAS,EAAErF,KAAK,CAAC0F,OAAQ;IAAC,GAAG,EAAE5E;EAAI,gBACtC,oBAAC,iBAAiB;IAChB,SAAS,EAAE4B,QAAS;IACpB,QAAQ,EAAE/B,KAAK,CAACK,QAAS;IACzB,OAAO,EAAEqB,iBAAiB,CAACE,OAAQ;IACnC,KAAK,uBACH5B,KAAK,CAACgF,UAAU,iEAChB1F,IAAI,CAAC2F,CAAC,WAAIzF,sBAAsB,cAAID,CAAC,CAAC2F,gBAAgB,GAAI;MACxDC,IAAI,EAAE/E,SAAS,CAAC+E;IAClB,CAAC,CACF;IACD,eAAe,EAAE7D,oBAAoB,CAAC2B,GAAG,CACtCmC,QAAQ,IAAKA,QAAQ,CAAC9C,UAAU,CACjC;IACF,UAAU,EAAE0B,uBAAwB;IACpC,QAAQ,EAAEH,sBAAuB;IACjC,YAAY,EAAE7D,KAAK,CAACqF,YAAa;IACjC,aAAa,EAAE;MACbhD,KAAK;MACL8B,QAAQ,EAAEnE,KAAK,CAAC0C;IAClB,CAAE;IACF,QAAQ,EAAE1C,KAAK,CAACsF,yBAA0B;IAC1C,cAAc,EAAEtF,KAAK,CAACuF,cAAe;IACrC,sBAAsB,EAAEvF,KAAK,CAACwF,sBAAuB;IACrD,MAAM,EAAExF,KAAK,CAACyF,MAAO;IACrB,YAAY,EAAEzF,KAAK,CAAC0F,YAAa;IACjC,eAAe,EAAE1F,KAAK,CAAC2F,eAAgB;IACvC,eAAe,EAAE3F,KAAK,CAAC4F,eAAgB;IACvC,EAAE,EAAE5F,KAAK,CAAC6F;EAAG,EACb,eACF,oBAAC,iBAAiB;IAChB,SAAS,EAAE9D,QAAS;IACpB,QAAQ,EAAE/B,KAAK,CAACK,QAAS;IACzB,OAAO,EAAEwB,yBAAyB,CAACD,OAAQ;IAC3C,KAAK,EAAEtC,IAAI,CAAC2F,CAAC,WACRzF,sBAAsB,cAAID,CAAC,CAACuG,2BAA2B,EAC1D;IACF,aAAa,EAAE;MACbzD,KAAK,EAAE;QACLC,UAAU,EAAE;UACVC,GAAG,EAAEjB,oBAAoB,CAAC2B,GAAG,CAAEmC,QAAQ,IAAKA,QAAQ,CAAC9C,UAAU;QACjE;MACF,CAAC;MACD6B,QAAQ,EAAEnE,KAAK,CAAC0C;IAClB,CAAE;IACF,cAAc,EAAE,CAAC1C,KAAK,CAACyF,MAAO;IAC9B,MAAM,EAAEzF,KAAK,CAACyF,MAAO;IACrB,YAAY,EAAEzF,KAAK,CAACyF,MAAM,GAAG,IAAI,GAAGzF,KAAK,CAAC0F,YAAa;IACvD,eAAe,EAAE1F,KAAK,CAAC2F,eAAgB;IACvC,eAAe,EAAE3F,KAAK,CAAC4F,eAAgB;IACvC,QAAQ,EAAE7B;EAA+B,EACzC,eACF,oBAAC,IAAI;IACH,KAAK,EAAE;MAAEgC,SAAS,EAAE,MAAM;MAAEC,YAAY,EAAE;IAAO,CAAE;IACnD,QAAQ,EAAEtG,OAAO,CAACqC,QAAQ,EAAE,CAAC,CAAC;EAAE,gBAEhC;IACE,SAAS,EAAE1C,KAAK,CAAC4G,SAAU;IAC3B,KAAK,EAAE;MACLD,YAAY,EAAE;IAChB,CAAE;IACF,OAAO,EAAEpC;EAAsB,sBAE9B5D,KAAK,CAACkG,QAAQ,6DACb5G,IAAI,CAAC2F,CAAC,WAAIzF,sBAAsB,cAAID,CAAC,CAAC4G,eAAe,EAAG,CACxD,CACC,eACP;IAAK,SAAS,EAAE7B;EAAG,gBACjB,oBAAC,iBAAiB,eACXtE,KAAK,CAACoG,aAAa,GACpB;IACEC,kBAAkB,EAAE;MAClB,CAACrG,KAAK,CAACK,QAAQ,GACb;IACJ;EACF,CAAC,GACD,CAAC,CAAC;IACN,WAAW,EAAE0B,QAAS;IACtB,SAAS,EAAE3B,SAAU;IACrB,gBAAgB,EAAE;MAAE0C,IAAI,EAAEtB;IAAyB,CAAE;IACrD,QAAQ,EAAExB,KAAK,CAAC0C,MAAM,IAAIyB,QAAS;IACnC,cAAc,EAAE,IAAK;IACrB,YAAY,EAAE,IAAK;IACnB,WAAW,EACTnE,KAAK,CAACsG,cAAc,IAAI9E,wBAAwB,CAACY,MAAM,GAAG,EAAE,GACxD;MAAEmE,UAAU,EAAE;QAAEZ,eAAe,EAAE;MAAK;IAAE,CAAC,GACzC;MAAEY,UAAU,EAAE;IAAM;IAE1B;IAAA;IACA,SAAS,EAAEvG,KAAK,CAACuD,SAAU;IAC3B,oBAAoB,EAAGiD,CAAC,IAAK;MAAA;MAC3BjF,uBAAuB,CAACiF,CAAC,CAAC;MAC1B/E,2BAA2B,CAAC+E,CAAC,CAAC;MAC9B,oBAAAxG,KAAK,CAACkE,QAAQ,qDAAd,sBAAAlE,KAAK,EAAYwG,CAAC,CAAC;IACrB,CAAE;IACF,MAAM,EAAE;EAAS,GACE,EACpB,EAACxG,KAAK,aAALA,KAAK,eAALA,KAAK,CAAEuD,SAAS,KAAIc,WAAW,iBAC/B;IACE,SAAS,EAAEhF,KAAK,CAACoH,8BAA+B;IAChD,OAAO,EAAE3C;EAA8B,gBAEvC,+BACGxE,IAAI,CAAC2F,CAAC,WAAIzF,sBAAsB,cAAID,CAAC,CAACmH,aAAa,GAAI;IACtDC,KAAK,EAAErF,oBAAoB,CAACc;EAC9B,CAAC,CAAC,CACA,CAEP,CACG,CACF;AAEV"}
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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"}
@@ -70,7 +70,8 @@ export function InstanceListModal(props) {
70
70
  var {
71
71
  showBindButton,
72
72
  bindButtonDisabled,
73
- disabledTooltip
73
+ disabledTooltip,
74
+ bindButtonText
74
75
  } = props;
75
76
  return /*#__PURE__*/React.createElement(React.Fragment, null, !!showBindButton && (bindButtonDisabled ? /*#__PURE__*/React.createElement(Tooltip, {
76
77
  title: disabledTooltip || i18n.t("".concat(NS_LIBS_CMDB_INSTANCES, ":").concat(K.PERMISSION_DENIED))
@@ -80,13 +81,13 @@ export function InstanceListModal(props) {
80
81
  left: "24px"
81
82
  },
82
83
  disabled: true
83
- }, i18n.t("".concat(NS_LIBS_CMDB_INSTANCES, ":").concat(K.CREATE_AND_BIND)))) : /*#__PURE__*/React.createElement(Button, {
84
+ }, bindButtonText || i18n.t("".concat(NS_LIBS_CMDB_INSTANCES, ":").concat(K.CREATE_AND_BIND)))) : /*#__PURE__*/React.createElement(Button, {
84
85
  style: {
85
86
  position: "absolute",
86
87
  left: "24px"
87
88
  },
88
89
  onClick: props.bindEvent
89
- }, i18n.t("".concat(NS_LIBS_CMDB_INSTANCES, ":").concat(K.CREATE_AND_BIND)))), props.singleSelect && selectedInstanceListTemp.length > 1 && /*#__PURE__*/React.createElement("span", {
90
+ }, bindButtonText || i18n.t("".concat(NS_LIBS_CMDB_INSTANCES, ":").concat(K.CREATE_AND_BIND)))), props.singleSelect && selectedInstanceListTemp.length > 1 && /*#__PURE__*/React.createElement("span", {
90
91
  style: {
91
92
  color: "#ff0016",
92
93
  marginRight: "20px"
@@ -1 +1 @@
1
- {"version":3,"file":"InstanceListModal.js","names":["React","useState","WarningOutlined","Modal","Button","Tooltip","i18n","InstanceApi_postSearch","K","NS_LIBS_CMDB_INSTANCES","InstanceList","addResourceBundle","InstanceListModal","props","selectedInstanceListTemp","setSelectedInstanceListTemp","handleOk","length","every","i","resp","objectId","query","instanceId","$in","page_size","onSelected","onSelectedV2","list","map","selectedInstance","handleCancel","selectedRowKeys","onCancel","handleSelectionChange","event","selectedItems","selectedKeys","handlePaginationChange","getPaginationData","presetConfigs","fixAliveHosts","_agentStatus","useEffect","filter","Boolean","renderFooter","showBindButton","bindButtonDisabled","disabledTooltip","t","PERMISSION_DENIED","position","left","CREATE_AND_BIND","bindEvent","singleSelect","color","marginRight","ONLY_ONE_INSTANCE_TO_ALLOWED","selectDisabled","showCloseBtn","CLOSE","CANCEL","CONFIRM","title","visible","modalZIndex","maxHeight","overflow","aq","q","Object","values","objectMap","extraFilterBricks","permission","instanceSourceQuery","searchDisabled","filterInstanceSourceDisabled","advancedSearchDisabled","aliveHostsDisabled","relatedToMeDisabled","moreButtonsDisabled","sortDisabled","showSizeChanger","pageSizeOptions","pageSize","page","defaultQuery","enableSearchByApp","hideSearchConditions","isInstanceFilterForm","ipCopy","rowSelectionType","extraFixedFields","limitInstanceRange","showFilterInstanceSource","filterInstanceSource","onFilterInstanceSourceChange","objectIdQuery","onFilterObjectIdChange"],"sources":["../../../src/instance-list-modal/InstanceListModal.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { WarningOutlined } from \"@ant-design/icons\";\nimport { Modal, Button, Tooltip } from \"antd\";\nimport i18n from \"i18next\";\nimport { CmdbModels, InstanceApi_postSearch } from \"@next-sdk/cmdb-sdk\";\nimport { Query } from \"@next-libs/cmdb-utils\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport {\n InstanceList,\n filterObjectIdQuery,\n} from \"../instance-list/InstanceList\";\nimport { InstanceListPresetConfigs } from \"../instance-list-table/interfaces\";\nimport { addResourceBundle } from \"../i18n\";\nimport {\n ReadPaginationChangeDetail,\n UseBrickConf,\n} from \"@next-core/brick-types\";\naddResourceBundle();\nexport interface InstanceListModalProps {\n objectMap: { [key: string]: Partial<CmdbModels.ModelCmdbObject> };\n objectId: string;\n visible: boolean;\n title: React.ReactNode | string;\n q?: string;\n query?: any;\n presetConfigs?: InstanceListPresetConfigs;\n permission?: string[];\n aq?: Query[];\n instanceSourceQuery?: string;\n isInstanceFilterForm?: boolean;\n searchDisabled?: boolean;\n advancedSearchDisabled?: boolean;\n aliveHostsDisabled?: boolean;\n relatedToMeDisabled?: boolean;\n moreButtonsDisabled?: boolean;\n filterInstanceSourceDisabled?: boolean;\n sortDisabled?: boolean;\n selectDisabled?: boolean;\n showCloseBtn?: boolean;\n ipCopy?: boolean;\n singleSelect?: boolean;\n selectedRowKeys?: string[];\n onCancel: () => void;\n onSelected?: (instanceIds: any[]) => void;\n onSelectedV2?: (instanceDataList: any[]) => void;\n modalZIndex?: number;\n pageSize?: number;\n page?: number;\n showSizeChanger?: boolean;\n pageSizeOptions?: string[];\n defaultQuery?: { [fieldId: string]: any }[];\n enableSearchByApp?: boolean;\n hideSearchConditions?: boolean;\n rowSelectionType?: \"checkbox\" | \"radio\";\n getPaginationData?(pagination: ReadPaginationChangeDetail): void;\n extraFixedFields?: string[];\n limitInstanceRange?: boolean;\n extraFilterBricks?: {\n useBrick: UseBrickConf;\n };\n showBindButton?: boolean;\n bindEvent?: () => void;\n bindButtonDisabled?: boolean;\n disabledTooltip?: string;\n // 是否开启实例来源筛选\n showFilterInstanceSource?: boolean;\n filterInstanceSource?: boolean;\n onFilterInstanceSourceChange?(value: boolean): void;\n onFilterObjectIdChange?(value: filterObjectIdQuery): void;\n objectIdQuery?: string;\n}\n\nexport function InstanceListModal(\n props: InstanceListModalProps\n): React.ReactElement {\n const [selectedInstanceListTemp, setSelectedInstanceListTemp] = useState([]);\n\n // istanbul ignore next\n const handleOk = async () => {\n if (\n selectedInstanceListTemp.length &&\n selectedInstanceListTemp.every((i) => typeof i === \"string\")\n ) {\n const resp = await InstanceApi_postSearch(props.objectId, {\n query: {\n instanceId: {\n $in: selectedInstanceListTemp,\n },\n },\n page_size: selectedInstanceListTemp.length,\n });\n props.onSelected?.(selectedInstanceListTemp);\n props.onSelectedV2?.(resp.list);\n return;\n }\n\n props.onSelected?.(\n selectedInstanceListTemp.map(\n (selectedInstance) => selectedInstance.instanceId\n )\n );\n props.onSelectedV2?.(selectedInstanceListTemp);\n };\n // istanbul ignore next\n const handleCancel = () => {\n // reset selected\n setSelectedInstanceListTemp(props.selectedRowKeys ?? []);\n props.onCancel();\n };\n // istanbul ignore next\n const handleSelectionChange = (event: {\n selectedKeys: string[];\n selectedItems: any[];\n }) => {\n if (event.selectedItems.length < event.selectedKeys.length) {\n setSelectedInstanceListTemp(event.selectedKeys);\n } else {\n setSelectedInstanceListTemp(event.selectedItems);\n }\n };\n //istanbul ignore next\n const handlePaginationChange = (event: {\n page: number;\n pageSize: number;\n }) => {\n props.getPaginationData?.(event);\n };\n const presetConfigs = props.presetConfigs ?? {\n query: props.query,\n };\n\n const fixAliveHosts = presetConfigs.query?._agentStatus === \"正常\";\n\n React.useEffect(() => {\n if (props.selectedRowKeys) {\n setSelectedInstanceListTemp(props.selectedRowKeys.filter(Boolean));\n }\n }, [props.selectedRowKeys]);\n\n const renderFooter = (): React.ReactElement => {\n const { showBindButton, bindButtonDisabled, disabledTooltip } = props;\n return (\n <>\n {!!showBindButton &&\n (bindButtonDisabled ? (\n <Tooltip\n title={\n disabledTooltip ||\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.PERMISSION_DENIED}`)\n }\n >\n <Button style={{ position: \"absolute\", left: \"24px\" }} disabled>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CREATE_AND_BIND}`)}\n </Button>\n </Tooltip>\n ) : (\n <Button\n style={{ position: \"absolute\", left: \"24px\" }}\n onClick={props.bindEvent}\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CREATE_AND_BIND}`)}\n </Button>\n ))}\n {props.singleSelect && selectedInstanceListTemp.length > 1 && (\n <span style={{ color: \"#ff0016\", marginRight: \"20px\" }}>\n <WarningOutlined\n style={{ color: \"#ff0016\", marginRight: \"10px\" }}\n />\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ONLY_ONE_INSTANCE_TO_ALLOWED}`\n )}\n </span>\n )}\n {(props.selectDisabled || props.showCloseBtn) && (\n <Button key=\"back\" onClick={props.onCancel}>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLOSE}`)}\n </Button>\n )}\n {!props.selectDisabled && !props.showCloseBtn && (\n <>\n <Button key=\"back\" onClick={handleCancel} type=\"text\">\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CANCEL}`)}\n </Button>\n <Button\n key=\"submit\"\n type=\"primary\"\n onClick={handleOk}\n disabled={\n !selectedInstanceListTemp.length ||\n (props.singleSelect && selectedInstanceListTemp.length > 1)\n }\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CONFIRM}`)}\n </Button>\n </>\n )}\n </>\n );\n };\n return (\n <Modal\n title={props.title}\n visible={props.visible}\n width={900}\n onOk={handleOk}\n onCancel={handleCancel}\n destroyOnClose={true}\n footer={renderFooter()}\n zIndex={props.modalZIndex ?? 1000}\n >\n <div style={{ maxHeight: 720, overflow: \"auto\" }}>\n <InstanceList\n aq={props.aq}\n q={props.q}\n objectId={props.objectId}\n objectList={Object.values(props.objectMap)}\n presetConfigs={presetConfigs}\n extraFilterBricks={props.extraFilterBricks}\n permission={props.permission}\n aliveHosts={fixAliveHosts}\n fixAliveHosts={fixAliveHosts}\n instanceSourceQuery={props.instanceSourceQuery}\n searchDisabled={props.searchDisabled}\n filterInstanceSourceDisabled={props.filterInstanceSourceDisabled}\n advancedSearchDisabled={props.advancedSearchDisabled}\n aliveHostsDisabled={props.aliveHostsDisabled}\n relatedToMeDisabled={props.relatedToMeDisabled}\n moreButtonsDisabled={props.moreButtonsDisabled}\n sortDisabled={props.sortDisabled}\n selectDisabled={props.selectDisabled}\n selectedRowKeys={props.selectedRowKeys}\n onSelectionChange={handleSelectionChange}\n showSizeChanger={props.showSizeChanger}\n pageSizeOptions={props.pageSizeOptions}\n pageSize={props.pageSize || 10}\n page={props.page}\n defaultQuery={props.defaultQuery}\n enableSearchByApp={props.enableSearchByApp}\n hideSearchConditions={props.hideSearchConditions}\n isInstanceFilterForm={props.isInstanceFilterForm}\n ipCopy={props.ipCopy}\n rowSelectionType={props.rowSelectionType}\n onPaginationChange={handlePaginationChange}\n extraFixedFields={props.extraFixedFields}\n limitInstanceRange={props.limitInstanceRange}\n showFilterInstanceSource={props.showFilterInstanceSource}\n filterInstanceSource={props.filterInstanceSource}\n onFilterInstanceSourceChange={props.onFilterInstanceSourceChange}\n objectIdQuery={props.objectIdQuery}\n onFilterObjectIdChange={props.onFilterObjectIdChange}\n />\n </div>\n </Modal>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"InstanceListModal.js","names":["React","useState","WarningOutlined","Modal","Button","Tooltip","i18n","InstanceApi_postSearch","K","NS_LIBS_CMDB_INSTANCES","InstanceList","addResourceBundle","InstanceListModal","props","selectedInstanceListTemp","setSelectedInstanceListTemp","handleOk","length","every","i","resp","objectId","query","instanceId","$in","page_size","onSelected","onSelectedV2","list","map","selectedInstance","handleCancel","selectedRowKeys","onCancel","handleSelectionChange","event","selectedItems","selectedKeys","handlePaginationChange","getPaginationData","presetConfigs","fixAliveHosts","_agentStatus","useEffect","filter","Boolean","renderFooter","showBindButton","bindButtonDisabled","disabledTooltip","bindButtonText","t","PERMISSION_DENIED","position","left","CREATE_AND_BIND","bindEvent","singleSelect","color","marginRight","ONLY_ONE_INSTANCE_TO_ALLOWED","selectDisabled","showCloseBtn","CLOSE","CANCEL","CONFIRM","title","visible","modalZIndex","maxHeight","overflow","aq","q","Object","values","objectMap","extraFilterBricks","permission","instanceSourceQuery","searchDisabled","filterInstanceSourceDisabled","advancedSearchDisabled","aliveHostsDisabled","relatedToMeDisabled","moreButtonsDisabled","sortDisabled","showSizeChanger","pageSizeOptions","pageSize","page","defaultQuery","enableSearchByApp","hideSearchConditions","isInstanceFilterForm","ipCopy","rowSelectionType","extraFixedFields","limitInstanceRange","showFilterInstanceSource","filterInstanceSource","onFilterInstanceSourceChange","objectIdQuery","onFilterObjectIdChange"],"sources":["../../../src/instance-list-modal/InstanceListModal.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport { WarningOutlined } from \"@ant-design/icons\";\nimport { Modal, Button, Tooltip } from \"antd\";\nimport i18n from \"i18next\";\nimport { CmdbModels, InstanceApi_postSearch } from \"@next-sdk/cmdb-sdk\";\nimport { Query } from \"@next-libs/cmdb-utils\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\nimport {\n InstanceList,\n filterObjectIdQuery,\n} from \"../instance-list/InstanceList\";\nimport { InstanceListPresetConfigs } from \"../instance-list-table/interfaces\";\nimport { addResourceBundle } from \"../i18n\";\nimport {\n ReadPaginationChangeDetail,\n UseBrickConf,\n} from \"@next-core/brick-types\";\naddResourceBundle();\nexport interface InstanceListModalProps {\n objectMap: { [key: string]: Partial<CmdbModels.ModelCmdbObject> };\n objectId: string;\n visible: boolean;\n title: React.ReactNode | string;\n q?: string;\n query?: any;\n presetConfigs?: InstanceListPresetConfigs;\n permission?: string[];\n aq?: Query[];\n instanceSourceQuery?: string;\n isInstanceFilterForm?: boolean;\n searchDisabled?: boolean;\n advancedSearchDisabled?: boolean;\n aliveHostsDisabled?: boolean;\n relatedToMeDisabled?: boolean;\n moreButtonsDisabled?: boolean;\n filterInstanceSourceDisabled?: boolean;\n sortDisabled?: boolean;\n selectDisabled?: boolean;\n showCloseBtn?: boolean;\n ipCopy?: boolean;\n singleSelect?: boolean;\n selectedRowKeys?: string[];\n onCancel: () => void;\n onSelected?: (instanceIds: any[]) => void;\n onSelectedV2?: (instanceDataList: any[]) => void;\n modalZIndex?: number;\n pageSize?: number;\n page?: number;\n showSizeChanger?: boolean;\n pageSizeOptions?: string[];\n defaultQuery?: { [fieldId: string]: any }[];\n enableSearchByApp?: boolean;\n hideSearchConditions?: boolean;\n rowSelectionType?: \"checkbox\" | \"radio\";\n getPaginationData?(pagination: ReadPaginationChangeDetail): void;\n extraFixedFields?: string[];\n limitInstanceRange?: boolean;\n extraFilterBricks?: {\n useBrick: UseBrickConf;\n };\n showBindButton?: boolean;\n bindEvent?: () => void;\n bindButtonDisabled?: boolean;\n bindButtonText?: string;\n disabledTooltip?: string;\n // 是否开启实例来源筛选\n showFilterInstanceSource?: boolean;\n filterInstanceSource?: boolean;\n onFilterInstanceSourceChange?(value: boolean): void;\n onFilterObjectIdChange?(value: filterObjectIdQuery): void;\n objectIdQuery?: string;\n}\n\nexport function InstanceListModal(\n props: InstanceListModalProps\n): React.ReactElement {\n const [selectedInstanceListTemp, setSelectedInstanceListTemp] = useState([]);\n\n // istanbul ignore next\n const handleOk = async () => {\n if (\n selectedInstanceListTemp.length &&\n selectedInstanceListTemp.every((i) => typeof i === \"string\")\n ) {\n const resp = await InstanceApi_postSearch(props.objectId, {\n query: {\n instanceId: {\n $in: selectedInstanceListTemp,\n },\n },\n page_size: selectedInstanceListTemp.length,\n });\n props.onSelected?.(selectedInstanceListTemp);\n props.onSelectedV2?.(resp.list);\n return;\n }\n\n props.onSelected?.(\n selectedInstanceListTemp.map(\n (selectedInstance) => selectedInstance.instanceId\n )\n );\n props.onSelectedV2?.(selectedInstanceListTemp);\n };\n // istanbul ignore next\n const handleCancel = () => {\n // reset selected\n setSelectedInstanceListTemp(props.selectedRowKeys ?? []);\n props.onCancel();\n };\n // istanbul ignore next\n const handleSelectionChange = (event: {\n selectedKeys: string[];\n selectedItems: any[];\n }) => {\n if (event.selectedItems.length < event.selectedKeys.length) {\n setSelectedInstanceListTemp(event.selectedKeys);\n } else {\n setSelectedInstanceListTemp(event.selectedItems);\n }\n };\n //istanbul ignore next\n const handlePaginationChange = (event: {\n page: number;\n pageSize: number;\n }) => {\n props.getPaginationData?.(event);\n };\n const presetConfigs = props.presetConfigs ?? {\n query: props.query,\n };\n\n const fixAliveHosts = presetConfigs.query?._agentStatus === \"正常\";\n\n React.useEffect(() => {\n if (props.selectedRowKeys) {\n setSelectedInstanceListTemp(props.selectedRowKeys.filter(Boolean));\n }\n }, [props.selectedRowKeys]);\n\n const renderFooter = (): React.ReactElement => {\n const {\n showBindButton,\n bindButtonDisabled,\n disabledTooltip,\n bindButtonText,\n } = props;\n return (\n <>\n {!!showBindButton &&\n (bindButtonDisabled ? (\n <Tooltip\n title={\n disabledTooltip ||\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.PERMISSION_DENIED}`)\n }\n >\n <Button style={{ position: \"absolute\", left: \"24px\" }} disabled>\n {bindButtonText ||\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CREATE_AND_BIND}`)}\n </Button>\n </Tooltip>\n ) : (\n <Button\n style={{ position: \"absolute\", left: \"24px\" }}\n onClick={props.bindEvent}\n >\n {bindButtonText ||\n i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CREATE_AND_BIND}`)}\n </Button>\n ))}\n {props.singleSelect && selectedInstanceListTemp.length > 1 && (\n <span style={{ color: \"#ff0016\", marginRight: \"20px\" }}>\n <WarningOutlined\n style={{ color: \"#ff0016\", marginRight: \"10px\" }}\n />\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.ONLY_ONE_INSTANCE_TO_ALLOWED}`\n )}\n </span>\n )}\n {(props.selectDisabled || props.showCloseBtn) && (\n <Button key=\"back\" onClick={props.onCancel}>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLOSE}`)}\n </Button>\n )}\n {!props.selectDisabled && !props.showCloseBtn && (\n <>\n <Button key=\"back\" onClick={handleCancel} type=\"text\">\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CANCEL}`)}\n </Button>\n <Button\n key=\"submit\"\n type=\"primary\"\n onClick={handleOk}\n disabled={\n !selectedInstanceListTemp.length ||\n (props.singleSelect && selectedInstanceListTemp.length > 1)\n }\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CONFIRM}`)}\n </Button>\n </>\n )}\n </>\n );\n };\n return (\n <Modal\n title={props.title}\n visible={props.visible}\n width={900}\n onOk={handleOk}\n onCancel={handleCancel}\n destroyOnClose={true}\n footer={renderFooter()}\n zIndex={props.modalZIndex ?? 1000}\n >\n <div style={{ maxHeight: 720, overflow: \"auto\" }}>\n <InstanceList\n aq={props.aq}\n q={props.q}\n objectId={props.objectId}\n objectList={Object.values(props.objectMap)}\n presetConfigs={presetConfigs}\n extraFilterBricks={props.extraFilterBricks}\n permission={props.permission}\n aliveHosts={fixAliveHosts}\n fixAliveHosts={fixAliveHosts}\n instanceSourceQuery={props.instanceSourceQuery}\n searchDisabled={props.searchDisabled}\n filterInstanceSourceDisabled={props.filterInstanceSourceDisabled}\n advancedSearchDisabled={props.advancedSearchDisabled}\n aliveHostsDisabled={props.aliveHostsDisabled}\n relatedToMeDisabled={props.relatedToMeDisabled}\n moreButtonsDisabled={props.moreButtonsDisabled}\n sortDisabled={props.sortDisabled}\n selectDisabled={props.selectDisabled}\n selectedRowKeys={props.selectedRowKeys}\n onSelectionChange={handleSelectionChange}\n showSizeChanger={props.showSizeChanger}\n pageSizeOptions={props.pageSizeOptions}\n pageSize={props.pageSize || 10}\n page={props.page}\n defaultQuery={props.defaultQuery}\n enableSearchByApp={props.enableSearchByApp}\n hideSearchConditions={props.hideSearchConditions}\n isInstanceFilterForm={props.isInstanceFilterForm}\n ipCopy={props.ipCopy}\n rowSelectionType={props.rowSelectionType}\n onPaginationChange={handlePaginationChange}\n extraFixedFields={props.extraFixedFields}\n limitInstanceRange={props.limitInstanceRange}\n showFilterInstanceSource={props.showFilterInstanceSource}\n filterInstanceSource={props.filterInstanceSource}\n onFilterInstanceSourceChange={props.onFilterInstanceSourceChange}\n objectIdQuery={props.objectIdQuery}\n onFilterObjectIdChange={props.onFilterObjectIdChange}\n />\n </div>\n </Modal>\n );\n}\n"],"mappings":";AAAA,OAAOA,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AACvC,SAASC,eAAe,QAAQ,mBAAmB;AACnD,SAASC,KAAK,EAAEC,MAAM,EAAEC,OAAO,QAAQ,MAAM;AAC7C,OAAOC,IAAI,MAAM,SAAS;AAC1B,SAAqBC,sBAAsB,QAAQ,oBAAoB;AAEvE,SAASC,CAAC,EAAEC,sBAAsB,QAAQ,mBAAmB;AAC7D,SACEC,YAAY,QAEP,+BAA+B;AAEtC,SAASC,iBAAiB,QAAQ,SAAS;AAK3CA,iBAAiB,EAAE;AAwDnB,OAAO,SAASC,iBAAiB,CAC/BC,KAA6B,EACT;EAAA;EACpB,IAAM,CAACC,wBAAwB,EAAEC,2BAA2B,CAAC,GAAGd,QAAQ,CAAC,EAAE,CAAC;;EAE5E;EACA,IAAMe,QAAQ;IAAA,6BAAG,aAAY;MAAA;MAC3B,IACEF,wBAAwB,CAACG,MAAM,IAC/BH,wBAAwB,CAACI,KAAK,CAAEC,CAAC,IAAK,OAAOA,CAAC,KAAK,QAAQ,CAAC,EAC5D;QAAA;QACA,IAAMC,IAAI,SAASb,sBAAsB,CAACM,KAAK,CAACQ,QAAQ,EAAE;UACxDC,KAAK,EAAE;YACLC,UAAU,EAAE;cACVC,GAAG,EAAEV;YACP;UACF,CAAC;UACDW,SAAS,EAAEX,wBAAwB,CAACG;QACtC,CAAC,CAAC;QACF,qBAAAJ,KAAK,CAACa,UAAU,sDAAhB,uBAAAb,KAAK,EAAcC,wBAAwB,CAAC;QAC5C,sBAAAD,KAAK,CAACc,YAAY,uDAAlB,wBAAAd,KAAK,EAAgBO,IAAI,CAACQ,IAAI,CAAC;QAC/B;MACF;MAEA,sBAAAf,KAAK,CAACa,UAAU,uDAAhB,wBAAAb,KAAK,EACHC,wBAAwB,CAACe,GAAG,CACzBC,gBAAgB,IAAKA,gBAAgB,CAACP,UAAU,CAClD,CACF;MACD,uBAAAV,KAAK,CAACc,YAAY,wDAAlB,yBAAAd,KAAK,EAAgBC,wBAAwB,CAAC;IAChD,CAAC;IAAA,gBAxBKE,QAAQ;MAAA;IAAA;EAAA,GAwBb;EACD;EACA,IAAMe,YAAY,GAAG,MAAM;IAAA;IACzB;IACAhB,2BAA2B,0BAACF,KAAK,CAACmB,eAAe,yEAAI,EAAE,CAAC;IACxDnB,KAAK,CAACoB,QAAQ,EAAE;EAClB,CAAC;EACD;EACA,IAAMC,qBAAqB,GAAIC,KAG9B,IAAK;IACJ,IAAIA,KAAK,CAACC,aAAa,CAACnB,MAAM,GAAGkB,KAAK,CAACE,YAAY,CAACpB,MAAM,EAAE;MAC1DF,2BAA2B,CAACoB,KAAK,CAACE,YAAY,CAAC;IACjD,CAAC,MAAM;MACLtB,2BAA2B,CAACoB,KAAK,CAACC,aAAa,CAAC;IAClD;EACF,CAAC;EACD;EACA,IAAME,sBAAsB,GAAIH,KAG/B,IAAK;IAAA;IACJ,yBAAAtB,KAAK,CAAC0B,iBAAiB,0DAAvB,2BAAA1B,KAAK,EAAqBsB,KAAK,CAAC;EAClC,CAAC;EACD,IAAMK,aAAa,2BAAG3B,KAAK,CAAC2B,aAAa,uEAAI;IAC3ClB,KAAK,EAAET,KAAK,CAACS;EACf,CAAC;EAED,IAAMmB,aAAa,GAAG,yBAAAD,aAAa,CAAClB,KAAK,yDAAnB,qBAAqBoB,YAAY,MAAK,IAAI;EAEhE1C,KAAK,CAAC2C,SAAS,CAAC,MAAM;IACpB,IAAI9B,KAAK,CAACmB,eAAe,EAAE;MACzBjB,2BAA2B,CAACF,KAAK,CAACmB,eAAe,CAACY,MAAM,CAACC,OAAO,CAAC,CAAC;IACpE;EACF,CAAC,EAAE,CAAChC,KAAK,CAACmB,eAAe,CAAC,CAAC;EAE3B,IAAMc,YAAY,GAAG,MAA0B;IAC7C,IAAM;MACJC,cAAc;MACdC,kBAAkB;MAClBC,eAAe;MACfC;IACF,CAAC,GAAGrC,KAAK;IACT,oBACE,0CACG,CAAC,CAACkC,cAAc,KACdC,kBAAkB,gBACjB,oBAAC,OAAO;MACN,KAAK,EACHC,eAAe,IACf3C,IAAI,CAAC6C,CAAC,WAAI1C,sBAAsB,cAAID,CAAC,CAAC4C,iBAAiB;IACxD,gBAED,oBAAC,MAAM;MAAC,KAAK,EAAE;QAAEC,QAAQ,EAAE,UAAU;QAAEC,IAAI,EAAE;MAAO,CAAE;MAAC,QAAQ;IAAA,GAC5DJ,cAAc,IACb5C,IAAI,CAAC6C,CAAC,WAAI1C,sBAAsB,cAAID,CAAC,CAAC+C,eAAe,EAAG,CACnD,CACD,gBAEV,oBAAC,MAAM;MACL,KAAK,EAAE;QAAEF,QAAQ,EAAE,UAAU;QAAEC,IAAI,EAAE;MAAO,CAAE;MAC9C,OAAO,EAAEzC,KAAK,CAAC2C;IAAU,GAExBN,cAAc,IACb5C,IAAI,CAAC6C,CAAC,WAAI1C,sBAAsB,cAAID,CAAC,CAAC+C,eAAe,EAAG,CAE7D,CAAC,EACH1C,KAAK,CAAC4C,YAAY,IAAI3C,wBAAwB,CAACG,MAAM,GAAG,CAAC,iBACxD;MAAM,KAAK,EAAE;QAAEyC,KAAK,EAAE,SAAS;QAAEC,WAAW,EAAE;MAAO;IAAE,gBACrD,oBAAC,eAAe;MACd,KAAK,EAAE;QAAED,KAAK,EAAE,SAAS;QAAEC,WAAW,EAAE;MAAO;IAAE,EACjD,EACDrD,IAAI,CAAC6C,CAAC,WACF1C,sBAAsB,cAAID,CAAC,CAACoD,4BAA4B,EAC5D,CAEJ,EACA,CAAC/C,KAAK,CAACgD,cAAc,IAAIhD,KAAK,CAACiD,YAAY,kBAC1C,oBAAC,MAAM;MAAC,GAAG,EAAC,MAAM;MAAC,OAAO,EAAEjD,KAAK,CAACoB;IAAS,GACxC3B,IAAI,CAAC6C,CAAC,WAAI1C,sBAAsB,cAAID,CAAC,CAACuD,KAAK,EAAG,CAElD,EACA,CAAClD,KAAK,CAACgD,cAAc,IAAI,CAAChD,KAAK,CAACiD,YAAY,iBAC3C,uDACE,oBAAC,MAAM;MAAC,GAAG,EAAC,MAAM;MAAC,OAAO,EAAE/B,YAAa;MAAC,IAAI,EAAC;IAAM,GAClDzB,IAAI,CAAC6C,CAAC,WAAI1C,sBAAsB,cAAID,CAAC,CAACwD,MAAM,EAAG,CACzC,eACT,oBAAC,MAAM;MACL,GAAG,EAAC,QAAQ;MACZ,IAAI,EAAC,SAAS;MACd,OAAO,EAAEhD,QAAS;MAClB,QAAQ,EACN,CAACF,wBAAwB,CAACG,MAAM,IAC/BJ,KAAK,CAAC4C,YAAY,IAAI3C,wBAAwB,CAACG,MAAM,GAAG;IAC1D,GAEAX,IAAI,CAAC6C,CAAC,WAAI1C,sBAAsB,cAAID,CAAC,CAACyD,OAAO,EAAG,CAC1C,CAEZ,CACA;EAEP,CAAC;EACD,oBACE,oBAAC,KAAK;IACJ,KAAK,EAAEpD,KAAK,CAACqD,KAAM;IACnB,OAAO,EAAErD,KAAK,CAACsD,OAAQ;IACvB,KAAK,EAAE,GAAI;IACX,IAAI,EAAEnD,QAAS;IACf,QAAQ,EAAEe,YAAa;IACvB,cAAc,EAAE,IAAK;IACrB,MAAM,EAAEe,YAAY,EAAG;IACvB,MAAM,wBAAEjC,KAAK,CAACuD,WAAW,mEAAI;EAAK,gBAElC;IAAK,KAAK,EAAE;MAAEC,SAAS,EAAE,GAAG;MAAEC,QAAQ,EAAE;IAAO;EAAE,gBAC/C,oBAAC,YAAY;IACX,EAAE,EAAEzD,KAAK,CAAC0D,EAAG;IACb,CAAC,EAAE1D,KAAK,CAAC2D,CAAE;IACX,QAAQ,EAAE3D,KAAK,CAACQ,QAAS;IACzB,UAAU,EAAEoD,MAAM,CAACC,MAAM,CAAC7D,KAAK,CAAC8D,SAAS,CAAE;IAC3C,aAAa,EAAEnC,aAAc;IAC7B,iBAAiB,EAAE3B,KAAK,CAAC+D,iBAAkB;IAC3C,UAAU,EAAE/D,KAAK,CAACgE,UAAW;IAC7B,UAAU,EAAEpC,aAAc;IAC1B,aAAa,EAAEA,aAAc;IAC7B,mBAAmB,EAAE5B,KAAK,CAACiE,mBAAoB;IAC/C,cAAc,EAAEjE,KAAK,CAACkE,cAAe;IACrC,4BAA4B,EAAElE,KAAK,CAACmE,4BAA6B;IACjE,sBAAsB,EAAEnE,KAAK,CAACoE,sBAAuB;IACrD,kBAAkB,EAAEpE,KAAK,CAACqE,kBAAmB;IAC7C,mBAAmB,EAAErE,KAAK,CAACsE,mBAAoB;IAC/C,mBAAmB,EAAEtE,KAAK,CAACuE,mBAAoB;IAC/C,YAAY,EAAEvE,KAAK,CAACwE,YAAa;IACjC,cAAc,EAAExE,KAAK,CAACgD,cAAe;IACrC,eAAe,EAAEhD,KAAK,CAACmB,eAAgB;IACvC,iBAAiB,EAAEE,qBAAsB;IACzC,eAAe,EAAErB,KAAK,CAACyE,eAAgB;IACvC,eAAe,EAAEzE,KAAK,CAAC0E,eAAgB;IACvC,QAAQ,EAAE1E,KAAK,CAAC2E,QAAQ,IAAI,EAAG;IAC/B,IAAI,EAAE3E,KAAK,CAAC4E,IAAK;IACjB,YAAY,EAAE5E,KAAK,CAAC6E,YAAa;IACjC,iBAAiB,EAAE7E,KAAK,CAAC8E,iBAAkB;IAC3C,oBAAoB,EAAE9E,KAAK,CAAC+E,oBAAqB;IACjD,oBAAoB,EAAE/E,KAAK,CAACgF,oBAAqB;IACjD,MAAM,EAAEhF,KAAK,CAACiF,MAAO;IACrB,gBAAgB,EAAEjF,KAAK,CAACkF,gBAAiB;IACzC,kBAAkB,EAAEzD,sBAAuB;IAC3C,gBAAgB,EAAEzB,KAAK,CAACmF,gBAAiB;IACzC,kBAAkB,EAAEnF,KAAK,CAACoF,kBAAmB;IAC7C,wBAAwB,EAAEpF,KAAK,CAACqF,wBAAyB;IACzD,oBAAoB,EAAErF,KAAK,CAACsF,oBAAqB;IACjD,4BAA4B,EAAEtF,KAAK,CAACuF,4BAA6B;IACjE,aAAa,EAAEvF,KAAK,CAACwF,aAAc;IACnC,sBAAsB,EAAExF,KAAK,CAACyF;EAAuB,EACrD,CACE,CACA;AAEZ"}
@@ -8,6 +8,10 @@ export interface BaseCmdbInstancesSelectPanelProps {
8
8
  instanceQuery?: any;
9
9
  fields?: string[];
10
10
  singleSelect?: boolean;
11
+ showBindButton?: boolean;
12
+ bindButtonDisabled?: boolean;
13
+ bindButtonText?: string;
14
+ bindEvent?: () => void;
11
15
  addTitle?: React.ReactNode | string;
12
16
  modalTitle?: React.ReactNode | string;
13
17
  previewMaxNumber?: number;
@@ -53,6 +53,7 @@ export interface InstanceListModalProps {
53
53
  showBindButton?: boolean;
54
54
  bindEvent?: () => void;
55
55
  bindButtonDisabled?: boolean;
56
+ bindButtonText?: string;
56
57
  disabledTooltip?: string;
57
58
  showFilterInstanceSource?: boolean;
58
59
  filterInstanceSource?: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@next-libs/cmdb-instances",
3
- "version": "7.6.11",
3
+ "version": "7.7.0",
4
4
  "description": "> TODO: description",
5
5
  "homepage": "https://github.com/easyops-cn/next-libs/tree/master/libs/cmdb-instances",
6
6
  "license": "GPL-3.0",
@@ -50,5 +50,5 @@
50
50
  "immutability-helper": "^3.1.1",
51
51
  "marked": "^2.1.3"
52
52
  },
53
- "gitHead": "bae612ae699255b424821b836c450efcf8a4e16e"
53
+ "gitHead": "6e186a9c1e75b8959d67477a84705024cfc820ef"
54
54
  }