@heartlandone/vega-angular 2.2.0 → 2.4.0-RTE-preview
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/esm2020/lib/components-module.mjs +2 -2
- package/dist/esm2020/lib/stencil-generated/components.mjs +769 -70
- package/dist/esm2020/lib/stencil-generated/text-value-accessor.mjs +3 -3
- package/dist/esm2020/testing/heartlandone-vega-angular-testing.mjs +5 -0
- package/dist/esm2020/testing/index.mjs +84 -0
- package/dist/esm2020/testing/public-api.mjs +5 -0
- package/dist/fesm2015/heartlandone-vega-angular-testing.mjs +97 -0
- package/dist/fesm2015/heartlandone-vega-angular-testing.mjs.map +1 -0
- package/dist/fesm2015/heartlandone-vega-angular.mjs +746 -73
- package/dist/fesm2015/heartlandone-vega-angular.mjs.map +1 -1
- package/dist/fesm2020/heartlandone-vega-angular-testing.mjs +94 -0
- package/dist/fesm2020/heartlandone-vega-angular-testing.mjs.map +1 -0
- package/dist/fesm2020/heartlandone-vega-angular.mjs +746 -73
- package/dist/fesm2020/heartlandone-vega-angular.mjs.map +1 -1
- package/dist/lib/components-module.d.ts +1 -1
- package/dist/lib/stencil-generated/components.d.ts +729 -156
- package/dist/lib/stencil-generated/text-value-accessor.d.ts +1 -1
- package/dist/package.json +10 -2
- package/dist/testing/heartlandone-vega-angular-testing.d.ts +5 -0
- package/dist/testing/index.d.ts +7 -0
- package/dist/testing/package.json +10 -0
- package/dist/testing/public-api.d.ts +1 -0
- package/package.json +5 -4
- package/src/lib/stencil-generated/components.ts +1175 -212
- package/src/lib/stencil-generated/text-value-accessor.ts +1 -1
- package/src/scripts/stencil-post-build-script.js +20 -3
- package/testing/index.ts +115 -0
- package/testing/ng-package.json +8 -0
- package/testing/public-api.ts +4 -0
|
@@ -5,7 +5,7 @@ import { ValueAccessor } from './value-accessor';
|
|
|
5
5
|
|
|
6
6
|
@Directive({
|
|
7
7
|
/* tslint:disable-next-line:directive-selector */
|
|
8
|
-
selector: 'vega-checkbox, vega-checkbox-group, vega-color-picker, vega-combo-box, vega-date-picker, vega-image-uploader, vega-input, vega-input-credit-card, vega-input-range, vega-input-select, vega-radio-group, vega-stepper, vega-textarea, vega-time-picker',
|
|
8
|
+
selector: 'vega-checkbox, vega-checkbox-group, vega-color-picker, vega-combo-box, vega-date-picker, vega-file-uploader, vega-image-uploader, vega-input, vega-input-credit-card, vega-input-numeric, vega-input-phone-number, vega-input-range, vega-input-select, vega-radio-group, vega-rich-text-editor, vega-selection-chip-group, vega-selection-tile-group, vega-signature-capture, vega-stepper, vega-textarea, vega-time-picker, vega-toggle-switch',
|
|
9
9
|
host: {
|
|
10
10
|
'(vegaChange)': "handleChangeEvent($event.currentTarget.value, 'vega')",
|
|
11
11
|
'(change)': "handleChangeEvent($event.currentTarget.value, 'native')"
|
|
@@ -39,7 +39,24 @@ function resolveEventPayloadImportPath(componentsContent) {
|
|
|
39
39
|
['VegaBreadcrumbItemType', 'vega-breadcrumb/types'],
|
|
40
40
|
['VegaTableHeadCellClickEvent', 'vega-table/interface'],
|
|
41
41
|
['VegaTableRowClickEvent', 'vega-table/interface'],
|
|
42
|
+
['VegaTableRowExpandEvent', 'vega-table/interface'],
|
|
42
43
|
['VegaDropdownItemClickEvent', 'vega-dropdown/vega-dropdown-item/types'],
|
|
44
|
+
['VegaCalendarChangeEventType', 'vega-calendar/types'],
|
|
45
|
+
['VegaCalendarEventClickInfo', 'vega-calendar/types'],
|
|
46
|
+
['VegaCalendarDateClickInfo', 'vega-calendar/types'],
|
|
47
|
+
['VegaCountryType', 'vega-input-phone-number/types'],
|
|
48
|
+
['VegaBannerActionButtonType', 'vega-banner/types'],
|
|
49
|
+
['VegaSignatureValue', 'vega-signature-capture/types'],
|
|
50
|
+
['VegaTableRowSelectEventDetail', 'vega-table/interface'],
|
|
51
|
+
['VegaTableRowSelectAllEventDetail', 'vega-table/interface'],
|
|
52
|
+
['VegaTableRowExpandEventDetail', 'vega-table/interface'],
|
|
53
|
+
['VegaFileUploaderFiles', 'vega-file-uploader/types'],
|
|
54
|
+
['VegaFileUploaderFile', 'vega-file-uploader/types'],
|
|
55
|
+
['VegaDropdownSearchTriggerEventDetail', 'vega-dropdown/types'],
|
|
56
|
+
['VegaRTEContentBlock', 'vega-rich-text-editor/interface'],
|
|
57
|
+
['VegaRichTextLinkEditorChangeDetail', 'vega-rich-text-editor/vega-rich-text-link-editor/types'],
|
|
58
|
+
['VegaRichTextImageEditorChangeDetail', 'vega-rich-text-editor/vega-rich-text-image-editor/types'],
|
|
59
|
+
['VegaRichTextEditorImage', 'vega-rich-text-editor/interface']
|
|
43
60
|
]);
|
|
44
61
|
|
|
45
62
|
return componentsContent.replace(
|
|
@@ -92,7 +109,7 @@ function addSemanticsParamToHandleChangeEvent(content) {
|
|
|
92
109
|
}
|
|
93
110
|
|
|
94
111
|
updateStencilGenerated(
|
|
95
|
-
STENCIL_GENERATED_COMPONENTS_PATH,
|
|
112
|
+
STENCIL_GENERATED_COMPONENTS_PATH,
|
|
96
113
|
[
|
|
97
114
|
appendDefaultArrayExportInComponentsFile,
|
|
98
115
|
resolveEventPayloadImportPath,
|
|
@@ -103,9 +120,9 @@ updateStencilGenerated(
|
|
|
103
120
|
updateStencilGenerated(
|
|
104
121
|
STENCIL_GENERATED_TEXT_VALUE_ACCESSOR_PATH,
|
|
105
122
|
[
|
|
106
|
-
addSemanticsParamToHandleChangeEvent
|
|
123
|
+
addSemanticsParamToHandleChangeEvent
|
|
107
124
|
]
|
|
108
|
-
)
|
|
125
|
+
);
|
|
109
126
|
|
|
110
127
|
revertValueAccessorChangeByGit();
|
|
111
128
|
|
package/testing/index.ts
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { FeatureFlag } from '@heartlandone/vega';
|
|
2
|
+
import { waitForVega } from '@heartlandone/vega';
|
|
3
|
+
import type { RenderResult } from '@testing-library/angular';
|
|
4
|
+
|
|
5
|
+
type Nullable<T> = T | undefined | null;
|
|
6
|
+
|
|
7
|
+
export async function waitForVegaReady(
|
|
8
|
+
renderResult: RenderResult<unknown, unknown>,
|
|
9
|
+
delay: number = 300,
|
|
10
|
+
): Promise<RenderResult<unknown, unknown>> {
|
|
11
|
+
await waitForVega();
|
|
12
|
+
|
|
13
|
+
/*
|
|
14
|
+
* The following code is added to load the vega component, and the attribute value is set after each component is loaded.
|
|
15
|
+
* To determine whether there is a hydrated style that cannot meet the requirements after the component is loaded,
|
|
16
|
+
* It need to set the sleep time to ensure that each attribute of the vega component is fully loaded
|
|
17
|
+
*
|
|
18
|
+
code link: ./node_modules/@heartlandone/vega-react/dist/react-component-lib/utils/attachProps.js(line 28-33)}
|
|
19
|
+
*/
|
|
20
|
+
await sleep(delay);
|
|
21
|
+
return renderResult;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export type MockedResizeObserverController = {
|
|
25
|
+
hide: (selector: string, container?: HTMLElement) => void;
|
|
26
|
+
show: (selector: string, container?: HTMLElement) => void;
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
export function mockResizeObserver(): MockedResizeObserverController {
|
|
30
|
+
type MockedResizeObserver = ResizeObserver & {
|
|
31
|
+
show: () => void;
|
|
32
|
+
hide: () => void;
|
|
33
|
+
};
|
|
34
|
+
FeatureFlag.disable('VEGA_ANGULAR.USE_JUGGLE_RESIZE_OBSERVER');
|
|
35
|
+
const resizeObserverElementMap: Map<HTMLElement, MockedResizeObserver> = new Map();
|
|
36
|
+
const VegaResizeObserver: unknown = class {
|
|
37
|
+
private readonly callback: ResizeObserverCallback;
|
|
38
|
+
private observedElements: HTMLElement[] = [];
|
|
39
|
+
constructor(callback: ResizeObserverCallback) {
|
|
40
|
+
this.callback = callback;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
observe(element: HTMLElement): void {
|
|
44
|
+
if (!this.isObserved(element)) {
|
|
45
|
+
resizeObserverElementMap.set(element, this);
|
|
46
|
+
this.observedElements.push(element);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
unobserve(element: HTMLElement): void {
|
|
51
|
+
if (this.isObserved(element)) {
|
|
52
|
+
resizeObserverElementMap.delete(element);
|
|
53
|
+
this.observedElements = this.observedElements.filter(
|
|
54
|
+
(observedElement: HTMLElement) => observedElement !== element,
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
disconnect(): void {
|
|
60
|
+
for (const element of this.observedElements) {
|
|
61
|
+
resizeObserverElementMap.delete(element);
|
|
62
|
+
}
|
|
63
|
+
this.observedElements = [];
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
show(): void {
|
|
67
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
68
|
+
this.callback([{ contentRect: { height: 100 } }] as any, this);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
hide(): void {
|
|
72
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
73
|
+
this.callback([{ contentRect: { height: 0 } }] as any, this);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
private isObserved(element: HTMLElement): boolean {
|
|
77
|
+
return this.observedElements.includes(element);
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
Object.assign(window, { VegaResizeObserver });
|
|
81
|
+
return {
|
|
82
|
+
show: (selector: string, container?: HTMLElement): void => {
|
|
83
|
+
(container || document)
|
|
84
|
+
.querySelectorAll(selector)
|
|
85
|
+
// eslint-disable-next-line unicorn/no-array-for-each
|
|
86
|
+
.forEach((el: Element) => {
|
|
87
|
+
const resizeObserver: Nullable<MockedResizeObserver> = resizeObserverElementMap.get(
|
|
88
|
+
el as HTMLElement,
|
|
89
|
+
);
|
|
90
|
+
if (resizeObserver) {
|
|
91
|
+
resizeObserver.show();
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
},
|
|
95
|
+
hide: (selector: string, container?: HTMLElement): void => {
|
|
96
|
+
(container || document)
|
|
97
|
+
.querySelectorAll(selector)
|
|
98
|
+
// eslint-disable-next-line unicorn/no-array-for-each
|
|
99
|
+
.forEach((el: Element) => {
|
|
100
|
+
const resizeObserver: Nullable<MockedResizeObserver> = resizeObserverElementMap.get(
|
|
101
|
+
el as HTMLElement,
|
|
102
|
+
);
|
|
103
|
+
if (resizeObserver) {
|
|
104
|
+
resizeObserver.hide();
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
},
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
function sleep(ms: number): Promise<void> {
|
|
112
|
+
return new Promise((resolve: () => void) => {
|
|
113
|
+
setTimeout(resolve, ms);
|
|
114
|
+
});
|
|
115
|
+
}
|