@heartlandone/vega-react 1.44.2 → 1.45.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components.d.ts +1 -0
- package/dist/components.js +1 -0
- package/dist/testing/index.d.ts +1 -0
- package/dist/testing/index.js +1 -0
- package/dist/testing/utils.d.ts +8 -0
- package/dist/testing/utils.js +100 -0
- package/package.json +3 -2
package/dist/components.d.ts
CHANGED
|
@@ -22,6 +22,7 @@ export declare const VegaCounterBadge: import("react").ForwardRefExoticComponent
|
|
|
22
22
|
export declare const VegaDatePicker: import("react").ForwardRefExoticComponent<JSX.VegaDatePicker & Omit<import("react").HTMLAttributes<HTMLVegaDatePickerElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLVegaDatePickerElement>>;
|
|
23
23
|
export declare const VegaDialog: import("react").ForwardRefExoticComponent<JSX.VegaDialog & Omit<import("react").HTMLAttributes<HTMLVegaDialogElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLVegaDialogElement>>;
|
|
24
24
|
export declare const VegaDropdown: import("react").ForwardRefExoticComponent<JSX.VegaDropdown & Omit<import("react").HTMLAttributes<HTMLVegaDropdownElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLVegaDropdownElement>>;
|
|
25
|
+
export declare const VegaFieldError: import("react").ForwardRefExoticComponent<JSX.VegaFieldError & Omit<import("react").HTMLAttributes<HTMLVegaFieldErrorElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLVegaFieldErrorElement>>;
|
|
25
26
|
export declare const VegaFieldLabel: import("react").ForwardRefExoticComponent<JSX.VegaFieldLabel & Omit<import("react").HTMLAttributes<HTMLVegaFieldLabelElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLVegaFieldLabelElement>>;
|
|
26
27
|
export declare const VegaFlex: import("react").ForwardRefExoticComponent<JSX.VegaFlex & Omit<import("react").HTMLAttributes<HTMLVegaFlexElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLVegaFlexElement>>;
|
|
27
28
|
export declare const VegaFooter: import("react").ForwardRefExoticComponent<JSX.VegaFooter & Omit<import("react").HTMLAttributes<HTMLVegaFooterElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLVegaFooterElement>>;
|
package/dist/components.js
CHANGED
|
@@ -26,6 +26,7 @@ export const VegaCounterBadge = /*@__PURE__*/ createReactComponent('vega-counter
|
|
|
26
26
|
export const VegaDatePicker = /*@__PURE__*/ createReactComponent('vega-date-picker');
|
|
27
27
|
export const VegaDialog = /*@__PURE__*/ createReactComponent('vega-dialog');
|
|
28
28
|
export const VegaDropdown = /*@__PURE__*/ createReactComponent('vega-dropdown');
|
|
29
|
+
export const VegaFieldError = /*@__PURE__*/ createReactComponent('vega-field-error');
|
|
29
30
|
export const VegaFieldLabel = /*@__PURE__*/ createReactComponent('vega-field-label');
|
|
30
31
|
export const VegaFlex = /*@__PURE__*/ createReactComponent('vega-flex');
|
|
31
32
|
export const VegaFooter = /*@__PURE__*/ createReactComponent('vega-footer');
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./utils";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./utils";
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { RenderResult } from "@testing-library/react";
|
|
2
|
+
export declare type Nullable<T> = T | undefined | null;
|
|
3
|
+
export declare function waitForVegaReady(renderResult: RenderResult, delay?: number): Promise<RenderResult>;
|
|
4
|
+
export declare type MockedResizeObserverController = {
|
|
5
|
+
hide: (selector: string, container?: HTMLElement) => void;
|
|
6
|
+
show: (selector: string, container?: HTMLElement) => void;
|
|
7
|
+
};
|
|
8
|
+
export declare function mockResizeObserver(): MockedResizeObserverController;
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { waitFor } from "@testing-library/react";
|
|
11
|
+
export function waitForVegaReady(renderResult, delay = 300) {
|
|
12
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
13
|
+
yield waitFor(() => {
|
|
14
|
+
renderResult.baseElement
|
|
15
|
+
.querySelectorAll("*:not(.hydrated)")
|
|
16
|
+
// eslint-disable-next-line unicorn/no-array-for-each
|
|
17
|
+
.forEach((element) => {
|
|
18
|
+
if (element.tagName.startsWith("VEGA")) {
|
|
19
|
+
throw new Error("Vega component is not rendered yet, retrying...");
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
/*
|
|
24
|
+
* The following code is added to load the vega component, and the attribute value is set after each component is loaded.
|
|
25
|
+
* To determine whether there is a hydrated style that cannot meet the requirements after the component is loaded,
|
|
26
|
+
* It need to set the sleep time to ensure that each attribute of the vega component is fully loaded
|
|
27
|
+
*
|
|
28
|
+
code link: ./node_modules/@heartlandone/vega-react/dist/react-component-lib/utils/attachProps.js(line 28-33)}
|
|
29
|
+
*/
|
|
30
|
+
yield sleep(delay);
|
|
31
|
+
return renderResult;
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
export function mockResizeObserver() {
|
|
35
|
+
const resizeObserverElementMap = new Map();
|
|
36
|
+
global.ResizeObserver = class {
|
|
37
|
+
constructor(callback) {
|
|
38
|
+
this.observedElements = [];
|
|
39
|
+
this.callback = callback;
|
|
40
|
+
}
|
|
41
|
+
observe(element) {
|
|
42
|
+
if (!this.isObserved(element)) {
|
|
43
|
+
resizeObserverElementMap.set(element, this);
|
|
44
|
+
this.observedElements.push(element);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
unobserve(element) {
|
|
48
|
+
if (this.isObserved(element)) {
|
|
49
|
+
resizeObserverElementMap.delete(element);
|
|
50
|
+
this.observedElements = this.observedElements.filter((observedElement) => observedElement !== element);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
disconnect() {
|
|
54
|
+
for (const element of this.observedElements) {
|
|
55
|
+
resizeObserverElementMap.delete(element);
|
|
56
|
+
}
|
|
57
|
+
this.observedElements = [];
|
|
58
|
+
}
|
|
59
|
+
show() {
|
|
60
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
61
|
+
this.callback([{ contentRect: { height: 100 } }], this);
|
|
62
|
+
}
|
|
63
|
+
hide() {
|
|
64
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
65
|
+
this.callback([{ contentRect: { height: 0 } }], this);
|
|
66
|
+
}
|
|
67
|
+
isObserved(element) {
|
|
68
|
+
return this.observedElements.includes(element);
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
return {
|
|
72
|
+
show: (selector, container) => {
|
|
73
|
+
(container || document)
|
|
74
|
+
.querySelectorAll(selector)
|
|
75
|
+
// eslint-disable-next-line unicorn/no-array-for-each
|
|
76
|
+
.forEach((el) => {
|
|
77
|
+
const resizeObserver = resizeObserverElementMap.get(el);
|
|
78
|
+
if (resizeObserver) {
|
|
79
|
+
resizeObserver.show();
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
},
|
|
83
|
+
hide: (selector, container) => {
|
|
84
|
+
(container || document)
|
|
85
|
+
.querySelectorAll(selector)
|
|
86
|
+
// eslint-disable-next-line unicorn/no-array-for-each
|
|
87
|
+
.forEach((el) => {
|
|
88
|
+
const resizeObserver = resizeObserverElementMap.get(el);
|
|
89
|
+
if (resizeObserver) {
|
|
90
|
+
resizeObserver.hide();
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
},
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
function sleep(ms) {
|
|
97
|
+
return new Promise((resolve) => {
|
|
98
|
+
setTimeout(resolve, ms);
|
|
99
|
+
});
|
|
100
|
+
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@heartlandone/vega-react",
|
|
3
3
|
"sideEffects": false,
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.45.0",
|
|
5
5
|
"description": "React specific wrapper for @heartlandone/vega",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"stencil-postbuild": "node ./src/scripts/stencil-post-build-script.js",
|
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
"directory": "dist"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
|
+
"@testing-library/react": "12.1.2",
|
|
29
30
|
"@types/jest": "23.3.9",
|
|
30
31
|
"@types/node": "^15.14.9",
|
|
31
32
|
"@types/react": "^16.7.0",
|
|
@@ -38,7 +39,7 @@
|
|
|
38
39
|
"typescript": "^4.0.0"
|
|
39
40
|
},
|
|
40
41
|
"dependencies": {
|
|
41
|
-
"@heartlandone/vega": "1.
|
|
42
|
+
"@heartlandone/vega": "1.45.0"
|
|
42
43
|
},
|
|
43
44
|
"peerDependencies": {
|
|
44
45
|
"react": ">=16.7.0",
|