global config
This commit is contained in:
parent
c0d13a39c7
commit
241817cfd4
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -259,7 +259,9 @@ var DEFAULT_BTN_HREF = "javascript:void(0);"; // useful html tags
|
||||||
|
|
||||||
var spanHTMLTag = "span";
|
var spanHTMLTag = "span";
|
||||||
var aHTMLTag = "a";
|
var aHTMLTag = "a";
|
||||||
var pHTMLTag = "p"; // default language
|
var pHTMLTag = "p"; // global mailgo config object
|
||||||
|
|
||||||
|
var config; // default language
|
||||||
|
|
||||||
var lang = DEFAULT_LANG; // mailgo variables
|
var lang = DEFAULT_LANG; // mailgo variables
|
||||||
|
|
||||||
|
@ -285,16 +287,20 @@ var gmail, outlook, mailgo_open, telegram, wa, skype, call, copyMail, copyTel;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
var mailgo_mailgoInit = function mailgoInit(mailgoConfig) {
|
var mailgo_mailgoInit = function mailgoInit(mailgoConfig) {
|
||||||
// translations
|
var _config, _config2;
|
||||||
|
|
||||||
|
// set the global config
|
||||||
|
config = mailgoConfig; // translations
|
||||||
|
|
||||||
var _ref = i18n_namespaceObject,
|
var _ref = i18n_namespaceObject,
|
||||||
translations = _ref.translations; // if a default language is defined use it
|
translations = _ref.translations; // if a default language is defined use it
|
||||||
|
|
||||||
if ((mailgoConfig === null || mailgoConfig === void 0 ? void 0 : mailgoConfig.lang) && i18n["languages"].includes(mailgoConfig.lang)) {
|
if (((_config = config) === null || _config === void 0 ? void 0 : _config.lang) && i18n["languages"].includes(config.lang)) {
|
||||||
lang = mailgoConfig.lang;
|
lang = config.lang;
|
||||||
} // if is defined <html lang=""> use it!
|
} // if is defined <html lang=""> use it!
|
||||||
|
|
||||||
|
|
||||||
if (!(mailgoConfig === null || mailgoConfig === void 0 ? void 0 : mailgoConfig.forceLang)) {
|
if (!((_config2 = config) === null || _config2 === void 0 ? void 0 : _config2.forceLang)) {
|
||||||
// keep the lang from html
|
// keep the lang from html
|
||||||
var htmlLang = document.documentElement.lang; // if there are translations...
|
var htmlLang = document.documentElement.lang; // if there are translations...
|
||||||
|
|
||||||
|
@ -308,13 +314,15 @@ var mailgo_mailgoInit = function mailgoInit(mailgoConfig) {
|
||||||
var strings = translations[lang]; // mailgo mail
|
var strings = translations[lang]; // mailgo mail
|
||||||
|
|
||||||
{
|
{
|
||||||
|
var _config3;
|
||||||
|
|
||||||
// modal
|
// modal
|
||||||
var modal = createElement();
|
var modal = createElement();
|
||||||
modal.style.display = "none";
|
modal.style.display = "none";
|
||||||
modal.id = "mailgo";
|
modal.id = "mailgo";
|
||||||
modal.classList.add("m-modal"); // if dark is in config
|
modal.classList.add("m-modal"); // if dark is in config
|
||||||
|
|
||||||
if (mailgoConfig === null || mailgoConfig === void 0 ? void 0 : mailgoConfig.dark) {
|
if ((_config3 = config) === null || _config3 === void 0 ? void 0 : _config3.dark) {
|
||||||
modal.classList.add("m-dark");
|
modal.classList.add("m-dark");
|
||||||
} // background
|
} // background
|
||||||
|
|
||||||
|
@ -428,6 +436,8 @@ var mailgo_mailgoInit = function mailgoInit(mailgoConfig) {
|
||||||
} // mailgo tel
|
} // mailgo tel
|
||||||
|
|
||||||
{
|
{
|
||||||
|
var _config4;
|
||||||
|
|
||||||
// modal
|
// modal
|
||||||
var _modal = createElement();
|
var _modal = createElement();
|
||||||
|
|
||||||
|
@ -437,7 +447,7 @@ var mailgo_mailgoInit = function mailgoInit(mailgoConfig) {
|
||||||
_modal.classList.add("m-modal"); // if dark is in config
|
_modal.classList.add("m-modal"); // if dark is in config
|
||||||
|
|
||||||
|
|
||||||
if (mailgoConfig === null || mailgoConfig === void 0 ? void 0 : mailgoConfig.dark) {
|
if ((_config4 = config) === null || _config4 === void 0 ? void 0 : _config4.dark) {
|
||||||
_modal.classList.add("m-dark");
|
_modal.classList.add("m-dark");
|
||||||
} // background
|
} // background
|
||||||
|
|
||||||
|
@ -608,11 +618,13 @@ var mailgoRender = function mailgoRender() {
|
||||||
} else if (mailgo.hasAttribute("data-tel")) {
|
} else if (mailgo.hasAttribute("data-tel")) {
|
||||||
tel = mailgo.getAttribute("data-tel");
|
tel = mailgo.getAttribute("data-tel");
|
||||||
msg = mailgo.getAttribute("data-msg");
|
msg = mailgo.getAttribute("data-msg");
|
||||||
} // information
|
} // validate the phone number
|
||||||
|
|
||||||
|
|
||||||
|
if (!validateTel(tel)) return; // information
|
||||||
// let titleEl = getE("m-tel-title");
|
// let titleEl = getE("m-tel-title");
|
||||||
// Telegram username
|
// Telegram username
|
||||||
|
|
||||||
|
|
||||||
if (mailgo.hasAttribute("data-telegram")) {
|
if (mailgo.hasAttribute("data-telegram")) {
|
||||||
telegramUsername = mailgo.getAttribute("data-telegram");
|
telegramUsername = mailgo.getAttribute("data-telegram");
|
||||||
} // Telegram username
|
} // Telegram username
|
||||||
|
@ -980,6 +992,12 @@ var validateEmail = function validateEmail(email) {
|
||||||
|
|
||||||
var validateEmails = function validateEmails(arr) {
|
var validateEmails = function validateEmails(arr) {
|
||||||
return arr.every(validateEmail);
|
return arr.every(validateEmail);
|
||||||
|
}; // validate a single tel with regex
|
||||||
|
|
||||||
|
|
||||||
|
var validateTel = function validateTel(tel) {
|
||||||
|
// TODO: find a good regex for telephone numbers
|
||||||
|
return true;
|
||||||
}; // copy of a string
|
}; // copy of a string
|
||||||
|
|
||||||
|
|
||||||
|
@ -1014,18 +1032,18 @@ var mailgoStyle = function mailgoStyle() {
|
||||||
}; // mailgo
|
}; // mailgo
|
||||||
|
|
||||||
|
|
||||||
function mailgo(mailgoConfig) {
|
function mailgo(config) {
|
||||||
// if the window is defined...
|
// if the window is defined...
|
||||||
if (window && typeof window !== "undefined") {
|
if (window && typeof window !== "undefined") {
|
||||||
// add the style for mailgo
|
// add the style for mailgo
|
||||||
mailgoStyle(); // if is set an initEvent add the listener
|
mailgoStyle(); // if is set an initEvent add the listener
|
||||||
|
|
||||||
if (mailgoConfig === null || mailgoConfig === void 0 ? void 0 : mailgoConfig.initEvent) {
|
if (config === null || config === void 0 ? void 0 : config.initEvent) {
|
||||||
document.addEventListener(mailgoConfig.initEvent, function () {
|
document.addEventListener(config.initEvent, function () {
|
||||||
mailgo_mailgoInit(mailgoConfig);
|
mailgo_mailgoInit(config);
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
mailgo_mailgoInit(mailgoConfig);
|
mailgo_mailgoInit(config);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -8,6 +8,8 @@ declare module "mailgo" {
|
||||||
dark?: boolean;
|
dark?: boolean;
|
||||||
lang?: string;
|
lang?: string;
|
||||||
forceLang?: boolean;
|
forceLang?: boolean;
|
||||||
|
validateEmail?: boolean;
|
||||||
|
validateTel?: boolean;
|
||||||
};
|
};
|
||||||
|
|
||||||
export type MailgoTranslation = {
|
export type MailgoTranslation = {
|
||||||
|
|
|
@ -31,6 +31,9 @@ const spanHTMLTag: string = "span";
|
||||||
const aHTMLTag: string = "a";
|
const aHTMLTag: string = "a";
|
||||||
const pHTMLTag: string = "p";
|
const pHTMLTag: string = "p";
|
||||||
|
|
||||||
|
// global mailgo config object
|
||||||
|
let config: MailgoConfig;
|
||||||
|
|
||||||
// default language
|
// default language
|
||||||
let lang: string = DEFAULT_LANG;
|
let lang: string = DEFAULT_LANG;
|
||||||
|
|
||||||
|
@ -77,18 +80,21 @@ let gmail: HTMLLinkElement,
|
||||||
* the function that creates the mailgo elements in DOM
|
* the function that creates the mailgo elements in DOM
|
||||||
*/
|
*/
|
||||||
const mailgoInit = (mailgoConfig?: MailgoConfig): void => {
|
const mailgoInit = (mailgoConfig?: MailgoConfig): void => {
|
||||||
|
// set the global config
|
||||||
|
config = mailgoConfig;
|
||||||
|
|
||||||
// translations
|
// translations
|
||||||
let {
|
let {
|
||||||
translations,
|
translations,
|
||||||
}: { translations: MailgoTranslations } = i18n as MailgoI18n;
|
}: { translations: MailgoTranslations } = i18n as MailgoI18n;
|
||||||
|
|
||||||
// if a default language is defined use it
|
// if a default language is defined use it
|
||||||
if (mailgoConfig?.lang && i18n.languages.includes(mailgoConfig.lang)) {
|
if (config?.lang && i18n.languages.includes(config.lang)) {
|
||||||
lang = mailgoConfig.lang;
|
lang = config.lang;
|
||||||
}
|
}
|
||||||
|
|
||||||
// if is defined <html lang=""> use it!
|
// if is defined <html lang=""> use it!
|
||||||
if (!mailgoConfig?.forceLang) {
|
if (!config?.forceLang) {
|
||||||
// keep the lang from html
|
// keep the lang from html
|
||||||
let htmlLang: string = document.documentElement.lang;
|
let htmlLang: string = document.documentElement.lang;
|
||||||
|
|
||||||
|
@ -111,7 +117,7 @@ const mailgoInit = (mailgoConfig?: MailgoConfig): void => {
|
||||||
modal.classList.add("m-modal");
|
modal.classList.add("m-modal");
|
||||||
|
|
||||||
// if dark is in config
|
// if dark is in config
|
||||||
if (mailgoConfig?.dark) {
|
if (config?.dark) {
|
||||||
modal.classList.add("m-dark");
|
modal.classList.add("m-dark");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -263,7 +269,7 @@ const mailgoInit = (mailgoConfig?: MailgoConfig): void => {
|
||||||
modal.classList.add("m-modal");
|
modal.classList.add("m-modal");
|
||||||
|
|
||||||
// if dark is in config
|
// if dark is in config
|
||||||
if (mailgoConfig?.dark) {
|
if (config?.dark) {
|
||||||
modal.classList.add("m-dark");
|
modal.classList.add("m-dark");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -924,19 +930,19 @@ const mailgoStyle = (): void => {
|
||||||
};
|
};
|
||||||
|
|
||||||
// mailgo
|
// mailgo
|
||||||
function mailgo(mailgoConfig?: MailgoConfig): void {
|
function mailgo(config?: MailgoConfig): void {
|
||||||
// if the window is defined...
|
// if the window is defined...
|
||||||
if (window && typeof window !== "undefined") {
|
if (window && typeof window !== "undefined") {
|
||||||
// add the style for mailgo
|
// add the style for mailgo
|
||||||
mailgoStyle();
|
mailgoStyle();
|
||||||
|
|
||||||
// if is set an initEvent add the listener
|
// if is set an initEvent add the listener
|
||||||
if (mailgoConfig?.initEvent) {
|
if (config?.initEvent) {
|
||||||
document.addEventListener(mailgoConfig.initEvent, () => {
|
document.addEventListener(config.initEvent, () => {
|
||||||
mailgoInit(mailgoConfig);
|
mailgoInit(config);
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
mailgoInit(mailgoConfig);
|
mailgoInit(config);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue