@bit.rhplus/ag-grid 0.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/AgGridAddNewItem.js +6 -0
  2. package/AgGridColumn.js +368 -0
  3. package/AgGridColumnFilter.js +22 -0
  4. package/AgGridOnGridReady.js +9 -0
  5. package/AgGridOnRowDataChanged.js +8 -0
  6. package/AgGridOnRowDataUpdated.js +32 -0
  7. package/AgGridPostSort.js +34 -0
  8. package/AggregationNotification.js +111 -0
  9. package/Aggregations.js +185 -0
  10. package/CheckBoxRenderer.jsx +29 -0
  11. package/Components/ExtendButton.css +6 -0
  12. package/Components/ExtendButton.jsx +17 -0
  13. package/CountryCellRenderer.jsx +18 -0
  14. package/Functions/index.js +21 -0
  15. package/HeaderTemplates/CommonHeaderTemplate.js +15 -0
  16. package/HyperModuleEditor.js +139 -0
  17. package/HyperModuleRenderer.js +152 -0
  18. package/NotificationOptions.jsx +53 -0
  19. package/OnCellDoubleClicked.js +10 -0
  20. package/OnCellEditingStarted.js +9 -0
  21. package/OnCellValueChanged.js +12 -0
  22. package/Renderers/BooleanRenderer.jsx +39 -0
  23. package/Renderers/ButtonRenderer.jsx +48 -0
  24. package/Renderers/CheckboxRenderer.jsx +35 -0
  25. package/Renderers/CountrySelectRenderer.jsx +37 -0
  26. package/Renderers/SelectRenderer.jsx +15 -0
  27. package/dist/AgGridAddNewItem.d.ts +0 -0
  28. package/dist/AgGridAddNewItem.js +6 -0
  29. package/dist/AgGridAddNewItem.js.map +1 -0
  30. package/dist/AgGridColumn.d.ts +3 -0
  31. package/dist/AgGridColumn.js +325 -0
  32. package/dist/AgGridColumn.js.map +1 -0
  33. package/dist/AgGridColumnFilter.d.ts +4 -0
  34. package/dist/AgGridColumnFilter.js +19 -0
  35. package/dist/AgGridColumnFilter.js.map +1 -0
  36. package/dist/AgGridOnGridReady.d.ts +1 -0
  37. package/dist/AgGridOnGridReady.js +6 -0
  38. package/dist/AgGridOnGridReady.js.map +1 -0
  39. package/dist/AgGridOnRowDataChanged.d.ts +0 -0
  40. package/dist/AgGridOnRowDataChanged.js +8 -0
  41. package/dist/AgGridOnRowDataChanged.js.map +1 -0
  42. package/dist/AgGridOnRowDataUpdated.d.ts +1 -0
  43. package/dist/AgGridOnRowDataUpdated.js +27 -0
  44. package/dist/AgGridOnRowDataUpdated.js.map +1 -0
  45. package/dist/AgGridPostSort.d.ts +1 -0
  46. package/dist/AgGridPostSort.js +32 -0
  47. package/dist/AgGridPostSort.js.map +1 -0
  48. package/dist/AggregationNotification.d.ts +0 -0
  49. package/dist/AggregationNotification.js +107 -0
  50. package/dist/AggregationNotification.js.map +1 -0
  51. package/dist/Aggregations.d.ts +25 -0
  52. package/dist/Aggregations.js +171 -0
  53. package/dist/Aggregations.js.map +1 -0
  54. package/dist/CheckBoxRenderer.d.ts +6 -0
  55. package/dist/CheckBoxRenderer.js +18 -0
  56. package/dist/CheckBoxRenderer.js.map +1 -0
  57. package/dist/Components/ExtendButton.css +6 -0
  58. package/dist/Components/ExtendButton.d.ts +2 -0
  59. package/dist/Components/ExtendButton.js +12 -0
  60. package/dist/Components/ExtendButton.js.map +1 -0
  61. package/dist/CountryCellRenderer.d.ts +1 -0
  62. package/dist/CountryCellRenderer.js +12 -0
  63. package/dist/CountryCellRenderer.js.map +1 -0
  64. package/dist/Functions/index.d.ts +2 -0
  65. package/dist/Functions/index.js +19 -0
  66. package/dist/Functions/index.js.map +1 -0
  67. package/dist/HeaderTemplates/CommonHeaderTemplate.d.ts +1 -0
  68. package/dist/HeaderTemplates/CommonHeaderTemplate.js +15 -0
  69. package/dist/HeaderTemplates/CommonHeaderTemplate.js.map +1 -0
  70. package/dist/HyperModuleEditor.d.ts +0 -0
  71. package/dist/HyperModuleEditor.js +119 -0
  72. package/dist/HyperModuleEditor.js.map +1 -0
  73. package/dist/HyperModuleRenderer.d.ts +0 -0
  74. package/dist/HyperModuleRenderer.js +138 -0
  75. package/dist/HyperModuleRenderer.js.map +1 -0
  76. package/dist/NotificationOptions.d.ts +9 -0
  77. package/dist/NotificationOptions.js +21 -0
  78. package/dist/NotificationOptions.js.map +1 -0
  79. package/dist/OnCellDoubleClicked.d.ts +1 -0
  80. package/dist/OnCellDoubleClicked.js +6 -0
  81. package/dist/OnCellDoubleClicked.js.map +1 -0
  82. package/dist/OnCellEditingStarted.d.ts +1 -0
  83. package/dist/OnCellEditingStarted.js +7 -0
  84. package/dist/OnCellEditingStarted.js.map +1 -0
  85. package/dist/OnCellValueChanged.d.ts +1 -0
  86. package/dist/OnCellValueChanged.js +10 -0
  87. package/dist/OnCellValueChanged.js.map +1 -0
  88. package/dist/Renderers/BooleanRenderer.d.ts +1 -0
  89. package/dist/Renderers/BooleanRenderer.js +27 -0
  90. package/dist/Renderers/BooleanRenderer.js.map +1 -0
  91. package/dist/Renderers/ButtonRenderer.d.ts +1 -0
  92. package/dist/Renderers/ButtonRenderer.js +25 -0
  93. package/dist/Renderers/ButtonRenderer.js.map +1 -0
  94. package/dist/Renderers/CheckboxRenderer.d.ts +1 -0
  95. package/dist/Renderers/CheckboxRenderer.js +23 -0
  96. package/dist/Renderers/CheckboxRenderer.js.map +1 -0
  97. package/dist/Renderers/CountrySelectRenderer.d.ts +1 -0
  98. package/dist/Renderers/CountrySelectRenderer.js +20 -0
  99. package/dist/Renderers/CountrySelectRenderer.js.map +1 -0
  100. package/dist/Renderers/SelectRenderer.d.ts +1 -0
  101. package/dist/Renderers/SelectRenderer.js +12 -0
  102. package/dist/Renderers/SelectRenderer.js.map +1 -0
  103. package/dist/index.d.ts +3 -0
  104. package/dist/index.js +103 -0
  105. package/dist/index.js.map +1 -0
  106. package/dist/preview-1727859392810.js +7 -0
  107. package/dist/util.d.ts +15 -0
  108. package/dist/util.js +95 -0
  109. package/dist/util.js.map +1 -0
  110. package/index.jsx +143 -0
  111. package/package.json +35 -0
  112. package/types/asset.d.ts +43 -0
  113. package/types/style.d.ts +42 -0
  114. package/util.js +116 -0
