global config
This commit is contained in:
parent
c0d13a39c7
commit
241817cfd4
2
dist/mailgo.dark.min.js
vendored
2
dist/mailgo.dark.min.js
vendored
File diff suppressed because one or more lines are too long
2
dist/mailgo.dark.min.js.map
vendored
2
dist/mailgo.dark.min.js.map
vendored
File diff suppressed because one or more lines are too long
2
dist/mailgo.min.js
vendored
2
dist/mailgo.min.js
vendored
File diff suppressed because one or more lines are too long
2
dist/mailgo.min.js.map
vendored
2
dist/mailgo.min.js.map
vendored
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
2
mailgo.d.ts
vendored
2
mailgo.d.ts
vendored
|
@ -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
Block a user