first commit
This commit is contained in:
@@ -0,0 +1,297 @@
|
||||
/*! elementor-pro - v3.23.0 - 05-08-2024 */
|
||||
"use strict";
|
||||
(self["webpackChunkelementor_pro"] = self["webpackChunkelementor_pro"] || []).push([["contact-buttons-var-10"],{
|
||||
|
||||
/***/ "../modules/floating-buttons/assets/js/frontend/handlers/contact-buttons-v10.js":
|
||||
/*!**************************************************************************************!*\
|
||||
!*** ../modules/floating-buttons/assets/js/frontend/handlers/contact-buttons-v10.js ***!
|
||||
\**************************************************************************************/
|
||||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
||||
|
||||
|
||||
|
||||
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
|
||||
Object.defineProperty(exports, "__esModule", ({
|
||||
value: true
|
||||
}));
|
||||
exports["default"] = void 0;
|
||||
var _base = _interopRequireDefault(__webpack_require__(/*! elementor-frontend/handlers/base */ "../../elementor/assets/dev/js/frontend/handlers/base.js"));
|
||||
class ContactButtonsv10Handler extends _base.default {
|
||||
getDefaultSettings() {
|
||||
return {
|
||||
selectors: {
|
||||
main: '.e-contact-buttons-var-10',
|
||||
links: '.e-contact-buttons__contact-icon-link'
|
||||
},
|
||||
constants: {
|
||||
active: 'active'
|
||||
}
|
||||
};
|
||||
}
|
||||
getDefaultElements() {
|
||||
const selectors = this.getSettings('selectors');
|
||||
return {
|
||||
main: this.$element[0].querySelector(selectors.main),
|
||||
links: this.$element[0].querySelectorAll(selectors.links)
|
||||
};
|
||||
}
|
||||
isMobileDevice() {
|
||||
const mobileDevices = ['mobile', 'mobile_extra'];
|
||||
return mobileDevices.includes(elementorFrontend.getCurrentDeviceMode());
|
||||
}
|
||||
handleLinkClick(event) {
|
||||
event.preventDefault();
|
||||
const {
|
||||
active
|
||||
} = this.getSettings('constants');
|
||||
if (event.currentTarget.classList.contains(active)) {
|
||||
const href = event.currentTarget.getAttribute('href');
|
||||
const target = event.currentTarget.getAttribute('target');
|
||||
|
||||
// If the target is set, open in a new window, otherwise just change location
|
||||
if (target) {
|
||||
window.open(href, target);
|
||||
} else if (href) {
|
||||
window.location.href = href;
|
||||
}
|
||||
event.currentTarget.classList.remove(active);
|
||||
} else {
|
||||
this.closeAllLinks();
|
||||
event.currentTarget.classList.add(active);
|
||||
}
|
||||
}
|
||||
closeAllLinks() {
|
||||
const {
|
||||
active
|
||||
} = this.getSettings('constants');
|
||||
this.elements.links.forEach(link => link.classList.remove(active));
|
||||
}
|
||||
linksEventListeners() {
|
||||
if (!this.elements.links.length) {
|
||||
return;
|
||||
}
|
||||
if (this.isMobileDevice()) {
|
||||
this.elements.links.forEach(link => {
|
||||
link.addEventListener('click', event => {
|
||||
this.handleLinkClick(event);
|
||||
});
|
||||
});
|
||||
|
||||
// Click outside will close all the links
|
||||
document.addEventListener('click', event => {
|
||||
if (!this.elements.main.contains(event.target)) {
|
||||
this.closeAllLinks();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
bindEvents() {
|
||||
this.linksEventListeners();
|
||||
}
|
||||
}
|
||||
exports["default"] = ContactButtonsv10Handler;
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "../../elementor/assets/dev/js/frontend/handlers/base.js":
|
||||
/*!***************************************************************!*\
|
||||
!*** ../../elementor/assets/dev/js/frontend/handlers/base.js ***!
|
||||
\***************************************************************/
|
||||
/***/ ((module) => {
|
||||
|
||||
|
||||
|
||||
module.exports = elementorModules.ViewModule.extend({
|
||||
$element: null,
|
||||
editorListeners: null,
|
||||
onElementChange: null,
|
||||
onEditSettingsChange: null,
|
||||
onPageSettingsChange: null,
|
||||
isEdit: null,
|
||||
__construct(settings) {
|
||||
if (!this.isActive(settings)) {
|
||||
return;
|
||||
}
|
||||
this.$element = settings.$element;
|
||||
this.isEdit = this.$element.hasClass('elementor-element-edit-mode');
|
||||
if (this.isEdit) {
|
||||
this.addEditorListeners();
|
||||
}
|
||||
},
|
||||
isActive() {
|
||||
return true;
|
||||
},
|
||||
isElementInTheCurrentDocument() {
|
||||
if (!elementorFrontend.isEditMode()) {
|
||||
return false;
|
||||
}
|
||||
return elementor.documents.currentDocument.id.toString() === this.$element[0].closest('.elementor').dataset.elementorId;
|
||||
},
|
||||
findElement(selector) {
|
||||
var $mainElement = this.$element;
|
||||
return $mainElement.find(selector).filter(function () {
|
||||
// Start `closest` from parent since self can be `.elementor-element`.
|
||||
return jQuery(this).parent().closest('.elementor-element').is($mainElement);
|
||||
});
|
||||
},
|
||||
getUniqueHandlerID(cid, $element) {
|
||||
if (!cid) {
|
||||
cid = this.getModelCID();
|
||||
}
|
||||
if (!$element) {
|
||||
$element = this.$element;
|
||||
}
|
||||
return cid + $element.attr('data-element_type') + this.getConstructorID();
|
||||
},
|
||||
initEditorListeners() {
|
||||
var self = this;
|
||||
self.editorListeners = [{
|
||||
event: 'element:destroy',
|
||||
to: elementor.channels.data,
|
||||
callback(removedModel) {
|
||||
if (removedModel.cid !== self.getModelCID()) {
|
||||
return;
|
||||
}
|
||||
self.onDestroy();
|
||||
}
|
||||
}];
|
||||
if (self.onElementChange) {
|
||||
const elementType = self.getWidgetType() || self.getElementType();
|
||||
let eventName = 'change';
|
||||
if ('global' !== elementType) {
|
||||
eventName += ':' + elementType;
|
||||
}
|
||||
self.editorListeners.push({
|
||||
event: eventName,
|
||||
to: elementor.channels.editor,
|
||||
callback(controlView, elementView) {
|
||||
var elementViewHandlerID = self.getUniqueHandlerID(elementView.model.cid, elementView.$el);
|
||||
if (elementViewHandlerID !== self.getUniqueHandlerID()) {
|
||||
return;
|
||||
}
|
||||
self.onElementChange(controlView.model.get('name'), controlView, elementView);
|
||||
}
|
||||
});
|
||||
}
|
||||
if (self.onEditSettingsChange) {
|
||||
self.editorListeners.push({
|
||||
event: 'change:editSettings',
|
||||
to: elementor.channels.editor,
|
||||
callback(changedModel, view) {
|
||||
if (view.model.cid !== self.getModelCID()) {
|
||||
return;
|
||||
}
|
||||
const propName = Object.keys(changedModel.changed)[0];
|
||||
self.onEditSettingsChange(propName, changedModel.changed[propName]);
|
||||
}
|
||||
});
|
||||
}
|
||||
['page'].forEach(function (settingsType) {
|
||||
var listenerMethodName = 'on' + settingsType[0].toUpperCase() + settingsType.slice(1) + 'SettingsChange';
|
||||
if (self[listenerMethodName]) {
|
||||
self.editorListeners.push({
|
||||
event: 'change',
|
||||
to: elementor.settings[settingsType].model,
|
||||
callback(model) {
|
||||
self[listenerMethodName](model.changed);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
getEditorListeners() {
|
||||
if (!this.editorListeners) {
|
||||
this.initEditorListeners();
|
||||
}
|
||||
return this.editorListeners;
|
||||
},
|
||||
addEditorListeners() {
|
||||
var uniqueHandlerID = this.getUniqueHandlerID();
|
||||
this.getEditorListeners().forEach(function (listener) {
|
||||
elementorFrontend.addListenerOnce(uniqueHandlerID, listener.event, listener.callback, listener.to);
|
||||
});
|
||||
},
|
||||
removeEditorListeners() {
|
||||
var uniqueHandlerID = this.getUniqueHandlerID();
|
||||
this.getEditorListeners().forEach(function (listener) {
|
||||
elementorFrontend.removeListeners(uniqueHandlerID, listener.event, null, listener.to);
|
||||
});
|
||||
},
|
||||
getElementType() {
|
||||
return this.$element.data('element_type');
|
||||
},
|
||||
getWidgetType() {
|
||||
const widgetType = this.$element.data('widget_type');
|
||||
if (!widgetType) {
|
||||
return;
|
||||
}
|
||||
return widgetType.split('.')[0];
|
||||
},
|
||||
getID() {
|
||||
return this.$element.data('id');
|
||||
},
|
||||
getModelCID() {
|
||||
return this.$element.data('model-cid');
|
||||
},
|
||||
getElementSettings(setting) {
|
||||
let elementSettings = {};
|
||||
const modelCID = this.getModelCID();
|
||||
if (this.isEdit && modelCID) {
|
||||
const settings = elementorFrontend.config.elements.data[modelCID],
|
||||
attributes = settings.attributes;
|
||||
let type = attributes.widgetType || attributes.elType;
|
||||
if (attributes.isInner) {
|
||||
type = 'inner-' + type;
|
||||
}
|
||||
let settingsKeys = elementorFrontend.config.elements.keys[type];
|
||||
if (!settingsKeys) {
|
||||
settingsKeys = elementorFrontend.config.elements.keys[type] = [];
|
||||
jQuery.each(settings.controls, (name, control) => {
|
||||
if (control.frontend_available || control.editor_available) {
|
||||
settingsKeys.push(name);
|
||||
}
|
||||
});
|
||||
}
|
||||
jQuery.each(settings.getActiveControls(), function (controlKey) {
|
||||
if (-1 !== settingsKeys.indexOf(controlKey)) {
|
||||
let value = attributes[controlKey];
|
||||
if (value.toJSON) {
|
||||
value = value.toJSON();
|
||||
}
|
||||
elementSettings[controlKey] = value;
|
||||
}
|
||||
});
|
||||
} else {
|
||||
elementSettings = this.$element.data('settings') || {};
|
||||
}
|
||||
return this.getItems(elementSettings, setting);
|
||||
},
|
||||
getEditSettings(setting) {
|
||||
var attributes = {};
|
||||
if (this.isEdit) {
|
||||
attributes = elementorFrontend.config.elements.editSettings[this.getModelCID()].attributes;
|
||||
}
|
||||
return this.getItems(attributes, setting);
|
||||
},
|
||||
getCurrentDeviceSetting(settingKey) {
|
||||
return elementorFrontend.getCurrentDeviceSetting(this.getElementSettings(), settingKey);
|
||||
},
|
||||
onInit() {
|
||||
if (this.isActive(this.getSettings())) {
|
||||
elementorModules.ViewModule.prototype.onInit.apply(this, arguments);
|
||||
}
|
||||
},
|
||||
onDestroy() {
|
||||
if (this.isEdit) {
|
||||
this.removeEditorListeners();
|
||||
}
|
||||
if (this.unbindEvents) {
|
||||
this.unbindEvents();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
/***/ })
|
||||
|
||||
}]);
|
||||
//# sourceMappingURL=contact-buttons-var-10.5ceb4ecd2152a5f8b96e.bundle.js.map
|
||||
Reference in New Issue
Block a user