Files
wyczarujprezent.pl/modules/paypal/_dev/js/tools.js
2024-10-28 22:14:22 +01:00

161 lines
4.2 KiB
JavaScript

/*
* 2007-2022 PayPal
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
* @author 2007-2022 PayPal
* @author 202 ecommerce <tech@202-ecommerce.com>
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
* @copyright PayPal
*/
import intlTelInput from 'intl-tel-input';
export const Tools = {
// Show error message
getAlert(message, typeAlert) {
const alert = document.createElement('div');
let messageNode = document.createElement('div');
messageNode.innerHTML = message;
alert.className = `alert alert-${typeAlert}`;
alert.appendChild(messageNode);
return alert;
},
hideConfiguration(name) {
let selector = `[name="${name}"]`;
let configuration = $(selector);
let formGroup = configuration.closest('.form-group');
formGroup.hide();
},
showConfiguration(name) {
let selector = `[name="${name}"]`;
let configuration = $(selector);
let formGroup = configuration.closest('.form-group');
formGroup.show();
},
isVisible(el) {
const style = window.getComputedStyle(el);
return style.width !== "0" &&
style.height !== "0" &&
style.opacity !== "0" &&
style.display!=='none' &&
style.visibility!== 'hidden';
},
disableTillConsenting(disabledElement, checkBox) {
if (disabledElement instanceof Element == false) {
return;
}
if (checkBox instanceof Element == false) {
return;
}
Tools.disable(disabledElement);
checkBox.addEventListener('click', function() {
if (checkBox.checked) {
Tools.enable(disabledElement);
} else {
Tools.disable(disabledElement);
}
})
},
disable(element) {
if (element instanceof Element == false) {
return;
}
element.style.pointerEvents = 'none';
element.style.opacity = '0.5';
},
enable(element) {
if (element instanceof Element == false) {
return;
}
element.style.pointerEvents = '';
element.style.opacity = '1';
},
hideElementTillPaymentOptionChecked(checkElementSelector, hideElementSelector) {
const checkElement = document.querySelector(checkElementSelector);
const hideElement = document.querySelector(hideElementSelector);
if (checkElement instanceof Element == false) {
return;
}
if (hideElement instanceof Element == false) {
return;
}
if ('paypalToolsHiddenElemenList' in window == false) {
window.paypalToolsHiddenElemenList = {};
}
if (hideElementSelector in window.paypalToolsHiddenElemenList) {
window.paypalToolsHiddenElemenList[hideElementSelector].push(checkElement);
return;
}
window.paypalToolsHiddenElemenList[hideElementSelector] = [checkElement];
const options = checkElement.closest('.payment-options');
if (options instanceof Element == false) {
return;
}
options.addEventListener('input', function(event) {
let isHide = false;
window.paypalToolsHiddenElemenList[hideElementSelector].forEach(function(elem) {
if (elem.checked) {
isHide = true;
}
});
if (isHide) {
hideElement.style.visibility = 'hidden';
} else {
hideElement.style.visibility = 'initial';
}
})
},
initPhoneInput(input, options = {}) {
if (false == input instanceof Element) {
return false;
}
input.addEventListener('input', function(e) {
e.target.value = e.target.value.replace('+', '')
});
return intlTelInput(input, options);
},
};
window.PaypalTools = Tools;
let event = new Event('paypal-tools-loaded');
document.dispatchEvent(event);