victory-create-container 37.3.0 → 37.3.2
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/CHANGELOG.md +8 -0
- package/dist/victory-create-container.js +10 -35
- package/dist/victory-create-container.min.js +1 -1
- package/es/create-container.d.ts +9 -9
- package/es/create-container.js +2 -0
- package/lib/create-container.d.ts +9 -9
- package/lib/create-container.js +2 -0
- package/package.json +11 -15
- package/src/create-container.tsx +20 -10
package/es/create-container.d.ts
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { VictoryContainer } from "victory-core";
|
|
2
|
+
import { VictoryContainer, VictoryContainerProps } from "victory-core";
|
|
3
3
|
export declare type ContainerType = "zoom" | "selection" | "brush" | "cursor" | "voronoi";
|
|
4
4
|
declare type ContainerComponents = Record<ContainerType, React.ComponentType<any> & {
|
|
5
5
|
defaultEvents: (props: any) => any[];
|
|
6
6
|
}>;
|
|
7
|
-
export declare function makeCreateContainerFunction<TContainerComponents extends ContainerComponents>(containerComponents: TContainerComponents, VictoryContainerBase: typeof VictoryContainer): <TContainerA extends ContainerType, TContainerB extends ContainerType>(containerA: TContainerA, containerB: TContainerB) => {
|
|
8
|
-
(props: React.ComponentProps<TContainerComponents[TContainerA]> & React.ComponentProps<TContainerComponents[TContainerB]>): JSX.Element;
|
|
7
|
+
export declare function makeCreateContainerFunction<TContainerComponents extends ContainerComponents>(containerComponents: TContainerComponents, VictoryContainerBase: typeof VictoryContainer): <TContainerA extends ContainerType | VictoryContainerProps, TContainerB extends ContainerType | VictoryContainerProps>(containerA: TContainerA extends ContainerType ? TContainerA : ContainerType, containerB: TContainerB extends ContainerType ? TContainerB : ContainerType) => {
|
|
8
|
+
(props: TContainerA extends ContainerType ? TContainerB extends ContainerType ? React.ComponentProps<TContainerComponents[TContainerA]> & React.ComponentProps<TContainerComponents[TContainerB]> : TContainerA & TContainerB : TContainerA & TContainerB): JSX.Element;
|
|
9
9
|
displayName: string;
|
|
10
10
|
role: string;
|
|
11
|
-
defaultEvents(props: React.ComponentProps<TContainerComponents[TContainerA]> & React.ComponentProps<TContainerComponents[TContainerB]>): ({
|
|
11
|
+
defaultEvents(props: TContainerA extends ContainerType ? TContainerB extends ContainerType ? React.ComponentProps<TContainerComponents[TContainerA]> & React.ComponentProps<TContainerComponents[TContainerB]> : TContainerA & TContainerB : TContainerA & TContainerB): ({
|
|
12
12
|
target: string;
|
|
13
13
|
eventHandlers: any;
|
|
14
14
|
} | null)[];
|
|
15
15
|
};
|
|
16
|
-
export declare const createContainer: <TContainerA extends ContainerType, TContainerB extends ContainerType>(containerA: TContainerA, containerB: TContainerB) => {
|
|
17
|
-
(props: React.ComponentProps<{
|
|
16
|
+
export declare const createContainer: <TContainerA extends ContainerType | VictoryContainerProps, TContainerB extends ContainerType | VictoryContainerProps>(containerA: TContainerA extends ContainerType ? TContainerA : ContainerType, containerB: TContainerB extends ContainerType ? TContainerB : ContainerType) => {
|
|
17
|
+
(props: TContainerA extends ContainerType ? TContainerB extends ContainerType ? React.ComponentProps<{
|
|
18
18
|
zoom: {
|
|
19
19
|
(initialProps: import("victory-zoom-container").VictoryZoomContainerProps): JSX.Element;
|
|
20
20
|
role: string;
|
|
@@ -202,10 +202,10 @@ export declare const createContainer: <TContainerA extends ContainerType, TConta
|
|
|
202
202
|
};
|
|
203
203
|
})[];
|
|
204
204
|
};
|
|
205
|
-
}[TContainerB]>): JSX.Element;
|
|
205
|
+
}[TContainerB]> : TContainerA & TContainerB : TContainerA & TContainerB): JSX.Element;
|
|
206
206
|
displayName: string;
|
|
207
207
|
role: string;
|
|
208
|
-
defaultEvents(props: React.ComponentProps<{
|
|
208
|
+
defaultEvents(props: TContainerA extends ContainerType ? TContainerB extends ContainerType ? React.ComponentProps<{
|
|
209
209
|
zoom: {
|
|
210
210
|
(initialProps: import("victory-zoom-container").VictoryZoomContainerProps): JSX.Element;
|
|
211
211
|
role: string;
|
|
@@ -393,7 +393,7 @@ export declare const createContainer: <TContainerA extends ContainerType, TConta
|
|
|
393
393
|
};
|
|
394
394
|
})[];
|
|
395
395
|
};
|
|
396
|
-
}[TContainerB]>): ({
|
|
396
|
+
}[TContainerB]> : TContainerA & TContainerB : TContainerA & TContainerB): ({
|
|
397
397
|
target: string;
|
|
398
398
|
eventHandlers: any;
|
|
399
399
|
} | null)[];
|
package/es/create-container.js
CHANGED
|
@@ -80,6 +80,8 @@ const CONTAINER_COMPONENTS_WEB = {
|
|
|
80
80
|
voronoi: VictoryVoronoiContainer
|
|
81
81
|
};
|
|
82
82
|
export function makeCreateContainerFunction(containerComponents, VictoryContainerBase) {
|
|
83
|
+
// Helper type to support backwards compatibility with old types
|
|
84
|
+
|
|
83
85
|
return function combineContainers(containerA, containerB) {
|
|
84
86
|
const ContainerA = containerComponents[containerA];
|
|
85
87
|
const ContainerB = containerComponents[containerB];
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { VictoryContainer } from "victory-core";
|
|
2
|
+
import { VictoryContainer, VictoryContainerProps } from "victory-core";
|
|
3
3
|
export declare type ContainerType = "zoom" | "selection" | "brush" | "cursor" | "voronoi";
|
|
4
4
|
declare type ContainerComponents = Record<ContainerType, React.ComponentType<any> & {
|
|
5
5
|
defaultEvents: (props: any) => any[];
|
|
6
6
|
}>;
|
|
7
|
-
export declare function makeCreateContainerFunction<TContainerComponents extends ContainerComponents>(containerComponents: TContainerComponents, VictoryContainerBase: typeof VictoryContainer): <TContainerA extends ContainerType, TContainerB extends ContainerType>(containerA: TContainerA, containerB: TContainerB) => {
|
|
8
|
-
(props: React.ComponentProps<TContainerComponents[TContainerA]> & React.ComponentProps<TContainerComponents[TContainerB]>): JSX.Element;
|
|
7
|
+
export declare function makeCreateContainerFunction<TContainerComponents extends ContainerComponents>(containerComponents: TContainerComponents, VictoryContainerBase: typeof VictoryContainer): <TContainerA extends ContainerType | VictoryContainerProps, TContainerB extends ContainerType | VictoryContainerProps>(containerA: TContainerA extends ContainerType ? TContainerA : ContainerType, containerB: TContainerB extends ContainerType ? TContainerB : ContainerType) => {
|
|
8
|
+
(props: TContainerA extends ContainerType ? TContainerB extends ContainerType ? React.ComponentProps<TContainerComponents[TContainerA]> & React.ComponentProps<TContainerComponents[TContainerB]> : TContainerA & TContainerB : TContainerA & TContainerB): JSX.Element;
|
|
9
9
|
displayName: string;
|
|
10
10
|
role: string;
|
|
11
|
-
defaultEvents(props: React.ComponentProps<TContainerComponents[TContainerA]> & React.ComponentProps<TContainerComponents[TContainerB]>): ({
|
|
11
|
+
defaultEvents(props: TContainerA extends ContainerType ? TContainerB extends ContainerType ? React.ComponentProps<TContainerComponents[TContainerA]> & React.ComponentProps<TContainerComponents[TContainerB]> : TContainerA & TContainerB : TContainerA & TContainerB): ({
|
|
12
12
|
target: string;
|
|
13
13
|
eventHandlers: any;
|
|
14
14
|
} | null)[];
|
|
15
15
|
};
|
|
16
|
-
export declare const createContainer: <TContainerA extends ContainerType, TContainerB extends ContainerType>(containerA: TContainerA, containerB: TContainerB) => {
|
|
17
|
-
(props: React.ComponentProps<{
|
|
16
|
+
export declare const createContainer: <TContainerA extends ContainerType | VictoryContainerProps, TContainerB extends ContainerType | VictoryContainerProps>(containerA: TContainerA extends ContainerType ? TContainerA : ContainerType, containerB: TContainerB extends ContainerType ? TContainerB : ContainerType) => {
|
|
17
|
+
(props: TContainerA extends ContainerType ? TContainerB extends ContainerType ? React.ComponentProps<{
|
|
18
18
|
zoom: {
|
|
19
19
|
(initialProps: import("victory-zoom-container").VictoryZoomContainerProps): JSX.Element;
|
|
20
20
|
role: string;
|
|
@@ -202,10 +202,10 @@ export declare const createContainer: <TContainerA extends ContainerType, TConta
|
|
|
202
202
|
};
|
|
203
203
|
})[];
|
|
204
204
|
};
|
|
205
|
-
}[TContainerB]>): JSX.Element;
|
|
205
|
+
}[TContainerB]> : TContainerA & TContainerB : TContainerA & TContainerB): JSX.Element;
|
|
206
206
|
displayName: string;
|
|
207
207
|
role: string;
|
|
208
|
-
defaultEvents(props: React.ComponentProps<{
|
|
208
|
+
defaultEvents(props: TContainerA extends ContainerType ? TContainerB extends ContainerType ? React.ComponentProps<{
|
|
209
209
|
zoom: {
|
|
210
210
|
(initialProps: import("victory-zoom-container").VictoryZoomContainerProps): JSX.Element;
|
|
211
211
|
role: string;
|
|
@@ -393,7 +393,7 @@ export declare const createContainer: <TContainerA extends ContainerType, TConta
|
|
|
393
393
|
};
|
|
394
394
|
})[];
|
|
395
395
|
};
|
|
396
|
-
}[TContainerB]>): ({
|
|
396
|
+
}[TContainerB]> : TContainerA & TContainerB : TContainerA & TContainerB): ({
|
|
397
397
|
target: string;
|
|
398
398
|
eventHandlers: any;
|
|
399
399
|
} | null)[];
|
package/lib/create-container.js
CHANGED
|
@@ -88,6 +88,8 @@ const CONTAINER_COMPONENTS_WEB = {
|
|
|
88
88
|
voronoi: _victoryVoronoiContainer.VictoryVoronoiContainer
|
|
89
89
|
};
|
|
90
90
|
function makeCreateContainerFunction(containerComponents, VictoryContainerBase) {
|
|
91
|
+
// Helper type to support backwards compatibility with old types
|
|
92
|
+
|
|
91
93
|
return function combineContainers(containerA, containerB) {
|
|
92
94
|
const ContainerA = containerComponents[containerA];
|
|
93
95
|
const ContainerB = containerComponents[containerB];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "victory-create-container",
|
|
3
|
-
"version": "37.3.
|
|
3
|
+
"version": "37.3.2",
|
|
4
4
|
"description": "Container Helper for Victory",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"data visualization",
|
|
@@ -21,12 +21,12 @@
|
|
|
21
21
|
"license": "MIT",
|
|
22
22
|
"dependencies": {
|
|
23
23
|
"lodash": "^4.17.19",
|
|
24
|
-
"victory-brush-container": "37.3.
|
|
25
|
-
"victory-core": "37.3.
|
|
26
|
-
"victory-cursor-container": "37.3.
|
|
27
|
-
"victory-selection-container": "37.3.
|
|
28
|
-
"victory-voronoi-container": "37.3.
|
|
29
|
-
"victory-zoom-container": "37.3.
|
|
24
|
+
"victory-brush-container": "37.3.2",
|
|
25
|
+
"victory-core": "37.3.2",
|
|
26
|
+
"victory-cursor-container": "37.3.2",
|
|
27
|
+
"victory-selection-container": "37.3.2",
|
|
28
|
+
"victory-voronoi-container": "37.3.2",
|
|
29
|
+
"victory-zoom-container": "37.3.2"
|
|
30
30
|
},
|
|
31
31
|
"peerDependencies": {
|
|
32
32
|
"react": ">=16.6.0"
|
|
@@ -242,11 +242,9 @@
|
|
|
242
242
|
]
|
|
243
243
|
},
|
|
244
244
|
"lint": {
|
|
245
|
-
"command": "
|
|
245
|
+
"command": "eslint src",
|
|
246
246
|
"files": [
|
|
247
|
-
"src/**"
|
|
248
|
-
"../../.eslintignore",
|
|
249
|
-
"../../.eslintrc.js"
|
|
247
|
+
"src/**"
|
|
250
248
|
],
|
|
251
249
|
"output": [],
|
|
252
250
|
"dependencies": [
|
|
@@ -264,11 +262,9 @@
|
|
|
264
262
|
]
|
|
265
263
|
},
|
|
266
264
|
"lint:fix": {
|
|
267
|
-
"command": "
|
|
265
|
+
"command": "eslint --fix src",
|
|
268
266
|
"files": [
|
|
269
|
-
"src/**"
|
|
270
|
-
"../../.eslintignore",
|
|
271
|
-
"../../.eslintrc.js"
|
|
267
|
+
"src/**"
|
|
272
268
|
],
|
|
273
269
|
"output": [],
|
|
274
270
|
"dependencies": [
|
package/src/create-container.tsx
CHANGED
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
useVictorySelectionContainer,
|
|
8
8
|
} from "victory-selection-container";
|
|
9
9
|
import React from "react";
|
|
10
|
-
import { VictoryContainer } from "victory-core";
|
|
10
|
+
import { VictoryContainer, VictoryContainerProps } from "victory-core";
|
|
11
11
|
import { forOwn, groupBy, isEmpty, toPairs } from "lodash";
|
|
12
12
|
import {
|
|
13
13
|
VictoryVoronoiContainer,
|
|
@@ -123,17 +123,27 @@ export function makeCreateContainerFunction<
|
|
|
123
123
|
TContainerComponents[T]
|
|
124
124
|
>;
|
|
125
125
|
|
|
126
|
+
// Helper type to support backwards compatibility with old types
|
|
127
|
+
type CombinedContainerProps<A, B> = A extends ContainerType
|
|
128
|
+
? B extends ContainerType
|
|
129
|
+
? ContainerProps<A> & ContainerProps<B> // New style: infer from container types
|
|
130
|
+
: A & B // Old style: expect props as generic types
|
|
131
|
+
: A & B;
|
|
132
|
+
|
|
126
133
|
return function combineContainers<
|
|
127
|
-
TContainerA extends ContainerType,
|
|
128
|
-
TContainerB extends ContainerType,
|
|
129
|
-
>(
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
const
|
|
134
|
+
TContainerA extends ContainerType | VictoryContainerProps,
|
|
135
|
+
TContainerB extends ContainerType | VictoryContainerProps,
|
|
136
|
+
>(
|
|
137
|
+
containerA: TContainerA extends ContainerType ? TContainerA : ContainerType,
|
|
138
|
+
containerB: TContainerB extends ContainerType ? TContainerB : ContainerType,
|
|
139
|
+
) {
|
|
140
|
+
const ContainerA = containerComponents[containerA as ContainerType];
|
|
141
|
+
const ContainerB = containerComponents[containerB as ContainerType];
|
|
142
|
+
const useContainerA = CONTAINER_HOOKS[containerA as ContainerType];
|
|
143
|
+
const useContainerB = CONTAINER_HOOKS[containerB as ContainerType];
|
|
134
144
|
|
|
135
145
|
const CombinedContainer = (
|
|
136
|
-
props:
|
|
146
|
+
props: CombinedContainerProps<TContainerA, TContainerB>,
|
|
137
147
|
) => {
|
|
138
148
|
const { children: childrenA, props: propsA } = useContainerA(props);
|
|
139
149
|
const { children: combinedChildren, props: combinedProps } =
|
|
@@ -152,7 +162,7 @@ export function makeCreateContainerFunction<
|
|
|
152
162
|
CombinedContainer.displayName = `Victory${containerA}${containerB}Container`;
|
|
153
163
|
CombinedContainer.role = "container";
|
|
154
164
|
CombinedContainer.defaultEvents = (
|
|
155
|
-
props:
|
|
165
|
+
props: CombinedContainerProps<TContainerA, TContainerB>,
|
|
156
166
|
) =>
|
|
157
167
|
combineDefaultEvents([
|
|
158
168
|
...ContainerA.defaultEvents(props),
|