logitude-dashboard-library 3.1.106 → 3.1.108

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,71 @@ 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
+ if (!dateStr) return null;
1720
+
1721
+ var _dateStr$split$0$spli = dateStr.split('T')[0].split('-').map(Number),
1722
+ year = _dateStr$split$0$spli[0],
1723
+ month = _dateStr$split$0$spli[1],
1724
+ day = _dateStr$split$0$spli[2];
1725
+
1726
+ return new Date(year, month - 1, day);
1727
+ }
1728
+
1729
+ function parseCustomDateLocalDate(dateStr) {
1730
+ if (!dateStr || dateStr.length < 8) return null;
1731
+ var year = Number(dateStr.substring(0, 4));
1732
+ var month = Number(dateStr.substring(4, 6));
1733
+ var day = Number(dateStr.substring(6, 8));
1734
+ return new Date(year, month - 1, day);
1735
+ }
1736
+
1737
+ function isDateValidRule(rule, value) {
1738
+ var _rule$RuleOperator;
1739
+
1740
+ var operator = rule === null || rule === void 0 ? void 0 : (_rule$RuleOperator = rule.RuleOperator) === null || _rule$RuleOperator === void 0 ? void 0 : _rule$RuleOperator.Code;
1741
+ if (!operator) return null;
1742
+ var ruleValue1 = stripTime(parseCustomDateLocalDate(rule.RuleValue1));
1743
+ var ruleValue2 = stripTime(parseCustomDateLocalDate(rule.RuleValue2));
1744
+ var actualValue = stripTime(parseLocalDate(value));
1745
+
1746
+ switch (operator) {
1747
+ case "Equal":
1748
+ case "Between":
1749
+ return !isValueEmpty(ruleValue1) && !isValueEmpty(ruleValue2) && !isValueEmpty(actualValue) && ruleValue1 <= actualValue && actualValue <= ruleValue2;
1750
+
1751
+ case "NotEqual":
1752
+ case "NotBetween":
1753
+ return !isValueEmpty(ruleValue1) && !isValueEmpty(ruleValue2) && !isValueEmpty(actualValue) && (ruleValue1 > actualValue || actualValue > ruleValue2);
1754
+
1755
+ case "GreaterThan":
1756
+ return !isValueEmpty(ruleValue2) && !isValueEmpty(actualValue) && actualValue > ruleValue2;
1757
+
1758
+ case "GreaterThanOrEqual":
1759
+ return !isValueEmpty(ruleValue2) && !isValueEmpty(actualValue) && actualValue >= ruleValue2;
1760
+
1761
+ case "LessThan":
1762
+ return !isValueEmpty(ruleValue2) && !isValueEmpty(actualValue) && actualValue < ruleValue2;
1763
+
1764
+ case "LessThanOrEqual":
1765
+ return !isValueEmpty(ruleValue2) && !isValueEmpty(actualValue) && actualValue <= ruleValue2;
1766
+
1767
+ case "IsEmpty":
1768
+ return isValueEmpty(actualValue);
1769
+
1770
+ case "IsNotEmpty":
1771
+ return !isValueEmpty(actualValue);
1772
+
1773
+ default:
1774
+ return null;
1775
+ }
1776
+ }
1777
+
1702
1778
  var getCellPropertyByRule = function getCellPropertyByRule(column, cellValue, propertyName, defaultValue) {
1703
1779
  if (defaultValue === void 0) {
1704
1780
  defaultValue = null;
@@ -1713,9 +1789,17 @@ var TableChart = function TableChart(props) {
1713
1789
  if (!columnData || !columnData.FieldRules || columnData.FieldRules.length == 0) {
1714
1790
  return defaultValue ? getTableFormattingPropertyValue(defaultValue) : undefined;
1715
1791
  }
1716
- var firstValidRule = columnData.FieldRules.find(function (rule) {
1717
- return IsValidRule(rule, cellValue);
1718
- });
1792
+ var firstValidRule = null;
1793
+
1794
+ if (FieldDataType.isDateOrDateTimeType(column === null || column === void 0 ? void 0 : column.DataTypeCode)) {
1795
+ firstValidRule = columnData.FieldRules.find(function (rule) {
1796
+ return isDateValidRule(rule, cellValue);
1797
+ });
1798
+ } else {
1799
+ firstValidRule = columnData.FieldRules.find(function (rule) {
1800
+ return IsValidRule(rule, cellValue);
1801
+ });
1802
+ }
1719
1803
 
1720
1804
  if (!firstValidRule) {
1721
1805
  return defaultValue ? getTableFormattingPropertyValue(defaultValue) : undefined;
@@ -1790,12 +1874,12 @@ var TableChart = function TableChart(props) {
1790
1874
  if (!column || !column.FieldCode) return "";
1791
1875
 
1792
1876
  if (column.DataTypeCode == "DateTime" || column.DataTypeCode == "Date") {
1877
+ var dateTimeDisplayMode = column.DateTimeDisplayMode;
1793
1878
  var fontColor = getTableFormattingPropertyValue("TableCellFontColor");
1794
1879
  var fontSizeWithoutUnit = getTableFormattingPropertyValue("TableCellFontSize");
1795
1880
  var fontSizeWitUnit = getTableFormattingPropertyValue("TableCellFontSize", "px");
1796
- var width = fontSizeWithoutUnit ? fontSizeWithoutUnit * 6 + "px" : 70 + "px";
1797
1881
  return React__default.createElement("div", {
1798
- title: getDateTimeValue(data[column.FieldCode]),
1882
+ title: dateTimeDisplayMode === 'DateTime' ? getDateTimeValue(data[column.FieldCode]) : getDateTimeValue(data[column.FieldCode], 'Date'),
1799
1883
  className: "date-time-value-container",
1800
1884
  style: {
1801
1885
  color: fontColor
@@ -1804,15 +1888,10 @@ var TableChart = function TableChart(props) {
1804
1888
  className: "table-cell-datetime",
1805
1889
  style: {
1806
1890
  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
1891
+ display: 'inline-block',
1892
+ backgroundColor: getCellPropertyByRule(column, data[column.FieldCode], 'RuleBackgroundColor')
1814
1893
  }
1815
- }, getDateTimeValue(data[column.FieldCode], 'Time')));
1894
+ }, getDateTimeValue(data[column.FieldCode], 'Date'), dateTimeDisplayMode === 'DateTime' && ' ' + getDateTimeValue(data[column.FieldCode], 'Time')));
1816
1895
  } else {
1817
1896
  return React__default.createElement("span", {
1818
1897
  onClick: function onClick() {