cx 26.4.4 → 26.5.1
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/build/charts/axis/Axis.d.ts +8 -0
- package/build/charts/axis/Axis.d.ts.map +1 -1
- package/build/charts/axis/Axis.js +18 -1
- package/build/charts/axis/TimeAxis.js +1 -0
- package/build/ui/Format.d.ts.map +1 -1
- package/build/ui/Format.js +26 -2
- package/build/util/Format.d.ts.map +1 -1
- package/build/util/Format.js +6 -0
- package/build/util/date/dateQuarter.d.ts +7 -0
- package/build/util/date/dateQuarter.d.ts.map +1 -0
- package/build/util/date/dateQuarter.js +8 -0
- package/build/util/date/dayBefore.d.ts +12 -0
- package/build/util/date/dayBefore.d.ts.map +1 -0
- package/build/util/date/dayBefore.js +15 -0
- package/build/util/date/index.d.ts +2 -0
- package/build/util/date/index.d.ts.map +1 -1
- package/build/util/date/index.js +2 -0
- package/build/widgets/form/DateTimePicker.d.ts.map +1 -1
- package/build/widgets/form/DateTimePicker.js +53 -31
- package/build/widgets/form/Field.d.ts.map +1 -1
- package/build/widgets/form/Field.js +2 -1
- package/build/widgets/form/Wheel.d.ts +8 -0
- package/build/widgets/form/Wheel.d.ts.map +1 -1
- package/build/widgets/form/Wheel.js +30 -7
- package/build/widgets/grid/Grid.d.ts +1 -1
- package/build/widgets/grid/Grid.d.ts.map +1 -1
- package/dist/charts.css +6 -0
- package/dist/charts.js +18 -1
- package/dist/manifest.js +787 -778
- package/dist/ui.js +33 -1
- package/dist/util.js +32 -0
- package/dist/widgets.js +225 -173
- package/package.json +1 -1
- package/src/charts/BarGraph.scss +31 -31
- package/src/charts/Legend.scss +57 -57
- package/src/charts/LegendEntry.scss +35 -35
- package/src/charts/LineGraph.scss +28 -28
- package/src/charts/RangeMarker.scss +3 -0
- package/src/charts/axis/Axis.tsx +31 -1
- package/src/charts/axis/TimeAxis.tsx +1 -0
- package/src/charts/helpers/SnapPointFinder.ts +136 -136
- package/src/charts/helpers/ValueAtFinder.ts +72 -72
- package/src/charts/index.scss +1 -0
- package/src/data/AugmentedViewBase.ts +89 -89
- package/src/data/View.ts +301 -301
- package/src/data/createAccessorModelProxy.ts +66 -66
- package/src/ui/Format.spec.ts +32 -0
- package/src/ui/Format.ts +27 -2
- package/src/ui/Repeater.spec.tsx +181 -181
- package/src/util/Format.spec.ts +11 -0
- package/src/util/Format.ts +7 -0
- package/src/util/date/dateQuarter.ts +8 -0
- package/src/util/date/dayBefore.ts +15 -0
- package/src/util/date/index.ts +2 -0
- package/src/util/scss/include.scss +69 -69
- package/src/widgets/Button.maps.scss +103 -103
- package/src/widgets/form/Calendar.tsx +772 -772
- package/src/widgets/form/DateTimePicker.tsx +453 -392
- package/src/widgets/form/Field.tsx +2 -1
- package/src/widgets/form/ValidationGroup.spec.tsx +30 -1
- package/src/widgets/form/Wheel.tsx +36 -7
- package/src/widgets/grid/Grid.scss +657 -657
- package/src/widgets/grid/Grid.tsx +1 -1
- package/src/widgets/grid/variables.scss +47 -47
- package/src/widgets/index.ts +63 -63
- package/src/widgets/nav/MenuItem.scss +150 -150
- package/src/widgets/nav/Tab.ts +122 -122
- package/src/widgets/overlay/Overlay.tsx +1029 -1029
- package/src/widgets/variables.scss +61 -61
|
@@ -50,6 +50,13 @@ export interface AxisConfig extends BoundedObjectConfig {
|
|
|
50
50
|
labelMaxLineLength?: number;
|
|
51
51
|
/** Set to true to hide the axis labels. */
|
|
52
52
|
hideLabels?: boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Set to `true` to drop a boundary (first/last) label, together with its tick,
|
|
55
|
+
* when the label would not fit within the chart and get clipped at the edge.
|
|
56
|
+
* Minor ticks are unaffected. Only affects horizontal axes. Defaults to `false`,
|
|
57
|
+
* except on `TimeAxis` where it defaults to `true`.
|
|
58
|
+
*/
|
|
59
|
+
hideClippedLabels?: boolean;
|
|
53
60
|
/** Set to true to hide the axis line. */
|
|
54
61
|
hideLine?: boolean;
|
|
55
62
|
/** Set to true to hide the axis ticks. */
|
|
@@ -94,6 +101,7 @@ export declare class Axis extends BoundedObject<AxisConfig, AxisInstance> {
|
|
|
94
101
|
inverted: boolean;
|
|
95
102
|
hidden: boolean;
|
|
96
103
|
hideLabels: boolean;
|
|
104
|
+
hideClippedLabels: boolean;
|
|
97
105
|
hideTicks: boolean;
|
|
98
106
|
hideLine: boolean;
|
|
99
107
|
tickSize: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Axis.d.ts","sourceRoot":"","sources":["../../../src/charts/axis/Axis.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Axis.d.ts","sourceRoot":"","sources":["../../../src/charts/axis/Axis.tsx"],"names":[],"mappings":"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"}
|
|
@@ -27,6 +27,7 @@ export class Axis extends BoundedObject {
|
|
|
27
27
|
super.declareData({
|
|
28
28
|
anchors: undefined,
|
|
29
29
|
hideLabels: undefined,
|
|
30
|
+
hideClippedLabels: undefined,
|
|
30
31
|
hideLine: undefined,
|
|
31
32
|
hideTicks: undefined,
|
|
32
33
|
labelRotation: undefined,
|
|
@@ -75,9 +76,22 @@ export class Axis extends BoundedObject {
|
|
|
75
76
|
var t = [];
|
|
76
77
|
if (!!size && !data.hideLabels) {
|
|
77
78
|
var ticks = calculator.getTicks([size]);
|
|
79
|
+
// A boundary label is dropped when it would be clipped at the chart edge.
|
|
80
|
+
// How far a label reaches toward an edge depends only on its text anchor
|
|
81
|
+
// and minLabelDistance, so it is resolved once here rather than per tick.
|
|
82
|
+
// Chart bounds (parentRect) are used rather than axis bounds, since an
|
|
83
|
+
// axis can be inset within its chart and one Svg may host several charts.
|
|
84
|
+
let chartBounds = instance.parentRect;
|
|
85
|
+
let clipBoundaryLabels = !this.vertical && !!data.hideClippedLabels && !!chartBounds;
|
|
86
|
+
let reach = minLabelDistance * 0.8;
|
|
87
|
+
let leftReach = data.labelAnchor == "end" ? reach : data.labelAnchor == "middle" ? reach / 2 : 0;
|
|
88
|
+
let rightReach = data.labelAnchor == "start" ? reach : data.labelAnchor == "middle" ? reach / 2 : 0;
|
|
78
89
|
ticks.forEach((serie, si) => {
|
|
79
90
|
serie.forEach((v, i) => {
|
|
80
91
|
var s = calculator.map(v);
|
|
92
|
+
// Drop this boundary label (and its major tick) if it would be
|
|
93
|
+
// clipped at the chart edge; minor ticks render separately and stay.
|
|
94
|
+
let clipped = clipBoundaryLabels && (s + rightReach > chartBounds.r || s - leftReach < chartBounds.l);
|
|
81
95
|
if (this.secondary) {
|
|
82
96
|
x1 = this.vertical ? bounds.r + tickOffset : s;
|
|
83
97
|
y1 = this.vertical ? s : bounds.t - tickOffset;
|
|
@@ -90,8 +104,10 @@ export class Axis extends BoundedObject {
|
|
|
90
104
|
x2 = this.vertical ? bounds.l - tickOffset - tickSize : s;
|
|
91
105
|
y2 = this.vertical ? s : bounds.b + tickOffset + tickSize;
|
|
92
106
|
}
|
|
93
|
-
if (!this.useGridlineTicks)
|
|
107
|
+
if (!this.useGridlineTicks && !clipped)
|
|
94
108
|
t.push(`M ${x1} ${y1} L ${x2} ${y2}`);
|
|
109
|
+
if (clipped)
|
|
110
|
+
return;
|
|
95
111
|
var x, y;
|
|
96
112
|
let labelOffset = this.alternateLabelOffset != null && i % 2 == 1 ? this.alternateLabelOffset : this.labelOffset;
|
|
97
113
|
if (this.secondary) {
|
|
@@ -195,6 +211,7 @@ Axis.prototype.secondary = false;
|
|
|
195
211
|
Axis.prototype.inverted = false;
|
|
196
212
|
Axis.prototype.hidden = false;
|
|
197
213
|
Axis.prototype.hideLabels = false;
|
|
214
|
+
Axis.prototype.hideClippedLabels = false;
|
|
198
215
|
Axis.prototype.hideTicks = false;
|
|
199
216
|
Axis.prototype.hideLine = false;
|
|
200
217
|
Axis.prototype.tickSize = 3;
|
|
@@ -112,6 +112,7 @@ TimeAxis.prototype.minLabelDistance = 60;
|
|
|
112
112
|
TimeAxis.prototype.minTickDistance = 60;
|
|
113
113
|
TimeAxis.prototype.minTickUnit = "second";
|
|
114
114
|
TimeAxis.prototype.useLabelDistanceFormatOverrides = false;
|
|
115
|
+
TimeAxis.prototype.hideClippedLabels = true;
|
|
115
116
|
TimeAxis.prototype.minLabelDistanceFormatOverrideDefaults = {
|
|
116
117
|
[TimeFormats.fullDateAndTime]: 150,
|
|
117
118
|
[TimeFormats.shortMonthDate]: 90,
|
package/build/ui/Format.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Format.d.ts","sourceRoot":"","sources":["../../src/ui/Format.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,IAAI,GAAG,EAA0D,MAAM,gBAAgB,CAAC;AAMvG,eAAO,MAAM,MAAM,YAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"Format.d.ts","sourceRoot":"","sources":["../../src/ui/Format.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,IAAI,GAAG,EAA0D,MAAM,gBAAgB,CAAC;AAMvG,eAAO,MAAM,MAAM,YAAM,CAAC;AAuB1B,wBAAgB,4BAA4B,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,GAAG,CAOhE;AAED,wBAAgB,gCAAgC,SA6F/C"}
|
package/build/ui/Format.js
CHANGED
|
@@ -1,10 +1,29 @@
|
|
|
1
1
|
import { Culture, getCurrentCultureCache } from "./Culture";
|
|
2
2
|
import { Format as Fmt, resolveMinMaxFractionDigits, setGetFormatCacheCallback } from "../util/Format";
|
|
3
3
|
import { setGetExpressionCacheCallback } from "../data/Expression";
|
|
4
|
-
import { setGetStringTemplateCacheCallback } from "../data/StringTemplate";
|
|
5
|
-
import { parseDateInvariant } from "../util";
|
|
4
|
+
import { setGetStringTemplateCacheCallback, StringTemplate } from "../data/StringTemplate";
|
|
5
|
+
import { dateQuarter, dayBefore, parseDateInvariant } from "../util";
|
|
6
6
|
import { GlobalCacheIdentifier } from "../util/GlobalCacheIdentifier";
|
|
7
7
|
export const Format = Fmt;
|
|
8
|
+
// The `quarter` formatter renders a calendar quarter via a string-template
|
|
9
|
+
// pattern with `{q}` (quarter number), `{yyyy}` and `{yy}` (year) placeholders.
|
|
10
|
+
// Placeholders are case-insensitive (`{Q}`, `{YYYY}`, `{YY}` work too). It lives
|
|
11
|
+
// here rather than in util/Format because it depends on StringTemplate from the
|
|
12
|
+
// data layer, which util/ cannot import. It is registered eagerly since it does
|
|
13
|
+
// not depend on culture settings.
|
|
14
|
+
Fmt.registerFactory("quarter", (fmt, pattern, mode) => {
|
|
15
|
+
let exclusive = mode === "exclusive" || mode === "ex" || mode === "e";
|
|
16
|
+
let template = StringTemplate.get(pattern || "Q{q} {yyyy}");
|
|
17
|
+
return (value) => {
|
|
18
|
+
let date = parseDateInvariant(value);
|
|
19
|
+
if (exclusive)
|
|
20
|
+
date = dayBefore(date);
|
|
21
|
+
let q = dateQuarter(date);
|
|
22
|
+
let yyyy = date.getFullYear();
|
|
23
|
+
let yy = String(yyyy % 100).padStart(2, "0");
|
|
24
|
+
return template({ q, Q: q, yyyy, YYYY: yyyy, yy, YY: yy });
|
|
25
|
+
};
|
|
26
|
+
});
|
|
8
27
|
let cultureSensitiveFormatsRegistered = false;
|
|
9
28
|
export function resolveNumberFormattingFlags(flags) {
|
|
10
29
|
if (!flags)
|
|
@@ -74,6 +93,11 @@ export function enableCultureSensitiveFormatting() {
|
|
|
74
93
|
let formatter = culture.getFormatter(format);
|
|
75
94
|
return (value) => formatter.format(parseDateInvariant(value));
|
|
76
95
|
});
|
|
96
|
+
Fmt.registerFactory(["dayBefore", "daybefore"], (fmt, format = "yyyyMd hhmm") => {
|
|
97
|
+
let culture = Culture.getDateTimeCulture();
|
|
98
|
+
let formatter = culture.getFormatter(format);
|
|
99
|
+
return (value) => formatter.format(dayBefore(parseDateInvariant(value)));
|
|
100
|
+
});
|
|
77
101
|
setGetFormatCacheCallback(() => {
|
|
78
102
|
let cache = getCurrentCultureCache();
|
|
79
103
|
if (!cache.formatCache)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Format.d.ts","sourceRoot":"","sources":["../../src/util/Format.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Format.d.ts","sourceRoot":"","sources":["../../src/util/Format.ts"],"names":[],"mappings":"AAWA,KAAK,SAAS,GAAG,CAAC,KAAK,EAAE,GAAG,KAAK,MAAM,CAAC;AA4MxC,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAI,CAEzF;AAWD,qBAAa,MAAM;IAChB,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAK5C,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS;IAIvC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI;IAItE,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,SAAS,GAAG,IAAI;CAIjG;AAED,wBAAgB,2BAA2B,CACxC,qBAAqB,EAAE,MAAM,EAC7B,qBAAqB,EAAE,MAAM,GAC7B;IAAE,qBAAqB,EAAE,MAAM,CAAC;IAAC,qBAAqB,EAAE,MAAM,CAAA;CAAE,CAclE;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAMlE"}
|
package/build/util/Format.js
CHANGED
|
@@ -5,6 +5,7 @@ import { isUndefined } from "../util/isUndefined";
|
|
|
5
5
|
import { isArray } from "../util/isArray";
|
|
6
6
|
import { capitalize } from "./capitalize";
|
|
7
7
|
import { parseDateInvariant } from "./date/parseDateInvariant";
|
|
8
|
+
import { dayBefore } from "./date/dayBefore";
|
|
8
9
|
const defaultFormatter = (v) => v.toString();
|
|
9
10
|
let formatFactory = {
|
|
10
11
|
string: function () {
|
|
@@ -76,6 +77,10 @@ let formatFactory = {
|
|
|
76
77
|
let time = formatFactory.time();
|
|
77
78
|
return (value) => date(value) + " " + time(value);
|
|
78
79
|
},
|
|
80
|
+
dayBefore: function () {
|
|
81
|
+
let datetime = formatFactory.datetime();
|
|
82
|
+
return (value) => datetime(dayBefore(parseDateInvariant(value)));
|
|
83
|
+
},
|
|
79
84
|
ellipsis: function (part0, length, where) {
|
|
80
85
|
length = Number(length);
|
|
81
86
|
if (!(length > 3))
|
|
@@ -142,6 +147,7 @@ formatFactory.ps = formatFactory.percentageSign;
|
|
|
142
147
|
formatFactory.d = formatFactory.date;
|
|
143
148
|
formatFactory.t = formatFactory.time;
|
|
144
149
|
formatFactory.dt = formatFactory.datetime;
|
|
150
|
+
formatFactory.daybefore = formatFactory.dayBefore;
|
|
145
151
|
formatFactory.zeropad = formatFactory.zeroPad;
|
|
146
152
|
formatFactory.leftpad = formatFactory.leftPad;
|
|
147
153
|
formatFactory.capitalize = formatFactory.capitalize;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dateQuarter.d.ts","sourceRoot":"","sources":["../../../src/util/date/dateQuarter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAE9C"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns a new `Date` representing the calendar day before the given date,
|
|
3
|
+
* keeping the same time of day. Month and year boundaries are handled
|
|
4
|
+
* automatically. The input is not mutated.
|
|
5
|
+
*
|
|
6
|
+
* Useful for displaying the exclusive end of a date range as an inclusive
|
|
7
|
+
* value, e.g. a period ending at `2021-01-01` shown as `Dec 2020`.
|
|
8
|
+
* @param date
|
|
9
|
+
* @returns {Date}
|
|
10
|
+
*/
|
|
11
|
+
export declare function dayBefore(date: Date): Date;
|
|
12
|
+
//# sourceMappingURL=dayBefore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dayBefore.d.ts","sourceRoot":"","sources":["../../../src/util/date/dayBefore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAI1C"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns a new `Date` representing the calendar day before the given date,
|
|
3
|
+
* keeping the same time of day. Month and year boundaries are handled
|
|
4
|
+
* automatically. The input is not mutated.
|
|
5
|
+
*
|
|
6
|
+
* Useful for displaying the exclusive end of a date range as an inclusive
|
|
7
|
+
* value, e.g. a period ending at `2021-01-01` shown as `Dec 2020`.
|
|
8
|
+
* @param date
|
|
9
|
+
* @returns {Date}
|
|
10
|
+
*/
|
|
11
|
+
export function dayBefore(date) {
|
|
12
|
+
let result = new Date(date.getTime());
|
|
13
|
+
result.setDate(result.getDate() - 1);
|
|
14
|
+
return result;
|
|
15
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/util/date/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,gCAAgC,CAAC;AAC/C,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/util/date/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,gCAAgC,CAAC;AAC/C,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC"}
|
package/build/util/date/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateTimePicker.d.ts","sourceRoot":"","sources":["../../../src/widgets/form/DateTimePicker.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAQ,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAO/C,qBAAa,cAAe,SAAQ,MAAM;
|
|
1
|
+
{"version":3,"file":"DateTimePicker.d.ts","sourceRoot":"","sources":["../../../src/widgets/form/DateTimePicker.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAQ,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAO/C,qBAAa,cAAe,SAAQ,MAAM;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC,CAAC;IACrD,QAAQ,CAAC,EACpB,MAAM,GACN,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC,CAAC;IAC/D,SAAS,EAAE,MAAM,CAAC;IAE1B,WAAW,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,IAAI;IAMrD,MAAM,CACJ,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,MAAM,GACV,KAAK,CAAC,SAAS;CAWnB"}
|
|
@@ -24,18 +24,27 @@ DateTimePicker.prototype.size = 3;
|
|
|
24
24
|
DateTimePicker.prototype.autoFocus = false;
|
|
25
25
|
DateTimePicker.prototype.segment = "datetime";
|
|
26
26
|
DateTimePicker.prototype.showSeconds = false;
|
|
27
|
+
// Builds the option spans for a numeric wheel — one zero-padded span per value.
|
|
28
|
+
// Pass the result to a WheelComponent with `cycle` set to make it scroll
|
|
29
|
+
// endlessly; centre the current value by passing `index = value + range`.
|
|
30
|
+
function buildNumberWheel(range, startAt) {
|
|
31
|
+
return Array.from({ length: range }, (_, j) => (_jsx("span", { children: String(j + startAt).padStart(2, "0") }, j)));
|
|
32
|
+
}
|
|
27
33
|
class DateTimePickerComponent extends VDOM.Component {
|
|
28
34
|
el;
|
|
29
35
|
keyDownPipes;
|
|
30
36
|
constructor(props) {
|
|
31
37
|
super(props);
|
|
32
|
-
let date = props.data.value
|
|
38
|
+
let date = props.data.value
|
|
39
|
+
? parseDateInvariant(props.data.value)
|
|
40
|
+
: new Date();
|
|
33
41
|
if (isNaN(date.getTime()))
|
|
34
42
|
date = new Date();
|
|
35
43
|
this.state = {
|
|
36
44
|
date: date,
|
|
37
45
|
activeWheel: null,
|
|
38
46
|
};
|
|
47
|
+
this.century = (date.getFullYear() / 100) | 0;
|
|
39
48
|
let { widget } = props.instance;
|
|
40
49
|
let pickerWidget = widget;
|
|
41
50
|
this.handleChange = this.handleChange.bind(this);
|
|
@@ -55,7 +64,9 @@ class DateTimePickerComponent extends VDOM.Component {
|
|
|
55
64
|
this.keyDownPipes = {};
|
|
56
65
|
}
|
|
57
66
|
UNSAFE_componentWillReceiveProps(props) {
|
|
58
|
-
let date = props.data.value
|
|
67
|
+
let date = props.data.value
|
|
68
|
+
? parseDateInvariant(props.data.value)
|
|
69
|
+
: new Date();
|
|
59
70
|
if (isNaN(date.getTime()))
|
|
60
71
|
date = new Date();
|
|
61
72
|
this.setState({ date });
|
|
@@ -98,75 +109,86 @@ class DateTimePickerComponent extends VDOM.Component {
|
|
|
98
109
|
let date = this.state.date;
|
|
99
110
|
let culture = Culture.getDateTimeCulture();
|
|
100
111
|
let monthNames = culture.getMonthNames("short");
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
}
|
|
111
|
-
let hours = [];
|
|
112
|
-
for (let h = 0; h < 24; h++) {
|
|
113
|
-
hours.push(_jsx("span", { children: h < 10 ? "0" + h : h }, h));
|
|
112
|
+
// Years: a window spanning the current century, rebuilt when it changes.
|
|
113
|
+
let currentCentury = (date.getFullYear() / 100) | 0;
|
|
114
|
+
if (!this.years || this.century !== currentCentury) {
|
|
115
|
+
this.century = currentCentury;
|
|
116
|
+
this.firstYear = currentCentury * 100 - 3;
|
|
117
|
+
let lastYear = (currentCentury + 1) * 100 + 5;
|
|
118
|
+
this.years = [];
|
|
119
|
+
for (let y = this.firstYear; y <= lastYear; y++)
|
|
120
|
+
this.years.push(_jsx("span", { children: y }, y));
|
|
114
121
|
}
|
|
115
|
-
let
|
|
116
|
-
|
|
117
|
-
|
|
122
|
+
let years = this.years;
|
|
123
|
+
// Day/hour/minute wheels use a 3x buffer (see buildNumberWheel). The day
|
|
124
|
+
// buffer depends on the month length, so it is rebuilt when that changes.
|
|
125
|
+
const numberOfDaysInMonth = new Date(date.getFullYear(), date.getMonth() + 1, 0).getDate();
|
|
126
|
+
if (!this.days || this.numberOfDaysInMonth !== numberOfDaysInMonth) {
|
|
127
|
+
this.numberOfDaysInMonth = numberOfDaysInMonth;
|
|
128
|
+
this.days = buildNumberWheel(numberOfDaysInMonth, 1);
|
|
118
129
|
}
|
|
130
|
+
let days = this.days;
|
|
131
|
+
if (!this.hours)
|
|
132
|
+
this.hours = buildNumberWheel(24, 0);
|
|
133
|
+
let hours = this.hours;
|
|
134
|
+
if (!this.minutes)
|
|
135
|
+
this.minutes = buildNumberWheel(60, 0);
|
|
136
|
+
let minutes = this.minutes;
|
|
119
137
|
return (_jsxs("div", { tabIndex: 0, ref: (el) => {
|
|
120
138
|
this.el = el;
|
|
121
|
-
}, className: data.classNames, onFocus: this.onFocus, onBlur: this.onBlur, onKeyDown: this.onKeyDown, children: [this.wheels.year && (_jsx(WheelComponent, { size: size, CSS: CSS, active: this.state.activeWheel === "year", baseClass: baseClass + "-wheel", index: date.getFullYear() -
|
|
139
|
+
}, className: data.classNames, onFocus: this.onFocus, onBlur: this.onBlur, onKeyDown: this.onKeyDown, children: [this.wheels.year && (_jsx(WheelComponent, { size: size, CSS: CSS, active: this.state.activeWheel === "year", baseClass: baseClass + "-wheel", index: date.getFullYear() - this.firstYear, onChange: (newIndex) => {
|
|
122
140
|
this.setState((state) => ({
|
|
123
|
-
date: this.setDateComponent(
|
|
141
|
+
date: this.setDateComponent(state.date, "year", newIndex + this.firstYear),
|
|
124
142
|
}), this.handleChange);
|
|
125
143
|
}, onPipeKeyDown: (kd) => {
|
|
126
144
|
this.keyDownPipes["year"] = kd;
|
|
127
145
|
}, onMouseDown: () => {
|
|
128
146
|
this.setState({ activeWheel: "year" });
|
|
129
|
-
}, children: years })), this.wheels.year && this.wheels.month && _jsx("span", { children: "-" }), this.wheels.month && (_jsx(WheelComponent, { size: size, CSS: CSS, active: this.state.activeWheel === "month", baseClass: baseClass + "-wheel", index: date.getMonth(), onChange: (newIndex) => {
|
|
147
|
+
}, children: years }, `years-${this.century}`)), this.wheels.year && this.wheels.month && _jsx("span", { children: "-" }), this.wheels.month && (_jsx(WheelComponent, { size: size, CSS: CSS, active: this.state.activeWheel === "month", baseClass: baseClass + "-wheel", index: date.getMonth(), onChange: (newIndex) => {
|
|
130
148
|
this.setState((state) => ({
|
|
131
|
-
date: this.setDateComponent(
|
|
149
|
+
date: this.setDateComponent(state.date, "month", newIndex),
|
|
132
150
|
}), this.handleChange);
|
|
133
151
|
}, onPipeKeyDown: (kd) => {
|
|
134
152
|
this.keyDownPipes["month"] = kd;
|
|
135
153
|
}, onMouseDown: () => {
|
|
136
154
|
this.setState({ activeWheel: "month" });
|
|
137
|
-
}, children: monthNames.map((m, i) => (_jsx("span", { children: m }, i))) })), this.wheels.month && this.wheels.date && _jsx("span", { children: "-" }), this.wheels.date && (_jsx(WheelComponent, { size: size, CSS: CSS, active: this.state.activeWheel === "date", baseClass: baseClass + "-wheel", index: date.getDate() - 1, onChange: (
|
|
155
|
+
}, children: monthNames.map((m, i) => (_jsx("span", { children: m }, i))) })), this.wheels.month && this.wheels.date && _jsx("span", { children: "-" }), this.wheels.date && (_jsx(WheelComponent, { size: size, CSS: CSS, cycle: true, active: this.state.activeWheel === "date", baseClass: baseClass + "-wheel", index: date.getDate() - 1 + this.numberOfDaysInMonth, onChange: (rawIndex) => {
|
|
156
|
+
let day = rawIndex % this.numberOfDaysInMonth;
|
|
138
157
|
this.setState((state) => ({
|
|
139
|
-
date: this.setDateComponent(
|
|
158
|
+
date: this.setDateComponent(state.date, "date", day + 1),
|
|
140
159
|
}), this.handleChange);
|
|
141
160
|
}, onPipeKeyDown: (kd) => {
|
|
142
161
|
this.keyDownPipes["date"] = kd;
|
|
143
162
|
}, onMouseDown: () => {
|
|
144
163
|
this.setState({ activeWheel: "date" });
|
|
145
|
-
}, children: days })), this.wheels.hours && this.wheels.year && _jsx("span", { className: CSS.element(baseClass, "spacer") }), this.wheels.hours && (_jsx(WheelComponent, { size: size, CSS: CSS, active: this.state.activeWheel === "hours", baseClass: baseClass + "-wheel", index: date.getHours(), onChange: (
|
|
164
|
+
}, children: days }, "date")), this.wheels.hours && this.wheels.year && (_jsx("span", { className: CSS.element(baseClass, "spacer") })), this.wheels.hours && (_jsx(WheelComponent, { size: size, CSS: CSS, cycle: true, active: this.state.activeWheel === "hours", baseClass: baseClass + "-wheel", index: date.getHours() + 24, onChange: (rawIndex) => {
|
|
165
|
+
let hour = rawIndex % 24;
|
|
146
166
|
this.setState((state) => ({
|
|
147
|
-
date: this.setDateComponent(
|
|
167
|
+
date: this.setDateComponent(state.date, "hours", hour),
|
|
148
168
|
}), this.handleChange);
|
|
149
169
|
}, onPipeKeyDown: (kd) => {
|
|
150
170
|
this.keyDownPipes["hours"] = kd;
|
|
151
171
|
}, onMouseDown: () => {
|
|
152
172
|
this.setState({ activeWheel: "hours" });
|
|
153
|
-
}, children: hours })), this.wheels.hours && this.wheels.minutes && _jsx("span", { children: ":" }), this.wheels.minutes && (_jsx(WheelComponent, { size: size, CSS: CSS, baseClass: baseClass + "-wheel", active: this.state.activeWheel === "minutes", index: date.getMinutes(), onChange: (
|
|
173
|
+
}, children: hours }, "hours")), this.wheels.hours && this.wheels.minutes && _jsx("span", { children: ":" }), this.wheels.minutes && (_jsx(WheelComponent, { size: size, CSS: CSS, cycle: true, baseClass: baseClass + "-wheel", active: this.state.activeWheel === "minutes", index: date.getMinutes() + 60, onChange: (rawIndex) => {
|
|
174
|
+
let minute = rawIndex % 60;
|
|
154
175
|
this.setState((state) => ({
|
|
155
|
-
date: this.setDateComponent(
|
|
176
|
+
date: this.setDateComponent(state.date, "minutes", minute),
|
|
156
177
|
}), this.handleChange);
|
|
157
178
|
}, onPipeKeyDown: (kd) => {
|
|
158
179
|
this.keyDownPipes["minutes"] = kd;
|
|
159
180
|
}, onMouseDown: () => {
|
|
160
181
|
this.setState({ activeWheel: "minutes" });
|
|
161
|
-
}, children: minutes })), this.wheels.minutes && this.wheels.seconds && _jsx("span", { children: ":" }), this.wheels.seconds && (_jsx(WheelComponent, { size: size, CSS: CSS, baseClass: baseClass + "-wheel", active: this.state.activeWheel === "seconds", index: date.getSeconds(), onChange: (
|
|
182
|
+
}, children: minutes }, "minutes")), this.wheels.minutes && this.wheels.seconds && _jsx("span", { children: ":" }), this.wheels.seconds && (_jsx(WheelComponent, { size: size, CSS: CSS, cycle: true, baseClass: baseClass + "-wheel", active: this.state.activeWheel === "seconds", index: date.getSeconds() + 60, onChange: (rawIndex) => {
|
|
183
|
+
let second = rawIndex % 60;
|
|
162
184
|
this.setState((state) => ({
|
|
163
|
-
date: this.setDateComponent(
|
|
185
|
+
date: this.setDateComponent(state.date, "seconds", second),
|
|
164
186
|
}), this.handleChange);
|
|
165
187
|
}, onPipeKeyDown: (kd) => {
|
|
166
188
|
this.keyDownPipes["seconds"] = kd;
|
|
167
189
|
}, onMouseDown: () => {
|
|
168
190
|
this.setState({ activeWheel: "seconds" });
|
|
169
|
-
}, children: minutes }))] }));
|
|
191
|
+
}, children: minutes }, "seconds"))] }));
|
|
170
192
|
}
|
|
171
193
|
componentDidMount() {
|
|
172
194
|
let { widget } = this.props.instance;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Field.d.ts","sourceRoot":"","sources":["../../../src/widgets/form/Field.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Field.d.ts","sourceRoot":"","sources":["../../../src/widgets/form/Field.tsx"],"names":[],"mappings":"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"}
|
|
@@ -124,6 +124,7 @@ export class Field extends PureContainerBase {
|
|
|
124
124
|
data._readOnly = data.readOnly;
|
|
125
125
|
data._viewMode = data.mode === "view" || data.viewMode;
|
|
126
126
|
data._tabOnEnterKey = data.tabOnEnterKey;
|
|
127
|
+
data._visited = data.visited;
|
|
127
128
|
data.validationValue = this.getValidationValue(data);
|
|
128
129
|
instance.parentDisabled = context.parentDisabled;
|
|
129
130
|
instance.parentReadOnly = context.parentReadOnly;
|
|
@@ -148,7 +149,7 @@ export class Field extends PureContainerBase {
|
|
|
148
149
|
data.readOnly = coalesce(context.parentStrict ? context.parentReadOnly : null, data._readOnly, context.parentReadOnly);
|
|
149
150
|
data.viewMode = coalesce(context.parentStrict ? context.parentViewMode : null, data._viewMode, context.parentViewMode);
|
|
150
151
|
data.tabOnEnterKey = coalesce(context.parentStrict ? context.parentTabOnEnterKey : null, data._tabOnEnterKey, context.parentTabOnEnterKey);
|
|
151
|
-
data.visited = coalesce(context.parentStrict ? context.parentVisited : null, data.
|
|
152
|
+
data.visited = coalesce(context.parentStrict ? context.parentVisited : null, data._visited, context.parentVisited);
|
|
152
153
|
if (!data.error && !data.disabled && !data.viewMode)
|
|
153
154
|
this.validate(context, instance);
|
|
154
155
|
if (data.visited && !state?.visited) {
|
|
@@ -19,6 +19,9 @@ export declare class Wheel extends PureContainerBase<WheelConfig> {
|
|
|
19
19
|
declareData(...args: Record<string, unknown>[]): void;
|
|
20
20
|
render(context: RenderingContext, instance: Instance, key: string): React.ReactNode;
|
|
21
21
|
}
|
|
22
|
+
/** A cyclic wheel renders its option list this many times, leaving scroll
|
|
23
|
+
* headroom on both sides of the centre copy. */
|
|
24
|
+
export declare const WHEEL_BUFFER_COPIES = 3;
|
|
22
25
|
export interface WheelComponentProps {
|
|
23
26
|
size: number;
|
|
24
27
|
children: React.ReactNode[];
|
|
@@ -28,6 +31,11 @@ export interface WheelComponentProps {
|
|
|
28
31
|
className?: string;
|
|
29
32
|
style?: React.CSSProperties;
|
|
30
33
|
index?: number;
|
|
34
|
+
/** Set to render the option list as an endlessly scrolling wheel. The list
|
|
35
|
+
* is rendered `WHEEL_BUFFER_COPIES` times and the wheel snaps to whichever
|
|
36
|
+
* copy of the selected value is nearest its current position, so a wrap
|
|
37
|
+
* scrolls seamlessly into the adjacent identical copy. */
|
|
38
|
+
cycle?: boolean;
|
|
31
39
|
onChange: (newIndex: number) => void;
|
|
32
40
|
onPipeKeyDown?: (fn: (e: React.KeyboardEvent) => void) => void;
|
|
33
41
|
onMouseDown?: () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Wheel.d.ts","sourceRoot":"","sources":["../../../src/widgets/form/Wheel.tsx"],"names":[],"mappings":"AAAA,6BAA6B;AAE7B,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAIhF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAErD,MAAM,WAAW,WAAY,SAAQ,mBAAmB;IACrD,0BAA0B;IAC1B,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAElB,kCAAkC;IAClC,OAAO,CAAC,EAAE,cAAc,CAAC;IAEzB,4DAA4D;IAC5D,IAAI,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,KAAM,SAAQ,iBAAiB,CAAC,WAAW,CAAC;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAE1B,WAAW,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,IAAI;IAOrD,MAAM,CAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS;CA2BrF;AAMD,MAAM,WAAW,mBAAmB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;IAC5B,GAAG,EAAE,OAAO,GAAG,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,aAAa,KAAK,IAAI,KAAK,IAAI,CAAC;IAC/D,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,UAAU,mBAAmB;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,cAAe,SAAQ,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IACzF,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAG,cAAc,CAAC;IACzB,QAAQ,EAAG,cAAc,CAAC;IAC1B,kBAAkB,EAAG,MAAM,IAAI,CAAC;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;gBAEhB,KAAK,EAAE,mBAAmB;IActC,QAAQ,EAAE,CAAC,EAAE,EAAE,cAAc,GAAG,IAAI,KAAK,IAAI,CAAC;IAC9C,SAAS,EAAE,CAAC,EAAE,EAAE,cAAc,GAAG,IAAI,KAAK,IAAI,CAAC;IAE/C,MAAM,IAAI,KAAK,CAAC,SAAS;
|
|
1
|
+
{"version":3,"file":"Wheel.d.ts","sourceRoot":"","sources":["../../../src/widgets/form/Wheel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -27,6 +27,9 @@ export class Wheel extends PureContainerBase {
|
|
|
27
27
|
Wheel.prototype.baseClass = "wheel";
|
|
28
28
|
Wheel.prototype.size = 3;
|
|
29
29
|
Wheel.prototype.styled = true;
|
|
30
|
+
/** A cyclic wheel renders its option list this many times, leaving scroll
|
|
31
|
+
* headroom on both sides of the centre copy. */
|
|
32
|
+
export const WHEEL_BUFFER_COPIES = 3;
|
|
30
33
|
export class WheelComponent extends VDOM.Component {
|
|
31
34
|
index;
|
|
32
35
|
wheelEl;
|
|
@@ -50,18 +53,25 @@ export class WheelComponent extends VDOM.Component {
|
|
|
50
53
|
wheelRef;
|
|
51
54
|
scrollRef;
|
|
52
55
|
render() {
|
|
53
|
-
let { size, children, CSS, baseClass, active, className, style, onMouseDown } = this.props;
|
|
56
|
+
let { size, children, CSS, baseClass, active, className, style, onMouseDown, cycle } = this.props;
|
|
54
57
|
let optionClass = CSS.element(baseClass, "option");
|
|
55
58
|
let dummyClass = CSS.element(baseClass, "option", { dummy: true });
|
|
59
|
+
// A cyclic wheel repeats the option list so it can scroll past either end.
|
|
60
|
+
let options = children;
|
|
61
|
+
if (cycle) {
|
|
62
|
+
options = [];
|
|
63
|
+
for (let i = 0; i < WHEEL_BUFFER_COPIES; i++)
|
|
64
|
+
options.push(...children);
|
|
65
|
+
}
|
|
56
66
|
let tpad = [], bpad = [], padSize = 0;
|
|
57
67
|
for (let i = 0; i < (size - 1) / 2; i++) {
|
|
58
|
-
tpad.push({ key: -1 - i, child:
|
|
59
|
-
bpad.push({ key: -100 - i, child:
|
|
68
|
+
tpad.push({ key: -1 - i, child: options[0], cls: dummyClass });
|
|
69
|
+
bpad.push({ key: -100 - i, child: options[0], cls: dummyClass });
|
|
60
70
|
padSize++;
|
|
61
71
|
}
|
|
62
72
|
let displayedOptions = [
|
|
63
73
|
...tpad,
|
|
64
|
-
...
|
|
74
|
+
...options.map((c, i) => ({
|
|
65
75
|
key: i,
|
|
66
76
|
child: c,
|
|
67
77
|
cls: optionClass,
|
|
@@ -102,7 +112,19 @@ export class WheelComponent extends VDOM.Component {
|
|
|
102
112
|
this.props.onPipeKeyDown(this.onKeyDown);
|
|
103
113
|
}
|
|
104
114
|
UNSAFE_componentWillReceiveProps(props) {
|
|
105
|
-
|
|
115
|
+
let newIndex = props.index || 0;
|
|
116
|
+
// A cyclic wheel renders the option list several times, so the same value
|
|
117
|
+
// appears in several copies. Snap to the copy nearest the wheel's current
|
|
118
|
+
// position rather than the one `props.index` names — a wrap then scrolls
|
|
119
|
+
// one item into the adjacent (identical) copy with no jump, instead of
|
|
120
|
+
// animating all the way back to the centre copy.
|
|
121
|
+
if (props.cycle) {
|
|
122
|
+
let period = props.children.length;
|
|
123
|
+
let value = ((newIndex % period) + period) % period;
|
|
124
|
+
newIndex = value + period * Math.round((this.index - value) / period);
|
|
125
|
+
newIndex = Math.max(0, Math.min(period * WHEEL_BUFFER_COPIES - 1, newIndex));
|
|
126
|
+
}
|
|
127
|
+
this.index = newIndex;
|
|
106
128
|
this.scrollTo();
|
|
107
129
|
}
|
|
108
130
|
componentWillUnmount() {
|
|
@@ -141,8 +163,9 @@ export class WheelComponent extends VDOM.Component {
|
|
|
141
163
|
}
|
|
142
164
|
}
|
|
143
165
|
select(newIndex) {
|
|
144
|
-
let { children } = this.props;
|
|
145
|
-
|
|
166
|
+
let { children, cycle } = this.props;
|
|
167
|
+
let length = children.length * (cycle ? WHEEL_BUFFER_COPIES : 1);
|
|
168
|
+
newIndex = Math.max(0, Math.min(length - 1, newIndex));
|
|
146
169
|
if (this.index !== newIndex) {
|
|
147
170
|
this.index = newIndex;
|
|
148
171
|
this.props.onChange(newIndex);
|
|
@@ -259,7 +259,7 @@ export interface GridConfig<T = any> extends StyledContainerConfig {
|
|
|
259
259
|
/** Callback function to be executed when a column header is right-clicked. */
|
|
260
260
|
onColumnContextMenu?: string | ((e: React.MouseEvent<any>, columnInstance: Instance) => void);
|
|
261
261
|
/** Callback to create a filter function for given filter params. */
|
|
262
|
-
onCreateFilter?: (filterParams: any, instance?: Instance) => (record: T) => boolean;
|
|
262
|
+
onCreateFilter?: (filterParams: any, instance?: Instance) => undefined | null | ((record: T) => boolean);
|
|
263
263
|
/** Enable infinite scrolling */
|
|
264
264
|
infinite?: boolean;
|
|
265
265
|
/** If set, clicking on the column header will loop between ASC, DESC and no sorting order, instead of ASC and DESC only. */
|