@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.
@@ -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>>;
@@ -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.44.2",
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.44.2"
42
+ "@heartlandone/vega": "1.45.0"
42
43
  },
43
44
  "peerDependencies": {
44
45
  "react": ">=16.7.0",