cx 24.11.4 → 25.1.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.
Files changed (108) hide show
  1. package/dist/charts.js +18 -17
  2. package/dist/data.js +2 -2
  3. package/dist/manifest.js +754 -745
  4. package/dist/ui.js +5 -4
  5. package/dist/util.js +40 -10
  6. package/dist/widgets.js +34 -31
  7. package/package.json +32 -32
  8. package/src/charts/Legend.js +167 -167
  9. package/src/charts/Legend.scss +40 -40
  10. package/src/charts/LegendEntry.js +128 -128
  11. package/src/charts/LegendEntry.scss +27 -27
  12. package/src/charts/PieChart.d.ts +92 -92
  13. package/src/charts/PieChart.js +529 -529
  14. package/src/charts/axis/Axis.d.ts +113 -113
  15. package/src/charts/axis/Axis.js +280 -280
  16. package/src/charts/axis/CategoryAxis.d.ts +30 -30
  17. package/src/charts/axis/CategoryAxis.js +241 -241
  18. package/src/charts/axis/NumericAxis.js +351 -351
  19. package/src/charts/axis/Stack.js +55 -55
  20. package/src/charts/axis/TimeAxis.d.ts +28 -28
  21. package/src/charts/axis/TimeAxis.js +611 -610
  22. package/src/charts/helpers/PointReducer.js +47 -47
  23. package/src/charts/helpers/SnapPointFinder.js +69 -69
  24. package/src/data/Binding.spec.js +69 -69
  25. package/src/data/Expression.js +221 -221
  26. package/src/data/Expression.spec.js +217 -217
  27. package/src/data/StringTemplate.js +2 -2
  28. package/src/data/StringTemplate.spec.js +110 -105
  29. package/src/data/getAccessor.spec.js +11 -11
  30. package/src/hooks/createLocalStorageRef.d.ts +3 -3
  31. package/src/hooks/createLocalStorageRef.js +20 -20
  32. package/src/index.scss +6 -6
  33. package/src/ui/Culture.d.ts +57 -55
  34. package/src/ui/Culture.js +139 -139
  35. package/src/ui/FocusManager.js +171 -171
  36. package/src/ui/Format.js +5 -4
  37. package/src/ui/HoverSync.js +3 -3
  38. package/src/ui/Instance.d.ts +72 -72
  39. package/src/ui/Instance.js +614 -614
  40. package/src/ui/Repeater.d.ts +61 -61
  41. package/src/ui/index.d.ts +42 -42
  42. package/src/ui/layout/ContentPlaceholder.d.ts +19 -19
  43. package/src/ui/layout/ContentPlaceholder.js +105 -105
  44. package/src/ui/layout/ContentPlaceholder.spec.js +579 -579
  45. package/src/ui/layout/LabelsTopLayout.js +134 -134
  46. package/src/util/Format.js +3 -2
  47. package/src/util/date/encodeDate.d.ts +1 -0
  48. package/src/util/date/encodeDate.js +8 -0
  49. package/src/util/date/encodeDateWithTimezoneOffset.d.ts +1 -1
  50. package/src/util/date/index.d.ts +11 -9
  51. package/src/util/date/index.js +11 -9
  52. package/src/util/date/parseDateInvariant.d.ts +3 -0
  53. package/src/util/date/parseDateInvariant.js +20 -0
  54. package/src/util/getSearchQueryPredicate.js +59 -59
  55. package/src/util/index.d.ts +51 -51
  56. package/src/util/index.js +54 -54
  57. package/src/util/isValidIdentifierName.d.ts +1 -1
  58. package/src/util/isValidIdentifierName.js +5 -5
  59. package/src/util/isValidIdentifierName.spec.js +33 -33
  60. package/src/util/scss/add-rules.scss +38 -38
  61. package/src/widgets/CxCredit.scss +37 -37
  62. package/src/widgets/HighlightedSearchText.js +36 -36
  63. package/src/widgets/HighlightedSearchText.scss +18 -18
  64. package/src/widgets/List.scss +91 -91
  65. package/src/widgets/drag-drop/DropZone.js +214 -214
  66. package/src/widgets/form/Calendar.js +7 -6
  67. package/src/widgets/form/Calendar.scss +196 -196
  68. package/src/widgets/form/Checkbox.scss +127 -127
  69. package/src/widgets/form/ColorField.js +397 -397
  70. package/src/widgets/form/ColorField.scss +96 -96
  71. package/src/widgets/form/ColorPicker.scss +283 -283
  72. package/src/widgets/form/DateTimeField.js +576 -573
  73. package/src/widgets/form/DateTimePicker.js +9 -8
  74. package/src/widgets/form/LookupField.d.ts +179 -179
  75. package/src/widgets/form/LookupField.scss +219 -219
  76. package/src/widgets/form/MonthField.js +517 -516
  77. package/src/widgets/form/MonthPicker.js +17 -16
  78. package/src/widgets/form/MonthPicker.scss +118 -118
  79. package/src/widgets/form/NumberField.js +459 -459
  80. package/src/widgets/form/NumberField.scss +61 -61
  81. package/src/widgets/form/Radio.scss +121 -121
  82. package/src/widgets/form/Select.scss +99 -99
  83. package/src/widgets/form/Slider.scss +118 -118
  84. package/src/widgets/form/Switch.scss +140 -140
  85. package/src/widgets/form/TextArea.scss +43 -43
  86. package/src/widgets/form/TextField.js +290 -290
  87. package/src/widgets/form/TextField.scss +55 -55
  88. package/src/widgets/form/UploadButton.d.ts +34 -34
  89. package/src/widgets/form/variables.scss +353 -353
  90. package/src/widgets/grid/Grid.d.ts +442 -442
  91. package/src/widgets/grid/Grid.js +5 -4
  92. package/src/widgets/grid/Grid.scss +637 -637
  93. package/src/widgets/grid/GridRow.js +2 -2
  94. package/src/widgets/grid/TreeNode.d.ts +23 -23
  95. package/src/widgets/grid/TreeNode.scss +88 -88
  96. package/src/widgets/grid/variables.scss +133 -133
  97. package/src/widgets/nav/Menu.scss +74 -74
  98. package/src/widgets/overlay/Dropdown.js +612 -612
  99. package/src/widgets/overlay/FlyweightTooltipTracker.js +39 -39
  100. package/src/widgets/overlay/Overlay.d.ts +73 -73
  101. package/src/widgets/overlay/Tooltip.js +303 -303
  102. package/src/widgets/overlay/Window.js +202 -202
  103. package/src/widgets/overlay/captureMouse.js +124 -124
  104. package/src/widgets/overlay/createHotPromiseWindowFactory.d.ts +18 -18
  105. package/src/widgets/overlay/createHotPromiseWindowFactory.js +56 -56
  106. package/src/widgets/overlay/index.d.ts +11 -11
  107. package/src/widgets/overlay/index.js +11 -11
  108. package/src/widgets/variables.scss +144 -144
