@pepperi-addons/ngx-composite-lib-react 0.5.0 → 0.5.1

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/index.d.ts CHANGED
@@ -8,3 +8,9 @@ export { PepRichText } from './pep-rich-text.js';
8
8
  export { PepShowIfBadge } from './pep-show-if-badge.js';
9
9
  export { PepGenericList } from './pep-generic-list.js';
10
10
  export { PepFileStatusPanel } from './pep-file-status-panel.js';
11
+ export { PepGenericForm } from './pep-generic-form.js';
12
+ export { PepDataViewBuilder } from './pep-data-view-builder.js';
13
+ export { PepMenuDataView } from './pep-menu-data-view.js';
14
+ export { PepManageParameters } from './pep-manage-parameters.js';
15
+ export { PepMappingParameters } from './pep-mapping-parameters.js';
16
+ export { PepGenericFieldsBuilder } from './pep-generic-fields-builder.js';
package/index.js CHANGED
@@ -8,4 +8,10 @@ export { PepRichText } from './pep-rich-text.js';
8
8
  export { PepShowIfBadge } from './pep-show-if-badge.js';
9
9
  export { PepGenericList } from './pep-generic-list.js';
10
10
  export { PepFileStatusPanel } from './pep-file-status-panel.js';
11
+ export { PepGenericForm } from './pep-generic-form.js';
12
+ export { PepDataViewBuilder } from './pep-data-view-builder.js';
13
+ export { PepMenuDataView } from './pep-menu-data-view.js';
14
+ export { PepManageParameters } from './pep-manage-parameters.js';
15
+ export { PepMappingParameters } from './pep-mapping-parameters.js';
16
+ export { PepGenericFieldsBuilder } from './pep-generic-fields-builder.js';
11
17
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pepperi-addons/ngx-composite-lib-react",
3
- "version": "0.5.0",
3
+ "version": "0.5.1",
4
4
  "description": "React wrappers for Pepperi ngx-composite-lib Angular Elements.",
5
5
  "license": "MIT",
6
6
  "author": "Pepperi",
