cx 26.6.0 → 26.7.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/data/ExposedValueView.js +1 -1
- package/build/data/comparer.d.ts +6 -8
- package/build/data/comparer.d.ts.map +1 -1
- package/build/ui/Cx.d.ts +5 -0
- package/build/ui/Cx.d.ts.map +1 -1
- package/build/ui/Cx.js +34 -3
- package/build/ui/Prop.d.ts +1 -1
- package/build/ui/Prop.d.ts.map +1 -1
- package/build/ui/Restate.d.ts +6 -0
- package/build/ui/Restate.d.ts.map +1 -1
- package/build/ui/Restate.js +2 -1
- package/build/ui/adapter/ArrayAdapter.d.ts +4 -6
- package/build/ui/adapter/ArrayAdapter.d.ts.map +1 -1
- package/build/ui/adapter/GroupAdapter.d.ts +22 -2
- package/build/ui/adapter/GroupAdapter.d.ts.map +1 -1
- package/build/ui/adapter/GroupAdapter.js +80 -5
- package/build/widgets/DocumentTitle.d.ts.map +1 -1
- package/build/widgets/DocumentTitle.js +2 -0
- package/build/widgets/drag-drop/DragSource.d.ts +3 -2
- package/build/widgets/drag-drop/DragSource.d.ts.map +1 -1
- package/build/widgets/drag-drop/DropZone.d.ts +4 -4
- package/build/widgets/drag-drop/DropZone.d.ts.map +1 -1
- package/build/widgets/drag-drop/ops.d.ts +13 -2
- package/build/widgets/drag-drop/ops.d.ts.map +1 -1
- package/build/widgets/drag-drop/ops.js +36 -9
- package/build/widgets/form/NumberField.js +1 -0
- package/build/widgets/grid/Grid.d.ts +19 -3
- package/build/widgets/grid/Grid.d.ts.map +1 -1
- package/build/widgets/grid/Grid.js +2 -0
- package/build/widgets/grid/TreeNode.d.ts +2 -0
- package/build/widgets/grid/TreeNode.d.ts.map +1 -1
- package/build/widgets/overlay/captureMouse.d.ts +4 -4
- package/build/widgets/overlay/captureMouse.d.ts.map +1 -1
- package/build/widgets/overlay/captureMouse.js +8 -3
- package/dist/data.js +1 -1
- package/dist/manifest.js +866 -866
- package/dist/ui.js +130 -12
- package/dist/widgets.css +4 -0
- package/dist/widgets.js +43 -10
- package/package.json +1 -1
- package/src/data/ExposedValueView.spec.ts +57 -0
- package/src/data/ExposedValueView.ts +1 -1
- package/src/data/comparer.ts +6 -7
- package/src/ui/Cx.tsx +44 -3
- package/src/ui/DataProxy.ts +55 -55
- package/src/ui/Prop.ts +1 -1
- package/src/ui/Rescope.ts +50 -50
- package/src/ui/Restate.tsx +9 -0
- package/src/ui/adapter/ArrayAdapter.ts +6 -8
- package/src/ui/adapter/GroupAdapter.spec.ts +75 -0
- package/src/ui/adapter/GroupAdapter.ts +103 -10
- package/src/ui/exprHelpers.ts +96 -96
- package/src/widgets/DocumentTitle.ts +2 -0
- package/src/widgets/Sandbox.ts +104 -104
- package/src/widgets/drag-drop/DragSource.tsx +3 -3
- package/src/widgets/drag-drop/DropZone.tsx +5 -5
- package/src/widgets/drag-drop/ops.tsx +54 -12
- package/src/widgets/form/ColorField.scss +112 -112
- package/src/widgets/form/DateTimeField.scss +111 -111
- package/src/widgets/form/LookupField.maps.scss +26 -26
- package/src/widgets/form/MonthField.scss +113 -113
- package/src/widgets/form/NumberField.scss +4 -0
- package/src/widgets/form/NumberField.tsx +1 -0
- package/src/widgets/form/Select.scss +104 -104
- package/src/widgets/form/TextField.scss +66 -66
- package/src/widgets/grid/Grid.tsx +23 -2
- package/src/widgets/grid/TreeNode.tsx +3 -0
- package/src/widgets/nav/MenuItem.tsx +525 -525
- package/src/widgets/overlay/captureMouse.ts +14 -7
|
@@ -45,7 +45,7 @@ export class ExposedValueView extends View {
|
|
|
45
45
|
if (path == this.recordName) {
|
|
46
46
|
data = this.getData();
|
|
47
47
|
container = this.containerBinding.value(data);
|
|
48
|
-
if (!container || !container.hasOwnProperty(
|
|
48
|
+
if (!container || !container.hasOwnProperty(this.key))
|
|
49
49
|
return false;
|
|
50
50
|
newContainer = Object.assign({}, container);
|
|
51
51
|
delete newContainer[this.key];
|
package/build/data/comparer.d.ts
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
field?: string;
|
|
4
|
-
direction?: string;
|
|
1
|
+
import type { CollatorOptions, Sorter } from "../ui/Prop";
|
|
2
|
+
export interface ExtendedSorter extends Sorter {
|
|
5
3
|
comparer?: (a: any, b: any) => number;
|
|
6
4
|
compare?: (a: any, b: any) => number;
|
|
5
|
+
sortOptions?: CollatorOptions;
|
|
7
6
|
}
|
|
8
|
-
export declare function getComparer(sorters:
|
|
9
|
-
export declare function indexSorter(sorters:
|
|
10
|
-
export declare function sorter(sorters:
|
|
11
|
-
export {};
|
|
7
|
+
export declare function getComparer(sorters: ExtendedSorter[], dataAccessor?: (x: any) => any, comparer?: (a: any, b: any) => number): (a: any, b: any) => number;
|
|
8
|
+
export declare function indexSorter(sorters: ExtendedSorter[], dataAccessor?: (x: any) => any, compare?: (a: any, b: any) => number): (data: any[]) => number[];
|
|
9
|
+
export declare function sorter(sorters: ExtendedSorter[], dataAccessor?: (x: any) => any, compare?: (a: any, b: any) => number): (data: any[]) => any[];
|
|
12
10
|
//# sourceMappingURL=comparer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"comparer.d.ts","sourceRoot":"","sources":["../../src/data/comparer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"comparer.d.ts","sourceRoot":"","sources":["../../src/data/comparer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAE1D,MAAM,WAAW,cAAe,SAAQ,MAAM;IAC3C,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,KAAK,MAAM,CAAC;IACtC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,KAAK,MAAM,CAAC;IACrC,WAAW,CAAC,EAAE,eAAe,CAAC;CAChC;AAED,wBAAgB,WAAW,CACxB,OAAO,EAAE,cAAc,EAAE,EACzB,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,GAAG,EAC9B,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,KAAK,MAAM,GACrC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,KAAK,MAAM,CAkC5B;AAED,wBAAgB,WAAW,CACxB,OAAO,EAAE,cAAc,EAAE,EACzB,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,GAAG,EAC9B,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,KAAK,MAAM,GACpC,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,EAAE,CAO3B;AAED,wBAAgB,MAAM,CACnB,OAAO,EAAE,cAAc,EAAE,EACzB,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,GAAG,EAC9B,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,KAAK,MAAM,GACpC,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAAE,CAQxB"}
|
package/build/ui/Cx.d.ts
CHANGED
|
@@ -12,6 +12,11 @@ export interface CxProps {
|
|
|
12
12
|
parentInstance?: Instance;
|
|
13
13
|
subscribe?: boolean;
|
|
14
14
|
immediate?: boolean;
|
|
15
|
+
/** Cap re-entrant synchronous updates: while batching, once a burst of back-to-back updates gets too
|
|
16
|
+
* deep, defer the excess to the coalesced (setTimeout) branch instead of updating synchronously. Avoids
|
|
17
|
+
* React's "Maximum update depth exceeded" on very large synchronous render bursts (e.g. the initial
|
|
18
|
+
* render of a huge document). Off by default; has no effect on instances that don't set it. */
|
|
19
|
+
limitSyncBursts?: boolean;
|
|
15
20
|
deferredUntilIdle?: boolean;
|
|
16
21
|
idleTimeout?: number;
|
|
17
22
|
options?: any;
|
package/build/ui/Cx.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cx.d.ts","sourceRoot":"","sources":["../../src/ui/Cx.tsx"],"names":[],"mappings":"AAAA,6BAA6B;AAE7B,OAAO,EAAE,MAAM,EAAE,IAAI,EAAc,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAQtC,OAAO,EAA2D,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACzG,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,MAAM,WAAW,OAAO;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,cAAc,CAAC,EAAE,QAAQ,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IAChE,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,GAAG,CAAA;KAAE,KAAK,GAAG,CAAC;IACnD,WAAW,CAAC,EAAE,mBAAmB,CAAC;CACpC;AAED,MAAM,WAAW,OAAO;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,GAAG,CAAC;CACb;
|
|
1
|
+
{"version":3,"file":"Cx.d.ts","sourceRoot":"","sources":["../../src/ui/Cx.tsx"],"names":[],"mappings":"AAAA,6BAA6B;AAE7B,OAAO,EAAE,MAAM,EAAE,IAAI,EAAc,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAQtC,OAAO,EAA2D,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACzG,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,MAAM,WAAW,OAAO;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,cAAc,CAAC,EAAE,QAAQ,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;oGAGgG;IAChG,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IAChE,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,GAAG,CAAA;KAAE,KAAK,GAAG,CAAC;IACnD,WAAW,CAAC,EAAE,mBAAmB,CAAC;CACpC;AAED,MAAM,WAAW,OAAO;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,GAAG,CAAC;CACb;AA4BD,qBAAa,EAAG,SAAQ,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,IAAI,CAAC;IACZ,cAAc,CAAC,EAAE,QAAQ,CAAC;IAC1B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,KAAK,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACrE,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IACtD,mBAAmB,EAAE,MAAM,IAAI,CAAC;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;IACpC,sBAAsB,CAAC,EAAE,MAAM,IAAI,CAAC;gBAExB,KAAK,EAAE,OAAO;IAwC1B,gCAAgC,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAsBtD,WAAW,IAAI,QAAQ;IAcvB,MAAM;IAkBN,iBAAiB,IAAI,IAAI;IAOzB,kBAAkB,IAAI,IAAI;IAM1B,MAAM,IAAI,IAAI;IA6Bd,WAAW,IAAI,IAAI;IAgBnB,oBAAoB,IAAI,IAAI;IAO5B,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO;IAe9D,wBAAwB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI;CAIzD"}
|
package/build/ui/Cx.js
CHANGED
|
@@ -10,6 +10,30 @@ import { shallowEquals } from "../util/shallowEquals";
|
|
|
10
10
|
import { PureContainer } from "./PureContainer";
|
|
11
11
|
import { onIdleCallback } from "../util/onIdleCallback";
|
|
12
12
|
import { getCurrentCulture, pushCulture, popCulture } from "./Culture";
|
|
13
|
+
// Optional guard (opt in per-instance via the `limitSyncBursts` prop) against React's "Maximum update depth
|
|
14
|
+
// exceeded" during very large synchronous render bursts. On the initial render of a large document the store
|
|
15
|
+
// can be mutated thousands of times within a single React commit: every Instance.setState wraps store.notify()
|
|
16
|
+
// in batchUpdates(), so isBatchingUpdates() stays true and a subscribed Cx takes its *synchronous* setState
|
|
17
|
+
// branch on each notification. React counts those as nested render-phase updates and aborts past ~50
|
|
18
|
+
// (surfacing as the recoverable "error during concurrent rendering"). When a Cx opts in, once back-to-back
|
|
19
|
+
// updates exceed the limit it falls back to the coalesced setTimeout branch, which renders the latest store
|
|
20
|
+
// data on the next tick. The counter is global (it mirrors React's global nested-update counter) and resets
|
|
21
|
+
// after any idle gap. It is advanced on every update() of an opted-in Cx -- counting only the synchronous
|
|
22
|
+
// branch would let the window reset whenever a deferred update lands between two synchronous ones, so the
|
|
23
|
+
// counter would never reach the limit. performance.now() gives sub-ms resolution (Date.now() is the fallback;
|
|
24
|
+
// Timing.now() can't be used here because it returns 0 in production).
|
|
25
|
+
const SYNC_UPDATE_BURST_LIMIT = 30;
|
|
26
|
+
const SYNC_UPDATE_BURST_RESET_MS = 10;
|
|
27
|
+
const syncUpdateBurstNow = typeof performance !== "undefined" && performance.now ? () => performance.now() : () => Date.now();
|
|
28
|
+
let syncUpdateBurstCount = 0;
|
|
29
|
+
let syncUpdateBurstLastAt = 0;
|
|
30
|
+
function trackSyncUpdateBurst() {
|
|
31
|
+
let t = syncUpdateBurstNow();
|
|
32
|
+
if (t - syncUpdateBurstLastAt > SYNC_UPDATE_BURST_RESET_MS)
|
|
33
|
+
syncUpdateBurstCount = 0;
|
|
34
|
+
syncUpdateBurstLastAt = t;
|
|
35
|
+
return ++syncUpdateBurstCount > SYNC_UPDATE_BURST_LIMIT;
|
|
36
|
+
}
|
|
13
37
|
export class Cx extends VDOM.Component {
|
|
14
38
|
widget;
|
|
15
39
|
store;
|
|
@@ -111,17 +135,24 @@ export class Cx extends VDOM.Component {
|
|
|
111
135
|
debug(appDataFlag, data);
|
|
112
136
|
if (this.flags.preparing)
|
|
113
137
|
this.flags.dirty = true;
|
|
114
|
-
|
|
138
|
+
// `immediate` always renders synchronously (its contract). Otherwise, while batching, a Cx that opts in
|
|
139
|
+
// via `limitSyncBursts` defers once a synchronous burst gets too deep (avoids React's max-update-depth).
|
|
140
|
+
// Without the flag the condition is unchanged -- trackSyncUpdateBurst() is never even called, so the
|
|
141
|
+
// guard has zero effect on instances that don't opt in.
|
|
142
|
+
else if (this.props.immediate || (isBatchingUpdates() && !(this.props.limitSyncBursts && trackSyncUpdateBurst()))) {
|
|
115
143
|
notifyBatchedUpdateStarting();
|
|
116
144
|
this.setState({ data: data }, notifyBatchedUpdateCompleted);
|
|
117
145
|
}
|
|
118
146
|
else {
|
|
119
|
-
//in standard mode sequential store commands are batched
|
|
147
|
+
//in standard mode sequential store commands are batched -- as is any update that exceeds the
|
|
148
|
+
//synchronous burst limit above, which falls through here to avoid React's max-update-depth abort
|
|
120
149
|
if (!this.pendingUpdateTimer) {
|
|
121
150
|
notifyBatchedUpdateStarting();
|
|
122
151
|
this.pendingUpdateTimer = setTimeout(() => {
|
|
123
152
|
delete this.pendingUpdateTimer;
|
|
124
|
-
|
|
153
|
+
//for opted-in instances read fresh data at fire time so a deferred (coalesced) update isn't
|
|
154
|
+
//left stale after a burst; otherwise keep the original captured-data behavior unchanged
|
|
155
|
+
this.setState({ data: this.props.limitSyncBursts ? this.store.getData() : data }, notifyBatchedUpdateCompleted);
|
|
125
156
|
}, 0);
|
|
126
157
|
}
|
|
127
158
|
}
|
package/build/ui/Prop.d.ts
CHANGED
|
@@ -82,7 +82,7 @@ export type RecordAlias = string | {
|
|
|
82
82
|
export type SortDirection = "ASC" | "DESC";
|
|
83
83
|
export interface Sorter {
|
|
84
84
|
field?: string;
|
|
85
|
-
value?:
|
|
85
|
+
value?: Prop<any>;
|
|
86
86
|
direction: SortDirection;
|
|
87
87
|
}
|
|
88
88
|
export interface CollatorOptions {
|
package/build/ui/Prop.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Prop.d.ts","sourceRoot":"","sources":["../../src/ui/Prop.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Prop.d.ts","sourceRoot":"","sources":["../../src/ui/Prop.ts"],"names":[],"mappings":"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"}
|
package/build/ui/Restate.d.ts
CHANGED
|
@@ -16,6 +16,11 @@ export interface RestateConfig extends PureContainerConfig {
|
|
|
16
16
|
cacheKey?: StringProp;
|
|
17
17
|
/** Set to `true` to disable batching of updates. */
|
|
18
18
|
immediate?: boolean;
|
|
19
|
+
/** Cap re-entrant synchronous updates on the detached `Cx` this Restate renders: once a burst of
|
|
20
|
+
* back-to-back updates gets too deep, defer the excess to the coalesced branch instead of updating
|
|
21
|
+
* synchronously. Avoids React's "Maximum update depth exceeded" on very large synchronous render bursts.
|
|
22
|
+
* Only applies in `detached` mode (a non-detached Restate has no `Cx` of its own). Off by default. */
|
|
23
|
+
limitSyncBursts?: boolean;
|
|
19
24
|
/** Error handler callback. */
|
|
20
25
|
onError?: (error: Error, instance: Instance) => void;
|
|
21
26
|
/** Culture info to be used for formatting. */
|
|
@@ -33,6 +38,7 @@ export declare class Restate<Config extends RestateConfig = RestateConfig> exten
|
|
|
33
38
|
onError?: (error: Error, instance: Instance) => void;
|
|
34
39
|
waitForIdle: boolean;
|
|
35
40
|
immediate: boolean;
|
|
41
|
+
limitSyncBursts: boolean;
|
|
36
42
|
declareData(...args: any[]): void;
|
|
37
43
|
init(): void;
|
|
38
44
|
initSubStore(context: any, instance: any): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Restate.d.ts","sourceRoot":"","sources":["../../src/ui/Restate.tsx"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,OAAO,EAAiB,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AASxF,OAAO,EAAqB,WAAW,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAC7E,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAItC,MAAM,WAAW,aAAc,SAAQ,mBAAmB;IACvD,oDAAoD;IACpD,IAAI,CAAC,EAAE,cAAc,CAAC;IAEtB,qFAAqF;IACrF,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,gEAAgE;IAChE,iBAAiB,CAAC,EAAE,WAAW,CAAC;IAEhC,gDAAgD;IAChD,WAAW,CAAC,EAAE,UAAU,CAAC;IAEzB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,UAAU,CAAC;IAEtB,oDAAoD;IACpD,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,8BAA8B;IAC9B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;IAErD,8CAA8C;IAC9C,OAAO,CAAC,EAAE,WAAW,CAAC;CACxB;AAGD,MAAM,WAAW,YAAa,SAAQ,aAAa;CAAG;AAEtD,qBAAa,OAAO,CAAC,MAAM,SAAS,aAAa,GAAG,aAAa,CAAE,SAAQ,iBAAiB,CAAC,MAAM,CAAC;IACzF,SAAS,EAAE,GAAG,CAAC;IACf,mBAAmB,EAAE,GAAG,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;IACrD,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Restate.d.ts","sourceRoot":"","sources":["../../src/ui/Restate.tsx"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,OAAO,EAAiB,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AASxF,OAAO,EAAqB,WAAW,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAC7E,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAItC,MAAM,WAAW,aAAc,SAAQ,mBAAmB;IACvD,oDAAoD;IACpD,IAAI,CAAC,EAAE,cAAc,CAAC;IAEtB,qFAAqF;IACrF,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,gEAAgE;IAChE,iBAAiB,CAAC,EAAE,WAAW,CAAC;IAEhC,gDAAgD;IAChD,WAAW,CAAC,EAAE,UAAU,CAAC;IAEzB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,UAAU,CAAC;IAEtB,oDAAoD;IACpD,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;2GAGuG;IACvG,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,8BAA8B;IAC9B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;IAErD,8CAA8C;IAC9C,OAAO,CAAC,EAAE,WAAW,CAAC;CACxB;AAGD,MAAM,WAAW,YAAa,SAAQ,aAAa;CAAG;AAEtD,qBAAa,OAAO,CAAC,MAAM,SAAS,aAAa,GAAG,aAAa,CAAE,SAAQ,iBAAiB,CAAC,MAAM,CAAC;IACzF,SAAS,EAAE,GAAG,CAAC;IACf,mBAAmB,EAAE,GAAG,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;IACrD,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IAEjC,WAAW,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE;IAQ1B,IAAI;IAsBJ,YAAY,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG;IAmBxC,gBAAgB,CAAC,QAAQ,EAAE,GAAG;IAI9B,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG;IAQnC,YAAY,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG;IAQpD,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM;CAoBjD;AAQD,eAAO,MAAM,YAAY,gBAAU,CAAC"}
|
package/build/ui/Restate.js
CHANGED
|
@@ -80,12 +80,13 @@ export class Restate extends PureContainerBase {
|
|
|
80
80
|
render(context, instance, key) {
|
|
81
81
|
if (!this.detached)
|
|
82
82
|
return instance.container.render(context);
|
|
83
|
-
return (_jsx(Cx, { widget: this.container, parentInstance: instance, store: instance.subStore, subscribe: true, options: this.options, onError: this.onError, deferredUntilIdle: instance.data.deferredUntilIdle, idleTimeout: instance.data.idleTimeout, immediate: this.immediate, cultureInfo: instance.cultureInfo }, key));
|
|
83
|
+
return (_jsx(Cx, { widget: this.container, parentInstance: instance, store: instance.subStore, subscribe: true, options: this.options, onError: this.onError, deferredUntilIdle: instance.data.deferredUntilIdle, idleTimeout: instance.data.idleTimeout, immediate: this.immediate, limitSyncBursts: this.limitSyncBursts, cultureInfo: instance.cultureInfo }, key));
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
86
|
Restate.prototype.detached = false;
|
|
87
87
|
Restate.prototype.waitForIdle = false;
|
|
88
88
|
Restate.prototype.immediate = false;
|
|
89
|
+
Restate.prototype.limitSyncBursts = false;
|
|
89
90
|
Restate.prototype.culture = null;
|
|
90
91
|
export const PrivateStore = Restate;
|
|
91
92
|
class RestateStore extends Store {
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { DataAdapter, DataAdapterRecord, DataAdapterConfig } from "./DataAdapter";
|
|
2
|
+
import { type ExtendedSorter } from "../../data/comparer";
|
|
2
3
|
import { Accessor } from "../../data/getAccessor";
|
|
3
4
|
import { RenderingContext } from "../RenderingContext";
|
|
4
5
|
import { Instance } from "../Instance";
|
|
5
6
|
import { View } from "../../data/View";
|
|
6
|
-
import { Prop,
|
|
7
|
+
import { Prop, CollatorOptions } from "../Prop";
|
|
7
8
|
export interface RecordStoreCache {
|
|
8
9
|
recordStoreCache: WeakMap<any, View>;
|
|
9
10
|
cacheByKey: Record<string | number, View>;
|
|
@@ -17,10 +18,7 @@ export interface ArrayAdapterConfig extends DataAdapterConfig {
|
|
|
17
18
|
sortOptions?: CollatorOptions;
|
|
18
19
|
preserveOrder?: boolean;
|
|
19
20
|
}
|
|
20
|
-
export
|
|
21
|
-
comparer?: (a: any, b: any) => number;
|
|
22
|
-
sortOptions?: CollatorOptions;
|
|
23
|
-
}
|
|
21
|
+
export type { ExtendedSorter } from "../../data/comparer";
|
|
24
22
|
export interface ResolvedSorter {
|
|
25
23
|
getter: (x: any) => any;
|
|
26
24
|
factor: number;
|
|
@@ -44,6 +42,6 @@ export declare class ArrayAdapter<T = any> extends DataAdapter<T> {
|
|
|
44
42
|
setFilter(filterFn?: (data: T) => boolean): void;
|
|
45
43
|
getComparer(sortOptions?: CollatorOptions): ((a: any, b: any) => number) | undefined;
|
|
46
44
|
buildSorter(sorters: ExtendedSorter[]): void;
|
|
47
|
-
sort(sorters?:
|
|
45
|
+
sort(sorters?: ExtendedSorter[]): void;
|
|
48
46
|
}
|
|
49
47
|
//# sourceMappingURL=ArrayAdapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArrayAdapter.d.ts","sourceRoot":"","sources":["../../../src/ui/adapter/ArrayAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"ArrayAdapter.d.ts","sourceRoot":"","sources":["../../../src/ui/adapter/ArrayAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Grouper } from "../../data/Grouper";
|
|
2
2
|
import { View } from "../../data/View";
|
|
3
3
|
import { Instance } from "../Instance";
|
|
4
|
-
import { Prop, SortDirection, StructuredProp } from "../Prop";
|
|
4
|
+
import { Prop, SortDirection, Sorter, StructuredProp } from "../Prop";
|
|
5
5
|
import { RenderingContext } from "../RenderingContext";
|
|
6
|
-
import { ArrayAdapter, ArrayAdapterConfig, RecordStoreCache } from "./ArrayAdapter";
|
|
6
|
+
import { ArrayAdapter, ArrayAdapterConfig, ExtendedSorter, RecordStoreCache } from "./ArrayAdapter";
|
|
7
7
|
import { DataAdapterRecord } from "./DataAdapter";
|
|
8
8
|
export interface GroupKey {
|
|
9
9
|
[field: string]: Prop<any> | {
|
|
@@ -17,7 +17,17 @@ export interface GroupingConfig {
|
|
|
17
17
|
text?: Prop<string>;
|
|
18
18
|
includeHeader?: boolean;
|
|
19
19
|
includeFooter?: boolean;
|
|
20
|
+
/** Custom group comparer. Takes precedence over `sortField`/`sortDirection`/`sorters`. */
|
|
20
21
|
comparer?: ((a: any, b: any) => number) | null;
|
|
22
|
+
/**
|
|
23
|
+
* Sort groups by a single field resolved against the group's `key`, `aggregates` and `name`.
|
|
24
|
+
* Use an aggregate alias (e.g. `"total"`) to sort by an aggregate, or a key field to sort by key.
|
|
25
|
+
*/
|
|
26
|
+
sortField?: string;
|
|
27
|
+
/** Sort direction used together with `sortField`. Defaults to `"ASC"`. */
|
|
28
|
+
sortDirection?: SortDirection;
|
|
29
|
+
/** Multi-field group sorting. Each sorter's `field` is resolved against the group's `key`, `aggregates` and `name`. */
|
|
30
|
+
sorters?: Sorter[];
|
|
21
31
|
header?: any;
|
|
22
32
|
footer?: any;
|
|
23
33
|
}
|
|
@@ -42,6 +52,8 @@ export interface GroupAdapterConfig extends ArrayAdapterConfig {
|
|
|
42
52
|
groupRecordsName?: string;
|
|
43
53
|
groupings?: GroupingConfig[] | null;
|
|
44
54
|
groupName?: string;
|
|
55
|
+
/** When enabled, the active record sorters also reorder groups (resolved against each group's key/aggregates/name). */
|
|
56
|
+
sortGroupsBySorters?: boolean;
|
|
45
57
|
}
|
|
46
58
|
export declare class GroupAdapter<T = any> extends ArrayAdapter<T> {
|
|
47
59
|
aggregates?: StructuredProp;
|
|
@@ -49,7 +61,15 @@ export declare class GroupAdapter<T = any> extends ArrayAdapter<T> {
|
|
|
49
61
|
groupRecordsName?: string;
|
|
50
62
|
groupings?: ResolvedGrouping[] | null;
|
|
51
63
|
groupName: string;
|
|
64
|
+
sortGroupsBySorters?: boolean;
|
|
65
|
+
/**
|
|
66
|
+
* Per-level comparer derived from the active record sorters, used to reorder groups when
|
|
67
|
+
* `sortGroupsBySorters` is set. A level's entry is `null` when no active sorter maps to that
|
|
68
|
+
* level's key/aggregate, so the grouping's own configured order is kept.
|
|
69
|
+
*/
|
|
70
|
+
protected groupSortComparers?: (((a: any, b: any) => number) | null)[];
|
|
52
71
|
constructor(config?: GroupAdapterConfig);
|
|
72
|
+
sort(sorters?: ExtendedSorter[]): void;
|
|
53
73
|
init(): void;
|
|
54
74
|
getRecords(context: RenderingContext, instance: Instance & Partial<RecordStoreCache>, records: T[], parentStore: View): DataAdapterRecord<T>[];
|
|
55
75
|
protected processLevel(keys: any[], records: DataAdapterRecord<T>[], result: DataAdapterRecord<T>[], parentStore: View): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GroupAdapter.d.ts","sourceRoot":"","sources":["../../../src/ui/adapter/GroupAdapter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"GroupAdapter.d.ts","sourceRoot":"","sources":["../../../src/ui/adapter/GroupAdapter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAMvC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACpG,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,MAAM,WAAW,QAAQ;IACtB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG;QAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAAC,SAAS,EAAE,aAAa,CAAA;KAAE,CAAC;CAC9E;AAED,MAAM,WAAW,cAAc;IAC5B,GAAG,EAAE,QAAQ,CAAC;IACd,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,IAAI,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,0FAA0F;IAC1F,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,KAAK,MAAM,CAAC,GAAG,IAAI,CAAC;IAC/C;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0EAA0E;IAC1E,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,uHAAuH;IACvH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,MAAM,CAAC,EAAE,GAAG,CAAC;CACf;AAED,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACrD,OAAO,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB,CAAC,CAAC,GAAG,GAAG,CAAE,SAAQ,iBAAiB,CAAC,CAAC,CAAC;IACtE,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAmB,SAAQ,kBAAkB;IAC3D,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uHAAuH;IACvH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,qBAAa,YAAY,CAAC,CAAC,GAAG,GAAG,CAAE,SAAQ,YAAY,CAAC,CAAC,CAAC;IACxC,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE7C;;;;OAIG;IACH,SAAS,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,KAAK,MAAM,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;gBAE3D,MAAM,CAAC,EAAE,kBAAkB;IAIhC,IAAI,CAAC,OAAO,CAAC,EAAE,cAAc,EAAE,GAAG,IAAI;IAsBtC,IAAI,IAAI,IAAI;IAYZ,UAAU,CACd,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,gBAAgB,CAAC,EAC9C,OAAO,EAAE,CAAC,EAAE,EACZ,WAAW,EAAE,IAAI,GACjB,iBAAiB,CAAC,CAAC,CAAC,EAAE;IAYzB,SAAS,CAAC,YAAY,CACnB,IAAI,EAAE,GAAG,EAAE,EACX,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,EAC/B,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,EAC9B,WAAW,EAAE,IAAI,GACjB,IAAI;IAoFA,OAAO,CAAC,SAAS,EAAE,cAAc,EAAE,GAAG,IAAI,GAAG,IAAI;CA4D1D"}
|
|
@@ -3,12 +3,40 @@ import { Grouper } from "../../data/Grouper";
|
|
|
3
3
|
import { ReadOnlyDataView } from "../../data/ReadOnlyDataView";
|
|
4
4
|
import { isDataRecord } from "../../util";
|
|
5
5
|
import { isArray } from "../../util/isArray";
|
|
6
|
+
import { isDefined } from "../../util/isDefined";
|
|
7
|
+
import { isNonEmptyArray } from "../../util/isNonEmptyArray";
|
|
6
8
|
import { Culture } from "../Culture";
|
|
7
9
|
import { ArrayAdapter } from "./ArrayAdapter";
|
|
8
10
|
export class GroupAdapter extends ArrayAdapter {
|
|
11
|
+
/**
|
|
12
|
+
* Per-level comparer derived from the active record sorters, used to reorder groups when
|
|
13
|
+
* `sortGroupsBySorters` is set. A level's entry is `null` when no active sorter maps to that
|
|
14
|
+
* level's key/aggregate, so the grouping's own configured order is kept.
|
|
15
|
+
*/
|
|
16
|
+
groupSortComparers;
|
|
9
17
|
constructor(config) {
|
|
10
18
|
super(config);
|
|
11
19
|
}
|
|
20
|
+
sort(sorters) {
|
|
21
|
+
super.sort(sorters);
|
|
22
|
+
// When enabled, derive a group comparer from the active record sorters so that interactive
|
|
23
|
+
// column sorting also reorders the groups. A column only reorders groups at levels where its
|
|
24
|
+
// field is a group key or aggregate; other levels keep their configured order. The record-level
|
|
25
|
+
// value selector is ignored — the field is resolved against the group's key/aggregates/name.
|
|
26
|
+
if (this.sortGroupsBySorters && this.groupings) {
|
|
27
|
+
const cultureComparer = this.sortOptions ? Culture.getComparer(this.sortOptions) : undefined;
|
|
28
|
+
const colSorters = isNonEmptyArray(sorters)
|
|
29
|
+
? sorters.map((s) => ({ field: s.field, direction: s.direction, comparer: s.comparer }))
|
|
30
|
+
: [];
|
|
31
|
+
this.groupSortComparers = this.groupings.map((g) => {
|
|
32
|
+
if (colSorters.length === 0)
|
|
33
|
+
return null;
|
|
34
|
+
const fields = groupFieldNames(g, this.aggregates);
|
|
35
|
+
const applicable = colSorters.filter((s) => s.field && fields.has(s.field));
|
|
36
|
+
return applicable.length > 0 ? buildGroupComparer(applicable, cultureComparer) : null;
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
}
|
|
12
40
|
init() {
|
|
13
41
|
super.init();
|
|
14
42
|
if (this.groupRecordsAlias) {
|
|
@@ -44,8 +72,12 @@ export class GroupAdapter extends ArrayAdapter {
|
|
|
44
72
|
grouper.reset();
|
|
45
73
|
grouper.processAll(records);
|
|
46
74
|
let results = grouper.getResults();
|
|
47
|
-
|
|
48
|
-
|
|
75
|
+
// An active column sort that maps to this level's key/aggregate (when `sortGroupsBySorters` is
|
|
76
|
+
// enabled) takes over; otherwise the grouping's configured comparer (or implicit key order) applies.
|
|
77
|
+
const dynamicComparer = this.sortGroupsBySorters ? this.groupSortComparers?.[level] : undefined;
|
|
78
|
+
const comparer = dynamicComparer ?? grouping.comparer;
|
|
79
|
+
if (comparer && !this.preserveOrder) {
|
|
80
|
+
results.sort(comparer);
|
|
49
81
|
}
|
|
50
82
|
results.forEach((gr) => {
|
|
51
83
|
keys.push(gr.key);
|
|
@@ -118,10 +150,21 @@ export class GroupAdapter extends ArrayAdapter {
|
|
|
118
150
|
});
|
|
119
151
|
}
|
|
120
152
|
const grouper = new Grouper(key, { ...this.aggregates, ...g.aggregates }, (r) => r.store.getData(), g.text);
|
|
153
|
+
const cultureComparer = this.sortOptions ? Culture.getComparer(this.sortOptions) : undefined;
|
|
154
|
+
// Sort groups by an aggregate/key/name through `sortField`/`sortDirection` or a `sorters` array.
|
|
155
|
+
let sortSorters = null;
|
|
156
|
+
if (isNonEmptyArray(g.sorters))
|
|
157
|
+
sortSorters = g.sorters;
|
|
158
|
+
else if (g.sortField)
|
|
159
|
+
sortSorters = [{ field: g.sortField, direction: g.sortDirection ?? "ASC" }];
|
|
160
|
+
// `comparer`, `sortField`/`sorters` and the implicit key order are equivalent alternatives; an
|
|
161
|
+
// explicit `comparer` wins, then declarative sorters, then sorting by key in declaration order.
|
|
121
162
|
const comparer = g.comparer ??
|
|
122
|
-
(
|
|
123
|
-
?
|
|
124
|
-
:
|
|
163
|
+
(sortSorters
|
|
164
|
+
? buildGroupComparer(sortSorters, cultureComparer)
|
|
165
|
+
: groupSorters.length > 0
|
|
166
|
+
? getComparer(groupSorters, (x) => x.key, cultureComparer)
|
|
167
|
+
: null);
|
|
125
168
|
return {
|
|
126
169
|
...g,
|
|
127
170
|
key: resolvedKey,
|
|
@@ -137,6 +180,38 @@ export class GroupAdapter extends ArrayAdapter {
|
|
|
137
180
|
}
|
|
138
181
|
GroupAdapter.prototype.groupName = "$group";
|
|
139
182
|
GroupAdapter.prototype.preserveOrder = false;
|
|
183
|
+
GroupAdapter.prototype.sortGroupsBySorters = false;
|
|
184
|
+
// The set of fields a group can be sorted by at a given level: its key fields, its aggregate aliases
|
|
185
|
+
// and the group name. Used to decide whether an active column sort applies to that grouping level.
|
|
186
|
+
function groupFieldNames(grouping, adapterAggregates) {
|
|
187
|
+
const names = new Set();
|
|
188
|
+
for (const k of grouping.grouper.keys)
|
|
189
|
+
names.add(k.name);
|
|
190
|
+
const aggregates = { ...adapterAggregates, ...grouping.aggregates };
|
|
191
|
+
for (const a in aggregates)
|
|
192
|
+
names.add(a);
|
|
193
|
+
names.add("name");
|
|
194
|
+
names.add("$name");
|
|
195
|
+
return names;
|
|
196
|
+
}
|
|
197
|
+
// Reads a sort field straight from the GroupResult — first its key fields, then its aggregates, then
|
|
198
|
+
// its name. Returns a plain selector so groups can be sorted without cloning the result per comparison.
|
|
199
|
+
function groupFieldSelector(field) {
|
|
200
|
+
if (field === "name" || field === "$name")
|
|
201
|
+
return (gr) => gr?.name;
|
|
202
|
+
return (gr) => {
|
|
203
|
+
if (gr?.key && field in gr.key)
|
|
204
|
+
return gr.key[field];
|
|
205
|
+
if (gr?.aggregates && field in gr.aggregates)
|
|
206
|
+
return gr.aggregates[field];
|
|
207
|
+
return undefined;
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
// Builds a group comparer from a list of sorters. Each sorter resolves by its explicit `value`
|
|
211
|
+
// selector, or by `field` looked up against the group's key/aggregates/name.
|
|
212
|
+
function buildGroupComparer(sorters, cultureComparer) {
|
|
213
|
+
return getComparer(sorters.map((s) => (isDefined(s.value) || !s.field ? s : { ...s, value: groupFieldSelector(s.field) })), undefined, cultureComparer);
|
|
214
|
+
}
|
|
140
215
|
function serializeKey(data) {
|
|
141
216
|
if (isDataRecord(data)) {
|
|
142
217
|
return Object.keys(data)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DocumentTitle.d.ts","sourceRoot":"","sources":["../../src/widgets/DocumentTitle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,WAAW,mBAAoB,SAAQ,YAAY;IACtD,oDAAoD;IACpD,KAAK,CAAC,EAAE,UAAU,CAAC;IAEnB,oDAAoD;IACpD,IAAI,CAAC,EAAE,UAAU,CAAC;IAElB,kDAAkD;IAClD,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,kFAAkF;IAClF,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;IAE1C,yFAAyF;IACzF,SAAS,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,qBAAa,aAAc,SAAQ,MAAM,CAAC,mBAAmB,CAAC;IACnD,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;IAC1C,SAAS,CAAC,EAAE,UAAU,CAAC;gBAEnB,MAAM,CAAC,EAAE,mBAAmB;IAIxC,IAAI,IAAI,IAAI;IAQZ,WAAW,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,IAAI;IASrD,OAAO,CAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IA+B5D,OAAO,CAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"DocumentTitle.d.ts","sourceRoot":"","sources":["../../src/widgets/DocumentTitle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,WAAW,mBAAoB,SAAQ,YAAY;IACtD,oDAAoD;IACpD,KAAK,CAAC,EAAE,UAAU,CAAC;IAEnB,oDAAoD;IACpD,IAAI,CAAC,EAAE,UAAU,CAAC;IAElB,kDAAkD;IAClD,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,kFAAkF;IAClF,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;IAE1C,yFAAyF;IACzF,SAAS,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,qBAAa,aAAc,SAAQ,MAAM,CAAC,mBAAmB,CAAC;IACnD,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;IAC1C,SAAS,CAAC,EAAE,UAAU,CAAC;gBAEnB,MAAM,CAAC,EAAE,mBAAmB;IAIxC,IAAI,IAAI,IAAI;IAQZ,WAAW,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,IAAI;IASrD,OAAO,CAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IA+B5D,OAAO,CAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAO5D,MAAM,IAAI,IAAI;CAGhB"}
|
|
@@ -45,6 +45,8 @@ export class DocumentTitle extends Widget {
|
|
|
45
45
|
super.explore(context, instance);
|
|
46
46
|
}
|
|
47
47
|
prepare(context, instance) {
|
|
48
|
+
if (typeof document == "undefined")
|
|
49
|
+
return;
|
|
48
50
|
if (context.documentTitle.activeInstance == instance)
|
|
49
51
|
document.title = context.documentTitle.title;
|
|
50
52
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/** @jsxImportSource react */
|
|
2
2
|
import { StyledContainerBase, StyledContainerConfig } from "../../ui/Container";
|
|
3
|
+
import { DragEndEvent } from "./ops";
|
|
3
4
|
import { Instance } from "../../ui/Instance";
|
|
4
5
|
import { StringProp, StyleProp, ClassProp, Config } from "../../ui/Prop";
|
|
5
6
|
import { RenderingContext } from "../../ui/RenderingContext";
|
|
@@ -19,7 +20,7 @@ export interface DragSourceConfig extends StyledContainerConfig {
|
|
|
19
20
|
/** Base CSS class to be applied to the element. Defaults to 'dragsource'. */
|
|
20
21
|
baseClass?: string;
|
|
21
22
|
onDragStart?: (e: React.MouseEvent | React.TouchEvent, instance: Instance) => any;
|
|
22
|
-
onDragEnd?: (e:
|
|
23
|
+
onDragEnd?: (e: DragEndEvent, instance: Instance) => void;
|
|
23
24
|
id?: StringProp;
|
|
24
25
|
/** Custom contents to be displayed during drag & drop operation. */
|
|
25
26
|
clone?: Config;
|
|
@@ -45,7 +46,7 @@ export declare class DragSource extends StyledContainerBase<DragSourceConfig, Dr
|
|
|
45
46
|
cloneStyle: any;
|
|
46
47
|
draggedStyle: any;
|
|
47
48
|
onDragStart?: (e: React.MouseEvent | React.TouchEvent, instance: DragSourceInstance) => any;
|
|
48
|
-
onDragEnd?: (e:
|
|
49
|
+
onDragEnd?: (e: DragEndEvent, instance: DragSourceInstance) => void;
|
|
49
50
|
constructor(config?: DragSourceConfig);
|
|
50
51
|
init(): void;
|
|
51
52
|
declareData(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DragSource.d.ts","sourceRoot":"","sources":["../../../src/widgets/drag-drop/DragSource.tsx"],"names":[],"mappings":"AAAA,6BAA6B;AAG7B,OAAO,EAAkC,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"DragSource.d.ts","sourceRoot":"","sources":["../../../src/widgets/drag-drop/DragSource.tsx"],"names":[],"mappings":"AAAA,6BAA6B;AAG7B,OAAO,EAAkC,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChH,OAAO,EAAyE,YAAY,EAAE,MAAM,OAAO,CAAC;AAG5G,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D,MAAM,WAAW,gBAAiB,SAAQ,qBAAqB;IAC5D;;;OAGG;IACH,IAAI,CAAC,EAAE,GAAG,CAAC;IAEX;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,sGAAsG;IACtG,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,KAAK,GAAG,CAAC;IAElF,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;IAE1D,EAAE,CAAC,EAAE,UAAU,CAAC;IAEhB,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,0EAA0E;IAC1E,UAAU,CAAC,EAAE,SAAS,CAAC;IAEvB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,SAAS,CAAC;IAEzB,oFAAoF;IACpF,UAAU,CAAC,EAAE,SAAS,CAAC;IAEvB,uEAAuE;IACvE,YAAY,CAAC,EAAE,SAAS,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAmB,SAAQ,QAAQ,CAAC,UAAU,CAAC;IAC7D,WAAW,EAAE,GAAG,EAAE,CAAC;CACrB;AAED,qBAAa,UAAW,SAAQ,mBAAmB,CAAC,gBAAgB,EAAE,kBAAkB,CAAC;IAC9E,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,GAAG,CAAC;IACV,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,GAAG,CAAC;IAChB,YAAY,EAAE,GAAG,CAAC;IAClB,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,EAAE,QAAQ,EAAE,kBAAkB,KAAK,GAAG,CAAC;IAC5F,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,kBAAkB,KAAK,IAAI,CAAC;gBAEhE,MAAM,CAAC,EAAE,gBAAgB;IAIrC,IAAI;IAMJ,WAAW;IAWX,OAAO,CAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB;IAK/D,cAAc,CAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB;IAItE,MAAM,CAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,EAAE,MAAM;CAO7E"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** @jsxImportSource react */
|
|
2
2
|
import { StyledContainerBase, StyledContainerConfig } from "../../ui/Container";
|
|
3
|
-
import { DragEvent } from "./ops";
|
|
3
|
+
import { DragEvent, DragEndEvent } from "./ops";
|
|
4
4
|
import { Instance } from "../../ui/Instance";
|
|
5
5
|
import { StyleProp, ClassProp, StructuredProp } from "../../ui/Prop";
|
|
6
6
|
import { RenderingContext } from "../../ui/RenderingContext";
|
|
@@ -63,8 +63,8 @@ export interface DropZoneConfig extends StyledContainerConfig {
|
|
|
63
63
|
onDragLeave?: string | ((event: DragEvent, instance: Instance) => void);
|
|
64
64
|
/** A callback method invoked when at the beginning of the drag & drop operation. */
|
|
65
65
|
onDragStart?: string | ((event: DragEvent, instance: Instance) => void);
|
|
66
|
-
/** A callback method invoked when at the end of the drag & drop operation. */
|
|
67
|
-
onDragEnd?: string | ((event:
|
|
66
|
+
/** A callback method invoked when at the end of the drag & drop operation. `event.cancelled` is `true` when the operation was cancelled (e.g. via Esc) instead of dropped. */
|
|
67
|
+
onDragEnd?: string | ((event: DragEndEvent, instance: Instance) => void);
|
|
68
68
|
/** Match height of the item being dragged */
|
|
69
69
|
matchHeight?: boolean;
|
|
70
70
|
/** Match width of the item being dragged */
|
|
@@ -95,7 +95,7 @@ export declare class DropZone extends StyledContainerBase<DropZoneConfig, DropZo
|
|
|
95
95
|
onDragEnter?: string | ((event?: DragEvent, instance?: Instance) => void);
|
|
96
96
|
onDragLeave?: string | ((event?: DragEvent, instance?: Instance) => void);
|
|
97
97
|
onDragStart?: string | ((event?: DragEvent, instance?: Instance) => void);
|
|
98
|
-
onDragEnd?: string | ((event?:
|
|
98
|
+
onDragEnd?: string | ((event?: DragEndEvent, instance?: Instance) => void);
|
|
99
99
|
constructor(config?: DropZoneConfig);
|
|
100
100
|
init(): void;
|
|
101
101
|
declareData(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropZone.d.ts","sourceRoot":"","sources":["../../../src/widgets/drag-drop/DropZone.tsx"],"names":[],"mappings":"AAAA,6BAA6B;AAG7B,OAAO,EAAkC,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAEhH,OAAO,EAAqC,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"DropZone.d.ts","sourceRoot":"","sources":["../../../src/widgets/drag-drop/DropZone.tsx"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,17 @@ export interface DragEvent {
|
|
|
16
16
|
dataTransfer?: DataTransfer;
|
|
17
17
|
result?: any;
|
|
18
18
|
}
|
|
19
|
+
export interface DragEndEvent {
|
|
20
|
+
type: "dragend";
|
|
21
|
+
/** The triggering pointer event, or `null` when the operation was cancelled via the keyboard. */
|
|
22
|
+
event: DragEvent["event"] | null;
|
|
23
|
+
/** Cursor position, or `null` when the operation was cancelled via the keyboard. */
|
|
24
|
+
cursor: CursorPosition | null;
|
|
25
|
+
source: DragEvent["source"];
|
|
26
|
+
/** `true` when the operation was cancelled (e.g. by pressing Esc) instead of dropped. */
|
|
27
|
+
cancelled: boolean;
|
|
28
|
+
result?: any;
|
|
29
|
+
}
|
|
19
30
|
export interface DragDropOptions {
|
|
20
31
|
sourceEl?: Element | null;
|
|
21
32
|
clone?: any;
|
|
@@ -30,7 +41,7 @@ export interface IDropZone {
|
|
|
30
41
|
onDragStart?: DragEventHandler;
|
|
31
42
|
onDragAway?: DragEventHandler;
|
|
32
43
|
onDragNear?: DragEventHandler;
|
|
33
|
-
onDragEnd?:
|
|
44
|
+
onDragEnd?: (e: DragEndEvent) => void;
|
|
34
45
|
onDragMeasure?: (e: DragEvent, operation: DragDropOperationContext) => {
|
|
35
46
|
over: number | false;
|
|
36
47
|
near: number | boolean;
|
|
@@ -44,7 +55,7 @@ export interface IDropZone {
|
|
|
44
55
|
}
|
|
45
56
|
export type UnregisterFunction = () => void;
|
|
46
57
|
export declare function registerDropZone(dropZone: IDropZone): UnregisterFunction;
|
|
47
|
-
export declare function initiateDragDrop(e: MouseEvent | TouchEvent | React.MouseEvent | React.TouchEvent, options?: DragDropOptions, onDragEnd?: (e?:
|
|
58
|
+
export declare function initiateDragDrop(e: MouseEvent | TouchEvent | React.MouseEvent | React.TouchEvent, options?: DragDropOptions, onDragEnd?: (e?: DragEndEvent) => void): void;
|
|
48
59
|
export declare function ddMouseDown(e: React.MouseEvent | React.TouchEvent): void;
|
|
49
60
|
export declare function ddMouseUp(): void;
|
|
50
61
|
export declare function ddDetect(e: MouseEvent | TouchEvent | React.TouchEvent | React.MouseEvent): void | true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ops.d.ts","sourceRoot":"","sources":["../../../src/widgets/drag-drop/ops.tsx"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,OAAO,EAAqC,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE5F,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAIvC,MAAM,WAAW,SAAS;IACvB,IAAI,EAAE,WAAW,GAAG,UAAU,GAAG,UAAU,CAAC;IAC5C,KAAK,EAAE,UAAU,GAAG,UAAU,GAAG,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;IACrE,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,IAAI,CAAC,EAAE,GAAG,CAAC;QACX,KAAK,EAAE,IAAI,CAAC;QACZ,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC;KACvB,CAAC;IACF,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,MAAM,CAAC,EAAE,GAAG,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC7B,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1B,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,MAAM,CAAC,EAAE,GAAG,CAAC;CACf;AAED,MAAM,WAAW,wBAAwB;IACtC,IAAI,EAAE,GAAG,CAAC;CACZ;AAED,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,EAAE,SAAS,KAAK,IAAI,CAAC;AAEtD,MAAM,WAAW,SAAS;IACvB,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,KAAK,OAAO,CAAC;IACvC,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,SAAS,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"ops.d.ts","sourceRoot":"","sources":["../../../src/widgets/drag-drop/ops.tsx"],"names":[],"mappings":"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"}
|