d2aura 23.0.52 → 23.0.54

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.
@@ -3,6 +3,7 @@ import { EdaApi, EdaManagerRecord, EdaStepEnum, EdaVector } from "../../../../ap
3
3
  import { EdaManagerTimePanelConfiguration } from "../components/edaManagerTimePanel";
4
4
  import * as FlexLayout from "flexlayout-react";
5
5
  import { D2ChartPanelProps } from "../../d2Chart/d2ChartPanel";
6
+ import { ArchiveApi } from "../../../../api/archiveApi";
6
7
  export interface EdaManagerFilterToSave {
7
8
  version: number;
8
9
  currentVectors: EdaVector[];
@@ -12,12 +13,14 @@ export interface EdaManagerFilterToSave {
12
13
  autoRefresh: boolean;
13
14
  }
14
15
  export interface EdaManagerFilter {
15
- currentVectors: EdaVector[];
16
+ currentArchiveValues?: string[];
17
+ currentVectors?: EdaVector[];
16
18
  timePanelConfiguration: EdaManagerTimePanelConfiguration;
17
19
  }
18
20
  export interface EdaManagerAbstractPanelProps extends Omit<D2ChartPanelProps, "d2ChartSeries" | "d2ChartRecords" | "d2ChartCalendarRecords" | "loading"> {
19
21
  style?: React.CSSProperties;
20
- edaApi: EdaApi;
22
+ archiveApi?: ArchiveApi;
23
+ edaApi?: EdaApi;
21
24
  onVectorsLoaded?(loadedVectors: EdaManagerRecord[]): void;
22
25
  }
23
26
  export interface EdaManagerAbstractPanelState {
@@ -37,7 +40,8 @@ export default abstract class EdaManagerAbstractPanel<P extends EdaManagerAbstra
37
40
  componentDidMount(): void;
38
41
  protected saveFilter(): void;
39
42
  getFilterNameToSave(): string | undefined;
40
- protected getActiveVectors(): EdaVector[];
43
+ protected getActiveArchiveValues(): string[] | undefined;
44
+ protected getActiveVectors(): EdaVector[] | undefined;
41
45
  protected onReload(): void;
42
46
  onLoadVectors(): Promise<void>;
43
47
  private onLoadVector;
@@ -76,18 +76,29 @@ export default class EdaManagerAbstractPanel extends React.Component {
76
76
  getFilterNameToSave() {
77
77
  return undefined;
78
78
  }
79
+ getActiveArchiveValues() {
80
+ return this.state.currentFilter.currentArchiveValues;
81
+ }
79
82
  getActiveVectors() {
80
- return this.state.currentFilter.currentVectors.filter(vector => vector.active);
83
+ return this.state.currentFilter.currentVectors?.filter(vector => vector.active);
81
84
  }
82
85
  onReload() {
83
86
  this.edaManagerTablePanel?.onReload();
84
87
  this.edaManagerChartPanel?.onReload();
85
88
  }
86
89
  async onLoadVectors() {
90
+ const activeArchiveValues = this.getActiveArchiveValues();
87
91
  const activeVectors = this.getActiveVectors();
92
+ let loadedVectors = [];
93
+ let loadedCalendarVector;
88
94
  this.setState({ loading: true });
89
- const loadedVectors = await this.props.edaApi.loadVectors(activeVectors, this.state.currentFilter.timePanelConfiguration.selectedTimeFrom, this.state.currentFilter.timePanelConfiguration.selectedTimeTo, this.state.currentFilter.timePanelConfiguration.selectedStep);
90
- const loadedCalendarVector = await this.props.edaApi.loadCalendarVector(this.state.currentFilter.timePanelConfiguration.selectedTimeFrom, this.state.currentFilter.timePanelConfiguration.selectedTimeTo);
95
+ if (activeArchiveValues) {
96
+ loadedVectors = await this.props.archiveApi.getArchiveData(activeArchiveValues, this.state.currentFilter.timePanelConfiguration.selectedTimeFrom, this.state.currentFilter.timePanelConfiguration.selectedTimeTo, Number(this.state.currentFilter.timePanelConfiguration.selectedStep));
97
+ }
98
+ else if (activeVectors) {
99
+ loadedVectors = await this.props.edaApi.loadVectors(activeVectors, this.state.currentFilter.timePanelConfiguration.selectedTimeFrom, this.state.currentFilter.timePanelConfiguration.selectedTimeTo, this.state.currentFilter.timePanelConfiguration.selectedStep);
100
+ loadedCalendarVector = await this.props.edaApi.loadCalendarVector(this.state.currentFilter.timePanelConfiguration.selectedTimeFrom, this.state.currentFilter.timePanelConfiguration.selectedTimeTo);
101
+ }
91
102
  this.setState({
92
103
  loading: false,
93
104
  loadedVectors: loadedVectors,
@@ -113,7 +124,7 @@ export default class EdaManagerAbstractPanel extends React.Component {
113
124
  }
114
125
  renderTimePanel() {
115
126
  const pathsToOmit = ["timePanelConfiguration.autoRefresh"];
116
- this.state.currentFilter.currentVectors.forEach((_, index) => {
127
+ this.state.currentFilter.currentVectors?.forEach((_, index) => {
117
128
  pathsToOmit.push(`currentVectors[${index}].target`);
118
129
  });
119
130
  const filterChanged = !isEqual(omit(cloneDeep(this.state.currentFilter), pathsToOmit), omit(cloneDeep(this.state.loadedDataFilter), pathsToOmit));
@@ -139,14 +150,15 @@ export default class EdaManagerAbstractPanel extends React.Component {
139
150
  }
140
151
  flexLayoutFactory(node) {
141
152
  const component = node.getComponent();
153
+ const activeArchiveValues = this.getActiveArchiveValues();
142
154
  const activeVectors = this.getActiveVectors();
143
155
  if (component === "table") {
144
- return (React.createElement(EdaManagerTablePanel, { style: this.tabWrapperStyle, ref: component => this.edaManagerTablePanel = component, edaApi: this.props.edaApi, timePanel: this.renderTimePanel(), currentVectors: activeVectors, loadedVectors: this.state.loadedVectors, loading: this.state.loading, onReloadVectorData: code => {
156
+ return (React.createElement(EdaManagerTablePanel, { style: this.tabWrapperStyle, ref: component => this.edaManagerTablePanel = component, edaApi: this.props.edaApi, timePanel: this.renderTimePanel(), currentArchiveValues: activeArchiveValues, currentVectors: activeVectors, loadedVectors: this.state.loadedVectors, loading: this.state.loading, onReloadVectorData: code => {
145
157
  this.onLoadVector(code);
146
158
  } }));
147
159
  }
148
160
  else if (component === "chart") {
149
- const d2ChartSeries = activeVectors.map(value => {
161
+ const d2ChartSeries = activeVectors?.map(value => {
150
162
  return {
151
163
  id: value.id,
152
164
  code: value.code,
@@ -154,7 +166,13 @@ export default class EdaManagerAbstractPanel extends React.Component {
154
166
  colorIndex: value.colorIndex,
155
167
  lineStyle: value.lineStyle,
156
168
  };
157
- });
169
+ }) ?? activeArchiveValues?.map((value, index) => {
170
+ return {
171
+ id: index,
172
+ code: value,
173
+ name: value,
174
+ };
175
+ }) ?? [];
158
176
  return (React.createElement("div", { style: Object.assign({ display: "flex", flexDirection: "column", height: "100%" }, this.tabWrapperStyle) },
159
177
  this.renderTimePanel(),
160
178
  React.createElement(D2ChartPanel, { ref: component => this.edaManagerChartPanel = component, d2ChartSeries: d2ChartSeries, d2ChartRecords: this.state.loadedVectors, d2ChartCalendarRecords: this.state.loadedCalendarVector, loading: this.state.loading, compact: this.edaManagerChartPanelCompact, markArea: this.props.markArea, tableHeight: this.props.tableHeight, tableWrapperStyle: this.props.tableWrapperStyle })));
@@ -1 +1 @@
1
- {"version":3,"file":"edaManagerAbstractPanel.js","sourceRoot":"","sources":["../../../../../../coreui/components/edaManager/abstract/edaManagerAbstractPanel.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\r\nimport {EdaApi, EdaManagerRecord, EdaStepEnum, EdaVector} from \"../../../../api/edaApi\";\r\nimport EdaManagerTimePanel, {EdaManagerTimePanelConfiguration} from \"../components/edaManagerTimePanel\";\r\nimport * as FlexLayout from \"flexlayout-react\";\r\nimport dayjs from \"d2core/dayjs\";\r\nimport cloneDeep from \"lodash/cloneDeep\";\r\nimport debounce from \"lodash/debounce\";\r\nimport EdaManagerTablePanel from \"../components/edaManagerTablePanel\";\r\nimport D2ChartPanel, {D2ChartPanelProps} from \"../../d2Chart/d2ChartPanel\";\r\nimport {isEqual, omit} from \"lodash\";\r\nimport {D2ChartSeriesItem} from \"../../../../api/types/d2ChartTypes\";\r\n\r\nconst CONFIGURATION_VERSION = 2;\r\n\r\nexport interface EdaManagerFilterToSave {\r\n version: number\r\n currentVectors: EdaVector[]\r\n timeFrom: string\r\n timeTo: string;\r\n\r\n selectedStep: EdaStepEnum\r\n autoRefresh: boolean\r\n}\r\n\r\nexport interface EdaManagerFilter {\r\n currentVectors: EdaVector[]\r\n timePanelConfiguration: EdaManagerTimePanelConfiguration\r\n}\r\n\r\nexport interface EdaManagerAbstractPanelProps extends Omit<D2ChartPanelProps, \"d2ChartSeries\" | \"d2ChartRecords\" | \"d2ChartCalendarRecords\" | \"loading\"> {\r\n style?: React.CSSProperties\r\n\r\n edaApi: EdaApi\r\n\r\n onVectorsLoaded?(loadedVectors: EdaManagerRecord[]): void\r\n}\r\n\r\nexport interface EdaManagerAbstractPanelState {\r\n layoutModel: FlexLayout.Model\r\n loadedVectors: EdaManagerRecord[]\r\n loadedCalendarVector?: EdaManagerRecord[]\r\n loading: boolean\r\n\r\n currentFilter: EdaManagerFilter\r\n loadedDataFilter: EdaManagerFilter\r\n}\r\n\r\nexport default abstract class EdaManagerAbstractPanel<P extends EdaManagerAbstractPanelProps, S extends EdaManagerAbstractPanelState> extends React.Component<P, S> {\r\n private edaManagerTablePanel: EdaManagerTablePanel | null = null;\r\n private edaManagerChartPanel: D2ChartPanel | null = null;\r\n\r\n protected get initialFilter(): EdaManagerFilter {\r\n return {\r\n currentVectors: [],\r\n timePanelConfiguration: {\r\n selectedTimeFrom: dayjs().subtract(1, \"week\").startOf(\"day\"),\r\n selectedTimeTo: dayjs().subtract(1, \"week\").startOf(\"day\"),\r\n selectedStep: EdaStepEnum.DEFAULT_VALUE,\r\n autoRefresh: false,\r\n }\r\n }\r\n }\r\n\r\n protected initialState: Omit<EdaManagerAbstractPanelState, \"layoutModel\"> = {\r\n loadedVectors: [],\r\n loading: false,\r\n\r\n currentFilter: this.initialFilter,\r\n loadedDataFilter: cloneDeep(this.initialFilter),\r\n }\r\n\r\n protected constructor(props: Readonly<P>) {\r\n super(props);\r\n\r\n // @ts-ignore\r\n this.onLoadVectors = debounce(this.onLoadVectors.bind(this), 500);\r\n this.flexLayoutFactory = this.flexLayoutFactory.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n const filterNameToSave = this.getFilterNameToSave();\r\n\r\n if (filterNameToSave) {\r\n const item = localStorage.getItem(filterNameToSave);\r\n\r\n if (item) {\r\n try {\r\n const savedFilter: EdaManagerFilterToSave = JSON.parse(item);\r\n if (savedFilter.version === CONFIGURATION_VERSION) {\r\n const filter: EdaManagerFilter = {\r\n currentVectors: savedFilter.currentVectors,\r\n timePanelConfiguration: {\r\n selectedTimeFrom: dayjs(savedFilter.timeFrom),\r\n selectedTimeTo: dayjs(savedFilter.timeTo),\r\n selectedStep: savedFilter.selectedStep,\r\n autoRefresh: savedFilter.autoRefresh,\r\n }\r\n }\r\n\r\n this.setState({currentFilter: filter}, () => this.onLoadVectors());\r\n }\r\n } catch {\r\n }\r\n }\r\n }\r\n }\r\n\r\n protected saveFilter() {\r\n const filterNameToSave = this.getFilterNameToSave();\r\n\r\n if (filterNameToSave) {\r\n const filterToSave: EdaManagerFilterToSave = {\r\n version: CONFIGURATION_VERSION,\r\n currentVectors: this.state.currentFilter.currentVectors,\r\n timeFrom: this.state.currentFilter.timePanelConfiguration.selectedTimeFrom?.toString() ?? \"\",\r\n timeTo: this.state.currentFilter.timePanelConfiguration.selectedTimeTo?.toString() ?? \"\",\r\n selectedStep: this.state.currentFilter.timePanelConfiguration.selectedStep,\r\n autoRefresh: this.state.currentFilter.timePanelConfiguration.autoRefresh,\r\n }\r\n\r\n localStorage.setItem(filterNameToSave, JSON.stringify(filterToSave));\r\n }\r\n }\r\n\r\n getFilterNameToSave(): string | undefined {\r\n return undefined;\r\n }\r\n\r\n protected getActiveVectors(): EdaVector[] {\r\n return this.state.currentFilter.currentVectors.filter(vector => vector.active);\r\n }\r\n\r\n protected onReload() {\r\n this.edaManagerTablePanel?.onReload();\r\n this.edaManagerChartPanel?.onReload();\r\n }\r\n\r\n async onLoadVectors() {\r\n const activeVectors = this.getActiveVectors();\r\n this.setState({loading: true});\r\n\r\n const loadedVectors = await this.props.edaApi.loadVectors(\r\n activeVectors,\r\n this.state.currentFilter.timePanelConfiguration.selectedTimeFrom,\r\n this.state.currentFilter.timePanelConfiguration.selectedTimeTo,\r\n this.state.currentFilter.timePanelConfiguration.selectedStep,\r\n );\r\n\r\n const loadedCalendarVector = await this.props.edaApi.loadCalendarVector(\r\n this.state.currentFilter.timePanelConfiguration.selectedTimeFrom,\r\n this.state.currentFilter.timePanelConfiguration.selectedTimeTo,\r\n );\r\n\r\n this.setState({\r\n loading: false,\r\n loadedVectors: loadedVectors,\r\n loadedCalendarVector: loadedCalendarVector,\r\n loadedDataFilter: cloneDeep(this.state.currentFilter),\r\n }, () => this.onReload());\r\n\r\n this.props.onVectorsLoaded?.(loadedVectors);\r\n }\r\n\r\n private async onLoadVector(code: string) {\r\n const activeVectors = this.getActiveVectors();\r\n const currentVectorIndex = activeVectors.findIndex(value => value.code === code);\r\n\r\n if (currentVectorIndex >= 0) {\r\n const currentVector = activeVectors[currentVectorIndex];\r\n const loadedVectors = this.state.loadedVectors;\r\n\r\n const loadedVector = await this.props.edaApi.loadVectors(\r\n [currentVector],\r\n this.state.currentFilter.timePanelConfiguration.selectedTimeFrom,\r\n this.state.currentFilter.timePanelConfiguration.selectedTimeTo,\r\n this.state.currentFilter.timePanelConfiguration.selectedStep,\r\n );\r\n\r\n loadedVectors.forEach((value, index) => {\r\n value[`col${currentVectorIndex}`] = loadedVector[index].col0;\r\n });\r\n\r\n this.setState({loadedVectors: loadedVectors});\r\n\r\n this.edaManagerTablePanel?.refreshCells();\r\n this.edaManagerChartPanel?.onReload();\r\n }\r\n }\r\n\r\n protected renderTimePanel() {\r\n const pathsToOmit = [\"timePanelConfiguration.autoRefresh\"];\r\n this.state.currentFilter.currentVectors.forEach((_, index) => {\r\n pathsToOmit.push(`currentVectors[${index}].target`);\r\n });\r\n\r\n const filterChanged = !isEqual(\r\n omit(cloneDeep(this.state.currentFilter), pathsToOmit),\r\n omit(cloneDeep(this.state.loadedDataFilter), pathsToOmit)\r\n );\r\n\r\n return (\r\n <EdaManagerTimePanel\r\n loading={this.state.loading}\r\n configuration={this.state.currentFilter.timePanelConfiguration}\r\n filterChanged={filterChanged}\r\n onChangeConfiguration={configuration => {\r\n const currentFilter = this.state.currentFilter;\r\n const timePanelConfiguration = currentFilter.timePanelConfiguration;\r\n Object.assign(timePanelConfiguration, configuration);\r\n this.setState({currentFilter: currentFilter}, () => {\r\n this.saveFilter();\r\n if (timePanelConfiguration.autoRefresh) {\r\n this.onLoadVectors();\r\n }\r\n });\r\n }}\r\n onReload={() => {\r\n this.onLoadVectors();\r\n }}\r\n />\r\n );\r\n }\r\n\r\n protected get edaManagerChartPanelCompact(): boolean {\r\n return false;\r\n }\r\n\r\n protected get tabWrapperStyle(): React.CSSProperties {\r\n return {padding: \"8px 12px\"}\r\n }\r\n\r\n protected flexLayoutFactory(node: FlexLayout.TabNode): React.ReactNode {\r\n const component = node.getComponent();\r\n const activeVectors = this.getActiveVectors();\r\n if (component === \"table\") {\r\n return (\r\n <EdaManagerTablePanel\r\n style={this.tabWrapperStyle}\r\n ref={component => this.edaManagerTablePanel = component}\r\n edaApi={this.props.edaApi}\r\n timePanel={this.renderTimePanel()}\r\n currentVectors={activeVectors}\r\n loadedVectors={this.state.loadedVectors}\r\n loading={this.state.loading}\r\n onReloadVectorData={code => {\r\n this.onLoadVector(code);\r\n }}\r\n />\r\n );\r\n } else if (component === \"chart\") {\r\n const d2ChartSeries: D2ChartSeriesItem[] = activeVectors.map(value => {\r\n return {\r\n id: value.id,\r\n code: value.code,\r\n name: value.name,\r\n colorIndex: value.colorIndex,\r\n lineStyle: value.lineStyle,\r\n }\r\n });\r\n\r\n return (\r\n <div\r\n style={Object.assign(\r\n {display: \"flex\", flexDirection: \"column\", height: \"100%\"},\r\n this.tabWrapperStyle\r\n )}\r\n >\r\n {this.renderTimePanel()}\r\n <D2ChartPanel\r\n ref={component => this.edaManagerChartPanel = component}\r\n d2ChartSeries={d2ChartSeries}\r\n d2ChartRecords={this.state.loadedVectors}\r\n d2ChartCalendarRecords={this.state.loadedCalendarVector}\r\n loading={this.state.loading}\r\n compact={this.edaManagerChartPanelCompact}\r\n markArea={this.props.markArea}\r\n tableHeight={this.props.tableHeight}\r\n tableWrapperStyle={this.props.tableWrapperStyle}\r\n />\r\n </div>\r\n )\r\n }\r\n\r\n return <span>{component}</span>\r\n }\r\n\r\n render() {\r\n return (\r\n <div style={{minWidth: 100, minHeight: 500, ...this.props.style}}>\r\n <FlexLayout.Layout\r\n model={this.state.layoutModel}\r\n onModelChange={model => this.setState({layoutModel: model})}\r\n factory={this.flexLayoutFactory}\r\n />\r\n </div>\r\n );\r\n }\r\n\r\n}"]}
1
+ {"version":3,"file":"edaManagerAbstractPanel.js","sourceRoot":"","sources":["../../../../../../coreui/components/edaManager/abstract/edaManagerAbstractPanel.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\r\nimport {EdaApi, EdaManagerRecord, EdaStepEnum, EdaVector} from \"../../../../api/edaApi\";\r\nimport EdaManagerTimePanel, {EdaManagerTimePanelConfiguration} from \"../components/edaManagerTimePanel\";\r\nimport * as FlexLayout from \"flexlayout-react\";\r\nimport dayjs from \"d2core/dayjs\";\r\nimport cloneDeep from \"lodash/cloneDeep\";\r\nimport debounce from \"lodash/debounce\";\r\nimport EdaManagerTablePanel from \"../components/edaManagerTablePanel\";\r\nimport D2ChartPanel, {D2ChartPanelProps} from \"../../d2Chart/d2ChartPanel\";\r\nimport {isEqual, omit} from \"lodash\";\r\nimport {D2ChartSeriesItem} from \"../../../../api/types/d2ChartTypes\";\r\nimport {ArchiveApi} from \"../../../../api/archiveApi\";\r\n\r\nconst CONFIGURATION_VERSION = 2;\r\n\r\nexport interface EdaManagerFilterToSave {\r\n version: number\r\n currentVectors: EdaVector[]\r\n timeFrom: string\r\n timeTo: string;\r\n\r\n selectedStep: EdaStepEnum\r\n autoRefresh: boolean\r\n}\r\n\r\nexport interface EdaManagerFilter {\r\n currentArchiveValues?: string[]\r\n currentVectors?: EdaVector[]\r\n timePanelConfiguration: EdaManagerTimePanelConfiguration\r\n}\r\n\r\nexport interface EdaManagerAbstractPanelProps extends Omit<D2ChartPanelProps, \"d2ChartSeries\" | \"d2ChartRecords\" | \"d2ChartCalendarRecords\" | \"loading\"> {\r\n style?: React.CSSProperties\r\n\r\n archiveApi?: ArchiveApi\r\n edaApi?: EdaApi\r\n\r\n onVectorsLoaded?(loadedVectors: EdaManagerRecord[]): void\r\n}\r\n\r\nexport interface EdaManagerAbstractPanelState {\r\n layoutModel: FlexLayout.Model\r\n loadedVectors: EdaManagerRecord[]\r\n loadedCalendarVector?: EdaManagerRecord[]\r\n loading: boolean\r\n\r\n currentFilter: EdaManagerFilter\r\n loadedDataFilter: EdaManagerFilter\r\n}\r\n\r\nexport default abstract class EdaManagerAbstractPanel<P extends EdaManagerAbstractPanelProps, S extends EdaManagerAbstractPanelState> extends React.Component<P, S> {\r\n private edaManagerTablePanel: EdaManagerTablePanel | null = null;\r\n private edaManagerChartPanel: D2ChartPanel | null = null;\r\n\r\n protected get initialFilter(): EdaManagerFilter {\r\n return {\r\n currentVectors: [],\r\n timePanelConfiguration: {\r\n selectedTimeFrom: dayjs().subtract(1, \"week\").startOf(\"day\"),\r\n selectedTimeTo: dayjs().subtract(1, \"week\").startOf(\"day\"),\r\n selectedStep: EdaStepEnum.DEFAULT_VALUE,\r\n autoRefresh: false,\r\n }\r\n }\r\n }\r\n\r\n protected initialState: Omit<EdaManagerAbstractPanelState, \"layoutModel\"> = {\r\n loadedVectors: [],\r\n loading: false,\r\n\r\n currentFilter: this.initialFilter,\r\n loadedDataFilter: cloneDeep(this.initialFilter),\r\n }\r\n\r\n protected constructor(props: Readonly<P>) {\r\n super(props);\r\n\r\n // @ts-ignore\r\n this.onLoadVectors = debounce(this.onLoadVectors.bind(this), 500);\r\n this.flexLayoutFactory = this.flexLayoutFactory.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n const filterNameToSave = this.getFilterNameToSave();\r\n\r\n if (filterNameToSave) {\r\n const item = localStorage.getItem(filterNameToSave);\r\n\r\n if (item) {\r\n try {\r\n const savedFilter: EdaManagerFilterToSave = JSON.parse(item);\r\n if (savedFilter.version === CONFIGURATION_VERSION) {\r\n const filter: EdaManagerFilter = {\r\n currentVectors: savedFilter.currentVectors,\r\n timePanelConfiguration: {\r\n selectedTimeFrom: dayjs(savedFilter.timeFrom),\r\n selectedTimeTo: dayjs(savedFilter.timeTo),\r\n selectedStep: savedFilter.selectedStep,\r\n autoRefresh: savedFilter.autoRefresh,\r\n }\r\n }\r\n\r\n this.setState({currentFilter: filter}, () => this.onLoadVectors());\r\n }\r\n } catch {\r\n }\r\n }\r\n }\r\n }\r\n\r\n protected saveFilter() {\r\n const filterNameToSave = this.getFilterNameToSave();\r\n\r\n if (filterNameToSave) {\r\n const filterToSave: EdaManagerFilterToSave = {\r\n version: CONFIGURATION_VERSION,\r\n currentVectors: this.state.currentFilter.currentVectors!,\r\n timeFrom: this.state.currentFilter.timePanelConfiguration.selectedTimeFrom?.toString() ?? \"\",\r\n timeTo: this.state.currentFilter.timePanelConfiguration.selectedTimeTo?.toString() ?? \"\",\r\n selectedStep: this.state.currentFilter.timePanelConfiguration.selectedStep,\r\n autoRefresh: this.state.currentFilter.timePanelConfiguration.autoRefresh,\r\n }\r\n\r\n localStorage.setItem(filterNameToSave, JSON.stringify(filterToSave));\r\n }\r\n }\r\n\r\n getFilterNameToSave(): string | undefined {\r\n return undefined;\r\n }\r\n\r\n protected getActiveArchiveValues(): string[] | undefined {\r\n return this.state.currentFilter.currentArchiveValues;\r\n }\r\n\r\n protected getActiveVectors(): EdaVector[] | undefined {\r\n return this.state.currentFilter.currentVectors?.filter(vector => vector.active);\r\n }\r\n\r\n protected onReload() {\r\n this.edaManagerTablePanel?.onReload();\r\n this.edaManagerChartPanel?.onReload();\r\n }\r\n\r\n async onLoadVectors() {\r\n const activeArchiveValues = this.getActiveArchiveValues();\r\n const activeVectors = this.getActiveVectors();\r\n\r\n let loadedVectors: EdaManagerRecord[] = [];\r\n let loadedCalendarVector: EdaManagerRecord[] | undefined;\r\n\r\n this.setState({loading: true});\r\n\r\n if (activeArchiveValues) {\r\n loadedVectors = await this.props.archiveApi!.getArchiveData(\r\n activeArchiveValues,\r\n this.state.currentFilter.timePanelConfiguration.selectedTimeFrom,\r\n this.state.currentFilter.timePanelConfiguration.selectedTimeTo,\r\n Number(this.state.currentFilter.timePanelConfiguration.selectedStep),\r\n ) as EdaManagerRecord[];\r\n } else if (activeVectors) {\r\n loadedVectors = await this.props.edaApi!.loadVectors(\r\n activeVectors,\r\n this.state.currentFilter.timePanelConfiguration.selectedTimeFrom,\r\n this.state.currentFilter.timePanelConfiguration.selectedTimeTo,\r\n this.state.currentFilter.timePanelConfiguration.selectedStep,\r\n );\r\n\r\n loadedCalendarVector = await this.props.edaApi!.loadCalendarVector(\r\n this.state.currentFilter.timePanelConfiguration.selectedTimeFrom,\r\n this.state.currentFilter.timePanelConfiguration.selectedTimeTo,\r\n );\r\n }\r\n\r\n\r\n this.setState({\r\n loading: false,\r\n loadedVectors: loadedVectors,\r\n loadedCalendarVector: loadedCalendarVector,\r\n loadedDataFilter: cloneDeep(this.state.currentFilter),\r\n }, () => this.onReload());\r\n\r\n this.props.onVectorsLoaded?.(loadedVectors);\r\n }\r\n\r\n private async onLoadVector(code: string) {\r\n const activeVectors = this.getActiveVectors();\r\n const currentVectorIndex = activeVectors!.findIndex(value => value.code === code);\r\n\r\n if (currentVectorIndex >= 0) {\r\n const currentVector = activeVectors![currentVectorIndex];\r\n const loadedVectors = this.state.loadedVectors;\r\n\r\n const loadedVector = await this.props.edaApi!.loadVectors(\r\n [currentVector],\r\n this.state.currentFilter.timePanelConfiguration.selectedTimeFrom,\r\n this.state.currentFilter.timePanelConfiguration.selectedTimeTo,\r\n this.state.currentFilter.timePanelConfiguration.selectedStep,\r\n );\r\n\r\n loadedVectors.forEach((value, index) => {\r\n value[`col${currentVectorIndex}`] = loadedVector[index].col0;\r\n });\r\n\r\n this.setState({loadedVectors: loadedVectors});\r\n\r\n this.edaManagerTablePanel?.refreshCells();\r\n this.edaManagerChartPanel?.onReload();\r\n }\r\n }\r\n\r\n protected renderTimePanel() {\r\n const pathsToOmit = [\"timePanelConfiguration.autoRefresh\"];\r\n this.state.currentFilter.currentVectors?.forEach((_, index) => {\r\n pathsToOmit.push(`currentVectors[${index}].target`);\r\n });\r\n\r\n const filterChanged = !isEqual(\r\n omit(cloneDeep(this.state.currentFilter), pathsToOmit),\r\n omit(cloneDeep(this.state.loadedDataFilter), pathsToOmit)\r\n );\r\n\r\n return (\r\n <EdaManagerTimePanel\r\n loading={this.state.loading}\r\n configuration={this.state.currentFilter.timePanelConfiguration}\r\n filterChanged={filterChanged}\r\n onChangeConfiguration={configuration => {\r\n const currentFilter = this.state.currentFilter;\r\n const timePanelConfiguration = currentFilter.timePanelConfiguration;\r\n Object.assign(timePanelConfiguration, configuration);\r\n this.setState({currentFilter: currentFilter}, () => {\r\n this.saveFilter();\r\n if (timePanelConfiguration.autoRefresh) {\r\n this.onLoadVectors();\r\n }\r\n });\r\n }}\r\n onReload={() => {\r\n this.onLoadVectors();\r\n }}\r\n />\r\n );\r\n }\r\n\r\n protected get edaManagerChartPanelCompact(): boolean {\r\n return false;\r\n }\r\n\r\n protected get tabWrapperStyle(): React.CSSProperties {\r\n return {padding: \"8px 12px\"}\r\n }\r\n\r\n protected flexLayoutFactory(node: FlexLayout.TabNode): React.ReactNode {\r\n const component = node.getComponent();\r\n const activeArchiveValues = this.getActiveArchiveValues();\r\n const activeVectors = this.getActiveVectors();\r\n\r\n if (component === \"table\") {\r\n return (\r\n <EdaManagerTablePanel\r\n style={this.tabWrapperStyle}\r\n ref={component => this.edaManagerTablePanel = component}\r\n edaApi={this.props.edaApi}\r\n timePanel={this.renderTimePanel()}\r\n currentArchiveValues={activeArchiveValues}\r\n currentVectors={activeVectors}\r\n loadedVectors={this.state.loadedVectors}\r\n loading={this.state.loading}\r\n onReloadVectorData={code => {\r\n this.onLoadVector(code);\r\n }}\r\n />\r\n );\r\n } else if (component === \"chart\") {\r\n const d2ChartSeries: D2ChartSeriesItem[] =\r\n activeVectors?.map(value => {\r\n return {\r\n id: value.id,\r\n code: value.code,\r\n name: value.name,\r\n colorIndex: value.colorIndex,\r\n lineStyle: value.lineStyle,\r\n }\r\n }) ?? activeArchiveValues?.map((value, index) => {\r\n return {\r\n id: index,\r\n code: value,\r\n name: value,\r\n }\r\n }) ?? [];\r\n\r\n return (\r\n <div\r\n style={Object.assign(\r\n {display: \"flex\", flexDirection: \"column\", height: \"100%\"},\r\n this.tabWrapperStyle\r\n )}\r\n >\r\n {this.renderTimePanel()}\r\n <D2ChartPanel\r\n ref={component => this.edaManagerChartPanel = component}\r\n d2ChartSeries={d2ChartSeries}\r\n d2ChartRecords={this.state.loadedVectors}\r\n d2ChartCalendarRecords={this.state.loadedCalendarVector}\r\n loading={this.state.loading}\r\n compact={this.edaManagerChartPanelCompact}\r\n markArea={this.props.markArea}\r\n tableHeight={this.props.tableHeight}\r\n tableWrapperStyle={this.props.tableWrapperStyle}\r\n />\r\n </div>\r\n )\r\n }\r\n\r\n return <span>{component}</span>\r\n }\r\n\r\n render() {\r\n return (\r\n <div style={{minWidth: 100, minHeight: 500, ...this.props.style}}>\r\n <FlexLayout.Layout\r\n model={this.state.layoutModel}\r\n onModelChange={model => this.setState({layoutModel: model})}\r\n factory={this.flexLayoutFactory}\r\n />\r\n </div>\r\n );\r\n }\r\n\r\n}"]}
@@ -5,7 +5,8 @@ import { GridRowStyle } from "d2coreui/components/grid/cell/tableDefaultRowStyle
5
5
  import { GridApi } from "ag-grid-community";
6
6
  export interface EdaManagerAbstractTablePanelProps {
7
7
  style?: React.CSSProperties;
8
- currentVectors: EdaVector[];
8
+ currentArchiveValues?: string[];
9
+ currentVectors?: EdaVector[];
9
10
  loadedVectors: EdaManagerRecord[];
10
11
  loading?: boolean;
11
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"edaManagerAbstractTablePanel.js","sourceRoot":"","sources":["../../../../../../coreui/components/edaManager/abstract/edaManagerAbstractTablePanel.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\r\nimport {DataGridColDef, MenuElement} from \"d2coreui/components/grid/dataGrid\";\r\nimport {LoadingOutlined} from \"@ant-design/icons\";\r\nimport ExtendedDataGrid from \"d2coreui/components/grid/extendedDataGrid\";\r\nimport {Empty} from \"antd\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport {EdaManagerRecord, EdaVector} from \"../../../../api/edaApi\";\r\nimport {GridRowStyle} from \"d2coreui/components/grid/cell/tableDefaultRowStyleRules\";\r\nimport {SelectionChangedEvent, GridReadyEvent, GridApi} from \"ag-grid-community\";\r\n\r\nexport interface EdaManagerAbstractTablePanelProps {\r\n style?: React.CSSProperties\r\n currentVectors: EdaVector[],\r\n loadedVectors: EdaManagerRecord[],\r\n loading?: boolean\r\n}\r\n\r\nexport interface EdaManagerAbstractTablePanelState {\r\n columnDefs: DataGridColDef[]\r\n selectedData: EdaManagerRecord[]\r\n}\r\n\r\nexport default abstract class EdaManagerAbstractTablePanel<P extends EdaManagerAbstractTablePanelProps, S extends EdaManagerAbstractTablePanelState> extends React.Component<P, S> {\r\n protected gridApi?: GridApi;\r\n\r\n protected constructor(props: Readonly<P>) {\r\n super(props);\r\n\r\n this.onSelectionChanged = this.onSelectionChanged.bind(this);\r\n this.renderContextMenu = this.renderContextMenu.bind(this);\r\n this.onClickContextMenuItem = this.onClickContextMenuItem.bind(this);\r\n }\r\n\r\n protected initialState: EdaManagerAbstractTablePanelState = {\r\n columnDefs: this.getColumnDefs(),\r\n selectedData: [],\r\n }\r\n\r\n onReload() {\r\n this.setState({columnDefs: this.getColumnDefs()});\r\n }\r\n\r\n refreshCells() {\r\n this.gridApi?.refreshCells();\r\n }\r\n\r\n redrawRows() {\r\n this.gridApi?.redrawRows();\r\n }\r\n\r\n protected getDateTimeColumn(): DataGridColDef {\r\n return {\r\n headerName: i18n(\"Date\"),\r\n colId: \"date\",\r\n field: \"date\",\r\n type: \"dateTimeColumn\",\r\n initialWidth: 140,\r\n group: i18n(\"Basic Columns\"),\r\n }\r\n }\r\n\r\n abstract getColumnDefs(): DataGridColDef[];\r\n\r\n private onSelectionChanged(event: SelectionChangedEvent) {\r\n const selectedRows = event.api.getSelectedRows();\r\n this.setState({selectedData: selectedRows});\r\n }\r\n\r\n protected renderToolbarButtons(): React.ReactElement | undefined {\r\n return undefined;\r\n }\r\n\r\n protected renderAdditionalContent(): React.ReactNode | undefined {\r\n return undefined;\r\n }\r\n\r\n protected getRowStyle(data: EdaManagerRecord): GridRowStyle | undefined {\r\n data;\r\n return undefined;\r\n }\r\n\r\n protected renderContextMenu(originalMenuItems: MenuElement[]): MenuElement[] {\r\n return originalMenuItems;\r\n }\r\n\r\n protected onClickContextMenuItem(key: string) {\r\n key;\r\n }\r\n\r\n render() {\r\n const toolbarButtons = this.renderToolbarButtons();\r\n\r\n if (this.props.loading) {\r\n return (\r\n <div style={{display: \"flex\", flexDirection: \"column\", height: \"100%\", ...this.props.style}}>\r\n {toolbarButtons}\r\n <div style={{height: \"100%\", display: \"flex\", justifyContent: \"center\", alignItems: \"center\"}}>\r\n <LoadingOutlined/>\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <div style={{height: \"100%\"}}>\r\n {this.renderAdditionalContent()}\r\n <ExtendedDataGrid\r\n columnDefs={this.state.columnDefs}\r\n onLoadData={callback => {\r\n callback(this.props.loadedVectors.length)\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={this.props.loadedVectors}\r\n onSelectionChanged={this.onSelectionChanged}\r\n tablePanelStyle={{marginTop: 8}}\r\n panelStyle={this.props.style}\r\n toolbar={{\r\n hideRecordCount: true,\r\n toolbarButtons: toolbarButtons,\r\n }}\r\n search={{\r\n hidden: true,\r\n searchButtonHidden: true,\r\n }}\r\n contextMenu={{\r\n renderer: this.renderContextMenu,\r\n onClick: this.onClickContextMenuItem\r\n }}\r\n noRecordsOverlayRenderer={() =>\r\n <Empty description={i18n(\"No records found.\")} imageStyle={{height: \"8vh\"}}/>\r\n }\r\n getRowStyle={params => {\r\n const data = params.node.data as EdaManagerRecord;\r\n return this.getRowStyle(data);\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}"]}
1
+ {"version":3,"file":"edaManagerAbstractTablePanel.js","sourceRoot":"","sources":["../../../../../../coreui/components/edaManager/abstract/edaManagerAbstractTablePanel.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\r\nimport {DataGridColDef, MenuElement} from \"d2coreui/components/grid/dataGrid\";\r\nimport {LoadingOutlined} from \"@ant-design/icons\";\r\nimport ExtendedDataGrid from \"d2coreui/components/grid/extendedDataGrid\";\r\nimport {Empty} from \"antd\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport {EdaManagerRecord, EdaVector} from \"../../../../api/edaApi\";\r\nimport {GridRowStyle} from \"d2coreui/components/grid/cell/tableDefaultRowStyleRules\";\r\nimport {SelectionChangedEvent, GridReadyEvent, GridApi} from \"ag-grid-community\";\r\n\r\nexport interface EdaManagerAbstractTablePanelProps {\r\n style?: React.CSSProperties\r\n currentArchiveValues?: string[]\r\n currentVectors?: EdaVector[],\r\n loadedVectors: EdaManagerRecord[],\r\n loading?: boolean\r\n}\r\n\r\nexport interface EdaManagerAbstractTablePanelState {\r\n columnDefs: DataGridColDef[]\r\n selectedData: EdaManagerRecord[]\r\n}\r\n\r\nexport default abstract class EdaManagerAbstractTablePanel<P extends EdaManagerAbstractTablePanelProps, S extends EdaManagerAbstractTablePanelState> extends React.Component<P, S> {\r\n protected gridApi?: GridApi;\r\n\r\n protected constructor(props: Readonly<P>) {\r\n super(props);\r\n\r\n this.onSelectionChanged = this.onSelectionChanged.bind(this);\r\n this.renderContextMenu = this.renderContextMenu.bind(this);\r\n this.onClickContextMenuItem = this.onClickContextMenuItem.bind(this);\r\n }\r\n\r\n protected initialState: EdaManagerAbstractTablePanelState = {\r\n columnDefs: this.getColumnDefs(),\r\n selectedData: [],\r\n }\r\n\r\n onReload() {\r\n this.setState({columnDefs: this.getColumnDefs()});\r\n }\r\n\r\n refreshCells() {\r\n this.gridApi?.refreshCells();\r\n }\r\n\r\n redrawRows() {\r\n this.gridApi?.redrawRows();\r\n }\r\n\r\n protected getDateTimeColumn(): DataGridColDef {\r\n return {\r\n headerName: i18n(\"Date\"),\r\n colId: \"date\",\r\n field: \"date\",\r\n type: \"dateTimeColumn\",\r\n initialWidth: 140,\r\n group: i18n(\"Basic Columns\"),\r\n }\r\n }\r\n\r\n abstract getColumnDefs(): DataGridColDef[];\r\n\r\n private onSelectionChanged(event: SelectionChangedEvent) {\r\n const selectedRows = event.api.getSelectedRows();\r\n this.setState({selectedData: selectedRows});\r\n }\r\n\r\n protected renderToolbarButtons(): React.ReactElement | undefined {\r\n return undefined;\r\n }\r\n\r\n protected renderAdditionalContent(): React.ReactNode | undefined {\r\n return undefined;\r\n }\r\n\r\n protected getRowStyle(data: EdaManagerRecord): GridRowStyle | undefined {\r\n data;\r\n return undefined;\r\n }\r\n\r\n protected renderContextMenu(originalMenuItems: MenuElement[]): MenuElement[] {\r\n return originalMenuItems;\r\n }\r\n\r\n protected onClickContextMenuItem(key: string) {\r\n key;\r\n }\r\n\r\n render() {\r\n const toolbarButtons = this.renderToolbarButtons();\r\n\r\n if (this.props.loading) {\r\n return (\r\n <div style={{display: \"flex\", flexDirection: \"column\", height: \"100%\", ...this.props.style}}>\r\n {toolbarButtons}\r\n <div style={{height: \"100%\", display: \"flex\", justifyContent: \"center\", alignItems: \"center\"}}>\r\n <LoadingOutlined/>\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <div style={{height: \"100%\"}}>\r\n {this.renderAdditionalContent()}\r\n <ExtendedDataGrid\r\n columnDefs={this.state.columnDefs}\r\n onLoadData={callback => {\r\n callback(this.props.loadedVectors.length)\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={this.props.loadedVectors}\r\n onSelectionChanged={this.onSelectionChanged}\r\n tablePanelStyle={{marginTop: 8}}\r\n panelStyle={this.props.style}\r\n toolbar={{\r\n hideRecordCount: true,\r\n toolbarButtons: toolbarButtons,\r\n }}\r\n search={{\r\n hidden: true,\r\n searchButtonHidden: true,\r\n }}\r\n contextMenu={{\r\n renderer: this.renderContextMenu,\r\n onClick: this.onClickContextMenuItem\r\n }}\r\n noRecordsOverlayRenderer={() =>\r\n <Empty description={i18n(\"No records found.\")} imageStyle={{height: \"8vh\"}}/>\r\n }\r\n getRowStyle={params => {\r\n const data = params.node.data as EdaManagerRecord;\r\n return this.getRowStyle(data);\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}"]}
@@ -2,7 +2,8 @@ import EdaManagerAbstractPanel, { EdaManagerAbstractPanelProps, EdaManagerAbstra
2
2
  import { EdaVector, EdaStepEnum } from "../../../../api/edaApi";
3
3
  import dayjs from "d2core/dayjs";
4
4
  interface Props extends EdaManagerAbstractPanelProps {
5
- initialVectors: EdaVector[];
5
+ initialArchiveValues?: string[];
6
+ initialVectors?: EdaVector[];
6
7
  initialTimeFrom: dayjs.Dayjs | null;
7
8
  initialTimeTo: dayjs.Dayjs | null;
8
9
  initialStep?: EdaStepEnum;
@@ -13,8 +13,9 @@ export default class EdaManagerCompactPanel extends EdaManagerAbstractPanel {
13
13
  };
14
14
  }
15
15
  componentDidUpdate(prevProps) {
16
- if (!isEqual(prevProps.initialVectors, this.props.initialVectors) || !isEqual(prevProps.initialTimeFrom, this.props.initialTimeFrom) || !isEqual(prevProps.initialTimeTo, this.props.initialTimeTo) || prevProps.initialStep !== this.props.initialStep) {
16
+ if (!isEqual(prevProps.initialVectors, this.props.initialVectors) || !isEqual(prevProps.initialArchiveValues, this.props.initialArchiveValues) || !isEqual(prevProps.initialTimeFrom, this.props.initialTimeFrom) || !isEqual(prevProps.initialTimeTo, this.props.initialTimeTo) || prevProps.initialStep !== this.props.initialStep) {
17
17
  const currentFilter = this.state.currentFilter;
18
+ currentFilter.currentArchiveValues = this.props.initialArchiveValues;
18
19
  currentFilter.currentVectors = this.props.initialVectors;
19
20
  currentFilter.timePanelConfiguration.selectedTimeFrom = this.props.initialTimeFrom;
20
21
  currentFilter.timePanelConfiguration.selectedTimeTo = this.props.initialTimeTo;
@@ -39,6 +40,7 @@ export default class EdaManagerCompactPanel extends EdaManagerAbstractPanel {
39
40
  }
40
41
  get initialFilter() {
41
42
  return {
43
+ currentArchiveValues: this.props.initialArchiveValues,
42
44
  currentVectors: this.props.initialVectors,
43
45
  timePanelConfiguration: {
44
46
  selectedTimeFrom: this.props.initialTimeFrom,
@@ -1 +1 @@
1
- {"version":3,"file":"edaManagerCompactPanel.js","sourceRoot":"","sources":["../../../../../../coreui/components/edaManager/compactPanel/edaManagerCompactPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,uBAIN,MAAM,qCAAqC,CAAC;AAC7C,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAC,4BAA4B,EAAC,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAY,WAAW,EAAC,MAAM,wBAAwB,CAAC;AAE9D,OAAO,OAAO,MAAM,gBAAgB,CAAC;AACrC,OAAO,SAAS,MAAM,kBAAkB,CAAC;AAYzC,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,uBAAqC;IACrF,YAAY,KAAsB;QAC9B,KAAK,CAAC,KAAK,CAAC,CAAC;QAEb,IAAI,CAAC,KAAK,GAAG;YACT,WAAW,EAAE,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,4BAA4B,EAAE,CAAC;YACtE,GAAG,IAAI,CAAC,YAAY;SACvB,CAAA;IACL,CAAC;IAED,kBAAkB,CAAC,SAA0B;QACzC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,SAAS,CAAC,WAAW,KAAK,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YACtP,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;YAC/C,aAAa,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;YACzD,aAAa,CAAC,sBAAsB,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;YACnF,aAAa,CAAC,sBAAsB,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;YAC/E,aAAa,CAAC,sBAAsB,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,WAAW,CAAC,aAAa,CAAC;YAExG,IAAI,CAAC,QAAQ,CAAC;gBACV,aAAa,EAAE,EAAE;gBACjB,oBAAoB,EAAE,EAAE;gBACxB,aAAa,EAAE,aAAa;gBAC5B,gBAAgB,EAAE,SAAS,CAAC,aAAa,CAAC;aAC7C,EAAE,GAAG,EAAE;gBACJ,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,sBAAsB,CAAC,WAAW,EAAE,CAAC;oBAC9D,IAAI,CAAC,aAAa,EAAE,CAAC;gBACzB,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED,IAAc,2BAA2B;QACrC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAc,eAAe;QACzB,OAAO,EAAC,OAAO,EAAE,aAAa,EAAC,CAAC;IACpC,CAAC;IAED,IAAc,aAAa;QACvB,OAAO;YACH,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc;YACzC,sBAAsB,EAAE;gBACpB,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe;gBAC5C,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa;gBACxC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,WAAW,CAAC,aAAa;gBACjE,WAAW,EAAE,KAAK;aACrB;SACJ,CAAA;IACL,CAAC;CACJ","sourcesContent":["import EdaManagerAbstractPanel, {\r\n EdaManagerAbstractPanelProps,\r\n EdaManagerAbstractPanelState,\r\n EdaManagerFilter\r\n} from \"../abstract/edaManagerAbstractPanel\";\r\nimport * as FlexLayout from \"flexlayout-react\";\r\nimport {edaManagerCompactLayoutModel} from \"./initialLayout\";\r\nimport {EdaVector, EdaStepEnum} from \"../../../../api/edaApi\";\r\nimport dayjs from \"d2core/dayjs\";\r\nimport isEqual from \"lodash/isEqual\";\r\nimport cloneDeep from \"lodash/cloneDeep\";\r\n\r\ninterface Props extends EdaManagerAbstractPanelProps {\r\n initialVectors: EdaVector[]\r\n initialTimeFrom: dayjs.Dayjs | null\r\n initialTimeTo: dayjs.Dayjs | null\r\n initialStep?: EdaStepEnum\r\n}\r\n\r\ninterface State extends EdaManagerAbstractPanelState {\r\n}\r\n\r\nexport default class EdaManagerCompactPanel extends EdaManagerAbstractPanel<Props, State> {\r\n constructor(props: Readonly<Props>) {\r\n super(props);\r\n\r\n this.state = {\r\n layoutModel: FlexLayout.Model.fromJson(edaManagerCompactLayoutModel()),\r\n ...this.initialState,\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps: Readonly<Props>) {\r\n if (!isEqual(prevProps.initialVectors, this.props.initialVectors) || !isEqual(prevProps.initialTimeFrom, this.props.initialTimeFrom) || !isEqual(prevProps.initialTimeTo, this.props.initialTimeTo) || prevProps.initialStep !== this.props.initialStep) {\r\n const currentFilter = this.state.currentFilter;\r\n currentFilter.currentVectors = this.props.initialVectors;\r\n currentFilter.timePanelConfiguration.selectedTimeFrom = this.props.initialTimeFrom;\r\n currentFilter.timePanelConfiguration.selectedTimeTo = this.props.initialTimeTo;\r\n currentFilter.timePanelConfiguration.selectedStep = this.props.initialStep ?? EdaStepEnum.DEFAULT_VALUE;\r\n\r\n this.setState({\r\n loadedVectors: [],\r\n loadedCalendarVector: [],\r\n currentFilter: currentFilter,\r\n loadedDataFilter: cloneDeep(currentFilter),\r\n }, () => {\r\n if (this.state.currentFilter.timePanelConfiguration.autoRefresh) {\r\n this.onLoadVectors();\r\n }\r\n });\r\n }\r\n }\r\n\r\n protected get edaManagerChartPanelCompact(): boolean {\r\n return true;\r\n }\r\n\r\n protected get tabWrapperStyle(): React.CSSProperties {\r\n return {padding: \"8px 0px 0px\"};\r\n }\r\n\r\n protected get initialFilter(): EdaManagerFilter {\r\n return {\r\n currentVectors: this.props.initialVectors,\r\n timePanelConfiguration: {\r\n selectedTimeFrom: this.props.initialTimeFrom,\r\n selectedTimeTo: this.props.initialTimeTo,\r\n selectedStep: this.props.initialStep ?? EdaStepEnum.DEFAULT_VALUE,\r\n autoRefresh: false,\r\n }\r\n }\r\n }\r\n}"]}
1
+ {"version":3,"file":"edaManagerCompactPanel.js","sourceRoot":"","sources":["../../../../../../coreui/components/edaManager/compactPanel/edaManagerCompactPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,uBAIN,MAAM,qCAAqC,CAAC;AAC7C,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAC,4BAA4B,EAAC,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAY,WAAW,EAAC,MAAM,wBAAwB,CAAC;AAE9D,OAAO,OAAO,MAAM,gBAAgB,CAAC;AACrC,OAAO,SAAS,MAAM,kBAAkB,CAAC;AAazC,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,uBAAqC;IACrF,YAAY,KAAsB;QAC9B,KAAK,CAAC,KAAK,CAAC,CAAC;QAEb,IAAI,CAAC,KAAK,GAAG;YACT,WAAW,EAAE,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,4BAA4B,EAAE,CAAC;YACtE,GAAG,IAAI,CAAC,YAAY;SACvB,CAAA;IACL,CAAC;IAED,kBAAkB,CAAC,SAA0B;QACzC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,oBAAoB,EAAE,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,SAAS,CAAC,WAAW,KAAK,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YACnU,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;YAC/C,aAAa,CAAC,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC;YACrE,aAAa,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;YACzD,aAAa,CAAC,sBAAsB,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;YACnF,aAAa,CAAC,sBAAsB,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;YAC/E,aAAa,CAAC,sBAAsB,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,WAAW,CAAC,aAAa,CAAC;YAExG,IAAI,CAAC,QAAQ,CAAC;gBACV,aAAa,EAAE,EAAE;gBACjB,oBAAoB,EAAE,EAAE;gBACxB,aAAa,EAAE,aAAa;gBAC5B,gBAAgB,EAAE,SAAS,CAAC,aAAa,CAAC;aAC7C,EAAE,GAAG,EAAE;gBACJ,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,sBAAsB,CAAC,WAAW,EAAE,CAAC;oBAC9D,IAAI,CAAC,aAAa,EAAE,CAAC;gBACzB,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED,IAAc,2BAA2B;QACrC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAc,eAAe;QACzB,OAAO,EAAC,OAAO,EAAE,aAAa,EAAC,CAAC;IACpC,CAAC;IAED,IAAc,aAAa;QACvB,OAAO;YACH,oBAAoB,EAAE,IAAI,CAAC,KAAK,CAAC,oBAAoB;YACrD,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc;YACzC,sBAAsB,EAAE;gBACpB,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe;gBAC5C,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa;gBACxC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,WAAW,CAAC,aAAa;gBACjE,WAAW,EAAE,KAAK;aACrB;SACJ,CAAA;IACL,CAAC;CACJ","sourcesContent":["import EdaManagerAbstractPanel, {\r\n EdaManagerAbstractPanelProps,\r\n EdaManagerAbstractPanelState,\r\n EdaManagerFilter\r\n} from \"../abstract/edaManagerAbstractPanel\";\r\nimport * as FlexLayout from \"flexlayout-react\";\r\nimport {edaManagerCompactLayoutModel} from \"./initialLayout\";\r\nimport {EdaVector, EdaStepEnum} from \"../../../../api/edaApi\";\r\nimport dayjs from \"d2core/dayjs\";\r\nimport isEqual from \"lodash/isEqual\";\r\nimport cloneDeep from \"lodash/cloneDeep\";\r\n\r\ninterface Props extends EdaManagerAbstractPanelProps {\r\n initialArchiveValues?: string[]\r\n initialVectors?: EdaVector[]\r\n initialTimeFrom: dayjs.Dayjs | null\r\n initialTimeTo: dayjs.Dayjs | null\r\n initialStep?: EdaStepEnum\r\n}\r\n\r\ninterface State extends EdaManagerAbstractPanelState {\r\n}\r\n\r\nexport default class EdaManagerCompactPanel extends EdaManagerAbstractPanel<Props, State> {\r\n constructor(props: Readonly<Props>) {\r\n super(props);\r\n\r\n this.state = {\r\n layoutModel: FlexLayout.Model.fromJson(edaManagerCompactLayoutModel()),\r\n ...this.initialState,\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps: Readonly<Props>) {\r\n if (!isEqual(prevProps.initialVectors, this.props.initialVectors) || !isEqual(prevProps.initialArchiveValues, this.props.initialArchiveValues) || !isEqual(prevProps.initialTimeFrom, this.props.initialTimeFrom) || !isEqual(prevProps.initialTimeTo, this.props.initialTimeTo) || prevProps.initialStep !== this.props.initialStep) {\r\n const currentFilter = this.state.currentFilter;\r\n currentFilter.currentArchiveValues = this.props.initialArchiveValues;\r\n currentFilter.currentVectors = this.props.initialVectors;\r\n currentFilter.timePanelConfiguration.selectedTimeFrom = this.props.initialTimeFrom;\r\n currentFilter.timePanelConfiguration.selectedTimeTo = this.props.initialTimeTo;\r\n currentFilter.timePanelConfiguration.selectedStep = this.props.initialStep ?? EdaStepEnum.DEFAULT_VALUE;\r\n\r\n this.setState({\r\n loadedVectors: [],\r\n loadedCalendarVector: [],\r\n currentFilter: currentFilter,\r\n loadedDataFilter: cloneDeep(currentFilter),\r\n }, () => {\r\n if (this.state.currentFilter.timePanelConfiguration.autoRefresh) {\r\n this.onLoadVectors();\r\n }\r\n });\r\n }\r\n }\r\n\r\n protected get edaManagerChartPanelCompact(): boolean {\r\n return true;\r\n }\r\n\r\n protected get tabWrapperStyle(): React.CSSProperties {\r\n return {padding: \"8px 0px 0px\"};\r\n }\r\n\r\n protected get initialFilter(): EdaManagerFilter {\r\n return {\r\n currentArchiveValues: this.props.initialArchiveValues,\r\n currentVectors: this.props.initialVectors,\r\n timePanelConfiguration: {\r\n selectedTimeFrom: this.props.initialTimeFrom,\r\n selectedTimeTo: this.props.initialTimeTo,\r\n selectedStep: this.props.initialStep ?? EdaStepEnum.DEFAULT_VALUE,\r\n autoRefresh: false,\r\n }\r\n }\r\n }\r\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"edaVectorDetailTablePanel.js","sourceRoot":"","sources":["../../../../../../../coreui/components/edaManager/components/detail/edaVectorDetailTablePanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,4BAGN,MAAM,6CAA6C,CAAC;AAErD,OAAO,IAAI,MAAM,kBAAkB,CAAC;AAGpC,OAAO,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAStD,MAAM,CAAC,OAAO,OAAO,yBAA0B,SAAQ,4BAA0C;IAC7F,YAAY,KAAsB;QAC9B,KAAK,CAAC,KAAK,CAAC,CAAC;QAEb,IAAI,CAAC,KAAK,GAAG;YACT,GAAG,IAAI,CAAC,YAAY;SACvB,CAAA;IACL,CAAC;IAEO,aAAa,CAAC,IAAsB;QACxC,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC;IACnC,CAAC;IAES,WAAW,CAAC,IAAsB;QACxC,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,OAAO,EAAC,eAAe,EAAE,SAAS,EAAC,CAAC;QACxC,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAsBD,aAAa;QACT,OAAO;YACH,IAAI,CAAC,iBAAiB,EAAE;YACxB;gBACI,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;gBACnD,KAAK,EAAE,MAAM;gBACb,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,CAAC,YAAY,CAAC;gBACpB,YAAY,EAAE,GAAG;gBACjB,QAAQ,EAAE,IAAI;gBACd,YAAY,EAAE,CAAC,MAAW,EAAE,EAAE;oBAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAwB,CAAC;oBAC7C,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC;oBAChC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;oBACxB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;wBACxC,MAAM,KAAK,GAAG,aAAa,KAAK,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC3D,OAAO,8BAAM,KAAK,EAAE,KAAK,IAAG,YAAY,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,CAAQ,CAAC;oBACpF,CAAC;yBAAM,CAAC;wBACJ,OAAO,EAAE,CAAC;oBACd,CAAC;gBACL,CAAC;gBACD,kBAAkB,EAAE,GAAG,EAAE;oBACrB,OAAO;wBACH,SAAS,EAAE,kBAAkB;wBAC7B,MAAM,EAAE;4BACJ,gBAAgB,EAAE,GAAG;yBACxB;qBACJ,CAAA;gBACL,CAAC;gBACD,WAAW,EAAE,MAAM,CAAC,EAAE;oBAClB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAwB,CAAC;oBAC7C,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;oBAEnE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;oBAEtB,OAAO,IAAI,CAAC;gBAChB,CAAC;gBACD,qBAAqB,EAAE,IAAI;gBAC3B,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC;aAC/B;SACJ,CAAC;IACN,CAAC;CAEJ","sourcesContent":["import React from \"react\";\r\nimport EdaManagerAbstractTablePanel, {\r\n EdaManagerAbstractTablePanelProps,\r\n EdaManagerAbstractTablePanelState\r\n} from \"../../abstract/edaManagerAbstractTablePanel\";\r\nimport {DataGridColDef} from \"d2coreui/components/grid/dataGrid\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport {EdaManagerRecord} from \"../../../../../api/edaApi\";\r\nimport {GridRowStyle} from \"d2coreui/components/grid/cell/tableDefaultRowStyleRules\";\r\nimport {LocaleHolder} from \"d2core/i18n/localeHolder\";\r\n\r\ninterface Props extends EdaManagerAbstractTablePanelProps {\r\n onChange(): void\r\n}\r\n\r\ninterface State extends EdaManagerAbstractTablePanelState {\r\n}\r\n\r\nexport default class EdaVectorDetailTablePanel extends EdaManagerAbstractTablePanel<Props, State> {\r\n constructor(props: Readonly<Props>) {\r\n super(props);\r\n\r\n this.state = {\r\n ...this.initialState\r\n }\r\n }\r\n\r\n private isDataChanged(data: EdaManagerRecord): boolean {\r\n return data.col0 !== data.col1;\r\n }\r\n\r\n protected getRowStyle(data: EdaManagerRecord): GridRowStyle | undefined {\r\n if (this.isDataChanged(data)) {\r\n return {backgroundColor: \"#f4ffb8\"};\r\n }\r\n return undefined;\r\n }\r\n\r\n // protected renderContextMenu(originalMenuItems: MenuElement[]): MenuElement[] {\r\n // console.log(\"XX\", this.state.selectedData);\r\n //\r\n // return [\r\n // <Menu.Item key=\"revertCell\" icon={<UndoMenuIcon/>} disabled={false}>\r\n // {i18n(\"Revert Changes\")}\r\n // </Menu.Item>,\r\n // <Menu.Divider/>,\r\n // <Menu.SubMenu key=\"exportSubMenu\" icon={<DownloadOutlined/>} title={i18n(\"Export\")}>\r\n // {originalMenuItems}\r\n // </Menu.SubMenu>\r\n // ];\r\n // }\r\n //\r\n // protected onClickContextMenuItem(key: string) {\r\n // if (key === \"setNull\") {\r\n //\r\n // }\r\n // }\r\n\r\n getColumnDefs(): DataGridColDef[] {\r\n return [\r\n this.getDateTimeColumn(),\r\n {\r\n headerName: this.props.currentVectors[1].name ?? \"\",\r\n colId: \"col1\",\r\n field: \"col1\",\r\n type: [\"alignRight\"],\r\n initialWidth: 140,\r\n editable: true,\r\n cellRenderer: (params: any) => {\r\n const data = params.data as EdaManagerRecord;\r\n const originalValue = data.col0;\r\n const value = data.col1;\r\n if (value !== undefined && value !== null) {\r\n const title = originalValue !== value ? originalValue : \"\";\r\n return <span title={title}>{LocaleHolder.formatNumber(value, 13, false)}</span>;\r\n } else {\r\n return \"\";\r\n }\r\n },\r\n cellEditorSelector: () => {\r\n return {\r\n component: \"numberCellEditor\",\r\n params: {\r\n decimalSeparator: \",\"\r\n }\r\n }\r\n },\r\n valueSetter: params => {\r\n const data = params.data as EdaManagerRecord;\r\n data.col1 = params.newValue !== null ? params.newValue : undefined;\r\n\r\n this.props.onChange();\r\n\r\n return true;\r\n },\r\n enableCellChangeFlash: true,\r\n group: i18n(\"Basic Columns\"),\r\n }\r\n ];\r\n }\r\n\r\n}"]}
1
+ {"version":3,"file":"edaVectorDetailTablePanel.js","sourceRoot":"","sources":["../../../../../../../coreui/components/edaManager/components/detail/edaVectorDetailTablePanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,4BAGN,MAAM,6CAA6C,CAAC;AAErD,OAAO,IAAI,MAAM,kBAAkB,CAAC;AAGpC,OAAO,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AAStD,MAAM,CAAC,OAAO,OAAO,yBAA0B,SAAQ,4BAA0C;IAC7F,YAAY,KAAsB;QAC9B,KAAK,CAAC,KAAK,CAAC,CAAC;QAEb,IAAI,CAAC,KAAK,GAAG;YACT,GAAG,IAAI,CAAC,YAAY;SACvB,CAAA;IACL,CAAC;IAEO,aAAa,CAAC,IAAsB;QACxC,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC;IACnC,CAAC;IAES,WAAW,CAAC,IAAsB;QACxC,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,OAAO,EAAC,eAAe,EAAE,SAAS,EAAC,CAAC;QACxC,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAsBD,aAAa;QACT,OAAO;YACH,IAAI,CAAC,iBAAiB,EAAE;YACxB;gBACI,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,cAAe,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;gBACpD,KAAK,EAAE,MAAM;gBACb,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,CAAC,YAAY,CAAC;gBACpB,YAAY,EAAE,GAAG;gBACjB,QAAQ,EAAE,IAAI;gBACd,YAAY,EAAE,CAAC,MAAW,EAAE,EAAE;oBAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAwB,CAAC;oBAC7C,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC;oBAChC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;oBACxB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;wBACxC,MAAM,KAAK,GAAG,aAAa,KAAK,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC3D,OAAO,8BAAM,KAAK,EAAE,KAAK,IAAG,YAAY,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,CAAQ,CAAC;oBACpF,CAAC;yBAAM,CAAC;wBACJ,OAAO,EAAE,CAAC;oBACd,CAAC;gBACL,CAAC;gBACD,kBAAkB,EAAE,GAAG,EAAE;oBACrB,OAAO;wBACH,SAAS,EAAE,kBAAkB;wBAC7B,MAAM,EAAE;4BACJ,gBAAgB,EAAE,GAAG;yBACxB;qBACJ,CAAA;gBACL,CAAC;gBACD,WAAW,EAAE,MAAM,CAAC,EAAE;oBAClB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAwB,CAAC;oBAC7C,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;oBAEnE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;oBAEtB,OAAO,IAAI,CAAC;gBAChB,CAAC;gBACD,qBAAqB,EAAE,IAAI;gBAC3B,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC;aAC/B;SACJ,CAAC;IACN,CAAC;CAEJ","sourcesContent":["import React from \"react\";\r\nimport EdaManagerAbstractTablePanel, {\r\n EdaManagerAbstractTablePanelProps,\r\n EdaManagerAbstractTablePanelState\r\n} from \"../../abstract/edaManagerAbstractTablePanel\";\r\nimport {DataGridColDef} from \"d2coreui/components/grid/dataGrid\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport {EdaManagerRecord} from \"../../../../../api/edaApi\";\r\nimport {GridRowStyle} from \"d2coreui/components/grid/cell/tableDefaultRowStyleRules\";\r\nimport {LocaleHolder} from \"d2core/i18n/localeHolder\";\r\n\r\ninterface Props extends EdaManagerAbstractTablePanelProps {\r\n onChange(): void\r\n}\r\n\r\ninterface State extends EdaManagerAbstractTablePanelState {\r\n}\r\n\r\nexport default class EdaVectorDetailTablePanel extends EdaManagerAbstractTablePanel<Props, State> {\r\n constructor(props: Readonly<Props>) {\r\n super(props);\r\n\r\n this.state = {\r\n ...this.initialState\r\n }\r\n }\r\n\r\n private isDataChanged(data: EdaManagerRecord): boolean {\r\n return data.col0 !== data.col1;\r\n }\r\n\r\n protected getRowStyle(data: EdaManagerRecord): GridRowStyle | undefined {\r\n if (this.isDataChanged(data)) {\r\n return {backgroundColor: \"#f4ffb8\"};\r\n }\r\n return undefined;\r\n }\r\n\r\n // protected renderContextMenu(originalMenuItems: MenuElement[]): MenuElement[] {\r\n // console.log(\"XX\", this.state.selectedData);\r\n //\r\n // return [\r\n // <Menu.Item key=\"revertCell\" icon={<UndoMenuIcon/>} disabled={false}>\r\n // {i18n(\"Revert Changes\")}\r\n // </Menu.Item>,\r\n // <Menu.Divider/>,\r\n // <Menu.SubMenu key=\"exportSubMenu\" icon={<DownloadOutlined/>} title={i18n(\"Export\")}>\r\n // {originalMenuItems}\r\n // </Menu.SubMenu>\r\n // ];\r\n // }\r\n //\r\n // protected onClickContextMenuItem(key: string) {\r\n // if (key === \"setNull\") {\r\n //\r\n // }\r\n // }\r\n\r\n getColumnDefs(): DataGridColDef[] {\r\n return [\r\n this.getDateTimeColumn(),\r\n {\r\n headerName: this.props.currentVectors![1].name ?? \"\",\r\n colId: \"col1\",\r\n field: \"col1\",\r\n type: [\"alignRight\"],\r\n initialWidth: 140,\r\n editable: true,\r\n cellRenderer: (params: any) => {\r\n const data = params.data as EdaManagerRecord;\r\n const originalValue = data.col0;\r\n const value = data.col1;\r\n if (value !== undefined && value !== null) {\r\n const title = originalValue !== value ? originalValue : \"\";\r\n return <span title={title}>{LocaleHolder.formatNumber(value, 13, false)}</span>;\r\n } else {\r\n return \"\";\r\n }\r\n },\r\n cellEditorSelector: () => {\r\n return {\r\n component: \"numberCellEditor\",\r\n params: {\r\n decimalSeparator: \",\"\r\n }\r\n }\r\n },\r\n valueSetter: params => {\r\n const data = params.data as EdaManagerRecord;\r\n data.col1 = params.newValue !== null ? params.newValue : undefined;\r\n\r\n this.props.onChange();\r\n\r\n return true;\r\n },\r\n enableCellChangeFlash: true,\r\n group: i18n(\"Basic Columns\"),\r\n }\r\n ];\r\n }\r\n\r\n}"]}
@@ -3,7 +3,7 @@ import { DataGridColDef } from "d2coreui/components/grid/dataGrid";
3
3
  import { EdaApi, EdaManagerRecord, EdaVector } from "../../../../api/edaApi";
4
4
  import EdaManagerAbstractTablePanel, { EdaManagerAbstractTablePanelProps, EdaManagerAbstractTablePanelState } from "../abstract/edaManagerAbstractTablePanel";
5
5
  interface Props extends EdaManagerAbstractTablePanelProps {
6
- edaApi: EdaApi;
6
+ edaApi?: EdaApi;
7
7
  timePanel?: React.ReactElement;
8
8
  onReloadVectorData(code: string): void;
9
9
  }
@@ -14,6 +14,8 @@ interface State extends EdaManagerAbstractTablePanelState {
14
14
  }
15
15
  export default class EdaManagerTablePanel extends EdaManagerAbstractTablePanel<Props, State> {
16
16
  constructor(props: Readonly<Props>);
17
+ private getColumnDefsForEdaVectors;
18
+ private getColumnDefsForArchiveValues;
17
19
  getColumnDefs(): DataGridColDef[];
18
20
  private renderEdaVectorDetailModalDialog;
19
21
  protected renderToolbarButtons(): React.ReactElement<any, string | React.JSXElementConstructor<any>> | undefined;
@@ -14,50 +14,74 @@ export default class EdaManagerTablePanel extends EdaManagerAbstractTablePanel {
14
14
  ...this.initialState
15
15
  };
16
16
  }
17
+ getColumnDefsForEdaVectors() {
18
+ return this.props.currentVectors?.map((vector, index) => {
19
+ return {
20
+ headerName: vector.name ?? "",
21
+ colId: vector.code ?? "",
22
+ field: `col${index}`,
23
+ type: ["numberColumn", "alignRight"],
24
+ cellRenderer: (params) => {
25
+ const value = params.value;
26
+ if (value !== undefined && value !== null) {
27
+ return LocaleHolder.formatNumber(value, 6, false);
28
+ }
29
+ else {
30
+ return "";
31
+ }
32
+ },
33
+ initialWidth: 140,
34
+ onCellDoubleClicked: (event) => {
35
+ const edaVectorForDetailPanel = cloneDeep(this.props.currentVectors.find(value => value.code === event.colDef.colId));
36
+ const vectorToEdit = cloneDeep(edaVectorForDetailPanel);
37
+ edaVectorForDetailPanel.name = i18n("Original Data");
38
+ vectorToEdit.code += "-edited";
39
+ if (vectorToEdit.colorIndex !== undefined) {
40
+ vectorToEdit.colorIndex++;
41
+ }
42
+ this.setState({
43
+ edaVectorDetailModalVisible: true,
44
+ edaVectorsForDetailPanel: [edaVectorForDetailPanel, vectorToEdit],
45
+ loadedVectorDataForDetailPanel: this.props.loadedVectors.map(value => {
46
+ return {
47
+ id: value.id,
48
+ date: value.date,
49
+ col0: value[event.colDef.field],
50
+ col1: value[event.colDef.field],
51
+ };
52
+ })
53
+ });
54
+ },
55
+ group: i18n("Basic Columns"),
56
+ };
57
+ }) ?? [];
58
+ }
59
+ getColumnDefsForArchiveValues() {
60
+ return this.props.currentArchiveValues?.map((value, index) => {
61
+ return {
62
+ headerName: value,
63
+ colId: value,
64
+ field: `col${index}`,
65
+ type: ["numberColumn", "alignRight"],
66
+ cellRenderer: (params) => {
67
+ const value = params.value;
68
+ if (value !== undefined && value !== null) {
69
+ return LocaleHolder.formatNumber(value, 6, false);
70
+ }
71
+ else {
72
+ return "";
73
+ }
74
+ },
75
+ initialWidth: 140,
76
+ group: i18n("Basic Columns"),
77
+ };
78
+ }) ?? [];
79
+ }
17
80
  getColumnDefs() {
18
81
  return [
19
82
  this.getDateTimeColumn(),
20
- ...this.props.currentVectors
21
- .map((vector, index) => {
22
- return {
23
- headerName: vector.name ?? "",
24
- colId: vector.code ?? "",
25
- field: `col${index}`,
26
- type: ["numberColumn", "alignRight"],
27
- cellRenderer: (params) => {
28
- const value = params.value;
29
- if (value !== undefined && value !== null) {
30
- return LocaleHolder.formatNumber(value, 6, false);
31
- }
32
- else {
33
- return "";
34
- }
35
- },
36
- initialWidth: 140,
37
- onCellDoubleClicked: (event) => {
38
- const edaVectorForDetailPanel = cloneDeep(this.props.currentVectors.find(value => value.code === event.colDef.colId));
39
- const vectorToEdit = cloneDeep(edaVectorForDetailPanel);
40
- edaVectorForDetailPanel.name = i18n("Original Data");
41
- vectorToEdit.code += "-edited";
42
- if (vectorToEdit.colorIndex !== undefined) {
43
- vectorToEdit.colorIndex++;
44
- }
45
- this.setState({
46
- edaVectorDetailModalVisible: true,
47
- edaVectorsForDetailPanel: [edaVectorForDetailPanel, vectorToEdit],
48
- loadedVectorDataForDetailPanel: this.props.loadedVectors.map(value => {
49
- return {
50
- id: value.id,
51
- date: value.date,
52
- col0: value[event.colDef.field],
53
- col1: value[event.colDef.field],
54
- };
55
- })
56
- });
57
- },
58
- group: i18n("Basic Columns"),
59
- };
60
- })
83
+ ...this.getColumnDefsForEdaVectors(),
84
+ ...this.getColumnDefsForArchiveValues(),
61
85
  ];
62
86
  }
63
87
  renderEdaVectorDetailModalDialog() {
@@ -1 +1 @@
1
- {"version":3,"file":"edaManagerTablePanel.js","sourceRoot":"","sources":["../../../../../../coreui/components/edaManager/components/edaManagerTablePanel.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\r\nimport {DataGridColDef} from \"d2coreui/components/grid/dataGrid\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport {EdaApi, EdaManagerRecord, EdaVector} from \"../../../../api/edaApi\";\r\nimport {CellDoubleClickedEvent} from \"ag-grid-community\";\r\nimport EdaVectorDetailModalDialog from \"./detail/edaVectorDetailModalDialog\";\r\nimport EdaManagerAbstractTablePanel, {\r\n EdaManagerAbstractTablePanelProps,\r\n EdaManagerAbstractTablePanelState\r\n} from \"../abstract/edaManagerAbstractTablePanel\";\r\nimport cloneDeep from \"lodash/cloneDeep\";\r\nimport {LocaleHolder} from \"d2core/i18n/localeHolder\";\r\n\r\ninterface Props extends EdaManagerAbstractTablePanelProps {\r\n edaApi: EdaApi\r\n timePanel?: React.ReactElement\r\n\r\n onReloadVectorData(code: string): void\r\n}\r\n\r\ninterface State extends EdaManagerAbstractTablePanelState {\r\n edaVectorDetailModalVisible: boolean\r\n edaVectorsForDetailPanel: EdaVector[]\r\n loadedVectorDataForDetailPanel: EdaManagerRecord[],\r\n}\r\n\r\nexport default class EdaManagerTablePanel extends EdaManagerAbstractTablePanel<Props, State> {\r\n constructor(props: Readonly<Props>) {\r\n super(props);\r\n\r\n this.state = {\r\n edaVectorDetailModalVisible: false,\r\n edaVectorsForDetailPanel: [],\r\n loadedVectorDataForDetailPanel: [],\r\n ...this.initialState\r\n }\r\n }\r\n\r\n getColumnDefs(): DataGridColDef[] {\r\n return [\r\n this.getDateTimeColumn(),\r\n ...this.props.currentVectors\r\n .map((vector, index) => {\r\n return {\r\n headerName: vector.name ?? \"\",\r\n colId: vector.code ?? \"\",\r\n field: `col${index}`,\r\n type: [\"numberColumn\", \"alignRight\"],\r\n cellRenderer: (params: any): string => {\r\n const value = params.value;\r\n if (value !== undefined && value !== null) {\r\n return LocaleHolder.formatNumber(value, 6, false);\r\n } else {\r\n return \"\";\r\n }\r\n },\r\n initialWidth: 140,\r\n onCellDoubleClicked: (event: CellDoubleClickedEvent) => {\r\n const edaVectorForDetailPanel = cloneDeep(this.props.currentVectors.find(value => value.code === event.colDef.colId)!);\r\n const vectorToEdit = cloneDeep(edaVectorForDetailPanel);\r\n\r\n edaVectorForDetailPanel.name = i18n(\"Original Data\");\r\n\r\n vectorToEdit.code += \"-edited\";\r\n if (vectorToEdit.colorIndex !== undefined) {\r\n vectorToEdit.colorIndex++;\r\n }\r\n\r\n this.setState({\r\n edaVectorDetailModalVisible: true,\r\n edaVectorsForDetailPanel: [edaVectorForDetailPanel, vectorToEdit],\r\n loadedVectorDataForDetailPanel: this.props.loadedVectors.map(value => {\r\n return {\r\n id: value.id,\r\n date: value.date,\r\n col0: value[event.colDef.field!],\r\n col1: value[event.colDef.field!],\r\n };\r\n })\r\n });\r\n },\r\n group: i18n(\"Basic Columns\"),\r\n }\r\n })\r\n ]\r\n }\r\n\r\n private renderEdaVectorDetailModalDialog() {\r\n return (\r\n <EdaVectorDetailModalDialog\r\n edaApi={this.props.edaApi}\r\n visible={this.state.edaVectorDetailModalVisible}\r\n onCancel={() => this.setState({edaVectorDetailModalVisible: false})}\r\n edaVectors={this.state.edaVectorsForDetailPanel}\r\n loadedVectorData={this.state.loadedVectorDataForDetailPanel}\r\n onReloadVectorData={() => {\r\n this.props.onReloadVectorData(this.state.edaVectorsForDetailPanel[0]?.code ?? \"\");\r\n this.setState({\r\n edaVectorDetailModalVisible: false,\r\n edaVectorsForDetailPanel: [],\r\n loadedVectorDataForDetailPanel: [],\r\n });\r\n }}\r\n />\r\n );\r\n }\r\n\r\n protected renderToolbarButtons() {\r\n return this.props.timePanel;\r\n }\r\n\r\n protected renderAdditionalContent(): React.ReactNode | undefined {\r\n return this.renderEdaVectorDetailModalDialog()\r\n }\r\n\r\n}"]}
1
+ {"version":3,"file":"edaManagerTablePanel.js","sourceRoot":"","sources":["../../../../../../coreui/components/edaManager/components/edaManagerTablePanel.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\r\nimport {DataGridColDef} from \"d2coreui/components/grid/dataGrid\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport {EdaApi, EdaManagerRecord, EdaVector} from \"../../../../api/edaApi\";\r\nimport {CellDoubleClickedEvent} from \"ag-grid-community\";\r\nimport EdaVectorDetailModalDialog from \"./detail/edaVectorDetailModalDialog\";\r\nimport EdaManagerAbstractTablePanel, {\r\n EdaManagerAbstractTablePanelProps,\r\n EdaManagerAbstractTablePanelState\r\n} from \"../abstract/edaManagerAbstractTablePanel\";\r\nimport cloneDeep from \"lodash/cloneDeep\";\r\nimport {LocaleHolder} from \"d2core/i18n/localeHolder\";\r\n\r\ninterface Props extends EdaManagerAbstractTablePanelProps {\r\n edaApi?: EdaApi\r\n timePanel?: React.ReactElement\r\n\r\n onReloadVectorData(code: string): void\r\n}\r\n\r\ninterface State extends EdaManagerAbstractTablePanelState {\r\n edaVectorDetailModalVisible: boolean\r\n edaVectorsForDetailPanel: EdaVector[]\r\n loadedVectorDataForDetailPanel: EdaManagerRecord[],\r\n}\r\n\r\nexport default class EdaManagerTablePanel extends EdaManagerAbstractTablePanel<Props, State> {\r\n constructor(props: Readonly<Props>) {\r\n super(props);\r\n\r\n this.state = {\r\n edaVectorDetailModalVisible: false,\r\n edaVectorsForDetailPanel: [],\r\n loadedVectorDataForDetailPanel: [],\r\n ...this.initialState\r\n }\r\n }\r\n\r\n private getColumnDefsForEdaVectors(): DataGridColDef[] {\r\n return this.props.currentVectors?.map((vector, index) => {\r\n return {\r\n headerName: vector.name ?? \"\",\r\n colId: vector.code ?? \"\",\r\n field: `col${index}`,\r\n type: [\"numberColumn\", \"alignRight\"],\r\n cellRenderer: (params: any): string => {\r\n const value = params.value;\r\n if (value !== undefined && value !== null) {\r\n return LocaleHolder.formatNumber(value, 6, false);\r\n } else {\r\n return \"\";\r\n }\r\n },\r\n initialWidth: 140,\r\n onCellDoubleClicked: (event: CellDoubleClickedEvent) => {\r\n const edaVectorForDetailPanel = cloneDeep(this.props.currentVectors!.find(value => value.code === event.colDef.colId)!);\r\n const vectorToEdit = cloneDeep(edaVectorForDetailPanel);\r\n\r\n edaVectorForDetailPanel.name = i18n(\"Original Data\");\r\n\r\n vectorToEdit.code += \"-edited\";\r\n if (vectorToEdit.colorIndex !== undefined) {\r\n vectorToEdit.colorIndex++;\r\n }\r\n\r\n this.setState({\r\n edaVectorDetailModalVisible: true,\r\n edaVectorsForDetailPanel: [edaVectorForDetailPanel, vectorToEdit],\r\n loadedVectorDataForDetailPanel: this.props.loadedVectors.map(value => {\r\n return {\r\n id: value.id,\r\n date: value.date,\r\n col0: value[event.colDef.field!],\r\n col1: value[event.colDef.field!],\r\n };\r\n })\r\n });\r\n },\r\n group: i18n(\"Basic Columns\"),\r\n }\r\n }) ?? []\r\n }\r\n\r\n private getColumnDefsForArchiveValues(): DataGridColDef[] {\r\n return this.props.currentArchiveValues?.map((value, index) => {\r\n return {\r\n headerName: value,\r\n colId: value,\r\n field: `col${index}`,\r\n type: [\"numberColumn\", \"alignRight\"],\r\n cellRenderer: (params: any): string => {\r\n const value = params.value;\r\n if (value !== undefined && value !== null) {\r\n return LocaleHolder.formatNumber(value, 6, false);\r\n } else {\r\n return \"\";\r\n }\r\n },\r\n initialWidth: 140,\r\n group: i18n(\"Basic Columns\"),\r\n }\r\n }) ?? []\r\n }\r\n\r\n\r\n getColumnDefs(): DataGridColDef[] {\r\n return [\r\n this.getDateTimeColumn(),\r\n ...this.getColumnDefsForEdaVectors(),\r\n ...this.getColumnDefsForArchiveValues(),\r\n ]\r\n }\r\n\r\n private renderEdaVectorDetailModalDialog() {\r\n return (\r\n <EdaVectorDetailModalDialog\r\n edaApi={this.props.edaApi!}\r\n visible={this.state.edaVectorDetailModalVisible}\r\n onCancel={() => this.setState({edaVectorDetailModalVisible: false})}\r\n edaVectors={this.state.edaVectorsForDetailPanel}\r\n loadedVectorData={this.state.loadedVectorDataForDetailPanel}\r\n onReloadVectorData={() => {\r\n this.props.onReloadVectorData(this.state.edaVectorsForDetailPanel[0]?.code ?? \"\");\r\n this.setState({\r\n edaVectorDetailModalVisible: false,\r\n edaVectorsForDetailPanel: [],\r\n loadedVectorDataForDetailPanel: [],\r\n });\r\n }}\r\n />\r\n );\r\n }\r\n\r\n protected renderToolbarButtons() {\r\n return this.props.timePanel;\r\n }\r\n\r\n protected renderAdditionalContent(): React.ReactNode | undefined {\r\n return this.renderEdaVectorDetailModalDialog()\r\n }\r\n\r\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"edaManagerPanel.js","sourceRoot":"","sources":["../../../../../../coreui/components/edaManager/panel/edaManagerPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,uBAGN,MAAM,qCAAqC,CAAC;AAC7C,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAC/C,OAAO,oBAAoB,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAC,4BAA4B,EAAC,MAAM,iBAAiB,CAAC;AAU7D,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,uBAAqC;IAC9E,YAAY,KAAsB;QAC9B,KAAK,CAAC,KAAK,CAAC,CAAC;QAEb,IAAI,CAAC,KAAK,GAAG;YACT,WAAW,EAAE,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,4BAA4B,EAAE,CAAC;YACtE,GAAG,IAAI,CAAC,YAAY;SACvB,CAAA;IACL,CAAC;IAES,iBAAiB,CAAC,IAAwB;QAChD,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACtC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,CACH,oBAAC,oBAAoB,IACjB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EACzB,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAC/C,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,cAAc,EACvD,QAAQ,EAAE,GAAG,EAAE;oBACX,IAAI,CAAC,QAAQ,CAAC,EAAC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,EAAC,EAAE,GAAG,EAAE;wBAC1D,IAAI,CAAC,UAAU,EAAE,CAAC;oBACtB,CAAC,CAAC,CAAC;oBAEH,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,sBAAsB,CAAC,WAAW,EAAE,CAAC;wBAC9D,IAAI,CAAC,aAAa,EAAE,CAAC;oBACzB,CAAC;gBACL,CAAC,GACH,CACL,CAAA;QACL,CAAC;QACD,OAAO,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,mBAAmB;QACf,OAAO,4BAA4B,CAAC;IACxC,CAAC;CAEJ","sourcesContent":["import React from \"react\";\r\nimport EdaManagerAbstractPanel, {\r\n EdaManagerAbstractPanelProps,\r\n EdaManagerAbstractPanelState\r\n} from \"../abstract/edaManagerAbstractPanel\";\r\nimport * as FlexLayout from \"flexlayout-react\";\r\nimport EdaManagerVectorList from \"../components/edaManagerVectorList\";\r\nimport {edaManagerInitialLayoutModel} from \"./initialLayout\";\r\nimport {AdvancedFilterApi} from \"../../../../api/advancedFilterApi\";\r\n\r\ninterface Props extends EdaManagerAbstractPanelProps {\r\n advancedFilterApi: AdvancedFilterApi\r\n}\r\n\r\ninterface State extends EdaManagerAbstractPanelState {\r\n}\r\n\r\nexport default class EdaManagerPanel extends EdaManagerAbstractPanel<Props, State> {\r\n constructor(props: Readonly<Props>) {\r\n super(props);\r\n\r\n this.state = {\r\n layoutModel: FlexLayout.Model.fromJson(edaManagerInitialLayoutModel()),\r\n ...this.initialState,\r\n }\r\n }\r\n\r\n protected flexLayoutFactory(node: FlexLayout.TabNode): React.ReactNode {\r\n const component = node.getComponent();\r\n if (component === \"vectors\") {\r\n return (\r\n <EdaManagerVectorList\r\n edaApi={this.props.edaApi}\r\n advancedFilterApi={this.props.advancedFilterApi}\r\n currentVectors={this.state.currentFilter.currentVectors}\r\n onChange={() => {\r\n this.setState({currentFilter: this.state.currentFilter}, () => {\r\n this.saveFilter();\r\n });\r\n\r\n if (this.state.currentFilter.timePanelConfiguration.autoRefresh) {\r\n this.onLoadVectors();\r\n }\r\n }}\r\n />\r\n )\r\n }\r\n return super.flexLayoutFactory(node);\r\n }\r\n\r\n getFilterNameToSave(): string {\r\n return \"eda-manager-current-filter\";\r\n }\r\n\r\n}"]}
1
+ {"version":3,"file":"edaManagerPanel.js","sourceRoot":"","sources":["../../../../../../coreui/components/edaManager/panel/edaManagerPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,uBAGN,MAAM,qCAAqC,CAAC;AAC7C,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAC/C,OAAO,oBAAoB,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAC,4BAA4B,EAAC,MAAM,iBAAiB,CAAC;AAU7D,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,uBAAqC;IAC9E,YAAY,KAAsB;QAC9B,KAAK,CAAC,KAAK,CAAC,CAAC;QAEb,IAAI,CAAC,KAAK,GAAG;YACT,WAAW,EAAE,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,4BAA4B,EAAE,CAAC;YACtE,GAAG,IAAI,CAAC,YAAY;SACvB,CAAA;IACL,CAAC;IAES,iBAAiB,CAAC,IAAwB;QAChD,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACtC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,CACH,oBAAC,oBAAoB,IACjB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAO,EAC1B,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAC/C,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,cAAe,EACxD,QAAQ,EAAE,GAAG,EAAE;oBACX,IAAI,CAAC,QAAQ,CAAC,EAAC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,EAAC,EAAE,GAAG,EAAE;wBAC1D,IAAI,CAAC,UAAU,EAAE,CAAC;oBACtB,CAAC,CAAC,CAAC;oBAEH,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,sBAAsB,CAAC,WAAW,EAAE,CAAC;wBAC9D,IAAI,CAAC,aAAa,EAAE,CAAC;oBACzB,CAAC;gBACL,CAAC,GACH,CACL,CAAA;QACL,CAAC;QACD,OAAO,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,mBAAmB;QACf,OAAO,4BAA4B,CAAC;IACxC,CAAC;CAEJ","sourcesContent":["import React from \"react\";\r\nimport EdaManagerAbstractPanel, {\r\n EdaManagerAbstractPanelProps,\r\n EdaManagerAbstractPanelState\r\n} from \"../abstract/edaManagerAbstractPanel\";\r\nimport * as FlexLayout from \"flexlayout-react\";\r\nimport EdaManagerVectorList from \"../components/edaManagerVectorList\";\r\nimport {edaManagerInitialLayoutModel} from \"./initialLayout\";\r\nimport {AdvancedFilterApi} from \"../../../../api/advancedFilterApi\";\r\n\r\ninterface Props extends EdaManagerAbstractPanelProps {\r\n advancedFilterApi: AdvancedFilterApi\r\n}\r\n\r\ninterface State extends EdaManagerAbstractPanelState {\r\n}\r\n\r\nexport default class EdaManagerPanel extends EdaManagerAbstractPanel<Props, State> {\r\n constructor(props: Readonly<Props>) {\r\n super(props);\r\n\r\n this.state = {\r\n layoutModel: FlexLayout.Model.fromJson(edaManagerInitialLayoutModel()),\r\n ...this.initialState,\r\n }\r\n }\r\n\r\n protected flexLayoutFactory(node: FlexLayout.TabNode): React.ReactNode {\r\n const component = node.getComponent();\r\n if (component === \"vectors\") {\r\n return (\r\n <EdaManagerVectorList\r\n edaApi={this.props.edaApi!}\r\n advancedFilterApi={this.props.advancedFilterApi}\r\n currentVectors={this.state.currentFilter.currentVectors!}\r\n onChange={() => {\r\n this.setState({currentFilter: this.state.currentFilter}, () => {\r\n this.saveFilter();\r\n });\r\n\r\n if (this.state.currentFilter.timePanelConfiguration.autoRefresh) {\r\n this.onLoadVectors();\r\n }\r\n }}\r\n />\r\n )\r\n }\r\n return super.flexLayoutFactory(node);\r\n }\r\n\r\n getFilterNameToSave(): string {\r\n return \"eda-manager-current-filter\";\r\n }\r\n\r\n}"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "d2aura",
3
- "version": "23.0.52",
3
+ "version": "23.0.54",
4
4
  "description": "D2 AURA - Advanced User Interface Resource Architecture",
5
5
  "author": "Ipesoft s.r.o.",
6
6
  "license": "MIT",
@@ -43,7 +43,7 @@
43
43
  "antd": "5.21.2",
44
44
  "d2core": "23.0.15",
45
45
  "d2coreui": "23.0.25",
46
- "d2jsapi": "21.0.30",
46
+ "d2jsapi": "21.0.31",
47
47
  "echarts": "5.5.1",
48
48
  "echarts-for-react": "3.0.2",
49
49
  "file-saver": "2.0.5",