@@ -0,0 +1,28 @@
1
+ import React from 'react';
2
+ export interface IPepDraggableItem {
3
+ data: {
4
+ key: string;
5
+ [key: string]: any;
6
+ };
7
+ title: string;
8
+ disabled?: boolean;
9
+ [key: string]: any;
10
+ }
11
+ export interface BaseDataView {
12
+ Type: string;
13
+ Fields?: any[];
14
+ [key: string]: any;
15
+ }
16
+ export declare type PepDataViewBuilderType = 'menu' | 'list' | 'card' | 'not-supported';
17
+ export interface PepDataViewBuilderProps {
18
+ builderTitle?: string;
19
+ builderTitleHint?: string;
20
+ showAddSeparator?: boolean;
21
+ itemKeyLabel?: string;
22
+ itemTitleLabel?: string;
23
+ availableFields?: IPepDraggableItem[];
24
+ dataView?: BaseDataView;
25
+ onDataViewChange?: (event: CustomEvent<BaseDataView>) => void;
26
+ children?: React.ReactNode;
27
+ }
28
+ export declare const PepDataViewBuilder: React.FC<PepDataViewBuilderProps>;
@@ -0,0 +1,42 @@
1
+ import React, { useRef, useEffect } from 'react';
2
+ export const PepDataViewBuilder = ({ builderTitle = '', builderTitleHint = '', showAddSeparator = true, itemKeyLabel = '', itemTitleLabel = '', availableFields = [], dataView, onDataViewChange, children }) => {
3
+ const elementRef = useRef(null);
4
+ useEffect(() => {
5
+ const element = elementRef.current;
6
+ if (!element)
7
+ return;
8
+ // Use setTimeout to ensure the element is fully initialized
9
+ setTimeout(() => {
10
+ // Reflect props to custom element
11
+ element.builderTitle = builderTitle;
12
+ element.builderTitleHint = builderTitleHint;
13
+ element.showAddSeparator = showAddSeparator;
14
+ element.itemKeyLabel = itemKeyLabel;
15
+ element.itemTitleLabel = itemTitleLabel;
16
+ // Set availableFields first, then dataView to trigger proper initialization
17
+ if (availableFields !== undefined) {
18
+ element.availableFields = availableFields;
19
+ }
20
+ if (dataView !== undefined) {
21
+ element.dataView = dataView;
22
+ }
23
+ }, 0);
24
+ }, [builderTitle, builderTitleHint, showAddSeparator, itemKeyLabel, itemTitleLabel, availableFields, dataView]);
25
+ useEffect(() => {
26
+ const element = elementRef.current;
27
+ if (!element)
28
+ return;
29
+ const handleDataViewChange = (event) => {
30
+ if (onDataViewChange)
31
+ onDataViewChange(event);
32
+ };
33
+ // Add event listeners
34
+ element.addEventListener('dataViewChange', handleDataViewChange);
35
+ // Cleanup
36
+ return () => {
37
+ element.removeEventListener('dataViewChange', handleDataViewChange);
38
+ };
39
+ }, [onDataViewChange]);
40
+ return React.createElement('pep-data-view-builder-element', { ref: elementRef }, children);
41
+ };
42
+ //# sourceMappingURL=pep-data-view-builder.js.map
@@ -0,0 +1,33 @@
1
+ import React from 'react';
2
+ export interface IPepDraggableItemData {
3
+ [key: string]: any;
4
+ }
5
+ export interface IPepDraggableItem {
6
+ title: string;
7
+ data: IPepDraggableItemData;
8
+ [key: string]: any;
9
+ }
10
+ export interface IPepGenericField {
11
+ key: string;
12
+ title: string;
13
+ draggableItemData: IPepDraggableItemData;
14
+ [key: string]: any;
15
+ }
16
+ export interface IPepGenericFieldAddedEvent {
17
+ field: IPepGenericField;
18
+ index: number;
19
+ }
20
+ export interface PepGenericFieldsBuilderProps {
21
+ builderTitle?: string;
22
+ builderTitleHint?: string;
23
+ showAddSeparator?: boolean;
24
+ itemKeyLabel?: string;
25
+ itemTitleLabel?: string;
26
+ availableFields?: IPepDraggableItem[];
27
+ fields?: IPepGenericField[];
28
+ onFieldsChange?: (fields: IPepGenericField[]) => void;
29
+ onFieldAdd?: (event: IPepGenericFieldAddedEvent) => void;
30
+ className?: string;
31
+ style?: React.CSSProperties;
32
+ }
33
+ export declare const PepGenericFieldsBuilder: React.FC<PepGenericFieldsBuilderProps>;
@@ -0,0 +1,57 @@
1
+ import React, { useEffect, useRef } from 'react';
2
+ export const PepGenericFieldsBuilder = ({ builderTitle, builderTitleHint, showAddSeparator, itemKeyLabel, itemTitleLabel, availableFields, fields, onFieldsChange, onFieldAdd, className, style, }) => {
3
+ const ref = useRef(null);
4
+ // Apply inputs as element properties
5
+ useEffect(() => {
6
+ const el = ref.current;
7
+ if (!el)
8
+ return;
9
+ // Wait for custom element to be defined and connected
10
+ const setPropertiesWhenReady = async () => {
11
+ await customElements.whenDefined('pep-generic-fields-builder-element');
12
+ // Wait for multiple animation frames to ensure Angular is fully initialized
13
+ await new Promise(resolve => requestAnimationFrame(() => {
14
+ requestAnimationFrame(() => {
15
+ requestAnimationFrame(resolve);
16
+ });
17
+ }));
18
+ if (builderTitle !== undefined)
19
+ el.builderTitle = builderTitle;
20
+ if (builderTitleHint !== undefined)
21
+ el.builderTitleHint = builderTitleHint;
22
+ if (showAddSeparator !== undefined)
23
+ el.showAddSeparator = showAddSeparator;
24
+ if (itemKeyLabel !== undefined)
25
+ el.itemKeyLabel = itemKeyLabel;
26
+ if (itemTitleLabel !== undefined)
27
+ el.itemTitleLabel = itemTitleLabel;
28
+ if (availableFields !== undefined)
29
+ el.availableFields = availableFields;
30
+ if (fields !== undefined)
31
+ el.fields = fields;
32
+ };
33
+ setPropertiesWhenReady();
34
+ }, [builderTitle, builderTitleHint, showAddSeparator, itemKeyLabel, itemTitleLabel, availableFields, fields]);
35
+ // Wire outputs
36
+ useEffect(() => {
37
+ const el = ref.current;
38
+ if (!el)
39
+ return;
40
+ const fieldsChangeHandler = (e) => {
41
+ const ce = e;
42
+ onFieldsChange?.(ce.detail ?? ref.current?.fields ?? []);
43
+ };
44
+ const fieldAddHandler = (e) => {
45
+ const ce = e;
46
+ onFieldAdd?.(ce.detail);
47
+ };
48
+ el.addEventListener('fieldsChange', fieldsChangeHandler);
49
+ el.addEventListener('fieldAdd', fieldAddHandler);
50
+ return () => {
51
+ el.removeEventListener('fieldsChange', fieldsChangeHandler);
52
+ el.removeEventListener('fieldAdd', fieldAddHandler);
53
+ };
54
+ }, [onFieldsChange, onFieldAdd]);
55
+ return React.createElement('pep-generic-fields-builder-element', { ref, class: className, style });
56
+ };
57
+ //# sourceMappingURL=pep-generic-fields-builder.js.map
@@ -0,0 +1,52 @@
1
+ import React from 'react';
2
+ export interface IPepGenericFormDataView {
3
+ UID?: string;
4
+ Fields: IPepGenericFormDataViewField[];
5
+ [key: string]: any;
6
+ }
7
+ export interface IPepGenericFormDataViewField {
8
+ FieldID: string;
9
+ OptionalValues: Array<{
10
+ Key: string;
11
+ Value: string;
12
+ }>;
13
+ AdditionalProps: {
14
+ [key: string]: any;
15
+ };
16
+ [key: string]: any;
17
+ }
18
+ export interface IPepGenericFormValueChange {
19
+ UID: string;
20
+ ApiName: string;
21
+ Value: any;
22
+ }
23
+ export interface IPepGenericFormFieldUpdate {
24
+ FieldId: string;
25
+ Params: IPepGenericFormDataParams;
26
+ }
27
+ export interface IPepGenericFormDataParams {
28
+ Value?: any;
29
+ Visible?: boolean;
30
+ Enabled?: boolean;
31
+ BackgroundColor?: string;
32
+ TextColor?: string;
33
+ Highlighted?: boolean;
34
+ OptionalValues?: Array<{
35
+ Key: string;
36
+ Value: string;
37
+ }>;
38
+ [key: string]: any;
39
+ }
40
+ export interface PepGenericFormProps {
41
+ dataSource?: any;
42
+ dataView?: IPepGenericFormDataView;
43
+ isLocked?: boolean;
44
+ inline?: boolean;
45
+ showTopBar?: boolean;
46
+ addPadding?: boolean;
47
+ onValueChange?: (event: CustomEvent<IPepGenericFormValueChange>) => void;
48
+ onFieldClick?: (event: CustomEvent<IPepGenericFormValueChange>) => void;
49
+ onFormValidationChange?: (event: CustomEvent<boolean>) => void;
50
+ children?: React.ReactNode;
51
+ }
52
+ export declare const PepGenericForm: React.FC<PepGenericFormProps>;
@@ -0,0 +1,47 @@
1
+ import React, { useRef, useEffect } from 'react';
2
+ export const PepGenericForm = ({ dataSource, dataView, isLocked = false, inline = false, showTopBar = false, addPadding = false, onValueChange, onFieldClick, onFormValidationChange, children }) => {
3
+ const elementRef = useRef(null);
4
+ useEffect(() => {
5
+ const element = elementRef.current;
6
+ if (!element)
7
+ return;
8
+ // Reflect props to custom element
9
+ if (dataSource !== undefined)
10
+ element.dataSource = dataSource;
11
+ if (dataView !== undefined)
12
+ element.dataView = dataView;
13
+ element.isLocked = isLocked;
14
+ element.inline = inline;
15
+ element.showTopBar = showTopBar;
16
+ element.addPadding = addPadding;
17
+ }, [dataSource, dataView, isLocked, inline, showTopBar, addPadding]);
18
+ useEffect(() => {
19
+ const element = elementRef.current;
20
+ if (!element)
21
+ return;
22
+ const handleValueChange = (event) => {
23
+ if (onValueChange)
24
+ onValueChange(event);
25
+ };
26
+ const handleFieldClick = (event) => {
27
+ if (onFieldClick)
28
+ onFieldClick(event);
29
+ };
30
+ const handleFormValidationChange = (event) => {
31
+ if (onFormValidationChange)
32
+ onFormValidationChange(event);
33
+ };
34
+ // Add event listeners
35
+ element.addEventListener('valueChange', handleValueChange);
36
+ element.addEventListener('fieldClick', handleFieldClick);
37
+ element.addEventListener('formValidationChange', handleFormValidationChange);
38
+ // Cleanup
39
+ return () => {
40
+ element.removeEventListener('valueChange', handleValueChange);
41
+ element.removeEventListener('fieldClick', handleFieldClick);
42
+ element.removeEventListener('formValidationChange', handleFormValidationChange);
43
+ };
44
+ }, [onValueChange, onFieldClick, onFormValidationChange]);
45
+ return React.createElement('pep-generic-form-element', { ref: elementRef }, children);
46
+ };
47
+ //# sourceMappingURL=pep-generic-form.js.map
@@ -1,33 +1,60 @@
1
1
  import React, { useEffect, useRef } from 'react';
