d2aura 26.0.13 → 26.0.14

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 (116) hide show
  1. package/api/eda/edaManagerApi.d.ts +50 -15
  2. package/api/eda/edaManagerApi.js +80 -29
  3. package/api/eda/edaManagerApi.js.map +1 -1
  4. package/api/eda/generated/events.d.ts +109 -60
  5. package/api/eda/generated/events.js +182 -88
  6. package/api/eda/generated/events.js.map +1 -1
  7. package/api/eda/generated/structures.d.ts +78 -14
  8. package/api/eda/generated/structures.js.map +1 -1
  9. package/core/i18n/d2aura.sk.json +30 -2
  10. package/coreui/components/edaManager/components/detail/components/edaVectorMassChangeButton.d.ts +1 -1
  11. package/coreui/components/edaManager/components/detail/components/edaVectorMassChangeButton.js +2 -2
  12. package/coreui/components/edaManager/components/detail/components/edaVectorMassChangeButton.js.map +1 -1
  13. package/coreui/components/edaManagerComponent/components/edaChartViewer.d.ts +14 -0
  14. package/coreui/components/edaManagerComponent/components/edaChartViewer.js +370 -0
  15. package/coreui/components/edaManagerComponent/components/edaChartViewer.js.map +1 -0
  16. package/coreui/components/edaManagerComponent/components/edaDataBasePanel.d.ts +4 -8
  17. package/coreui/components/edaManagerComponent/components/edaDataBasePanel.js +18 -75
  18. package/coreui/components/edaManagerComponent/components/edaDataBasePanel.js.map +1 -1
  19. package/coreui/components/edaManagerComponent/components/edaDetailPanel.d.ts +5 -14
  20. package/coreui/components/edaManagerComponent/components/edaDetailPanel.js +80 -19
  21. package/coreui/components/edaManagerComponent/components/edaDetailPanel.js.map +1 -1
  22. package/coreui/components/edaManagerComponent/components/edaGraphPanel.d.ts +2 -7
  23. package/coreui/components/edaManagerComponent/components/edaGraphPanel.js +15 -380
  24. package/coreui/components/edaManagerComponent/components/edaGraphPanel.js.map +1 -1
  25. package/coreui/components/edaManagerComponent/components/edaGroupDetailPanel.d.ts +3 -14
  26. package/coreui/components/edaManagerComponent/components/edaGroupDetailPanel.js +54 -67
  27. package/coreui/components/edaManagerComponent/components/edaGroupDetailPanel.js.map +1 -1
  28. package/coreui/components/edaManagerComponent/components/edaLoadingOverlay.d.ts +7 -0
  29. package/coreui/components/edaManagerComponent/components/edaLoadingOverlay.js +35 -0
  30. package/coreui/components/edaManagerComponent/components/edaLoadingOverlay.js.map +1 -0
  31. package/coreui/components/edaManagerComponent/components/edaSampleRangePickerPanel.d.ts +2 -16
  32. package/coreui/components/edaManagerComponent/components/edaSampleRangePickerPanel.js +47 -50
  33. package/coreui/components/edaManagerComponent/components/edaSampleRangePickerPanel.js.map +1 -1
  34. package/coreui/components/edaManagerComponent/components/edaScenarioDetailPanel.d.ts +3 -14
  35. package/coreui/components/edaManagerComponent/components/edaScenarioDetailPanel.js +67 -81
  36. package/coreui/components/edaManagerComponent/components/edaScenarioDetailPanel.js.map +1 -1
  37. package/coreui/components/edaManagerComponent/components/edaTableEditorDialog.d.ts +12 -0
  38. package/coreui/components/edaManagerComponent/components/edaTableEditorDialog.js +268 -0
  39. package/coreui/components/edaManagerComponent/components/edaTableEditorDialog.js.map +1 -0
  40. package/coreui/components/edaManagerComponent/components/edaTablePanel.d.ts +2 -6
  41. package/coreui/components/edaManagerComponent/components/edaTablePanel.js +119 -62
  42. package/coreui/components/edaManagerComponent/components/edaTablePanel.js.map +1 -1
  43. package/coreui/components/edaManagerComponent/components/edaTimeWindowPickerPanel.d.ts +2 -13
  44. package/coreui/components/edaManagerComponent/components/edaTimeWindowPickerPanel.js +57 -88
  45. package/coreui/components/edaManagerComponent/components/edaTimeWindowPickerPanel.js.map +1 -1
  46. package/coreui/components/edaManagerComponent/components/edaTreeView.d.ts +4 -51
  47. package/coreui/components/edaManagerComponent/components/edaTreeView.js +299 -259
  48. package/coreui/components/edaManagerComponent/components/edaTreeView.js.map +1 -1
  49. package/coreui/components/edaManagerComponent/components/edaVectorDetailPanel.d.ts +3 -21
  50. package/coreui/components/edaManagerComponent/components/edaVectorDetailPanel.js +160 -179
  51. package/coreui/components/edaManagerComponent/components/edaVectorDetailPanel.js.map +1 -1
  52. package/coreui/components/edaManagerComponent/components/exportDialog.d.ts +18 -0
  53. package/coreui/components/edaManagerComponent/components/exportDialog.js +157 -0
  54. package/coreui/components/edaManagerComponent/components/exportDialog.js.map +1 -0
  55. package/coreui/components/edaManagerComponent/constants/edaTypes.d.ts +10 -11
  56. package/coreui/components/edaManagerComponent/constants/edaTypes.js.map +1 -1
  57. package/coreui/components/edaManagerComponent/context/edaConfigContext.d.ts +26 -0
  58. package/coreui/components/edaManagerComponent/context/edaConfigContext.js +20 -0
  59. package/coreui/components/edaManagerComponent/context/edaConfigContext.js.map +1 -0
  60. package/coreui/components/edaManagerComponent/context/edaVectorDataContext.d.ts +9 -16
  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 +71 -66
  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} +6 -3
  68. package/coreui/components/edaManagerComponent/context/sharedSampleRangeContext.js +3 -0
  69. package/coreui/components/edaManagerComponent/context/sharedSampleRangeContext.js.map +1 -0
  70. package/coreui/components/edaManagerComponent/context/useEdaActions.d.ts +7 -0
  71. package/coreui/components/edaManagerComponent/context/useEdaActions.js +22 -0
  72. package/coreui/components/edaManagerComponent/context/useEdaActions.js.map +1 -0
  73. package/coreui/components/edaManagerComponent/edaDetail.d.ts +7 -26
  74. package/coreui/components/edaManagerComponent/edaDetail.js +124 -106
  75. package/coreui/components/edaManagerComponent/edaDetail.js.map +1 -1
  76. package/coreui/components/edaManagerComponent/edaManager.d.ts +4 -11
  77. package/coreui/components/edaManagerComponent/edaManager.js +29 -22
  78. package/coreui/components/edaManagerComponent/edaManager.js.map +1 -1
  79. package/coreui/components/edaManagerComponent/edaNavigator.d.ts +4 -12
  80. package/coreui/components/edaManagerComponent/edaNavigator.js +36 -41
  81. package/coreui/components/edaManagerComponent/edaNavigator.js.map +1 -1
  82. package/coreui/components/edaManagerComponent/edaSelect.d.ts +2 -3
  83. package/coreui/components/edaManagerComponent/edaSelect.js +22 -44
  84. package/coreui/components/edaManagerComponent/edaSelect.js.map +1 -1
  85. package/coreui/components/edaManagerComponent/utils/export.d.ts +9 -0
  86. package/coreui/components/edaManagerComponent/utils/export.js +573 -0
  87. package/coreui/components/edaManagerComponent/utils/export.js.map +1 -0
  88. package/coreui/components/edaManagerComponent/utils/utils.d.ts +6 -12
  89. package/coreui/components/edaManagerComponent/utils/utils.js +26 -15
  90. package/coreui/components/edaManagerComponent/utils/utils.js.map +1 -1
  91. package/d2configuration/edaManager/DB.EM_EDA_DescriptiveVector.xml +65 -0
  92. package/d2configuration/edaManager/DB.EM_EDA_FunctionPrescription.xml +65 -0
  93. package/d2configuration/edaManager/E.EM_DETAIL_IMPL.xml +67 -1
  94. package/d2configuration/edaManager/E.EM_DETAIL_SQL.xml +85 -0
  95. package/d2configuration/edaManager/E.EM_DETAIL_UNIT.xml +123 -2
  96. package/d2configuration/edaManager/E.EM_NAVIGATOR_IMPL.xml +1 -1
  97. package/d2configuration/edaManager/E.EM_NAVIGATOR_UNIT.xml +1 -1
  98. package/d2configuration/edaManager/E.EM_VECTOR_IMPL.xml +20 -6
  99. package/d2configuration/edaManager/E.EM_VECTOR_UNIT.xml +95 -17
  100. package/d2configuration/edaManager/SD.EM_EDA_DescriptiveVector.xml +179 -0
  101. package/d2configuration/edaManager/SD.EM_EDA_FunctionPrescription.xml +91 -0
  102. package/d2configuration/edaManager/SD.EM_EDA_InsertValuesToVector_V1.xml +227 -0
  103. package/d2configuration/edaManager/SD.EM_EDA_PairVector.xml +454 -0
  104. package/d2configuration/edaManager/SD.EM_EDA_ReadValuesFromVector_V1.xml +13 -3
  105. package/d2configuration/edaManager/SD.EM_EDA_VectorStats.xml +91 -0
  106. package/d2configuration/edaManager/SD.EM_Filter_Condition.xml +1 -1
  107. package/package.json +5 -3
  108. package/coreui/components/edaManagerComponent/components/edaBasePanel.d.ts +0 -16
  109. package/coreui/components/edaManagerComponent/components/edaBasePanel.js +0 -85
  110. package/coreui/components/edaManagerComponent/components/edaBasePanel.js.map +0 -1
  111. package/coreui/components/edaManagerComponent/context/sharedSampleRange.js +0 -13
  112. package/coreui/components/edaManagerComponent/context/sharedSampleRange.js.map +0 -1
  113. package/d2configuration/edaManager/EDA_CancelSession.xml +0 -54
  114. package/d2configuration/edaManager/EDA_GetSessionId.xml +0 -54
  115. package/d2configuration/edaManager/EDA_ReadValuesFromVektorRec.xml +0 -54
  116. package/d2configuration/edaManager/EDA_StatVectorRec.xml +0 -56
