d2aura 23.0.13 → 23.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,9 +1,8 @@
1
1
  import React from "react";
2
- import { EdaApi, EdaManagerRecord, EdaVector, EdaStepEnum } from "../../../../api/edaApi";
2
+ import { EdaApi, EdaManagerRecord, EdaStepEnum, EdaVector } from "../../../../api/edaApi";
3
3
  import { EdaManagerTimePanelConfiguration } from "../components/edaManagerTimePanel";
4
4
  import * as FlexLayout from "flexlayout-react";
5
5
  import { D2ChartPanelProps } from "../../d2Chart/d2ChartPanel";
6
- import { AdvancedFilterApi } from "../../../../api/advancedFilterApi";
7
6
  export interface EdaManagerFilterToSave {
8
7
  version: number;
9
8
  currentVectors: EdaVector[];
@@ -19,7 +18,6 @@ export interface EdaManagerFilter {
19
18
  export interface EdaManagerAbstractPanelProps extends Omit<D2ChartPanelProps, "d2ChartSeries" | "d2ChartRecords" | "d2ChartCalendarRecords" | "loading"> {
20
19
  style?: React.CSSProperties;
21
20
  edaApi: EdaApi;
22
- advancedFilterApi: AdvancedFilterApi;
23
21
  onVectorsLoaded?(loadedVectors: EdaManagerRecord[]): void;
24
22
  }
25
23
  export interface EdaManagerAbstractPanelState {
@@ -43,7 +41,7 @@ export default abstract class EdaManagerAbstractPanel<P extends EdaManagerAbstra
43
41
  protected onReload(): void;
44
42
  onLoadVectors(): Promise<void>;
45
43
  private onLoadVector;
46
- private renderTimePanel;
44
+ protected renderTimePanel(): React.JSX.Element;
47
45
  protected get edaManagerChartPanelCompact(): boolean;
48
46
  protected get tabWrapperStyle(): React.CSSProperties;
49
47
  protected flexLayoutFactory(node: FlexLayout.TabNode): React.ReactNode;
@@ -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, EdaVector, EdaStepEnum} 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 {AdvancedFilterApi} from \"../../../../api/advancedFilterApi\";\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 advancedFilterApi: AdvancedFilterApi\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 private 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\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,7 +1,9 @@
1
1
  import React from "react";
2
2
  import EdaManagerAbstractPanel, { EdaManagerAbstractPanelProps, EdaManagerAbstractPanelState } from "../abstract/edaManagerAbstractPanel";
3
3
  import * as FlexLayout from "flexlayout-react";
4
+ import { AdvancedFilterApi } from "../../../../api/advancedFilterApi";
4
5
  interface Props extends EdaManagerAbstractPanelProps {
6
+ advancedFilterApi: AdvancedFilterApi;
5
7
  }
6
8
  interface State extends EdaManagerAbstractPanelState {
7
9
  }
@@ -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;AAQ7D,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\n\r\ninterface Props extends EdaManagerAbstractPanelProps {\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,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}"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "d2aura",
3
- "version": "23.0.13",
3
+ "version": "23.0.15",
4
4
  "description": "D2 AURA - Advanced User Interface Resource Architecture",
5
5
  "author": "Ipesoft s.r.o.",
6
6
  "license": "MIT",