d2aura 26.0.8 → 26.0.10

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 (141) hide show
  1. package/api/eda/edaManagerApi.d.ts +26 -0
  2. package/api/eda/edaManagerApi.js +51 -0
  3. package/api/eda/edaManagerApi.js.map +1 -0
  4. package/api/eda/generated/events.d.ts +132 -0
  5. package/api/eda/generated/events.js +295 -0
  6. package/api/eda/generated/events.js.map +1 -0
  7. package/api/eda/generated/structures.d.ts +109 -0
  8. package/api/eda/generated/structures.js +2 -0
  9. package/api/eda/generated/structures.js.map +1 -0
  10. package/api/webPush/webPushApi.js.map +1 -1
  11. package/api/webPush/webPushUtils.js.map +1 -1
  12. package/core/i18n/d2aura.en.json +40 -1
  13. package/core/i18n/d2aura.sk.json +87 -1
  14. package/coreui/components/advancedFilter/advancedFilteredGrid.d.ts +1 -0
  15. package/coreui/components/advancedFilter/advancedFilteredGrid.js +5 -0
  16. package/coreui/components/advancedFilter/advancedFilteredGrid.js.map +1 -1
  17. package/coreui/components/edaManager/abstract/edaManagerAbstractPanel.d.ts +3 -2
  18. package/coreui/components/edaManager/abstract/edaManagerAbstractPanel.js +3 -3
  19. package/coreui/components/edaManager/abstract/edaManagerAbstractPanel.js.map +1 -1
  20. package/coreui/components/edaManager/abstract/edaManagerAbstractTablePanel.d.ts +2 -1
  21. package/coreui/components/edaManager/abstract/edaManagerAbstractTablePanel.js.map +1 -1
  22. package/coreui/components/edaManager/compactPanel/edaManagerCompactPanel.d.ts +7 -1
  23. package/coreui/components/edaManager/compactPanel/edaManagerCompactPanel.js.map +1 -1
  24. package/coreui/components/edaManager/components/edaManagerTablePanel.js +3 -2
  25. package/coreui/components/edaManager/components/edaManagerTablePanel.js.map +1 -1
  26. package/coreui/components/edaManagerComponent/components/edaBasePanel.d.ts +16 -0
  27. package/coreui/components/edaManagerComponent/components/edaBasePanel.js +85 -0
  28. package/coreui/components/edaManagerComponent/components/edaBasePanel.js.map +1 -0
  29. package/coreui/components/edaManagerComponent/components/edaDataBasePanel.d.ts +43 -0
  30. package/coreui/components/edaManagerComponent/components/edaDataBasePanel.js +217 -0
  31. package/coreui/components/edaManagerComponent/components/edaDataBasePanel.js.map +1 -0
  32. package/coreui/components/edaManagerComponent/components/edaDetailPanel.d.ts +16 -0
  33. package/coreui/components/edaManagerComponent/components/edaDetailPanel.js +25 -0
  34. package/coreui/components/edaManagerComponent/components/edaDetailPanel.js.map +1 -0
  35. package/coreui/components/edaManagerComponent/components/edaGraphPanel.d.ts +7 -0
  36. package/coreui/components/edaManagerComponent/components/edaGraphPanel.js +393 -0
  37. package/coreui/components/edaManagerComponent/components/edaGraphPanel.js.map +1 -0
  38. package/coreui/components/edaManagerComponent/components/edaGroupDetailPanel.d.ts +18 -0
  39. package/coreui/components/edaManagerComponent/components/edaGroupDetailPanel.js +72 -0
  40. package/coreui/components/edaManagerComponent/components/edaGroupDetailPanel.js.map +1 -0
  41. package/coreui/components/edaManagerComponent/components/edaSampleRangePickerPanel.d.ts +29 -0
  42. package/coreui/components/edaManagerComponent/components/edaSampleRangePickerPanel.js +94 -0
  43. package/coreui/components/edaManagerComponent/components/edaSampleRangePickerPanel.js.map +1 -0
  44. package/coreui/components/edaManagerComponent/components/edaScenarioDetailPanel.d.ts +18 -0
  45. package/coreui/components/edaManagerComponent/components/edaScenarioDetailPanel.js +86 -0
  46. package/coreui/components/edaManagerComponent/components/edaScenarioDetailPanel.js.map +1 -0
  47. package/coreui/components/edaManagerComponent/components/edaTablePanel.d.ts +4 -0
  48. package/coreui/components/edaManagerComponent/components/edaTablePanel.js +73 -0
  49. package/coreui/components/edaManagerComponent/components/edaTablePanel.js.map +1 -0
  50. package/coreui/components/edaManagerComponent/components/edaTimeWindowPickerPanel.d.ts +34 -0
  51. package/coreui/components/edaManagerComponent/components/edaTimeWindowPickerPanel.js +202 -0
  52. package/coreui/components/edaManagerComponent/components/edaTimeWindowPickerPanel.js.map +1 -0
  53. package/coreui/components/edaManagerComponent/components/edaTreeView.d.ts +61 -0
  54. package/coreui/components/edaManagerComponent/components/edaTreeView.js +399 -0
  55. package/coreui/components/edaManagerComponent/components/edaTreeView.js.map +1 -0
  56. package/coreui/components/edaManagerComponent/components/edaVectorDetailPanel.d.ts +20 -0
  57. package/coreui/components/edaManagerComponent/components/edaVectorDetailPanel.js +162 -0
  58. package/coreui/components/edaManagerComponent/components/edaVectorDetailPanel.js.map +1 -0
  59. package/coreui/components/edaManagerComponent/constants/edaTypes.d.ts +78 -0
  60. package/coreui/components/edaManagerComponent/constants/edaTypes.js +71 -0
  61. package/coreui/components/edaManagerComponent/constants/edaTypes.js.map +1 -0
  62. package/coreui/components/edaManagerComponent/constants/storageTypes.d.ts +5 -0
  63. package/coreui/components/edaManagerComponent/constants/storageTypes.js +7 -0
  64. package/coreui/components/edaManagerComponent/constants/storageTypes.js.map +1 -0
  65. package/coreui/components/edaManagerComponent/context/sharedSampleRange.d.ts +17 -0
  66. package/coreui/components/edaManagerComponent/context/sharedSampleRange.js +3 -0
  67. package/coreui/components/edaManagerComponent/context/sharedSampleRange.js.map +1 -0
  68. package/coreui/components/edaManagerComponent/context/sharedSampleRangeWrapper.d.ts +6 -0
  69. package/coreui/components/edaManagerComponent/context/sharedSampleRangeWrapper.js +14 -0
  70. package/coreui/components/edaManagerComponent/context/sharedSampleRangeWrapper.js.map +1 -0
  71. package/coreui/components/edaManagerComponent/edaDetail.d.ts +45 -0
  72. package/coreui/components/edaManagerComponent/edaDetail.js +173 -0
  73. package/coreui/components/edaManagerComponent/edaDetail.js.map +1 -0
  74. package/coreui/components/edaManagerComponent/edaManager.d.ts +20 -0
  75. package/coreui/components/edaManagerComponent/edaManager.js +33 -0
  76. package/coreui/components/edaManagerComponent/edaManager.js.map +1 -0
  77. package/coreui/components/edaManagerComponent/edaNavigator.d.ts +19 -0
  78. package/coreui/components/edaManagerComponent/edaNavigator.js +64 -0
  79. package/coreui/components/edaManagerComponent/edaNavigator.js.map +1 -0
  80. package/coreui/components/edaManagerComponent/edaSelect.d.ts +10 -0
  81. package/coreui/components/edaManagerComponent/edaSelect.js +9 -0
  82. package/coreui/components/edaManagerComponent/edaSelect.js.map +1 -0
  83. package/coreui/components/edaManagerComponent/icons/letterCFilled.d.ts +6 -0
  84. package/coreui/components/edaManagerComponent/icons/letterCFilled.js +6 -0
  85. package/coreui/components/edaManagerComponent/icons/letterCFilled.js.map +1 -0
  86. package/coreui/components/edaManagerComponent/icons/letterDFilled.d.ts +6 -0
  87. package/coreui/components/edaManagerComponent/icons/letterDFilled.js +6 -0
  88. package/coreui/components/edaManagerComponent/icons/letterDFilled.js.map +1 -0
  89. package/coreui/components/edaManagerComponent/icons/letterHFilled.d.ts +6 -0
  90. package/coreui/components/edaManagerComponent/icons/letterHFilled.js +6 -0
  91. package/coreui/components/edaManagerComponent/icons/letterHFilled.js.map +1 -0
  92. package/coreui/components/edaManagerComponent/icons/letterIFilled.d.ts +6 -0
  93. package/coreui/components/edaManagerComponent/icons/letterIFilled.js +6 -0
  94. package/coreui/components/edaManagerComponent/icons/letterIFilled.js.map +1 -0
  95. package/coreui/components/edaManagerComponent/icons/letterMFilled.d.ts +6 -0
  96. package/coreui/components/edaManagerComponent/icons/letterMFilled.js +6 -0
  97. package/coreui/components/edaManagerComponent/icons/letterMFilled.js.map +1 -0
  98. package/coreui/components/edaManagerComponent/icons/numberFifteenFilled.d.ts +6 -0
  99. package/coreui/components/edaManagerComponent/icons/numberFifteenFilled.js +7 -0
  100. package/coreui/components/edaManagerComponent/icons/numberFifteenFilled.js.map +1 -0
  101. package/coreui/components/edaManagerComponent/icons/pairOutlined.d.ts +6 -0
  102. package/coreui/components/edaManagerComponent/icons/pairOutlined.js +6 -0
  103. package/coreui/components/edaManagerComponent/icons/pairOutlined.js.map +1 -0
  104. package/coreui/components/edaManagerComponent/icons/periodicOutlined.d.ts +6 -0
  105. package/coreui/components/edaManagerComponent/icons/periodicOutlined.js +6 -0
  106. package/coreui/components/edaManagerComponent/icons/periodicOutlined.js.map +1 -0
  107. package/coreui/components/edaManagerComponent/utils/utils.d.ts +2 -0
  108. package/coreui/components/edaManagerComponent/utils/utils.js +8 -0
  109. package/coreui/components/edaManagerComponent/utils/utils.js.map +1 -0
  110. package/coreui/components/select/abstractSelectModalDialog.d.ts +6 -1
  111. package/coreui/components/select/abstractSelectModalDialog.js +21 -10
  112. package/coreui/components/select/abstractSelectModalDialog.js.map +1 -1
  113. package/coreui/components/webPush/webPushSwitch.js.map +1 -1
  114. package/coreui/images/logo.svg +9 -9
  115. package/coreui/images/logo_full.svg +11 -11
  116. package/d2configuration/edaManager/DB.EM_EDA_Function.xml +65 -0
  117. package/d2configuration/edaManager/DB.EM_EDA_GroupVector.xml +65 -0
  118. package/d2configuration/edaManager/DB.EM_EDA_Scenario.xml +65 -0
  119. package/d2configuration/edaManager/DB.EM_EDA_Vector.xml +65 -0
  120. package/d2configuration/edaManager/DB.EM_EDA_VectorEx.xml +65 -0
  121. package/d2configuration/edaManager/DBC_EM_EDA.xml +51 -0
  122. package/d2configuration/edaManager/E.EM_DETAIL_IMPL.xml +124 -0
  123. package/d2configuration/edaManager/E.EM_DETAIL_UNIT.xml +202 -0
  124. package/d2configuration/edaManager/E.EM_NAVIGATOR_IMPL.xml +160 -0
  125. package/d2configuration/edaManager/E.EM_NAVIGATOR_SQL.xml +272 -0
  126. package/d2configuration/edaManager/E.EM_NAVIGATOR_UNIT.xml +346 -0
  127. package/d2configuration/edaManager/E.EM_VECTOR_IMPL.xml +92 -0
  128. package/d2configuration/edaManager/E.EM_VECTOR_MANAGER.xml +116 -0
  129. package/d2configuration/edaManager/E.EM_VECTOR_UNIT.xml +124 -0
  130. package/d2configuration/edaManager/EDA_CancelSession.xml +54 -0
  131. package/d2configuration/edaManager/EDA_GetSessionId.xml +54 -0
  132. package/d2configuration/edaManager/EDA_ReadValuesFromVektorRec.xml +54 -0
  133. package/d2configuration/edaManager/SD.EM_EDA_Function.xml +135 -0
  134. package/d2configuration/edaManager/SD.EM_EDA_GroupVector.xml +190 -0
  135. package/d2configuration/edaManager/SD.EM_EDA_ReadValuesFromVector_V1.xml +168 -0
  136. package/d2configuration/edaManager/SD.EM_EDA_Scenario.xml +322 -0
  137. package/d2configuration/edaManager/SD.EM_EDA_Vector.xml +465 -0
  138. package/d2configuration/edaManager/SD.EM_EDA_VectorEx.xml +80 -0
  139. package/d2configuration/edaManager/SD.EM_EDA_VectorValues.xml +58 -0
  140. package/d2configuration/edaManager/SD.EM_Tree_Item.xml +113 -0
  141. package/package.json +7 -5
