cx 24.11.3 → 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 +707 -698
  4. package/dist/ui.js +5 -4
  5. package/dist/util.js +40 -10
  6. package/dist/widgets.js +42 -35
  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 -52
  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/ui.js CHANGED
@@ -43,6 +43,7 @@ import {
43
43
  closestParent,
44
44
  Format as Format$1,
45
45
  resolveMinMaxFractionDigits,
46
+ parseDateInvariant,
46
47
  setGetFormatCacheCallback,
47
48
  isNonEmptyArray,
48
49
  debug,
@@ -1591,7 +1592,7 @@ function enableCultureSensitiveFormatting() {
1591
1592
  var culture = Culture.getDateTimeCulture();
1592
1593
  var formatter = culture.getFormatter(format);
1593
1594
  return function (value) {
1594
- return formatter.format(new Date(value));
1595
+ return formatter.format(parseDateInvariant(value));
1595
1596
  };
1596
1597
  });
1597
1598
  Format$1.registerFactory(["time", "t"], function (fmt, format) {
@@ -1601,7 +1602,7 @@ function enableCultureSensitiveFormatting() {
1601
1602
  var culture = Culture.getDateTimeCulture();
1602
1603
  var formatter = culture.getFormatter(format);
1603
1604
  return function (value) {
1604
- return formatter.format(new Date(value));
1605
+ return formatter.format(parseDateInvariant(value));
1605
1606
  };
1606
1607
  });
1607
1608
  Format$1.registerFactory(["datetime", "dt"], function (fmt, format) {
@@ -1611,7 +1612,7 @@ function enableCultureSensitiveFormatting() {
1611
1612
  var culture = Culture.getDateTimeCulture();
1612
1613
  var formatter = culture.getFormatter(format);
1613
1614
  return function (value) {
1614
- return formatter.format(new Date(value));
1615
+ return formatter.format(parseDateInvariant(value));
1615
1616
  };
1616
1617
  });
1617
1618
  setGetFormatCacheCallback(function () {
@@ -3024,7 +3025,7 @@ var HoverSync = /*#__PURE__*/ (function (_PureContainer) {
3024
3025
  report: function report(channel, hoverId, active) {
3025
3026
  var ch = channels[channel];
3026
3027
  if (!ch) return;
3027
- var state = active && hoverId;
3028
+ var state = active && hoverId != null;
3028
3029
  if (ch.state !== state && (ch.state === hoverId || active)) {
3029
3030
  ch.state = state;
3030
3031
  ch.subscribers.notify(state);
package/dist/util.js CHANGED
@@ -125,6 +125,25 @@ function capitalize(str) {
125
125
  return str.charAt(0).toUpperCase() + str.substring(1);
126
126
  }
127
127
 
128
+ // This module addresses a common issue when handling date strings in the format "yyyy-MM-dd" usually returned by backends.
129
+ // In time zones earlier than UTC, creating a Date object from such a string can result in the date being shifted one day earlier.
130
+ // This happens because "yyyy-MM-dd" is interpreted as a UTC date at 00:00, and when the browser displays it in local time, it adjusts backward.
131
+ // To resolve this, the default implementation (`defaultInvariantParseDate`) appends " 00:00" to the date string,
132
+ // explicitly indicating local time. Custom parsing logic can also be registered dynamically using `registerInvariantParseDateImpl`
133
+ // to accommodate other formats or requirements.
134
+ function defaultParseDateInvariant(input) {
135
+ if (typeof input == "string" && input.length == 10 && input[4] == "-" && input[7] == "-")
136
+ return new Date(input + " 00:00");
137
+ return new Date(input);
138
+ }
139
+ var impl = defaultParseDateInvariant;
140
+ function parseDateInvariant(input) {
141
+ return impl(input);
142
+ }
143
+ function overrideParseDateInvariant(newImpl) {
144
+ impl = newImpl;
145
+ }
146
+
128
147
  //Culture dependent formatters are defined in the ui package.
129
148
 
130
149
  var defaultFormatter = function defaultFormatter(v) {
@@ -202,13 +221,13 @@ var formatFactory = {
202
221
  },
203
222
  date: function date() {
204
223
  return function (value) {
205
- var date = new Date(value);
224
+ var date = parseDateInvariant(value);
206
225
  return date.getMonth() + 1 + "/" + date.getDate() + "/" + date.getFullYear();
207
226
  };
208
227
  },
209
228
  time: function time() {
210
229
  return function (value) {
211
- var date = new Date(value);
230
+ var date = parseDateInvariant(value);
212
231
  var h = date.getHours() >= 10 ? date.getHours() : "0" + date.getHours();
213
232
  var m = date.getMinutes() >= 10 ? date.getMinutes() : "0" + date.getMinutes();
214
233
  return h + ":" + m;
@@ -799,7 +818,7 @@ function sameDate(d1, d2) {
799
818
 
800
819
  //https://stackoverflow.com/questions/17415579/how-to-iso-8601-format-a-date-with-timezone-offset-in-javascript
801
820
 
802
- function pad(num) {
821
+ function pad$1(num) {
803
822
  var norm = Math.floor(Math.abs(num));
804
823
  return (norm < 10 ? "0" : "") + norm;
805
824
  }
@@ -809,22 +828,30 @@ function encodeDateWithTimezoneOffset(date) {
809
828
  return (
810
829
  date.getFullYear() +
811
830
  "-" +
812
- pad(date.getMonth() + 1) +
831
+ pad$1(date.getMonth() + 1) +
813
832
  "-" +
814
- pad(date.getDate()) +
833
+ pad$1(date.getDate()) +
815
834
  "T" +
816
- pad(date.getHours()) +
835
+ pad$1(date.getHours()) +
817
836
  ":" +
818
- pad(date.getMinutes()) +
837
+ pad$1(date.getMinutes()) +
819
838
  ":" +
820
- pad(date.getSeconds()) +
839
+ pad$1(date.getSeconds()) +
821
840
  dif +
822
- pad(tzo / 60) +
841
+ pad$1(tzo / 60) +
823
842
  ":" +
824
- pad(tzo % 60)
843
+ pad$1(tzo % 60)
825
844
  );
826
845
  }
827
846
 
847
+ function pad(num) {
848
+ var norm = Math.floor(Math.abs(num));
849
+ return (norm < 10 ? "0" : "") + norm;
850
+ }
851
+ function encodeDate(date) {
852
+ return date.getFullYear() + "-" + pad(date.getMonth() + 1) + "-" + pad(date.getDate());
853
+ }
854
+
828
855
  function hue2rgb(p, q, t) {
829
856
  if (t < 0) t += 1;
830
857
  if (t > 1) t -= 1;
@@ -1515,6 +1542,7 @@ export {
1515
1542
  destroyFlag,
1516
1543
  dummyCallback,
1517
1544
  enableTouchEventDetection,
1545
+ encodeDate,
1518
1546
  encodeDateWithTimezoneOffset,
1519
1547
  escapeSpecialRegexCharacters,
1520
1548
  expandFatArrows,
@@ -1560,7 +1588,9 @@ export {
1560
1588
  monthStart,
1561
1589
  now,
1562
1590
  onIdleCallback,
1591
+ overrideParseDateInvariant,
1563
1592
  parseColor,
1593
+ parseDateInvariant,
1564
1594
  parseHexColor,
1565
1595
  parseHslColor,
1566
1596
  parseRgbColor,
package/dist/widgets.js CHANGED
@@ -107,6 +107,7 @@ import {
107
107
  monthStart,
108
108
  zeroTime,
109
109
  sameDate,
110
+ parseDateInvariant,
110
111
  dateDiff,
111
112
  upperBoundCheck,
112
113
  lowerBoundCheck,
@@ -4936,7 +4937,7 @@ function createHotPromiseWindowFactoryWithProps(module, factory) {
4936
4937
  dismiss == null || dismiss();
4937
4938
  var window = Window.create(factory(props)(resolve, reject));
4938
4939
  window.overlayWillDismiss = function () {
4939
- if (!reloading) unsubscribe();
4940
+ if (!reloading && unsubscribe) unsubscribe();
4940
4941
  };
4941
4942
  dismiss = window.open(store);
4942
4943
  }
@@ -4944,10 +4945,14 @@ function createHotPromiseWindowFactoryWithProps(module, factory) {
4944
4945
  (_subscriberList = subscriberList) == null
4945
4946
  ? void 0
4946
4947
  : _subscriberList.subscribe(function (updatedFactory) {
4947
- reloading = true;
4948
4948
  factory = updatedFactory;
4949
- rerun();
4950
- reloading = false;
4949
+ setTimeout(function () {
4950
+ // timeout is required for proper module initialization
4951
+ // sometimes elements are defined in the lower part of the module and if the function is run immediately, it will fail
4952
+ reloading = true;
4953
+ rerun();
4954
+ reloading = false;
4955
+ }, 10);
4951
4956
  });
4952
4957
  rerun();
4953
4958
  });
@@ -8084,14 +8089,14 @@ var Calendar = /*#__PURE__*/ (function (_Field) {
8084
8089
  disabled: data.disabled,
8085
8090
  };
8086
8091
  if (data.value) {
8087
- var d = new Date(data.value);
8092
+ var d = parseDateInvariant(data.value);
8088
8093
  if (!isNaN(d.getTime())) {
8089
8094
  data.date = zeroTime(d);
8090
8095
  }
8091
8096
  }
8092
- if (data.refDate) data.refDate = zeroTime(new Date(data.refDate));
8093
- if (data.maxValue) data.maxValue = zeroTime(new Date(data.maxValue));
8094
- if (data.minValue) data.minValue = zeroTime(new Date(data.minValue));
8097
+ if (data.refDate) data.refDate = zeroTime(parseDateInvariant(data.refDate));
8098
+ if (data.maxValue) data.maxValue = zeroTime(parseDateInvariant(data.maxValue));
8099
+ if (data.minValue) data.minValue = zeroTime(parseDateInvariant(data.minValue));
8095
8100
  _Field.prototype.prepareData.apply(this, arguments);
8096
8101
  };
8097
8102
  _proto.validate = function validate(context, instance) {
@@ -8116,7 +8121,7 @@ var Calendar = /*#__PURE__*/ (function (_Field) {
8116
8121
  if (widget.disabledDaysOfWeek.includes(data.date.getDay())) data.error = this.disabledDaysOfWeekErrorText;
8117
8122
  }
8118
8123
  if (data.dayData) {
8119
- var date = new Date(data.value);
8124
+ var date = parseDateInvariant(data.value);
8120
8125
  var info = data.dayData[date.toDateString()];
8121
8126
  if (info && info.disabled) data.error = this.disabledDaysOfWeekErrorText;
8122
8127
  }
@@ -8144,7 +8149,7 @@ var Calendar = /*#__PURE__*/ (function (_Field) {
8144
8149
  if (!validationCheck$1(date, data)) return;
8145
8150
  if (this.onBeforeSelect && instance.invoke("onBeforeSelect", e, instance, date) === false) return;
8146
8151
  if (widget.partial) {
8147
- var mixed = new Date(data.value);
8152
+ var mixed = parseDateInvariant(data.value);
8148
8153
  if (data.value && !isNaN(mixed)) {
8149
8154
  mixed.setFullYear(date.getFullYear());
8150
8155
  mixed.setMonth(date.getMonth());
@@ -10796,14 +10801,14 @@ var MonthPicker = /*#__PURE__*/ (function (_Field) {
10796
10801
  data.stateMods = {
10797
10802
  disabled: data.disabled,
10798
10803
  };
10799
- if (!this.range && data.value) data.date = monthStart(new Date(data.value));
10804
+ if (!this.range && data.value) data.date = monthStart(parseDateInvariant(data.value));
10800
10805
  if (this.range) {
10801
- if (data.from) data.from = monthStart(new Date(data.from));
10802
- if (data.to) data.to = monthStart(new Date(data.to));
10806
+ if (data.from) data.from = monthStart(parseDateInvariant(data.from));
10807
+ if (data.to) data.to = monthStart(parseDateInvariant(data.to));
10803
10808
  }
10804
- if (data.refDate) data.refDate = monthStart(new Date(data.refDate));
10805
- if (data.maxValue) data.maxValue = monthStart(new Date(data.maxValue));
10806
- if (data.minValue) data.minValue = monthStart(new Date(data.minValue));
10809
+ if (data.refDate) data.refDate = monthStart(parseDateInvariant(data.refDate));
10810
+ if (data.maxValue) data.maxValue = monthStart(parseDateInvariant(data.maxValue));
10811
+ if (data.minValue) data.minValue = monthStart(parseDateInvariant(data.minValue));
10807
10812
  _Field.prototype.prepareData.apply(this, arguments);
10808
10813
  };
10809
10814
  _proto.validate = function validate(context, instance) {
@@ -12080,20 +12085,20 @@ var MonthField = /*#__PURE__*/ (function (_Field) {
12080
12085
  month: "short",
12081
12086
  };
12082
12087
  if (!this.range && data.value) {
12083
- data.date = new Date(data.value);
12088
+ data.date = parseDateInvariant(data.value);
12084
12089
  data.formatted = this.culture.format(data.date, formatOptions);
12085
12090
  } else if (this.range && data.from && data.to) {
12086
- data.from = new Date(data.from);
12087
- data.to = new Date(data.to);
12091
+ data.from = parseDateInvariant(data.from);
12092
+ data.to = parseDateInvariant(data.to);
12088
12093
  data.to.setDate(data.to.getDate() - 1);
12089
12094
  var fromStr = this.culture.format(data.from, formatOptions);
12090
12095
  var toStr = this.culture.format(data.to, formatOptions);
12091
12096
  if (fromStr != toStr) data.formatted = fromStr + " - " + toStr;
12092
12097
  else data.formatted = fromStr;
12093
12098
  }
12094
- if (data.refDate) data.refDate = monthStart(new Date(data.refDate));
12095
- if (data.maxValue) data.maxValue = monthStart(new Date(data.maxValue));
12096
- if (data.minValue) data.minValue = monthStart(new Date(data.minValue));
12099
+ if (data.refDate) data.refDate = monthStart(parseDateInvariant(data.refDate));
12100
+ if (data.maxValue) data.maxValue = monthStart(parseDateInvariant(data.maxValue));
12101
+ if (data.minValue) data.minValue = monthStart(parseDateInvariant(data.minValue));
12097
12102
  instance.lastDropdown = context.lastDropdown;
12098
12103
  };
12099
12104
  _proto.validateRequired = function validateRequired(context, instance) {
@@ -14022,7 +14027,7 @@ var DateTimePickerComponent = /*#__PURE__*/ (function (_VDOM$Component) {
14022
14027
  function DateTimePickerComponent(props) {
14023
14028
  var _this;
14024
14029
  _this = _VDOM$Component.call(this, props) || this;
14025
- var date = props.data.value ? new Date(props.data.value) : new Date();
14030
+ var date = props.data.value ? parseDateInvariant(props.data.value) : new Date();
14026
14031
  if (isNaN(date.getTime())) date = new Date();
14027
14032
  _this.state = {
14028
14033
  date: date,
@@ -14049,7 +14054,7 @@ var DateTimePickerComponent = /*#__PURE__*/ (function (_VDOM$Component) {
14049
14054
  _inheritsLoose(DateTimePickerComponent, _VDOM$Component);
14050
14055
  var _proto2 = DateTimePickerComponent.prototype;
14051
14056
  _proto2.UNSAFE_componentWillReceiveProps = function UNSAFE_componentWillReceiveProps(props) {
14052
- var date = props.data.value ? new Date(props.data.value) : new Date();
14057
+ var date = props.data.value ? parseDateInvariant(props.data.value) : new Date();
14053
14058
  if (isNaN(date.getTime())) date = new Date();
14054
14059
  this.setState({
14055
14060
  date: date,
@@ -14573,7 +14578,9 @@ var DateTimeField = /*#__PURE__*/ (function (_Field) {
14573
14578
  _proto.prepareData = function prepareData(context, instance) {
14574
14579
  var data = instance.data;
14575
14580
  if (data.value) {
14576
- var date = new Date(data.value);
14581
+ var date = parseDateInvariant(data.value);
14582
+ // let date = new Date(data.value);
14583
+
14577
14584
  if (isNaN(date.getTime())) data.formatted = String(data.value);
14578
14585
  else {
14579
14586
  // handle utc edge cases
@@ -14582,9 +14589,9 @@ var DateTimeField = /*#__PURE__*/ (function (_Field) {
14582
14589
  }
14583
14590
  data.date = date;
14584
14591
  } else data.formatted = "";
14585
- if (data.refDate) data.refDate = zeroTime(new Date(data.refDate));
14586
- if (data.maxValue) data.maxValue = new Date(data.maxValue);
14587
- if (data.minValue) data.minValue = new Date(data.minValue);
14592
+ if (data.refDate) data.refDate = zeroTime(parseDateInvariant(data.refDate));
14593
+ if (data.maxValue) data.maxValue = parseDateInvariant(data.maxValue);
14594
+ if (data.minValue) data.minValue = parseDateInvariant(data.minValue);
14588
14595
  if (this.segment == "date") {
14589
14596
  if (data.minValue) data.minValue = zeroTime(data.minValue);
14590
14597
  if (data.maxValue) data.maxValue = zeroTime(data.maxValue);
@@ -15044,7 +15051,7 @@ var DateTimeInput = /*#__PURE__*/ (function (_VDOM$Component) {
15044
15051
  inputError: isNaN(date) && widget.inputErrorText,
15045
15052
  });
15046
15053
  if (!isNaN(date)) {
15047
- var mixed = new Date(baseValue);
15054
+ var mixed = parseDateInvariant(baseValue);
15048
15055
  if (date && baseValue && !isNaN(mixed) && widget.partial) {
15049
15056
  switch (widget.segment) {
15050
15057
  case "date":
@@ -15328,11 +15335,11 @@ var GridRowComponent = /*#__PURE__*/ (function (_VDOM$Component) {
15328
15335
  widget = instance.widget;
15329
15336
  var CSS = widget.CSS;
15330
15337
  var move, up, keyDown, leave;
15331
- if (dragSource || data.hoverId) {
15338
+ if (dragSource || data.hoverId != null) {
15332
15339
  move = this.onMouseMove;
15333
15340
  up = ddMouseUp;
15334
15341
  }
15335
- if (data.hoverId) {
15342
+ if (data.hoverId != null) {
15336
15343
  leave = this.onMouseLeave;
15337
15344
  }
15338
15345
  if (widget.onRowClick) keyDown = this.onKeyDown;
@@ -16000,13 +16007,13 @@ var Grid = /*#__PURE__*/ (function (_Container) {
16000
16007
  onMouseDown: function onMouseDown(e) {
16001
16008
  if (e.buttons != 1) return;
16002
16009
  var resizeOverlayEl = document.createElement("div");
16003
- var headerTBody = e.target.parentElement.parentElement.parentElement;
16010
+ var gridEl = e.target.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement;
16004
16011
  var uniqueColId = e.currentTarget.dataset.uniqueColId;
16005
- var headerCell = findFirstChild(headerTBody, function (el) {
16012
+
16013
+ // if we use fixed columns, rhs resizer of the last fixed column is within regular columns header tbody
16014
+ var headerCell = findFirstChild(gridEl, function (el) {
16006
16015
  return el.tagName == "TH" && el.dataset && el.dataset.uniqueColId == uniqueColId;
16007
16016
  });
16008
- var scrollAreaEl = headerTBody.parentElement.parentElement;
16009
- var gridEl = scrollAreaEl.parentElement;
16010
16017
  var initialWidth = headerCell.offsetWidth;
16011
16018
  var initialPosition = getCursorPos(e);
16012
16019
  resizeOverlayEl.className = CSS.element(baseClass, "resize-overlay");
package/package.json CHANGED
@@ -1,32 +1,32 @@
1
- {
2
- "name": "cx",
3
- "version": "24.11.3",
4
- "description": "Advanced JavaScript UI framework for admin and dashboard applications with ready to use grid, form and chart components.",
5
- "main": "index.js",
6
- "jsnext:main": "src/index.js",
7
- "scripts": {
8
- "build": "node build/index"
9
- },
10
- "author": "Codaxy",
11
- "license": "MIT",
12
- "bugs": {
13
- "url": "https://github.com/codaxy/cxjs"
14
- },
15
- "homepage": "https://cxjs.io",
16
- "dependencies": {
17
- "intl-io": "^0.4.3",
18
- "route-parser": "^0.0.5"
19
- },
20
- "peerDependencies": {
21
- "@types/react": "*",
22
- "react": "*",
23
- "react-dom": "*"
24
- },
25
- "repository": {
26
- "type": "git",
27
- "url": "git@github.com:codaxy/cxjs.git"
28
- },
29
- "devDependencies": {
30
- "react-test-renderer": "^18.3.1"
31
- }
32
- }
1
+ {
2
+ "name": "cx",
3
+ "version": "25.1.0",
4
+ "description": "Advanced JavaScript UI framework for admin and dashboard applications with ready to use grid, form and chart components.",
5
+ "main": "index.js",
6
+ "jsnext:main": "src/index.js",
7
+ "scripts": {
8
+ "build": "node build/index"
9
+ },
10
+ "author": "Codaxy",
11
+ "license": "MIT",
12
+ "bugs": {
13
+ "url": "https://github.com/codaxy/cxjs"
14
+ },
15
+ "homepage": "https://cxjs.io",
16
+ "dependencies": {
17
+ "intl-io": "^0.4.3",
18
+ "route-parser": "^0.0.5"
19
+ },
20
+ "peerDependencies": {
21
+ "@types/react": "*",
22
+ "react": "*",
23
+ "react-dom": "*"
24
+ },
25
+ "repository": {
26
+ "type": "git",
27
+ "url": "git@github.com:codaxy/cxjs.git"
28
+ },
29
+ "devDependencies": {
30
+ "react-test-renderer": "^18.3.1"
31
+ }
32
+ }