logitude-dashboard-library 3.2.43 → 3.2.44

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.
@@ -1237,9 +1237,14 @@ $dark-grey: #717585;
1237
1237
  text-decoration: underline;
1238
1238
  }
1239
1239
 
1240
+
1240
1241
  .table-cell-datetime {
1242
+
1241
1243
  font-family: 'Manrope';
1242
1244
  font-weight: 500;
1245
+ padding: 0px 6px;
1246
+ border-radius: 4px;
1247
+ width: fit-content;
1243
1248
  }
1244
1249
 
1245
1250
  .date-time-value-container {
package/dist/index.js CHANGED
@@ -1444,12 +1444,23 @@ var TableChart = function TableChart(props) {
1444
1444
  var updatedWidgetColumnsData = JSON.parse(updatedWidgetColumns);
1445
1445
  var _updatedTableColumns = [];
1446
1446
  updatedWidgetColumnsData.forEach(function (c) {
1447
- var col = tableColumns.find(function (f) {
1447
+ var columns = tableColumns.filter(function (f) {
1448
1448
  return f.Id == c.Id;
1449
1449
  });
1450
1450
 
1451
- if (col) {
1452
- _updatedTableColumns.push(col);
1451
+ if (columns && columns.length == 1) {
1452
+ _updatedTableColumns.push(columns[0]);
1453
+ } else if (columns && columns.length > 1) {
1454
+ var isCalculatedColumn = c.ColumnVariableType === "CalculatedColumn";
1455
+ var dataTypeCode = c.ColumnVariableDataType;
1456
+ var dateDisplayMode = c.DateTimeDisplayMode || "Date";
1457
+ var column = columns.find(function (f) {
1458
+ return f.IsCalculatedColumn === isCalculatedColumn && f.DataTypeCode === dataTypeCode && f.DateTimeDisplayMode === dateDisplayMode;
1459
+ });
1460
+
1461
+ if (column) {
1462
+ _updatedTableColumns.push(column);
1463
+ }
1453
1464
  }
1454
1465
  });
1455
1466
  setTableColumns([].concat(_updatedTableColumns));
@@ -1699,6 +1710,79 @@ var TableChart = function TableChart(props) {
1699
1710
  }
1700
1711
  };
1701
1712
 
1713
+ function stripTime(date) {
1714
+ if (!date) return null;
1715
+ return new Date(date.getFullYear(), date.getMonth(), date.getDate());
1716
+ }
1717
+
1718
+ function parseLocalDate(dateStr) {
1719
+ try {
1720
+ if (!dateStr) return null;
1721
+
1722
+ var _dateStr$split$0$spli = dateStr.split('T')[0].split('-').map(Number),
1723
+ year = _dateStr$split$0$spli[0],
1724
+ month = _dateStr$split$0$spli[1],
1725
+ day = _dateStr$split$0$spli[2];
1726
+
1727
+ return new Date(year, month - 1, day);
1728
+ } catch (error) {
1729
+ return null;
1730
+ }
1731
+ }
1732
+
1733
+ function parseCustomDateLocalDate(dateStr) {
1734
+ try {
1735
+ if (!dateStr || dateStr.length < 8) return null;
1736
+ var year = Number(dateStr.substring(0, 4));
1737
+ var month = Number(dateStr.substring(4, 6));
1738
+ var day = Number(dateStr.substring(6, 8));
1739
+ return new Date(year, month - 1, day);
1740
+ } catch (error) {
1741
+ return null;
1742
+ }
1743
+ }
1744
+
1745
+ function isDateValidRule(rule, value) {
1746
+ var _rule$RuleOperator;
1747
+
1748
+ var operator = rule === null || rule === void 0 ? void 0 : (_rule$RuleOperator = rule.RuleOperator) === null || _rule$RuleOperator === void 0 ? void 0 : _rule$RuleOperator.Code;
1749
+ if (!operator) return null;
1750
+ var ruleValue1 = stripTime(parseCustomDateLocalDate(rule.RuleValue1));
1751
+ var ruleValue2 = stripTime(parseCustomDateLocalDate(rule.RuleValue2));
1752
+ var actualValue = stripTime(parseLocalDate(value));
1753
+
1754
+ switch (operator) {
1755
+ case "Equal":
1756
+ case "Between":
1757
+ return !isValueEmpty(ruleValue1) && !isValueEmpty(ruleValue2) && !isValueEmpty(actualValue) && ruleValue1 <= actualValue && actualValue <= ruleValue2;
1758
+
1759
+ case "NotEqual":
1760
+ case "NotBetween":
1761
+ return !isValueEmpty(ruleValue1) && !isValueEmpty(ruleValue2) && !isValueEmpty(actualValue) && (ruleValue1 > actualValue || actualValue > ruleValue2);
1762
+
1763
+ case "GreaterThan":
1764
+ return !isValueEmpty(ruleValue2) && !isValueEmpty(actualValue) && actualValue > ruleValue2;
1765
+
1766
+ case "GreaterThanOrEqual":
1767
+ return !isValueEmpty(ruleValue2) && !isValueEmpty(actualValue) && actualValue >= ruleValue2;
1768
+
1769
+ case "LessThan":
1770
+ return !isValueEmpty(ruleValue2) && !isValueEmpty(actualValue) && actualValue < ruleValue2;
1771
+
1772
+ case "LessThanOrEqual":
1773
+ return !isValueEmpty(ruleValue2) && !isValueEmpty(actualValue) && actualValue <= ruleValue2;
1774
+
1775
+ case "IsEmpty":
1776
+ return isValueEmpty(actualValue);
1777
+
1778
+ case "IsNotEmpty":
1779
+ return !isValueEmpty(actualValue);
1780
+
1781
+ default:
1782
+ return null;
1783
+ }
1784
+ }
1785
+
1702
1786
  var getCellPropertyByRule = function getCellPropertyByRule(column, cellValue, propertyName, defaultValue) {
1703
1787
  if (defaultValue === void 0) {
1704
1788
  defaultValue = null;
@@ -1710,12 +1794,20 @@ var TableChart = function TableChart(props) {
1710
1794
  return el.FieldId == column.Id && el.FieldType == columnType;
1711
1795
  });
1712
1796
 
1713
- if (!columnData || !columnData.FieldRules || columnData.FieldRules.length == 0) {
1797
+ if (!columnData || !columnData.FieldRules || columnData.FieldRules.length == 0 || columnData.FieldDataType != (column === null || column === void 0 ? void 0 : column.DataTypeCode)) {
1714
1798
  return defaultValue ? getTableFormattingPropertyValue(defaultValue) : undefined;
1715
1799
  }
1716
- var firstValidRule = columnData.FieldRules.find(function (rule) {
1717
- return IsValidRule(rule, cellValue);
1718
- });
1800
+ var firstValidRule = null;
1801
+
1802
+ if (FieldDataType.isDateOrDateTimeType(column === null || column === void 0 ? void 0 : column.DataTypeCode)) {
1803
+ firstValidRule = columnData.FieldRules.find(function (rule) {
1804
+ return isDateValidRule(rule, cellValue);
1805
+ });
1806
+ } else {
1807
+ firstValidRule = columnData.FieldRules.find(function (rule) {
1808
+ return IsValidRule(rule, cellValue);
1809
+ });
1810
+ }
1719
1811
 
1720
1812
  if (!firstValidRule) {
1721
1813
  return defaultValue ? getTableFormattingPropertyValue(defaultValue) : undefined;
@@ -1790,12 +1882,12 @@ var TableChart = function TableChart(props) {
1790
1882
  if (!column || !column.FieldCode) return "";
1791
1883
 
1792
1884
  if (column.DataTypeCode == "DateTime" || column.DataTypeCode == "Date") {
1885
+ var dateTimeDisplayMode = column.DateTimeDisplayMode;
1793
1886
  var fontColor = getTableFormattingPropertyValue("TableCellFontColor");
1794
1887
  var fontSizeWithoutUnit = getTableFormattingPropertyValue("TableCellFontSize");
1795
1888
  var fontSizeWitUnit = getTableFormattingPropertyValue("TableCellFontSize", "px");
1796
- var width = fontSizeWithoutUnit ? fontSizeWithoutUnit * 6 + "px" : 70 + "px";
1797
1889
  return React__default.createElement("div", {
1798
- title: getDateTimeValue(data[column.FieldCode]),
1890
+ title: dateTimeDisplayMode === 'DateTime' ? getDateTimeValue(data[column.FieldCode]) : getDateTimeValue(data[column.FieldCode], 'Date'),
1799
1891
  className: "date-time-value-container",
1800
1892
  style: {
1801
1893
  color: fontColor
@@ -1804,15 +1896,10 @@ var TableChart = function TableChart(props) {
1804
1896
  className: "table-cell-datetime",
1805
1897
  style: {
1806
1898
  fontSize: fontSizeWitUnit,
1807
- width: width,
1808
- display: 'inline-block'
1809
- }
1810
- }, getDateTimeValue(data[column.FieldCode], 'Date')), React__default.createElement("span", {
1811
- className: "table-cell-datetime",
1812
- style: {
1813
- fontSize: fontSizeWitUnit
1899
+ display: 'inline-block',
1900
+ backgroundColor: getCellPropertyByRule(column, data[column.FieldCode], 'RuleBackgroundColor')
1814
1901
  }
1815
- }, getDateTimeValue(data[column.FieldCode], 'Time')));
1902
+ }, getDateTimeValue(data[column.FieldCode], 'Date'), dateTimeDisplayMode === 'DateTime' && ' ' + getDateTimeValue(data[column.FieldCode], 'Time')));
1816
1903
  } else {
1817
1904
  return React__default.createElement("span", {
1818
1905
  onClick: function onClick() {