package/dist/charts.js CHANGED
@@ -22,6 +22,7 @@ import {
22
22
  closest,
23
23
  getTopLevelBoundingClientRect,
24
24
  Format,
25
+ parseDateInvariant,
25
26
  zeroTime,
26
27
  Console as Console$1,
27
28
  } from "cx/util";
@@ -4859,7 +4860,7 @@ Format$1.registerFactory("yearOrMonth", function (format) {
4859
4860
  var year = Format$1.parse("datetime;yyyy");
4860
4861
  var month = Format$1.parse("datetime;MMM");
4861
4862
  return function (date) {
4862
- var d = new Date(date);
4863
+ var d = parseDateInvariant(date);
4863
4864
  if (d.getMonth() == 0) return year(d);
4864
4865
  else return month(d);
4865
4866
  };
@@ -4868,7 +4869,7 @@ Format$1.registerFactory("monthOrDay", function (format) {
4868
4869
  var month = Format$1.parse("datetime;MMM");
4869
4870
  var day = Format$1.parse("datetime;dd");
4870
4871
  return function (date) {
4871
- var d = new Date(date);
4872
+ var d = parseDateInvariant(date);
4872
4873
  if (d.getDate() == 1) return month(d);
4873
4874
  else return day(d);
4874
4875
  };
@@ -4884,7 +4885,7 @@ var TimeAxis = /*#__PURE__*/ (function (_Axis) {
4884
4885
  if (this.labelDx == "auto") this.labelDx = this.vertical ? 0 : "5px";
4885
4886
  if (this.deadZone) {
4886
4887
  this.lowerDeadZone = this.deadZone;
4887
- pperDeadZone = this.deadZone;
4888
+ this.upperDeadZone = this.deadZone;
4888
4889
  }
4889
4890
  this.minLabelDistanceFormatOverride = _extends(
4890
4891
  {},
@@ -4999,7 +5000,7 @@ function monthNumber(date) {
4999
5000
  function yearNumber(date) {
5000
5001
  return monthNumber(date) / 12;
5001
5002
  }
5002
- var miliSeconds = {
5003
+ var milliSeconds = {
5003
5004
  second: 1000,
5004
5005
  minute: 60 * 1000,
5005
5006
  hour: 3600 * 1000,
@@ -5056,11 +5057,11 @@ var TimeScale = /*#__PURE__*/ (function () {
5056
5057
  var v = this.dateCache[date];
5057
5058
  if (!v) {
5058
5059
  if (this.decode) date = this.decode(date);
5059
- v = this.dateCache[date] = Date.parse(date);
5060
+ v = this.dateCache[date] = parseDateInvariant(date).getTime();
5060
5061
  }
5061
5062
  return v;
5062
5063
  case "number":
5063
- return date;
5064
+ return parseDateInvariant(date).getTime();
5064
5065
  }
5065
5066
  };
5066
5067
  _proto2.encodeValue = function encodeValue(v) {
@@ -5189,12 +5190,12 @@ var TimeScale = /*#__PURE__*/ (function () {
5189
5190
  default:
5190
5191
  var minOffset = this.getTimezoneOffset(minDate);
5191
5192
  var maxOffset = this.getTimezoneOffset(maxDate);
5192
- var mondayOffset = 4 * miliSeconds.day; //new Date(0).getDay() => 4
5193
+ var mondayOffset = 4 * milliSeconds.day; //new Date(0).getDay() => 4
5193
5194
  smin = Math.floor((smin - minOffset - mondayOffset) / tickSize) * tickSize + minOffset + mondayOffset;
5194
5195
  smax = Math.ceil((smax - maxOffset - mondayOffset) / tickSize) * tickSize + maxOffset + mondayOffset;
5195
5196
  break;
5196
5197
  case "month":
5197
- tickSize /= miliSeconds.month;
5198
+ tickSize /= milliSeconds.month;
5198
5199
  var minMonth = monthNumber(minDate);
5199
5200
  var maxMonth = monthNumber(maxDate);
5200
5201
  minMonth = Math.floor(minMonth / tickSize) * tickSize;
@@ -5203,7 +5204,7 @@ var TimeScale = /*#__PURE__*/ (function () {
5203
5204
  smax = new Date(Math.floor(maxMonth / 12), maxMonth % 12, 1).getTime();
5204
5205
  break;
5205
5206
  case "year":
5206
- tickSize /= miliSeconds.year;
5207
+ tickSize /= milliSeconds.year;
5207
5208
  var minYear = yearNumber(minDate);
5208
5209
  var maxYear = yearNumber(maxDate);
5209
5210
  minYear = Math.floor(minYear / tickSize) * tickSize;
@@ -5291,7 +5292,7 @@ var TimeScale = /*#__PURE__*/ (function () {
5291
5292
  if (unit == _this3.minTickUnit) minReached = true;
5292
5293
  else return 0; // continue
5293
5294
  }
5294
- var unitSize = miliSeconds[unit];
5295
+ var unitSize = milliSeconds[unit];
5295
5296
  var divisions = _this3.tickDivisions[unit];
5296
5297
  if (_this3.tickSizes.length > 0) {
5297
5298
  var _this3$tickSizes;
@@ -5353,7 +5354,7 @@ var TimeScale = /*#__PURE__*/ (function () {
5353
5354
  _this3.resolvedMinLabelDistance = bestMinLabelDistance;
5354
5355
  },
5355
5356
  _ret;
5356
- for (var unit in miliSeconds) {
5357
+ for (var unit in milliSeconds) {
5357
5358
  _ret = _loop(unit);
5358
5359
  if (_ret === 0) continue;
5359
5360
  if (_ret === 1) break;
@@ -5379,12 +5380,12 @@ var TimeScale = /*#__PURE__*/ (function () {
5379
5380
  lowerTickUnit = "second";
5380
5381
  break;
5381
5382
  }
5382
- if (lowerTickUnit && this.minTickUnit && miliSeconds[lowerTickUnit] < miliSeconds[this.minTickUnit])
5383
+ if (lowerTickUnit && this.minTickUnit && milliSeconds[lowerTickUnit] < milliSeconds[this.minTickUnit])
5383
5384
  lowerTickUnit = this.minTickUnit == this.tickMeasure ? null : this.minTickUnit;
5384
5385
  if (lowerTickUnit != null && this.scale) {
5385
5386
  var bestMinorTickSize = Infinity;
5386
5387
  var divisions = this.tickDivisions[lowerTickUnit];
5387
- var unitSize = miliSeconds[lowerTickUnit];
5388
+ var unitSize = milliSeconds[lowerTickUnit];
5388
5389
  for (var i = 0; i < divisions.length; i++) {
5389
5390
  var divs = divisions[i];
5390
5391
  for (var d = 0; d < divs.length; d++) {
@@ -5423,14 +5424,14 @@ var TimeScale = /*#__PURE__*/ (function () {
5423
5424
  minDate,
5424
5425
  maxDate;
5425
5426
  if (measure == "year") {
5426
- size /= miliSeconds.year;
5427
+ size /= milliSeconds.year;
5427
5428
  minDate = new Date(_this4.scale.min - _this4.scale.minPadding);
5428
5429
  maxDate = new Date(_this4.scale.max + _this4.scale.maxPadding);
5429
5430
  start = Math.ceil(yearNumber(minDate) / size) * size;
5430
5431
  end = Math.floor(yearNumber(maxDate) / size) * size;
5431
5432
  for (var i = start; i <= end; i += size) result.push(new Date(i, 0, 1).getTime());
5432
5433
  } else if (measure == "month") {
5433
- size /= miliSeconds.month;
5434
+ size /= milliSeconds.month;
5434
5435
  minDate = new Date(_this4.scale.min - _this4.scale.minPadding);
5435
5436
  maxDate = new Date(_this4.scale.max + _this4.scale.maxPadding);
5436
5437
  start = Math.ceil(monthNumber(minDate) / size) * size;
@@ -5439,7 +5440,7 @@ var TimeScale = /*#__PURE__*/ (function () {
5439
5440
  result.push(new Date(Math.floor(_i2 / 12), _i2 % 12, 1).getTime());
5440
5441
  } else if (measure == "day" || measure == "week") {
5441
5442
  var multiplier = measure == "week" ? 7 : 1;
5442
- size /= miliSeconds.day;
5443
+ size /= milliSeconds.day;
5443
5444
  minDate = new Date(_this4.scale.min - _this4.scale.minPadding);
5444
5445
  maxDate = new Date(_this4.scale.max + _this4.scale.maxPadding);
5445
5446
  var date = zeroTime(minDate);
@@ -5457,7 +5458,7 @@ var TimeScale = /*#__PURE__*/ (function () {
5457
5458
  }
5458
5459
  } else {
5459
5460
  var minOffset = _this4.getTimezoneOffset(new Date(_this4.scale.min - _this4.scale.minPadding));
5460
- var mondayOffset = 4 * miliSeconds.day;
5461
+ var mondayOffset = 4 * milliSeconds.day;
5461
5462
  var _date =
5462
5463
  Math.ceil((_this4.scale.min - _this4.scale.minPadding - minOffset - mondayOffset) / size) * size +
5463
5464
  minOffset +
package/dist/data.js CHANGED
@@ -420,8 +420,7 @@ function stringTemplate(str) {
420
420
  bracketsOpen = 0,
421
421
  percentSign;
422
422
  for (var i = 0; i < str.length; i++) {
423
- var c = str[i];
424
- switch (c) {
423
+ switch (str[i]) {
425
424
  case "{":
426
425
  if (termStart < 0) {
427
426
  if (str[i + 1] == "{" && str[i - 1] != "%") {
@@ -433,6 +432,7 @@ function stringTemplate(str) {
433
432
  percentSign = str[i - 1] == "%";
434
433
  if (i > quoteStart) expr = plus(expr) + quoteStr(str.substring(quoteStart, percentSign ? i - 1 : i));
435
434
  bracketsOpen = 1;
435
+ quoteStart = i; // for the case where the brackets are not closed
436
436
  }
437
437
  } else bracketsOpen++;
438
438
  break;