@cdmx/wappler_ag_grid 0.1.6 → 0.1.8

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.
@@ -133,7 +133,7 @@
133
133
  "attribute": "dmx-bind:suppressRowDeselection",
134
134
  "title": "Supress Row Deselection",
135
135
  "type": "boolean",
136
- "defaultValue": true,
136
+ "defaultValue": false,
137
137
  "help": "Specifies if rows can be deselected"
138
138
  },
139
139
  {
package/dmx-ag-grid.js CHANGED
@@ -121,24 +121,24 @@ dmx.Component('ag-grid', {
121
121
  console.error('No row data provided.');
122
122
  return;
123
123
  }
124
- function formatValue(value, key, dataType, timezone) {
125
- params = {"value":value}
126
- if (dataType === 'number') {
127
- if (/(amount|amt)$/.test(key)) {
128
- return Number(value).toLocaleString("en-US", {
129
- minimumFractionDigits: 2,
130
- maximumFractionDigits: 2,
131
- });
132
- } else {
133
- return blankOrNullValueFormatter(params);
134
- }
135
- } else if (dataType === 'date') {
136
- return formatTime(params, timezone);
137
- }
138
- else {
139
- return blankOrNullValueFormatter(params);
140
- }
141
- }
124
+ // function formatValue(value, key, dataType, timezone) {
125
+ // params = {"value":value}
126
+ // if (dataType === 'number') {
127
+ // if (/(amount|amt)$/.test(key)) {
128
+ // return Number(value).toLocaleString("en-US", {
129
+ // minimumFractionDigits: 2,
130
+ // maximumFractionDigits: 2,
131
+ // });
132
+ // } else {
133
+ // return blankOrNullValueFormatter(params);
134
+ // }
135
+ // } else if (dataType === 'date') {
136
+ // return formatTime(params, timezone);
137
+ // }
138
+ // else {
139
+ // return blankOrNullValueFormatter(params);
140
+ // }
141
+ // }
142
142
  window.cellClickEvent = (columnName, value, idValue) => {
143
143
  this.set('fields', {"field": columnName, "data": value});
144
144
  this.set('id', idValue);
@@ -169,10 +169,7 @@ dmx.Component('ag-grid', {
169
169
  function checkboxCellRenderer(params) {
170
170
  const idValue = params.data.id;
171
171
  const columnName = params.colDef.field;
172
- const dataType = detectDataType([params.value]);
173
- const value = formatValue(params.value, columnName, dataType, timezone);
174
-
175
- if (columnName == "status" && enableStatusToggle) {
172
+ const value = params.value;
176
173
  // Assuming `value` is a boolean representing the status
177
174
  const checked = value==true ? "checked" : "";
178
175
  return `
@@ -192,9 +189,6 @@ dmx.Component('ag-grid', {
192
189
  </span>
193
190
  </label>
194
191
  `;
195
- } else {
196
- return value;
197
- }
198
192
  }
199
193
 
200
194
 
@@ -254,6 +248,25 @@ dmx.Component('ag-grid', {
254
248
  }
255
249
  }
256
250
  }
251
+ dateFilterParams = {
252
+ comparator: function (filterLocalDateAtMidnight, cellValue) {
253
+ var cellDate = new Date(cellValue);
254
+ var filterDate = new Date(filterLocalDateAtMidnight);
255
+
256
+ // Compare the date portion of the cell value with the filter value
257
+ var cellDateOnly = new Date(cellDate.getFullYear(), cellDate.getMonth(), cellDate.getDate());
258
+ var filterDateOnly = new Date(filterDate.getFullYear(), filterDate.getMonth(), filterDate.getDate());
259
+
260
+ if (cellDateOnly < filterDateOnly) {
261
+ return -1;
262
+ } else if (cellDateOnly > filterDateOnly) {
263
+ return 1;
264
+ } else {
265
+ return 0;
266
+ }
267
+ },
268
+ browserDatePicker: true,
269
+ }
257
270
  // Function to detect the data type based on the values
258
271
  function detectDataType(values) {
259
272
  let hasDate = false;
@@ -304,6 +317,8 @@ dmx.Component('ag-grid', {
304
317
  let valueGetter;
305
318
  let filterValueGetter;
306
319
  let valueFormatter;
320
+ let filterParams;
321
+ let minWidth;
307
322
 
308
323
 
309
324
  if (dataType === 'number') {
@@ -324,9 +339,13 @@ dmx.Component('ag-grid', {
324
339
  } else if (dataType === 'date') {
325
340
  filter = 'agDateColumnFilter';
326
341
  valueFormatter = (params) => formatTime(params, timezone);
342
+ filterParams = dateFilterParams;
343
+ minWidth = 200;
327
344
  } else {
328
345
  filter = 'agTextColumnFilter';
329
346
  valueFormatter = blankOrNullValueFormatter;
347
+ filterParams = undefined;
348
+ minWidth = undefined;
330
349
  }
331
350
  // Check if custom definition exists for the current field
332
351
  if (this.props.definitions && this.props.definitions[key]) {
@@ -389,26 +408,34 @@ dmx.Component('ag-grid', {
389
408
  enableRowClickEvent = this.props.row_click_event;
390
409
  enableCellClickEvent = this.props.cell_click_event;
391
410
  if (cnames.hasOwnProperty(key)) {
392
- console.log(key)
393
411
  const cname = cnames[key]
394
412
  headerName = cname ? cname.custom_name : humanize(key);
395
413
  }
396
414
  else {
397
415
  headerName = humanize(key);
398
416
  }
417
+ if (key =='status' && enableStatusToggle) {
418
+ cellRenderer = 'checkboxCellRenderer';
419
+ }
420
+ else {
421
+ cellRenderer = undefined;
422
+ }
423
+
399
424
  return {
400
425
  headerName: headerName,
401
426
  field: key,
402
427
  filter: filter,
403
428
  valueFormatter: valueFormatter,
404
429
  valueGetter: valueGetter,
430
+ minWidth: minWidth,
405
431
  filterValueGetter: filterValueGetter,
432
+ filterParams: filterParams,
406
433
  cellStyle: applyCellStyle,
407
434
  ...(cwidths.hasOwnProperty(key) && {
408
435
  minWidth: parseInt(cwidths[key].min_width),
409
436
  maxWidth: parseInt(cwidths[key].max_width),
410
437
  }),
411
- cellRenderer: enableCellClickEvent ? 'clickCellRenderer' : (enableStatusToggle ? 'checkboxCellRenderer' : undefined)
438
+ cellRenderer: cellRenderer
412
439
  };
413
440
  });
414
441
  }
@@ -466,6 +493,8 @@ dmx.Component('ag-grid', {
466
493
  suppressClipboardPaste: this.props.suppressClipboardPaste,
467
494
  suppressScrollOnNewData: this.props.suppressScrollOnNewData,
468
495
  suppressPropertyNamesCheck: this.props.suppressPropertyNamesCheck,
496
+ suppressRowDeselection: this.props.suppressRowDeselection,
497
+ columnHoverHighlight: this.props.columnHoverHighlight,
469
498
  localeText: this.props.localeText,
470
499
  components: {
471
500
  clickCellRenderer: clickCellRenderer,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cdmx/wappler_ag_grid",
3
- "version": "0.1.6",
3
+ "version": "0.1.8",
4
4
  "type": "module",
5
5
  "description": "App Connect module for AG Grid Table Generation",
6
6
  "license": "MIT",