PluginProbe
HubSpot All-In-One Marketing – Forms, Popups, Live Chat / 11.3.75
HubSpot All-In-One Marketing – Forms, Popups, Live Chat v11.3.75
11.3.75 11.3.73 11.3.71 11.3.70 11.3.69 11.3.64 11.3.65 11.3.62 11.3.61 11.3.56 11.3.58 11.0.31 11.0.52 11.0.54 11.0.56 11.0.58 11.0.7 11.1.10 11.1.11 11.1.13 11.1.14 11.1.15 11.1.2 11.1.20 11.1.21 All 73 releases
leadin / scripts / entries / elementor.ts

elementor.ts in HubSpot All-In-One Marketing – Forms, Popups, Live Chat 11.3.75, at scripts/entries/elementor.ts

80 lines 2.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 import elementorWidget from '../elementor/elementorWidget';
2 import registerFormWidget from '../elementor/FormWidget/registerFormWidget';
3 import { initBackgroundApp } from '../utils/backgroundAppUtils';
4 import registerMeetingsWidget from '../elementor/MeetingWidget/registerMeetingWidget';
5
6 const ELEMENTOR_READY_INTERVAL = 500;
7 const MAX_POLL_TIMEOUT = 30000;
8
9 const registerElementorWidgets = () => {
10 initBackgroundApp(() => {
11 let FormWidget: any;
12 let MeetingsWidget: any;
13
14 const leadinSelectFormItemView = elementorWidget(
15 //@ts-expect-error global
16 window.elementor,
17 {
18 widgetName: 'hubspot-form',
19 controlSelector: '.elementor-hbspt-form-selector',
20 containerSelector: '.hubspot-form-edit-mode',
21 },
22 (controlContainer: any, widgetContainer: any, setValue: Function) => {
23 FormWidget = new registerFormWidget(
24 controlContainer,
25 widgetContainer,
26 setValue
27 );
28 FormWidget.render();
29 },
30 () => {
31 FormWidget.done();
32 }
33 );
34
35 const leadinSelectMeetingItemView = elementorWidget(
36 //@ts-expect-error global
37 window.elementor,
38 {
39 widgetName: 'hubspot-meeting',
40 controlSelector: '.elementor-hbspt-meeting-selector',
41 containerSelector: '.hubspot-meeting-edit-mode',
42 },
43 (controlContainer: any, widgetContainer: any, setValue: Function) => {
44 MeetingsWidget = new registerMeetingsWidget(
45 controlContainer,
46 widgetContainer,
47 setValue
48 );
49 MeetingsWidget.render();
50 },
51 () => {
52 MeetingsWidget.done();
53 }
54 );
55
56 //@ts-expect-error global
57 window.elementor.addControlView(
58 'leadinformselect',
59 leadinSelectFormItemView
60 );
61 //@ts-expect-error global
62 window.elementor.addControlView(
63 'leadinmeetingselect',
64 leadinSelectMeetingItemView
65 );
66 });
67 };
68
69 const pollForElementorReady = setInterval(() => {
70 const elementorFrontend = (window as any).elementorFrontend;
71 if (elementorFrontend) {
72 registerElementorWidgets();
73 clearInterval(pollForElementorReady);
74 }
75 }, ELEMENTOR_READY_INTERVAL);
76
77 setTimeout(() => {
78 clearInterval(pollForElementorReady);
79 }, MAX_POLL_TIMEOUT);
80