d2aura 26.0.13 → 26.0.15

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 (158) hide show
  1. package/api/eda/edaManagerApi.d.ts +54 -15
  2. package/api/eda/edaManagerApi.js +106 -29
  3. package/api/eda/edaManagerApi.js.map +1 -1
  4. package/api/eda/generated/events.d.ts +115 -35
  5. package/api/eda/generated/events.js +193 -41
  6. package/api/eda/generated/events.js.map +1 -1
  7. package/api/eda/generated/structures.d.ts +110 -33
  8. package/api/eda/generated/structures.js.map +1 -1
  9. package/core/i18n/d2aura.en.json +14 -0
  10. package/core/i18n/d2aura.sk.json +92 -2
  11. package/coreui/components/edaManager/components/detail/components/edaVectorMassChangeButton.d.ts +1 -1
  12. package/coreui/components/edaManager/components/detail/components/edaVectorMassChangeButton.js +2 -2
  13. package/coreui/components/edaManager/components/detail/components/edaVectorMassChangeButton.js.map +1 -1
  14. package/coreui/components/edaManagerComponent/components/edaChartViewer.d.ts +14 -0
  15. package/coreui/components/edaManagerComponent/components/edaChartViewer.js +374 -0
  16. package/coreui/components/edaManagerComponent/components/edaChartViewer.js.map +1 -0
  17. package/coreui/components/edaManagerComponent/components/edaDataBasePanel.d.ts +4 -8
  18. package/coreui/components/edaManagerComponent/components/edaDataBasePanel.js +18 -75
  19. package/coreui/components/edaManagerComponent/components/edaDataBasePanel.js.map +1 -1
  20. package/coreui/components/edaManagerComponent/components/edaDetailPanel.d.ts +5 -14
  21. package/coreui/components/edaManagerComponent/components/edaDetailPanel.js +80 -19
  22. package/coreui/components/edaManagerComponent/components/edaDetailPanel.js.map +1 -1
  23. package/coreui/components/edaManagerComponent/components/edaGraphPanel.d.ts +2 -7
  24. package/coreui/components/edaManagerComponent/components/edaGraphPanel.js +22 -390
  25. package/coreui/components/edaManagerComponent/components/edaGraphPanel.js.map +1 -1
  26. package/coreui/components/edaManagerComponent/components/edaGroupDetailPanel.d.ts +3 -14
  27. package/coreui/components/edaManagerComponent/components/edaGroupDetailPanel.js +54 -67
  28. package/coreui/components/edaManagerComponent/components/edaGroupDetailPanel.js.map +1 -1
  29. package/coreui/components/edaManagerComponent/components/edaLoadingOverlay.d.ts +7 -0
  30. package/coreui/components/edaManagerComponent/components/edaLoadingOverlay.js +35 -0
  31. package/coreui/components/edaManagerComponent/components/edaLoadingOverlay.js.map +1 -0
  32. package/coreui/components/edaManagerComponent/components/edaSampleRangePickerPanel.d.ts +12 -18
  33. package/coreui/components/edaManagerComponent/components/edaSampleRangePickerPanel.js +55 -51
  34. package/coreui/components/edaManagerComponent/components/edaSampleRangePickerPanel.js.map +1 -1
  35. package/coreui/components/edaManagerComponent/components/edaScenarioDetailPanel.d.ts +3 -14
  36. package/coreui/components/edaManagerComponent/components/edaScenarioDetailPanel.js +67 -81
  37. package/coreui/components/edaManagerComponent/components/edaScenarioDetailPanel.js.map +1 -1
  38. package/coreui/components/edaManagerComponent/components/edaTablePanel.d.ts +2 -6
  39. package/coreui/components/edaManagerComponent/components/edaTablePanel.js +188 -110
  40. package/coreui/components/edaManagerComponent/components/edaTablePanel.js.map +1 -1
  41. package/coreui/components/edaManagerComponent/components/edaTimeWindowPickerPanel.d.ts +2 -13
  42. package/coreui/components/edaManagerComponent/components/edaTimeWindowPickerPanel.js +57 -88
  43. package/coreui/components/edaManagerComponent/components/edaTimeWindowPickerPanel.js.map +1 -1
  44. package/coreui/components/edaManagerComponent/components/edaTreeView.d.ts +9 -51
  45. package/coreui/components/edaManagerComponent/components/edaTreeView.js +431 -262
  46. package/coreui/components/edaManagerComponent/components/edaTreeView.js.map +1 -1
  47. package/coreui/components/edaManagerComponent/components/edaVectorDetailPanel.d.ts +3 -21
  48. package/coreui/components/edaManagerComponent/components/edaVectorDetailPanel.js +160 -179
  49. package/coreui/components/edaManagerComponent/components/edaVectorDetailPanel.js.map +1 -1
  50. package/coreui/components/edaManagerComponent/constants/actionTypes.d.ts +5 -0
  51. package/coreui/components/edaManagerComponent/constants/actionTypes.js +7 -0
  52. package/coreui/components/edaManagerComponent/constants/actionTypes.js.map +1 -0
  53. package/coreui/components/edaManagerComponent/constants/edaTypes.d.ts +23 -11
  54. package/coreui/components/edaManagerComponent/constants/edaTypes.js +15 -0
  55. package/coreui/components/edaManagerComponent/constants/edaTypes.js.map +1 -1
  56. package/coreui/components/edaManagerComponent/context/edaConfigContext.d.ts +26 -0
  57. package/coreui/components/edaManagerComponent/context/edaConfigContext.js +20 -0
  58. package/coreui/components/edaManagerComponent/context/edaConfigContext.js.map +1 -0
  59. package/coreui/components/edaManagerComponent/context/edaVectorDataContext.d.ts +10 -16
  60. package/coreui/components/edaManagerComponent/context/edaVectorDataContext.js +8 -1
  61. package/coreui/components/edaManagerComponent/context/edaVectorDataContext.js.map +1 -1
  62. package/coreui/components/edaManagerComponent/context/edaVectorDataProvider.d.ts +0 -1
  63. package/coreui/components/edaManagerComponent/context/edaVectorDataProvider.js +90 -92
  64. package/coreui/components/edaManagerComponent/context/edaVectorDataProvider.js.map +1 -1
  65. package/coreui/components/edaManagerComponent/context/loadingContext.d.ts +1 -1
  66. package/coreui/components/edaManagerComponent/context/loadingContext.js.map +1 -1
  67. package/coreui/components/edaManagerComponent/context/{sharedSampleRange.d.ts → sharedSampleRangeContext.d.ts} +12 -4
  68. package/coreui/components/edaManagerComponent/context/sharedSampleRangeContext.js +10 -0
  69. package/coreui/components/edaManagerComponent/context/sharedSampleRangeContext.js.map +1 -0
  70. package/coreui/components/edaManagerComponent/context/useEdaActions.d.ts +9 -0
  71. package/coreui/components/edaManagerComponent/context/useEdaActions.js +36 -0
  72. package/coreui/components/edaManagerComponent/context/useEdaActions.js.map +1 -0
  73. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/controlButtons.d.ts +13 -0
  74. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/controlButtons.js +19 -0
  75. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/controlButtons.js.map +1 -0
  76. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/descriptiveVectorDetailPanel.d.ts +8 -0
  77. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/descriptiveVectorDetailPanel.js +171 -0
  78. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/descriptiveVectorDetailPanel.js.map +1 -0
  79. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/graphPanel.d.ts +22 -0
  80. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/graphPanel.js +75 -0
  81. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/graphPanel.js.map +1 -0
  82. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/intervalInput.d.ts +12 -0
  83. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/intervalInput.js +52 -0
  84. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/intervalInput.js.map +1 -0
  85. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/tablePanel.d.ts +22 -0
  86. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/tablePanel.js +130 -0
  87. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/tablePanel.js.map +1 -0
  88. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/types.d.ts +58 -0
  89. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/types.js +51 -0
  90. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/types.js.map +1 -0
  91. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/useSharedData.d.ts +18 -0
  92. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/useSharedData.js +74 -0
  93. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/useSharedData.js.map +1 -0
  94. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/utils.d.ts +38 -0
  95. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/utils.js +299 -0
  96. package/coreui/components/edaManagerComponent/dialogs/descriptiveVectorDialog/utils.js.map +1 -0
  97. package/coreui/components/edaManagerComponent/dialogs/edaDescriptiveVectorEditorDialog.d.ts +10 -0
  98. package/coreui/components/edaManagerComponent/dialogs/edaDescriptiveVectorEditorDialog.js +343 -0
  99. package/coreui/components/edaManagerComponent/dialogs/edaDescriptiveVectorEditorDialog.js.map +1 -0
  100. package/coreui/components/edaManagerComponent/dialogs/edaTableEditorDialog.d.ts +12 -0
  101. package/coreui/components/edaManagerComponent/dialogs/edaTableEditorDialog.js +268 -0
  102. package/coreui/components/edaManagerComponent/dialogs/edaTableEditorDialog.js.map +1 -0
  103. package/coreui/components/edaManagerComponent/dialogs/exportDialog.d.ts +18 -0
  104. package/coreui/components/edaManagerComponent/dialogs/exportDialog.js +156 -0
  105. package/coreui/components/edaManagerComponent/dialogs/exportDialog.js.map +1 -0
  106. package/coreui/components/edaManagerComponent/dialogs/groupVectorSelection.d.ts +12 -0
  107. package/coreui/components/edaManagerComponent/dialogs/groupVectorSelection.js +74 -0
  108. package/coreui/components/edaManagerComponent/dialogs/groupVectorSelection.js.map +1 -0
  109. package/coreui/components/edaManagerComponent/dialogs/insertVectorDialog.d.ts +16 -0
  110. package/coreui/components/edaManagerComponent/dialogs/insertVectorDialog.js +32 -0
  111. package/coreui/components/edaManagerComponent/dialogs/insertVectorDialog.js.map +1 -0
  112. package/coreui/components/edaManagerComponent/edaDetail.d.ts +7 -26
  113. package/coreui/components/edaManagerComponent/edaDetail.js +138 -106
  114. package/coreui/components/edaManagerComponent/edaDetail.js.map +1 -1
  115. package/coreui/components/edaManagerComponent/edaManager.d.ts +4 -11
  116. package/coreui/components/edaManagerComponent/edaManager.js +29 -22
  117. package/coreui/components/edaManagerComponent/edaManager.js.map +1 -1
  118. package/coreui/components/edaManagerComponent/edaNavigator.d.ts +6 -12
  119. package/coreui/components/edaManagerComponent/edaNavigator.js +36 -41
  120. package/coreui/components/edaManagerComponent/edaNavigator.js.map +1 -1
  121. package/coreui/components/edaManagerComponent/edaSelect.d.ts +4 -3
  122. package/coreui/components/edaManagerComponent/edaSelect.js +32 -54
  123. package/coreui/components/edaManagerComponent/edaSelect.js.map +1 -1
  124. package/coreui/components/edaManagerComponent/icons/folderRemoveOutlined.d.ts +6 -0
  125. package/coreui/components/edaManagerComponent/icons/folderRemoveOutlined.js +7 -0
  126. package/coreui/components/edaManagerComponent/icons/folderRemoveOutlined.js.map +1 -0
  127. package/coreui/components/edaManagerComponent/utils/export.d.ts +9 -0
  128. package/coreui/components/edaManagerComponent/utils/export.js +570 -0
  129. package/coreui/components/edaManagerComponent/utils/export.js.map +1 -0
  130. package/coreui/components/edaManagerComponent/utils/utils.d.ts +6 -12
  131. package/coreui/components/edaManagerComponent/utils/utils.js +26 -15
  132. package/coreui/components/edaManagerComponent/utils/utils.js.map +1 -1
  133. package/d2configuration/edaManager/DB.EM_EDA_FunctionPrescription.xml +65 -0
  134. package/d2configuration/edaManager/DB.EM_EDA_VectorScenario.xml +65 -0
  135. package/d2configuration/edaManager/E.EM_DETAIL_IMPL.xml +67 -1
  136. package/d2configuration/edaManager/E.EM_DETAIL_SQL.xml +85 -0
  137. package/d2configuration/edaManager/E.EM_DETAIL_UNIT.xml +143 -2
  138. package/d2configuration/edaManager/E.EM_NAVIGATOR_IMPL.xml +14 -6
  139. package/d2configuration/edaManager/E.EM_NAVIGATOR_SQL.xml +12 -1
  140. package/d2configuration/edaManager/E.EM_NAVIGATOR_UNIT.xml +114 -6
  141. package/d2configuration/edaManager/E.EM_VECTOR_IMPL.xml +30 -6
  142. package/d2configuration/edaManager/E.EM_VECTOR_UNIT.xml +119 -17
  143. package/d2configuration/edaManager/SD.EM_EDA_FunctionPrescription.xml +91 -0
  144. package/d2configuration/edaManager/SD.EM_EDA_PairVector.xml +454 -0
  145. package/d2configuration/edaManager/{SD.EM_EDA_StatVectorRec_V1.xml → SD.EM_EDA_VectorScenario.xml} +13 -36
  146. package/d2configuration/edaManager/{SD.EM_EDA_VectorValues.xml → SD.EM_EDA_VectorStats.xml} +39 -6
  147. package/d2configuration/edaManager/SD.EM_Filter_Condition.xml +1 -1
  148. package/package.json +5 -3
  149. package/coreui/components/edaManagerComponent/components/edaBasePanel.d.ts +0 -16
  150. package/coreui/components/edaManagerComponent/components/edaBasePanel.js +0 -85
  151. package/coreui/components/edaManagerComponent/components/edaBasePanel.js.map +0 -1
  152. package/coreui/components/edaManagerComponent/context/sharedSampleRange.js +0 -13
  153. package/coreui/components/edaManagerComponent/context/sharedSampleRange.js.map +0 -1
  154. package/d2configuration/edaManager/EDA_CancelSession.xml +0 -54
  155. package/d2configuration/edaManager/EDA_GetSessionId.xml +0 -54
  156. package/d2configuration/edaManager/EDA_ReadValuesFromVektorRec.xml +0 -54
  157. package/d2configuration/edaManager/EDA_StatVectorRec.xml +0 -56
  158. package/d2configuration/edaManager/SD.EM_EDA_ReadValuesFromVector_V1.xml +0 -168
