@visns-studio/visns-components 1.8.4 → 2.0.0
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/.prettierrc.json +7 -0
- package/components/cms/{visns-data-grid.jsx → DataGrid.jsx} +2 -2
- package/components/cms/DropZone.jsx +161 -0
- package/components/cms/Field.jsx +747 -0
- package/components/cms/Form.jsx +475 -0
- package/components/cms/sorting/{list.jsx → List.jsx} +3 -3
- package/components/crm/{visns-async-select.jsx → AsyncSelect.jsx} +9 -9
- package/components/crm/Call.jsx +220 -0
- package/components/crm/{visns-data-grid.jsx → DataGrid.jsx} +263 -274
- package/components/crm/{visns-field.jsx → Field.jsx} +5 -5
- package/components/crm/{visns-form.jsx → Form.jsx} +302 -205
- package/components/crm/{visns-multi-select.jsx → MultiSelect.jsx} +1 -1
- package/components/crm/{visns-navigation.jsx → Navigation.jsx} +22 -18
- package/components/crm/{visns-notification.jsx → Notification.jsx} +1 -1
- package/components/crm/TableFilter.jsx +125 -0
- package/components/crm/auth/Login.jsx +158 -0
- package/components/crm/auth/Profile.jsx +163 -0
- package/components/crm/auth/Reset.jsx +87 -0
- package/components/crm/auth/Verify.jsx +162 -0
- package/components/crm/generic/GenericDetail.jsx +380 -0
- package/components/crm/generic/GenericIndex.jsx +112 -0
- package/components/crm/generic/NotificationList.jsx +64 -0
- package/index.js +37 -19
- package/package.json +6 -6
- package/components/cms/visns-dropzone.jsx +0 -161
- package/components/cms/visns-field.jsx +0 -747
- package/components/cms/visns-form.jsx +0 -475
- package/components/crm/visns-call.jsx +0 -220
- package/components/crm/visns-table-filter.jsx +0 -153
- /package/components/cms/sorting/{item.jsx → Item.jsx} +0 -0
- /package/components/crm/{visns-autocomplete.jsx → Autocomplete.jsx} +0 -0
- /package/components/crm/{visns-download.jsx → Download.jsx} +0 -0
- /package/components/crm/{visns-fetch.jsx → Fetch.jsx} +0 -0
- /package/components/crm/{visns-loader.jsx → Loader.jsx} +0 -0
- /package/components/crm/{visns-select.jsx → Select.jsx} +0 -0
- /package/components/crm/{visns-select-list.jsx → SelectList.jsx} +0 -0
|
@@ -4,20 +4,20 @@ import React, {
|
|
|
4
4
|
useEffect,
|
|
5
5
|
useImperativeHandle,
|
|
6
6
|
useState,
|
|
7
|
-
} from
|
|
8
|
-
import { useNavigate } from
|
|
9
|
-
import axios from
|
|
10
|
-
import debounce from
|
|
11
|
-
import moment from
|
|
12
|
-
import numeral from
|
|
13
|
-
import Popup from
|
|
14
|
-
import parse from
|
|
15
|
-
import NumberFilter from
|
|
16
|
-
import SelectFilter from
|
|
17
|
-
import DateFilter from
|
|
18
|
-
import ReactDataGrid from
|
|
19
|
-
import { confirmAlert } from
|
|
20
|
-
import { toast } from
|
|
7
|
+
} from 'react';
|
|
8
|
+
import { useNavigate } from 'react-router-dom';
|
|
9
|
+
import axios from 'axios';
|
|
10
|
+
import debounce from 'lodash.debounce';
|
|
11
|
+
import moment from 'moment';
|
|
12
|
+
import numeral from 'numeral';
|
|
13
|
+
import Popup from 'reactjs-popup';
|
|
14
|
+
import parse from 'html-react-parser';
|
|
15
|
+
import NumberFilter from '@inovua/reactdatagrid-community/NumberFilter';
|
|
16
|
+
import SelectFilter from '@inovua/reactdatagrid-community/SelectFilter';
|
|
17
|
+
import DateFilter from '@inovua/reactdatagrid-community/DateFilter';
|
|
18
|
+
import ReactDataGrid from '@inovua/reactdatagrid-community';
|
|
19
|
+
import { confirmAlert } from 'react-confirm-alert';
|
|
20
|
+
import { toast } from 'react-toastify';
|
|
21
21
|
import {
|
|
22
22
|
ArrowCounterClockwise,
|
|
23
23
|
Backspace,
|
|
@@ -33,13 +33,13 @@ import {
|
|
|
33
33
|
Search,
|
|
34
34
|
ShippingBoxV1,
|
|
35
35
|
TriangleAlert,
|
|
36
|
-
} from
|
|
36
|
+
} from 'akar-icons';
|
|
37
37
|
|
|
38
|
-
import
|
|
39
|
-
import
|
|
38
|
+
import '@inovua/reactdatagrid-community/index.css';
|
|
39
|
+
import 'react-confirm-alert/src/react-confirm-alert.css';
|
|
40
40
|
|
|
41
|
-
import CustomFetch from
|
|
42
|
-
import Form from
|
|
41
|
+
import CustomFetch from './Fetch';
|
|
42
|
+
import Form from './Form';
|
|
43
43
|
|
|
44
44
|
const loadData = async (
|
|
45
45
|
{ skip, limit, sortInfo, currentData, filterValue, groupBy },
|
|
@@ -52,7 +52,7 @@ const loadData = async (
|
|
|
52
52
|
|
|
53
53
|
if (sortInfo) {
|
|
54
54
|
params.sortBy = sortInfo.name;
|
|
55
|
-
params.sort = sortInfo.dir === 1 ?
|
|
55
|
+
params.sort = sortInfo.dir === 1 ? 'asc' : 'desc';
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
if (ajaxSetting && ajaxSetting.where) {
|
|
@@ -66,7 +66,7 @@ const loadData = async (
|
|
|
66
66
|
(w) => w.id === identifier
|
|
67
67
|
);
|
|
68
68
|
|
|
69
|
-
if (fv.value !== null && fv.value !==
|
|
69
|
+
if (fv.value !== null && fv.value !== '') {
|
|
70
70
|
if (existingIndex !== -1) {
|
|
71
71
|
params.where[existingIndex].value = fv.value;
|
|
72
72
|
} else {
|
|
@@ -89,7 +89,7 @@ const loadData = async (
|
|
|
89
89
|
const { data, total } = response.data;
|
|
90
90
|
return { data, count: total };
|
|
91
91
|
} catch (error) {
|
|
92
|
-
console.error(
|
|
92
|
+
console.error('Error fetching data:', error);
|
|
93
93
|
return { data: [], count: 0 };
|
|
94
94
|
}
|
|
95
95
|
};
|
|
@@ -102,11 +102,9 @@ const DataGrid = forwardRef(
|
|
|
102
102
|
columns,
|
|
103
103
|
settings,
|
|
104
104
|
setFilterData,
|
|
105
|
+
setConfig,
|
|
105
106
|
setTotal,
|
|
106
107
|
style,
|
|
107
|
-
tableFilters,
|
|
108
|
-
historySearch,
|
|
109
|
-
historyUrl,
|
|
110
108
|
},
|
|
111
109
|
ref
|
|
112
110
|
) => {
|
|
@@ -114,25 +112,11 @@ const DataGrid = forwardRef(
|
|
|
114
112
|
|
|
115
113
|
/** Modal States */
|
|
116
114
|
const [formData, setFormData] = useState({});
|
|
117
|
-
const [formType, setFormType] = useState(
|
|
115
|
+
const [formType, setFormType] = useState('');
|
|
118
116
|
const [formId, setFormId] = useState(0);
|
|
119
117
|
const [modalShow, setModalShow] = useState(false);
|
|
120
118
|
|
|
121
119
|
/** Modal Functions */
|
|
122
|
-
const childDropdownCallback = (data) => {
|
|
123
|
-
let _form = { ...formData };
|
|
124
|
-
|
|
125
|
-
if (formData.fields.length > 0) {
|
|
126
|
-
formData.fields.forEach((a, b) => {
|
|
127
|
-
if (a.id === data.id) {
|
|
128
|
-
_form.fields[b].options = data.data;
|
|
129
|
-
}
|
|
130
|
-
});
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
setFormData(_form);
|
|
134
|
-
};
|
|
135
|
-
|
|
136
120
|
const modalOpen = (formType, formId) => {
|
|
137
121
|
setModalShow(true);
|
|
138
122
|
setFormType(formType);
|
|
@@ -149,7 +133,7 @@ const DataGrid = forwardRef(
|
|
|
149
133
|
|
|
150
134
|
/** Table States */
|
|
151
135
|
const [dataReload, setDataReload] = useState(0);
|
|
152
|
-
const [dSearch, setDSearch] = useState(
|
|
136
|
+
const [dSearch, setDSearch] = useState('');
|
|
153
137
|
const data = useCallback(
|
|
154
138
|
(params) => {
|
|
155
139
|
const sqlResult = loadData(params, dSearch, ajaxSetting);
|
|
@@ -172,15 +156,8 @@ const DataGrid = forwardRef(
|
|
|
172
156
|
const [filterDataSource, setFilterDataSource] = useState([]);
|
|
173
157
|
const [filterValue, setFilterValue] = useState([]);
|
|
174
158
|
const [gridColumns, setGridColumns] = useState([]);
|
|
175
|
-
const [limit, setLimit] = useState(
|
|
176
|
-
const [search, setSearch] = useState(
|
|
177
|
-
const sortInfo =
|
|
178
|
-
ajaxSetting.sortBy && ajaxSetting.sort
|
|
179
|
-
? {
|
|
180
|
-
name: ajaxSetting.sortBy,
|
|
181
|
-
dir: ajaxSetting.sort === "asc" ? 1 : -1,
|
|
182
|
-
}
|
|
183
|
-
: null;
|
|
159
|
+
const [limit, setLimit] = useState(0);
|
|
160
|
+
const [search, setSearch] = useState('');
|
|
184
161
|
|
|
185
162
|
/** Table Functions */
|
|
186
163
|
useImperativeHandle(ref, () => ({
|
|
@@ -190,20 +167,6 @@ const DataGrid = forwardRef(
|
|
|
190
167
|
}));
|
|
191
168
|
|
|
192
169
|
const handleFilterChange = useCallback((d) => {
|
|
193
|
-
// d.forEach((filterValue) => {
|
|
194
|
-
// if (filterValue.reset && filterValue.reset.length > 0) {
|
|
195
|
-
// filterValue.reset.forEach((reset) => {
|
|
196
|
-
// const existingIndex = d.findIndex(
|
|
197
|
-
// (f) => f.key === reset
|
|
198
|
-
// );
|
|
199
|
-
|
|
200
|
-
// if (existingIndex !== -1) {
|
|
201
|
-
// d[existingIndex].value = "";
|
|
202
|
-
// }
|
|
203
|
-
// });
|
|
204
|
-
// }
|
|
205
|
-
// });
|
|
206
|
-
|
|
207
170
|
setFilterValue(d);
|
|
208
171
|
}, []);
|
|
209
172
|
|
|
@@ -214,32 +177,32 @@ const DataGrid = forwardRef(
|
|
|
214
177
|
|
|
215
178
|
const handleSettingClick = (s, d) => {
|
|
216
179
|
switch (s.id) {
|
|
217
|
-
case
|
|
218
|
-
modalOpen(
|
|
180
|
+
case 'update':
|
|
181
|
+
modalOpen('update', d.id);
|
|
219
182
|
break;
|
|
220
|
-
case
|
|
183
|
+
case 'delete':
|
|
221
184
|
confirmAlert({
|
|
222
|
-
title:
|
|
185
|
+
title: 'Delete Item',
|
|
223
186
|
message:
|
|
224
|
-
s.description && s.description !==
|
|
187
|
+
s.description && s.description !== ''
|
|
225
188
|
? s.description
|
|
226
189
|
: `Are you sure you want to delete ${
|
|
227
190
|
d.name
|
|
228
191
|
? d.name
|
|
229
192
|
: d.label
|
|
230
193
|
? d.label
|
|
231
|
-
:
|
|
194
|
+
: 'this item'
|
|
232
195
|
}?`,
|
|
233
196
|
buttons: [
|
|
234
197
|
{
|
|
235
|
-
label:
|
|
198
|
+
label: 'Yes',
|
|
236
199
|
onClick: () =>
|
|
237
200
|
CustomFetch(
|
|
238
|
-
form.url +
|
|
239
|
-
|
|
201
|
+
form.url + '/' + d[form.primaryKey],
|
|
202
|
+
'DELETE',
|
|
240
203
|
{},
|
|
241
204
|
(result) => {
|
|
242
|
-
if (result.error ===
|
|
205
|
+
if (result.error === '') {
|
|
243
206
|
const min = 0;
|
|
244
207
|
const max = 999999999;
|
|
245
208
|
const randomNumber = Math.floor(
|
|
@@ -264,7 +227,7 @@ const DataGrid = forwardRef(
|
|
|
264
227
|
),
|
|
265
228
|
},
|
|
266
229
|
{
|
|
267
|
-
label:
|
|
230
|
+
label: 'No',
|
|
268
231
|
onClick: () => close(),
|
|
269
232
|
},
|
|
270
233
|
],
|
|
@@ -273,17 +236,17 @@ const DataGrid = forwardRef(
|
|
|
273
236
|
default:
|
|
274
237
|
confirmAlert({
|
|
275
238
|
title: s.title,
|
|
276
|
-
message:
|
|
239
|
+
message: '',
|
|
277
240
|
buttons: [
|
|
278
241
|
{
|
|
279
|
-
label:
|
|
242
|
+
label: 'Yes',
|
|
280
243
|
onClick: () =>
|
|
281
244
|
CustomFetch(
|
|
282
|
-
s.url +
|
|
245
|
+
s.url + '/' + d[form.primaryKey],
|
|
283
246
|
s.method,
|
|
284
247
|
{},
|
|
285
248
|
function (result) {
|
|
286
|
-
if (result.error ===
|
|
249
|
+
if (result.error === '') {
|
|
287
250
|
const min = 0;
|
|
288
251
|
const max = 999999999;
|
|
289
252
|
const randomNumber = Math.floor(
|
|
@@ -306,7 +269,7 @@ const DataGrid = forwardRef(
|
|
|
306
269
|
),
|
|
307
270
|
},
|
|
308
271
|
{
|
|
309
|
-
label:
|
|
272
|
+
label: 'No',
|
|
310
273
|
onClick: () => close(),
|
|
311
274
|
},
|
|
312
275
|
],
|
|
@@ -325,9 +288,26 @@ const DataGrid = forwardRef(
|
|
|
325
288
|
setDataReload(randomNumber);
|
|
326
289
|
};
|
|
327
290
|
|
|
291
|
+
const handleSort = (value) => {
|
|
292
|
+
setConfig((prevState) => {
|
|
293
|
+
const { id, dir } = value || {}; // Destructure id and dir from value (if provided)
|
|
294
|
+
const sortBy = id || null;
|
|
295
|
+
const sort = dir === 1 ? 'asc' : dir === -1 ? 'desc' : null;
|
|
296
|
+
|
|
297
|
+
return {
|
|
298
|
+
...prevState,
|
|
299
|
+
ajaxSetting: {
|
|
300
|
+
...prevState.ajaxSetting,
|
|
301
|
+
sortBy,
|
|
302
|
+
sort,
|
|
303
|
+
},
|
|
304
|
+
};
|
|
305
|
+
});
|
|
306
|
+
};
|
|
307
|
+
|
|
328
308
|
const onRowClick = useCallback((rowProps, event) => {
|
|
329
309
|
const cellElement = event.target.closest(
|
|
330
|
-
|
|
310
|
+
'.InovuaReactDataGrid__cell'
|
|
331
311
|
);
|
|
332
312
|
const columnIndex = Array.from(
|
|
333
313
|
cellElement.parentNode.children
|
|
@@ -339,7 +319,7 @@ const DataGrid = forwardRef(
|
|
|
339
319
|
const column = rowProps.columns[columnIndex];
|
|
340
320
|
|
|
341
321
|
if (column.link && column.link.url) {
|
|
342
|
-
const fileRelationArray = column.id.split(
|
|
322
|
+
const fileRelationArray = column.id.split('.');
|
|
343
323
|
const linkUrl = column.link.url;
|
|
344
324
|
const linkKey = rowProps.columns[columnIndex].link.key;
|
|
345
325
|
const rowData = rowProps.data[linkKey];
|
|
@@ -361,11 +341,11 @@ const DataGrid = forwardRef(
|
|
|
361
341
|
|
|
362
342
|
window.open(
|
|
363
343
|
`${linkPopup}/${rowData}`,
|
|
364
|
-
|
|
365
|
-
|
|
344
|
+
'',
|
|
345
|
+
'width=1440,height=1024,menubar=1,resizable=1,status=1,titlebar=1,toolbar=1'
|
|
366
346
|
);
|
|
367
347
|
} else {
|
|
368
|
-
modalOpen(
|
|
348
|
+
modalOpen('update', rowProps.data[form.primaryKey]);
|
|
369
349
|
}
|
|
370
350
|
}
|
|
371
351
|
}, []);
|
|
@@ -396,14 +376,14 @@ const DataGrid = forwardRef(
|
|
|
396
376
|
if (form.create.url) {
|
|
397
377
|
navigate(form.create.url);
|
|
398
378
|
} else {
|
|
399
|
-
modalOpen(
|
|
379
|
+
modalOpen('create', 0);
|
|
400
380
|
}
|
|
401
381
|
} else {
|
|
402
382
|
if (form.url) {
|
|
403
383
|
window.open(
|
|
404
384
|
form.url,
|
|
405
|
-
|
|
406
|
-
|
|
385
|
+
'',
|
|
386
|
+
'width=1440,height=1024,menubar=1,resizable=1,status=1,titlebar=1,toolbar=1'
|
|
407
387
|
);
|
|
408
388
|
}
|
|
409
389
|
}
|
|
@@ -435,7 +415,7 @@ const DataGrid = forwardRef(
|
|
|
435
415
|
) : (
|
|
436
416
|
<div
|
|
437
417
|
className="filterInput--alt"
|
|
438
|
-
style={{ height:
|
|
418
|
+
style={{ height: '37px' }}
|
|
439
419
|
></div>
|
|
440
420
|
);
|
|
441
421
|
};
|
|
@@ -445,10 +425,10 @@ const DataGrid = forwardRef(
|
|
|
445
425
|
const assetPath =
|
|
446
426
|
import.meta.env.REACT_APP_ASSET_PATH !== undefined
|
|
447
427
|
? import.meta.env.REACT_APP_ASSET_PATH
|
|
448
|
-
:
|
|
428
|
+
: '';
|
|
449
429
|
|
|
450
430
|
const addIcon = (src, icon, alt, tooltipContent, key) => {
|
|
451
|
-
if (src && src !==
|
|
431
|
+
if (src && src !== '') {
|
|
452
432
|
icons.push(
|
|
453
433
|
<img
|
|
454
434
|
src={`${assetPath}${src}`}
|
|
@@ -461,15 +441,15 @@ const DataGrid = forwardRef(
|
|
|
461
441
|
} else {
|
|
462
442
|
let IconComponent = null;
|
|
463
443
|
|
|
464
|
-
if (icon ===
|
|
444
|
+
if (icon === 'archive') {
|
|
465
445
|
IconComponent = ShippingBoxV1;
|
|
466
|
-
} else if (icon ===
|
|
446
|
+
} else if (icon === 'folder') {
|
|
467
447
|
IconComponent = Folder;
|
|
468
|
-
} else if (icon ===
|
|
448
|
+
} else if (icon === 'inbox') {
|
|
469
449
|
IconComponent = Inbox;
|
|
470
|
-
} else if (icon ===
|
|
450
|
+
} else if (icon === 'network') {
|
|
471
451
|
IconComponent = Network;
|
|
472
|
-
} else if (icon ===
|
|
452
|
+
} else if (icon === 'urgent') {
|
|
473
453
|
IconComponent = TriangleAlert;
|
|
474
454
|
}
|
|
475
455
|
|
|
@@ -490,12 +470,12 @@ const DataGrid = forwardRef(
|
|
|
490
470
|
|
|
491
471
|
c.config.forEach((config, configKey) => {
|
|
492
472
|
const fieldValue = config.id.reduce((acc, id) => {
|
|
493
|
-
if (acc ===
|
|
473
|
+
if (acc === '') {
|
|
494
474
|
return data[id];
|
|
495
475
|
} else {
|
|
496
476
|
return acc[id];
|
|
497
477
|
}
|
|
498
|
-
},
|
|
478
|
+
}, '');
|
|
499
479
|
|
|
500
480
|
const iconData = config.icons.find(
|
|
501
481
|
(icon) => icon.value === fieldValue
|
|
@@ -539,21 +519,21 @@ const DataGrid = forwardRef(
|
|
|
539
519
|
if (
|
|
540
520
|
d.hasOwnProperty(s.active.id) &&
|
|
541
521
|
d[s.active.id] === s.active.value &&
|
|
542
|
-
s.active.type !==
|
|
543
|
-
s.active.type !==
|
|
522
|
+
s.active.type !== 'greater' &&
|
|
523
|
+
s.active.type !== 'not null'
|
|
544
524
|
) {
|
|
545
525
|
iconStyle = {
|
|
546
526
|
color: s.active.colour,
|
|
547
527
|
};
|
|
548
528
|
} else if (
|
|
549
|
-
s.active.type ===
|
|
529
|
+
s.active.type === 'greater' &&
|
|
550
530
|
d[s.active.id] > s.active.value
|
|
551
531
|
) {
|
|
552
532
|
iconStyle = {
|
|
553
533
|
color: s.active.colour,
|
|
554
534
|
};
|
|
555
535
|
} else if (
|
|
556
|
-
s.active.type ===
|
|
536
|
+
s.active.type === 'not null' &&
|
|
557
537
|
d[s.active.id] !== null
|
|
558
538
|
) {
|
|
559
539
|
iconStyle = {
|
|
@@ -561,7 +541,7 @@ const DataGrid = forwardRef(
|
|
|
561
541
|
};
|
|
562
542
|
} else {
|
|
563
543
|
iconStyle = {
|
|
564
|
-
color:
|
|
544
|
+
color: '',
|
|
565
545
|
};
|
|
566
546
|
}
|
|
567
547
|
}
|
|
@@ -586,23 +566,23 @@ const DataGrid = forwardRef(
|
|
|
586
566
|
|
|
587
567
|
if (allow) {
|
|
588
568
|
switch (s.id) {
|
|
589
|
-
case
|
|
569
|
+
case 'archive':
|
|
590
570
|
return getIconComponent(ShippingBoxV1);
|
|
591
|
-
case
|
|
571
|
+
case 'complete':
|
|
592
572
|
return getIconComponent(Check);
|
|
593
|
-
case
|
|
573
|
+
case 'copy':
|
|
594
574
|
return getIconComponent(Copy);
|
|
595
|
-
case
|
|
575
|
+
case 'delete':
|
|
596
576
|
return getIconComponent(Backspace);
|
|
597
|
-
case
|
|
577
|
+
case 'family':
|
|
598
578
|
return getIconComponent(Network);
|
|
599
|
-
case
|
|
579
|
+
case 'primary':
|
|
600
580
|
return getIconComponent(Ribbon);
|
|
601
|
-
case
|
|
581
|
+
case 'restore':
|
|
602
582
|
return getIconComponent(ArrowCounterClockwise);
|
|
603
|
-
case
|
|
583
|
+
case 'ssa':
|
|
604
584
|
return getIconComponent(Clock);
|
|
605
|
-
case
|
|
585
|
+
case 'update':
|
|
606
586
|
return getIconComponent(Edit);
|
|
607
587
|
default:
|
|
608
588
|
return null;
|
|
@@ -672,36 +652,35 @@ const DataGrid = forwardRef(
|
|
|
672
652
|
};
|
|
673
653
|
|
|
674
654
|
switch (column.type) {
|
|
675
|
-
case
|
|
655
|
+
case 'address':
|
|
676
656
|
return {
|
|
677
657
|
...commonProps,
|
|
678
658
|
name: `${column.type}.${column.id}`,
|
|
679
659
|
render: ({ data }) => {
|
|
680
|
-
|
|
660
|
+
const addressFields = [
|
|
661
|
+
'address1',
|
|
662
|
+
'address2',
|
|
663
|
+
'suburb',
|
|
664
|
+
'postcode',
|
|
665
|
+
];
|
|
681
666
|
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
667
|
+
const addressValue = addressFields
|
|
668
|
+
.filter((field) => data[field])
|
|
669
|
+
.map((field) => data[field])
|
|
670
|
+
.join(' ');
|
|
685
671
|
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
}
|
|
672
|
+
const stateValue =
|
|
673
|
+
data.state?.name || data.state || '';
|
|
689
674
|
|
|
690
|
-
|
|
691
|
-
value += `${data.suburb} `;
|
|
692
|
-
}
|
|
693
|
-
|
|
694
|
-
if (data.postcode) {
|
|
695
|
-
value += `${data.postcode} `;
|
|
696
|
-
}
|
|
675
|
+
const value = `${addressValue} ${stateValue}`;
|
|
697
676
|
|
|
698
677
|
return <span>{value}</span>;
|
|
699
678
|
},
|
|
700
679
|
};
|
|
701
|
-
case
|
|
680
|
+
case 'age':
|
|
702
681
|
if (column.filter && column.filter.type) {
|
|
703
682
|
switch (column.filter.type) {
|
|
704
|
-
case
|
|
683
|
+
case 'number':
|
|
705
684
|
filterEditor = NumberFilter;
|
|
706
685
|
break;
|
|
707
686
|
default:
|
|
@@ -714,19 +693,19 @@ const DataGrid = forwardRef(
|
|
|
714
693
|
|
|
715
694
|
return {
|
|
716
695
|
...commonProps,
|
|
717
|
-
type:
|
|
696
|
+
type: 'number',
|
|
718
697
|
filterEditor: filterEditor,
|
|
719
698
|
name: `${column.type}.${column.id}`,
|
|
720
699
|
render: ({ data }) => {
|
|
721
700
|
value = column.id.reduce((acc, id) => {
|
|
722
|
-
if (acc ===
|
|
701
|
+
if (acc === '') {
|
|
723
702
|
return data[id];
|
|
724
703
|
} else {
|
|
725
704
|
return acc[id];
|
|
726
705
|
}
|
|
727
|
-
},
|
|
706
|
+
}, '');
|
|
728
707
|
|
|
729
|
-
if (value !==
|
|
708
|
+
if (value !== '' && value !== null) {
|
|
730
709
|
date = moment(value);
|
|
731
710
|
|
|
732
711
|
return (
|
|
@@ -735,7 +714,7 @@ const DataGrid = forwardRef(
|
|
|
735
714
|
date,
|
|
736
715
|
column.duration
|
|
737
716
|
? column.duration
|
|
738
|
-
:
|
|
717
|
+
: 'years'
|
|
739
718
|
)}
|
|
740
719
|
</span>
|
|
741
720
|
);
|
|
@@ -744,7 +723,7 @@ const DataGrid = forwardRef(
|
|
|
744
723
|
}
|
|
745
724
|
},
|
|
746
725
|
};
|
|
747
|
-
case
|
|
726
|
+
case 'arrayCount':
|
|
748
727
|
return {
|
|
749
728
|
...commonProps,
|
|
750
729
|
name: `${column.type}.${column.id}`,
|
|
@@ -757,7 +736,7 @@ const DataGrid = forwardRef(
|
|
|
757
736
|
}
|
|
758
737
|
},
|
|
759
738
|
};
|
|
760
|
-
case
|
|
739
|
+
case 'coding':
|
|
761
740
|
return {
|
|
762
741
|
...commonProps,
|
|
763
742
|
name: `${column.type}.${column.id}`,
|
|
@@ -770,7 +749,7 @@ const DataGrid = forwardRef(
|
|
|
770
749
|
}
|
|
771
750
|
},
|
|
772
751
|
};
|
|
773
|
-
case
|
|
752
|
+
case 'colour':
|
|
774
753
|
return {
|
|
775
754
|
...commonProps,
|
|
776
755
|
name: `${column.type}.${column.id}`,
|
|
@@ -780,23 +759,23 @@ const DataGrid = forwardRef(
|
|
|
780
759
|
return (
|
|
781
760
|
<div
|
|
782
761
|
style={{
|
|
783
|
-
width:
|
|
784
|
-
height:
|
|
785
|
-
borderRadius:
|
|
786
|
-
overflow:
|
|
762
|
+
width: '25px',
|
|
763
|
+
height: '25px',
|
|
764
|
+
borderRadius: '10px',
|
|
765
|
+
overflow: 'hidden',
|
|
787
766
|
}}
|
|
788
767
|
>
|
|
789
768
|
<div
|
|
790
769
|
style={{
|
|
791
770
|
background:
|
|
792
771
|
data[column.id] +
|
|
793
|
-
|
|
794
|
-
height:
|
|
795
|
-
width:
|
|
796
|
-
cursor:
|
|
797
|
-
position:
|
|
772
|
+
' none repeat scroll 0% 0%',
|
|
773
|
+
height: '100%',
|
|
774
|
+
width: '100%',
|
|
775
|
+
cursor: 'pointer',
|
|
776
|
+
position: 'relative',
|
|
798
777
|
outline:
|
|
799
|
-
|
|
778
|
+
'currentcolor none medium',
|
|
800
779
|
}}
|
|
801
780
|
></div>
|
|
802
781
|
</div>
|
|
@@ -806,7 +785,7 @@ const DataGrid = forwardRef(
|
|
|
806
785
|
}
|
|
807
786
|
},
|
|
808
787
|
};
|
|
809
|
-
case
|
|
788
|
+
case 'created_by':
|
|
810
789
|
return {
|
|
811
790
|
...commonProps,
|
|
812
791
|
name: `${column.type}.${column.id}`,
|
|
@@ -825,14 +804,14 @@ const DataGrid = forwardRef(
|
|
|
825
804
|
}
|
|
826
805
|
},
|
|
827
806
|
};
|
|
828
|
-
case
|
|
807
|
+
case 'currency':
|
|
829
808
|
return {
|
|
830
809
|
...commonProps,
|
|
831
810
|
name: column.id,
|
|
832
811
|
render: ({ data }) => {
|
|
833
812
|
if (data) {
|
|
834
813
|
data = numeral(data[column.id]).format(
|
|
835
|
-
|
|
814
|
+
'$0,0.00'
|
|
836
815
|
);
|
|
837
816
|
|
|
838
817
|
return <span>{data}</span>;
|
|
@@ -841,13 +820,13 @@ const DataGrid = forwardRef(
|
|
|
841
820
|
}
|
|
842
821
|
},
|
|
843
822
|
};
|
|
844
|
-
case
|
|
823
|
+
case 'date':
|
|
845
824
|
if (column.filter && column.filter.type) {
|
|
846
825
|
filterEditor = DateFilter;
|
|
847
826
|
filterEditorProps = (props, { index }) => {
|
|
848
827
|
return {
|
|
849
|
-
dateFormat:
|
|
850
|
-
placeholder:
|
|
828
|
+
dateFormat: 'DD-MM-YYYY',
|
|
829
|
+
placeholder: 'All Dates',
|
|
851
830
|
};
|
|
852
831
|
};
|
|
853
832
|
} else {
|
|
@@ -866,18 +845,18 @@ const DataGrid = forwardRef(
|
|
|
866
845
|
data[column.id] &&
|
|
867
846
|
moment(data[column.id]).isValid() &&
|
|
868
847
|
moment(data[column.id]).format(
|
|
869
|
-
|
|
870
|
-
) !==
|
|
848
|
+
'YYYY-MM-DD'
|
|
849
|
+
) !== '1970-01-01'
|
|
871
850
|
) {
|
|
872
851
|
const value = moment(
|
|
873
852
|
data[column.id]
|
|
874
|
-
).format(column.format ||
|
|
853
|
+
).format(column.format || 'DD-MM-YYYY');
|
|
875
854
|
style = {};
|
|
876
855
|
|
|
877
856
|
if (
|
|
878
857
|
column.active &&
|
|
879
858
|
column.active.id &&
|
|
880
|
-
column.active.value ===
|
|
859
|
+
column.active.value === 'expired'
|
|
881
860
|
) {
|
|
882
861
|
if (
|
|
883
862
|
data[column.active.id] &&
|
|
@@ -897,13 +876,13 @@ const DataGrid = forwardRef(
|
|
|
897
876
|
}
|
|
898
877
|
},
|
|
899
878
|
};
|
|
900
|
-
case
|
|
879
|
+
case 'daterange':
|
|
901
880
|
if (column.filter && column.filter.type) {
|
|
902
881
|
filterEditor = DateFilter;
|
|
903
882
|
filterEditorProps = (props, { index }) => {
|
|
904
883
|
return {
|
|
905
|
-
dateFormat:
|
|
906
|
-
placeholder:
|
|
884
|
+
dateFormat: 'DD-MM-YYYY',
|
|
885
|
+
placeholder: 'All Dates',
|
|
907
886
|
};
|
|
908
887
|
};
|
|
909
888
|
} else {
|
|
@@ -922,11 +901,11 @@ const DataGrid = forwardRef(
|
|
|
922
901
|
data[column.id[0]] &&
|
|
923
902
|
moment(data[column.id[0]]).isValid() &&
|
|
924
903
|
moment(data[column.id[0]]).format(
|
|
925
|
-
|
|
926
|
-
) !==
|
|
904
|
+
'YYYY-MM-DD'
|
|
905
|
+
) !== '1970-01-01'
|
|
927
906
|
) {
|
|
928
907
|
value = moment(data[column.id[0]]).format(
|
|
929
|
-
column.format ||
|
|
908
|
+
column.format || 'DD-MM-YYYY'
|
|
930
909
|
);
|
|
931
910
|
}
|
|
932
911
|
|
|
@@ -935,24 +914,24 @@ const DataGrid = forwardRef(
|
|
|
935
914
|
data[column.id[1]] &&
|
|
936
915
|
moment(data[column.id[1]]).isValid() &&
|
|
937
916
|
moment(data[column.id[1]]).format(
|
|
938
|
-
|
|
939
|
-
) !==
|
|
917
|
+
'YYYY-MM-DD'
|
|
918
|
+
) !== '1970-01-01'
|
|
940
919
|
) {
|
|
941
920
|
value += ` - ${moment(
|
|
942
921
|
data[column.id[1]]
|
|
943
|
-
).format(column.format ||
|
|
922
|
+
).format(column.format || 'DD-MM-YYYY')}`;
|
|
944
923
|
}
|
|
945
924
|
|
|
946
925
|
return <span>{value}</span>;
|
|
947
926
|
},
|
|
948
927
|
};
|
|
949
|
-
case
|
|
928
|
+
case 'datetime':
|
|
950
929
|
if (column.filter && column.filter.type) {
|
|
951
930
|
filterEditor = DateFilter;
|
|
952
931
|
filterEditorProps = (props, { index }) => {
|
|
953
932
|
return {
|
|
954
|
-
dateFormat:
|
|
955
|
-
placeholder:
|
|
933
|
+
dateFormat: 'DD-MM-YYYY',
|
|
934
|
+
placeholder: 'All Dates',
|
|
956
935
|
};
|
|
957
936
|
};
|
|
958
937
|
} else {
|
|
@@ -971,13 +950,13 @@ const DataGrid = forwardRef(
|
|
|
971
950
|
data[column.id] &&
|
|
972
951
|
moment(data[column.id]).isValid() &&
|
|
973
952
|
moment(data[column.id]).format(
|
|
974
|
-
|
|
975
|
-
) !==
|
|
953
|
+
'YYYY-MM-DD'
|
|
954
|
+
) !== '1970-01-01'
|
|
976
955
|
) {
|
|
977
956
|
data = moment(data[column.id]).format(
|
|
978
957
|
column.format
|
|
979
958
|
? column.format
|
|
980
|
-
:
|
|
959
|
+
: 'DD-MM-YYYY hh:mm A'
|
|
981
960
|
);
|
|
982
961
|
|
|
983
962
|
return <span>{data}</span>;
|
|
@@ -986,7 +965,7 @@ const DataGrid = forwardRef(
|
|
|
986
965
|
}
|
|
987
966
|
},
|
|
988
967
|
};
|
|
989
|
-
case
|
|
968
|
+
case 'file':
|
|
990
969
|
return {
|
|
991
970
|
...commonProps,
|
|
992
971
|
name: column.id,
|
|
@@ -1009,7 +988,7 @@ const DataGrid = forwardRef(
|
|
|
1009
988
|
}
|
|
1010
989
|
},
|
|
1011
990
|
};
|
|
1012
|
-
case
|
|
991
|
+
case 'icons':
|
|
1013
992
|
return {
|
|
1014
993
|
...commonProps,
|
|
1015
994
|
name: column.id,
|
|
@@ -1037,13 +1016,13 @@ const DataGrid = forwardRef(
|
|
|
1037
1016
|
}
|
|
1038
1017
|
},
|
|
1039
1018
|
};
|
|
1040
|
-
case
|
|
1019
|
+
case 'image':
|
|
1041
1020
|
return {
|
|
1042
1021
|
...commonProps,
|
|
1043
1022
|
name: column.id,
|
|
1044
1023
|
render: ({ data }) => {
|
|
1045
1024
|
if (data && data[column.id]) {
|
|
1046
|
-
|
|
1025
|
+
fileUrl =
|
|
1047
1026
|
data[column.id][0]?.file_url ||
|
|
1048
1027
|
data[column.id]?.file_url;
|
|
1049
1028
|
|
|
@@ -1061,7 +1040,7 @@ const DataGrid = forwardRef(
|
|
|
1061
1040
|
return null;
|
|
1062
1041
|
},
|
|
1063
1042
|
};
|
|
1064
|
-
case
|
|
1043
|
+
case 'json':
|
|
1065
1044
|
return {
|
|
1066
1045
|
...commonProps,
|
|
1067
1046
|
name: column.id,
|
|
@@ -1079,13 +1058,13 @@ const DataGrid = forwardRef(
|
|
|
1079
1058
|
}
|
|
1080
1059
|
},
|
|
1081
1060
|
};
|
|
1082
|
-
case
|
|
1061
|
+
case 'number':
|
|
1083
1062
|
return {
|
|
1084
1063
|
...commonProps,
|
|
1085
1064
|
name: column.id,
|
|
1086
|
-
type:
|
|
1065
|
+
type: 'number',
|
|
1087
1066
|
};
|
|
1088
|
-
case
|
|
1067
|
+
case 'option':
|
|
1089
1068
|
selectedDataSource = filterDataSource.reduce(
|
|
1090
1069
|
(acc, fds) => {
|
|
1091
1070
|
if (fds.id === column.id) {
|
|
@@ -1099,13 +1078,13 @@ const DataGrid = forwardRef(
|
|
|
1099
1078
|
if (
|
|
1100
1079
|
column.filter &&
|
|
1101
1080
|
column.filter.type &&
|
|
1102
|
-
column.filter.type ===
|
|
1081
|
+
column.filter.type === 'select'
|
|
1103
1082
|
) {
|
|
1104
1083
|
filterEditor = SelectFilter;
|
|
1105
1084
|
filterEditorProps = {
|
|
1106
1085
|
placeholder: column.filter.placeholder
|
|
1107
1086
|
? column.filter.placeholder
|
|
1108
|
-
:
|
|
1087
|
+
: 'All Options',
|
|
1109
1088
|
dataSource: selectedDataSource,
|
|
1110
1089
|
};
|
|
1111
1090
|
} else {
|
|
@@ -1132,7 +1111,7 @@ const DataGrid = forwardRef(
|
|
|
1132
1111
|
}
|
|
1133
1112
|
},
|
|
1134
1113
|
};
|
|
1135
|
-
case
|
|
1114
|
+
case 'placeholder':
|
|
1136
1115
|
return {
|
|
1137
1116
|
...commonProps,
|
|
1138
1117
|
name: column.id,
|
|
@@ -1145,10 +1124,10 @@ const DataGrid = forwardRef(
|
|
|
1145
1124
|
}
|
|
1146
1125
|
},
|
|
1147
1126
|
};
|
|
1148
|
-
case
|
|
1127
|
+
case 'relation':
|
|
1149
1128
|
relationName = column.id.reduce(
|
|
1150
1129
|
(acc, id) => acc + `${id}.`,
|
|
1151
|
-
|
|
1130
|
+
''
|
|
1152
1131
|
);
|
|
1153
1132
|
relationName += column.nameFrom;
|
|
1154
1133
|
|
|
@@ -1165,21 +1144,21 @@ const DataGrid = forwardRef(
|
|
|
1165
1144
|
if (
|
|
1166
1145
|
column.filter &&
|
|
1167
1146
|
column.filter.type &&
|
|
1168
|
-
column.filter.type ===
|
|
1147
|
+
column.filter.type === 'select'
|
|
1169
1148
|
) {
|
|
1170
1149
|
filterEditor = SelectFilter;
|
|
1171
1150
|
filterEditorProps = {
|
|
1172
1151
|
multiple:
|
|
1173
|
-
column.filter.operator ===
|
|
1152
|
+
column.filter.operator === 'inlist'
|
|
1174
1153
|
? true
|
|
1175
1154
|
: false,
|
|
1176
1155
|
wrapMultiple:
|
|
1177
|
-
column.filter.operator ===
|
|
1156
|
+
column.filter.operator === 'inlist'
|
|
1178
1157
|
? false
|
|
1179
1158
|
: true,
|
|
1180
1159
|
placeholder: column.filter.placeholder
|
|
1181
1160
|
? column.filter.placeholder
|
|
1182
|
-
:
|
|
1161
|
+
: 'All Options',
|
|
1183
1162
|
dataSource: selectedDataSource,
|
|
1184
1163
|
};
|
|
1185
1164
|
} else {
|
|
@@ -1195,16 +1174,16 @@ const DataGrid = forwardRef(
|
|
|
1195
1174
|
filterEditorProps: filterEditorProps,
|
|
1196
1175
|
render: ({ data }) => {
|
|
1197
1176
|
value = column.id.reduce((acc, id) => {
|
|
1198
|
-
if (acc ===
|
|
1177
|
+
if (acc === '') {
|
|
1199
1178
|
return data[id];
|
|
1200
1179
|
} else {
|
|
1201
1180
|
if (acc && acc[id]) {
|
|
1202
1181
|
return acc[id];
|
|
1203
1182
|
} else {
|
|
1204
|
-
return
|
|
1183
|
+
return '';
|
|
1205
1184
|
}
|
|
1206
1185
|
}
|
|
1207
|
-
},
|
|
1186
|
+
}, '');
|
|
1208
1187
|
|
|
1209
1188
|
if (value) {
|
|
1210
1189
|
if (Array.isArray(value)) {
|
|
@@ -1214,14 +1193,14 @@ const DataGrid = forwardRef(
|
|
|
1214
1193
|
if (Array.isArray(column.nameFrom)) {
|
|
1215
1194
|
value = column.nameFrom
|
|
1216
1195
|
.map((nf) => value[nf])
|
|
1217
|
-
.join(
|
|
1196
|
+
.join(' ');
|
|
1218
1197
|
} else {
|
|
1219
1198
|
value = value[column.nameFrom];
|
|
1220
1199
|
}
|
|
1221
1200
|
|
|
1222
1201
|
if (
|
|
1223
1202
|
column.placeholder &&
|
|
1224
|
-
column.placeholder !==
|
|
1203
|
+
column.placeholder !== ''
|
|
1225
1204
|
) {
|
|
1226
1205
|
return (
|
|
1227
1206
|
<span>{column.placeholder}</span>
|
|
@@ -1234,9 +1213,9 @@ const DataGrid = forwardRef(
|
|
|
1234
1213
|
}
|
|
1235
1214
|
},
|
|
1236
1215
|
};
|
|
1237
|
-
case
|
|
1216
|
+
case 'relationArray':
|
|
1238
1217
|
relationName =
|
|
1239
|
-
column.id.reduce((acc, id) => acc + `${id}.`,
|
|
1218
|
+
column.id.reduce((acc, id) => acc + `${id}.`, '') +
|
|
1240
1219
|
column.nameFrom;
|
|
1241
1220
|
|
|
1242
1221
|
selectedDataSource = filterDataSource.reduce(
|
|
@@ -1252,21 +1231,21 @@ const DataGrid = forwardRef(
|
|
|
1252
1231
|
if (
|
|
1253
1232
|
column.filter &&
|
|
1254
1233
|
column.filter.type &&
|
|
1255
|
-
column.filter.type ===
|
|
1234
|
+
column.filter.type === 'select'
|
|
1256
1235
|
) {
|
|
1257
1236
|
filterEditor = SelectFilter;
|
|
1258
1237
|
filterEditorProps = {
|
|
1259
1238
|
multiple:
|
|
1260
|
-
column.filter.operator ===
|
|
1239
|
+
column.filter.operator === 'inlist'
|
|
1261
1240
|
? true
|
|
1262
1241
|
: false,
|
|
1263
1242
|
wrapMultiple:
|
|
1264
|
-
column.filter.operator ===
|
|
1243
|
+
column.filter.operator === 'inlist'
|
|
1265
1244
|
? false
|
|
1266
1245
|
: true,
|
|
1267
1246
|
placeholder: column.filter.placeholder
|
|
1268
1247
|
? column.filter.placeholder
|
|
1269
|
-
:
|
|
1248
|
+
: 'All Options',
|
|
1270
1249
|
dataSource: selectedDataSource,
|
|
1271
1250
|
};
|
|
1272
1251
|
} else {
|
|
@@ -1283,12 +1262,12 @@ const DataGrid = forwardRef(
|
|
|
1283
1262
|
render: ({ data }) => {
|
|
1284
1263
|
const relationValue = column.id.reduce(
|
|
1285
1264
|
(acc, id) =>
|
|
1286
|
-
acc ===
|
|
1265
|
+
acc === ''
|
|
1287
1266
|
? data[id]
|
|
1288
1267
|
: acc && acc[id]
|
|
1289
1268
|
? acc[id]
|
|
1290
|
-
:
|
|
1291
|
-
|
|
1269
|
+
: '',
|
|
1270
|
+
''
|
|
1292
1271
|
);
|
|
1293
1272
|
|
|
1294
1273
|
if (
|
|
@@ -1334,7 +1313,7 @@ const DataGrid = forwardRef(
|
|
|
1334
1313
|
null
|
|
1335
1314
|
);
|
|
1336
1315
|
return propertyValues.join(
|
|
1337
|
-
|
|
1316
|
+
' '
|
|
1338
1317
|
);
|
|
1339
1318
|
}
|
|
1340
1319
|
} else {
|
|
@@ -1347,13 +1326,13 @@ const DataGrid = forwardRef(
|
|
|
1347
1326
|
undefined &&
|
|
1348
1327
|
value !== null
|
|
1349
1328
|
);
|
|
1350
|
-
return propertyValues.join(
|
|
1329
|
+
return propertyValues.join(' ');
|
|
1351
1330
|
}
|
|
1352
1331
|
})
|
|
1353
|
-
.filter((value) => value !==
|
|
1332
|
+
.filter((value) => value !== '');
|
|
1354
1333
|
|
|
1355
1334
|
// if (values.length > 0) {
|
|
1356
|
-
let result =
|
|
1335
|
+
let result = '';
|
|
1357
1336
|
|
|
1358
1337
|
if (
|
|
1359
1338
|
column.relation?.id &&
|
|
@@ -1362,12 +1341,12 @@ const DataGrid = forwardRef(
|
|
|
1362
1341
|
const relationValue =
|
|
1363
1342
|
column.relation.key.reduce(
|
|
1364
1343
|
(acc, id) =>
|
|
1365
|
-
acc ===
|
|
1344
|
+
acc === ''
|
|
1366
1345
|
? data[id]
|
|
1367
1346
|
: acc && acc[id]
|
|
1368
1347
|
? acc[id]
|
|
1369
|
-
:
|
|
1370
|
-
|
|
1348
|
+
: '',
|
|
1349
|
+
''
|
|
1371
1350
|
);
|
|
1372
1351
|
|
|
1373
1352
|
result = `${
|
|
@@ -1384,16 +1363,16 @@ const DataGrid = forwardRef(
|
|
|
1384
1363
|
data[column.where.id] ===
|
|
1385
1364
|
column.where.value
|
|
1386
1365
|
) {
|
|
1387
|
-
result += values.join(
|
|
1366
|
+
result += values.join('<br />');
|
|
1388
1367
|
}
|
|
1389
1368
|
} else {
|
|
1390
|
-
result += values.join(
|
|
1369
|
+
result += values.join('<br />');
|
|
1391
1370
|
}
|
|
1392
1371
|
|
|
1393
1372
|
return <span>{parse(result)}</span>;
|
|
1394
1373
|
// }
|
|
1395
1374
|
} else {
|
|
1396
|
-
let result =
|
|
1375
|
+
let result = '';
|
|
1397
1376
|
|
|
1398
1377
|
if (
|
|
1399
1378
|
column.relation?.id &&
|
|
@@ -1402,12 +1381,12 @@ const DataGrid = forwardRef(
|
|
|
1402
1381
|
const relationValue =
|
|
1403
1382
|
column.relation.key.reduce(
|
|
1404
1383
|
(acc, id) =>
|
|
1405
|
-
acc ===
|
|
1384
|
+
acc === ''
|
|
1406
1385
|
? data[id]
|
|
1407
1386
|
: acc && acc[id]
|
|
1408
1387
|
? acc[id]
|
|
1409
|
-
:
|
|
1410
|
-
|
|
1388
|
+
: '',
|
|
1389
|
+
''
|
|
1411
1390
|
);
|
|
1412
1391
|
|
|
1413
1392
|
result =
|
|
@@ -1416,7 +1395,7 @@ const DataGrid = forwardRef(
|
|
|
1416
1395
|
? relationValue[
|
|
1417
1396
|
column.relation.id
|
|
1418
1397
|
]
|
|
1419
|
-
:
|
|
1398
|
+
: '';
|
|
1420
1399
|
}
|
|
1421
1400
|
|
|
1422
1401
|
return <span>{parse(result)}</span>;
|
|
@@ -1425,7 +1404,7 @@ const DataGrid = forwardRef(
|
|
|
1425
1404
|
return null;
|
|
1426
1405
|
},
|
|
1427
1406
|
};
|
|
1428
|
-
case
|
|
1407
|
+
case 'richtext':
|
|
1429
1408
|
return {
|
|
1430
1409
|
...commonProps,
|
|
1431
1410
|
name: column.id,
|
|
@@ -1439,13 +1418,13 @@ const DataGrid = forwardRef(
|
|
|
1439
1418
|
}
|
|
1440
1419
|
},
|
|
1441
1420
|
};
|
|
1442
|
-
case
|
|
1421
|
+
case 'stage':
|
|
1443
1422
|
return {
|
|
1444
1423
|
...commonProps,
|
|
1445
1424
|
name: column.id,
|
|
1446
1425
|
sortable: false,
|
|
1447
1426
|
render: ({ data }) => {
|
|
1448
|
-
stage =
|
|
1427
|
+
stage = '';
|
|
1449
1428
|
|
|
1450
1429
|
column.keyIds.forEach((a, b) => {
|
|
1451
1430
|
if (data[a] === 1) {
|
|
@@ -1456,7 +1435,7 @@ const DataGrid = forwardRef(
|
|
|
1456
1435
|
return <span>{stage}</span>;
|
|
1457
1436
|
},
|
|
1458
1437
|
};
|
|
1459
|
-
case
|
|
1438
|
+
case 'time':
|
|
1460
1439
|
return {
|
|
1461
1440
|
...commonProps,
|
|
1462
1441
|
name: column.id,
|
|
@@ -1466,13 +1445,13 @@ const DataGrid = forwardRef(
|
|
|
1466
1445
|
data[column.id] &&
|
|
1467
1446
|
moment(data[column.id]).isValid() &&
|
|
1468
1447
|
moment(data[column.id]).format(
|
|
1469
|
-
|
|
1470
|
-
) !==
|
|
1448
|
+
'YYYY-MM-DD'
|
|
1449
|
+
) !== '1970-01-01'
|
|
1471
1450
|
) {
|
|
1472
1451
|
data = moment(data[column.id]).format(
|
|
1473
1452
|
column.format
|
|
1474
1453
|
? column.format
|
|
1475
|
-
:
|
|
1454
|
+
: 'hh:mm A'
|
|
1476
1455
|
);
|
|
1477
1456
|
|
|
1478
1457
|
return <span>{data}</span>;
|
|
@@ -1481,7 +1460,7 @@ const DataGrid = forwardRef(
|
|
|
1481
1460
|
}
|
|
1482
1461
|
},
|
|
1483
1462
|
};
|
|
1484
|
-
case
|
|
1463
|
+
case 'url':
|
|
1485
1464
|
return {
|
|
1486
1465
|
...commonProps,
|
|
1487
1466
|
name: column.id,
|
|
@@ -1515,32 +1494,32 @@ const DataGrid = forwardRef(
|
|
|
1515
1494
|
|
|
1516
1495
|
if (column.filter && column.filter.type) {
|
|
1517
1496
|
switch (column.filter.type) {
|
|
1518
|
-
case
|
|
1497
|
+
case 'select':
|
|
1519
1498
|
filterEditor = SelectFilter;
|
|
1520
1499
|
filterEditorProps = {
|
|
1521
1500
|
multiple:
|
|
1522
|
-
column.filter.operator ===
|
|
1501
|
+
column.filter.operator === 'inlist'
|
|
1523
1502
|
? true
|
|
1524
1503
|
: false,
|
|
1525
1504
|
wrapMultiple:
|
|
1526
|
-
column.filter.operator ===
|
|
1505
|
+
column.filter.operator === 'inlist'
|
|
1527
1506
|
? false
|
|
1528
1507
|
: true,
|
|
1529
1508
|
placeholder: column.filter.placeholder
|
|
1530
1509
|
? column.filter.placeholder
|
|
1531
|
-
:
|
|
1510
|
+
: 'All Options',
|
|
1532
1511
|
dataSource: selectedDataSource,
|
|
1533
1512
|
};
|
|
1534
1513
|
break;
|
|
1535
|
-
case
|
|
1514
|
+
case 'date':
|
|
1536
1515
|
filterEditor = DateFilter;
|
|
1537
1516
|
filterEditorProps = (props, { index }) => {
|
|
1538
1517
|
return {
|
|
1539
|
-
dateFormat:
|
|
1540
|
-
placeholder:
|
|
1518
|
+
dateFormat: 'DD-MM-YYYY',
|
|
1519
|
+
placeholder: 'All Dates',
|
|
1541
1520
|
};
|
|
1542
1521
|
};
|
|
1543
|
-
case
|
|
1522
|
+
case 'number':
|
|
1544
1523
|
filterEditor = NumberFilter;
|
|
1545
1524
|
break;
|
|
1546
1525
|
default:
|
|
@@ -1566,10 +1545,10 @@ const DataGrid = forwardRef(
|
|
|
1566
1545
|
|
|
1567
1546
|
if (settings.length > 0) {
|
|
1568
1547
|
newColumns.push({
|
|
1569
|
-
name:
|
|
1570
|
-
header:
|
|
1548
|
+
name: 'setting',
|
|
1549
|
+
header: 'Action',
|
|
1571
1550
|
defaultWidth: 100,
|
|
1572
|
-
textAlign:
|
|
1551
|
+
textAlign: 'center',
|
|
1573
1552
|
render: ({ data }) => {
|
|
1574
1553
|
return (
|
|
1575
1554
|
<div className="tdactions">
|
|
@@ -1588,11 +1567,11 @@ const DataGrid = forwardRef(
|
|
|
1588
1567
|
.filter((column) => column.filter && column.filter.type) // Only consider columns with a filter type
|
|
1589
1568
|
.map((column) => {
|
|
1590
1569
|
// Map these filtered columns to a new object array
|
|
1591
|
-
let filterName =
|
|
1570
|
+
let filterName = '';
|
|
1592
1571
|
if (Array.isArray(column.id)) {
|
|
1593
1572
|
filterName = column.id.reduce(
|
|
1594
1573
|
(acc, id) => acc + `${id}.`,
|
|
1595
|
-
|
|
1574
|
+
''
|
|
1596
1575
|
);
|
|
1597
1576
|
} else {
|
|
1598
1577
|
filterName = column.id;
|
|
@@ -1607,7 +1586,7 @@ const DataGrid = forwardRef(
|
|
|
1607
1586
|
name: filterName,
|
|
1608
1587
|
operator: column.filter.operator,
|
|
1609
1588
|
type: column.filter.type,
|
|
1610
|
-
value: column.filter.value ? column.filter.value :
|
|
1589
|
+
value: column.filter.value ? column.filter.value : '',
|
|
1611
1590
|
reset: column.filter.reset ? column.filter.reset : [],
|
|
1612
1591
|
};
|
|
1613
1592
|
});
|
|
@@ -1626,7 +1605,7 @@ const DataGrid = forwardRef(
|
|
|
1626
1605
|
if (column.filter && column.filter.url) {
|
|
1627
1606
|
CustomFetch(
|
|
1628
1607
|
column.filter.url,
|
|
1629
|
-
|
|
1608
|
+
'POST',
|
|
1630
1609
|
column.filter.where
|
|
1631
1610
|
? { where: column.filter.where }
|
|
1632
1611
|
: {},
|
|
@@ -1635,7 +1614,7 @@ const DataGrid = forwardRef(
|
|
|
1635
1614
|
if (Array.isArray(column.id)) {
|
|
1636
1615
|
const concatenatedIds = column.id.reduce(
|
|
1637
1616
|
(acc, id) => acc + `${id}.`,
|
|
1638
|
-
|
|
1617
|
+
''
|
|
1639
1618
|
);
|
|
1640
1619
|
filterName = column.nameFrom
|
|
1641
1620
|
? concatenatedIds + column.nameFrom
|
|
@@ -1673,7 +1652,7 @@ const DataGrid = forwardRef(
|
|
|
1673
1652
|
);
|
|
1674
1653
|
} else if (column.filter && column.filter.options) {
|
|
1675
1654
|
let filterName = Array.isArray(column.id)
|
|
1676
|
-
? column.id.reduce((acc, id) => acc + `${id}.`,
|
|
1655
|
+
? column.id.reduce((acc, id) => acc + `${id}.`, '')
|
|
1677
1656
|
: column.id;
|
|
1678
1657
|
if (column.nameFrom) {
|
|
1679
1658
|
filterName += column.nameFrom;
|
|
@@ -1702,7 +1681,7 @@ const DataGrid = forwardRef(
|
|
|
1702
1681
|
: 550
|
|
1703
1682
|
: 450
|
|
1704
1683
|
: 400,
|
|
1705
|
-
boxShadow:
|
|
1684
|
+
boxShadow: 'none',
|
|
1706
1685
|
});
|
|
1707
1686
|
const headerProps = {
|
|
1708
1687
|
style: style ? style : {},
|
|
@@ -1739,11 +1718,11 @@ const DataGrid = forwardRef(
|
|
|
1739
1718
|
setWindowHeight(window.innerHeight);
|
|
1740
1719
|
};
|
|
1741
1720
|
|
|
1742
|
-
window.addEventListener(
|
|
1721
|
+
window.addEventListener('resize', handleResize);
|
|
1743
1722
|
|
|
1744
1723
|
// Clean up the event listener
|
|
1745
1724
|
return () => {
|
|
1746
|
-
window.removeEventListener(
|
|
1725
|
+
window.removeEventListener('resize', handleResize);
|
|
1747
1726
|
};
|
|
1748
1727
|
}, []);
|
|
1749
1728
|
|
|
@@ -1751,32 +1730,43 @@ const DataGrid = forwardRef(
|
|
|
1751
1730
|
<>
|
|
1752
1731
|
{renderSearch()}
|
|
1753
1732
|
{renderCreateButton()}
|
|
1754
|
-
|
|
1755
|
-
|
|
1756
|
-
|
|
1757
|
-
|
|
1758
|
-
|
|
1759
|
-
|
|
1760
|
-
|
|
1761
|
-
|
|
1762
|
-
|
|
1763
|
-
|
|
1764
|
-
|
|
1765
|
-
|
|
1766
|
-
|
|
1767
|
-
|
|
1768
|
-
|
|
1769
|
-
|
|
1770
|
-
|
|
1771
|
-
|
|
1772
|
-
|
|
1773
|
-
|
|
1774
|
-
|
|
1775
|
-
|
|
1776
|
-
|
|
1777
|
-
|
|
1778
|
-
|
|
1779
|
-
|
|
1733
|
+
{limit && limit > 0 && (
|
|
1734
|
+
<ReactDataGrid
|
|
1735
|
+
columns={gridColumns}
|
|
1736
|
+
dataSource={data}
|
|
1737
|
+
filterValue={filterValue}
|
|
1738
|
+
limit={limit}
|
|
1739
|
+
enableColumnAutosize={false}
|
|
1740
|
+
enableColumnFilterContextMenu={false}
|
|
1741
|
+
enableSelection={false}
|
|
1742
|
+
headerProps={headerProps}
|
|
1743
|
+
idProperty={`visns-datagrid-${ajaxSetting.url.replace(
|
|
1744
|
+
/\//g,
|
|
1745
|
+
'-'
|
|
1746
|
+
)}`}
|
|
1747
|
+
minRowHeight={40}
|
|
1748
|
+
onFilterValueChange={(filterValue) => {
|
|
1749
|
+
handleFilterChange(filterValue);
|
|
1750
|
+
}}
|
|
1751
|
+
onLimitChange={setLimit}
|
|
1752
|
+
onSortInfoChange={handleSort}
|
|
1753
|
+
onRenderRow={onRenderRow}
|
|
1754
|
+
pagination
|
|
1755
|
+
renderColumnContextMenu={renderColumnContextMenu}
|
|
1756
|
+
rowClassName="vs-datagrid--row"
|
|
1757
|
+
rowHeight={null}
|
|
1758
|
+
showZebraRows={true}
|
|
1759
|
+
sortInfo={
|
|
1760
|
+
ajaxSetting.sortBy && ajaxSetting.sort
|
|
1761
|
+
? {
|
|
1762
|
+
name: ajaxSetting.sortBy,
|
|
1763
|
+
dir: ajaxSetting.sort === 'asc' ? 1 : -1,
|
|
1764
|
+
}
|
|
1765
|
+
: null
|
|
1766
|
+
}
|
|
1767
|
+
style={gridStyle}
|
|
1768
|
+
/>
|
|
1769
|
+
)}
|
|
1780
1770
|
<Popup
|
|
1781
1771
|
open={modalShow}
|
|
1782
1772
|
onClose={modalClose}
|
|
@@ -1784,13 +1774,12 @@ const DataGrid = forwardRef(
|
|
|
1784
1774
|
>
|
|
1785
1775
|
<Form
|
|
1786
1776
|
closeModal={modalClose}
|
|
1777
|
+
columnId={formId}
|
|
1787
1778
|
fetchTable={handleReload}
|
|
1788
1779
|
formSettings={formData}
|
|
1789
1780
|
formType={formType}
|
|
1790
|
-
updateForm={setFormData}
|
|
1791
|
-
columnId={formId}
|
|
1792
|
-
childDropdownCallback={childDropdownCallback}
|
|
1793
1781
|
style={style}
|
|
1782
|
+
updateForm={setFormData}
|
|
1794
1783
|
/>
|
|
1795
1784
|
</Popup>
|
|
1796
1785
|
</>
|