2
2
  export const PepGroupButtonsSettings = ({ header, subHeader, groupType, btnsArray, excludeKeys, useNone, disabled, dir, titleSize, bold, btnKey, onBtnkeyChange, className, style, }) => {
3
3
  const ref = useRef(null);
4
- // Apply inputs as element properties
4
+ // Apply inputs as element properties - set excludeKeys BEFORE groupType
5
5
  useEffect(() => {
6
6
  const el = ref.current;
7
7
  if (!el)
8
8
  return;
9
- if (header !== undefined)
9
+ console.log('[REACT DEBUG] Setting Group Buttons properties...');
10
+ console.log('[REACT DEBUG] Props received:', { header, subHeader, excludeKeys, groupType, btnsArray, useNone, disabled, dir, titleSize, bold, btnKey });
11
+ // Set properties in the correct order - excludeKeys must be set before groupType
12
+ if (header !== undefined) {
10
13
  el.header = header;
11
- if (subHeader !== undefined)
14
+ console.log('[REACT DEBUG] Set header:', el.header);
15
+ }
16
+ if (subHeader !== undefined) {
12
17
  el.subHeader = subHeader;
13
- if (groupType !== undefined)
14
- el.groupType = groupType;
15
- if (btnsArray !== undefined)
18
+ console.log('[REACT DEBUG] Set subHeader:', el.subHeader);
19
+ }
20
+ if (excludeKeys !== undefined) {
21
+ el.excludeKeys = excludeKeys; // Set excludeKeys FIRST
22
+ console.log('[REACT DEBUG] Set excludeKeys:', el.excludeKeys);
23
+ }
24
+ if (groupType !== undefined) {
25
+ el.groupType = groupType; // Then set groupType
26
+ console.log('[REACT DEBUG] Set groupType:', el.groupType);
27
+ }
28
+ if (btnsArray !== undefined) {
16
29
  el.btnsArray = btnsArray;
17
- if (excludeKeys !== undefined)
18
- el.excludeKeys = excludeKeys;
19
- if (useNone !== undefined)
30
+ console.log('[REACT DEBUG] Set btnsArray:', el.btnsArray);
31
+ }
32
+ if (useNone !== undefined) {
20
33
  el.useNone = useNone;
21
- if (disabled !== undefined)
34
+ console.log('[REACT DEBUG] Set useNone:', el.useNone);
35
+ }
36
+ if (disabled !== undefined) {
22
37
  el.disabled = disabled;
23
- if (dir !== undefined)
38
+ console.log('[REACT DEBUG] Set disabled:', el.disabled);
39
+ }
40
+ if (dir !== undefined) {
24
41
  el.dir = dir;
25
- if (titleSize !== undefined)
42
+ console.log('[REACT DEBUG] Set dir:', el.dir);
43
+ }
44
+ if (titleSize !== undefined) {
26
45
  el.titleSize = titleSize;
27
- if (bold !== undefined)
46
+ console.log('[REACT DEBUG] Set titleSize:', el.titleSize);
47
+ }
48
+ if (bold !== undefined) {
28
49
  el.bold = bold;
29
- if (btnKey !== undefined)
50
+ console.log('[REACT DEBUG] Set bold:', el.bold);
51
+ }
52
+ if (btnKey !== undefined) {
30
53
  el.btnKey = btnKey;
54
+ console.log('[REACT DEBUG] Set btnKey:', el.btnKey);
55
+ }
56
+ console.log('[REACT DEBUG] btnsArray:', el.btnsArray);
57
+ console.log('[REACT DEBUG] excludeKeys should trigger automatic arrayMerge via setter');
31
58
  }, [header, subHeader, groupType, btnsArray, excludeKeys, useNone, disabled, dir, titleSize, bold, btnKey]);
32
59
  // Wire outputs (Angular emits custom event name 'btnkeyChange')
33
60
  useEffect(() => {
@@ -0,0 +1,31 @@
1
+ import React from 'react';
2
+ export interface IParamemeter {
3
+ Key: string;
4
+ Type?: string;
5
+ DefaultValue?: string;
6
+ Description?: string;
7
+ Internal?: boolean;
8
+ Persistency?: boolean;
9
+ Readonly?: boolean;
10
+ [key: string]: any;
11
+ }
12
+ export interface IParametersColumn {
13
+ Key: string;
14
+ Type: string;
15
+ Title: string;
16
+ Width: number;
17
+ }
18
+ export interface PepManageParametersProps {
19
+ showType?: boolean;
20
+ showAccessibility?: boolean;
21
+ showPersistency?: boolean;
22
+ inline?: boolean;
23
+ addPadding?: boolean;
24
+ parametersTitle?: string;
25
+ parametersColumns?: IParametersColumn[];
26
+ parameters?: IParamemeter[];
27
+ onParametersChange?: (parameters: IParamemeter[]) => void;
28
+ className?: string;
29
+ style?: React.CSSProperties;
30
+ }
31
+ export declare const PepManageParameters: React.FC<PepManageParametersProps>;
@@ -0,0 +1,40 @@
1
+ import React, { useEffect, useRef } from 'react';
2
+ export const PepManageParameters = ({ showType, showAccessibility, showPersistency, inline, addPadding, parametersTitle, parametersColumns, parameters, onParametersChange, className, style, }) => {
3
+ const ref = useRef(null);
4
+ // Apply inputs as element properties
5
+ useEffect(() => {
6
+ const el = ref.current;
7
+ if (!el)
8
+ return;
9
+ if (showType !== undefined)
10
+ el.showType = showType;
11
+ if (showAccessibility !== undefined)
12
+ el.showAccessibility = showAccessibility;
13
+ if (showPersistency !== undefined)
14
+ el.showPersistency = showPersistency;
15
+ if (inline !== undefined)
16
+ el.inline = inline;
17
+ if (addPadding !== undefined)
18
+ el.addPadding = addPadding;
19
+ if (parametersTitle !== undefined)
20
+ el.parametersTitle = parametersTitle;
21
+ if (parametersColumns !== undefined)
22
+ el.parametersColumns = parametersColumns;
23
+ if (parameters !== undefined)
24
+ el.parameters = parameters;
25
+ }, [showType, showAccessibility, showPersistency, inline, addPadding, parametersTitle, parametersColumns, parameters]);
26
+ // Wire outputs
27
+ useEffect(() => {
28
+ const el = ref.current;
29
+ if (!el)
30
+ return;
31
+ const handler = (e) => {
32
+ const ce = e;
33
+ onParametersChange?.(ce.detail ?? ref.current?.parameters ?? []);
34
+ };
35
+ el.addEventListener('parametersChange', handler);
36
+ return () => el.removeEventListener('parametersChange', handler);
37
+ }, [onParametersChange]);
38
+ return React.createElement('pep-manage-parameters-element', { ref, class: className, style });
39
+ };
40
+ //# sourceMappingURL=pep-manage-parameters.js.map
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ import { IParamemeter } from './pep-manage-parameters';
3
+ export interface MappedParameter {
4
+ Value: string;
5
+ Type: 'Default' | 'Static' | 'Dynamic';
6
+ }
7
+ export declare type MappedParameters = Record<string, MappedParameter>;
8
+ export interface PepMappingParametersProps {
9
+ mapToParameters?: Record<string, any>;
10
+ configurationParameters?: IParamemeter[];
11
+ mappedParameters?: MappedParameters;
12
+ maxHeight?: string;
13
+ onMappedParametersChange?: (mappedParameters: MappedParameters) => void;
14
+ className?: string;
15
+ style?: React.CSSProperties;
16
+ }
17
+ export declare const PepMappingParameters: React.FC<PepMappingParametersProps>;
@@ -0,0 +1,32 @@
1
+ import React, { useEffect, useRef } from 'react';
2
+ export const PepMappingParameters = ({ mapToParameters, configurationParameters, mappedParameters, maxHeight, onMappedParametersChange, className, style, }) => {
3
+ const ref = useRef(null);
4
+ // Apply inputs as element properties
5
+ useEffect(() => {
6
+ const el = ref.current;
7
+ if (!el)
8
+ return;
9
+ if (mapToParameters !== undefined)
10
+ el.mapToParameters = mapToParameters;
11
+ if (configurationParameters !== undefined)
12
+ el.configurationParameters = configurationParameters;
13
+ if (mappedParameters !== undefined)
14
+ el.mappedParameters = mappedParameters;
15
+ if (maxHeight !== undefined)
16
+ el.maxHeight = maxHeight;
17
+ }, [mapToParameters, configurationParameters, mappedParameters, maxHeight]);
18
+ // Wire outputs
19
+ useEffect(() => {
20
+ const el = ref.current;
21
+ if (!el)
22
+ return;
23
+ const handler = (e) => {
24
+ const ce = e;
25
+ onMappedParametersChange?.(ce.detail ?? ref.current?.mappedParameters ?? {});
26
+ };
27
+ el.addEventListener('mappedParametersChange', handler);
28
+ return () => el.removeEventListener('mappedParametersChange', handler);
29
+ }, [onMappedParametersChange]);
30
+ return React.createElement('pep-mapping-parameters-element', { ref, class: className, style });
31
+ };
32
+ //# sourceMappingURL=pep-mapping-parameters.js.map
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ export interface DataViewField {
3
+ FieldID: string;
4
+ Title?: string;
5
+ [key: string]: any;
6
+ }
7
+ export interface PepMenuDataViewProps {
8
+ fields?: DataViewField[];
9
+ availableFieldsTitles?: Map<string, string>;
10
+ emptyDropAreaId?: string;
11
+ mappedFieldsId?: string;
12
+ showAddSeparator?: boolean;
13
+ itemKeyLabel?: string;
14
+ itemTitleLabel?: string;
15
+ onFieldsChange?: (event: CustomEvent<DataViewField[]>) => void;
16
+ children?: React.ReactNode;
17
+ }
18
+ export declare const PepMenuDataView: React.FC<PepMenuDataViewProps>;
@@ -0,0 +1,36 @@
1
+ import React, { useRef, useEffect } from 'react';
2
+ export const PepMenuDataView = ({ fields = [], availableFieldsTitles, emptyDropAreaId = '', mappedFieldsId = '', showAddSeparator = true, itemKeyLabel = '', itemTitleLabel = '', onFieldsChange, children }) => {
3
+ const elementRef = useRef(null);
4
+ useEffect(() => {
5
+ const element = elementRef.current;
6
+ if (!element)
7
+ return;
8
+ // Reflect props to custom element
9
+ if (fields !== undefined)
10
+ element.fields = fields;
11
+ if (availableFieldsTitles !== undefined)
12
+ element.availableFieldsTitles = availableFieldsTitles;
13
+ element.emptyDropAreaId = emptyDropAreaId;
14
+ element.mappedFieldsId = mappedFieldsId;
15
+ element.showAddSeparator = showAddSeparator;
16
+ element.itemKeyLabel = itemKeyLabel;
17
+ element.itemTitleLabel = itemTitleLabel;
18
+ }, [fields, availableFieldsTitles, emptyDropAreaId, mappedFieldsId, showAddSeparator, itemKeyLabel, itemTitleLabel]);
19
+ useEffect(() => {
20
+ const element = elementRef.current;
21
+ if (!element)
22
+ return;
23
+ const handleFieldsChange = (event) => {
24
+ if (onFieldsChange)
25
+ onFieldsChange(event);
26
+ };
27
+ // Add event listeners
28
+ element.addEventListener('fieldsChange', handleFieldsChange);
29
+ // Cleanup
30
+ return () => {
31
+ element.removeEventListener('fieldsChange', handleFieldsChange);
32
+ };
33
+ }, [onFieldsChange]);
34
+ return React.createElement('pep-menu-data-view-element', { ref: elementRef }, children);
35
+ };
36
+ //# sourceMappingURL=pep-menu-data-view.js.map