@@ -0,0 +1,185 @@
1
+ import Enumerable from 'linq';
2
+ import moment from 'moment';
3
+
4
+ const getColumnOrderDirection = (range) => (range.columns[0].colId === range.startColumn.colId) ? 1 : -1;
5
+
6
+ const getColumnOrderIndex = (range, index) => {
7
+ if (getColumnOrderDirection(range) === 1) {
8
+ return range.columns[index];
9
+ }
10
+ return range.columns[range.columns.length - 1 - index];
11
+ }
12
+
13
+ const getDimensionDefinition = (ranges) => {
14
+ let dimensionColumns = [];
15
+ let columnIndex = 0;
16
+ ranges.forEach(range => {
17
+ let colOf = 0;
18
+ for (let i = 0; i < range.columns.length; i += 1) {
19
+ if (columnIndex === 3)
20
+ break;
21
+ dimensionColumns = [...dimensionColumns, getColumnOrderIndex(range, colOf).colId];
22
+ columnIndex += 1;
23
+ colOf += 1;
24
+ }
25
+ });
26
+ return dimensionColumns;
27
+ }
28
+
29
+ const rangeContainsRowIndex = (range, row) => {
30
+ const start = Math.min(range.startRow.rowIndex, range.endRow.rowIndex);
31
+ const end = Math.max(range.startRow.rowIndex, range.endRow.rowIndex);
32
+ return (start <= row && end >= row);
33
+ }
34
+
35
+ const getValue = (gridRef, column, rowIndex) => {
36
+ const rowModel = gridRef.current.api.getModel();
37
+ const rowNode = rowModel.getRow(rowIndex);
38
+ const value = gridRef.current.api.getValue(column, rowNode);
39
+ return value;
40
+ }
41
+
42
+ const isValidDate = value => {
43
+ let typeValid = !(typeof value === 'number' || typeof value === "boolean" || value == null || value === '');
44
+ if (typeValid) {
45
+ typeValid = moment(value).isValid();
46
+ }
47
+ return typeValid;
48
+ }
49
+
50
+ export default function Aggregations(gridRef) {
51
+ const ranges = gridRef.current.api.getCellRanges();
52
+ let sum = null; let min = null; let max = null; let avg = null; let count = 0; let numberCount = 0;
53
+ let earliest; let latest;
54
+ let square = 0;
55
+ let cubic = 0;
56
+ let sumRows = [];
57
+ let sumCols = [];
58
+
59
+ if (!ranges[0] || !ranges[0].startRow)
60
+ return {};
61
+
62
+ const startRow = Math.min(ranges[0].startRow.rowIndex, ranges[0].endRow.rowIndex);
63
+ const domensionRanges = Enumerable.from(ranges).where(w => rangeContainsRowIndex(w, startRow)).toArray();
64
+ const dimensions = getDimensionDefinition(domensionRanges);
65
+
66
+ ranges.forEach(range => {
67
+ const start = Math.min(range.startRow.rowIndex, range.endRow.rowIndex);
68
+ const end = Math.max(range.startRow.rowIndex, range.endRow.rowIndex);
69
+ const rows = Enumerable.range(start, Math.abs(end - start) + 1).toArray();
70
+ sumRows = new Set([...sumRows, ...rows]);
71
+
72
+ const cols = Enumerable.from(range.columns).select(s => s.colId).distinct().toArray();
73
+ sumCols = new Set([...sumCols, ...cols]);
74
+
75
+ for (let rowIndex = start; rowIndex <= end; rowIndex += 1) {
76
+ let firstDimension = 0;
77
+ let secondDimension = 0;
78
+ let thirdDimension = 0;
79
+ const {columns} = range;
80
+ for (let i = 0; i < columns.length; i+=1) {
81
+ const column = columns[i];
82
+ const value = getValue(gridRef, column, rowIndex);
83
+
84
+ const validDate = isValidDate(value);
85
+ if (validDate) {
86
+ const dateValue = moment(value);
87
+ earliest = new Date(Math.min.apply(null, [(earliest || dateValue), dateValue]));
88
+ latest = new Date(Math.max.apply(null, [(latest || dateValue), dateValue]));
89
+ }
90
+ else if (typeof value === 'number') {
91
+ if (column.colId === dimensions[0]) { // prvni dimenze
92
+ firstDimension += value;
93
+ } else if (column.colId === dimensions[1]) {
94
+ secondDimension += value;
95
+ } else if (column.colId === dimensions[2]) {
96
+ thirdDimension += value;
97
+ }
98
+ sum += value;
99
+ min = Math.min(min || value, value);
100
+ max = Math.max(max || value, value);
101
+ numberCount += 1;
102
+ }
103
+ count += 1;
104
+ };
105
+ square += (firstDimension * secondDimension);
106
+ cubic += (firstDimension * secondDimension * thirdDimension);
107
+ }
108
+ avg = (sum / numberCount);
109
+
110
+ });
111
+
112
+ return {
113
+ sum,
114
+ min,
115
+ max,
116
+ avg,
117
+ count,
118
+ square,
119
+ cubic,
120
+ earliest,
121
+ latest,
122
+ rows: [...sumRows].length,
123
+ cols: [...sumCols].length
124
+ };
125
+
126
+
127
+ // ranges.map(item => {
128
+ // var start = Math.min(item.startRow.rowIndex, item.endRow.rowIndex);
129
+ // var end = Math.max(item.startRow.rowIndex, item.endRow.rowIndex);
130
+ // for (var rowIndex = start; rowIndex <= end; rowIndex++) {
131
+ // var dimension = 0;
132
+ // rowVolume = 1;
133
+
134
+ // item.columns.forEach(column => {
135
+ // var rowModel = gridRef.current.api.getModel();
136
+ // var rowNode = rowModel.getRow(rowIndex);
137
+ // var value = gridRef.current.api.getValue(column, rowNode);
138
+
139
+ // if (Date.parse(value) && value != 0) {
140
+ // dateCount++;
141
+ // earliest = new Date(Math.min.apply(null, [(earliest || Date.parse(value)), Date.parse(value)]));
142
+ // latest = new Date(Math.max.apply(null, [(latest || Date.parse(value)), Date.parse(value)]));
143
+ // }
144
+
145
+ // if (typeof value === "number") {
146
+ // dimension++;
147
+ // sum += value;
148
+ // min = Math.min(min || value, value);
149
+ // max = Math.max(max || value, value);
150
+ // count++;
151
+
152
+ // if (dimension <= 3) {
153
+ // rowVolume = rowVolume * value;
154
+ // } else {
155
+ // rowVolume = 0;
156
+ // }
157
+ // }
158
+ // })
159
+ // if (dimension === 2) {
160
+ // volume2d = volume2d + rowVolume;
161
+ // } else if (dimension === 3) {
162
+ // volume3d = volume3d + rowVolume;
163
+ // }
164
+
165
+
166
+ // }
167
+ // length += (Math.abs(item.startRow.rowIndex - item.endRow.rowIndex) + 1) * item.columns.length;
168
+ // avg = (sum / count);
169
+ // });
170
+
171
+ // return {
172
+ // length,
173
+ // sum,
174
+ // min,
175
+ // max,
176
+ // avg,
177
+ // count,
178
+ // volume2d,
179
+ // volume3d,
180
+ // earliest,
181
+ // latest,
182
+ // isDate: dateCount >= 2,
183
+ // dateCount
184
+ // };
185
+ }
@@ -0,0 +1,29 @@
1
+ import React from 'react';
2
+
3
+ export class CheckboxRenderer extends React.Component {
4
+ constructor(props) {
5
+ super(props);
6
+ this.checkedHandler = this.checkedHandler.bind(this);
7
+ }
8
+
9
+ checkedHandler(event) {
10
+ const {node, column: {colId} = {}} = this.props;
11
+ const {target: {checked} = {}} = event;
12
+ node.setDataValue(colId, checked);
13
+ }
14
+
15
+ render() {
16
+ const {data, value} = this.props;
17
+ return (
18
+ !!data && (
19
+ <div style={{textAlign: 'center'}}>
20
+ <input type='checkbox'
21
+ checked={value}
22
+ onClick={this.checkedHandler}
23
+ />
24
+
25
+ </div>
26
+ )
27
+ )
28
+ }
29
+ }
@@ -0,0 +1,6 @@
1
+ .extra-small-button .ant-btn {
2
+ font-size: 10px;
3
+ padding: 2px 6px;
4
+ height: 20px;
5
+ line-height: 16px;
6
+ }
@@ -0,0 +1,17 @@
1
+ import * as React from 'react';
2
+ import { Button } from 'antd';
3
+ import './ExtendButton.css';
4
+
5
+ const ExtendButton = (props) => {
6
+ const { size, className, ...restProps } = props;
7
+ const extraSmallClass = size === 'extraSmall' ? 'extra-small-button' : '';
8
+
9
+ const {children} = props;
10
+ return (
11
+ <div className={`${extraSmallClass} ${className}`}>
12
+ <Button {...restProps}>{children}</Button>
13
+ </div>
14
+ );
15
+ };
16
+
17
+ export default ExtendButton;
@@ -0,0 +1,18 @@
1
+ export default function CountryCellRenderer(params) {
2
+ const {value, value: {code} = {}} = params
3
+
4
+ if (!value)
5
+ return '';
6
+
7
+ let imageUrl = '';
8
+ if (code)
9
+ imageUrl = `https://rhplus.blob.core.windows.net/countries/${code.toUpperCase()}.png`;
10
+
11
+ const { value: { name } = {} } = params;
12
+ return (
13
+ <div>
14
+ <span style={{ marginRight: 10 }}><img alt="img" src={imageUrl} /></span>
15
+ {name}
16
+ </div>
17
+ );
18
+ }
@@ -0,0 +1,21 @@
1
+ import Enumerable from 'linq';
2
+
3
+ export const getSelectedRowsIndex = gridApi => {
4
+ const ranges = gridApi.rangeService.cellRanges;
5
+
6
+ let sumRows = [];
7
+ ranges.forEach(range => {
8
+ const start = Math.min(range.startRow.rowIndex, range.endRow.rowIndex);
9
+ const end = Math.max(range.startRow.rowIndex, range.endRow.rowIndex);
10
+ const rows = Enumerable.range(start, Math.abs(end - start) + 1).toArray();
11
+ sumRows = new Set([...sumRows, ...rows]);
12
+ });
13
+ return sumRows;
14
+ }
15
+
16
+ export const getValue = (gridApi, column, rowIndex) => {
17
+ const rowModel = gridApi.getModel();
18
+ const rowNode = rowModel.getRow(rowIndex);
19
+ const value = gridApi.getValue(column, rowNode);
20
+ return value;
21
+ };
@@ -0,0 +1,15 @@
1
+
2
+ export const CommonHeaderTemplate = htmlText => `
3
+ <div class="ag-cell-label-container" role="presentation">
4
+ <span ref="eMenu" class="ag-header-icon ag-header-cell-menu-button"></span>
5
+ <div ref="eLabel" class="ag-header-cell-label" role="presentation">
6
+ <span class="ag-header-cell-text" role="columnheader">
7
+ ${htmlText}
8
+ </span>
9
+ <span ref="eSortOrder" class="ag-header-icon ag-sort-order" ></span>
10
+ <span ref="eSortAsc" class="ag-header-icon ag-sort-ascending-icon" ></span>
11
+ <span ref="eSortDesc" class="ag-header-icon ag-sort-descending-icon" ></span>
12
+ <span ref="eSortNone" class="ag-header-icon ag-sort-none-icon" ></span>
13
+ <span ref="eFilter" class="ag-header-icon ag-filter-icon"></span>
14
+ </div>
15
+ </div>`
@@ -0,0 +1,139 @@
1
+ // import * as React from "react";
2
+ // import HyperDetailContext from '@rhplus/wieldy.hyper-module';
3
+ // import set from 'lodash/set';
4
+
5
+ // const KEY_BACKSPACE = 8;
6
+ // const KEY_DELETE = 46;
7
+ // const KEY_F2 = 113;
8
+
9
+ // // export interface IHyperModuleEditorProps extends ICellEditorComp {
10
+ // // // params: ICellRendererComp,
11
+ // // // children: React.ReactNode,
12
+ // // // onClick?(event: any): void,
13
+ // // // title?: string
14
+ // // }
15
+
16
+ // // const theme = createTheme();
17
+
18
+ // const valueContextState = {
19
+ // open: false,
20
+ // trigger: () => {},
21
+ // onClose: () => {}
22
+ // }
23
+
24
+ // // export interface IState {
25
+ // // value: string,
26
+ // // open: boolean,
27
+ // // valueContext: any,
28
+ // // highlightAllOnFocus: any
29
+ // // }
30
+
31
+ // // export interface IProps {
32
+ // // data: any,
33
+ // // colDef: any,
34
+ // // setValue: (data:any) => {}
35
+ // // }
36
+
37
+ // class HyperModuleEditor extends React.Component {
38
+ // constructor(props) {
39
+ // super(props);
40
+
41
+ // this.state = this.createInitialState(props);
42
+ // this.handleChange = this.handleChange.bind(this);
43
+ // }
44
+
45
+ // createInitialState(props) {
46
+ // let startValue;
47
+ // let highlightAllOnFocus = true;
48
+
49
+ // if (props.keyPress === KEY_BACKSPACE || props.keyPress === KEY_DELETE) {
50
+ // // if backspace or delete pressed, we clear the cell
51
+ // startValue = '';
52
+ // } else if (props.charPress) {
53
+ // // if a letter was pressed, we start with the letter
54
+ // startValue = {
55
+ // name: props.charPress
56
+ // }
57
+
58
+ // set(props.data, props.colDef.fieldId, null);
59
+ // highlightAllOnFocus = false;
60
+ // } else {
61
+ // // otherwise we start with the current value
62
+ // startValue = props.value;
63
+ // if (props.keyPress === KEY_F2) {
64
+ // highlightAllOnFocus = false;
65
+ // }
66
+ // }
67
+
68
+ // return {
69
+ // value: startValue,
70
+ // open: false,
71
+ // valueContext: valueContextState,
72
+ // highlightAllOnFocus
73
+ // }
74
+ // }
75
+
76
+ // afterGuiAttached() {
77
+ // // get ref from React component
78
+ // const eInput = this.refs.input;
79
+ // eInput.focus();
80
+ // if (this.state.highlightAllOnFocus) {
81
+ // eInput.select();
82
+
83
+ // this.setState({
84
+ // highlightAllOnFocus: false
85
+ // })
86
+ // } else {
87
+ // // when we started editing, we want the carot at the end, not the start.
88
+ // // this comes into play in two scenarios: a) when user hits F2 and b)
89
+ // // when user hits a printable character, then on IE (and only IE) the carot
90
+ // // was placed after the first character, thus 'apply' would end up as 'pplea'
91
+ // const length = eInput.value ? eInput.value.length : 0;
92
+ // if (length > 0) {
93
+ // eInput.setSelectionRange(length, length);
94
+ // }
95
+ // }
96
+ // }
97
+
98
+ // getValue() {
99
+ // return this.state.value;
100
+ // }
101
+
102
+ // handleChange(event) {
103
+ // set(this.props.data, this.props.colDef.fieldId, null);
104
+ // this.setState({
105
+ // value: event.target.value
106
+ // });
107
+ // }
108
+
109
+ // setOpen(open) {
110
+ // this.setState(() => ({ open }));
111
+ // }
112
+
113
+ // trigger(data) {
114
+ // this.props.setValue(data);
115
+ // this.setOpen(false);
116
+ // }
117
+
118
+ // render() {
119
+
120
+ // return (
121
+ // <div>
122
+ // <input ref="input"
123
+ // value={this.state.value}
124
+ // onChange={this.handleChange}
125
+ // style={{ width: "100%" }}
126
+ // />
127
+ // <HyperDetailContext.Provider value={this.state.valueContext}>
128
+ // {this.props.children}
129
+ // </HyperDetailContext.Provider>
130
+ // </div>
131
+ // );
132
+ // }
133
+
134
+ // deleteOrBackspace(event) {
135
+ // return [KEY_DELETE, KEY_BACKSPACE].indexOf(event.keyCode) > -1;
136
+ // }
137
+ // }
138
+
139
+ // export default HyperModuleEditor;
@@ -0,0 +1,152 @@
1
+ // import * as React from 'react';
2
+ // import HyperDetailContext from '@rhplus/wieldy.hyper-module';
3
+ // import set from 'lodash/set';
4
+ // import get from 'lodash/get';
5
+
6
+ // const HyperModuleRenderer =
7
+ // ({value, children, setValue, loadItem, colDef, data, api, props}) =>
8
+ // {
9
+ // const [show, setShow] = React.useState(false);
10
+ // const [, setOpen] = React.useState(false);
11
+
12
+ // const handleClick = () => {
13
+ // onOpen();
14
+ // // onClick && onClick(event);
15
+ // }
16
+
17
+ // // prepsat do css class
18
+ // const ButtonStyle = ({
19
+ // visibility: show ? 'visible' : 'hidden',
20
+ // float: 'right',
21
+ // width: '20px',
22
+ // zIndex: 10000,
23
+ // overflow: 'hidden'
24
+ // })
25
+
26
+ // const onOpen = () => {
27
+ // ChangeValue(true);
28
+ // }
29
+
30
+ // const onClose = () => {
31
+ // setOpen(false);
32
+ // ChangeValue(false);
33
+ // }
34
+
35
+ // const ChangeValue = (open) => {
36
+ // setValueContext(state => ({
37
+ // ...state,
38
+ // open
39
+ // }))
40
+ // }
41
+
42
+ // // const valuePath = (props) => {
43
+ // // return {
44
+ // // id: this.deepValue(props.data, props.colDef.fieldId),
45
+ // // name: props.value
46
+ // // }
47
+ // // }
48
+
49
+ // const trigger = (_data) => {
50
+ // set(data, colDef.fieldId, _data.id);
51
+ // if (colDef.fieldDescription !== undefined && _data.description !== undefined) {
52
+ // set(data, colDef.fieldDescription, _data.description);
53
+ // }
54
+ // if (colDef.fieldObject !== undefined && _data.object !== undefined) {
55
+ // set(data, colDef.fieldObject, _data.object)
56
+ // }
57
+ // if (colDef.fieldAdditional1 !== undefined && _data.additional1 !== undefined) {
58
+ // set(data, colDef.fieldAdditional1, _data.additional1)
59
+ // }
60
+ // if (colDef.fieldAdditional2 !== undefined && _data.additional2 !== undefined) {
61
+ // set(data, colDef.fieldAdditional2, _data.additional2)
62
+ // }
63
+ // setValue(_data.name);
64
+ // setOpen(false);
65
+ // }
66
+
67
+ // // const handleClose = () => {
68
+ // // setOpen(false);
69
+ // // }
70
+
71
+ // const valueContextState = {
72
+ // open: false,
73
+ // trigger,
74
+ // onClose
75
+ // }
76
+
77
+ // const onCellChanged = (event) => {
78
+ // if (event.rowIndex === props.rowIndex &&
79
+ // event.newValue !== props.value) {
80
+
81
+ // const val = get(data, colDef.fieldId);
82
+ // if (val === null) {
83
+ // if (event.newValue != null && event.newValue.length > 0) {
84
+ // loading(event.newValue)
85
+ // }
86
+ // else if (event.newValue === null && val === null) { //opravit
87
+ // handleClick(null);
88
+ // }
89
+ // }
90
+
91
+ // }
92
+ // }
93
+
94
+ // React.useEffect(() => {
95
+ // api.addEventListener("cellValueChanged", onCellChanged);
96
+ // return () => api.removeEventListener("cellValueChanged", onCellChanged);
97
+ // }, []);
98
+
99
+ // const loading = async (_value) => {
100
+ // let result = await loadItem(_value);
101
+ // const {
102
+ // id = null,
103
+ // name = null,
104
+ // description = null,
105
+ // additional1 = null,
106
+ // additional2 = null,
107
+ // object = null
108
+ // } = result || {};
109
+ // set(data, "_rh_plus_ag_grid_new_item", false);
110
+ // setValue(name);
111
+ // set(data, colDef.fieldId, id);
112
+ // if (colDef.fieldDescription !== undefined) {
113
+ // set(data, colDef.fieldDescription, description);
114
+ // }
115
+ // if (colDef.fieldAdditional1 !== undefined) {
116
+ // set(data, colDef.fieldAdditional1, additional1)
117
+ // }
118
+ // if (colDef.fieldAdditional2 !== undefined) {
119
+ // set(data, colDef.fieldAdditional2, additional2)
120
+ // }
121
+ // if (colDef.fieldObject !== undefined) {
122
+ // set(data, colDef.fieldObject, object)
123
+ // }
124
+ // // api.refreshCells({force: true});
125
+ // return result;
126
+ // }
127
+ // const [valueContext, setValueContext] = React.useState(valueContextState);
128
+ // return (
129
+ // <div
130
+ // onMouseMove={() => setShow(true)}
131
+ // onMouseLeave={() => setShow(false)}
132
+ // style={{
133
+ // overflow: 'hidden'
134
+ // }}>
135
+ // {<button
136
+ // onClick={event => handleClick(event)}
137
+ // style={ButtonStyle}
138
+ // >
139
+ // ...
140
+ // </button>}
141
+ // <div style={{zIndex: 1}}
142
+ // >
143
+ // {value}
144
+ // </div>
145
+ // <HyperDetailContext.Provider value={valueContext}>
146
+ // {children}
147
+ // </HyperDetailContext.Provider>
148
+ // </div>
149
+ // )
150
+ // }
151
+
152
+ // export default HyperModuleRenderer;
@@ -0,0 +1,53 @@
1
+ import React from 'react';
2
+
3
+ const getValue = (value, fix, def = '') =>
4
+ Number.isNaN(value) || value === null ? def : parseFloat(value).toFixed(fix);
5
+
6
+ const NotificationOptions = {
7
+ head: messageInfo => {
8
+ const {
9
+ sum,
10
+ square,
11
+ cubic,
12
+ rows,
13
+ cols
14
+ } = messageInfo;
15
+
16
+ const squareMeters = getValue(square / 10000, 2);
17
+ const cubicMeters = getValue(cubic / 1000000, 2);
18
+
19
+ return (
20
+
21
+ <div>
22
+ <span className="mr-1"><b>Rows:</b></span>{getValue(rows, 1)}
23
+ <span className="ml-3 mr-1"><b>Sum:</b></span>{getValue(sum, 1)}
24
+ {cols === 2 ? <span className="ml-3 mr-1"><b>m<sup>2</sup>:</b> {squareMeters}</span> : <span />}
25
+ {cols === 3 ? <span className="ml-3 mr-1"><b>m<sup>3</sup>:</b> {cubicMeters}</span> : <span />}
26
+ </div>)
27
+ },
28
+
29
+ body: messageInfo => {
30
+ const {
31
+ count,
32
+ min,
33
+ max,
34
+ avg,
35
+ } = messageInfo;
36
+ return (
37
+ <>
38
+ <div>
39
+ <span className="mr-2"><b>Min:</b></span>{getValue(min, 2)}
40
+ <span className="ml-2 mr-2"><b>Max:</b></span>{getValue(max, 2)}
41
+ <span className="ml-2 mr-2"><b>Avg:</b></span>{getValue(avg, 2)}
42
+ <span className="ml-2 mr-2"><b>Count:</b></span>{getValue(count, 2)}
43
+ </div>
44
+ </>
45
+ )
46
+ },
47
+ style: {
48
+ width: 520
49
+ },
50
+ placement: 'bottomRight'
51
+ }
52
+
53
+ export default NotificationOptions;
@@ -0,0 +1,10 @@
1
+
2
+ export const RhPlusOnCellDoubleClicked = (
3
+ event,
4
+ options
5
+ ) =>
6
+ {
7
+ // call overrided function
8
+ if (options.onCellDoubleClicked)
9
+ options.onCellDoubleClicked(event);
10
+ }
@@ -0,0 +1,9 @@
1
+ export const RhPlusOnCellEditingStarted = (event, options) => {
2
+
3
+ // call overrided function
4
+ if (options.onCellEditingStarted)
5
+ options.onCellEditingStarted(event);
6
+ event.api.refreshCells({force: true});
7
+
8
+ }
9
+
@@ -0,0 +1,12 @@
1
+
2
+ /* eslint-disable no-param-reassign */
3
+ export const RhPlusOnCellValueChanged = (event, options) =>
4
+ {
5
+ event.data._rh_plus_ag_grid_new_item = false;
6
+ event.data._rh_plus_ag_grid_row_changed = true;
7
+
8
+ // call overrided function
9
+ if (options.onCellValueChanged)
10
+ options.onCellValueChanged(event);
11
+ // event.api.refreshCells({force: true});
12
+ }