Current File : /home/pacjaorg/wpt.pacja.org/wp-content/plugins/leadin/scripts/entries/elementor.ts |
import elementorWidget from '../elementor/elementorWidget';
import registerFormWidget from '../elementor/FormWidget/registerFormWidget';
import { initBackgroundApp } from '../utils/backgroundAppUtils';
import registerMeetingsWidget from '../elementor/MeetingWidget/registerMeetingWidget';
const ELEMENTOR_READY_INTERVAL = 500;
const MAX_POLL_TIMEOUT = 30000;
const registerElementorWidgets = () => {
initBackgroundApp(() => {
let FormWidget: any;
let MeetingsWidget: any;
const leadinSelectFormItemView = elementorWidget(
//@ts-expect-error global
window.elementor,
{
widgetName: 'hubspot-form',
controlSelector: '.elementor-hbspt-form-selector',
containerSelector: '.hubspot-form-edit-mode',
},
(controlContainer: any, widgetContainer: any, setValue: Function) => {
FormWidget = new registerFormWidget(
controlContainer,
widgetContainer,
setValue
);
FormWidget.render();
},
() => {
FormWidget.done();
}
);
const leadinSelectMeetingItemView = elementorWidget(
//@ts-expect-error global
window.elementor,
{
widgetName: 'hubspot-meeting',
controlSelector: '.elementor-hbspt-meeting-selector',
containerSelector: '.hubspot-meeting-edit-mode',
},
(controlContainer: any, widgetContainer: any, setValue: Function) => {
MeetingsWidget = new registerMeetingsWidget(
controlContainer,
widgetContainer,
setValue
);
MeetingsWidget.render();
},
() => {
MeetingsWidget.done();
}
);
//@ts-expect-error global
window.elementor.addControlView(
'leadinformselect',
leadinSelectFormItemView
);
//@ts-expect-error global
window.elementor.addControlView(
'leadinmeetingselect',
leadinSelectMeetingItemView
);
});
};
const pollForElementorReady = setInterval(() => {
const elementorFrontend = (window as any).elementorFrontend;
if (elementorFrontend) {
registerElementorWidgets();
clearInterval(pollForElementorReady);
}
}, ELEMENTOR_READY_INTERVAL);
setTimeout(() => {
clearInterval(pollForElementorReady);
}, MAX_POLL_TIMEOUT);