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