cx 24.4.2 → 24.4.4

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.
package/dist/util.js CHANGED
@@ -244,6 +244,12 @@ var formatFactory = {
244
244
  };
245
245
  }
246
246
  },
247
+ zeroPad: function zeroPad(part0, length) {
248
+ return function (value) {
249
+ var s = String(value);
250
+ return s.padStart(length, "0");
251
+ };
252
+ },
247
253
  };
248
254
  formatFactory.s = formatFactory.str = formatFactory.string;
249
255
  formatFactory.f = formatFactory.fixed;
@@ -253,6 +259,7 @@ formatFactory.ps = formatFactory.percentageSign;
253
259
  formatFactory.d = formatFactory.date;
254
260
  formatFactory.t = formatFactory.time;
255
261
  formatFactory.dt = formatFactory.datetime;
262
+ formatFactory.zeropad = formatFactory.zeroPad;
256
263
  function buildFormatter(format) {
257
264
  var formatter = defaultFormatter,
258
265
  nullText = "";
package/dist/widgets.js CHANGED
@@ -17296,12 +17296,13 @@ var GridComponent = /*#__PURE__*/ (function (_VDOM$Component) {
17296
17296
  this.componentDidUpdate();
17297
17297
  var instance = this.props.instance;
17298
17298
  var widget = instance.widget;
17299
- if (widget.scrollable)
17299
+ if (widget.scrollable) {
17300
+ //update fixed header/footer on resize
17300
17301
  this.offResize = ResizeManager.trackElement(this.dom.scroller, function () {
17301
- //ignore changes if the element is not visible on the page
17302
- if (_this10.dom.scroller.offsetWidth == 0) return;
17303
- //update fixed header/footer
17304
17302
  requestAnimationFrame(function () {
17303
+ var _this10$dom$scroller;
17304
+ //ignore changes if the element is not visible on the page
17305
+ if (!((_this10$dom$scroller = _this10.dom.scroller) != null && _this10$dom$scroller.offsetWidth)) return;
17305
17306
  _this10.componentDidUpdate();
17306
17307
  instance.setState({
17307
17308
  dimensionsVersion: instance.state.dimensionsVersion + 1,
@@ -17309,6 +17310,7 @@ var GridComponent = /*#__PURE__*/ (function (_VDOM$Component) {
17309
17310
  });
17310
17311
  });
17311
17312
  });
17313
+ }
17312
17314
  if (widget.pipeKeyDown) instance.invoke("pipeKeyDown", this.handleKeyDown.bind(this), instance);
17313
17315
  this.unregisterDropZone = registerDropZone(this);
17314
17316
  if (widget.infinite) this.ensureData(0, 0);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cx",
3
- "version": "24.4.2",
3
+ "version": "24.4.4",
4
4
  "description": "Advanced JavaScript UI framework for admin and dashboard applications with ready to use grid, form and chart components.",
5
5
  "main": "index.js",
6
6
  "jsnext:main": "src/index.js",
@@ -98,13 +98,13 @@ class PieCalculator {
98
98
  }
99
99
  while (stack.gap > 0) {
100
100
  for (let index = 0; index < stack.r0s.length; index++)
101
- gapAngleTotal += Math.asin(stack.gap / stack.r0s[index] / 2);
101
+ gapAngleTotal += 2 * Math.asin(stack.gap / stack.r0s[index] / 2);
102
102
 
103
103
  for (let index = 0; index < stack.r0ps.length; index++)
104
- gapAngleTotal += Math.asin(stack.gap / ((stack.r0ps[index] * this.R) / 100) / 2);
104
+ gapAngleTotal += 2 * Math.asin(stack.gap / ((stack.r0ps[index] * this.R) / 100) / 2);
105
105
 
106
106
  if (gapAngleTotal < 0.25 * this.angleTotal) break;
107
- stack.gap = stack.gap * 0.9;
107
+ stack.gap = stack.gap * 0.95;
108
108
  gapAngleTotal = 0;
109
109
  }
110
110
  if (gapAngleTotal == 0) stack.gap = 0;
@@ -124,7 +124,7 @@ class PieCalculator {
124
124
  let angle = value * s.angleFactor;
125
125
  let startAngle = s.lastAngle;
126
126
  let clockFactor = this.clockwise ? -1 : 1;
127
- let gapAngle = r0 > 0 && s.gap > 0 ? Math.asin(s.gap / r0 / 2) : 0;
127
+ let gapAngle = r0 > 0 && s.gap > 0 ? 2 * Math.asin(s.gap / r0 / 2) : 0;
128
128
  s.lastAngle += clockFactor * (angle + gapAngle);
129
129
  let endAngle = startAngle + clockFactor * angle + gapAngle;
130
130
 
@@ -163,7 +163,7 @@ function createSvgArc(cx, cy, r0 = 0, r, startAngle, endAngle, br = 0, gap = 0)
163
163
  if (innerSmallArcAngle > (endAngle - startAngle) / 2) {
164
164
  innerSmallArcAngle = (endAngle - startAngle) / 2;
165
165
  let sin = Math.sin(innerSmallArcAngle);
166
- innerBr = (r0 * sin - gap2) / (1 - sin);
166
+ innerBr = Math.max((r0 * sin - gap2) / (1 - sin), 0);
167
167
  }
168
168
 
169
169
  let innerHipDiagonal = (r0 + innerBr) * Math.cos(innerSmallArcAngle);
@@ -214,7 +214,7 @@ function createSvgArc(cx, cy, r0 = 0, r, startAngle, endAngle, br = 0, gap = 0)
214
214
  if (outerSmallArcAngle > (endAngle - startAngle) / 2) {
215
215
  outerSmallArcAngle = (endAngle - startAngle) / 2;
216
216
  let sin = Math.sin(outerSmallArcAngle);
217
- outerBr = (r * sin - gap2) / (1 + sin);
217
+ outerBr = Math.max((r * sin - gap2) / (1 + sin), 0);
218
218
  }
219
219
 
220
220
  let outerHipDiagonal = Math.cos(outerSmallArcAngle) * (r - outerBr);
@@ -124,6 +124,13 @@ let formatFactory = {
124
124
  };
125
125
  }
126
126
  },
127
+
128
+ zeroPad: function (part0, length) {
129
+ return (value) => {
130
+ let s = String(value);
131
+ return s.padStart(length, "0");
132
+ };
133
+ },
127
134
  };
128
135
 
129
136
  formatFactory.s = formatFactory.str = formatFactory.string;
@@ -134,6 +141,7 @@ formatFactory.ps = formatFactory.percentageSign;
134
141
  formatFactory.d = formatFactory.date;
135
142
  formatFactory.t = formatFactory.time;
136
143
  formatFactory.dt = formatFactory.datetime;
144
+ formatFactory.zeropad = formatFactory.zeroPad;
137
145
 
138
146
  function buildFormatter(format) {
139
147
  let formatter = defaultFormatter,
@@ -1972,12 +1972,12 @@ class GridComponent extends VDOM.Component {
1972
1972
  this.componentDidUpdate();
1973
1973
  let { instance } = this.props;
1974
1974
  let { widget } = instance;
1975
- if (widget.scrollable)
1975
+ if (widget.scrollable) {
1976
+ //update fixed header/footer on resize
1976
1977
  this.offResize = ResizeManager.trackElement(this.dom.scroller, () => {
1977
- //ignore changes if the element is not visible on the page
1978
- if (this.dom.scroller.offsetWidth == 0) return;
1979
- //update fixed header/footer
1980
1978
  requestAnimationFrame(() => {
1979
+ //ignore changes if the element is not visible on the page
1980
+ if (!this.dom.scroller?.offsetWidth) return;
1981
1981
  this.componentDidUpdate();
1982
1982
  instance.setState({
1983
1983
  dimensionsVersion: instance.state.dimensionsVersion + 1,
@@ -1985,6 +1985,7 @@ class GridComponent extends VDOM.Component {
1985
1985
  });
1986
1986
  });
1987
1987
  });
1988
+ }
1988
1989
  if (widget.pipeKeyDown) instance.invoke("pipeKeyDown", this.handleKeyDown.bind(this), instance);
1989
1990
  this.unregisterDropZone = registerDropZone(this);
1990
1991
  if (widget.infinite) this.ensureData(0, 0);