@@ -0,0 +1,94 @@
1
+ import React from "react";
2
+ import { EdaSamplingType } from "../constants/edaTypes";
3
+ import WithCss from "d2coreui/components/style/withCss";
4
+ import { Button, Checkbox, Popover, Space } from "antd";
5
+ import DateRangeInputConfirm from "d2coreui/components/date/dateRangeInputConfirm";
6
+ import { DateRangeInputMode } from "d2coreui/components/date/dateRangeInput";
7
+ import EnumValuePicker from "d2coreui/components/picker/enumValuePicker";
8
+ import i18n from "d2core/i18n/i18n";
9
+ import { AutoReloadIcon } from "../../../icons/icons";
10
+ import { ReloadOutlined } from "@ant-design/icons";
11
+ import { LocaleHolder } from "d2core/i18n/localeHolder";
12
+ import { createStyles } from "antd-style";
13
+ import DataGridPagination from "d2coreui/components/grid/panel/dataGridPagination";
14
+ const useStyles = createStyles(({ css }) => {
15
+ return {
16
+ baseLayout: css `
17
+ width: 100%;
18
+ display: flex;
19
+
20
+ > *:first-child {
21
+ min-width: 320px;
22
+ flex: 0 0 auto;
23
+ }
24
+
25
+ > *:last-child(-1) {
26
+ flex: 1 1 auto;
27
+ }
28
+
29
+ .paging {
30
+ display: flex;
31
+ white-space: nowrap;
32
+ }
33
+
34
+ .paging.small li {
35
+ line-height: 24px !important;
36
+ }
37
+
38
+ .paging.large li {
39
+ line-height: 40px !important;
40
+ }
41
+ `,
42
+ };
43
+ });
44
+ export class EdaSampleRangePickerPanel extends React.Component {
45
+ constructor(props) {
46
+ super(props);
47
+ this.mask = LocaleHolder.getDateTimeFormat(true, false, false);
48
+ this.state = {
49
+ bt: props.bt,
50
+ et: props.et,
51
+ sampling: props.sampling,
52
+ autoRefresh: false
53
+ };
54
+ }
55
+ componentDidUpdate(prevProps) {
56
+ const { bt, et, sampling } = this.props;
57
+ if (!bt.isSame(prevProps.bt) || !et.isSame(prevProps.et) || sampling !== prevProps.sampling) {
58
+ this.setState({ bt: bt, et: et, sampling: sampling });
59
+ }
60
+ }
61
+ render() {
62
+ const { bt, et, sampling, autoRefresh } = this.state;
63
+ const { loading, onChange, size, totalCount, pageSize, page } = this.props;
64
+ const filterChanged = bt !== this.props.bt || et !== this.props.et || sampling !== this.props.sampling;
65
+ return (React.createElement(WithCss, { useStyles: useStyles }, (css) => React.createElement(Space.Compact, { size: size, className: css.styles.baseLayout },
66
+ React.createElement(DateRangeInputConfirm, { mask: this.mask, className: "ant-input-compact-item ant-input-compact-first-item", fromValue: bt, toValue: et, defaultMode: DateRangeInputMode.ADVANCED, onChange: (fromValue, toValue) => {
67
+ if (fromValue !== null && toValue !== null) {
68
+ this.updateValues({ bt: fromValue, et: toValue });
69
+ }
70
+ } }),
71
+ React.createElement(EnumValuePicker, { style: { minWidth: "220px" }, values: EdaSamplingType, translateValue: true, translationPrefix: "EdaSamplingType_", value: sampling, popupMatchSelectWidth: true, onChange: (value) => this.updateValues({ sampling: value }) }),
72
+ React.createElement(Popover, { content: React.createElement(Checkbox, { checked: autoRefresh, onChange: e => this.updateValues({ autoRefresh: e.target.checked }) }, i18n("Auto Refresh")), placement: "topLeft", trigger: ["contextMenu", "hover"] },
73
+ React.createElement(Button, { color: filterChanged ? "danger" : "primary", variant: "solid", loading: loading, icon: React.createElement("span", null,
74
+ autoRefresh && React.createElement(AutoReloadIcon, null),
75
+ !autoRefresh && React.createElement(ReloadOutlined, null)), onClick: () => onChange(bt, et, sampling, page) })),
76
+ pageSize < totalCount &&
77
+ React.createElement(React.Fragment, null,
78
+ React.createElement("div", { style: { flex: "1 1 auto" } }),
79
+ React.createElement("div", { className: "paging" + " " + (size ?? "") },
80
+ React.createElement(DataGridPagination, { current: page, pageSize: pageSize, total: totalCount, onGoToPage: (page) => {
81
+ const { bt, et, sampling } = this.state;
82
+ this.props.onChange(bt, et, sampling, page);
83
+ } }))))));
84
+ }
85
+ updateValues(values) {
86
+ this.setState(values, () => {
87
+ if (this.state.autoRefresh) {
88
+ const { bt, et, sampling } = this.state;
89
+ this.props.onChange(bt, et, sampling, this.props.page);
90
+ }
91
+ });
92
+ }
93
+ }
94
+ //# sourceMappingURL=edaSampleRangePickerPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edaSampleRangePickerPanel.js","sourceRoot":"","sources":["../../../../../../coreui/components/edaManagerComponent/components/edaSampleRangePickerPanel.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\r\nimport dayjs from \"d2core/dayjs\";\r\nimport {EdaSamplingType} from \"../constants/edaTypes\";\r\nimport WithCss from \"d2coreui/components/style/withCss\";\r\nimport {Button, Checkbox, Popover, Space} from \"antd\";\r\nimport DateRangeInputConfirm from \"d2coreui/components/date/dateRangeInputConfirm\";\r\nimport {DateRangeInputMode} from \"d2coreui/components/date/dateRangeInput\";\r\nimport EnumValuePicker from \"d2coreui/components/picker/enumValuePicker\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport {AutoReloadIcon} from \"../../../icons/icons\";\r\nimport {ReloadOutlined} from \"@ant-design/icons\";\r\nimport {LocaleHolder} from \"d2core/i18n/localeHolder\";\r\nimport {createStyles} from \"antd-style\";\r\nimport {SizeType} from \"antd/lib/config-provider/SizeContext\";\r\nimport DataGridPagination from \"d2coreui/components/grid/panel/dataGridPagination\";\r\n\r\nconst useStyles = createStyles(({css},) => {\r\n return {\r\n baseLayout: css`\r\n width: 100%;\r\n display: flex;\r\n \r\n > *:first-child {\r\n min-width: 320px;\r\n flex: 0 0 auto;\r\n }\r\n \r\n > *:last-child(-1) {\r\n flex: 1 1 auto;\r\n }\r\n \r\n .paging {\r\n display: flex;\r\n white-space: nowrap;\r\n }\r\n \r\n .paging.small li {\r\n line-height: 24px !important;\r\n }\r\n \r\n .paging.large li {\r\n line-height: 40px !important;\r\n }\r\n `,\r\n }\r\n});\r\n\r\ninterface Props {\r\n bt: dayjs.Dayjs\r\n et: dayjs.Dayjs\r\n sampling: EdaSamplingType\r\n totalCount: number\r\n pageSize: number\r\n loading: boolean\r\n page: number\r\n\r\n size?: SizeType\r\n\r\n onChange: (bt: dayjs.Dayjs, et: dayjs.Dayjs, step: EdaSamplingType, page: number) => void\r\n}\r\n\r\ninterface State {\r\n bt: dayjs.Dayjs\r\n et: dayjs.Dayjs\r\n sampling: EdaSamplingType\r\n autoRefresh: boolean\r\n}\r\n\r\nexport class EdaSampleRangePickerPanel extends React.Component<Props, State> {\r\n private mask = LocaleHolder.getDateTimeFormat(true, false, false);\r\n\r\n constructor(props: Readonly<Props>) {\r\n super(props);\r\n this.state = {\r\n bt: props.bt,\r\n et: props.et,\r\n sampling: props.sampling,\r\n autoRefresh: false\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps: Readonly<Props>) {\r\n const {bt, et, sampling} = this.props;\r\n\r\n if (!bt.isSame(prevProps.bt) || !et.isSame(prevProps.et) || sampling !== prevProps.sampling) {\r\n this.setState({bt: bt, et: et, sampling: sampling});\r\n }\r\n }\r\n\r\n render() {\r\n const {bt, et, sampling, autoRefresh} = this.state;\r\n const {loading, onChange, size, totalCount, pageSize, page} = this.props;\r\n const filterChanged = bt !== this.props.bt || et !== this.props.et || sampling !== this.props.sampling;\r\n\r\n return (\r\n <WithCss useStyles={useStyles}>\r\n {(css) =>\r\n <Space.Compact size={size} className={css.styles.baseLayout}>\r\n <DateRangeInputConfirm\r\n mask={this.mask}\r\n className=\"ant-input-compact-item ant-input-compact-first-item\"\r\n fromValue={bt}\r\n toValue={et}\r\n defaultMode={DateRangeInputMode.ADVANCED}\r\n onChange={(fromValue, toValue) => {\r\n if (fromValue !== null && toValue !== null) {\r\n this.updateValues({bt: fromValue, et: toValue});\r\n }\r\n }}\r\n />\r\n <EnumValuePicker\r\n style={{minWidth: \"220px\"}}\r\n values={EdaSamplingType}\r\n translateValue\r\n translationPrefix={\"EdaSamplingType_\"}\r\n value={sampling}\r\n popupMatchSelectWidth\r\n onChange={(value) => this.updateValues({sampling: value as EdaSamplingType})}\r\n />\r\n <Popover\r\n content={\r\n <Checkbox\r\n checked={autoRefresh}\r\n onChange={e => this.updateValues({autoRefresh: e.target.checked})}\r\n >\r\n {i18n(\"Auto Refresh\")}\r\n </Checkbox>\r\n }\r\n placement={\"topLeft\"}\r\n trigger={[\"contextMenu\", \"hover\"]}\r\n >\r\n <Button\r\n color={filterChanged ? \"danger\" : \"primary\"}\r\n variant={\"solid\"}\r\n loading={loading}\r\n icon={\r\n <span>\r\n {autoRefresh && <AutoReloadIcon/>}\r\n {!autoRefresh && <ReloadOutlined/>}\r\n </span>\r\n }\r\n onClick={() => onChange(bt, et, sampling, page)}\r\n />\r\n </Popover>\r\n {pageSize < totalCount &&\r\n <>\r\n <div style={{flex: \"1 1 auto\"}}></div>\r\n <div className={\"paging\" + \" \" + (size ?? \"\")}>\r\n <DataGridPagination\r\n current={page}\r\n pageSize={pageSize}\r\n total={totalCount}\r\n onGoToPage={(page) => {\r\n const {bt, et, sampling} = this.state;\r\n this.props.onChange(bt, et, sampling, page);\r\n }}\r\n />\r\n </div>\r\n </>\r\n }\r\n </Space.Compact>\r\n }\r\n </WithCss>\r\n )\r\n }\r\n\r\n private updateValues(values: Partial<State>) {\r\n this.setState(values as any, () => {\r\n if (this.state.autoRefresh) {\r\n const {bt, et, sampling} = this.state;\r\n this.props.onChange(bt, et, sampling, this.props.page);\r\n }\r\n });\r\n }\r\n}"]}
@@ -0,0 +1,18 @@
1
+ import React from "react";
2
+ import { ScenarioData } from "../constants/edaTypes";
3
+ import { SizeType } from "antd/lib/config-provider/SizeContext";
4
+ import { Variant } from "antd/es/config-provider";
5
+ interface Props {
6
+ data: ScenarioData;
7
+ size?: SizeType;
8
+ variant?: Variant;
9
+ }
10
+ interface State {
11
+ }
12
+ export declare class EdaScenarioDetailPanel extends React.Component<Props, State> {
13
+ private readonly formRef;
14
+ componentDidMount(): void;
15
+ componentDidUpdate(prevProps: Readonly<Props>): void;
16
+ render(): React.JSX.Element;
17
+ }
18
+ export {};
@@ -0,0 +1,86 @@
1
+ import React from "react";
2
+ import { EdaAccessType } from "../constants/edaTypes";
3
+ import WithCss from "d2coreui/components/style/withCss";
4
+ import { createStyles } from "antd-style";
5
+ import i18n from "d2core/i18n/i18n";
6
+ import { Checkbox, Col, Form, Input, Row } from "antd";
7
+ import EnumValuePicker from "d2coreui/components/picker/enumValuePicker";
8
+ const useStyles = createStyles(({ css }) => {
9
+ return {
10
+ baseLayout: css `
11
+ .eda-detail-no-data {
12
+ }
13
+ `
14
+ };
15
+ });
16
+ export class EdaScenarioDetailPanel extends React.Component {
17
+ constructor() {
18
+ super(...arguments);
19
+ this.formRef = React.createRef();
20
+ }
21
+ componentDidMount() {
22
+ this.formRef.current?.setFieldsValue(this.props.data);
23
+ }
24
+ componentDidUpdate(prevProps) {
25
+ if (prevProps.data !== this.props.data) {
26
+ this.formRef.current?.resetFields();
27
+ this.formRef.current?.setFieldsValue(this.props.data);
28
+ }
29
+ }
30
+ render() {
31
+ const { data, size, variant } = this.props;
32
+ return (React.createElement(WithCss, { useStyles: useStyles }, (css) => React.createElement(Form, { ref: this.formRef, layout: "horizontal", style: { overflowX: "hidden" }, className: "record-config-form", size: size, variant: variant, labelCol: { sm: 24, md: 24, lg: 24, xl: 24, xxl: 24 } },
33
+ React.createElement(Row, { gutter: css.theme.padding, align: "bottom" },
34
+ React.createElement(Col, { flex: "1 1 auto" },
35
+ React.createElement("span", null,
36
+ "ID: ",
37
+ data.data.ID_SCENAR)),
38
+ React.createElement(Col, null,
39
+ React.createElement(Form.Item, { name: ["data", "ANO_PAIR"], valuePropName: "checked", getValueProps: (v) => ({ checked: v === 1 }), getValueFromEvent: (e) => (e.target.checked ? 1 : 0) },
40
+ React.createElement(Checkbox, { disabled: true }, i18n("Pair")))),
41
+ React.createElement(Col, null,
42
+ React.createElement(Form.Item, { name: ["data", "ANO_GRAFXY"], valuePropName: "checked", getValueProps: (v) => ({ checked: v === 1 }), getValueFromEvent: (e) => (e.target.checked ? 1 : 0) },
43
+ React.createElement(Checkbox, { disabled: true }, i18n("GraphXY")))),
44
+ React.createElement(Col, null,
45
+ React.createElement(Form.Item, { name: ["data", "ANO_MATICA"], valuePropName: "checked", getValueProps: (v) => ({ checked: v === 1 }), getValueFromEvent: (e) => (e.target.checked ? 1 : 0) },
46
+ React.createElement(Checkbox, { disabled: true }, i18n("Matrix")))),
47
+ React.createElement(Col, null,
48
+ React.createElement(Form.Item, { required: true, name: ["data", "ANO_PLATNY"], valuePropName: "checked", getValueProps: (v) => ({ checked: v === 1 }), getValueFromEvent: (e) => (e.target.checked ? 1 : 0) },
49
+ React.createElement(Checkbox, { disabled: true }, i18n("Record Validity Indication"))))),
50
+ React.createElement(Row, { gutter: css.theme.padding, align: "bottom" },
51
+ React.createElement(Col, { span: 24 },
52
+ React.createElement(Form.Item, { required: true, name: ["data", "MENO"], label: i18n("Code") },
53
+ React.createElement(Input, { readOnly: true })))),
54
+ React.createElement(Row, { gutter: css.theme.padding },
55
+ React.createElement(Col, { span: 24 },
56
+ React.createElement(Form.Item, { required: true, name: ["data", "ZOBRAZ_MENO"], label: i18n("Name[Title]") },
57
+ React.createElement(Input, { readOnly: true })))),
58
+ React.createElement(Row, { gutter: css.theme.padding },
59
+ React.createElement(Col, { flex: "1 1 auto" },
60
+ React.createElement(Form.Item, { required: true, label: i18n("Access Type"), name: ["data", "PRIVATE"] },
61
+ React.createElement(EnumValuePicker, { open: false, values: EdaAccessType, translateValue: true, translationPrefix: "EdaAccessType_" }))),
62
+ React.createElement(Col, { flex: "0 0 auto" },
63
+ React.createElement(Form.Item, { label: i18n("Owner"), name: ["data", "AUTOR"] },
64
+ React.createElement(Input, { readOnly: true })))),
65
+ React.createElement(Row, { gutter: css.theme.padding },
66
+ React.createElement(Col, { flex: "1 1 auto" },
67
+ React.createElement(Form.Item, { name: ["data", "ANO_ZMENA"], valuePropName: "checked", getValueProps: (v) => ({ checked: v === 1 }), getValueFromEvent: (e) => (e.target.checked ? 1 : 0) },
68
+ React.createElement(Checkbox, { checked: true, disabled: true }, i18n("Scenario Access Definition")))),
69
+ React.createElement(Col, { flex: "0 0 auto" },
70
+ React.createElement(Form.Item, { required: true, name: ["data", "ANO_EDITACIA"], valuePropName: "checked", getValueProps: (v) => ({ checked: v === 1 }), getValueFromEvent: (e) => (e.target.checked ? 1 : 0) },
71
+ React.createElement(Checkbox, { disabled: true }, i18n("Scenario Access Items"))))),
72
+ React.createElement(Row, null,
73
+ React.createElement(Col, { span: 24 },
74
+ React.createElement(Form.Item, { name: ["data", "FILTER"], label: i18n("Filter") },
75
+ React.createElement(Input, { readOnly: true })))),
76
+ React.createElement(Row, { gutter: css.theme.padding },
77
+ React.createElement(Col, { span: 24 },
78
+ React.createElement(Form.Item, { name: ["data", "CESTA"], label: i18n("Path") },
79
+ React.createElement(Input, { readOnly: true })))),
80
+ React.createElement(Row, null,
81
+ React.createElement(Col, { span: 24 },
82
+ React.createElement(Form.Item, { name: ["data", "POPIS"], label: i18n("Note") },
83
+ React.createElement(Input.TextArea, { rows: 4, readOnly: true })))))));
84
+ }
85
+ }
86
+ //# sourceMappingURL=edaScenarioDetailPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edaScenarioDetailPanel.js","sourceRoot":"","sources":["../../../../../../coreui/components/edaManagerComponent/components/edaScenarioDetailPanel.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\r\nimport {EdaAccessType, ScenarioData} from \"../constants/edaTypes\";\r\nimport WithCss from \"d2coreui/components/style/withCss\";\r\nimport {createStyles} from \"antd-style\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport {Checkbox, Col, Form, FormInstance, Input, Row} from \"antd\";\r\nimport EnumValuePicker from \"d2coreui/components/picker/enumValuePicker\";\r\nimport {SizeType} from \"antd/lib/config-provider/SizeContext\";\r\nimport {Variant} from \"antd/es/config-provider\";\r\n\r\nconst useStyles = createStyles(({css},) => {\r\n return {\r\n baseLayout: css`\r\n .eda-detail-no-data {\r\n }\r\n `\r\n }\r\n});\r\n\r\ninterface Props {\r\n data: ScenarioData\r\n\r\n size?: SizeType\r\n variant?: Variant\r\n}\r\n\r\ninterface State {\r\n\r\n}\r\n\r\nexport class EdaScenarioDetailPanel extends React.Component<Props, State> {\r\n private readonly formRef = React.createRef<FormInstance<ScenarioData>>();\r\n\r\n componentDidMount() {\r\n this.formRef.current?.setFieldsValue(this.props.data);\r\n }\r\n\r\n componentDidUpdate(prevProps: Readonly<Props>) {\r\n if (prevProps.data !== this.props.data) {\r\n this.formRef.current?.resetFields();\r\n this.formRef.current?.setFieldsValue(this.props.data);\r\n }\r\n }\r\n\r\n render() {\r\n const {data, size, variant} = this.props;\r\n\r\n return (\r\n <WithCss useStyles={useStyles}>\r\n {(css) =>\r\n <Form<ScenarioData>\r\n ref={this.formRef}\r\n layout={\"horizontal\"}\r\n style={{overflowX: \"hidden\"}}\r\n className={\"record-config-form\"}\r\n size={size}\r\n variant={variant}\r\n labelCol={{sm: 24, md: 24, lg: 24, xl: 24, xxl: 24}}\r\n >\r\n <Row gutter={css.theme.padding} align={\"bottom\"}>\r\n <Col flex={\"1 1 auto\"}>\r\n <span>ID: {data.data.ID_SCENAR}</span>\r\n </Col>\r\n <Col>\r\n <Form.Item\r\n name={[\"data\", \"ANO_PAIR\"]}\r\n valuePropName={\"checked\"}\r\n getValueProps={(v) => ({checked: v === 1})}\r\n getValueFromEvent={(e) => (e.target.checked ? 1 : 0)}\r\n >\r\n <Checkbox disabled>{i18n(\"Pair\")}</Checkbox>\r\n </Form.Item>\r\n </Col>\r\n <Col>\r\n <Form.Item\r\n name={[\"data\", \"ANO_GRAFXY\"]}\r\n valuePropName={\"checked\"}\r\n getValueProps={(v) => ({checked: v === 1})}\r\n getValueFromEvent={(e) => (e.target.checked ? 1 : 0)}\r\n >\r\n <Checkbox disabled>{i18n(\"GraphXY\")}</Checkbox>\r\n </Form.Item>\r\n </Col>\r\n <Col>\r\n <Form.Item\r\n name={[\"data\", \"ANO_MATICA\"]}\r\n valuePropName={\"checked\"}\r\n getValueProps={(v) => ({checked: v === 1})}\r\n getValueFromEvent={(e) => (e.target.checked ? 1 : 0)}\r\n >\r\n <Checkbox disabled>{i18n(\"Matrix\")}</Checkbox>\r\n </Form.Item>\r\n </Col>\r\n <Col>\r\n <Form.Item\r\n required\r\n name={[\"data\", \"ANO_PLATNY\"]}\r\n valuePropName={\"checked\"}\r\n getValueProps={(v) => ({checked: v === 1})}\r\n getValueFromEvent={(e) => (e.target.checked ? 1 : 0)}\r\n >\r\n <Checkbox disabled>{i18n(\"Record Validity Indication\")}</Checkbox>\r\n </Form.Item>\r\n </Col>\r\n </Row>\r\n <Row gutter={css.theme.padding} align={\"bottom\"}>\r\n <Col span={24}>\r\n <Form.Item\r\n required\r\n name={[\"data\", \"MENO\"]}\r\n label={i18n(\"Code\")}\r\n >\r\n <Input readOnly/>\r\n </Form.Item>\r\n </Col>\r\n </Row>\r\n <Row gutter={css.theme.padding}>\r\n <Col span={24}>\r\n <Form.Item\r\n required\r\n name={[\"data\", \"ZOBRAZ_MENO\"]}\r\n label={i18n(\"Name[Title]\")}\r\n >\r\n <Input readOnly/>\r\n </Form.Item>\r\n </Col>\r\n </Row>\r\n <Row gutter={css.theme.padding}>\r\n <Col flex={\"1 1 auto\"}>\r\n <Form.Item\r\n required\r\n label={i18n(\"Access Type\")}\r\n name={[\"data\", \"PRIVATE\"]}\r\n >\r\n <EnumValuePicker\r\n open={false}\r\n values={EdaAccessType}\r\n translateValue\r\n translationPrefix={\"EdaAccessType_\"}\r\n />\r\n </Form.Item>\r\n </Col>\r\n <Col flex={\"0 0 auto\"}>\r\n <Form.Item\r\n label={i18n(\"Owner\")}\r\n name={[\"data\", \"AUTOR\"]}\r\n >\r\n <Input readOnly/>\r\n </Form.Item>\r\n </Col>\r\n </Row>\r\n <Row gutter={css.theme.padding}>\r\n <Col flex={\"1 1 auto\"}>\r\n <Form.Item\r\n name={[\"data\", \"ANO_ZMENA\"]}\r\n valuePropName={\"checked\"}\r\n getValueProps={(v) => ({checked: v === 1})}\r\n getValueFromEvent={(e) => (e.target.checked ? 1 : 0)}\r\n >\r\n <Checkbox checked disabled>{i18n(\"Scenario Access Definition\")}</Checkbox>\r\n </Form.Item>\r\n </Col>\r\n <Col flex={\"0 0 auto\"}>\r\n <Form.Item\r\n required\r\n name={[\"data\", \"ANO_EDITACIA\"]}\r\n valuePropName={\"checked\"}\r\n getValueProps={(v) => ({checked: v === 1})}\r\n getValueFromEvent={(e) => (e.target.checked ? 1 : 0)}\r\n >\r\n <Checkbox disabled>{i18n(\"Scenario Access Items\")}</Checkbox>\r\n </Form.Item>\r\n </Col>\r\n </Row>\r\n <Row>\r\n <Col span={24}>\r\n <Form.Item\r\n name={[\"data\", \"FILTER\"]} //TODO\r\n label={i18n(\"Filter\")}\r\n >\r\n <Input readOnly />\r\n </Form.Item>\r\n </Col>\r\n </Row>\r\n <Row gutter={css.theme.padding}>\r\n <Col span={24}>\r\n <Form.Item\r\n name={[\"data\", \"CESTA\"]}\r\n label={i18n(\"Path\")}\r\n >\r\n <Input readOnly/>\r\n </Form.Item>\r\n </Col>\r\n </Row>\r\n <Row>\r\n <Col span={24}>\r\n <Form.Item\r\n name={[\"data\", \"POPIS\"]}\r\n label={i18n(\"Note\")}\r\n >\r\n <Input.TextArea rows={4} readOnly/>\r\n </Form.Item>\r\n </Col>\r\n </Row>\r\n </Form>\r\n }\r\n </WithCss>\r\n )\r\n }\r\n\r\n\r\n}"]}
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import { BaseDataProps } from "./edaDataBasePanel";
3
+ declare const _default: (props: Omit<BaseDataProps, "rangeContext">) => React.JSX.Element;
4
+ export default _default;
@@ -0,0 +1,73 @@
1
+ import React from "react";
2
+ import ExtendedDataGrid from "d2coreui/components/grid/extendedDataGrid";
3
+ import { Empty } from "antd";
4
+ import i18n from "d2core/i18n/i18n";
5
+ import { EdaBaseDataPanel } from "./edaDataBasePanel";
6
+ import { withSharedSampleRangeContext } from "../context/sharedSampleRangeWrapper";
7
+ class EdaTablePanel extends EdaBaseDataPanel {
8
+ constructor(props) {
9
+ super(props);
10
+ }
11
+ getDefaultDataBaseState() {
12
+ return {
13
+ columnDefs: [],
14
+ data: []
15
+ };
16
+ }
17
+ onDataLoaded(data, vectors) {
18
+ const ids = Object.keys(data).map(Number);
19
+ const rowCount = ids.length > 0 ? data[ids[0]].length : 0;
20
+ const result = Array.from({ length: rowCount }, (_, index) => {
21
+ const row = { id: index };
22
+ for (let id of ids) {
23
+ const vectorValue = data[id][index];
24
+ if (vectorValue) {
25
+ row[id] = vectorValue.Value;
26
+ if (!row.time && vectorValue.Value.valueTime) {
27
+ row.time = vectorValue.Value.valueTime;
28
+ }
29
+ }
30
+ }
31
+ return row;
32
+ });
33
+ this.setState({ data: result, columnDefs: getColumnDefs(vectors) });
34
+ }
35
+ renderContent(theme) {
36
+ const { columnDefs, data } = this.state;
37
+ return (React.createElement("div", null,
38
+ React.createElement(ExtendedDataGrid, { columnDefs: columnDefs, onLoadData: callback => {
39
+ callback(1);
40
+ }, defaultGridConfiguration: {
41
+ pageSize: -1,
42
+ }, onGridReady: (params) => {
43
+ this.gridApi = params.api;
44
+ }, rowData: data, tablePanelStyle: { marginTop: theme.paddingXXS }, panelStyle: { padding: `0 ${theme.paddingXXS}px` }, settingsMenu: {
45
+ renderer: (menuElements) => menuElements.filter((e) => !["columnFilter", "columnsConfig"].includes(e.key))
46
+ }, toolbar: {
47
+ hideRecordCount: true,
48
+ }, search: {
49
+ hidden: true,
50
+ searchButtonHidden: true,
51
+ }, noRecordsOverlayRenderer: () => React.createElement(Empty, { description: i18n("No records found."), styles: { image: { height: "8vh" } } }), rowSelection: "multiple", singleClickEdit: true, stopEditingWhenCellsLoseFocus: true, enterNavigatesVerticallyAfterEdit: true })));
52
+ }
53
+ }
54
+ export default withSharedSampleRangeContext(EdaTablePanel);
55
+ function getColumnDefs(ids) {
56
+ return [
57
+ {
58
+ field: "time",
59
+ colId: "time",
60
+ type: ["dateTimeColumn"],
61
+ headerName: i18n("Vector Time"),
62
+ group: i18n("Basic Columns")
63
+ },
64
+ ...ids.map((v) => ({
65
+ field: `${v.ID}.value`,
66
+ colId: String(v.ID),
67
+ type: ["numberColumn"],
68
+ headerName: v.DisplayName,
69
+ group: i18n("Basic Columns"),
70
+ }))
71
+ ];
72
+ }
73
+ //# sourceMappingURL=edaTablePanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edaTablePanel.js","sourceRoot":"","sources":["../../../../../../coreui/components/edaManagerComponent/components/edaTablePanel.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\r\nimport ExtendedDataGrid from \"d2coreui/components/grid/extendedDataGrid\";\r\nimport {Empty} from \"antd\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport {GridApi, GridReadyEvent} from \"ag-grid-community\";\r\nimport {DataGridColDef} from \"d2coreui/components/grid/dataGrid\";\r\nimport {SD_EM_Tree_Item} from \"../../../../api/eda/generated/structures\";\r\nimport {AliasToken} from \"antd/es/theme/interface\";\r\nimport {BaseDataProps, BaseDataState, EdaBaseDataPanel} from \"./edaDataBasePanel\";\r\nimport {withSharedSampleRangeContext} from \"../context/sharedSampleRangeWrapper\";\r\nimport {VectorValue} from \"../../../../api/eda/edaManagerApi\";\r\nimport {UnixTime} from \"d2jsapi\";\r\nimport {UnivalValue} from \"d2jsapi/dist/unival\";\r\n\r\ninterface GridRow {\r\n id: number\r\n time?: UnixTime\r\n\r\n [id: number]: UnivalValue\r\n}\r\n\r\ninterface State extends BaseDataState {\r\n columnDefs: DataGridColDef[]\r\n data: GridRow[]\r\n}\r\n\r\nclass EdaTablePanel extends EdaBaseDataPanel<BaseDataProps, State> {\r\n //@ts-ignore\r\n private gridApi?: GridApi;\r\n\r\n constructor(props: Readonly<BaseDataProps>) {\r\n super(props);\r\n }\r\n\r\n protected getDefaultDataBaseState(): Omit<State, keyof BaseDataState> {\r\n return {\r\n columnDefs: [],\r\n data: []\r\n };\r\n }\r\n\r\n protected onDataLoaded(data: {[id: number]: VectorValue[]}, vectors: SD_EM_Tree_Item[]) {\r\n const ids = Object.keys(data).map(Number);\r\n const rowCount = ids.length > 0 ? data[ids[0]].length : 0;\r\n const result = Array.from({length: rowCount}, (_, index): GridRow => {\r\n const row: GridRow = {id: index};\r\n\r\n for (let id of ids) {\r\n const vectorValue = data[id][index];\r\n\r\n if (vectorValue) {\r\n row[id] = vectorValue.Value;\r\n\r\n if (!row.time && vectorValue.Value.valueTime) {\r\n row.time = vectorValue.Value.valueTime;\r\n }\r\n }\r\n }\r\n\r\n return row;\r\n });\r\n\r\n this.setState({data: result, columnDefs: getColumnDefs(vectors)});\r\n }\r\n\r\n protected renderContent(theme: AliasToken): React.ReactElement {\r\n const {columnDefs, data} = this.state;\r\n\r\n return (\r\n <div>\r\n <ExtendedDataGrid\r\n columnDefs={columnDefs}\r\n onLoadData={callback => {\r\n callback(1)\r\n }}\r\n defaultGridConfiguration={{\r\n pageSize: -1,\r\n }}\r\n onGridReady={(params: GridReadyEvent) => {\r\n this.gridApi = params.api;\r\n }}\r\n rowData={data}\r\n tablePanelStyle={{marginTop: theme.paddingXXS}}\r\n panelStyle={{padding: `0 ${theme.paddingXXS}px`}}\r\n settingsMenu={{\r\n renderer: (menuElements) => menuElements.filter((e) => ![\"columnFilter\", \"columnsConfig\"].includes(e.key as string))\r\n }}\r\n toolbar={{\r\n hideRecordCount: true,\r\n }}\r\n search={{\r\n hidden: true,\r\n searchButtonHidden: true,\r\n }}\r\n noRecordsOverlayRenderer={() =>\r\n <Empty description={i18n(\"No records found.\")} styles={{image: {height: \"8vh\"}}}/>\r\n }\r\n rowSelection=\"multiple\"\r\n singleClickEdit\r\n stopEditingWhenCellsLoseFocus\r\n enterNavigatesVerticallyAfterEdit\r\n />\r\n </div>\r\n )\r\n }\r\n}\r\n\r\nexport default withSharedSampleRangeContext(EdaTablePanel);\r\n\r\nfunction getColumnDefs(ids: SD_EM_Tree_Item[]): DataGridColDef[] {\r\n return [\r\n {\r\n field: \"time\",\r\n colId: \"time\",\r\n type: [\"dateTimeColumn\"],\r\n headerName: i18n(\"Vector Time\"),\r\n group: i18n(\"Basic Columns\")\r\n },\r\n ...ids.map((v): DataGridColDef => ({\r\n field: `${v.ID}.value`,\r\n colId: String(v.ID),\r\n type: [\"numberColumn\"],\r\n headerName: v.DisplayName,\r\n group: i18n(\"Basic Columns\"),\r\n }))\r\n ]\r\n}"]}
@@ -0,0 +1,34 @@
1
+ import React from "react";
2
+ import { SizeType } from "antd/lib/config-provider/SizeContext";
3
+ import dayjs from "d2core/dayjs";
4
+ import { StepType } from "../constants/edaTypes";
5
+ interface Props {
6
+ start: dayjs.Dayjs;
7
+ end: dayjs.Dayjs;
8
+ step: StepType;
9
+ size?: SizeType;
10
+ disabled?: boolean;
11
+ onTimeWindowChanged?: (bt: dayjs.Dayjs, et: dayjs.Dayjs, step: StepType) => void;
12
+ }
13
+ interface State {
14
+ bt: dayjs.Dayjs;
15
+ et: dayjs.Dayjs;
16
+ step: StepType;
17
+ }
18
+ export declare class EdaTimeWindowPickerPanel extends React.Component<Props, State> {
19
+ private mask;
20
+ constructor(props: Readonly<Props>);
21
+ componentDidUpdate(prevProps: Readonly<Props>): void;
22
+ render(): React.JSX.Element;
23
+ private toStart;
24
+ private toEnd;
25
+ private previous;
26
+ private next;
27
+ private onStepUpdated;
28
+ private timeWindowChanged;
29
+ }
30
+ export declare function getRange(start: dayjs.Dayjs, end: dayjs.Dayjs, step: StepType): {
31
+ bt: dayjs.Dayjs;
32
+ et: dayjs.Dayjs;
33
+ };
34
+ export {};
@@ -0,0 +1,202 @@
1
+ import React from "react";
2
+ import WithCss from "d2coreui/components/style/withCss";
3
+ import { createStyles } from "antd-style";
4
+ import { LocaleHolder } from "d2core/i18n/localeHolder";
5
+ import { Button, Space } from "antd";
6
+ import { LeftOutlined, RightOutlined, VerticalLeftOutlined, VerticalRightOutlined } from "@ant-design/icons";
7
+ import EnumValuePicker from "d2coreui/components/picker/enumValuePicker";
8
+ import { StepType } from "../constants/edaTypes";
9
+ const useStyles = createStyles(({ css, token }) => {
10
+ return {
11
+ baseLayout: css `
12
+ .segmented {
13
+ border: 1px solid ${token.colorBorder};
14
+ }
15
+ .segmented.ant-segmented-sm {
16
+ height: 24px;
17
+ }
18
+ .segmented {
19
+ height: 32px;
20
+ }
21
+ .segmented.ant-segmented-lg {
22
+ height: 40px;
23
+ }
24
+
25
+ .ant-segmented.ant-segmented-sm .ant-segmented-item-label {
26
+ min-height: 18px;
27
+ line-height: 18px;
28
+ }
29
+ .ant-segmented .ant-segmented-item-label {
30
+ min-height: 26px;
31
+ line-height: 26px;
32
+ }
33
+ .ant-segmented.ant-segmented-lg .ant-segmented-item-label {
34
+ min-height: 34px;
35
+ line-height: 34px;
36
+ }
37
+
38
+ .ant-space-addon {
39
+ white-space: nowrap;
40
+ }
41
+ `,
42
+ };
43
+ });
44
+ export class EdaTimeWindowPickerPanel extends React.Component {
45
+ constructor(props) {
46
+ super(props);
47
+ this.mask = LocaleHolder.getDateTimeFormat(true, false, false);
48
+ const { bt, et } = getRange(props.start, props.end, props.step);
49
+ this.state = {
50
+ bt: bt,
51
+ et: et,
52
+ step: props.step,
53
+ };
54
+ this.toStart = this.toStart.bind(this);
55
+ this.toEnd = this.toEnd.bind(this);
56
+ this.previous = this.previous.bind(this);
57
+ this.next = this.next.bind(this);
58
+ this.onStepUpdated = this.onStepUpdated.bind(this);
59
+ this.timeWindowChanged = this.timeWindowChanged.bind(this);
60
+ }
61
+ componentDidUpdate(prevProps) {
62
+ if (!prevProps.start.isSame(this.props.start) || !prevProps.end.isSame(this.props.end)) {
63
+ const { bt, et } = getRange(this.props.start, this.props.end, this.state.step);
64
+ this.setState({ bt, et }, this.timeWindowChanged);
65
+ }
66
+ if (prevProps.step !== this.props.step) {
67
+ const { bt, et } = getRange(this.props.start, this.props.end, this.props.step);
68
+ this.setState({ bt, et, step: this.props.step }, this.timeWindowChanged);
69
+ }
70
+ }
71
+ render() {
72
+ const { size, start, end, disabled } = this.props;
73
+ const { bt, et, step } = this.state;
74
+ return (React.createElement(WithCss, { useStyles: useStyles }, (css) => React.createElement(Space, { size: size, className: css.styles.baseLayout },
75
+ React.createElement(Space.Compact, { size: size },
76
+ React.createElement(Button, { icon: React.createElement(VerticalRightOutlined, null), disabled: bt.isSameOrBefore(start) || disabled, onClick: this.toStart }),
77
+ React.createElement(Button, { icon: React.createElement(LeftOutlined, null), disabled: bt.isSameOrBefore(start) || disabled, onClick: this.previous }),
78
+ React.createElement(Space.Addon, null, bt.format(this.mask)),
79
+ React.createElement(Space.Addon, null, "\u27F7"),
80
+ React.createElement(Space.Addon, null, et.format(this.mask)),
81
+ React.createElement(Button, { icon: React.createElement(RightOutlined, null), disabled: et.isSameOrAfter(end) || disabled, onClick: this.next }),
82
+ React.createElement(Button, { icon: React.createElement(VerticalLeftOutlined, null), disabled: et.isSameOrAfter(end) || disabled, onClick: this.toEnd })),
83
+ React.createElement(EnumValuePicker, { values: StepType, value: step, style: { width: '150px' }, translateValue: true, size: size, popupMatchSelectWidth: true, onChange: (value) => {
84
+ if (value !== undefined) {
85
+ this.onStepUpdated(value);
86
+ }
87
+ } }))));
88
+ }
89
+ toStart() {
90
+ const { start } = this.props;
91
+ const { step } = this.state;
92
+ const unit = stepToDayJsType(step);
93
+ if (!unit) {
94
+ return;
95
+ }
96
+ this.setState({ bt: start, et: start.endOf(unit) }, this.timeWindowChanged);
97
+ }
98
+ toEnd() {
99
+ const { end } = this.props;
100
+ const { step } = this.state;
101
+ const unit = stepToDayJsType(step);
102
+ if (!unit) {
103
+ return;
104
+ }
105
+ this.setState({ bt: end.startOf(unit), et: end }, this.timeWindowChanged);
106
+ }
107
+ previous() {
108
+ const { start } = this.props;
109
+ const { step } = this.state;
110
+ const unit = stepToDayJsType(step);
111
+ let bt = this.state.bt;
112
+ let et;
113
+ if (!unit) {
114
+ return;
115
+ }
116
+ bt = bt.subtract(1, 'minute').startOf(unit);
117
+ et = bt.endOf(unit);
118
+ if (bt.isBefore(start)) {
119
+ bt = start;
120
+ }
121
+ this.setState({ bt, et }, this.timeWindowChanged);
122
+ }
123
+ next() {
124
+ const { end } = this.props;
125
+ const { step } = this.state;
126
+ const unit = stepToDayJsType(step);
127
+ let bt;
128
+ let et = this.state.et;
129
+ if (!unit) {
130
+ return;
131
+ }
132
+ et = et.add(1, 'minute').endOf(unit);
133
+ bt = et.startOf(unit);
134
+ if (et.isAfter(end)) {
135
+ et = end;
136
+ }
137
+ this.setState({ bt, et }, this.timeWindowChanged);
138
+ }
139
+ onStepUpdated(step) {
140
+ const { start, end } = this.props;
141
+ const unit = stepToDayJsType(step);
142
+ let bt;
143
+ let et;
144
+ if (unit) {
145
+ bt = this.state.bt.startOf(unit);
146
+ et = bt.endOf(unit);
147
+ if (bt.isBefore(start)) {
148
+ bt = start;
149
+ }
150
+ if (et.isAfter(end)) {
151
+ et = end;
152
+ }
153
+ }
154
+ else {
155
+ bt = start;
156
+ et = end;
157
+ }
158
+ this.setState({ step, bt, et }, this.timeWindowChanged);
159
+ }
160
+ timeWindowChanged() {
161
+ const { bt, et, step } = this.state;
162
+ this.props.onTimeWindowChanged?.(bt, et, step);
163
+ }
164
+ }
165
+ function stepToDayJsType(step) {
166
+ switch (step) {
167
+ case StepType.Hourly:
168
+ return 'hour';
169
+ case StepType.Daily:
170
+ return 'day';
171
+ case StepType.Weekly:
172
+ return 'week';
173
+ case StepType.Monthly:
174
+ return 'month';
175
+ case StepType.Yearly:
176
+ return 'year';
177
+ case StepType.WholeInterval:
178
+ return null;
179
+ }
180
+ }
181
+ export function getRange(start, end, step) {
182
+ const unit = stepToDayJsType(step);
183
+ if (!unit) {
184
+ return {
185
+ bt: start,
186
+ et: end,
187
+ };
188
+ }
189
+ let bt = start.startOf(unit);
190
+ let et = start.endOf(unit);
191
+ if (bt.isBefore(start)) {
192
+ bt = start;
193
+ }
194
+ if (et.isAfter(end)) {
195
+ et = end;
196
+ }
197
+ return {
198
+ bt: bt,
199
+ et: et,
200
+ };
201
+ }
202
+ //# sourceMappingURL=edaTimeWindowPickerPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edaTimeWindowPickerPanel.js","sourceRoot":"","sources":["../../../../../../coreui/components/edaManagerComponent/components/edaTimeWindowPickerPanel.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\r\nimport WithCss from \"d2coreui/components/style/withCss\";\r\nimport {createStyles} from \"antd-style\";\r\nimport {LocaleHolder} from \"d2core/i18n/localeHolder\";\r\nimport {Button, Space} from \"antd\";\r\nimport {SizeType} from \"antd/lib/config-provider/SizeContext\";\r\nimport {LeftOutlined, RightOutlined, VerticalLeftOutlined, VerticalRightOutlined} from \"@ant-design/icons\";\r\nimport dayjs from \"d2core/dayjs\";\r\nimport {OpUnitType} from \"dayjs\";\r\nimport EnumValuePicker from \"d2coreui/components/picker/enumValuePicker\";\r\nimport {StepType} from \"../constants/edaTypes\";\r\n\r\nconst useStyles = createStyles(({css, token}) => {\r\n return {\r\n baseLayout: css`\r\n .segmented {\r\n border: 1px solid ${token.colorBorder};\r\n }\r\n .segmented.ant-segmented-sm {\r\n height: 24px;\r\n }\r\n .segmented {\r\n height: 32px;\r\n }\r\n .segmented.ant-segmented-lg {\r\n height: 40px;\r\n }\r\n\r\n .ant-segmented.ant-segmented-sm .ant-segmented-item-label {\r\n min-height: 18px;\r\n line-height: 18px;\r\n }\r\n .ant-segmented .ant-segmented-item-label {\r\n min-height: 26px;\r\n line-height: 26px;\r\n }\r\n .ant-segmented.ant-segmented-lg .ant-segmented-item-label {\r\n min-height: 34px;\r\n line-height: 34px;\r\n }\r\n \r\n .ant-space-addon {\r\n white-space: nowrap;\r\n }\r\n `,\r\n }\r\n});\r\n\r\ninterface Props {\r\n start: dayjs.Dayjs\r\n end: dayjs.Dayjs\r\n step: StepType\r\n size?: SizeType\r\n disabled?: boolean\r\n\r\n onTimeWindowChanged?: (bt: dayjs.Dayjs, et: dayjs.Dayjs, step: StepType) => void\r\n}\r\n\r\ninterface State {\r\n bt: dayjs.Dayjs\r\n et: dayjs.Dayjs\r\n step: StepType\r\n}\r\n\r\nexport class EdaTimeWindowPickerPanel extends React.Component<Props, State> {\r\n private mask = LocaleHolder.getDateTimeFormat(true, false, false);\r\n\r\n constructor(props: Readonly<Props>) {\r\n super(props);\r\n const {bt, et} = getRange(props.start, props.end, props.step);\r\n\r\n this.state = {\r\n bt: bt,\r\n et: et,\r\n step: props.step,\r\n }\r\n\r\n this.toStart = this.toStart.bind(this);\r\n this.toEnd = this.toEnd.bind(this);\r\n this.previous = this.previous.bind(this);\r\n this.next = this.next.bind(this);\r\n this.onStepUpdated = this.onStepUpdated.bind(this);\r\n this.timeWindowChanged = this.timeWindowChanged.bind(this);\r\n }\r\n\r\n componentDidUpdate(prevProps: Readonly<Props>) {\r\n if (!prevProps.start.isSame(this.props.start) || !prevProps.end.isSame(this.props.end)) {\r\n const {bt, et} = getRange(this.props.start, this.props.end, this.state.step);\r\n this.setState({bt, et}, this.timeWindowChanged);\r\n }\r\n\r\n if (prevProps.step !== this.props.step) {\r\n const {bt, et} = getRange(this.props.start, this.props.end, this.props.step);\r\n this.setState({bt, et, step: this.props.step}, this.timeWindowChanged);\r\n }\r\n }\r\n\r\n render() {\r\n const {size, start, end, disabled} = this.props;\r\n const {bt, et, step} = this.state;\r\n\r\n return (\r\n <WithCss useStyles={useStyles}>\r\n {(css) =>\r\n <Space size={size} className={css.styles.baseLayout}>\r\n <Space.Compact size={size}>\r\n <Button icon={<VerticalRightOutlined/>} disabled={bt.isSameOrBefore(start) || disabled} onClick={this.toStart}/>\r\n <Button icon={<LeftOutlined/>} disabled={bt.isSameOrBefore(start) || disabled} onClick={this.previous}/>\r\n <Space.Addon>{bt.format(this.mask)}</Space.Addon>\r\n <Space.Addon>⟷</Space.Addon>\r\n <Space.Addon>{et.format(this.mask)}</Space.Addon>\r\n <Button icon={<RightOutlined/>} disabled={et.isSameOrAfter(end) || disabled} onClick={this.next}/>\r\n <Button icon={<VerticalLeftOutlined/>} disabled={et.isSameOrAfter(end) || disabled} onClick={this.toEnd}/>\r\n </Space.Compact>\r\n\r\n <EnumValuePicker\r\n values={StepType}\r\n value={step}\r\n style={{width: '150px'}}\r\n translateValue\r\n size={size}\r\n popupMatchSelectWidth\r\n onChange={(value) => {\r\n if (value !== undefined) {\r\n this.onStepUpdated(value as StepType);\r\n }\r\n }}\r\n />\r\n </Space>\r\n }\r\n </WithCss>\r\n )\r\n }\r\n\r\n private toStart() {\r\n const {start} = this.props;\r\n const {step} = this.state;\r\n const unit = stepToDayJsType(step);\r\n\r\n if (!unit) {\r\n return;\r\n }\r\n\r\n this.setState({bt: start, et: start.endOf(unit)}, this.timeWindowChanged);\r\n }\r\n\r\n private toEnd() {\r\n const {end} = this.props;\r\n const {step} = this.state;\r\n const unit = stepToDayJsType(step);\r\n\r\n if (!unit) {\r\n return;\r\n }\r\n\r\n this.setState({bt: end.startOf(unit), et: end}, this.timeWindowChanged);\r\n }\r\n\r\n private previous() {\r\n const {start} = this.props;\r\n const {step} = this.state;\r\n const unit = stepToDayJsType(step);\r\n let bt = this.state.bt;\r\n let et;\r\n\r\n if (!unit) {\r\n return;\r\n }\r\n\r\n bt = bt.subtract(1, 'minute').startOf(unit);\r\n et = bt.endOf(unit);\r\n\r\n if (bt.isBefore(start)) {\r\n bt = start;\r\n }\r\n\r\n this.setState({bt, et}, this.timeWindowChanged);\r\n }\r\n\r\n private next() {\r\n const {end} = this.props;\r\n const {step} = this.state;\r\n const unit = stepToDayJsType(step);\r\n let bt;\r\n let et = this.state.et;\r\n\r\n if (!unit) {\r\n return;\r\n }\r\n\r\n et = et.add(1, 'minute').endOf(unit);\r\n bt = et.startOf(unit);\r\n\r\n if (et.isAfter(end)) {\r\n et = end;\r\n }\r\n\r\n this.setState({bt, et}, this.timeWindowChanged);\r\n }\r\n\r\n private onStepUpdated(step: StepType) {\r\n const {start, end} = this.props;\r\n const unit = stepToDayJsType(step);\r\n let bt;\r\n let et;\r\n\r\n if (unit) {\r\n bt = this.state.bt.startOf(unit);\r\n et = bt.endOf(unit);\r\n\r\n if (bt.isBefore(start)) {\r\n bt = start;\r\n }\r\n if (et.isAfter(end)) {\r\n et = end;\r\n }\r\n } else {\r\n bt = start;\r\n et = end;\r\n }\r\n\r\n this.setState({step, bt, et}, this.timeWindowChanged);\r\n }\r\n\r\n private timeWindowChanged() {\r\n const {bt, et, step} = this.state;\r\n this.props.onTimeWindowChanged?.(bt, et, step);\r\n }\r\n}\r\n\r\nfunction stepToDayJsType(step: StepType): OpUnitType | null {\r\n switch (step) {\r\n case StepType.Hourly:\r\n return 'hour';\r\n case StepType.Daily:\r\n return 'day';\r\n case StepType.Weekly:\r\n return 'week';\r\n case StepType.Monthly:\r\n return 'month';\r\n case StepType.Yearly:\r\n return 'year';\r\n case StepType.WholeInterval:\r\n return null;\r\n }\r\n}\r\n\r\nexport function getRange(start: dayjs.Dayjs, end: dayjs.Dayjs, step: StepType) {\r\n const unit = stepToDayJsType(step);\r\n\r\n if (!unit) {\r\n return {\r\n bt: start,\r\n et: end,\r\n };\r\n }\r\n\r\n let bt: dayjs.Dayjs = start.startOf(unit);\r\n let et: dayjs.Dayjs = start.endOf(unit);\r\n\r\n if (bt.isBefore(start)) {\r\n bt = start;\r\n }\r\n if (et.isAfter(end)) {\r\n et = end;\r\n }\r\n\r\n return {\r\n bt: bt,\r\n et: et,\r\n }\r\n}\r\n"]}