@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.
- package/AgGridAddNewItem.js +6 -0
- package/AgGridColumn.js +368 -0
- package/AgGridColumnFilter.js +22 -0
- package/AgGridOnGridReady.js +9 -0
- package/AgGridOnRowDataChanged.js +8 -0
- package/AgGridOnRowDataUpdated.js +32 -0
- package/AgGridPostSort.js +34 -0
- package/AggregationNotification.js +111 -0
- package/Aggregations.js +185 -0
- package/CheckBoxRenderer.jsx +29 -0
- package/Components/ExtendButton.css +6 -0
- package/Components/ExtendButton.jsx +17 -0
- package/CountryCellRenderer.jsx +18 -0
- package/Functions/index.js +21 -0
- package/HeaderTemplates/CommonHeaderTemplate.js +15 -0
- package/HyperModuleEditor.js +139 -0
- package/HyperModuleRenderer.js +152 -0
- package/NotificationOptions.jsx +53 -0
- package/OnCellDoubleClicked.js +10 -0
- package/OnCellEditingStarted.js +9 -0
- package/OnCellValueChanged.js +12 -0
- package/Renderers/BooleanRenderer.jsx +39 -0
- package/Renderers/ButtonRenderer.jsx +48 -0
- package/Renderers/CheckboxRenderer.jsx +35 -0
- package/Renderers/CountrySelectRenderer.jsx +37 -0
- package/Renderers/SelectRenderer.jsx +15 -0
- package/dist/AgGridAddNewItem.d.ts +0 -0
- package/dist/AgGridAddNewItem.js +6 -0
- package/dist/AgGridAddNewItem.js.map +1 -0
- package/dist/AgGridColumn.d.ts +3 -0
- package/dist/AgGridColumn.js +325 -0
- package/dist/AgGridColumn.js.map +1 -0
- package/dist/AgGridColumnFilter.d.ts +4 -0
- package/dist/AgGridColumnFilter.js +19 -0
- package/dist/AgGridColumnFilter.js.map +1 -0
- package/dist/AgGridOnGridReady.d.ts +1 -0
- package/dist/AgGridOnGridReady.js +6 -0
- package/dist/AgGridOnGridReady.js.map +1 -0
- package/dist/AgGridOnRowDataChanged.d.ts +0 -0
- package/dist/AgGridOnRowDataChanged.js +8 -0
- package/dist/AgGridOnRowDataChanged.js.map +1 -0
- package/dist/AgGridOnRowDataUpdated.d.ts +1 -0
- package/dist/AgGridOnRowDataUpdated.js +27 -0
- package/dist/AgGridOnRowDataUpdated.js.map +1 -0
- package/dist/AgGridPostSort.d.ts +1 -0
- package/dist/AgGridPostSort.js +32 -0
- package/dist/AgGridPostSort.js.map +1 -0
- package/dist/AggregationNotification.d.ts +0 -0
- package/dist/AggregationNotification.js +107 -0
- package/dist/AggregationNotification.js.map +1 -0
- package/dist/Aggregations.d.ts +25 -0
- package/dist/Aggregations.js +171 -0
- package/dist/Aggregations.js.map +1 -0
- package/dist/CheckBoxRenderer.d.ts +6 -0
- package/dist/CheckBoxRenderer.js +18 -0
- package/dist/CheckBoxRenderer.js.map +1 -0
- package/dist/Components/ExtendButton.css +6 -0
- package/dist/Components/ExtendButton.d.ts +2 -0
- package/dist/Components/ExtendButton.js +12 -0
- package/dist/Components/ExtendButton.js.map +1 -0
- package/dist/CountryCellRenderer.d.ts +1 -0
- package/dist/CountryCellRenderer.js +12 -0
- package/dist/CountryCellRenderer.js.map +1 -0
- package/dist/Functions/index.d.ts +2 -0
- package/dist/Functions/index.js +19 -0
- package/dist/Functions/index.js.map +1 -0
- package/dist/HeaderTemplates/CommonHeaderTemplate.d.ts +1 -0
- package/dist/HeaderTemplates/CommonHeaderTemplate.js +15 -0
- package/dist/HeaderTemplates/CommonHeaderTemplate.js.map +1 -0
- package/dist/HyperModuleEditor.d.ts +0 -0
- package/dist/HyperModuleEditor.js +119 -0
- package/dist/HyperModuleEditor.js.map +1 -0
- package/dist/HyperModuleRenderer.d.ts +0 -0
- package/dist/HyperModuleRenderer.js +138 -0
- package/dist/HyperModuleRenderer.js.map +1 -0
- package/dist/NotificationOptions.d.ts +9 -0
- package/dist/NotificationOptions.js +21 -0
- package/dist/NotificationOptions.js.map +1 -0
- package/dist/OnCellDoubleClicked.d.ts +1 -0
- package/dist/OnCellDoubleClicked.js +6 -0
- package/dist/OnCellDoubleClicked.js.map +1 -0
- package/dist/OnCellEditingStarted.d.ts +1 -0
- package/dist/OnCellEditingStarted.js +7 -0
- package/dist/OnCellEditingStarted.js.map +1 -0
- package/dist/OnCellValueChanged.d.ts +1 -0
- package/dist/OnCellValueChanged.js +10 -0
- package/dist/OnCellValueChanged.js.map +1 -0
- package/dist/Renderers/BooleanRenderer.d.ts +1 -0
- package/dist/Renderers/BooleanRenderer.js +27 -0
- package/dist/Renderers/BooleanRenderer.js.map +1 -0
- package/dist/Renderers/ButtonRenderer.d.ts +1 -0
- package/dist/Renderers/ButtonRenderer.js +25 -0
- package/dist/Renderers/ButtonRenderer.js.map +1 -0
- package/dist/Renderers/CheckboxRenderer.d.ts +1 -0
- package/dist/Renderers/CheckboxRenderer.js +23 -0
- package/dist/Renderers/CheckboxRenderer.js.map +1 -0
- package/dist/Renderers/CountrySelectRenderer.d.ts +1 -0
- package/dist/Renderers/CountrySelectRenderer.js +20 -0
- package/dist/Renderers/CountrySelectRenderer.js.map +1 -0
- package/dist/Renderers/SelectRenderer.d.ts +1 -0
- package/dist/Renderers/SelectRenderer.js +12 -0
- package/dist/Renderers/SelectRenderer.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +103 -0
- package/dist/index.js.map +1 -0
- package/dist/preview-1727859392810.js +7 -0
- package/dist/util.d.ts +15 -0
- package/dist/util.js +95 -0
- package/dist/util.js.map +1 -0
- package/index.jsx +143 -0
- package/package.json +35 -0
- package/types/asset.d.ts +43 -0
- package/types/style.d.ts +42 -0
- package/util.js +116 -0
package/Aggregations.js
ADDED
|
@@ -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,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,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
|
+
}
|