Current File : /home/pacjaorg/wpt.pacja.org/wp-content/plugins/leadin/scripts/elementor/elementorWidget.ts |
export default function elementorWidget(
elementor: any,
options: any,
callback: Function,
done = () => {}
) {
return elementor.modules.controls.BaseData.extend({
onReady() {
const self = this;
const controlContainer = this.ui.contentEditable.prevObject[0].querySelector(
options.controlSelector
);
let widgetContainer = this.options.element.$el[0].querySelector(
options.containerSelector
);
if (widgetContainer) {
callback(controlContainer, widgetContainer, (args: any) =>
self.setValue(args)
);
} else {
//@ts-expect-error global
window.elementorFrontend.hooks.addAction(
`frontend/element_ready/${options.widgetName}.default`,
(element: HTMLElement[]) => {
widgetContainer = element[0].querySelector(
options.containerSelector
);
callback(controlContainer, widgetContainer, (args: any) =>
self.setValue(args)
);
}
);
}
},
saveValue(props: any) {
this.setValue(props);
},
onBeforeDestroy() {
//@ts-expect-error global
window.elementorFrontend.hooks.removeAction(
`frontend/element_ready/${options.widgetName}.default`
);
done();
},
});
}