d2aura 23.0.56 → 23.0.58

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,7 +1,7 @@
1
1
  import React from "react";
2
2
  import Entity from "../../../api/types/entity";
3
3
  import { DataGridColDef } from "d2coreui/components/grid/dataGrid";
4
- import { GridApi } from "ag-grid-community";
4
+ import { GridApi, RowDoubleClickedEvent } from "ag-grid-community";
5
5
  export interface AbstractEntitiesOnEntityListProps<ME extends Entity> {
6
6
  editedEntity: ME;
7
7
  height: number;
@@ -32,6 +32,7 @@ export declare abstract class AbstractEntitiesOnEntityList<ME extends Entity, SE
32
32
  protected renderToolbarButtons(): React.JSX.Element;
33
33
  private onSelectionChanged;
34
34
  protected addRecordsToGrid(records: SE[], idToSelect?: number): void;
35
+ protected onRowDoubleClicked(_event: RowDoubleClickedEvent): void;
35
36
  private renderFullScreenModalDialog;
36
37
  protected renderGrid(fullscreen: boolean): React.JSX.Element;
37
38
  render(): React.JSX.Element;
@@ -17,6 +17,7 @@ export class AbstractEntitiesOnEntityList extends React.Component {
17
17
  this.onSelectionChanged = this.onSelectionChanged.bind(this);
18
18
  this.renderControlPanel = this.renderControlPanel.bind(this);
19
19
  this.onExcludeRecords = this.onExcludeRecords.bind(this);
20
+ this.onRowDoubleClicked = this.onRowDoubleClicked.bind(this);
20
21
  }
21
22
  componentDidUpdate(prevProps) {
22
23
  if (prevProps.disabled !== this.props.disabled || prevProps.editedEntity.id !== this.props.editedEntity.id) {
@@ -89,6 +90,8 @@ export class AbstractEntitiesOnEntityList extends React.Component {
89
90
  rowNode?.setSelected(true, true);
90
91
  }
91
92
  }
93
+ onRowDoubleClicked(_event) {
94
+ }
92
95
  renderFullScreenModalDialog() {
93
96
  return (React.createElement(ModalDialog, { styles: { body: { paddingTop: 0 } }, mode: "NO_BUTTONS", open: this.state.fullscreenModalOpen, onCancel: () => this.setState({ fullscreenModalOpen: false }), afterClose: () => {
94
97
  if (this.renderSelectModalDialog()) {
@@ -138,7 +141,7 @@ export class AbstractEntitiesOnEntityList extends React.Component {
138
141
  return this.noRecordsOverlayRenderer();
139
142
  }
140
143
  return React.createElement("div", null);
141
- }, singleClickEdit: true, stopEditingWhenCellsLoseFocus: true, enterNavigatesVerticallyAfterEdit: true }));
144
+ }, onRowDoubleClicked: this.onRowDoubleClicked, singleClickEdit: true, stopEditingWhenCellsLoseFocus: true, enterNavigatesVerticallyAfterEdit: true }));
142
145
  }
