@up-group-ui/react-controls
Version:
Up shared react controls
338 lines • 10.8 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.isMobileDevice = exports.isNumeric = exports.setTimeOutWithPause = exports.ConvertToDate = exports.incrementJour = exports.jourDuMois = exports.isBissextile = exports.formatDate = exports.addZeroBeforeNumber = exports.objectContains = exports.objectIsIdentical = exports.arrayIsIdentical = exports.arrayIsNullOrEmpty = exports.numberIsNullOrUndef = exports.stringIsNullOrEmpty = exports.isNullOrUndef = exports.getFontSizeNumber = exports.getFontClassName = exports.generateUniqueId = exports.hasOwnProp = exports.callIfExists = void 0;
var tslib_1 = require("tslib");
var typestyle_1 = require("typestyle");
var moment_1 = (0, tslib_1.__importDefault)(require("moment"));
function callIfExists(func) {
var args = [];
for (var _i = 1; _i < arguments.length; _i++) {
args[_i - 1] = arguments[_i];
}
return typeof func === 'function' && func.apply(void 0, args);
}
exports.callIfExists = callIfExists;
function hasOwnProp(obj, prop) {
return Object.prototype.hasOwnProperty.call(obj, prop);
}
exports.hasOwnProp = hasOwnProp;
function generateUniqueId() {
return Math.random().toString(36).substring(7);
}
exports.generateUniqueId = generateUniqueId;
function getFontClassName(fontAttribut) {
return (0, typestyle_1.style)({
fontSize: fontAttribut.fontSize,
color: fontAttribut.color ? fontAttribut.color : '#3f3b37',
fontWeight: fontAttribut.fontWeight ? fontAttribut.fontWeight : 'normal',
fontStyle: fontAttribut.fontStyle ? fontAttribut.fontStyle : 'normal',
fontStretch: fontAttribut.fontStrech ? fontAttribut.fontStrech : 'normal',
lineHeight: fontAttribut.lineHeight ? fontAttribut.lineHeight : 'normal',
letterSpacing: fontAttribut.letterSpacing ? fontAttribut.letterSpacing : 'normal',
});
}
exports.getFontClassName = getFontClassName;
function getFontSizeNumber(size) {
if (typeof size === 'number') {
return size;
}
var regex = /([0-9]*\.?[0-9]*)(.*)/i.exec(size);
if (isNullOrUndef(regex) || isNullOrUndef(regex[1])) {
return 0;
}
var sizeParsed = parseFloat(regex[1]);
var unite = regex[2];
if (isNullOrUndef(sizeParsed)) {
return 0;
}
if (stringIsNullOrEmpty(unite)) {
return sizeParsed;
}
switch (unite) {
case 'px':
return sizeParsed;
case 'in':
return sizeParsed * 96;
case 'cm':
return (sizeParsed * 96) / 2.54;
case 'mm':
return (sizeParsed * 96) / 0.254;
case 'pt':
return (sizeParsed * 96) / 72;
case 'pc':
return (sizeParsed * 96) / 6;
case 'em':
case 'ex':
case 'ch':
case 'rem':
case 'vw':
case 'vh':
case 'vmin':
case 'vmax':
case '%':
this._relativeIconSize = true;
break;
}
return sizeParsed;
}
exports.getFontSizeNumber = getFontSizeNumber;
function isNullOrUndef(objet) {
return objet == null || objet == undefined;
}
exports.isNullOrUndef = isNullOrUndef;
function stringIsNullOrEmpty(chaine) {
return isNullOrUndef(chaine) || chaine.trim().length === 0;
}
exports.stringIsNullOrEmpty = stringIsNullOrEmpty;
function numberIsNullOrUndef(number) {
return isNullOrUndef(number) || isNaN(number);
}
exports.numberIsNullOrUndef = numberIsNullOrUndef;
function arrayIsNullOrEmpty(array) {
return isNullOrUndef(array) || array.length == 0;
}
exports.arrayIsNullOrEmpty = arrayIsNullOrEmpty;
function arrayIsIdentical(array1, array2) {
if (array1 === array2) {
return true;
}
if (array1.length !== array2.length) {
return false;
}
for (var cpt = 0; cpt < array1.length; cpt++) {
if (array1[cpt] !== array2[cpt]) {
if (array1[cpt] instanceof Array && array2[cpt] instanceof Array) {
if (!arrayIsIdentical(array1[cpt], array2[cpt])) {
return false;
}
}
else if (typeof array1[cpt] === 'object' && typeof array2[cpt] === 'object') {
if (!objectIsIdentical(array1[cpt], array2[cpt])) {
return false;
}
}
else {
return false;
}
}
}
return true;
}
exports.arrayIsIdentical = arrayIsIdentical;
function objectIsIdentical(obj1, obj2) {
if (obj1 === obj2) {
return true;
}
for (var prop in obj1) {
if (!obj2.hasOwnProperty(prop) || typeof obj1[prop] !== typeof obj2[prop]) {
return false;
}
}
for (var prop in obj2) {
if (!obj1.hasOwnProperty(prop)) {
return false;
}
if (obj1[prop] !== obj2[prop]) {
if (obj1[prop] instanceof Array && obj2[prop] instanceof Array) {
if (!arrayIsIdentical(obj1[prop], obj2[prop])) {
return false;
}
}
else if (typeof obj1[prop] === 'object') {
if (!objectIsIdentical(obj1[prop], obj2[prop])) {
return false;
}
}
else {
return false;
}
}
}
return true;
}
exports.objectIsIdentical = objectIsIdentical;
function objectContains(objet, search) {
if (isNullOrUndef(objet) || stringIsNullOrEmpty(search)) {
return false;
}
if (typeof objet === 'object') {
for (var item in objet) {
if (objectContains(objet[item], search)) {
return true;
}
}
}
else if (objet.toString().indexOf(search) >= 0) {
return true;
}
return false;
}
exports.objectContains = objectContains;
function addZeroBeforeNumber(nombre, tailleMin) {
var result = nombre.toString();
while (result.length < tailleMin) {
result = '0' + result;
}
return result;
}
exports.addZeroBeforeNumber = addZeroBeforeNumber;
function formatDate(date) {
moment_1.default.locale('fr');
return isNullOrUndef(date) ? null : (0, moment_1.default)(date).format('DD/MM/YYYY');
}
exports.formatDate = formatDate;
function isBissextile(annee) {
if (annee % 400 === 0) {
return true;
}
if (annee % 100 === 0) {
return false;
}
if (annee % 4 === 0) {
return true;
}
return false;
}
exports.isBissextile = isBissextile;
function jourDuMois(mois, annee, moisBase0) {
if (moisBase0 === void 0) { moisBase0 = false; }
var fevrier = isBissextile(annee) ? 29 : 28;
switch (mois) {
case 0:
return moisBase0 ? 31 : -1;
case 1:
return moisBase0 ? fevrier : 31;
case 2:
return moisBase0 ? 31 : fevrier;
case 3:
return moisBase0 ? 30 : 31;
case 4:
return moisBase0 ? 31 : 30;
case 5:
return moisBase0 ? 30 : 31;
case 6:
return moisBase0 ? 31 : 30;
case 7:
return 31;
case 8:
return moisBase0 ? 30 : 31;
case 9:
return moisBase0 ? 31 : 30;
case 10:
return moisBase0 ? 30 : 31;
case 11:
return moisBase0 ? 31 : 30;
case 12:
return moisBase0 ? -1 : 31;
}
}
exports.jourDuMois = jourDuMois;
function incrementJour(date, increment) {
var annee = date.getFullYear();
var mois = date.getMonth();
var jour = date.getDate() + increment;
var jdm = jourDuMois(mois, annee, true);
while (jour < 1) {
if (mois < 1) {
mois = 11;
annee--;
}
else {
mois--;
}
jdm = jourDuMois(mois, annee, true);
jour += jdm;
}
while (jour > jdm) {
if (mois > 10) {
mois = 0;
annee++;
}
else {
mois++;
}
jour -= jdm;
jdm = jourDuMois(mois, annee, true);
}
return new Date(annee, mois, jour);
}
exports.incrementJour = incrementJour;
function ConvertToDate(date) {
if (stringIsNullOrEmpty(date)) {
return null;
}
date = date.trim();
var jourMoisAnnee = [];
var nbPas = 0;
for (var idx = 0; idx < date.length; idx++) {
var car = date[idx];
if (['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'].indexOf(car) >= 0) {
var nb = Number(car);
if (nbPas === 0) {
jourMoisAnnee.push(nb);
}
else {
jourMoisAnnee[jourMoisAnnee.length - 1] = jourMoisAnnee[jourMoisAnnee.length - 1] * 10 + nb;
}
if (jourMoisAnnee.length < 3 && nbPas === 1) {
nbPas = 0;
}
else {
nbPas++;
}
}
else {
if (['/', '-', '.', ' '].indexOf(car) >= 0) {
nbPas = 0;
}
else {
return null;
}
}
}
if (jourMoisAnnee.length !== 3 ||
(jourMoisAnnee[2] > 99 && jourMoisAnnee[2] < 1850) ||
jourMoisAnnee[1] < 1 ||
jourMoisAnnee[1] > 12 ||
jourMoisAnnee[0] < 1 ||
jourMoisAnnee[0] > jourDuMois(jourMoisAnnee[1], jourMoisAnnee[2])) {
return null;
}
if (jourMoisAnnee[2] <= 99) {
var anneeEnCours = new Date().getFullYear();
var anneeLimite = anneeEnCours % 100;
jourMoisAnnee[2] = anneeEnCours - anneeLimite + jourMoisAnnee[2] - (jourMoisAnnee[2] > anneeLimite ? 100 : 0);
}
return new Date(jourMoisAnnee[2], jourMoisAnnee[1] - 1, jourMoisAnnee[0]);
}
exports.ConvertToDate = ConvertToDate;
var setTimeOutWithPause = function (callback, delay) {
var timerId, start, remaining = delay;
this.pause = function () {
window.clearTimeout(timerId);
remaining -= Date.now() - start;
};
this.resume = function () {
start = Date.now();
window.clearTimeout(timerId);
timerId = window.setTimeout(callback, remaining);
};
this.clearTimeout = function () {
window.clearTimeout(timerId);
};
this.resume();
};
exports.setTimeOutWithPause = setTimeOutWithPause;
var isNumeric = function (data) { return /^\d+$/.test(data); };
exports.isNumeric = isNumeric;
var isMobileDevice = function () {
if (navigator.userAgent.match(/Android/i) ||
navigator.userAgent.match(/webOS/i) ||
navigator.userAgent.match(/iPhone/i) ||
navigator.userAgent.match(/iPod/i)) {
return true;
}
return false;
};
exports.isMobileDevice = isMobileDevice;
//# sourceMappingURL=helpers.js.map