@@ -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;AAWH,MAAM,CAAC,MAAM,YAAY,GAAc,IAAI,CAAC,CAAC,EAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAC,EAAE,EAAE;IAC9E,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,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,iBAAiB,EAAE,aAAa,GAClC,CACL;SACJ;KACJ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;IAEjC,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\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, 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 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 onItemDoubleClick={onDoubleClick}\r\n />\r\n ),\r\n },\r\n ], [api, styles, 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,10 +1,9 @@
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;
@@ -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";
13
+ import { EdaDetail } from "./edaDetail";
17
14
  export const EdaSelect = ({ api, type, showCancelButton, showDetailButton, showNewObjectButton, displayType, 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) {
@@ -52,7 +47,7 @@ export const EdaSelect = ({ api, type, showCancelButton, showDetailButton, showN
52
47
  onClear?.();
53
48
  } }),
54
49
  showDetailButton && value &&
55
- React.createElement(InfoCircleOutlined, { style: { fontSize: iconSize }, onClick: () => setDetailVisible(true) }),
50
+ React.createElement(MonitorOutlined, { style: { fontSize: iconSize }, onClick: () => setDetailVisible(true) }),
56
51
  showNewObjectButton &&
57
52
  React.createElement(React.Fragment, null),
58
53
  React.createElement(SelectOutlined, { style: { fontSize: iconSize }, title: i18n("Open Select Dialog"), onClick: () => {
@@ -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) {
@@ -137,32 +132,24 @@ 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, onDoubleClick: (id, item) => {
166
153
  if (id.type === type) {
167
154
  onChange?.(item, item);
168
155
  onSelect?.(item, item);
@@ -170,22 +157,13 @@ export const EdaSelect = ({ api, type, showCancelButton, showDetailButton, showN
170
157
  }
171
158
  } })));
172
159
  }, [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]);
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, 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}\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 {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 &&\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 <MonitorOutlined\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: 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) {\r\n setSearchVisible(true);\r\n }\r\n }, [disabled]);\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 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 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 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,9 @@
1
+ import { LoadingContextValue } from "../context/loadingContext";
2
+ import EdaManagerApi, { GroupData, ScenarioData, VectorData } from "../../../../api/eda/edaManagerApi";
3
+ import { XmlVectorExportConfig } from "../components/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 {};