@@ -1 +1 @@
1
- {"version":3,"file":"edaManager.js","sourceRoot":"","sources":["../../../../../coreui/components/edaManagerComponent/edaManager.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,QAAQ,EAAC,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAC,SAAS,EAAW,MAAM,aAAa,CAAC;AAGhD,OAAO,OAAO,MAAM,mCAAmC,CAAC;AACxD,OAAO,EAAC,YAAY,EAAC,MAAM,YAAY,CAAC;AAGxC,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,EAAC,GAAG,EAAE,KAAK,EAAC,EAAG,EAAE;IAC7C,OAAO;QACH,UAAU,EAAE,GAAG,CAAA;;;uBAGA,KAAK,CAAC,UAAU;SAC9B;KACJ,CAAA;AACL,CAAC,CAAC,CAAC;AAkBH,MAAM,OAAO,UAAW,SAAQ,KAAK,CAAC,SAAuB;IACzD,YAAY,KAAsB;QAC9B,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;IACnB,CAAC;IAED,MAAM;QACF,MAAM,EAAC,YAAY,EAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QAClC,MAAM,EAAC,IAAI,EAAE,OAAO,EAAE,cAAc,EAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QAEnD,OAAO,CACH,oBAAC,OAAO,IAAC,SAAS,EAAE,SAAS,IACxB,CAAC,GAAG,EAAE,EAAE,CACL,oBAAC,QAAQ,IAAC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,UAAU;YACtC,oBAAC,QAAQ,CAAC,KAAK,IAAC,WAAW,EAAE,KAAK;gBAC9B,oBAAC,YAAY,IAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EACnB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,EAAC,YAAY,EAAE,GAAG,CAAC,KAAK,CAAC,UAAU,EAAC,EAC3C,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE;wBACpB,IAAI,CAAC,QAAQ,CAAC,EAAC,YAAY,EAAE,IAAI,EAAC,CAAC,CAAC;oBACxC,CAAC,GACb,CACW;YACjB,oBAAC,QAAQ,CAAC,KAAK;gBACX,oBAAC,SAAS,IAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EACnB,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,cAAc,EAC9B,eAAe,EAAE,cAAc,EAC/B,KAAK,EAAE,EAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,CAAC,KAAK,CAAC,UAAU,EAAC,GAClF,CACW,CACV,CAET,CACb,CAAC;IACN,CAAC;CACJ","sourcesContent":["import React from \"react\";\r\nimport {Splitter} from \"antd\";\r\nimport {EdaNavigator} from \"./edaNavigator\";\r\nimport {EdaDetail, ItemType} from \"./edaDetail\";\r\nimport EdaManagerApi from \"../../../api/eda/edaManagerApi\";\r\nimport {SizeType} from \"antd/lib/config-provider/SizeContext\";\r\nimport WithCss from \"d2coreui/components/style/withCss\";\r\nimport {createStyles} from \"antd-style\";\r\nimport {Variant} from \"antd/es/config-provider\";\r\n\r\nconst useStyles = createStyles(({css, token},) => {\r\n return {\r\n baseLayout: css`\r\n width: 100%;\r\n height: 100%;\r\n padding: ${token.paddingXXS}px;\r\n `\r\n }\r\n});\r\n\r\ninterface Props {\r\n api: EdaManagerApi\r\n\r\n // Size of AntD components\r\n size?: SizeType\r\n variant?: Variant\r\n // Displaying of time window selector in Table and Graph panel\r\n showTimeWindow?: boolean\r\n // Default displayed chart legend\r\n showChartLegend?: boolean\r\n}\r\n\r\ninterface State {\r\n selectedItem?: ItemType\r\n}\r\n\r\nexport class EdaManager extends React.Component<Props, State> {\r\n constructor(props: Readonly<Props>) {\r\n super(props);\r\n this.state = {}\r\n }\r\n\r\n render() {\r\n const {selectedItem} = this.state;\r\n const {size, variant, showTimeWindow} = this.props;\r\n\r\n return (\r\n <WithCss useStyles={useStyles}>\r\n {(css) =>\r\n <Splitter className={css.styles.baseLayout}>\r\n <Splitter.Panel defaultSize={\"25%\"}>\r\n <EdaNavigator api={this.props.api}\r\n size={size}\r\n style={{paddingRight: css.theme.paddingXXS}}\r\n onDoubleClick={(item) => {\r\n this.setState({selectedItem: item});\r\n }}\r\n />\r\n </Splitter.Panel>\r\n <Splitter.Panel>\r\n <EdaDetail api={this.props.api}\r\n item={selectedItem}\r\n size={size}\r\n variant={variant}\r\n showTimeWindow={showTimeWindow}\r\n showChartLegend={showTimeWindow}\r\n style={{width: '100%', height: '100%', paddingLeft: css.theme.paddingXXS}}\r\n />\r\n </Splitter.Panel>\r\n </Splitter>\r\n }\r\n </WithCss>\r\n );\r\n }\r\n}"]}
1
+ {"version":3,"file":"edaManager.js","sourceRoot":"","sources":["../../../../../coreui/components/edaManagerComponent/edaManager.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAK,WAAW,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAC;AACvD,OAAO,EAAC,cAAc,EAAE,QAAQ,EAAC,MAAM,MAAM,CAAC;AAC9C,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAG5C,OAAO,EAAC,YAAY,EAAC,MAAM,YAAY,CAAC;AAGxC,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AACtC,OAAO,EAAC,iBAAiB,EAAmB,MAAM,4BAA4B,CAAC;AAE/E,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,EAAC,GAAG,EAAE,KAAK,EAAC,EAAG,EAAE;IAC7C,OAAO;QACH,UAAU,EAAE,GAAG,CAAA;;;uBAGA,KAAK,CAAC,UAAU;SAC9B;QACD,QAAQ,EAAE,GAAG,CAAA;;kCAEa,KAAK,EAAE,UAAU;SAC1C;QACD,WAAW,EAAE,GAAG,CAAA;;oCAEY,KAAK,EAAE,UAAU;SAC5C;KACJ,CAAA;AACL,CAAC,CAAC,CAAC;AAYH,MAAM,CAAC,MAAM,UAAU,GAAc,CAAC,EAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAC,EAAE,EAAE;IACzE,MAAM,EAAC,MAAM,EAAC,GAAG,SAAS,EAAE,CAAC;IAE7B,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,EAAc,CAAC;IAE/D,MAAM,iBAAiB,GAAG,WAAW,CAAC,CAAC,IAAgB,EAAE,EAAE;QACvD,eAAe,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACH,oBAAC,iBAAiB,IAAC,MAAM,EAAE,aAAa;QACpC,oBAAC,cAAc,IAAC,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO;YACjD,oBAAC,QAAQ,IAAC,SAAS,EAAE,MAAM,CAAC,UAAU;gBAClC,oBAAC,QAAQ,CAAC,KAAK,IAAC,WAAW,EAAE,KAAK;oBAC9B,6BAAK,SAAS,EAAE,MAAM,CAAC,QAAQ;wBAC3B,oBAAC,YAAY,IACT,GAAG,EAAE,GAAG,EACR,aAAa,EAAE,iBAAiB,GAClC,CACA,CACO;gBACjB,oBAAC,QAAQ,CAAC,KAAK;oBACX,6BAAK,SAAS,EAAE,MAAM,CAAC,WAAW;wBAC9B,oBAAC,SAAS,IACN,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,EAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAC,GACxC,CACA,CACO,CACV,CACE,CACD,CACvB,CAAC;AACN,CAAC,CAAC","sourcesContent":["import React, {FC, useCallback, useState} from \"react\";\r\nimport {ConfigProvider, Splitter} from \"antd\";\r\nimport {EdaNavigator} from \"./edaNavigator\";\r\nimport EdaManagerApi from \"../../../api/eda/edaManagerApi\";\r\nimport {SizeType} from \"antd/lib/config-provider/SizeContext\";\r\nimport {createStyles} from \"antd-style\";\r\nimport {Variant} from \"antd/es/config-provider\";\r\nimport {TypedIndex} from \"./constants/edaTypes\";\r\nimport {EdaDetail} from \"./edaDetail\";\r\nimport {EdaConfigProvider, EdaConfiguration} from \"./context/edaConfigContext\";\r\n\r\nconst useStyles = createStyles(({css, token},) => {\r\n return {\r\n baseLayout: css`\r\n width: 100%;\r\n height: 100%;\r\n padding: ${token.paddingXXS}px;\r\n `,\r\n navPanel: css`\r\n height: 100%;\r\n padding-inline-end: ${token?.paddingXXS}px;\r\n `,\r\n detailPanel: css`\r\n height: 100%;\r\n padding-inline-start: ${token?.paddingXXS}px;\r\n `,\r\n }\r\n});\r\n\r\ninterface Props {\r\n api: EdaManagerApi\r\n // Size of AntD components\r\n size?: SizeType\r\n // Variant of AntD components\r\n variant?: Variant\r\n // Eda manager configuration\r\n configuration?: EdaConfiguration\r\n}\r\n\r\nexport const EdaManager: FC<Props> = ({api, size, variant, configuration}) => {\r\n const {styles} = useStyles();\r\n\r\n const [selectedItem, setSelectedItem] = useState<TypedIndex>();\r\n\r\n const handleDoubleClick = useCallback((item: TypedIndex) => {\r\n setSelectedItem(item);\r\n }, []);\r\n\r\n return (\r\n <EdaConfigProvider config={configuration}>\r\n <ConfigProvider componentSize={size} variant={variant}>\r\n <Splitter className={styles.baseLayout}>\r\n <Splitter.Panel defaultSize={\"25%\"}>\r\n <div className={styles.navPanel}>\r\n <EdaNavigator\r\n api={api}\r\n onDoubleClick={handleDoubleClick}\r\n />\r\n </div>\r\n </Splitter.Panel>\r\n <Splitter.Panel>\r\n <div className={styles.detailPanel}>\r\n <EdaDetail\r\n api={api}\r\n item={selectedItem}\r\n style={{width: '100%', height: '100%'}}\r\n />\r\n </div>\r\n </Splitter.Panel>\r\n </Splitter>\r\n </ConfigProvider>\r\n </EdaConfigProvider>\r\n );\r\n};"]}
@@ -1,20 +1,14 @@
1
- import React from "react";
2
- import EdaManagerApi from "../../../api/eda/edaManagerApi";
1
+ import React, { FC } from "react";
2
+ import EdaManagerApi, { TreeItem } from "../../../api/eda/edaManagerApi";
3
3
  import { TypedIndex } from "./constants/edaTypes";
4
4
  import { SizeType } from "antd/lib/config-provider/SizeContext";
5
- import { SD_EM_Tree_Item } from "../../../api/eda/generated/structures";
6
5
  interface Props {
7
6
  api: EdaManagerApi;
8
7
  style?: React.CSSProperties;
8
+ showOmitted?: boolean;
9
+ hideContextMenu?: boolean;
9
10
  size?: SizeType;
10
- onDoubleClick?: (id: TypedIndex, item: SD_EM_Tree_Item) => void;
11
- }
12
- interface State {
13
- }
14
- export declare class EdaNavigator extends React.Component<Props, State> {
15
- constructor(props: Readonly<Props>);
16
- renderGroups(): React.ReactNode;
17
- renderScenarios(): React.ReactNode;
18
- render(): React.ReactNode;
11
+ onDoubleClick?: (id: TypedIndex, item: TreeItem) => void;
19
12
  }
13
+ export declare const EdaNavigator: FC<Props>;
20
14
  export {};
@@ -1,8 +1,7 @@
1
- import React from "react";
1
+ import React, { memo, useMemo } from "react";
2
2
  import { EdaTreeView, TreeViewType } from "./components/edaTreeView";
3
- import { Button, Space, Tabs } from "antd";
3
+ import { Button, ConfigProvider, Space, Tabs } from "antd";
4
4
  import { createStyles } from "antd-style";
5
- import WithCss from "d2coreui/components/style/withCss";
6
5
  import { SearchOutlined } from "@ant-design/icons";
7
6
  import i18n from "d2core/i18n/i18n";
8
7
  const useStyles = createStyles(({ css, token }) => {
@@ -20,45 +19,41 @@ const useStyles = createStyles(({ css, token }) => {
20
19
  .control-buttons {
21
20
  padding: ${token.paddingXXS}px;
22
21
  }
22
+
23
+ .tree {
24
+ flex: 1 1 auto;
25
+ }
26
+ `,
27
+ groupsLayout: css `
28
+ height: 100%;
29
+ display: flex;
30
+ flex-direction: column;
23
31
  `
24
32
  };
25
33
  });
26
- export class EdaNavigator extends React.Component {
27
- constructor(props) {
28
- super(props);
29
- this.state = {};
30
- }
31
- renderGroups() {
32
- const { size, api, onDoubleClick } = this.props;
33
- return (React.createElement("div", { style: { height: "100%", display: "flex", flexDirection: "column" } },
34
- React.createElement("div", { className: "control-buttons" },
35
- React.createElement(Space.Compact, { size: size },
36
- React.createElement(Button, { icon: React.createElement(SearchOutlined, null) }))),
37
- React.createElement("div", { style: { flex: "1 1 auto" } },
38
- React.createElement(EdaTreeView, { api: api, type: TreeViewType.GROUP, onItemDoubleClick: onDoubleClick }))));
39
- }
40
- renderScenarios() {
41
- const { api, onDoubleClick } = this.props;
42
- return (React.createElement(React.Fragment, null,
43
- React.createElement(EdaTreeView, { api: api, type: TreeViewType.SCENARIO, onItemDoubleClick: onDoubleClick })));
44
- }
45
- render() {
46
- const { style, size } = this.props;
47
- return (React.createElement(WithCss, { useStyles: useStyles }, (css) => React.createElement("div", { className: css.styles.baseLayout, style: style },
48
- React.createElement(Tabs, { type: "editable-card", size: size, style: { height: "100%" }, items: [
49
- {
50
- key: "groups",
51
- label: i18n("Groups"),
52
- closable: false,
53
- children: this.renderGroups(),
54
- },
55
- {
56
- key: "scenarios",
57
- label: i18n("Scenarios"),
58
- closable: false,
59
- children: this.renderScenarios(),
60
- },
61
- ] }))));
62
- }
63
- }
34
+ export const EdaNavigator = memo(({ api, style, showOmitted, hideContextMenu, size, onDoubleClick }) => {
35
+ const { styles } = useStyles();
36
+ const tabs = useMemo(() => [
37
+ {
38
+ key: "groups",
39
+ label: i18n("Groups"),
40
+ closable: false,
41
+ children: (React.createElement("div", { className: styles.groupsLayout },
42
+ React.createElement("div", { className: "control-buttons" },
43
+ React.createElement(Space.Compact, null,
44
+ React.createElement(Button, { icon: React.createElement(SearchOutlined, null) }))),
45
+ React.createElement("div", { className: "tree" },
46
+ React.createElement(EdaTreeView, { api: api, type: TreeViewType.GROUP, showOmitted: showOmitted, hideContextMenu: hideContextMenu, onItemDoubleClick: onDoubleClick })))),
47
+ },
48
+ {
49
+ key: "scenarios",
50
+ label: i18n("Scenarios"),
51
+ closable: false,
52
+ children: (React.createElement(EdaTreeView, { api: api, type: TreeViewType.SCENARIO, showOmitted: showOmitted, onItemDoubleClick: onDoubleClick })),
53
+ },
54
+ ], [api, styles, showOmitted, hideContextMenu, onDoubleClick]);
55
+ return (React.createElement(ConfigProvider, { componentSize: size },
56
+ React.createElement("div", { className: styles.baseLayout, style: style },
57
+ React.createElement(Tabs, { type: "editable-card", style: { height: "100%" }, destroyOnHidden: false, items: tabs }))));
58
+ });
64
59
  //# sourceMappingURL=edaNavigator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"edaNavigator.js","sourceRoot":"","sources":["../../../../../coreui/components/edaManagerComponent/edaNavigator.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,WAAW,EAAE,YAAY,EAAC,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAC,MAAM,MAAM,CAAC;AACzC,OAAO,EAAC,YAAY,EAAC,MAAM,YAAY,CAAC;AACxC,OAAO,OAAO,MAAM,mCAAmC,CAAC;AACxD,OAAO,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAC;AAEjD,OAAO,IAAI,MAAM,kBAAkB,CAAC;AAIpC,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,EAAC,GAAG,EAAE,KAAK,EAAC,EAAG,EAAE;IAC7C,OAAO;QACH,UAAU,EAAE,GAAG,CAAA;;;;;oCAKa,KAAK,CAAC,gBAAgB;iCACzB,KAAK,CAAC,YAAY;;;;;2BAKxB,KAAK,CAAC,UAAU;;SAElC;KACJ,CAAA;AACL,CAAC,CAAC,CAAC;AAcH,MAAM,OAAO,YAAa,SAAQ,KAAK,CAAC,SAAuB;IAC3D,YAAY,KAAsB;QAC9B,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,KAAK,GAAG,EACZ,CAAA;IACL,CAAC;IAED,YAAY;QACR,MAAM,EAAC,IAAI,EAAE,GAAG,EAAE,aAAa,EAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QAE9C,OAAO,CACH,6BAAK,KAAK,EAAE,EAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAC;YAClE,6BAAK,SAAS,EAAE,iBAAiB;gBAC7B,oBAAC,KAAK,CAAC,OAAO,IAAC,IAAI,EAAE,IAAI;oBACrB,oBAAC,MAAM,IAAC,IAAI,EAAE,oBAAC,cAAc,OAAE,GAAI,CACvB,CACd;YACN,6BAAK,KAAK,EAAE,EAAC,IAAI,EAAE,UAAU,EAAC;gBAC1B,oBAAC,WAAW,IACR,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,YAAY,CAAC,KAAK,EACxB,iBAAiB,EAAE,aAAa,GAClC,CACA,CACJ,CACT,CAAC;IACN,CAAC;IAED,eAAe;QACX,MAAM,EAAC,GAAG,EAAE,aAAa,EAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QAExC,OAAO,CACH;YACI,oBAAC,WAAW,IACR,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,YAAY,CAAC,QAAQ,EAC3B,iBAAiB,EAAE,aAAa,GAClC,CACH,CACN,CAAC;IACN,CAAC;IAED,MAAM;QACF,MAAM,EAAC,KAAK,EAAE,IAAI,EAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QAEjC,OAAO,CACH,oBAAC,OAAO,IAAC,SAAS,EAAE,SAAS,IACxB,CAAC,GAAG,EAAE,EAAE,CACL,6BAAK,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK;YAC/C,oBAAC,IAAI,IACD,IAAI,EAAE,eAAe,EACrB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,EAAC,MAAM,EAAE,MAAM,EAAC,EACvB,KAAK,EAAE;oBACH;wBACI,GAAG,EAAE,QAAQ;wBACb,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC;wBACrB,QAAQ,EAAE,KAAK;wBACf,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE;qBAChC;oBACD;wBACI,GAAG,EAAE,WAAW;wBAChB,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC;wBACxB,QAAQ,EAAE,KAAK;wBACf,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE;qBACnC;iBACJ,GACH,CACA,CAEJ,CACb,CAAC;IACN,CAAC;CACJ","sourcesContent":["import React from \"react\";\r\nimport EdaManagerApi from \"../../../api/eda/edaManagerApi\";\r\nimport {EdaTreeView, TreeViewType} from \"./components/edaTreeView\";\r\nimport {Button, Space, Tabs} from \"antd\";\r\nimport {createStyles} from \"antd-style\";\r\nimport WithCss from \"d2coreui/components/style/withCss\";\r\nimport {SearchOutlined} from \"@ant-design/icons\";\r\nimport {TypedIndex} from \"./constants/edaTypes\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport {SizeType} from \"antd/lib/config-provider/SizeContext\";\r\nimport {SD_EM_Tree_Item} from \"../../../api/eda/generated/structures\";\r\n\r\nconst useStyles = createStyles(({css, token},) => {\r\n return {\r\n baseLayout: css`\r\n height: 100%;\r\n \r\n .ant-tabs-content {\r\n height: 100%;\r\n background-color: ${token.colorBgContainer};\r\n border-radius: ${token.borderRadius}px;\r\n transition: background-color 0.3s;\r\n }\r\n \r\n .control-buttons {\r\n padding: ${token.paddingXXS}px;\r\n }\r\n `\r\n }\r\n});\r\n\r\ninterface Props {\r\n api: EdaManagerApi\r\n style?: React.CSSProperties\r\n\r\n size?: SizeType\r\n\r\n onDoubleClick?: (id: TypedIndex, item: SD_EM_Tree_Item) => void\r\n}\r\n\r\ninterface State {\r\n}\r\n\r\nexport class EdaNavigator extends React.Component<Props, State> {\r\n constructor(props: Readonly<Props>) {\r\n super(props);\r\n this.state = {\r\n }\r\n }\r\n\r\n renderGroups(): React.ReactNode {\r\n const {size, api, onDoubleClick} = this.props;\r\n\r\n return (\r\n <div style={{height: \"100%\", display: \"flex\", flexDirection: \"column\"}}>\r\n <div className={\"control-buttons\"}>\r\n <Space.Compact size={size}>\r\n <Button icon={<SearchOutlined/>} />\r\n </Space.Compact>\r\n </div>\r\n <div style={{flex: \"1 1 auto\"}}>\r\n <EdaTreeView\r\n api={api}\r\n type={TreeViewType.GROUP}\r\n onItemDoubleClick={onDoubleClick}\r\n />\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n renderScenarios(): React.ReactNode {\r\n const {api, onDoubleClick} = this.props;\r\n\r\n return (\r\n <>\r\n <EdaTreeView\r\n api={api}\r\n type={TreeViewType.SCENARIO}\r\n onItemDoubleClick={onDoubleClick}\r\n />\r\n </>\r\n );\r\n }\r\n\r\n render(): React.ReactNode {\r\n const {style, size} = this.props;\r\n\r\n return (\r\n <WithCss useStyles={useStyles}>\r\n {(css) =>\r\n <div className={css.styles.baseLayout} style={style}>\r\n <Tabs\r\n type={\"editable-card\"}\r\n size={size}\r\n style={{height: \"100%\"}}\r\n items={[\r\n {\r\n key: \"groups\",\r\n label: i18n(\"Groups\"),\r\n closable: false,\r\n children: this.renderGroups(),\r\n },\r\n {\r\n key: \"scenarios\",\r\n label: i18n(\"Scenarios\"),\r\n closable: false,\r\n children: this.renderScenarios(),\r\n },\r\n ]}\r\n />\r\n </div>\r\n }\r\n </WithCss>\r\n );\r\n }\r\n}"]}
1
+ {"version":3,"file":"edaNavigator.js","sourceRoot":"","sources":["../../../../../coreui/components/edaManagerComponent/edaNavigator.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAK,IAAI,EAAE,OAAO,EAAC,MAAM,OAAO,CAAC;AAE/C,OAAO,EAAC,WAAW,EAAE,YAAY,EAAC,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAC,MAAM,MAAM,CAAC;AACzD,OAAO,EAAC,YAAY,EAAC,MAAM,YAAY,CAAC;AACxC,OAAO,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAC;AAEjD,OAAO,IAAI,MAAM,kBAAkB,CAAC;AAGpC,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,EAAC,GAAG,EAAE,KAAK,EAAC,EAAG,EAAE;IAC7C,OAAO;QACH,UAAU,EAAE,GAAG,CAAA;;;;;oCAKa,KAAK,CAAC,gBAAgB;iCACzB,KAAK,CAAC,YAAY;;;;;2BAKxB,KAAK,CAAC,UAAU;;;;;;SAMlC;QACD,YAAY,EAAE,GAAG,CAAA;;;;SAIhB;KACJ,CAAC;AACN,CAAC,CAAC,CAAC;AAaH,MAAM,CAAC,MAAM,YAAY,GAAc,IAAI,CAAC,CAAC,EAAC,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,IAAI,EAAE,aAAa,EAAC,EAAE,EAAE;IAC5G,MAAM,EAAC,MAAM,EAAC,GAAG,SAAS,EAAE,CAAC;IAE7B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QACvB;YACI,GAAG,EAAE,QAAQ;YACb,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC;YACrB,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,CACN,6BAAK,SAAS,EAAE,MAAM,CAAC,YAAY;gBAC/B,6BAAK,SAAS,EAAE,iBAAiB;oBAC7B,oBAAC,KAAK,CAAC,OAAO;wBACV,oBAAC,MAAM,IAAC,IAAI,EAAE,oBAAC,cAAc,OAAE,GAAG,CACtB,CACd;gBACN,6BAAK,SAAS,EAAE,MAAM;oBAClB,oBAAC,WAAW,IACR,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,YAAY,CAAC,KAAK,EACxB,WAAW,EAAE,WAAW,EACxB,eAAe,EAAE,eAAe,EAChC,iBAAiB,EAAE,aAAa,GAClC,CACA,CACJ,CACT;SACJ;QACD;YACI,GAAG,EAAE,WAAW;YAChB,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC;YACxB,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,CACN,oBAAC,WAAW,IACR,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,YAAY,CAAC,QAAQ,EAC3B,WAAW,EAAE,WAAW,EACxB,iBAAiB,EAAE,aAAa,GAClC,CACL;SACJ;KACJ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,aAAa,CAAC,CAAC,CAAC;IAE/D,OAAO,CACH,oBAAC,cAAc,IAAC,aAAa,EAAE,IAAI;QAC/B,6BAAK,SAAS,EAAE,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK;YAC3C,oBAAC,IAAI,IACD,IAAI,EAAE,eAAe,EACrB,KAAK,EAAE,EAAC,MAAM,EAAE,MAAM,EAAC,EACvB,eAAe,EAAE,KAAK,EACtB,KAAK,EAAE,IAAI,GACb,CACA,CACO,CACpB,CAAA;AACL,CAAC,CAAC,CAAC","sourcesContent":["import React, {FC, memo, useMemo} from \"react\";\r\nimport EdaManagerApi, {TreeItem} from \"../../../api/eda/edaManagerApi\";\r\nimport {EdaTreeView, TreeViewType} from \"./components/edaTreeView\";\r\nimport {Button, ConfigProvider, Space, Tabs} from \"antd\";\r\nimport {createStyles} from \"antd-style\";\r\nimport {SearchOutlined} from \"@ant-design/icons\";\r\nimport {TypedIndex} from \"./constants/edaTypes\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport {SizeType} from \"antd/lib/config-provider/SizeContext\";\r\n\r\nconst useStyles = createStyles(({css, token},) => {\r\n return {\r\n baseLayout: css`\r\n height: 100%;\r\n \r\n .ant-tabs-content {\r\n height: 100%;\r\n background-color: ${token.colorBgContainer};\r\n border-radius: ${token.borderRadius}px;\r\n transition: background-color 0.3s;\r\n }\r\n \r\n .control-buttons {\r\n padding: ${token.paddingXXS}px;\r\n }\r\n \r\n .tree {\r\n flex: 1 1 auto;\r\n }\r\n `,\r\n groupsLayout: css`\r\n height: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n `\r\n };\r\n});\r\n\r\ninterface Props {\r\n api: EdaManagerApi\r\n style?: React.CSSProperties\r\n showOmitted?: boolean\r\n hideContextMenu?: boolean\r\n\r\n size?: SizeType\r\n\r\n onDoubleClick?: (id: TypedIndex, item: TreeItem) => void\r\n}\r\n\r\nexport const EdaNavigator: FC<Props> = memo(({api, style, showOmitted, hideContextMenu, size, onDoubleClick}) => {\r\n const {styles} = useStyles();\r\n\r\n const tabs = useMemo(() => [\r\n {\r\n key: \"groups\",\r\n label: i18n(\"Groups\"),\r\n closable: false,\r\n children: (\r\n <div className={styles.groupsLayout}>\r\n <div className={\"control-buttons\"}>\r\n <Space.Compact>\r\n <Button icon={<SearchOutlined/>}/>\r\n </Space.Compact>\r\n </div>\r\n <div className={\"tree\"}>\r\n <EdaTreeView\r\n api={api}\r\n type={TreeViewType.GROUP}\r\n showOmitted={showOmitted}\r\n hideContextMenu={hideContextMenu}\r\n onItemDoubleClick={onDoubleClick}\r\n />\r\n </div>\r\n </div>\r\n ),\r\n },\r\n {\r\n key: \"scenarios\",\r\n label: i18n(\"Scenarios\"),\r\n closable: false,\r\n children: (\r\n <EdaTreeView\r\n api={api}\r\n type={TreeViewType.SCENARIO}\r\n showOmitted={showOmitted}\r\n onItemDoubleClick={onDoubleClick}\r\n />\r\n ),\r\n },\r\n ], [api, styles, showOmitted, hideContextMenu, onDoubleClick]);\r\n\r\n return (\r\n <ConfigProvider componentSize={size}>\r\n <div className={styles.baseLayout} style={style}>\r\n <Tabs\r\n type={\"editable-card\"}\r\n style={{height: \"100%\"}}\r\n destroyOnHidden={false}\r\n items={tabs}\r\n />\r\n </div>\r\n </ConfigProvider>\r\n )\r\n});"]}
@@ -1,16 +1,17 @@
1
1
  import { FC } from "react";
2
2
  import { SelectProps } from "antd/es/select";
3
- import { SD_EM_Tree_Item } from "../../../api/eda/generated/structures";
4
- import EdaManagerApi from "../../../api/eda/edaManagerApi";
3
+ import EdaManagerApi, { TreeItem } from "../../../api/eda/edaManagerApi";
5
4
  import { IdType } from "./constants/edaTypes";
6
5
  export type DisplayType = "code" | "name" | "code_name" | "name_code";
7
- interface Props extends Omit<SelectProps<SD_EM_Tree_Item | undefined, SD_EM_Tree_Item>, "allowClear" | "clearIcon" | "showSearch" | "labelInValue" | "fieldNames" | "options" | "suffixIcon" | "onSearch" | "onFocus" | "showArrow" | "mode" | "loading" | "filterOption" | "notFoundContent" | "menuItemSelectedIcon" | "searchValue"> {
6
+ interface Props extends Omit<SelectProps<TreeItem | undefined, TreeItem>, "allowClear" | "clearIcon" | "showSearch" | "labelInValue" | "fieldNames" | "options" | "suffixIcon" | "onSearch" | "onFocus" | "showArrow" | "mode" | "loading" | "filterOption" | "notFoundContent" | "menuItemSelectedIcon" | "searchValue"> {
8
7
  api: EdaManagerApi;
9
8
  type: IdType;
10
9
  displayType?: DisplayType;
11
10
  showCancelButton?: boolean;
12
11
  showDetailButton?: boolean;
13
12
  showNewObjectButton?: boolean;
13
+ showOmitted?: boolean;
14
+ readonly?: boolean;
14
15
  }
15
16
  export declare const EdaSelect: FC<Props>;
16
17
  export {};
@@ -1,6 +1,6 @@
1
1
  import React, { useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
2
- import { Select, theme, Typography } from "antd";
3
- import { CloseCircleOutlined, InfoCircleOutlined, LoadingOutlined, SelectOutlined } from "@ant-design/icons";
2
+ import { ConfigProvider, Empty, Select, theme, Typography } from "antd";
3
+ import { CloseCircleOutlined, LoadingOutlined, MonitorOutlined, SelectOutlined } from "@ant-design/icons";
4
4
  import i18n from "d2core/i18n/i18n";
5
5
  import SizeContext from "antd/es/config-provider/SizeContext";
6
6
  import debounce from "lodash/debounce";
@@ -10,21 +10,16 @@ import { AdvancedFilterValueType } from "../../../api/types/advancedFilter";
10
10
  import ColorTag from "../colorTag/colorTag";
11
11
  import { ModalDialog } from "d2coreui/components/modal/modalDialog";
12
12
  import { EdaNavigator } from "./edaNavigator";
13
- import { loadDetail } from "./utils/utils";
14
- import { EdaVectorDetailPanel } from "./components/edaVectorDetailPanel";
15
- import { EdaGroupDetailPanel } from "./components/edaGroupDetailPanel";
16
- import { EdaScenarioDetailPanel } from "./components/edaScenarioDetailPanel";
17
- export const EdaSelect = ({ api, type, showCancelButton, showDetailButton, showNewObjectButton, displayType, disabled, size, value, onClear, onChange, onSelect, ...otherProps }) => {
13
+ import { EdaDetail } from "./edaDetail";
14
+ export const EdaSelect = ({ api, type, showCancelButton, showDetailButton, showNewObjectButton, displayType, showOmitted, readonly, disabled, size, value, onClear, onChange, onSelect, ...otherProps }) => {
15
+ const { token } = theme.useToken();
16
+ const sizeContext = useContext(SizeContext);
17
+ const lastSearchRef = useRef(null);
18
+ const activeRequestRef = useRef(0);
18
19
  const [loading, setLoading] = useState(false);
19
20
  const [options, setOptions] = useState([]);
20
21
  const [detailVisible, setDetailVisible] = useState(false);
21
22
  const [searchVisible, setSearchVisible] = useState(false);
22
- const [fullDetailData, setFullDetailData] = useState(undefined);
23
- const [detailLoading, setDetailLoading] = useState(false);
24
- const { token } = theme.useToken();
25
- const lastSearchRef = useRef(null);
26
- const activeRequestRef = useRef(0);
27
- const sizeContext = useContext(SizeContext);
28
23
  const mergeSize = size ?? sizeContext;
29
24
  const iconSize = useMemo(() => {
30
25
  switch (mergeSize) {
@@ -46,20 +41,20 @@ export const EdaSelect = ({ api, type, showCancelButton, showDetailButton, showN
46
41
  }
47
42
  else {
48
43
  return (React.createElement(React.Fragment, null,
49
- showCancelButton && value &&
50
- React.createElement(CloseCircleOutlined, { style: { color: token.colorError, fontSize: iconSize }, onClick: () => {
44
+ showCancelButton && value && !readonly &&
45
+ React.createElement(CloseCircleOutlined, { style: { color: token.colorError, fontSize: iconSize }, title: i18n("Clear"), onClick: () => {
51
46
  onChange?.(undefined, []);
52
47
  onClear?.();
53
48
  } }),
54
49
  showDetailButton && value &&
55
- React.createElement(InfoCircleOutlined, { style: { fontSize: iconSize }, onClick: () => setDetailVisible(true) }),
56
- showNewObjectButton &&
50
+ React.createElement(MonitorOutlined, { style: { fontSize: iconSize }, title: i18n("Show Detail"), onClick: () => setDetailVisible(true) }),
51
+ showNewObjectButton && !readonly &&
57
52
  React.createElement(React.Fragment, null),
58
- React.createElement(SelectOutlined, { style: { fontSize: iconSize }, title: i18n("Open Select Dialog"), onClick: () => {
53
+ !readonly && (React.createElement(SelectOutlined, { style: { fontSize: iconSize }, title: i18n("Open Select Dialog"), onClick: () => {
59
54
  setSearchVisible(true);
60
- } })));
55
+ } }))));
61
56
  }
62
- }, [disabled, loading, showCancelButton, iconSize, token.colorError, value, onClear, onChange]);
57
+ }, [disabled, readonly, loading, showCancelButton, iconSize, token.colorError, value, onClear, onChange]);
63
58
  const loadData = useCallback(async (searchString) => {
64
59
  if (searchString === lastSearchRef.current) {
65
60
  return;
@@ -82,7 +77,7 @@ export const EdaSelect = ({ api, type, showCancelButton, showDetailButton, showN
82
77
  break;
83
78
  }
84
79
  if (requestId === activeRequestRef.current) {
85
- setOptions(result.items);
80
+ setOptions(result);
86
81
  }
87
82
  }
88
83
  catch (e) {
@@ -103,10 +98,10 @@ export const EdaSelect = ({ api, type, showCancelButton, showDetailButton, showN
103
98
  }
104
99
  }, [options, disabled, loadData]);
105
100
  const handleDoubleClick = useCallback(() => {
106
- if (!disabled) {
101
+ if (!disabled && !readonly) {
107
102
  setSearchVisible(true);
108
103
  }
109
- }, [disabled]);
104
+ }, [disabled, readonly]);
110
105
  const renderOption = useCallback((oriOption) => {
111
106
  return (React.createElement("div", { style: { display: "flex", justifyContent: "space-between" } },
112
107
  React.createElement("span", null, oriOption.data.DisplayName),
@@ -137,55 +132,38 @@ export const EdaSelect = ({ api, type, showCancelButton, showDetailButton, showN
137
132
  return React.createElement("span", null, value?.DisplayName);
138
133
  }
139
134
  }, [value, displayType]);
140
- const renderDetailModalContent = () => {
141
- if (detailLoading || !fullDetailData) {
142
- return (React.createElement("div", { style: { display: 'flex', justifyContent: 'center', padding: 40 } },
143
- React.createElement(LoadingOutlined, { style: { fontSize: 24 }, spin: true })));
144
- }
145
- switch (type) {
146
- case 0:
147
- return (React.createElement(EdaVectorDetailPanel, { api: api, size: size, data: fullDetailData }));
148
- case 1:
149
- return (React.createElement(EdaGroupDetailPanel, { size: size, data: fullDetailData }));
150
- case 2:
151
- return (React.createElement(EdaScenarioDetailPanel, { size: size, data: fullDetailData }));
152
- }
153
- };
154
135
  const renderDetailPanelDialog = useMemo(() => {
155
- return (React.createElement(ModalDialog, { open: detailVisible, mode: "NO_BUTTONS", onCancel: () => setDetailVisible(false), onOk: () => setDetailVisible(false), title: React.createElement("span", null,
136
+ const visible = detailVisible && value;
137
+ return (React.createElement(ModalDialog, { open: detailVisible, mode: "NO_BUTTONS", onCancel: () => setDetailVisible(false), title: React.createElement("span", null,
156
138
  i18n("Detail"),
157
139
  " ",
158
140
  React.createElement(Typography.Text, { type: "secondary" },
159
141
  "(",
160
142
  value ? value.Name : "",
161
- ")")), styles: { body: { padding: 8 } }, initialWidth: 720, initialHeight: window.innerHeight * 0.75 }, detailVisible && renderDetailModalContent()));
162
- }, [detailVisible, detailLoading, fullDetailData, api, size]);
143
+ ")")), styles: { body: { padding: 8 } }, initialWidth: 720, initialHeight: window.innerHeight * 0.75 },
144
+ visible &&
145
+ React.createElement(EdaDetail, { api: api, item: { type, id: value.ID }, style: { height: "100%" } }),
146
+ !visible &&
147
+ React.createElement("div", { style: { display: 'flex', justifyContent: 'center', padding: 40 } },
148
+ React.createElement(Empty, { description: i18n("No data provided") }))));
149
+ }, [detailVisible, type, value, api]);
163
150
  const renderSearchPanelDialog = useMemo(() => {
164
- return (React.createElement(ModalDialog, { open: searchVisible, mode: "NO_BUTTONS", onCancel: () => setSearchVisible(false), onOk: () => setSearchVisible(false), title: i18n("Search"), styles: { body: { padding: 8 } }, initialWidth: 640, initialHeight: window.innerHeight * 0.75, forceRender: true },
165
- React.createElement(EdaNavigator, { api: api, size: size, onDoubleClick: (id, item) => {
151
+ return (React.createElement(ModalDialog, { open: searchVisible, mode: "NO_BUTTONS", onCancel: () => setSearchVisible(false), title: i18n("Search"), styles: { body: { padding: 8 } }, initialWidth: 640, initialHeight: window.innerHeight * 0.75, forceRender: true },
152
+ React.createElement(EdaNavigator, { api: api, showOmitted: showOmitted, hideContextMenu: true, onDoubleClick: (id, item) => {
166
153
  if (id.type === type) {
167
154
  onChange?.(item, item);
168
155
  onSelect?.(item, item);
169
156
  setSearchVisible(false);
170
157
  }
171
158
  } })));
172
- }, [searchVisible, api]);
173
- useEffect(() => {
174
- if (detailVisible && value) {
175
- setDetailLoading(true);
176
- loadDetail(api, { type: type, id: value.ID }).then((result) => {
177
- setFullDetailData(result);
178
- setDetailLoading(false);
179
- });
180
- }
181
- }, [detailVisible, value, api]);
159
+ }, [searchVisible, api, showOmitted]);
182
160
  useEffect(() => {
183
161
  return () => debounceSearch.cancel();
184
162
  }, [debounceSearch]);
185
- return (React.createElement(React.Fragment, null,
163
+ return (React.createElement(ConfigProvider, { componentSize: size },
186
164
  renderDetailPanelDialog,
187
165
  renderSearchPanelDialog,
188
- React.createElement(Select, { ...otherProps, disabled: disabled, size: size, value: value, onSelect: onSelect, onChange: onChange, options: options, showSearch: true, labelInValue: true, filterOption: false, fieldNames: { label: 'DisplayName', value: 'ID' }, optionFilterProp: "DisplayName", onSearch: debounceSearch, onFocus: handleFocus, optionRender: renderOption, labelRender: renderLabel, notFoundContent: null, suffixIcon: React.createElement("div", { style: { display: "flex", alignItems: "center", gap: 4, color: token.colorTextSecondary } }, suffixIcon), onDoubleClick: handleDoubleClick })));
166
+ React.createElement(Select, { ...otherProps, disabled: disabled, value: value, onSelect: onSelect, onChange: onChange, options: options, showSearch: true, open: !readonly ? undefined : false, filterOption: false, fieldNames: { label: 'DisplayName', value: 'ID' }, optionFilterProp: "DisplayName", onSearch: debounceSearch, onFocus: handleFocus, optionRender: renderOption, labelRender: renderLabel, notFoundContent: null, suffixIcon: React.createElement("div", { style: { display: "flex", alignItems: "center", gap: 4, color: token.colorTextSecondary } }, suffixIcon), onDoubleClick: handleDoubleClick })));
189
167
  };
190
168
  function getFilterConditionForCode(searchString) {
191
169
  return AdvancedFilterUtils.newCondition({ columnName: "Meno", valueType: AdvancedFilterValueType.STRING }, {
@@ -1 +1 @@
1
- {"version":3,"file":"edaSelect.js","sourceRoot":"","sources":["../../../../../coreui/components/edaManagerComponent/edaSelect.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, {FC, useCallback, useContext, useEffect, useMemo, useRef, useState} from \"react\";\r\nimport {Select, theme, Typography} from \"antd\";\r\nimport {SelectProps} from \"antd/es/select\";\r\nimport {CloseCircleOutlined, InfoCircleOutlined, LoadingOutlined, SelectOutlined} from \"@ant-design/icons\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport SizeContext from \"antd/es/config-provider/SizeContext\";\r\nimport {SD_EM_Tree_Item} from \"../../../api/eda/generated/structures\";\r\nimport EdaManagerApi from \"../../../api/eda/edaManagerApi\";\r\nimport {GroupData, IdType, ScenarioData, VectorData} from \"./constants/edaTypes\";\r\nimport debounce from \"lodash/debounce\";\r\nimport {AdvancedFilterCondition, AdvancedFilterLogicalOperator, AdvancedFilterOperator} from \"../../../api/advancedFilterApi\";\r\nimport AdvancedFilterUtils from \"../advancedFilter/advancedFilterUtils\";\r\nimport {AdvancedFilterValueType} from \"../../../api/types/advancedFilter\";\r\nimport {FlattenOptionData} from \"rc-select/lib/interface\";\r\nimport ColorTag from \"../colorTag/colorTag\";\r\nimport {ModalDialog, ModalDialogMode} from \"d2coreui/components/modal/modalDialog\";\r\nimport {EdaNavigator} from \"./edaNavigator\";\r\nimport {loadDetail} from \"./utils/utils\";\r\nimport {EdaVectorDetailPanel} from \"./components/edaVectorDetailPanel\";\r\nimport {EdaGroupDetailPanel} from \"./components/edaGroupDetailPanel\";\r\nimport {EdaScenarioDetailPanel} from \"./components/edaScenarioDetailPanel\";\r\n\r\nexport type DisplayType = \"code\" | \"name\" | \"code_name\" | \"name_code\";\r\n\r\ninterface Props extends Omit<SelectProps<SD_EM_Tree_Item | undefined, SD_EM_Tree_Item>, \"allowClear\" | \"clearIcon\" | \"showSearch\" | \"labelInValue\" | \"fieldNames\" |\r\n \"options\" | \"suffixIcon\" | \"onSearch\" | \"onFocus\" | \"showArrow\" | \"mode\" | \"loading\" | \"filterOption\" | \"notFoundContent\" | \"menuItemSelectedIcon\" |\r\n \"searchValue\"> {\r\n api: EdaManagerApi\r\n type: IdType\r\n displayType?: DisplayType\r\n showCancelButton?: boolean\r\n showDetailButton?: boolean\r\n showNewObjectButton?: boolean\r\n}\r\n\r\nexport const EdaSelect: FC<Props> = ({\r\n api, type, showCancelButton, showDetailButton, showNewObjectButton, displayType,\r\n disabled, size, value, onClear, onChange, onSelect, ...otherProps\r\n}) => {\r\n const [loading, setLoading] = useState(false);\r\n const [options, setOptions] = useState<SD_EM_Tree_Item[]>([]);\r\n const [detailVisible, setDetailVisible] = useState<boolean>(false);\r\n const [searchVisible, setSearchVisible] = useState<boolean>(false);\r\n const [fullDetailData, setFullDetailData] = useState<VectorData | GroupData | ScenarioData | undefined>(undefined);\r\n const [detailLoading, setDetailLoading] = useState(false);\r\n const {token} = theme.useToken();\r\n const lastSearchRef = useRef<string | null>(null);\r\n const activeRequestRef = useRef<number>(0);\r\n const sizeContext = useContext(SizeContext);\r\n const mergeSize = size ?? sizeContext\r\n\r\n const iconSize = useMemo(() => {\r\n switch (mergeSize) {\r\n case \"small\":\r\n return token.fontSizeSM;\r\n case \"large\":\r\n return token.fontSizeLG;\r\n case \"middle\":\r\n default:\r\n return token.fontSize;\r\n }\r\n }, [mergeSize]);\r\n\r\n const suffixIcon = useMemo(() => {\r\n if (disabled) {\r\n return <></>;\r\n } else if (loading) {\r\n return <LoadingOutlined\r\n style={{fontSize: iconSize}}\r\n />;\r\n } else {\r\n return (\r\n <>\r\n {showCancelButton && value &&\r\n <CloseCircleOutlined\r\n style={{color: token.colorError, fontSize: iconSize}}\r\n onClick={() => {\r\n onChange?.(undefined, [])\r\n onClear?.();\r\n }}\r\n />\r\n }\r\n {showDetailButton && value &&\r\n <InfoCircleOutlined\r\n style={{fontSize: iconSize}}\r\n onClick={() => setDetailVisible(true)}\r\n />\r\n }\r\n {showNewObjectButton &&\r\n <></>\r\n }\r\n <SelectOutlined\r\n style={{fontSize: iconSize}}\r\n title={i18n(\"Open Select Dialog\")}\r\n onClick={() => {\r\n setSearchVisible(true);\r\n }}\r\n />\r\n </>\r\n );\r\n }\r\n\r\n }, [disabled, loading, showCancelButton, iconSize, token.colorError, value, onClear, onChange]);\r\n\r\n const loadData = useCallback(async (searchString: string) => {\r\n if (searchString === lastSearchRef.current) {\r\n return;\r\n }\r\n\r\n const requestId = ++activeRequestRef.current;\r\n const filterConditions = getFilterConditions(searchString);\r\n\r\n setLoading(true);\r\n lastSearchRef.current = searchString;\r\n\r\n try {\r\n let result;\r\n\r\n switch (type) {\r\n case IdType.VECTOR:\r\n result = await api.findVectors(filterConditions);\r\n break;\r\n case IdType.GROUP:\r\n result = await api.findGroups(filterConditions);\r\n break;\r\n case IdType.SCENARIO:\r\n result = await api.findScenarios(filterConditions);\r\n break;\r\n }\r\n\r\n if (requestId === activeRequestRef.current) {\r\n setOptions(result.items as SD_EM_Tree_Item[]);\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n } finally {\r\n if (requestId === activeRequestRef.current) {\r\n setLoading(false);\r\n }\r\n }\r\n }, [api, type]);\r\n\r\n const debounceSearch = useMemo(() => {\r\n return debounce(loadData, 500);\r\n }, [loadData]);\r\n\r\n const handleFocus = useCallback(() => {\r\n if (options.length === 0 && !disabled) {\r\n loadData(\"\");\r\n }\r\n }, [options, disabled, loadData]);\r\n\r\n const handleDoubleClick = useCallback(() => {\r\n if (!disabled) {\r\n setSearchVisible(true);\r\n }\r\n }, [disabled]);\r\n\r\n const renderOption = useCallback((oriOption: FlattenOptionData<SD_EM_Tree_Item>) => {\r\n return (\r\n <div style={{display: \"flex\", justifyContent: \"space-between\"}}>\r\n <span>{oriOption.data.DisplayName}</span>\r\n <ColorTag>{oriOption.data.Name}</ColorTag>\r\n </div>\r\n )\r\n }, []);\r\n\r\n const renderLabel = useCallback(() => {\r\n switch (displayType) {\r\n default:\r\n case \"code_name\":\r\n return <span>{value?.Name} <Typography.Text type={\"secondary\"}>({value?.DisplayName})</Typography.Text></span>;\r\n case \"name_code\":\r\n return <span>{value?.DisplayName} <Typography.Text type={\"secondary\"}>({value?.Name})</Typography.Text></span>;\r\n case \"code\":\r\n return <span>{value?.Name}</span>;\r\n case \"name\":\r\n return <span>{value?.DisplayName}</span>;\r\n }\r\n }, [value, displayType]);\r\n\r\n const renderDetailModalContent = () => {\r\n if (detailLoading || !fullDetailData) {\r\n return (\r\n <div style={{display: 'flex', justifyContent: 'center', padding: 40}}>\r\n <LoadingOutlined style={{fontSize: 24}} spin/>\r\n </div>\r\n )\r\n }\r\n\r\n switch (type) {\r\n case IdType.VECTOR:\r\n return (\r\n <EdaVectorDetailPanel\r\n api={api}\r\n size={size}\r\n data={fullDetailData as VectorData}\r\n />\r\n );\r\n case IdType.GROUP:\r\n return (\r\n <EdaGroupDetailPanel\r\n size={size}\r\n data={fullDetailData as GroupData}\r\n />\r\n );\r\n case IdType.SCENARIO:\r\n return (\r\n <EdaScenarioDetailPanel\r\n size={size}\r\n data={fullDetailData as ScenarioData}\r\n />\r\n );\r\n }\r\n }\r\n\r\n const renderDetailPanelDialog = useMemo(() => {\r\n return (\r\n <ModalDialog\r\n open={detailVisible}\r\n mode={ModalDialogMode.NO_BUTTONS}\r\n onCancel={() => setDetailVisible(false)}\r\n onOk={() => setDetailVisible(false)}\r\n title={<span>{i18n(\"Detail\")} <Typography.Text type={\"secondary\"}>({value ? value.Name : \"\"})</Typography.Text></span>}\r\n styles={{body: {padding: 8}}}\r\n initialWidth={720}\r\n initialHeight={window.innerHeight * 0.75}\r\n >\r\n {detailVisible && renderDetailModalContent()}\r\n </ModalDialog>\r\n )\r\n }, [detailVisible, detailLoading, fullDetailData, api, size]);\r\n\r\n const renderSearchPanelDialog = useMemo(() => {\r\n return (\r\n <ModalDialog\r\n open={searchVisible}\r\n mode={ModalDialogMode.NO_BUTTONS}\r\n onCancel={() => setSearchVisible(false)}\r\n onOk={() => setSearchVisible(false)}\r\n title={i18n(\"Search\")}\r\n styles={{body: {padding: 8}}}\r\n initialWidth={640}\r\n initialHeight={window.innerHeight * 0.75}\r\n forceRender\r\n >\r\n <EdaNavigator\r\n api={api}\r\n size={size}\r\n onDoubleClick={(id, item) => {\r\n if (id.type === type) {\r\n onChange?.(item, item);\r\n onSelect?.(item, item);\r\n setSearchVisible(false);\r\n }\r\n }}\r\n />\r\n </ModalDialog>\r\n )\r\n }, [searchVisible, api]);\r\n\r\n useEffect(() => {\r\n if (detailVisible && value) {\r\n setDetailLoading(true);\r\n loadDetail(api, {type: type, id: value.ID}).then((result) => {\r\n setFullDetailData(result);\r\n setDetailLoading(false);\r\n });\r\n }\r\n }, [detailVisible, value, api]);\r\n\r\n useEffect(() => {\r\n return () => debounceSearch.cancel();\r\n }, [debounceSearch]);\r\n\r\n return (\r\n <>\r\n {renderDetailPanelDialog}\r\n {renderSearchPanelDialog}\r\n <Select<SD_EM_Tree_Item | undefined, SD_EM_Tree_Item>\r\n {...otherProps}\r\n disabled={disabled}\r\n size={size}\r\n value={value}\r\n onSelect={onSelect}\r\n onChange={onChange}\r\n options={options}\r\n showSearch\r\n labelInValue\r\n filterOption={false}\r\n fieldNames={{label: 'DisplayName', value: 'ID'}}\r\n optionFilterProp={\"DisplayName\"}\r\n onSearch={debounceSearch}\r\n onFocus={handleFocus}\r\n optionRender={renderOption}\r\n labelRender={renderLabel}\r\n notFoundContent={null}\r\n suffixIcon={<div style={{display: \"flex\", alignItems: \"center\", gap: 4, color: token.colorTextSecondary}}>{suffixIcon}</div>}\r\n // @ts-ignore\r\n onDoubleClick={handleDoubleClick}\r\n />\r\n </>\r\n );\r\n}\r\n\r\nfunction getFilterConditionForCode(searchString?: string): AdvancedFilterCondition {\r\n return AdvancedFilterUtils.newCondition({columnName: \"Meno\", valueType: AdvancedFilterValueType.STRING}, {\r\n operator: AdvancedFilterOperator.LIKE,\r\n value: `%${searchString ?? \"\"}%`,\r\n });\r\n}\r\n\r\nfunction getFilterConditionForName(searchString?: string): AdvancedFilterCondition {\r\n return AdvancedFilterUtils.newCondition({columnName: \"Zobraz_Meno\", valueType: AdvancedFilterValueType.STRING}, {\r\n operator: AdvancedFilterOperator.LIKE,\r\n value: `%${searchString ?? \"\"}%`,\r\n })\r\n}\r\n\r\nfunction getFilterConditions(searchString?: string): AdvancedFilterCondition[] {\r\n const filterConditionForCode = getFilterConditionForCode(searchString);\r\n filterConditionForCode.left_par = 1;\r\n filterConditionForCode.logical_operator = AdvancedFilterLogicalOperator.OR;\r\n\r\n const filterConditionForName = getFilterConditionForName(searchString);\r\n filterConditionForName.right_par = 1;\r\n\r\n return [\r\n filterConditionForCode,\r\n filterConditionForName,\r\n ]\r\n}"]}
1
+ {"version":3,"file":"edaSelect.js","sourceRoot":"","sources":["../../../../../coreui/components/edaManagerComponent/edaSelect.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, {FC, useCallback, useContext, useEffect, useMemo, useRef, useState} from \"react\";\r\nimport {ConfigProvider, Empty, Select, theme, Typography} from \"antd\";\r\nimport {SelectProps} from \"antd/es/select\";\r\nimport {CloseCircleOutlined, LoadingOutlined, MonitorOutlined, SelectOutlined} from \"@ant-design/icons\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport SizeContext from \"antd/es/config-provider/SizeContext\";\r\nimport EdaManagerApi, {TreeItem} from \"../../../api/eda/edaManagerApi\";\r\nimport {IdType} from \"./constants/edaTypes\";\r\nimport debounce from \"lodash/debounce\";\r\nimport {AdvancedFilterCondition, AdvancedFilterLogicalOperator, AdvancedFilterOperator} from \"../../../api/advancedFilterApi\";\r\nimport AdvancedFilterUtils from \"../advancedFilter/advancedFilterUtils\";\r\nimport {AdvancedFilterValueType} from \"../../../api/types/advancedFilter\";\r\nimport {FlattenOptionData} from \"rc-select/lib/interface\";\r\nimport ColorTag from \"../colorTag/colorTag\";\r\nimport {ModalDialog, ModalDialogMode} from \"d2coreui/components/modal/modalDialog\";\r\nimport {EdaNavigator} from \"./edaNavigator\";\r\nimport {EdaDetail} from \"./edaDetail\";\r\n\r\nexport type DisplayType = \"code\" | \"name\" | \"code_name\" | \"name_code\";\r\n\r\ninterface Props extends Omit<SelectProps<TreeItem | undefined, TreeItem>, \"allowClear\" | \"clearIcon\" | \"showSearch\" | \"labelInValue\" | \"fieldNames\" |\r\n \"options\" | \"suffixIcon\" | \"onSearch\" | \"onFocus\" | \"showArrow\" | \"mode\" | \"loading\" | \"filterOption\" | \"notFoundContent\" | \"menuItemSelectedIcon\" |\r\n \"searchValue\"> {\r\n api: EdaManagerApi\r\n type: IdType\r\n displayType?: DisplayType\r\n showCancelButton?: boolean\r\n showDetailButton?: boolean\r\n showNewObjectButton?: boolean\r\n showOmitted?: boolean\r\n readonly?: boolean\r\n}\r\n\r\nexport const EdaSelect: FC<Props> = ({\r\n api, type, showCancelButton, showDetailButton, showNewObjectButton, displayType, showOmitted, readonly,\r\n disabled, size, value, onClear, onChange, onSelect, ...otherProps\r\n}) => {\r\n const {token} = theme.useToken();\r\n\r\n const sizeContext = useContext(SizeContext);\r\n\r\n const lastSearchRef = useRef<string | null>(null);\r\n const activeRequestRef = useRef<number>(0);\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [options, setOptions] = useState<TreeItem[]>([]);\r\n const [detailVisible, setDetailVisible] = useState<boolean>(false);\r\n const [searchVisible, setSearchVisible] = useState<boolean>(false);\r\n\r\n const mergeSize = size ?? sizeContext\r\n\r\n const iconSize = useMemo(() => {\r\n switch (mergeSize) {\r\n case \"small\":\r\n return token.fontSizeSM;\r\n case \"large\":\r\n return token.fontSizeLG;\r\n case \"middle\":\r\n default:\r\n return token.fontSize;\r\n }\r\n }, [mergeSize]);\r\n\r\n const suffixIcon = useMemo(() => {\r\n if (disabled) {\r\n return <></>;\r\n } else if (loading) {\r\n return <LoadingOutlined\r\n style={{fontSize: iconSize}}\r\n />;\r\n } else {\r\n return (\r\n <>\r\n {showCancelButton && value && !readonly &&\r\n <CloseCircleOutlined\r\n style={{color: token.colorError, fontSize: iconSize}}\r\n title={i18n(\"Clear\")}\r\n onClick={() => {\r\n onChange?.(undefined, [])\r\n onClear?.();\r\n }}\r\n />\r\n }\r\n {showDetailButton && value &&\r\n <MonitorOutlined\r\n style={{fontSize: iconSize}}\r\n title={i18n(\"Show Detail\")}\r\n onClick={() => setDetailVisible(true)}\r\n />\r\n }\r\n {showNewObjectButton && !readonly &&\r\n <></>\r\n }\r\n {!readonly && (\r\n <SelectOutlined\r\n style={{fontSize: iconSize}}\r\n title={i18n(\"Open Select Dialog\")}\r\n onClick={() => {\r\n setSearchVisible(true);\r\n }}\r\n />\r\n )}\r\n </>\r\n );\r\n }\r\n\r\n }, [disabled, readonly, loading, showCancelButton, iconSize, token.colorError, value, onClear, onChange]);\r\n\r\n const loadData = useCallback(async (searchString: string) => {\r\n if (searchString === lastSearchRef.current) {\r\n return;\r\n }\r\n\r\n const requestId = ++activeRequestRef.current;\r\n const filterConditions = getFilterConditions(searchString);\r\n\r\n setLoading(true);\r\n lastSearchRef.current = searchString;\r\n\r\n try {\r\n let result: TreeItem[];\r\n\r\n switch (type) {\r\n case IdType.VECTOR:\r\n result = await api.findVectors(filterConditions);\r\n break;\r\n case IdType.GROUP:\r\n result = await api.findGroups(filterConditions);\r\n break;\r\n case IdType.SCENARIO:\r\n result = await api.findScenarios(filterConditions);\r\n break;\r\n }\r\n\r\n if (requestId === activeRequestRef.current) {\r\n setOptions(result);\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n } finally {\r\n if (requestId === activeRequestRef.current) {\r\n setLoading(false);\r\n }\r\n }\r\n }, [api, type]);\r\n\r\n const debounceSearch = useMemo(() => {\r\n return debounce(loadData, 500);\r\n }, [loadData]);\r\n\r\n const handleFocus = useCallback(() => {\r\n if (options.length === 0 && !disabled) {\r\n loadData(\"\");\r\n }\r\n }, [options, disabled, loadData]);\r\n\r\n const handleDoubleClick = useCallback(() => {\r\n if (!disabled && !readonly) {\r\n setSearchVisible(true);\r\n }\r\n }, [disabled, readonly]);\r\n\r\n const renderOption = useCallback((oriOption: FlattenOptionData<TreeItem>) => {\r\n return (\r\n <div style={{display: \"flex\", justifyContent: \"space-between\"}}>\r\n <span>{oriOption.data.DisplayName}</span>\r\n <ColorTag>{oriOption.data.Name}</ColorTag>\r\n </div>\r\n )\r\n }, []);\r\n\r\n const renderLabel = useCallback(() => {\r\n switch (displayType) {\r\n default:\r\n case \"code_name\":\r\n return <span>{value?.Name} <Typography.Text type={\"secondary\"}>({value?.DisplayName})</Typography.Text></span>;\r\n case \"name_code\":\r\n return <span>{value?.DisplayName} <Typography.Text type={\"secondary\"}>({value?.Name})</Typography.Text></span>;\r\n case \"code\":\r\n return <span>{value?.Name}</span>;\r\n case \"name\":\r\n return <span>{value?.DisplayName}</span>;\r\n }\r\n }, [value, displayType]);\r\n\r\n const renderDetailPanelDialog = useMemo(() => {\r\n const visible = detailVisible && value;\r\n return (\r\n <ModalDialog\r\n open={detailVisible}\r\n mode={ModalDialogMode.NO_BUTTONS}\r\n onCancel={() => setDetailVisible(false)}\r\n title={<span>{i18n(\"Detail\")} <Typography.Text type={\"secondary\"}>({value ? value.Name : \"\"})</Typography.Text></span>}\r\n styles={{body: {padding: 8}}}\r\n initialWidth={720}\r\n initialHeight={window.innerHeight * 0.75}\r\n >\r\n {visible &&\r\n <EdaDetail\r\n api={api}\r\n item={{type, id: value.ID}}\r\n style={{height: \"100%\"}}\r\n />\r\n }\r\n {!visible &&\r\n <div style={{display: 'flex', justifyContent: 'center', padding: 40}}>\r\n <Empty description={i18n(\"No data provided\")}/>\r\n </div>\r\n }\r\n </ModalDialog>\r\n )\r\n }, [detailVisible, type, value, api]);\r\n\r\n const renderSearchPanelDialog = useMemo(() => {\r\n return (\r\n <ModalDialog\r\n open={searchVisible}\r\n mode={ModalDialogMode.NO_BUTTONS}\r\n onCancel={() => setSearchVisible(false)}\r\n title={i18n(\"Search\")}\r\n styles={{body: {padding: 8}}}\r\n initialWidth={640}\r\n initialHeight={window.innerHeight * 0.75}\r\n forceRender\r\n >\r\n <EdaNavigator\r\n api={api}\r\n showOmitted={showOmitted}\r\n hideContextMenu\r\n onDoubleClick={(id, item) => {\r\n if (id.type === type) {\r\n onChange?.(item, item);\r\n onSelect?.(item, item);\r\n setSearchVisible(false);\r\n }\r\n }}\r\n />\r\n </ModalDialog>\r\n )\r\n }, [searchVisible, api, showOmitted]);\r\n\r\n useEffect(() => {\r\n return () => debounceSearch.cancel();\r\n }, [debounceSearch]);\r\n\r\n return (\r\n <ConfigProvider componentSize={size}>\r\n {renderDetailPanelDialog}\r\n {renderSearchPanelDialog}\r\n <Select<TreeItem | undefined, TreeItem>\r\n {...otherProps}\r\n disabled={disabled}\r\n value={value}\r\n onSelect={onSelect}\r\n onChange={onChange}\r\n options={options}\r\n showSearch\r\n open={!readonly ? undefined : false}\r\n filterOption={false}\r\n fieldNames={{label: 'DisplayName', value: 'ID'}}\r\n optionFilterProp={\"DisplayName\"}\r\n onSearch={debounceSearch}\r\n onFocus={handleFocus}\r\n optionRender={renderOption}\r\n labelRender={renderLabel}\r\n notFoundContent={null}\r\n suffixIcon={<div style={{display: \"flex\", alignItems: \"center\", gap: 4, color: token.colorTextSecondary}}>{suffixIcon}</div>}\r\n // @ts-ignore\r\n onDoubleClick={handleDoubleClick}\r\n />\r\n </ConfigProvider>\r\n );\r\n}\r\n\r\nfunction getFilterConditionForCode(searchString?: string): AdvancedFilterCondition {\r\n return AdvancedFilterUtils.newCondition({columnName: \"Meno\", valueType: AdvancedFilterValueType.STRING}, {\r\n operator: AdvancedFilterOperator.LIKE,\r\n value: `%${searchString ?? \"\"}%`,\r\n });\r\n}\r\n\r\nfunction getFilterConditionForName(searchString?: string): AdvancedFilterCondition {\r\n return AdvancedFilterUtils.newCondition({columnName: \"Zobraz_Meno\", valueType: AdvancedFilterValueType.STRING}, {\r\n operator: AdvancedFilterOperator.LIKE,\r\n value: `%${searchString ?? \"\"}%`,\r\n })\r\n}\r\n\r\nfunction getFilterConditions(searchString?: string): AdvancedFilterCondition[] {\r\n const filterConditionForCode = getFilterConditionForCode(searchString);\r\n filterConditionForCode.left_par = 1;\r\n filterConditionForCode.logical_operator = AdvancedFilterLogicalOperator.OR;\r\n\r\n const filterConditionForName = getFilterConditionForName(searchString);\r\n filterConditionForName.right_par = 1;\r\n\r\n return [\r\n filterConditionForCode,\r\n filterConditionForName,\r\n ]\r\n}"]}
@@ -0,0 +1,6 @@
1
+ import React from "react";
2
+ import Icon from '@ant-design/icons';
3
+ import type { GetProps } from 'antd';
4
+ type CustomIconComponentProps = GetProps<typeof Icon>;
5
+ export declare const FolderRemoveOutlined: (props: Partial<CustomIconComponentProps>) => React.JSX.Element;
6
+ export {};
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ import Icon from '@ant-design/icons';
3
+ const FolderRemoveOutlinedSvg = () => (React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "64 64 896 896", width: "1em", height: "1em", fill: "currentColor" },
4
+ React.createElement("path", { d: "M880 298H544l-56-112H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330c0-17.7-14.3-32-32-32zM840 768H184V262h261.3l56 112H840v394z" }),
5
+ React.createElement("path", { d: "M432 592h160c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8H432c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8z" })));
6
+ export const FolderRemoveOutlined = (props) => (React.createElement(Icon, { component: FolderRemoveOutlinedSvg, ...props }));
7
+ //# sourceMappingURL=folderRemoveOutlined.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"folderRemoveOutlined.js","sourceRoot":"","sources":["../../../../../../coreui/components/edaManagerComponent/icons/folderRemoveOutlined.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,mBAAmB,CAAC;AAKrC,MAAM,uBAAuB,GAAG,GAAG,EAAE,CAAC,CAClC,6BAAK,KAAK,EAAC,4BAA4B,EAAC,OAAO,EAAC,eAAe,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,KAAK,EAAC,IAAI,EAAC,cAAc;IACxG,8BAAM,CAAC,EAAC,kKAAkK,GAAE;IAC5K,8BAAM,CAAC,EAAC,2FAA2F,GAAE,CACnG,CACT,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAwC,EAAE,EAAE,CAAC,CAC9E,oBAAC,IAAI,IAAC,SAAS,EAAE,uBAAuB,KAAM,KAAK,GAAI,CAC1D,CAAA","sourcesContent":["import React from \"react\";\r\nimport Icon from '@ant-design/icons';\r\nimport type {GetProps} from 'antd';\r\n\r\ntype CustomIconComponentProps = GetProps<typeof Icon>;\r\n\r\nconst FolderRemoveOutlinedSvg = () => (\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"64 64 896 896\" width=\"1em\" height=\"1em\" fill=\"currentColor\">\r\n <path d=\"M880 298H544l-56-112H144c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V330c0-17.7-14.3-32-32-32zM840 768H184V262h261.3l56 112H840v394z\"/>\r\n <path d=\"M432 592h160c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8H432c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8z\"/>\r\n </svg>\r\n);\r\n\r\nexport const FolderRemoveOutlined = (props: Partial<CustomIconComponentProps>) => (\r\n <Icon component={FolderRemoveOutlinedSvg} {...props} />\r\n)"]}
@@ -0,0 +1,9 @@
1
+ import { LoadingContextValue } from "../context/loadingContext";
2
+ import EdaManagerApi, { GroupData, ScenarioData, VectorData } from "../../../../api/eda/edaManagerApi";
3
+ import { XmlVectorExportConfig } from "../dialogs/exportDialog";
4
+ import { MessageInstance } from "antd/es/message/interface";
5
+ type LoadingCallback = (value: (((prevState: LoadingContextValue) => LoadingContextValue) | LoadingContextValue)) => void;
6
+ export declare function exportVector(api: EdaManagerApi, vector: VectorData, config: XmlVectorExportConfig, dateTimeMask: string, setLoadingState: LoadingCallback, message: MessageInstance): Promise<[string, string][]>;
7
+ export declare function exportGroup(api: EdaManagerApi, group: GroupData, config: XmlVectorExportConfig, dateTimeMask: string, setLoadingState: LoadingCallback, message: MessageInstance): Promise<[string, string][]>;
8
+ export declare function exportScenario(api: EdaManagerApi, scenario: ScenarioData, config: XmlVectorExportConfig, dateTimeMask: string, setLoadingState: LoadingCallback, message: MessageInstance): Promise<[string, string][]>;
9
+ export {};