@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.
Files changed (29) hide show
  1. package/dist/esm2020/lib/components-module.mjs +2 -2
  2. package/dist/esm2020/lib/stencil-generated/components.mjs +769 -70
  3. package/dist/esm2020/lib/stencil-generated/text-value-accessor.mjs +3 -3
  4. package/dist/esm2020/testing/heartlandone-vega-angular-testing.mjs +5 -0
  5. package/dist/esm2020/testing/index.mjs +84 -0
  6. package/dist/esm2020/testing/public-api.mjs +5 -0
  7. package/dist/fesm2015/heartlandone-vega-angular-testing.mjs +97 -0
  8. package/dist/fesm2015/heartlandone-vega-angular-testing.mjs.map +1 -0
  9. package/dist/fesm2015/heartlandone-vega-angular.mjs +746 -73
  10. package/dist/fesm2015/heartlandone-vega-angular.mjs.map +1 -1
  11. package/dist/fesm2020/heartlandone-vega-angular-testing.mjs +94 -0
  12. package/dist/fesm2020/heartlandone-vega-angular-testing.mjs.map +1 -0
  13. package/dist/fesm2020/heartlandone-vega-angular.mjs +746 -73
  14. package/dist/fesm2020/heartlandone-vega-angular.mjs.map +1 -1
  15. package/dist/lib/components-module.d.ts +1 -1
  16. package/dist/lib/stencil-generated/components.d.ts +729 -156
  17. package/dist/lib/stencil-generated/text-value-accessor.d.ts +1 -1
  18. package/dist/package.json +10 -2
  19. package/dist/testing/heartlandone-vega-angular-testing.d.ts +5 -0
  20. package/dist/testing/index.d.ts +7 -0
  21. package/dist/testing/package.json +10 -0
  22. package/dist/testing/public-api.d.ts +1 -0
  23. package/package.json +5 -4
  24. package/src/lib/stencil-generated/components.ts +1175 -212
  25. package/src/lib/stencil-generated/text-value-accessor.ts +1 -1
  26. package/src/scripts/stencil-post-build-script.js +20 -3
  27. package/testing/index.ts +115 -0
  28. package/testing/ng-package.json +8 -0
  29. 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
 
@@ -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
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "$schema": "../../../node_modules/ng-packagr/ng-package.schema.json",
3
+ "dest": "./dist",
4
+ "lib": {
5
+ "entryFile": "./public-api.ts"
6
+ },
7
+ "allowedNonPeerDependencies": ["@testing-library/angular", "@heartlandone/vega"]
8
+ }
@@ -0,0 +1,4 @@
1
+ /*
2
+ * Public API Surface of vega-angular
3
+ */
4
+ export * from './index';