143
146
  render() {
144
147
  return (React.createElement("div", { style: { height: this.props.height, overflow: "auto", resize: "vertical" } },
@@ -1 +1 @@
1
- {"version":3,"file":"abstractEntitiesOnEntityList.js","sourceRoot":"","sources":["../../../../../coreui/components/assignEntitiesToEntity/abstractEntitiesOnEntityList.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\r\nimport Entity from \"../../../api/types/entity\";\r\nimport {DataGridColDef} from \"d2coreui/components/grid/dataGrid\";\r\nimport {GridApi, GridReadyEvent, SelectionChangedEvent} from \"ag-grid-community\";\r\nimport {Button} from \"antd\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport {CloseCircleOutlined, DeleteOutlined, FullscreenOutlined, PlusCircleOutlined} from \"@ant-design/icons\";\r\nimport {ModalDialog, ModalDialogMode} from \"d2coreui/components/modal/modalDialog\";\r\nimport ExtendedDataGrid from \"d2coreui/components/grid/extendedDataGrid\";\r\nimport {ERROR_COLOR, WARNING_COLOR} from \"../../../api/constants/constants\";\r\n\r\nexport interface AbstractEntitiesOnEntityListProps<ME extends Entity> {\r\n editedEntity: ME\r\n height: number\r\n disabled?: boolean\r\n isHighlighted?: boolean\r\n isError?: boolean\r\n\r\n onChange?(): void\r\n}\r\n\r\nexport interface AbstractEntitiesOnEntityListState<SE extends Entity> {\r\n selectedRecords: SE[]\r\n selectModalDialogVisible: boolean\r\n columnDefs: DataGridColDef[]\r\n fullscreenModalOpen: boolean\r\n}\r\n\r\nexport abstract class AbstractEntitiesOnEntityList<\r\n ME extends Entity,\r\n SE extends Entity,\r\n P extends AbstractEntitiesOnEntityListProps<ME>,\r\n S extends AbstractEntitiesOnEntityListState<SE>\r\n> extends React.Component<P, S> {\r\n protected gridApi?: GridApi;\r\n protected fullscreenGridApi?: GridApi;\r\n protected initialColumnDefs?: DataGridColDef[];\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.renderControlPanel = this.renderControlPanel.bind(this);\r\n this.onExcludeRecords = this.onExcludeRecords.bind(this);\r\n }\r\n\r\n protected initialState: AbstractEntitiesOnEntityListState<SE> = {\r\n selectedRecords: [],\r\n selectModalDialogVisible: false,\r\n columnDefs: this.getInitialColumnDefs(),\r\n fullscreenModalOpen: false,\r\n }\r\n\r\n componentDidUpdate(prevProps: Readonly<P>) {\r\n if (prevProps.disabled !== this.props.disabled || prevProps.editedEntity.id !== this.props.editedEntity.id) {\r\n this.gridApi?.updateGridOptions({rowData: this.getSubEntities()});\r\n }\r\n }\r\n\r\n abstract getInitialColumnDefs(): DataGridColDef[];\r\n\r\n abstract getSubEntities(): SE[];\r\n\r\n protected renderSelectModalDialog(): React.ReactNode | undefined {\r\n return undefined;\r\n }\r\n\r\n protected renderControlPanel(): JSX.Element | null {\r\n return null;\r\n }\r\n\r\n protected noRecordsOverlayRenderer() {\r\n return <div/>\r\n }\r\n\r\n protected onExcludeRecords() {\r\n const subEntities = this.getSubEntities();\r\n\r\n this.state.selectedRecords.forEach(subEntityToExclude => {\r\n const index = subEntities.findIndex(value => value.id === subEntityToExclude.id);\r\n subEntities.splice(index, 1);\r\n });\r\n\r\n this.props.onChange?.();\r\n if (this.state.fullscreenModalOpen) {\r\n this.fullscreenGridApi?.applyTransaction({remove: this.state.selectedRecords});\r\n } else {\r\n this.gridApi?.applyTransaction({remove: this.state.selectedRecords});\r\n }\r\n }\r\n\r\n protected renderToolbarButtons() {\r\n return <>\r\n <Button\r\n title={i18n(\"Add Record\")}\r\n disabled={this.props.disabled}\r\n onClick={() => {\r\n this.setState({selectModalDialogVisible: true});\r\n }}\r\n >\r\n <PlusCircleOutlined/>\r\n </Button>\r\n <Button\r\n title={i18n(\"Exclude Record\")}\r\n disabled={this.state.selectedRecords.length === 0 || this.props.disabled}\r\n onClick={() => {\r\n ModalDialog.delete({\r\n mode: ModalDialogMode.YES_NO,\r\n title:\r\n <span style={{whiteSpace: \"nowrap\"}}>\r\n {i18n(\"Exclude %n records?\", this.state.selectedRecords.length)}\r\n </span>,\r\n icon: <DeleteOutlined style={{color: ERROR_COLOR}}/>,\r\n onOk: this.onExcludeRecords\r\n });\r\n }}\r\n >\r\n <CloseCircleOutlined/>\r\n </Button>\r\n </>;\r\n }\r\n\r\n private onSelectionChanged(event: SelectionChangedEvent): void {\r\n const selectedRows = event.api.getSelectedRows();\r\n this.setState({selectedRecords: selectedRows});\r\n }\r\n\r\n protected addRecordsToGrid(records: SE[], idToSelect?: number) {\r\n if (records.length > 0) {\r\n if (this.state.fullscreenModalOpen) {\r\n this.fullscreenGridApi?.applyTransaction({add: records});\r\n } else {\r\n this.gridApi?.applyTransaction({add: records});\r\n }\r\n this.props.onChange?.();\r\n }\r\n\r\n if (idToSelect !== undefined) {\r\n let rowNode;\r\n if (this.state.fullscreenModalOpen) {\r\n rowNode = this.fullscreenGridApi?.getRowNode(idToSelect.toString());\r\n this.fullscreenGridApi?.ensureNodeVisible(rowNode);\r\n } else {\r\n rowNode = this.gridApi?.getRowNode(idToSelect.toString());\r\n this.gridApi?.ensureNodeVisible(rowNode);\r\n }\r\n\r\n rowNode?.setSelected(true, true);\r\n }\r\n }\r\n\r\n private renderFullScreenModalDialog() {\r\n return (\r\n <ModalDialog\r\n styles={{body: {paddingTop: 0}}}\r\n mode={ModalDialogMode.NO_BUTTONS}\r\n open={this.state.fullscreenModalOpen}\r\n onCancel={() => this.setState({fullscreenModalOpen: false})}\r\n afterClose={() => {\r\n if (this.renderSelectModalDialog()) {\r\n this.gridApi?.updateGridOptions({rowData: this.getSubEntities()});\r\n } else {\r\n this.gridApi?.refreshCells({force: true});\r\n }\r\n }}\r\n title={i18n(\"Fullscreen\")}\r\n initialWidth={800}\r\n initialHeight={window.innerHeight - 20}\r\n >\r\n {this.renderGrid(true)}\r\n </ModalDialog>\r\n )\r\n }\r\n\r\n protected renderGrid(fullscreen: boolean) {\r\n const subEntities = this.getSubEntities();\r\n\r\n let tablePanelStyleBorder: React.CSSProperties[\"border\"] = \"unset\";\r\n if (this.props.isHighlighted) {\r\n tablePanelStyleBorder = `1px solid ${WARNING_COLOR}`;\r\n } else if (this.props.isError) {\r\n tablePanelStyleBorder = `1px solid ${ERROR_COLOR}`;\r\n }\r\n\r\n return (\r\n <ExtendedDataGrid\r\n onGridReady={(params: GridReadyEvent) => {\r\n if (fullscreen) {\r\n this.fullscreenGridApi = params.api;\r\n } else {\r\n this.gridApi = params.api;\r\n }\r\n }}\r\n defaultGridConfiguration={{pageSize: -1}}\r\n columnDefs={this.state.columnDefs}\r\n rowData={subEntities}\r\n onLoadData={(callback) => {\r\n callback(subEntities.length);\r\n }}\r\n search={{\r\n hidden: true,\r\n searchButtonHidden: true,\r\n }}\r\n rowSelection=\"multiple\"\r\n onSelectionChanged={this.onSelectionChanged}\r\n toolbar={{\r\n renderToolbar: (originalSearchBar) => this.renderSelectModalDialog() ? originalSearchBar : <></>,\r\n toolbarButtons: this.renderSelectModalDialog() ? this.renderToolbarButtons() : <></>,\r\n extraContent:\r\n !fullscreen\r\n ?\r\n <FullscreenOutlined\r\n style={{cursor: \"pointer\", height: 32}}\r\n title={i18n(\"Fullscreen\")}\r\n onClick={() => this.setState({fullscreenModalOpen: true})}\r\n />\r\n :\r\n undefined\r\n }}\r\n tablePanelStyle={{\r\n marginTop: this.renderSelectModalDialog() ? 4 : 0,\r\n border: tablePanelStyleBorder,\r\n }}\r\n controlPanel={{\r\n renderer: this.renderControlPanel\r\n }}\r\n panelStyle={{padding: 0}}\r\n tableConfigVisible={false}\r\n noRecordsOverlayRenderer={() => {\r\n if (this.getSubEntities().length === 0) {\r\n return this.noRecordsOverlayRenderer();\r\n }\r\n return <div/>\r\n }}\r\n singleClickEdit\r\n stopEditingWhenCellsLoseFocus\r\n enterNavigatesVerticallyAfterEdit\r\n />\r\n );\r\n }\r\n\r\n render() {\r\n return (\r\n <div style={{height: this.props.height, overflow: \"auto\", resize: \"vertical\"}}>\r\n {this.renderFullScreenModalDialog()}\r\n {this.renderSelectModalDialog()}\r\n {this.renderGrid(false)}\r\n </div>\r\n );\r\n }\r\n\r\n}"]}
1
+ {"version":3,"file":"abstractEntitiesOnEntityList.js","sourceRoot":"","sources":["../../../../../coreui/components/assignEntitiesToEntity/abstractEntitiesOnEntityList.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\r\nimport Entity from \"../../../api/types/entity\";\r\nimport {DataGridColDef} from \"d2coreui/components/grid/dataGrid\";\r\nimport {GridApi, GridReadyEvent, SelectionChangedEvent, RowDoubleClickedEvent} from \"ag-grid-community\";\r\nimport {Button} from \"antd\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport {CloseCircleOutlined, DeleteOutlined, FullscreenOutlined, PlusCircleOutlined} from \"@ant-design/icons\";\r\nimport {ModalDialog, ModalDialogMode} from \"d2coreui/components/modal/modalDialog\";\r\nimport ExtendedDataGrid from \"d2coreui/components/grid/extendedDataGrid\";\r\nimport {ERROR_COLOR, WARNING_COLOR} from \"../../../api/constants/constants\";\r\n\r\nexport interface AbstractEntitiesOnEntityListProps<ME extends Entity> {\r\n editedEntity: ME\r\n height: number\r\n disabled?: boolean\r\n isHighlighted?: boolean\r\n isError?: boolean\r\n\r\n onChange?(): void\r\n}\r\n\r\nexport interface AbstractEntitiesOnEntityListState<SE extends Entity> {\r\n selectedRecords: SE[]\r\n selectModalDialogVisible: boolean\r\n columnDefs: DataGridColDef[]\r\n fullscreenModalOpen: boolean\r\n}\r\n\r\nexport abstract class AbstractEntitiesOnEntityList<\r\n ME extends Entity,\r\n SE extends Entity,\r\n P extends AbstractEntitiesOnEntityListProps<ME>,\r\n S extends AbstractEntitiesOnEntityListState<SE>\r\n> extends React.Component<P, S> {\r\n protected gridApi?: GridApi;\r\n protected fullscreenGridApi?: GridApi;\r\n protected initialColumnDefs?: DataGridColDef[];\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.renderControlPanel = this.renderControlPanel.bind(this);\r\n this.onExcludeRecords = this.onExcludeRecords.bind(this);\r\n this.onRowDoubleClicked = this.onRowDoubleClicked.bind(this);\r\n }\r\n\r\n protected initialState: AbstractEntitiesOnEntityListState<SE> = {\r\n selectedRecords: [],\r\n selectModalDialogVisible: false,\r\n columnDefs: this.getInitialColumnDefs(),\r\n fullscreenModalOpen: false,\r\n }\r\n\r\n componentDidUpdate(prevProps: Readonly<P>) {\r\n if (prevProps.disabled !== this.props.disabled || prevProps.editedEntity.id !== this.props.editedEntity.id) {\r\n this.gridApi?.updateGridOptions({rowData: this.getSubEntities()});\r\n }\r\n }\r\n\r\n abstract getInitialColumnDefs(): DataGridColDef[];\r\n\r\n abstract getSubEntities(): SE[];\r\n\r\n protected renderSelectModalDialog(): React.ReactNode | undefined {\r\n return undefined;\r\n }\r\n\r\n protected renderControlPanel(): JSX.Element | null {\r\n return null;\r\n }\r\n\r\n protected noRecordsOverlayRenderer() {\r\n return <div/>\r\n }\r\n\r\n protected onExcludeRecords() {\r\n const subEntities = this.getSubEntities();\r\n\r\n this.state.selectedRecords.forEach(subEntityToExclude => {\r\n const index = subEntities.findIndex(value => value.id === subEntityToExclude.id);\r\n subEntities.splice(index, 1);\r\n });\r\n\r\n this.props.onChange?.();\r\n if (this.state.fullscreenModalOpen) {\r\n this.fullscreenGridApi?.applyTransaction({remove: this.state.selectedRecords});\r\n } else {\r\n this.gridApi?.applyTransaction({remove: this.state.selectedRecords});\r\n }\r\n }\r\n\r\n protected renderToolbarButtons() {\r\n return <>\r\n <Button\r\n title={i18n(\"Add Record\")}\r\n disabled={this.props.disabled}\r\n onClick={() => {\r\n this.setState({selectModalDialogVisible: true});\r\n }}\r\n >\r\n <PlusCircleOutlined/>\r\n </Button>\r\n <Button\r\n title={i18n(\"Exclude Record\")}\r\n disabled={this.state.selectedRecords.length === 0 || this.props.disabled}\r\n onClick={() => {\r\n ModalDialog.delete({\r\n mode: ModalDialogMode.YES_NO,\r\n title:\r\n <span style={{whiteSpace: \"nowrap\"}}>\r\n {i18n(\"Exclude %n records?\", this.state.selectedRecords.length)}\r\n </span>,\r\n icon: <DeleteOutlined style={{color: ERROR_COLOR}}/>,\r\n onOk: this.onExcludeRecords\r\n });\r\n }}\r\n >\r\n <CloseCircleOutlined/>\r\n </Button>\r\n </>;\r\n }\r\n\r\n private onSelectionChanged(event: SelectionChangedEvent): void {\r\n const selectedRows = event.api.getSelectedRows();\r\n this.setState({selectedRecords: selectedRows});\r\n }\r\n\r\n protected addRecordsToGrid(records: SE[], idToSelect?: number) {\r\n if (records.length > 0) {\r\n if (this.state.fullscreenModalOpen) {\r\n this.fullscreenGridApi?.applyTransaction({add: records});\r\n } else {\r\n this.gridApi?.applyTransaction({add: records});\r\n }\r\n this.props.onChange?.();\r\n }\r\n\r\n if (idToSelect !== undefined) {\r\n let rowNode;\r\n if (this.state.fullscreenModalOpen) {\r\n rowNode = this.fullscreenGridApi?.getRowNode(idToSelect.toString());\r\n this.fullscreenGridApi?.ensureNodeVisible(rowNode);\r\n } else {\r\n rowNode = this.gridApi?.getRowNode(idToSelect.toString());\r\n this.gridApi?.ensureNodeVisible(rowNode);\r\n }\r\n\r\n rowNode?.setSelected(true, true);\r\n }\r\n }\r\n\r\n protected onRowDoubleClicked(_event: RowDoubleClickedEvent) {\r\n }\r\n\r\n private renderFullScreenModalDialog() {\r\n return (\r\n <ModalDialog\r\n styles={{body: {paddingTop: 0}}}\r\n mode={ModalDialogMode.NO_BUTTONS}\r\n open={this.state.fullscreenModalOpen}\r\n onCancel={() => this.setState({fullscreenModalOpen: false})}\r\n afterClose={() => {\r\n if (this.renderSelectModalDialog()) {\r\n this.gridApi?.updateGridOptions({rowData: this.getSubEntities()});\r\n } else {\r\n this.gridApi?.refreshCells({force: true});\r\n }\r\n }}\r\n title={i18n(\"Fullscreen\")}\r\n initialWidth={800}\r\n initialHeight={window.innerHeight - 20}\r\n >\r\n {this.renderGrid(true)}\r\n </ModalDialog>\r\n )\r\n }\r\n\r\n protected renderGrid(fullscreen: boolean) {\r\n const subEntities = this.getSubEntities();\r\n\r\n let tablePanelStyleBorder: React.CSSProperties[\"border\"] = \"unset\";\r\n if (this.props.isHighlighted) {\r\n tablePanelStyleBorder = `1px solid ${WARNING_COLOR}`;\r\n } else if (this.props.isError) {\r\n tablePanelStyleBorder = `1px solid ${ERROR_COLOR}`;\r\n }\r\n\r\n return (\r\n <ExtendedDataGrid\r\n onGridReady={(params: GridReadyEvent) => {\r\n if (fullscreen) {\r\n this.fullscreenGridApi = params.api;\r\n } else {\r\n this.gridApi = params.api;\r\n }\r\n }}\r\n defaultGridConfiguration={{pageSize: -1}}\r\n columnDefs={this.state.columnDefs}\r\n rowData={subEntities}\r\n onLoadData={(callback) => {\r\n callback(subEntities.length);\r\n }}\r\n search={{\r\n hidden: true,\r\n searchButtonHidden: true,\r\n }}\r\n rowSelection=\"multiple\"\r\n onSelectionChanged={this.onSelectionChanged}\r\n toolbar={{\r\n renderToolbar: (originalSearchBar) => this.renderSelectModalDialog() ? originalSearchBar : <></>,\r\n toolbarButtons: this.renderSelectModalDialog() ? this.renderToolbarButtons() : <></>,\r\n extraContent:\r\n !fullscreen\r\n ?\r\n <FullscreenOutlined\r\n style={{cursor: \"pointer\", height: 32}}\r\n title={i18n(\"Fullscreen\")}\r\n onClick={() => this.setState({fullscreenModalOpen: true})}\r\n />\r\n :\r\n undefined\r\n }}\r\n tablePanelStyle={{\r\n marginTop: this.renderSelectModalDialog() ? 4 : 0,\r\n border: tablePanelStyleBorder,\r\n }}\r\n controlPanel={{\r\n renderer: this.renderControlPanel\r\n }}\r\n panelStyle={{padding: 0}}\r\n tableConfigVisible={false}\r\n noRecordsOverlayRenderer={() => {\r\n if (this.getSubEntities().length === 0) {\r\n return this.noRecordsOverlayRenderer();\r\n }\r\n return <div/>\r\n }}\r\n onRowDoubleClicked={this.onRowDoubleClicked}\r\n singleClickEdit\r\n stopEditingWhenCellsLoseFocus\r\n enterNavigatesVerticallyAfterEdit\r\n />\r\n );\r\n }\r\n\r\n render() {\r\n return (\r\n <div style={{height: this.props.height, overflow: \"auto\", resize: \"vertical\"}}>\r\n {this.renderFullScreenModalDialog()}\r\n {this.renderSelectModalDialog()}\r\n {this.renderGrid(false)}\r\n </div>\r\n );\r\n }\r\n\r\n}"]}
@@ -1,7 +1,5 @@
1
- import React from "react";
2
1
  import EdaManagerAbstractTablePanel from "../../abstract/edaManagerAbstractTablePanel";
3
2
  import i18n from "d2core/i18n/i18n";
4
- import { LocaleHolder } from "d2core/i18n/localeHolder";
5
3
  export default class EdaVectorDetailTablePanel extends EdaManagerAbstractTablePanel {
6
4
  constructor(props) {
7
5
  super(props);
@@ -25,20 +23,11 @@ export default class EdaVectorDetailTablePanel extends EdaManagerAbstractTablePa
25
23
  headerName: this.props.currentVectors[1].name ?? "",
26
24
  colId: "col1",
27
25
  field: "col1",
28
- type: ["alignRight"],
26
+ type: ["numberColumn", "alignRight"],
29
27
  initialWidth: 140,
30
28
  editable: true,
31
- cellRenderer: (params) => {
32
- const data = params.data;
33
- const originalValue = data.col0;
34
- const value = data.col1;
35
- if (value !== undefined && value !== null) {
36
- const title = originalValue !== value ? originalValue : "";
37
- return React.createElement("span", { title: title }, LocaleHolder.formatNumber(value, 13, false));
38
- }
39
- else {
40
- return "";
41
- }
29
+ cellRendererParams: {
30
+ fractionDigits: 13,
42
31
  },
43
32
  cellEditorSelector: () => {
44
33
  return {
@@ -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,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}"]}
1
+ {"version":3,"file":"edaVectorDetailTablePanel.js","sourceRoot":"","sources":["../../../../../../../coreui/components/edaManager/components/detail/edaVectorDetailTablePanel.tsx"],"names":[],"mappings":"AAAA,OAAO,4BAGN,MAAM,6CAA6C,CAAC;AAErD,OAAO,IAAI,MAAM,kBAAkB,CAAC;AAWpC,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,cAAc,EAAE,YAAY,CAAC;gBACpC,YAAY,EAAE,GAAG;gBACjB,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE;oBAChB,cAAc,EAAE,EAAE;iBACrB;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 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\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: [\"numberColumn\", \"alignRight\"],\r\n initialWidth: 140,\r\n editable: true,\r\n cellRendererParams: {\r\n fractionDigits: 13,\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}"]}
@@ -21,14 +21,8 @@ export default class EdaManagerTablePanel extends EdaManagerAbstractTablePanel {
21
21
  colId: vector.code ?? "",
22
22
  field: `col${index}`,
23
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
- }
24
+ cellRendererParams: {
25
+ fractionDigits: 6,
32
26
  },
33
27
  initialWidth: 140,
34
28
  onCellDoubleClicked: (event) => {
@@ -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 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
+ {"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 cellRendererParams: {\r\n fractionDigits: 6,\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}"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "d2aura",
3
- "version": "23.0.56",
3
+ "version": "23.0.58",
4
4
  "description": "D2 AURA - Advanced User Interface Resource Architecture",
5
5
  "author": "Ipesoft s.r.o.",
6
6
  "license": "MIT",
@@ -42,7 +42,7 @@
42
42
  "@types/urijs": "1.19.16",
43
43
  "antd": "5.21.2",
44
44
  "d2core": "23.0.15",
45
- "d2coreui": "23.0.25",
45
+ "d2coreui": "23.0.26",
46
46
  "d2jsapi": "21.0.31",
47
47
  "echarts": "5.5.1",
48
48
  "echarts-for-react": "3.0.2",