@next-libs/cmdb-instances 7.21.2 → 7.21.3

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.
Files changed (176) hide show
  1. package/dist/cjs/attribute-form-control-url/AttributeFormControlUrl.js.map +1 -1
  2. package/dist/cjs/cmdb-instances-input-form/CmdbInstancesInputFormItem.js +1 -3
  3. package/dist/cjs/cmdb-instances-input-form/CmdbInstancesInputFormItem.js.map +1 -1
  4. package/dist/cjs/cmdb-instances-select-panel/CmdbInstancesSelectPanel.js.map +1 -1
  5. package/dist/cjs/cmdb-url-link/CmdbUrlLink.js.map +1 -1
  6. package/dist/cjs/components/cmdb-upload/index.js.map +1 -1
  7. package/dist/cjs/components/index.js.map +1 -1
  8. package/dist/cjs/components/instance-format/index.js.map +1 -1
  9. package/dist/cjs/components/user-or-user-group-select/UserOrUserGroupSelect.js +1 -2
  10. package/dist/cjs/components/user-or-user-group-select/UserOrUserGroupSelect.js.map +1 -1
  11. package/dist/cjs/constants.js +2 -4
  12. package/dist/cjs/constants.js.map +1 -1
  13. package/dist/cjs/data-providers/fetchCmdbInstanceDetail.js.map +1 -1
  14. package/dist/cjs/data-providers/fetchCmdbInstanceSearch.js.map +1 -1
  15. package/dist/cjs/data-providers/fetchCmdbObjectDetail.js.map +1 -1
  16. package/dist/cjs/data-providers/fetchCmdbObjectList.js.map +1 -1
  17. package/dist/cjs/data-providers/fetchCmdbObjectRef.js.map +1 -1
  18. package/dist/cjs/data-providers/index.js.map +1 -1
  19. package/dist/cjs/float-display-brick/FloatDisplayBrick.js.map +1 -1
  20. package/dist/cjs/i18n/constants.js +2 -4
  21. package/dist/cjs/i18n/constants.js.map +1 -1
  22. package/dist/cjs/i18n/index.js.map +1 -1
  23. package/dist/cjs/i18n/locales/en.js +1 -2
  24. package/dist/cjs/i18n/locales/en.js.map +1 -1
  25. package/dist/cjs/i18n/locales/zh.js +1 -2
  26. package/dist/cjs/i18n/locales/zh.js.map +1 -1
  27. package/dist/cjs/index.js.map +1 -1
  28. package/dist/cjs/instance-attribute-form/InstanceAttributeForm.js +1 -2
  29. package/dist/cjs/instance-attribute-form/InstanceAttributeForm.js.map +1 -1
  30. package/dist/cjs/instance-detail/InstanceDetail.js +1 -2
  31. package/dist/cjs/instance-detail/InstanceDetail.js.map +1 -1
  32. package/dist/cjs/instance-detail/components/instance-relation-field-display/constants.js +1 -2
  33. package/dist/cjs/instance-detail/components/instance-relation-field-display/constants.js.map +1 -1
  34. package/dist/cjs/instance-detail/components/instance-relation-field-display/instance-relation-field-display.js.map +1 -1
  35. package/dist/cjs/instance-detail/components/instance-relation-table-show/instance-relation-table-show.js.map +1 -1
  36. package/dist/cjs/instance-detail/components/instances-attachment-display/instances-attachment-display.js.map +1 -1
  37. package/dist/cjs/instance-detail/constants/index.js +4 -8
  38. package/dist/cjs/instance-detail/constants/index.js.map +1 -1
  39. package/dist/cjs/instance-list/FilterInstanceSource.js +1 -2
  40. package/dist/cjs/instance-list/FilterInstanceSource.js.map +1 -1
  41. package/dist/cjs/instance-list/IconButton.js.map +1 -1
  42. package/dist/cjs/instance-list/InstanceList.js.map +1 -1
  43. package/dist/cjs/instance-list/constants.js +7 -14
  44. package/dist/cjs/instance-list/constants.js.map +1 -1
  45. package/dist/cjs/instance-list-modal/InstanceListModal.js.map +1 -1
  46. package/dist/cjs/instance-list-table/AdvancedSearch.js +2 -4
  47. package/dist/cjs/instance-list-table/AdvancedSearch.js.map +1 -1
  48. package/dist/cjs/instance-list-table/AdvancedSearchCondition.js.map +1 -1
  49. package/dist/cjs/instance-list-table/DisplaySettings.js.map +1 -1
  50. package/dist/cjs/instance-list-table/DisplaySettingsModal.js.map +1 -1
  51. package/dist/cjs/instance-list-table/DynamicSearch.js +1 -2
  52. package/dist/cjs/instance-list-table/DynamicSearch.js.map +1 -1
  53. package/dist/cjs/instance-list-table/InstanceListTable.js +2 -2
  54. package/dist/cjs/instance-list-table/InstanceListTable.js.map +1 -1
  55. package/dist/cjs/instance-list-table/MoreButtonsContainer.js.map +1 -1
  56. package/dist/cjs/instance-list-table/constants.js +7 -14
  57. package/dist/cjs/instance-list-table/constants.js.map +1 -1
  58. package/dist/cjs/instance-list-table/data-providers/fetchCmdbInstanceAggregateCount.js.map +1 -1
  59. package/dist/cjs/instance-list-table/data-providers/fetchCmdbInstanceCount.js.map +1 -1
  60. package/dist/cjs/instance-list-table/data-providers/fetchCmdbInstanceDetail.js.map +1 -1
  61. package/dist/cjs/instance-list-table/data-providers/fetchCmdbObjectDetail.js.map +1 -1
  62. package/dist/cjs/instance-list-table/data-providers/fetchPermRoleList.js.map +1 -1
  63. package/dist/cjs/instance-list-table/data-providers/fetchPermissionList.js.map +1 -1
  64. package/dist/cjs/instance-list-table/data-providers/getDefaultValueTemplate.js.map +1 -1
  65. package/dist/cjs/instance-list-table/data-providers/index.js.map +1 -1
  66. package/dist/cjs/instance-list-table/data-providers/searchCmdbInstances.js.map +1 -1
  67. package/dist/cjs/instance-list-table/index.js.map +1 -1
  68. package/dist/cjs/instance-list-table/interfaces.js.map +1 -1
  69. package/dist/cjs/instance-list-table/utils.js +1 -2
  70. package/dist/cjs/instance-list-table/utils.js.map +1 -1
  71. package/dist/cjs/json-display-brick/JsonDisplayBrick.js.map +1 -1
  72. package/dist/cjs/model-attribute-form/ModelAttributeForm.js +3 -2
  73. package/dist/cjs/model-attribute-form/ModelAttributeForm.js.map +1 -1
  74. package/dist/cjs/model-attribute-form/constants.js +1 -2
  75. package/dist/cjs/model-attribute-form/constants.js.map +1 -1
  76. package/dist/cjs/model-attribute-form-control/ModelAttributeFormControl.js +21 -27
  77. package/dist/cjs/model-attribute-form-control/ModelAttributeFormControl.js.map +1 -1
  78. package/dist/cjs/model-relation-form/ModelRelationForm.js.map +1 -1
  79. package/dist/cjs/processors.js +3 -4
  80. package/dist/cjs/processors.js.map +1 -1
  81. package/dist/cjs/struct-components/AddStruct.js +4 -3
  82. package/dist/cjs/struct-components/AddStruct.js.map +1 -1
  83. package/dist/cjs/struct-components/AddStructModal.js.map +1 -1
  84. package/dist/cjs/struct-components/StructTable.js +1 -0
  85. package/dist/cjs/struct-components/StructTable.js.map +1 -1
  86. package/dist/cjs/struct-components/index.js.map +1 -1
  87. package/dist/cjs/struct-components/interfaces.js +1 -2
  88. package/dist/cjs/struct-components/interfaces.js.map +1 -1
  89. package/dist/cjs/struct-components/mockData.js +5 -10
  90. package/dist/cjs/struct-components/mockData.js.map +1 -1
  91. package/dist/cjs/xml-display-brick/XmlDisplayBrick.js.map +1 -1
  92. package/dist/esm/attribute-form-control-url/AttributeFormControlUrl.js.map +1 -1
  93. package/dist/esm/cmdb-instances-input-form/CmdbInstancesInputFormItem.js +0 -1
  94. package/dist/esm/cmdb-instances-input-form/CmdbInstancesInputFormItem.js.map +1 -1
  95. package/dist/esm/cmdb-instances-select-panel/CmdbInstancesSelectPanel.js.map +1 -1
  96. package/dist/esm/cmdb-url-link/CmdbUrlLink.js.map +1 -1
  97. package/dist/esm/components/cmdb-upload/index.js.map +1 -1
  98. package/dist/esm/components/index.js.map +1 -1
  99. package/dist/esm/components/instance-format/index.js.map +1 -1
  100. package/dist/esm/components/user-or-user-group-select/UserOrUserGroupSelect.js.map +1 -1
  101. package/dist/esm/constants.js.map +1 -1
  102. package/dist/esm/data-providers/fetchCmdbInstanceDetail.js.map +1 -1
  103. package/dist/esm/data-providers/fetchCmdbInstanceSearch.js.map +1 -1
  104. package/dist/esm/data-providers/fetchCmdbObjectDetail.js.map +1 -1
  105. package/dist/esm/data-providers/fetchCmdbObjectList.js.map +1 -1
  106. package/dist/esm/data-providers/fetchCmdbObjectRef.js.map +1 -1
  107. package/dist/esm/data-providers/index.js.map +1 -1
  108. package/dist/esm/float-display-brick/FloatDisplayBrick.js.map +1 -1
  109. package/dist/esm/i18n/constants.js.map +1 -1
  110. package/dist/esm/i18n/index.js.map +1 -1
  111. package/dist/esm/i18n/locales/en.js.map +1 -1
  112. package/dist/esm/i18n/locales/zh.js.map +1 -1
  113. package/dist/esm/index.js.map +1 -1
  114. package/dist/esm/instance-attribute-form/InstanceAttributeForm.js.map +1 -1
  115. package/dist/esm/instance-detail/InstanceDetail.js.map +1 -1
  116. package/dist/esm/instance-detail/components/instance-relation-field-display/constants.js.map +1 -1
  117. package/dist/esm/instance-detail/components/instance-relation-field-display/instance-relation-field-display.js.map +1 -1
  118. package/dist/esm/instance-detail/components/instance-relation-table-show/instance-relation-table-show.js.map +1 -1
  119. package/dist/esm/instance-detail/components/instances-attachment-display/instances-attachment-display.js +0 -1
  120. package/dist/esm/instance-detail/components/instances-attachment-display/instances-attachment-display.js.map +1 -1
  121. package/dist/esm/instance-detail/constants/index.js.map +1 -1
  122. package/dist/esm/instance-list/FilterInstanceSource.js.map +1 -1
  123. package/dist/esm/instance-list/IconButton.js.map +1 -1
  124. package/dist/esm/instance-list/InstanceList.js +10 -10
  125. package/dist/esm/instance-list/InstanceList.js.map +1 -1
  126. package/dist/esm/instance-list/constants.js.map +1 -1
  127. package/dist/esm/instance-list-modal/InstanceListModal.js.map +1 -1
  128. package/dist/esm/instance-list-table/AdvancedSearch.js.map +1 -1
  129. package/dist/esm/instance-list-table/AdvancedSearchCondition.js.map +1 -1
  130. package/dist/esm/instance-list-table/DisplaySettings.js.map +1 -1
  131. package/dist/esm/instance-list-table/DisplaySettingsModal.js.map +1 -1
  132. package/dist/esm/instance-list-table/DynamicSearch.js.map +1 -1
  133. package/dist/esm/instance-list-table/InstanceListTable.js +4 -4
  134. package/dist/esm/instance-list-table/InstanceListTable.js.map +1 -1
  135. package/dist/esm/instance-list-table/MoreButtonsContainer.js.map +1 -1
  136. package/dist/esm/instance-list-table/constants.js.map +1 -1
  137. package/dist/esm/instance-list-table/data-providers/fetchCmdbInstanceAggregateCount.js.map +1 -1
  138. package/dist/esm/instance-list-table/data-providers/fetchCmdbInstanceCount.js.map +1 -1
  139. package/dist/esm/instance-list-table/data-providers/fetchCmdbInstanceDetail.js.map +1 -1
  140. package/dist/esm/instance-list-table/data-providers/fetchCmdbObjectDetail.js.map +1 -1
  141. package/dist/esm/instance-list-table/data-providers/fetchPermRoleList.js.map +1 -1
  142. package/dist/esm/instance-list-table/data-providers/fetchPermissionList.js.map +1 -1
  143. package/dist/esm/instance-list-table/data-providers/getDefaultValueTemplate.js.map +1 -1
  144. package/dist/esm/instance-list-table/data-providers/index.js.map +1 -1
  145. package/dist/esm/instance-list-table/data-providers/searchCmdbInstances.js.map +1 -1
  146. package/dist/esm/instance-list-table/index.js.map +1 -1
  147. package/dist/esm/instance-list-table/interfaces.js.map +1 -1
  148. package/dist/esm/instance-list-table/utils.js.map +1 -1
  149. package/dist/esm/json-display-brick/JsonDisplayBrick.js.map +1 -1
  150. package/dist/esm/model-attribute-form/ModelAttributeForm.js +2 -0
  151. package/dist/esm/model-attribute-form/ModelAttributeForm.js.map +1 -1
  152. package/dist/esm/model-attribute-form/constants.js.map +1 -1
  153. package/dist/esm/model-attribute-form-control/ModelAttributeFormControl.js +17 -19
  154. package/dist/esm/model-attribute-form-control/ModelAttributeFormControl.js.map +1 -1
  155. package/dist/esm/model-relation-form/ModelRelationForm.js.map +1 -1
  156. package/dist/esm/processors.js.map +1 -1
  157. package/dist/esm/struct-components/AddStruct.js +4 -3
  158. package/dist/esm/struct-components/AddStruct.js.map +1 -1
  159. package/dist/esm/struct-components/AddStructModal.js.map +1 -1
  160. package/dist/esm/struct-components/StructTable.js +1 -0
  161. package/dist/esm/struct-components/StructTable.js.map +1 -1
  162. package/dist/esm/struct-components/index.js.map +1 -1
  163. package/dist/esm/struct-components/interfaces.js.map +1 -1
  164. package/dist/esm/struct-components/mockData.js.map +1 -1
  165. package/dist/esm/xml-display-brick/XmlDisplayBrick.js.map +1 -1
  166. package/dist/types/instance-attribute-form/InstanceAttributeForm.d.ts +1 -1
  167. package/dist/types/instance-detail/InstanceDetail.d.ts +1 -1
  168. package/dist/types/instance-list/IconButton.d.ts +2 -2
  169. package/dist/types/instance-list-table/AdvancedSearch.d.ts +1 -1
  170. package/dist/types/instance-list-table/DisplaySettings.d.ts +2 -2
  171. package/dist/types/instance-list-table/DynamicSearch.d.ts +1 -1
  172. package/dist/types/instance-list-table/InstanceListTable.d.ts +6 -6
  173. package/dist/types/model-attribute-form/ModelAttributeForm.d.ts +1 -1
  174. package/dist/types/struct-components/AddStruct.d.ts +1 -1
  175. package/dist/types/struct-components/StructTable.d.ts +2 -2
  176. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"file":"instance-relation-field-display.js","names":["React","Popover","get","sortBy","Link","modifyModelData","getInstanceShowName","getInstanceNameKeys","parseTemplate","userDisplayFieldIdList","style","InstanceRelationFieldDisplay","props","modelDataMap","relationData","value","relationFieldUrlTemplate","oppositeModelData","right_object_id","renderUserInstancePopover","fieldList","oppositeInstanceData","instancePopover","map","field","__isRelation","instancePopoverLabel","name","instancePopoverValue","__id","renderRelationFieldValue","oppositeInstanceDataList","join","renderUserInstances","displayFieldList","__fieldList","filter","includes","fieldOrder","sortedDisplayFieldList","index","findIndex","fieldId","length","userInstance","userInstanceDisplay","instanceId","render","objectId"],"sources":["../../../../../src/instance-detail/components/instance-relation-field-display/instance-relation-field-display.tsx"],"sourcesContent":["import React from \"react\";\nimport { Popover } from \"antd\";\nimport { get, sortBy } from \"lodash\";\n\nimport { Link } from \"@next-libs/basic-components\";\nimport {\n ModifiedModelObjectField,\n ModifiedModelObjectRelation,\n modifyModelData,\n getInstanceShowName,\n getInstanceNameKeys,\n parseTemplate,\n} from \"@next-libs/cmdb-utils\";\nimport { CmdbModels } from \"@next-sdk/cmdb-sdk\";\n\nimport { userDisplayFieldIdList } from \"./constants\";\n\nimport style from \"./instance-relation-field-display.module.css\";\n\nexport interface InstanceRelationFieldDisplayProps {\n modelDataMap: { [objectId: string]: CmdbModels.ModelCmdbObject };\n relationData: ModifiedModelObjectRelation;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value: any[];\n relationFieldUrlTemplate?: string;\n}\n\nexport function InstanceRelationFieldDisplay(\n props: InstanceRelationFieldDisplayProps\n): React.ReactElement {\n const { modelDataMap, relationData, value, relationFieldUrlTemplate } = props;\n const oppositeModelData = modifyModelData(\n modelDataMap[relationData.right_object_id]\n );\n\n const renderUserInstancePopover = (\n fieldList: ModifiedModelObjectField[],\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n oppositeInstanceData: any\n ): React.ReactElement => {\n return (\n <div className={style.instancePopover}>\n {fieldList.map((field) => {\n if (field.__isRelation) {\n return <></>;\n } else {\n return (\n <>\n <div className={style.instancePopoverLabel}>{field.name}:</div>\n <div className={style.instancePopoverValue}>\n {oppositeInstanceData[field.__id]}\n </div>\n </>\n );\n }\n })}\n </div>\n );\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const renderRelationFieldValue = (\n oppositeInstanceDataList: any[]\n ): React.ReactElement => {\n return (\n <div>\n {oppositeInstanceDataList\n .map((oppositeInstanceData) =>\n getInstanceShowName(\n oppositeInstanceData,\n getInstanceNameKeys(oppositeModelData)\n )\n )\n .join(\",\")}\n </div>\n );\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const renderUserInstances = (\n oppositeInstanceDataList: any[]\n ): React.ReactElement => {\n const displayFieldList = oppositeModelData.__fieldList.filter((field) =>\n userDisplayFieldIdList.includes(field.__id)\n );\n const fieldOrder = get(oppositeModelData, \"view.attr_order\", []);\n const sortedDisplayFieldList = sortBy(displayFieldList, (field) => {\n const index = fieldOrder.findIndex(\n (fieldId: string) => field.__id === fieldId\n );\n return index === -1 ? userDisplayFieldIdList.length : index;\n });\n\n return (\n <div>\n {oppositeInstanceDataList.map((oppositeInstanceData) => {\n let userInstance = (\n <div className={style.userInstanceDisplay}>\n {getInstanceShowName(\n oppositeInstanceData,\n getInstanceNameKeys(oppositeModelData)\n )}\n </div>\n );\n\n if (relationFieldUrlTemplate) {\n userInstance = (\n <Link\n to={parseTemplate(\n relationFieldUrlTemplate,\n oppositeInstanceData\n )}\n >\n {userInstance}\n </Link>\n );\n }\n\n return (\n <Popover\n key={oppositeInstanceData.instanceId}\n content={renderUserInstancePopover(\n sortedDisplayFieldList,\n oppositeInstanceData\n )}\n >\n {userInstance}\n </Popover>\n );\n })}\n </div>\n );\n };\n\n const render = (): React.ReactElement => {\n return (\n <div>\n {oppositeModelData.objectId === \"USER\"\n ? renderUserInstances(value)\n : renderRelationFieldValue(value)}\n </div>\n );\n };\n\n return render();\n}\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,OAAO,QAAQ,MAAM;AAC9B,SAASC,GAAG,EAAEC,MAAM,QAAQ,QAAQ;AAEpC,SAASC,IAAI,QAAQ,6BAA6B;AAClD,SAGEC,eAAe,EACfC,mBAAmB,EACnBC,mBAAmB,EACnBC,aAAa,QACR,uBAAuB;AAG9B,SAASC,sBAAsB,QAAQ,aAAa;AAEpD,OAAOC,KAAK,MAAM,8CAA8C;AAUhE,OAAO,SAASC,4BAA4B,CAC1CC,KAAwC,EACpB;EACpB,IAAM;IAAEC,YAAY;IAAEC,YAAY;IAAEC,KAAK;IAAEC;EAAyB,CAAC,GAAGJ,KAAK;EAC7E,IAAMK,iBAAiB,GAAGZ,eAAe,CACvCQ,YAAY,CAACC,YAAY,CAACI,eAAe,CAAC,CAC3C;EAED,IAAMC,yBAAyB,GAAG,CAChCC,SAAqC,EAErCC,oBAAyB,KACF;IACvB,oBACE;MAAK,SAAS,EAAEX,KAAK,CAACY;IAAgB,GACnCF,SAAS,CAACG,GAAG,CAAEC,KAAK,IAAK;MACxB,IAAIA,KAAK,CAACC,YAAY,EAAE;QACtB,oBAAO,yCAAK;MACd,CAAC,MAAM;QACL,oBACE,uDACE;UAAK,SAAS,EAAEf,KAAK,CAACgB;QAAqB,GAAEF,KAAK,CAACG,IAAI,WAAQ,eAC/D;UAAK,SAAS,EAAEjB,KAAK,CAACkB;QAAqB,GACxCP,oBAAoB,CAACG,KAAK,CAACK,IAAI,CAAC,CAC7B,CACL;MAEP;IACF,CAAC,CAAC,CACE;EAEV,CAAC;;EAED;EACA,IAAMC,wBAAwB,GAC5BC,wBAA+B,IACR;IACvB,oBACE,iCACGA,wBAAwB,CACtBR,GAAG,CAAEF,oBAAoB,IACxBf,mBAAmB,CACjBe,oBAAoB,EACpBd,mBAAmB,CAACU,iBAAiB,CAAC,CACvC,CACF,CACAe,IAAI,CAAC,GAAG,CAAC,CACR;EAEV,CAAC;;EAED;EACA,IAAMC,mBAAmB,GACvBF,wBAA+B,IACR;IACvB,IAAMG,gBAAgB,GAAGjB,iBAAiB,CAACkB,WAAW,CAACC,MAAM,CAAEZ,KAAK,IAClEf,sBAAsB,CAAC4B,QAAQ,CAACb,KAAK,CAACK,IAAI,CAAC,CAC5C;IACD,IAAMS,UAAU,GAAGpC,GAAG,CAACe,iBAAiB,EAAE,iBAAiB,EAAE,EAAE,CAAC;IAChE,IAAMsB,sBAAsB,GAAGpC,MAAM,CAAC+B,gBAAgB,EAAGV,KAAK,IAAK;MACjE,IAAMgB,KAAK,GAAGF,UAAU,CAACG,SAAS,CAC/BC,OAAe,IAAKlB,KAAK,CAACK,IAAI,KAAKa,OAAO,CAC5C;MACD,OAAOF,KAAK,KAAK,CAAC,CAAC,GAAG/B,sBAAsB,CAACkC,MAAM,GAAGH,KAAK;IAC7D,CAAC,CAAC;IAEF,oBACE,iCACGT,wBAAwB,CAACR,GAAG,CAAEF,oBAAoB,IAAK;MACtD,IAAIuB,YAAY,gBACd;QAAK,SAAS,EAAElC,KAAK,CAACmC;MAAoB,GACvCvC,mBAAmB,CAClBe,oBAAoB,EACpBd,mBAAmB,CAACU,iBAAiB,CAAC,CACvC,CAEJ;MAED,IAAID,wBAAwB,EAAE;QAC5B4B,YAAY,gBACV,oBAAC,IAAI;UACH,EAAE,EAAEpC,aAAa,CACfQ,wBAAwB,EACxBK,oBAAoB;QACpB,GAEDuB,YAAY,CAEhB;MACH;MAEA,oBACE,oBAAC,OAAO;QACN,GAAG,EAAEvB,oBAAoB,CAACyB,UAAW;QACrC,OAAO,EAAE3B,yBAAyB,CAChCoB,sBAAsB,EACtBlB,oBAAoB;MACpB,GAEDuB,YAAY,CACL;IAEd,CAAC,CAAC,CACE;EAEV,CAAC;EAED,IAAMG,MAAM,GAAG,MAA0B;IACvC,oBACE,iCACG9B,iBAAiB,CAAC+B,QAAQ,KAAK,MAAM,GAClCf,mBAAmB,CAAClB,KAAK,CAAC,GAC1Be,wBAAwB,CAACf,KAAK,CAAC,CAC/B;EAEV,CAAC;EAED,OAAOgC,MAAM,EAAE;AACjB"}
