nsrtm-gestionarchivo-npm-prueba2
Version:
Proyecto de Libreria Frontend para la Gestión de Archivos
118 lines • 13.4 kB
JavaScript
import * as moment from 'moment';
export const parseStringDate = ({ year, month, day, }) => {
if (typeof year !== 'number' ||
typeof month !== 'number' ||
typeof day !== 'number')
return '';
const _day = getNumberWithZero(day);
const _month = getNumberWithZero(month);
return `${year}-${_month}-${_day}`;
};
export const getNumberWithZero = (n) => {
return n < 10 && n.toString().length === 1 ? `0${n}` : n;
};
/**
*
* @param strDate formato fecha, yyyy-mm-dd
* @returns
*/
export const toNgDateStruct = (strDate) => {
const [date] = strDate.split(' ');
const [year, month, day] = date.split('-');
return {
year: Number(year),
month: Number(month),
day: Number(day),
};
};
/**
*
* @param strDate formato fecha, dd/mm/yyyy
* @returns
*/
export const dateToNgDateStruct = (strDate) => {
const [day, month, year] = strDate.split('/');
return {
year: Number(year),
month: Number(month),
day: Number(day),
};
};
/**
* Retorna la fecha actual en el tipo de dato NgbDateStruct
* @returns NgbDateStruct
*/
export const getTodayNgbDateStruct = () => {
const today = new Date();
return {
day: today.getDate(),
month: today.getMonth() + 1,
year: today.getFullYear(),
};
};
/**
* Retorna la fecha actual en el tipo de dato NgbDateStruct
* @returns NgbDateStruct
*/
export const getMinDateNgbDateStruct = () => {
return {
day: 1,
month: 1,
year: 1900,
};
};
export const toParseNgDateStruct = (date) => {
if (!moment(date).isValid())
return null;
const mDate = moment(date);
return { day: mDate.date(), month: mDate.month() + 1, year: mDate.year() };
};
export const esTipoNgbDateStruct = (date) => {
if (!date || typeof date !== 'object') {
return false;
}
return 'year' in date && 'month' in date && 'day' in date;
};
export const todayDate = () => {
const today = new Date();
today.setHours(0);
today.setMinutes(0);
today.setSeconds(0);
today.setMilliseconds(0);
return today;
};
/**
*
* @param strDate
* @returns
*/
export const setDateNgStruct = (strDate) => {
let momentDate = null;
if (!strDate) {
momentDate = moment();
return {
year: momentDate.year(),
month: momentDate.month() + 1,
day: momentDate.date(),
};
}
momentDate = moment(strDate);
return {
year: parseInt(momentDate.format('YYYY')),
month: parseInt(momentDate.format('MM')),
day: parseInt(momentDate.format('DD')),
};
};
// Verifica si la fecha es menor a la fecha actual
// month: 0.....11 0: Enero 11:Diciembre
export const esMenorFechaActual = (day, month, year) => {
const startDate = new Date(year, month, day, 0, 0, 0);
const today = todayDate();
return startDate.getTime() < today.getTime();
};
export const parseStringDateFormatUser = ({ year, month, day, }) => {
const _day = getNumberWithZero(day);
const _month = getNumberWithZero(month);
return `${_day}/${_month}/${year}`;
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9hcmNoaXZvL25zcnRtLWdlc3Rpb25hcmNoaXZvLW5wbS9zcmMvYXBwL3V0aWxzL2NhbGVuZGFyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBUWpDLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLEVBQy9CLElBQUksRUFDSixLQUFLLEVBQ0wsR0FBRyxHQUNZLEVBQVUsRUFBRTtJQUMzQixJQUNDLE9BQU8sSUFBSSxLQUFLLFFBQVE7UUFDeEIsT0FBTyxLQUFLLEtBQUssUUFBUTtRQUN6QixPQUFPLEdBQUcsS0FBSyxRQUFRO1FBRXZCLE9BQU8sRUFBRSxDQUFDO0lBRVgsTUFBTSxJQUFJLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDcEMsTUFBTSxNQUFNLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEMsT0FBTyxHQUFHLElBQUksSUFBSSxNQUFNLElBQUksSUFBSSxFQUFFLENBQUM7QUFDcEMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxDQUFTLEVBQUUsRUFBRTtJQUM5QyxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMxRCxDQUFDLENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsT0FBZSxFQUFpQixFQUFFO0lBQ2hFLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxF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Q0FBQyxDQUFDO0lBQ3BDLE1BQU0sTUFBTSxHQUFHLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hDLE9BQU8sR0FBRyxJQUFJLElBQUksTUFBTSxJQUFJLElBQUksRUFBRSxDQUFDO0FBQ3BDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nYkRhdGVTdHJ1Y3QgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCAqIGFzIG1vbWVudCBmcm9tICdtb21lbnQnO1xyXG5cclxuZXhwb3J0IHR5cGUgSURhdGVKc29uID0ge1xyXG5cdHllYXI6IG51bWJlcjtcclxuXHRtb250aDogbnVtYmVyO1xyXG5cdGRheTogbnVtYmVyO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IHBhcnNlU3RyaW5nRGF0ZSA9ICh7XHJcblx0eWVhcixcclxuXHRtb250aCxcclxuXHRkYXksXHJcbn06IE5nYkRhdGVTdHJ1Y3QpOiBzdHJpbmcgPT4ge1xyXG5cdGlmIChcclxuXHRcdHR5cGVvZiB5ZWFyICE9PSAnbnVtYmVyJyB8fFxyXG5cdFx0dHlwZW9mIG1vbnRoICE9PSAnbnVtYmVyJyB8fFxyXG5cdFx0dHlwZW9mIGRheSAhPT0gJ251bWJlcidcclxuXHQpXHJcblx0XHRyZXR1cm4gJyc7XHJcblxyXG5cdGNvbnN0IF9kYXkgPSBnZXROdW1iZXJXaXRoWmVybyhkYXkpO1xyXG5cdGNvbnN0IF9tb250aCA9IGdldE51bWJlcldpdGhaZXJvKG1vbnRoKTtcclxuXHRyZXR1cm4gYCR7eWVhcn0tJHtfbW9udGh9LSR7X2RheX1gO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGdldE51bWJlcldpdGhaZXJvID0gKG46IG51bWJlcikgPT4ge1xyXG5cdHJldHVybiBuIDwgMTAgJiYgbi50b1N0cmluZygpLmxlbmd0aCA9PT0gMSA/IGAwJHtufWAgOiBuO1xyXG59O1xyXG5cclxuLyoqXHJcbiAqXHJcbiAqIEBwYXJhbSBzdHJEYXRlIGZvcm1hdG8gZmVjaGEsIHl5eXktbW0tZGRcclxuICogQHJldHVybnNcclxuICovXHJcbmV4cG9ydCBjb25zdCB0b05nRGF0ZVN0cnVjdCA9IChzdHJEYXRlOiBzdHJpbmcpOiBOZ2JEYXRlU3RydWN0ID0+IHtcclxuXHRjb25zdCBbZGF0ZV0gPSBzdHJEYXRlLnNwbGl0KCcgJyk7XHJcblx0Y29uc3QgW3llYXIsIG1vbnRoLCBkYXldID0gZGF0ZS5zcGxpdCgnLScpO1xyXG5cdHJldHVybiB7XHJcblx0XHR5ZWFyOiBOdW1iZXIoeWVhciksXHJcblx0XHRtb250aDogTnVtYmVyKG1vbnRoKSxcclxuXHRcdGRheTogTnVtYmVyKGRheSksXHJcblx0fTtcclxufTtcclxuXHJcbi8qKlxyXG4gKlxyXG4gKiBAcGFyYW0gc3RyRGF0ZSBmb3JtYXRvIGZlY2hhLCBkZC9tbS95eXl5XHJcbiAqIEByZXR1cm5zXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgZGF0ZVRvTmdEYXRlU3RydWN0ID0gKHN0ckRhdGU6IHN0cmluZyk6IE5nYkRhdGVTdHJ1Y3QgPT4ge1xyXG5cdGNvbnN0IFtkYXksIG1vbnRoLCB5ZWFyXSA9IHN0ckRhdGUuc3BsaXQoJy8nKTtcclxuXHRyZXR1cm4ge1xyXG5cdFx0eWVhcjogTnVtYmVyKHllYXIpLFxyXG5cdFx0bW9udGg6IE51bWJlcihtb250aCksXHJcblx0XHRkYXk6IE51bWJlcihkYXkpLFxyXG5cdH07XHJcbn07XHJcblxyXG4vKipcclxuICogUmV0b3JuYSBsYSBmZWNoYSBhY3R1YWwgZW4gZWwgdGlwbyBkZSBkYXRvIE5nYkRhdGVTdHJ1Y3RcclxuICogQHJldHVybnMgTmdiRGF0ZVN0cnVjdFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IGdldFRvZGF5TmdiRGF0ZVN0cnVjdCA9ICgpOiBOZ2JEYXRlU3RydWN0ID0+IHtcclxuXHRjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XHJcblxyXG5cdHJldHVybiB7XHJcblx0XHRkYXk6IHRvZGF5LmdldERhdGUoKSxcclxuXHRcdG1vbnRoOiB0b2RheS5nZXRNb250aCgpICsgMSxcclxuXHRcdHllYXI6IHRvZGF5LmdldEZ1bGxZZWFyKCksXHJcblx0fTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBSZXRvcm5hIGxhIGZlY2hhIGFjdHVhbCBlbiBlbCB0aXBvIGRlIGRhdG8gTmdiRGF0ZVN0cnVjdFxyXG4gKiBAcmV0dXJucyBOZ2JEYXRlU3RydWN0XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgZ2V0TWluRGF0ZU5nYkRhdGVTdHJ1Y3QgPSAoKTogTmdiRGF0ZVN0cnVjdCA9PiB7XHJcblx0cmV0dXJuIHtcclxuXHRcdGRheTogMSxcclxuXHRcdG1vbnRoOiAxLFxyXG5cdFx0eWVhcjogMTkwMCxcclxuXHR9O1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IHRvUGFyc2VOZ0RhdGVTdHJ1Y3QgPSAoZGF0ZTogc3RyaW5nKTogTmdiRGF0ZVN0cnVjdCB8IG51bGwgPT4ge1xyXG5cdGlmICghbW9tZW50KGRhdGUpLmlzVmFsaWQoKSkgcmV0dXJuIG51bGw7XHJcblxyXG5cdGNvbnN0IG1EYXRlID0gbW9tZW50KGRhdGUpO1xyXG5cclxuXHRyZXR1cm4geyBkYXk6IG1EYXRlLmRhdGUoKSwgbW9udGg6IG1EYXRlLm1vbnRoKCkgKyAxLCB5ZWFyOiBtRGF0ZS55ZWFyKCkgfTtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBlc1RpcG9OZ2JEYXRlU3RydWN0ID0gKGRhdGU6IGFueSkgPT4ge1xyXG5cdGlmICghZGF0ZSB8fCB0eXBlb2YgZGF0ZSAhPT0gJ29iamVjdCcpIHtcclxuXHRcdHJldHVybiBmYWxzZTtcclxuXHR9XHJcblxyXG5cdHJldHVybiAneWVhcicgaW4gZGF0ZSAmJiAnbW9udGgnIGluIGRhdGUgJiYgJ2RheScgaW4gZGF0ZTtcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCB0b2RheURhdGUgPSAoKSA9PiB7XHJcblx0Y29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xyXG5cdHRvZGF5LnNldEhvdXJzKDApO1xyXG5cdHRvZGF5LnNldE1pbnV0ZXMoMCk7XHJcblx0dG9kYXkuc2V0U2Vjb25kcygwKTtcclxuXHR0b2RheS5zZXRNaWxsaXNlY29uZHMoMCk7XHJcblxyXG5cdHJldHVybiB0b2RheTtcclxufTtcclxuXHJcbi8qKlxyXG4gKlxyXG4gKiBAcGFyYW0gc3RyRGF0ZVxyXG4gKiBAcmV0dXJuc1xyXG4gKi9cclxuZXhwb3J0IGNvbnN0IHNldERhdGVOZ1N0cnVjdCA9IChzdHJEYXRlOiBzdHJpbmcpOiBOZ2JEYXRlU3RydWN0ID0+IHtcclxuXHRsZXQgbW9tZW50RGF0ZSA9IG51bGw7XHJcblx0aWYgKCFzdHJEYXRlKSB7XHJcblx0XHRtb21lbnREYXRlID0gbW9tZW50KCk7XHJcblx0XHRyZXR1cm4ge1xyXG5cdFx0XHR5ZWFyOiBtb21lbnREYXRlLnllYXIoKSxcclxuXHRcdFx0bW9udGg6IG1vbWVudERhdGUubW9udGgoKSArIDEsXHJcblx0XHRcdGRheTogbW9tZW50RGF0ZS5kYXRlKCksXHJcblx0XHR9O1xyXG5cdH1cclxuXHRtb21lbnREYXRlID0gbW9tZW50KHN0ckRhdGUpO1xyXG5cdHJldHVybiB7XHJcblx0XHR5ZWFyOiBwYXJzZUludChtb21lbnREYXRlLmZvcm1hdCgnWVlZWScpKSxcclxuXHRcdG1vbnRoOiBwYXJzZUludChtb21lbnREYXRlLmZvcm1hdCgnTU0nKSksXHJcblx0XHRkYXk6IHBhcnNlSW50KG1vbWVudERhdGUuZm9ybWF0KCdERCcpKSxcclxuXHR9O1xyXG59O1xyXG5cclxuLy8gVmVyaWZpY2Egc2kgbGEgZmVjaGEgZXMgbWVub3IgYSBsYSBmZWNoYSBhY3R1YWxcclxuLy8gbW9udGg6IDAuLi4uLjExIDA6IEVuZXJvIDExOkRpY2llbWJyZVxyXG5leHBvcnQgY29uc3QgZXNNZW5vckZlY2hhQWN0dWFsID0gKFxyXG5cdGRheTogbnVtYmVyLFxyXG5cdG1vbnRoOiBudW1iZXIsXHJcblx0eWVhcjogbnVtYmVyXHJcbikgPT4ge1xyXG5cdGNvbnN0IHN0YXJ0RGF0ZSA9IG5ldyBEYXRlKHllYXIsIG1vbnRoLCBkYXksIDAsIDAsIDApO1xyXG5cdGNvbnN0IHRvZGF5ID0gdG9kYXlEYXRlKCk7XHJcblxyXG5cdHJldHVybiBzdGFydERhdGUuZ2V0VGltZSgpIDwgdG9kYXkuZ2V0VGltZSgpO1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IHBhcnNlU3RyaW5nRGF0ZUZvcm1hdFVzZXIgPSAoe1xyXG5cdHllYXIsXHJcblx0bW9udGgsXHJcblx0ZGF5LFxyXG59OiBJRGF0ZUpzb24pOiBzdHJpbmcgPT4ge1xyXG5cdGNvbnN0IF9kYXkgPSBnZXROdW1iZXJXaXRoWmVybyhkYXkpO1xyXG5cdGNvbnN0IF9tb250aCA9IGdldE51bWJlcldpdGhaZXJvKG1vbnRoKTtcclxuXHRyZXR1cm4gYCR7X2RheX0vJHtfbW9udGh9LyR7eWVhcn1gO1xyXG59O1xyXG4iXX0=