1
+ {"version":3,"file":"instance-relation-field-display.js","names":["React","Popover","get","sortBy","Link","modifyModelData","getInstanceShowName","getInstanceNameKeys","parseTemplate","userDisplayFieldIdList","style","InstanceRelationFieldDisplay","props","modelDataMap","relationData","value","relationFieldUrlTemplate","oppositeModelData","right_object_id","renderUserInstancePopover","fieldList","oppositeInstanceData","createElement","className","instancePopover","map","field","__isRelation","Fragment","instancePopoverLabel","name","instancePopoverValue","__id","renderRelationFieldValue","oppositeInstanceDataList","join","renderUserInstances","displayFieldList","__fieldList","filter","includes","fieldOrder","sortedDisplayFieldList","index","findIndex","fieldId","length","userInstance","userInstanceDisplay","to","key","instanceId","content","render","objectId"],"sources":["../../../../../src/instance-detail/components/instance-relation-field-display/instance-relation-field-display.tsx"],"sourcesContent":["import React from \"react\";\nimport { Popover } from \"antd\";\nimport { get, sortBy } from \"lodash\";\n\nimport { Link } from \"@next-libs/basic-components\";\nimport {\n ModifiedModelObjectField,\n ModifiedModelObjectRelation,\n modifyModelData,\n getInstanceShowName,\n getInstanceNameKeys,\n parseTemplate,\n} from \"@next-libs/cmdb-utils\";\nimport { CmdbModels } from \"@next-sdk/cmdb-sdk\";\n\nimport { userDisplayFieldIdList } from \"./constants\";\n\nimport style from \"./instance-relation-field-display.module.css\";\n\nexport interface InstanceRelationFieldDisplayProps {\n modelDataMap: { [objectId: string]: CmdbModels.ModelCmdbObject };\n relationData: ModifiedModelObjectRelation;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value: any[];\n relationFieldUrlTemplate?: string;\n}\n\nexport function InstanceRelationFieldDisplay(\n props: InstanceRelationFieldDisplayProps\n): React.ReactElement {\n const { modelDataMap, relationData, value, relationFieldUrlTemplate } = props;\n const oppositeModelData = modifyModelData(\n modelDataMap[relationData.right_object_id]\n );\n\n const renderUserInstancePopover = (\n fieldList: ModifiedModelObjectField[],\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n oppositeInstanceData: any\n ): React.ReactElement => {\n return (\n <div className={style.instancePopover}>\n {fieldList.map((field) => {\n if (field.__isRelation) {\n return <></>;\n } else {\n return (\n <>\n <div className={style.instancePopoverLabel}>{field.name}:</div>\n <div className={style.instancePopoverValue}>\n {oppositeInstanceData[field.__id]}\n </div>\n </>\n );\n }\n })}\n </div>\n );\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const renderRelationFieldValue = (\n oppositeInstanceDataList: any[]\n ): React.ReactElement => {\n return (\n <div>\n {oppositeInstanceDataList\n .map((oppositeInstanceData) =>\n getInstanceShowName(\n oppositeInstanceData,\n getInstanceNameKeys(oppositeModelData)\n )\n )\n .join(\",\")}\n </div>\n );\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const renderUserInstances = (\n oppositeInstanceDataList: any[]\n ): React.ReactElement => {\n const displayFieldList = oppositeModelData.__fieldList.filter((field) =>\n userDisplayFieldIdList.includes(field.__id)\n );\n const fieldOrder = get(oppositeModelData, \"view.attr_order\", []);\n const sortedDisplayFieldList = sortBy(displayFieldList, (field) => {\n const index = fieldOrder.findIndex(\n (fieldId: string) => field.__id === fieldId\n );\n return index === -1 ? userDisplayFieldIdList.length : index;\n });\n\n return (\n <div>\n {oppositeInstanceDataList.map((oppositeInstanceData) => {\n let userInstance = (\n <div className={style.userInstanceDisplay}>\n {getInstanceShowName(\n oppositeInstanceData,\n getInstanceNameKeys(oppositeModelData)\n )}\n </div>\n );\n\n if (relationFieldUrlTemplate) {\n userInstance = (\n <Link\n to={parseTemplate(\n relationFieldUrlTemplate,\n oppositeInstanceData\n )}\n >\n {userInstance}\n </Link>\n );\n }\n\n return (\n <Popover\n key={oppositeInstanceData.instanceId}\n content={renderUserInstancePopover(\n sortedDisplayFieldList,\n oppositeInstanceData\n )}\n >\n {userInstance}\n </Popover>\n );\n })}\n </div>\n );\n };\n\n const render = (): React.ReactElement => {\n return (\n <div>\n {oppositeModelData.objectId === \"USER\"\n ? renderUserInstances(value)\n : renderRelationFieldValue(value)}\n </div>\n );\n };\n\n return render();\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"instance-relation-table-show.js","names":["React","useEffect","useState","modifyModelData","InstanceListTable","NS_LIBS_CMDB_INSTANCES","K","i18n","get","sortBy","keyBy","styles","fetchCmdbObjectRef","handleHttpError","reOrderAttrs","fields","fieldOrder","field","index","indexOf","length","getRelationShowFields","defaultRelationFields","oppositeAttrList","attr_order","showFields","map","item","startsWith","slice","InstanceRelationTableShow","props","modelDataMap","relationData","value","relationFieldUrlTemplate","paginationChange","total","relationTablePagination","oppositeModelDataMap","setOppositeModelDataMap","fetchOppositeModelData","modelListData","right_object_id","data","catch","error","instanceSourceQuery","setInstanceSourceQuery","modelData","left_object_id","oppositeModelData","__id","fieldIds","attrList","attr","id","hideModelData","view","hide_columns","filter","includes","relation_list","left_id","right_id","display","hideRelationLink","list","instanceQuery","onInstanceSourceChange","filterInstanceSourceDisabled","pagination","isPagination","showSizeChanger","pageSizeOptions","onChange","page","pageSize","showTotal","totals","totalText","t","PAGINATION_TOTAL_TEXT","PAGINATION_TOTAL_UNIT"],"sources":["../../../../../src/instance-detail/components/instance-relation-table-show/instance-relation-table-show.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport { Table } from \"antd\";\nimport {\n ModifiedModelObjectRelation,\n modifyModelData,\n} from \"@next-libs/cmdb-utils\";\nimport { CmdbModels } from \"@next-sdk/cmdb-sdk\";\nimport { InstanceListTable } from \"../../../instance-list-table\";\nimport { NS_LIBS_CMDB_INSTANCES, K } from \"../../../i18n/constants\";\nimport i18n from \"i18next\";\nimport { get, sortBy, keyBy } from \"lodash\";\nimport styles from \"../../../instance-list-table/InstanceListTable.module.css\";\nimport { fetchCmdbObjectRef } from \"../../../data-providers\";\nimport { handleHttpError } from \"@next-core/brick-kit\";\nexport interface InstanceRelationTableShowProps {\n modelDataMap: { [objectId: string]: CmdbModels.ModelCmdbObject };\n relationData: ModifiedModelObjectRelation;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value: any[];\n relationFieldUrlTemplate?: string;\n isPagination?: boolean;\n total?: number;\n relationTablePagination?: {\n current?: number;\n pageSize?: number;\n };\n paginationChange?: (\n page: number,\n pageSize: number,\n relationData: ModifiedModelObjectRelation\n ) => Promise<void> | void;\n hideRelationLink?: boolean;\n onInstanceSourceChange?: (instanceSource: string) => void;\n filterInstanceSourceDisabled?: boolean;\n}\nexport function reOrderAttrs(fields: string[], fieldOrder: string[] = []) {\n return sortBy(fields, (field) => {\n const index = fieldOrder.indexOf(field);\n return index === -1 ? fields.length : index;\n });\n}\nexport function getRelationShowFields(\n defaultRelationFields: string[],\n oppositeAttrList: string[],\n attr_order: string[] = []\n) {\n let showFields = oppositeAttrList;\n if (defaultRelationFields?.length) {\n showFields = reOrderAttrs(\n defaultRelationFields.map((item: string) =>\n item.startsWith(\"#\") ? item.slice(1) : item\n ),\n attr_order\n );\n }\n return showFields;\n}\n//istanbul ignore next\nexport function InstanceRelationTableShow(\n props: InstanceRelationTableShowProps\n): React.ReactElement {\n const {\n modelDataMap,\n relationData,\n value,\n relationFieldUrlTemplate,\n paginationChange,\n total,\n relationTablePagination,\n } = props;\n const [oppositeModelDataMap, setOppositeModelDataMap] = useState({});\n /**\n * 实例详情中展示对端实例的关系时,需要重新拉取对端关系所关联的模型。\n * 如在主机详情中展示负责人所在的角色,需要拿到与USER相关的模型ROLE@ONEMODEL\n * 而原来的modelDataMap是与HOST相关的,可能不包括ROLE@ONEMODEL,就造成取不到角色的showKey\n */\n useEffect(() => {\n const fetchOppositeModelData = async () => {\n const modelListData = await fetchCmdbObjectRef(\n relationData.right_object_id\n );\n setOppositeModelDataMap(keyBy(modelListData.data, \"objectId\"));\n };\n fetchOppositeModelData().catch((error) => {\n handleHttpError(error);\n });\n }, [relationData]);\n const [instanceSourceQuery, setInstanceSourceQuery] = useState(null);\n const modelData = modelDataMap[relationData.left_object_id];\n let oppositeModelData = modifyModelData(\n modelDataMap[relationData.right_object_id]\n );\n // 如果指定了relation_default_attr,则取里面的字段\n const defaultRelationFields = get(modelData, [\n \"view\",\n \"relation_default_attr\",\n relationData.__id,\n ]);\n\n const fieldIds = getRelationShowFields(\n defaultRelationFields,\n oppositeModelData.attrList.map((attr) => attr.id),\n get(oppositeModelData, [\"view\", \"attr_order\"])\n );\n //过滤掉视图不可见字段\n const hideModelData = oppositeModelData.view?.hide_columns ?? [];\n oppositeModelData = {\n ...oppositeModelData,\n attrList: oppositeModelData.attrList.filter(\n (item: any) => !hideModelData.includes(item.id)\n ),\n relation_list: oppositeModelData.relation_list.filter(\n (item: any) =>\n !(\n (hideModelData.includes(item.left_id) &&\n item.left_object_id === props.relationData.right_object_id) ||\n (hideModelData.includes(item.right_id) &&\n item.right_object_id === props.relationData.right_object_id)\n )\n ),\n };\n\n return (\n <div style={{ display: \"grid\" }}>\n <InstanceListTable\n detailUrlTemplates={\n props.hideRelationLink\n ? null\n : {\n [relationData.right_object_id]:\n \"/next-cmdb-instance-management/next/#{objectId}/instance/#{instanceId}\",\n }\n }\n idObjectMap={oppositeModelDataMap}\n modelData={oppositeModelData}\n instanceListData={{\n list: value,\n }}\n onInstanceSourceChange={(instanceQuery: any) => {\n props.onInstanceSourceChange(instanceQuery);\n }}\n filterInstanceSourceDisabled={props.filterInstanceSourceDisabled}\n autoBreakLine={true}\n fieldIds={fieldIds}\n selectDisabled={true}\n sortDisabled={true}\n configProps={{\n pagination: props.isPagination\n ? {\n showSizeChanger: true,\n total: total,\n pageSizeOptions: [\"10\", \"20\", \"50\"],\n ...relationTablePagination,\n onChange: (page: number, pageSize: number) => {\n paginationChange(page, pageSize, relationData);\n },\n showTotal: (totals: number) => (\n <span className={styles.totalText}>\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.PAGINATION_TOTAL_TEXT}`\n )}{\" \"}\n <strong className={styles.total}>{totals}</strong>{\" \"}\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.PAGINATION_TOTAL_UNIT}`\n )}\n </span>\n ),\n }\n : false,\n }}\n target={\"_blank\"}\n ></InstanceListTable>\n </div>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"instance-relation-table-show.js","names":["React","useEffect","useState","modifyModelData","InstanceListTable","NS_LIBS_CMDB_INSTANCES","K","i18n","get","sortBy","keyBy","styles","fetchCmdbObjectRef","handleHttpError","reOrderAttrs","fields","fieldOrder","arguments","length","undefined","field","index","indexOf","getRelationShowFields","defaultRelationFields","oppositeAttrList","attr_order","showFields","map","item","startsWith","slice","InstanceRelationTableShow","props","_oppositeModelData$vi","_oppositeModelData$vi2","modelDataMap","relationData","value","relationFieldUrlTemplate","paginationChange","total","relationTablePagination","oppositeModelDataMap","setOppositeModelDataMap","fetchOppositeModelData","_ref","_asyncToGenerator","modelListData","right_object_id","data","apply","catch","error","instanceSourceQuery","setInstanceSourceQuery","modelData","left_object_id","oppositeModelData","__id","fieldIds","attrList","attr","id","hideModelData","view","hide_columns","_objectSpread","filter","includes","relation_list","left_id","right_id","createElement","style","display","detailUrlTemplates","hideRelationLink","idObjectMap","instanceListData","list","onInstanceSourceChange","instanceQuery","filterInstanceSourceDisabled","autoBreakLine","selectDisabled","sortDisabled","configProps","pagination","isPagination","showSizeChanger","pageSizeOptions","onChange","page","pageSize","showTotal","totals","className","totalText","t","concat","PAGINATION_TOTAL_TEXT","PAGINATION_TOTAL_UNIT","target"],"sources":["../../../../../src/instance-detail/components/instance-relation-table-show/instance-relation-table-show.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport { Table } from \"antd\";\nimport {\n ModifiedModelObjectRelation,\n modifyModelData,\n} from \"@next-libs/cmdb-utils\";\nimport { CmdbModels } from \"@next-sdk/cmdb-sdk\";\nimport { InstanceListTable } from \"../../../instance-list-table\";\nimport { NS_LIBS_CMDB_INSTANCES, K } from \"../../../i18n/constants\";\nimport i18n from \"i18next\";\nimport { get, sortBy, keyBy } from \"lodash\";\nimport styles from \"../../../instance-list-table/InstanceListTable.module.css\";\nimport { fetchCmdbObjectRef } from \"../../../data-providers\";\nimport { handleHttpError } from \"@next-core/brick-kit\";\nexport interface InstanceRelationTableShowProps {\n modelDataMap: { [objectId: string]: CmdbModels.ModelCmdbObject };\n relationData: ModifiedModelObjectRelation;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value: any[];\n relationFieldUrlTemplate?: string;\n isPagination?: boolean;\n total?: number;\n relationTablePagination?: {\n current?: number;\n pageSize?: number;\n };\n paginationChange?: (\n page: number,\n pageSize: number,\n relationData: ModifiedModelObjectRelation\n ) => Promise<void> | void;\n hideRelationLink?: boolean;\n onInstanceSourceChange?: (instanceSource: string) => void;\n filterInstanceSourceDisabled?: boolean;\n}\nexport function reOrderAttrs(fields: string[], fieldOrder: string[] = []) {\n return sortBy(fields, (field) => {\n const index = fieldOrder.indexOf(field);\n return index === -1 ? fields.length : index;\n });\n}\nexport function getRelationShowFields(\n defaultRelationFields: string[],\n oppositeAttrList: string[],\n attr_order: string[] = []\n) {\n let showFields = oppositeAttrList;\n if (defaultRelationFields?.length) {\n showFields = reOrderAttrs(\n defaultRelationFields.map((item: string) =>\n item.startsWith(\"#\") ? item.slice(1) : item\n ),\n attr_order\n );\n }\n return showFields;\n}\n//istanbul ignore next\nexport function InstanceRelationTableShow(\n props: InstanceRelationTableShowProps\n): React.ReactElement {\n const {\n modelDataMap,\n relationData,\n value,\n relationFieldUrlTemplate,\n paginationChange,\n total,\n relationTablePagination,\n } = props;\n const [oppositeModelDataMap, setOppositeModelDataMap] = useState({});\n /**\n * 实例详情中展示对端实例的关系时,需要重新拉取对端关系所关联的模型。\n * 如在主机详情中展示负责人所在的角色,需要拿到与USER相关的模型ROLE@ONEMODEL\n * 而原来的modelDataMap是与HOST相关的,可能不包括ROLE@ONEMODEL,就造成取不到角色的showKey\n */\n useEffect(() => {\n const fetchOppositeModelData = async () => {\n const modelListData = await fetchCmdbObjectRef(\n relationData.right_object_id\n );\n setOppositeModelDataMap(keyBy(modelListData.data, \"objectId\"));\n };\n fetchOppositeModelData().catch((error) => {\n handleHttpError(error);\n });\n }, [relationData]);\n const [instanceSourceQuery, setInstanceSourceQuery] = useState(null);\n const modelData = modelDataMap[relationData.left_object_id];\n let oppositeModelData = modifyModelData(\n modelDataMap[relationData.right_object_id]\n );\n // 如果指定了relation_default_attr,则取里面的字段\n const defaultRelationFields = get(modelData, [\n \"view\",\n \"relation_default_attr\",\n relationData.__id,\n ]);\n\n const fieldIds = getRelationShowFields(\n defaultRelationFields,\n oppositeModelData.attrList.map((attr) => attr.id),\n get(oppositeModelData, [\"view\", \"attr_order\"])\n );\n //过滤掉视图不可见字段\n const hideModelData = oppositeModelData.view?.hide_columns ?? [];\n oppositeModelData = {\n ...oppositeModelData,\n attrList: oppositeModelData.attrList.filter(\n (item: any) => !hideModelData.includes(item.id)\n ),\n relation_list: oppositeModelData.relation_list.filter(\n (item: any) =>\n !(\n (hideModelData.includes(item.left_id) &&\n item.left_object_id === props.relationData.right_object_id) ||\n (hideModelData.includes(item.right_id) &&\n item.right_object_id === props.relationData.right_object_id)\n )\n ),\n };\n\n return (\n <div style={{ display: \"grid\" }}>\n <InstanceListTable\n detailUrlTemplates={\n props.hideRelationLink\n ? null\n : {\n [relationData.right_object_id]:\n \"/next-cmdb-instance-management/next/#{objectId}/instance/#{instanceId}\",\n }\n }\n idObjectMap={oppositeModelDataMap}\n modelData={oppositeModelData}\n instanceListData={{\n list: value,\n }}\n onInstanceSourceChange={(instanceQuery: any) => {\n props.onInstanceSourceChange(instanceQuery);\n }}\n filterInstanceSourceDisabled={props.filterInstanceSourceDisabled}\n autoBreakLine={true}\n fieldIds={fieldIds}\n selectDisabled={true}\n sortDisabled={true}\n configProps={{\n pagination: props.isPagination\n ? {\n showSizeChanger: true,\n total: total,\n pageSizeOptions: [\"10\", \"20\", \"50\"],\n ...relationTablePagination,\n onChange: (page: number, pageSize: number) => {\n paginationChange(page, pageSize, relationData);\n },\n showTotal: (totals: number) => (\n <span className={styles.totalText}>\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.PAGINATION_TOTAL_TEXT}`\n )}{\" \"}\n <strong className={styles.total}>{totals}</strong>{\" \"}\n {i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.PAGINATION_TOTAL_UNIT}`\n )}\n </span>\n ),\n }\n : false,\n }}\n target={\"_blank\"}\n ></InstanceListTable>\n </div>\n );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -27,7 +27,6 @@ export function InstancesAttachmentDisplay(props) {
27
27
  var previewUrl = "".concat(domain, "/api/gateway/file_previewer.preview.PreviewFile/onlinePreview?url=").concat(encodeURIComponent(Base64.encode(url)
28
28
  // window.btoa(url)
29
29
  ));
30
-
31
30
  window.open(previewUrl, "_blank");
32
31
  };
33
32
  return /*#__PURE__*/React.createElement(React.Fragment, null, value === null || value === void 0 ? void 0 : value.map(file => {
@@ -1 +1 @@
1
- {"version":3,"file":"instances-attachment-display.js","names":["React","EyeOutlined","DownloadOutlined","FileTextOutlined","Base64","FileUtils","DownloadFileUrl","styles","InstancesAttachmentDisplay","props","value","handleDownload","file","domain","window","location","origin","link","document","createElement","href","url","name","download","body","appendChild","click","removeChild","handlePreview","checksum","slice","length","previewUrl","encodeURIComponent","encode","open","map","isPreview","sizeCompare","supportFileType","id","attachmentItem","marginRight","attachmentText","attachmentSpan","attachmentIconItem"],"sources":["../../../../../src/instance-detail/components/instances-attachment-display/instances-attachment-display.tsx"],"sourcesContent":["import React from \"react\";\nimport {\n EyeOutlined,\n DownloadOutlined,\n FileTextOutlined,\n} from \"@ant-design/icons\";\nimport { Base64 } from \"js-base64\";\nimport { FileUtils } from \"@next-libs/cmdb-utils\";\nimport { DownloadFileUrl } from \"../../../constants\";\nimport styles from \"./instances-attachment-display.module.css\";\n\ninterface InstancesAttachmentDisplayProps {\n value?: Record<string, any>[];\n}\n\nexport function InstancesAttachmentDisplay(\n props: InstancesAttachmentDisplayProps\n): React.ReactElement {\n const { value } = props;\n // 下载\n const handleDownload = (file: any): void => {\n const domain = `${window.location.origin}/next`;\n const link = document.createElement(\"a\");\n link.href = `${domain}/${file.url}?fileName=${file.name}`;\n link.download = file.name;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n };\n // 预览\n const handlePreview = (file: any): void => {\n const domain = `${window.location.origin}/next`;\n const checksum = file.url?.slice(\n DownloadFileUrl.length + 1,\n file.url.length\n );\n const url = `${domain}/${file.url}?checksum=${checksum}&fileName=${file.name}&fullfilename=${file.name}`;\n const previewUrl = `${domain}/api/gateway/file_previewer.preview.PreviewFile/onlinePreview?url=${encodeURIComponent(\n Base64.encode(url)\n // window.btoa(url)\n )}`;\n window.open(previewUrl, \"_blank\");\n };\n return (\n <>\n {value?.map((file: any) => {\n // 是否支持预览\n const isPreview =\n !FileUtils.sizeCompare(file, 100) && FileUtils.supportFileType(file);\n return (\n <div key={file.id} className={styles.attachmentItem}>\n <span>\n <FileTextOutlined style={{ marginRight: \"6px\" }} />\n <span className={styles.attachmentText}>{file.name}</span>\n </span>\n <span className={styles.attachmentSpan}>\n {isPreview && (\n <EyeOutlined\n className={styles.attachmentIconItem}\n onClick={() => handlePreview(file)}\n />\n )}\n <DownloadOutlined\n className={styles.attachmentIconItem}\n onClick={() => handleDownload(file)}\n />\n </span>\n </div>\n );\n })}\n </>\n );\n}\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SACEC,WAAW,EACXC,gBAAgB,EAChBC,gBAAgB,QACX,mBAAmB;AAC1B,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,SAAS,QAAQ,uBAAuB;AACjD,SAASC,eAAe,QAAQ,oBAAoB;AACpD,OAAOC,MAAM,MAAM,2CAA2C;AAM9D,OAAO,SAASC,0BAA0B,CACxCC,KAAsC,EAClB;EACpB,IAAM;IAAEC;EAAM,CAAC,GAAGD,KAAK;EACvB;EACA,IAAME,cAAc,GAAIC,IAAS,IAAW;IAC1C,IAAMC,MAAM,aAAMC,MAAM,CAACC,QAAQ,CAACC,MAAM,UAAO;IAC/C,IAAMC,IAAI,GAAGC,QAAQ,CAACC,aAAa,CAAC,GAAG,CAAC;IACxCF,IAAI,CAACG,IAAI,aAAMP,MAAM,cAAID,IAAI,CAACS,GAAG,uBAAaT,IAAI,CAACU,IAAI,CAAE;IACzDL,IAAI,CAACM,QAAQ,GAAGX,IAAI,CAACU,IAAI;IACzBJ,QAAQ,CAACM,IAAI,CAACC,WAAW,CAACR,IAAI,CAAC;IAC/BA,IAAI,CAACS,KAAK,EAAE;IACZR,QAAQ,CAACM,IAAI,CAACG,WAAW,CAACV,IAAI,CAAC;EACjC,CAAC;EACD;EACA,IAAMW,aAAa,GAAIhB,IAAS,IAAW;IAAA;IACzC,IAAMC,MAAM,aAAMC,MAAM,CAACC,QAAQ,CAACC,MAAM,UAAO;IAC/C,IAAMa,QAAQ,gBAAGjB,IAAI,CAACS,GAAG,8CAAR,UAAUS,KAAK,CAC9BxB,eAAe,CAACyB,MAAM,GAAG,CAAC,EAC1BnB,IAAI,CAACS,GAAG,CAACU,MAAM,CAChB;IACD,IAAMV,GAAG,aAAMR,MAAM,cAAID,IAAI,CAACS,GAAG,uBAAaQ,QAAQ,uBAAajB,IAAI,CAACU,IAAI,2BAAiBV,IAAI,CAACU,IAAI,CAAE;IACxG,IAAMU,UAAU,aAAMnB,MAAM,+EAAqEoB,kBAAkB,CACjH7B,MAAM,CAAC8B,MAAM,CAACb,GAAG;IACjB;IAAA,CACD,CAAE;;IACHP,MAAM,CAACqB,IAAI,CAACH,UAAU,EAAE,QAAQ,CAAC;EACnC,CAAC;EACD,oBACE,0CACGtB,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAE0B,GAAG,CAAExB,IAAS,IAAK;IACzB;IACA,IAAMyB,SAAS,GACb,CAAChC,SAAS,CAACiC,WAAW,CAAC1B,IAAI,EAAE,GAAG,CAAC,IAAIP,SAAS,CAACkC,eAAe,CAAC3B,IAAI,CAAC;IACtE,oBACE;MAAK,GAAG,EAAEA,IAAI,CAAC4B,EAAG;MAAC,SAAS,EAAEjC,MAAM,CAACkC;IAAe,gBAClD,+CACE,oBAAC,gBAAgB;MAAC,KAAK,EAAE;QAAEC,WAAW,EAAE;MAAM;IAAE,EAAG,eACnD;MAAM,SAAS,EAAEnC,MAAM,CAACoC;IAAe,GAAE/B,IAAI,CAACU,IAAI,CAAQ,CACrD,eACP;MAAM,SAAS,EAAEf,MAAM,CAACqC;IAAe,GACpCP,SAAS,iBACR,oBAAC,WAAW;MACV,SAAS,EAAE9B,MAAM,CAACsC,kBAAmB;MACrC,OAAO,EAAE,MAAMjB,aAAa,CAAChB,IAAI;IAAE,EAEtC,eACD,oBAAC,gBAAgB;MACf,SAAS,EAAEL,MAAM,CAACsC,kBAAmB;MACrC,OAAO,EAAE,MAAMlC,cAAc,CAACC,IAAI;IAAE,EACpC,CACG,CACH;EAEV,CAAC,CAAC,CACD;AAEP"}
1
+ {"version":3,"file":"instances-attachment-display.js","names":["React","EyeOutlined","DownloadOutlined","FileTextOutlined","Base64","FileUtils","DownloadFileUrl","styles","InstancesAttachmentDisplay","props","value","handleDownload","file","domain","concat","window","location","origin","link","document","createElement","href","url","name","download","body","appendChild","click","removeChild","handlePreview","_file$url","checksum","slice","length","previewUrl","encodeURIComponent","encode","open","Fragment","map","isPreview","sizeCompare","supportFileType","key","id","className","attachmentItem","style","marginRight","attachmentText","attachmentSpan","attachmentIconItem","onClick"],"sources":["../../../../../src/instance-detail/components/instances-attachment-display/instances-attachment-display.tsx"],"sourcesContent":["import React from \"react\";\nimport {\n EyeOutlined,\n DownloadOutlined,\n FileTextOutlined,\n} from \"@ant-design/icons\";\nimport { Base64 } from \"js-base64\";\nimport { FileUtils } from \"@next-libs/cmdb-utils\";\nimport { DownloadFileUrl } from \"../../../constants\";\nimport styles from \"./instances-attachment-display.module.css\";\n\ninterface InstancesAttachmentDisplayProps {\n value?: Record<string, any>[];\n}\n\nexport function InstancesAttachmentDisplay(\n props: InstancesAttachmentDisplayProps\n): React.ReactElement {\n const { value } = props;\n // 下载\n const handleDownload = (file: any): void => {\n const domain = `${window.location.origin}/next`;\n const link = document.createElement(\"a\");\n link.href = `${domain}/${file.url}?fileName=${file.name}`;\n link.download = file.name;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n };\n // 预览\n const handlePreview = (file: any): void => {\n const domain = `${window.location.origin}/next`;\n const checksum = file.url?.slice(\n DownloadFileUrl.length + 1,\n file.url.length\n );\n const url = `${domain}/${file.url}?checksum=${checksum}&fileName=${file.name}&fullfilename=${file.name}`;\n const previewUrl = `${domain}/api/gateway/file_previewer.preview.PreviewFile/onlinePreview?url=${encodeURIComponent(\n Base64.encode(url)\n // window.btoa(url)\n )}`;\n window.open(previewUrl, \"_blank\");\n };\n return (\n <>\n {value?.map((file: any) => {\n // 是否支持预览\n const isPreview =\n !FileUtils.sizeCompare(file, 100) && FileUtils.supportFileType(file);\n return (\n <div key={file.id} className={styles.attachmentItem}>\n <span>\n <FileTextOutlined style={{ marginRight: \"6px\" }} />\n <span className={styles.attachmentText}>{file.name}</span>\n </span>\n <span className={styles.attachmentSpan}>\n {isPreview && (\n <EyeOutlined\n className={styles.attachmentIconItem}\n onClick={() => handlePreview(file)}\n />\n )}\n <DownloadOutlined\n className={styles.attachmentIconItem}\n onClick={() => handleDownload(file)}\n />\n </span>\n </div>\n );\n })}\n </>\n );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["DEFAULT_ATTRIBUTE_TAG","BASIC_INFORMATION_RELATION_GROUP_ID","DEFAULT_ATTRIBUTE_TAG_STR","BASIC_INFO"],"sources":["../../../../src/instance-detail/constants/index.ts"],"sourcesContent":["export const DEFAULT_ATTRIBUTE_TAG = \"基本信息\";\nexport const BASIC_INFORMATION_RELATION_GROUP_ID = \"basic_info\";\nexport const DEFAULT_ATTRIBUTE_TAG_STR = \"默认属性\";\nexport const BASIC_INFO = \"基本信息\";\n"],"mappings":"AAAA,OAAO,IAAMA,qBAAqB,GAAG,MAAM;AAC3C,OAAO,IAAMC,mCAAmC,GAAG,YAAY;AAC/D,OAAO,IAAMC,yBAAyB,GAAG,MAAM;AAC/C,OAAO,IAAMC,UAAU,GAAG,MAAM"}
1
+ {"version":3,"file":"index.js","names":["DEFAULT_ATTRIBUTE_TAG","BASIC_INFORMATION_RELATION_GROUP_ID","DEFAULT_ATTRIBUTE_TAG_STR","BASIC_INFO"],"sources":["../../../../src/instance-detail/constants/index.ts"],"sourcesContent":["export const DEFAULT_ATTRIBUTE_TAG = \"基本信息\";\nexport const BASIC_INFORMATION_RELATION_GROUP_ID = \"basic_info\";\nexport const DEFAULT_ATTRIBUTE_TAG_STR = \"默认属性\";\nexport const BASIC_INFO = \"基本信息\";\n"],"mappings":"AAAA,OAAO,IAAMA,qBAAqB,GAAG,MAAM;AAC3C,OAAO,IAAMC,mCAAmC,GAAG,YAAY;AAC/D,OAAO,IAAMC,yBAAyB,GAAG,MAAM;AAC/C,OAAO,IAAMC,UAAU,GAAG,MAAM","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"FilterInstanceSource.js","names":["React","useEffect","useMemo","useState","Popover","Input","Button","Radio","Space","IconButton","SearchOutlined","styles","map","isEmpty","i18n","K","NS_LIBS_CMDB_INSTANCES","encode","keyword","reg","replace","key","FilterInstanceSource","props","instanceSource","setInstanceSource","value","objectIdNameList","setObjectIdNameList","setKeyword","checked","visible","jsonLocalStorage","isAbstract","objectNameMap","getItem","_modelIdNameMap","inheritanceModelIdNameMap","idNameMap","_objectIdNameList","text","onReset","e","parentObjectId","query","objectId","objectName","onChange","onIconClicKChange","onPopoverVisibleChange","onConfirm","handleRadioChange","target","trim","regex","RegExp","filterObjectIdNameList","filter","v","test","onIconCheckedChange","getContent","t","SEARCH_MODEL","content","length","noData","NO_DATA","footer","RESET","CONFIRM","width","marginRight"],"sources":["../../../src/instance-list/FilterInstanceSource.tsx"],"sourcesContent":["import React, { FC, ReactElement, useEffect, useMemo, useState } from \"react\";\nimport { Popover, Input, Button, Radio, Space } from \"antd\";\nimport { IconButton } from \"./IconButton\";\nimport { SearchOutlined } from \"@ant-design/icons\";\nimport styles from \"./FilterInstanceSource.module.css\";\nimport { map, isEmpty } from \"lodash\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\n\nimport { filterObjectIdQuery } from \"./InstanceList\";\n\ninterface FilterInstanceSourceProps {\n visible?: boolean;\n checked?: boolean;\n onIconClicKChange?(checked: boolean): void;\n inheritanceModelIdNameMap?: Record<string, string>;\n value?: string;\n onChange: (value: filterObjectIdQuery) => void;\n onPopoverVisibleChange?(visible: boolean): void;\n jsonLocalStorage?: any;\n isAbstract?: boolean;\n}\n\nfunction encode(keyword: string): string {\n const reg = /[[($^.\\]*\\\\?+{}|)]/gi;\n return keyword.replace(reg, (key) => `\\\\${key}`);\n}\n\nconst FilterInstanceSource: FC<FilterInstanceSourceProps> = (props) => {\n const [instanceSource, setInstanceSource] = useState(props.value);\n const [objectIdNameList, setObjectIdNameList] = useState([]);\n const [keyword, setKeyword] = useState(\"\");\n const { checked, visible, jsonLocalStorage, isAbstract } = props;\n\n const objectNameMap = useMemo(() => {\n return (\n jsonLocalStorage.getItem(\"instances-sources-objectId-name-map\") || {}\n );\n }, [jsonLocalStorage]);\n\n const _modelIdNameMap = useMemo(() => {\n return isEmpty(props.inheritanceModelIdNameMap)\n ? objectNameMap?.idNameMap\n : props.inheritanceModelIdNameMap;\n }, [props.inheritanceModelIdNameMap, objectNameMap]);\n\n useEffect(() => {\n const _objectIdNameList = map(_modelIdNameMap, (value, key) => ({\n text: value,\n value: key,\n }));\n setObjectIdNameList(_objectIdNameList);\n }, [_modelIdNameMap, checked]);\n\n const onReset = (e: any): void => {\n const { parentObjectId, query } = objectNameMap;\n const value: filterObjectIdQuery = {\n objectId: parentObjectId,\n objectName: \"\",\n query,\n checked: false,\n };\n setKeyword(\"\");\n setInstanceSource(\"\");\n props?.onChange(value);\n props?.onIconClicKChange(false);\n props?.onPopoverVisibleChange(false);\n };\n\n const onConfirm = (e: any): void => {\n if (!instanceSource) {\n setKeyword(\"\");\n props?.onIconClicKChange(false);\n props?.onPopoverVisibleChange(false);\n return;\n }\n const query: filterObjectIdQuery = {\n objectId: instanceSource,\n objectName: _modelIdNameMap[instanceSource],\n query: objectNameMap?.query || {},\n checked,\n };\n setKeyword(\"\");\n props?.onChange(query);\n props?.onPopoverVisibleChange(false);\n };\n\n const handleRadioChange = (e: any): void => {\n setInstanceSource(e.target.value);\n };\n\n const onChange = (e: any): void => {\n const value = encode(e.target.value.trim());\n const _objectIdNameList = map(_modelIdNameMap, (value, key) => ({\n text: value,\n value: key,\n }));\n const regex = new RegExp(value, \"ig\");\n const filterObjectIdNameList = _objectIdNameList.filter((v) =>\n regex.test(v.text)\n );\n setKeyword(e.target.value.trim());\n setObjectIdNameList(filterObjectIdNameList);\n };\n\n const onIconCheckedChange = (checked: boolean): void => {\n if (isAbstract) {\n props?.onIconClicKChange(checked);\n props?.onPopoverVisibleChange(checked);\n } else {\n props?.onIconClicKChange(true);\n props?.onPopoverVisibleChange(true);\n }\n };\n\n const getContent = (): ReactElement => {\n return (\n <>\n <Input\n placeholder={i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.SEARCH_MODEL}`)}\n suffix={<SearchOutlined />}\n onChange={onChange}\n value={keyword}\n data-testid=\"instance-source-search\"\n />\n <div className={styles.content}>\n {objectIdNameList.length ? (\n <Radio.Group value={instanceSource} onChange={handleRadioChange}>\n <Space direction=\"vertical\">\n {objectIdNameList.map(({ text, value }) => (\n <Radio key={value} value={value}>\n {text}\n </Radio>\n ))}\n </Space>\n </Radio.Group>\n ) : (\n <div className={styles.noData}>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.NO_DATA}`)}\n </div>\n )}\n </div>\n <div className={styles.footer}>\n <Button\n type=\"text\"\n size=\"small\"\n onClick={onReset}\n disabled={isAbstract}\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.RESET}`)}\n </Button>\n <Button type=\"primary\" size=\"small\" onClick={onConfirm}>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CONFIRM}`)}\n </Button>\n </div>\n </>\n );\n };\n return (\n <Popover\n content={getContent()}\n placement=\"bottomRight\"\n overlayStyle={{ width: \"325px\" }}\n visible={visible}\n trigger=\"click\"\n >\n <IconButton\n checked={checked}\n onChange={onIconCheckedChange}\n style={{ marginRight: 10 }}\n type=\"filterInstanceSource\"\n label={\"\"}\n data-testid=\"instance-source-icon\"\n />\n </Popover>\n );\n};\n\nexport default FilterInstanceSource;\n"],"mappings":"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"}
1
+ {"version":3,"file":"FilterInstanceSource.js","names":["React","useEffect","useMemo","useState","Popover","Input","Button","Radio","Space","IconButton","SearchOutlined","styles","map","isEmpty","i18n","K","NS_LIBS_CMDB_INSTANCES","encode","keyword","reg","replace","key","concat","FilterInstanceSource","props","instanceSource","setInstanceSource","value","objectIdNameList","setObjectIdNameList","setKeyword","checked","visible","jsonLocalStorage","isAbstract","objectNameMap","getItem","_modelIdNameMap","inheritanceModelIdNameMap","idNameMap","_objectIdNameList","text","onReset","e","parentObjectId","query","objectId","objectName","onChange","onIconClicKChange","onPopoverVisibleChange","onConfirm","handleRadioChange","target","trim","regex","RegExp","filterObjectIdNameList","filter","v","test","onIconCheckedChange","getContent","createElement","Fragment","placeholder","t","SEARCH_MODEL","suffix","className","content","length","Group","direction","_ref","noData","NO_DATA","footer","type","size","onClick","disabled","RESET","CONFIRM","placement","overlayStyle","width","trigger","style","marginRight","label"],"sources":["../../../src/instance-list/FilterInstanceSource.tsx"],"sourcesContent":["import React, { FC, ReactElement, useEffect, useMemo, useState } from \"react\";\nimport { Popover, Input, Button, Radio, Space } from \"antd\";\nimport { IconButton } from \"./IconButton\";\nimport { SearchOutlined } from \"@ant-design/icons\";\nimport styles from \"./FilterInstanceSource.module.css\";\nimport { map, isEmpty } from \"lodash\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\n\nimport { filterObjectIdQuery } from \"./InstanceList\";\n\ninterface FilterInstanceSourceProps {\n visible?: boolean;\n checked?: boolean;\n onIconClicKChange?(checked: boolean): void;\n inheritanceModelIdNameMap?: Record<string, string>;\n value?: string;\n onChange: (value: filterObjectIdQuery) => void;\n onPopoverVisibleChange?(visible: boolean): void;\n jsonLocalStorage?: any;\n isAbstract?: boolean;\n}\n\nfunction encode(keyword: string): string {\n const reg = /[[($^.\\]*\\\\?+{}|)]/gi;\n return keyword.replace(reg, (key) => `\\\\${key}`);\n}\n\nconst FilterInstanceSource: FC<FilterInstanceSourceProps> = (props) => {\n const [instanceSource, setInstanceSource] = useState(props.value);\n const [objectIdNameList, setObjectIdNameList] = useState([]);\n const [keyword, setKeyword] = useState(\"\");\n const { checked, visible, jsonLocalStorage, isAbstract } = props;\n\n const objectNameMap = useMemo(() => {\n return (\n jsonLocalStorage.getItem(\"instances-sources-objectId-name-map\") || {}\n );\n }, [jsonLocalStorage]);\n\n const _modelIdNameMap = useMemo(() => {\n return isEmpty(props.inheritanceModelIdNameMap)\n ? objectNameMap?.idNameMap\n : props.inheritanceModelIdNameMap;\n }, [props.inheritanceModelIdNameMap, objectNameMap]);\n\n useEffect(() => {\n const _objectIdNameList = map(_modelIdNameMap, (value, key) => ({\n text: value,\n value: key,\n }));\n setObjectIdNameList(_objectIdNameList);\n }, [_modelIdNameMap, checked]);\n\n const onReset = (e: any): void => {\n const { parentObjectId, query } = objectNameMap;\n const value: filterObjectIdQuery = {\n objectId: parentObjectId,\n objectName: \"\",\n query,\n checked: false,\n };\n setKeyword(\"\");\n setInstanceSource(\"\");\n props?.onChange(value);\n props?.onIconClicKChange(false);\n props?.onPopoverVisibleChange(false);\n };\n\n const onConfirm = (e: any): void => {\n if (!instanceSource) {\n setKeyword(\"\");\n props?.onIconClicKChange(false);\n props?.onPopoverVisibleChange(false);\n return;\n }\n const query: filterObjectIdQuery = {\n objectId: instanceSource,\n objectName: _modelIdNameMap[instanceSource],\n query: objectNameMap?.query || {},\n checked,\n };\n setKeyword(\"\");\n props?.onChange(query);\n props?.onPopoverVisibleChange(false);\n };\n\n const handleRadioChange = (e: any): void => {\n setInstanceSource(e.target.value);\n };\n\n const onChange = (e: any): void => {\n const value = encode(e.target.value.trim());\n const _objectIdNameList = map(_modelIdNameMap, (value, key) => ({\n text: value,\n value: key,\n }));\n const regex = new RegExp(value, \"ig\");\n const filterObjectIdNameList = _objectIdNameList.filter((v) =>\n regex.test(v.text)\n );\n setKeyword(e.target.value.trim());\n setObjectIdNameList(filterObjectIdNameList);\n };\n\n const onIconCheckedChange = (checked: boolean): void => {\n if (isAbstract) {\n props?.onIconClicKChange(checked);\n props?.onPopoverVisibleChange(checked);\n } else {\n props?.onIconClicKChange(true);\n props?.onPopoverVisibleChange(true);\n }\n };\n\n const getContent = (): ReactElement => {\n return (\n <>\n <Input\n placeholder={i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.SEARCH_MODEL}`)}\n suffix={<SearchOutlined />}\n onChange={onChange}\n value={keyword}\n data-testid=\"instance-source-search\"\n />\n <div className={styles.content}>\n {objectIdNameList.length ? (\n <Radio.Group value={instanceSource} onChange={handleRadioChange}>\n <Space direction=\"vertical\">\n {objectIdNameList.map(({ text, value }) => (\n <Radio key={value} value={value}>\n {text}\n </Radio>\n ))}\n </Space>\n </Radio.Group>\n ) : (\n <div className={styles.noData}>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.NO_DATA}`)}\n </div>\n )}\n </div>\n <div className={styles.footer}>\n <Button\n type=\"text\"\n size=\"small\"\n onClick={onReset}\n disabled={isAbstract}\n >\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.RESET}`)}\n </Button>\n <Button type=\"primary\" size=\"small\" onClick={onConfirm}>\n {i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CONFIRM}`)}\n </Button>\n </div>\n </>\n );\n };\n return (\n <Popover\n content={getContent()}\n placement=\"bottomRight\"\n overlayStyle={{ width: \"325px\" }}\n visible={visible}\n trigger=\"click\"\n >\n <IconButton\n checked={checked}\n onChange={onIconCheckedChange}\n style={{ marginRight: 10 }}\n type=\"filterInstanceSource\"\n label={\"\"}\n data-testid=\"instance-source-icon\"\n />\n </Popover>\n );\n};\n\nexport default FilterInstanceSource;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"IconButton.js","names":["React","Tooltip","styles","classNames","GeneralIcon","i18n","K","NS_LIBS_CMDB_INSTANCES","IconButton","props","checked","setChecked","useState","useEffect","handleClick","onChange","getIcon","type","lib","icon","prefix","theme","getTooltip","t","CLICK_TO_CANCEL_FILTER","label","CLICK_TO_FILTER","CLICK_TO_HIDDEN","CLICK_TO_SHOW","CLICK_TO_FILTER_INSTANCE_SOURCE","style","iconBtnBac","selected","disabled"],"sources":["../../../src/instance-list/IconButton.tsx"],"sourcesContent":["import React from \"react\";\nimport { Tooltip } from \"antd\";\nimport styles from \"./IconButton.module.css\";\nimport classNames from \"classnames\";\nimport { GeneralIcon } from \"@next-libs/basic-components\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\n\ninterface IconButtonProps {\n checked?: boolean;\n onChange: (checked: boolean) => void;\n type: string;\n style?: Record<string, any>;\n label: string;\n disabled?: boolean;\n}\n\nexport function IconButton(props: IconButtonProps) {\n const [checked, setChecked] = React.useState(false);\n\n React.useEffect(() => {\n setChecked(!!props.checked);\n }, [props]);\n\n const handleClick = (checked: boolean) => {\n setChecked(checked);\n props.onChange(checked);\n };\n\n const getIcon = () => {\n switch (props.type) {\n case \"relateToMe\":\n return (\n <GeneralIcon icon={{ lib: \"fa\", icon: \"user\", prefix: \"fas\" }} />\n );\n case \"showHiddenInfo\":\n return <GeneralIcon icon={{ lib: \"fa\", icon: \"expand-alt\" }} />;\n case \"normalHost\":\n return <GeneralIcon icon={{ lib: \"fa\", icon: \"tv\", prefix: \"fas\" }} />;\n case \"allName\":\n return <GeneralIcon icon={{ lib: \"fa\", icon: \"cube\" }} />;\n case \"filterInstanceSource\":\n return (\n <GeneralIcon\n icon={{ lib: \"antd\", icon: \"filter\", theme: \"filled\" }}\n />\n );\n }\n };\n const getTooltip = () => {\n switch (props.type) {\n case \"relateToMe\":\n case \"normalHost\":\n case \"allName\":\n return checked\n ? i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLICK_TO_CANCEL_FILTER}`, {\n label: props.label,\n })\n : i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLICK_TO_FILTER}`, {\n label: props.label,\n });\n case \"showHiddenInfo\":\n return checked\n ? i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLICK_TO_HIDDEN}`, {\n label: props.label,\n })\n : i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLICK_TO_SHOW}`, {\n label: props.label,\n });\n case \"filterInstanceSource\":\n return i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.CLICK_TO_FILTER_INSTANCE_SOURCE}`\n );\n }\n };\n\n return (\n <Tooltip placement=\"top\" title={getTooltip()}>\n <a\n style={props.style}\n className={classNames({\n [styles.iconBtnBac]: true,\n [styles.selected]: checked,\n [styles.disabled]: props.disabled,\n })}\n onClick={() => !props.disabled && handleClick(!checked)}\n >\n {getIcon()}\n </a>\n </Tooltip>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"IconButton.js","names":["React","Tooltip","styles","classNames","GeneralIcon","i18n","K","NS_LIBS_CMDB_INSTANCES","IconButton","props","checked","setChecked","useState","useEffect","handleClick","onChange","getIcon","type","createElement","icon","lib","prefix","theme","getTooltip","t","concat","CLICK_TO_CANCEL_FILTER","label","CLICK_TO_FILTER","CLICK_TO_HIDDEN","CLICK_TO_SHOW","CLICK_TO_FILTER_INSTANCE_SOURCE","placement","title","style","className","iconBtnBac","selected","disabled","onClick"],"sources":["../../../src/instance-list/IconButton.tsx"],"sourcesContent":["import React from \"react\";\nimport { Tooltip } from \"antd\";\nimport styles from \"./IconButton.module.css\";\nimport classNames from \"classnames\";\nimport { GeneralIcon } from \"@next-libs/basic-components\";\nimport i18n from \"i18next\";\nimport { K, NS_LIBS_CMDB_INSTANCES } from \"../i18n/constants\";\n\ninterface IconButtonProps {\n checked?: boolean;\n onChange: (checked: boolean) => void;\n type: string;\n style?: Record<string, any>;\n label: string;\n disabled?: boolean;\n}\n\nexport function IconButton(props: IconButtonProps) {\n const [checked, setChecked] = React.useState(false);\n\n React.useEffect(() => {\n setChecked(!!props.checked);\n }, [props]);\n\n const handleClick = (checked: boolean) => {\n setChecked(checked);\n props.onChange(checked);\n };\n\n const getIcon = () => {\n switch (props.type) {\n case \"relateToMe\":\n return (\n <GeneralIcon icon={{ lib: \"fa\", icon: \"user\", prefix: \"fas\" }} />\n );\n case \"showHiddenInfo\":\n return <GeneralIcon icon={{ lib: \"fa\", icon: \"expand-alt\" }} />;\n case \"normalHost\":\n return <GeneralIcon icon={{ lib: \"fa\", icon: \"tv\", prefix: \"fas\" }} />;\n case \"allName\":\n return <GeneralIcon icon={{ lib: \"fa\", icon: \"cube\" }} />;\n case \"filterInstanceSource\":\n return (\n <GeneralIcon\n icon={{ lib: \"antd\", icon: \"filter\", theme: \"filled\" }}\n />\n );\n }\n };\n const getTooltip = () => {\n switch (props.type) {\n case \"relateToMe\":\n case \"normalHost\":\n case \"allName\":\n return checked\n ? i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLICK_TO_CANCEL_FILTER}`, {\n label: props.label,\n })\n : i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLICK_TO_FILTER}`, {\n label: props.label,\n });\n case \"showHiddenInfo\":\n return checked\n ? i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLICK_TO_HIDDEN}`, {\n label: props.label,\n })\n : i18n.t(`${NS_LIBS_CMDB_INSTANCES}:${K.CLICK_TO_SHOW}`, {\n label: props.label,\n });\n case \"filterInstanceSource\":\n return i18n.t(\n `${NS_LIBS_CMDB_INSTANCES}:${K.CLICK_TO_FILTER_INSTANCE_SOURCE}`\n );\n }\n };\n\n return (\n <Tooltip placement=\"top\" title={getTooltip()}>\n <a\n style={props.style}\n className={classNames({\n [styles.iconBtnBac]: true,\n [styles.selected]: checked,\n [styles.disabled]: props.disabled,\n })}\n onClick={() => !props.disabled && handleClick(!checked)}\n >\n {getIcon()}\n </a>\n </Tooltip>\n );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -240,21 +240,21 @@ export var initAqToShow = function (aq, modelData) {
240
240
  var newExpressions = [];
241
241
  if (key === LogicalOperators.Or || key === LogicalOperators.And) {
242
242
  var firstSubQuery = expressions[0];
243
- var _fieldId = Object.keys(firstSubQuery)[0];
244
- var isStruct = isOfStruct(modelData, _fieldId);
245
- var isBool = isOfBoolean(modelData.attrList, _fieldId);
246
- var structQueries = expressions.filter(expression => Object.keys(expression)[0] === _fieldId);
243
+ var fieldId = Object.keys(firstSubQuery)[0];
244
+ var isStruct = isOfStruct(modelData, fieldId);
245
+ var isBool = isOfBoolean(modelData.attrList, fieldId);
246
+ var structQueries = expressions.filter(expression => Object.keys(expression)[0] === fieldId);
247
247
  if (isStruct && isToShow) {
248
248
  var structExpressions = structQueries.map(item => ({
249
- [_fieldId.split(".")[0]]: item[_fieldId]
249
+ [fieldId.split(".")[0]]: item[fieldId]
250
250
  }));
251
251
  newExpressions = [...newExpressions, ...structExpressions];
252
252
  } else if (isBool && !isToShow) {
253
253
  var boolExpressions = expressions.map(expression => {
254
- var targetValue = expression[_fieldId];
254
+ var targetValue = expression[fieldId];
255
255
  if (typeof Object.values(targetValue)[0] === "string") {
256
256
  return {
257
- [_fieldId]: {
257
+ [fieldId]: {
258
258
  [Object.keys(targetValue)[0]]: Object.values(targetValue)[0] === "true"
259
259
  }
260
260
  };
@@ -1189,11 +1189,11 @@ export function LegacyInstanceList(props) {
1189
1189
  if (!Array.isArray(query[key]) && isSpecialFn(query, key)) {
1190
1190
  queries.push(query);
1191
1191
  } else {
1192
- var _fieldId2 = Object.keys(query[key][0])[0];
1192
+ var fieldId = Object.keys(query[key][0])[0];
1193
1193
  // 判断是否为结构体
1194
- var isStruct = isOfStruct(modelData, _fieldId2);
1194
+ var isStruct = isOfStruct(modelData, fieldId);
1195
1195
  // 结构体情况处理
1196
- if (!((key === "$or" || key === "$and") && startsWith(_fieldId2, "".concat(attrId, ".")) && isStruct)) {
1196
+ if (!((key === "$or" || key === "$and") && startsWith(fieldId, "".concat(attrId, ".")) && isStruct)) {
1197
1197
  queries.push(query);
1198
1198
  }
1199
1199
  }