mirror of
https://github.com/DanielnetoDotCom/YouPHPTube
synced 2025-10-04 02:09:22 +02:00
Show a report for total users chart
This commit is contained in:
parent
794938db72
commit
4d064adf1b
5397 changed files with 313100 additions and 365 deletions
171
node_modules/date-fns/parse/_lib/utils.cjs
generated
vendored
Normal file
171
node_modules/date-fns/parse/_lib/utils.cjs
generated
vendored
Normal file
|
@ -0,0 +1,171 @@
|
|||
"use strict";
|
||||
exports.dayPeriodEnumToHours = dayPeriodEnumToHours;
|
||||
exports.isLeapYearIndex = isLeapYearIndex;
|
||||
exports.mapValue = mapValue;
|
||||
exports.normalizeTwoDigitYear = normalizeTwoDigitYear;
|
||||
exports.parseAnyDigitsSigned = parseAnyDigitsSigned;
|
||||
exports.parseNDigits = parseNDigits;
|
||||
exports.parseNDigitsSigned = parseNDigitsSigned;
|
||||
exports.parseNumericPattern = parseNumericPattern;
|
||||
exports.parseTimezonePattern = parseTimezonePattern;
|
||||
var _index = require("../../constants.cjs");
|
||||
|
||||
var _constants = require("./constants.cjs");
|
||||
|
||||
function mapValue(parseFnResult, mapFn) {
|
||||
if (!parseFnResult) {
|
||||
return parseFnResult;
|
||||
}
|
||||
|
||||
return {
|
||||
value: mapFn(parseFnResult.value),
|
||||
rest: parseFnResult.rest,
|
||||
};
|
||||
}
|
||||
|
||||
function parseNumericPattern(pattern, dateString) {
|
||||
const matchResult = dateString.match(pattern);
|
||||
|
||||
if (!matchResult) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return {
|
||||
value: parseInt(matchResult[0], 10),
|
||||
rest: dateString.slice(matchResult[0].length),
|
||||
};
|
||||
}
|
||||
|
||||
function parseTimezonePattern(pattern, dateString) {
|
||||
const matchResult = dateString.match(pattern);
|
||||
|
||||
if (!matchResult) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// Input is 'Z'
|
||||
if (matchResult[0] === "Z") {
|
||||
return {
|
||||
value: 0,
|
||||
rest: dateString.slice(1),
|
||||
};
|
||||
}
|
||||
|
||||
const sign = matchResult[1] === "+" ? 1 : -1;
|
||||
const hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;
|
||||
const minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;
|
||||
const seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;
|
||||
|
||||
return {
|
||||
value:
|
||||
sign *
|
||||
(hours * _index.millisecondsInHour +
|
||||
minutes * _index.millisecondsInMinute +
|
||||
seconds * _index.millisecondsInSecond),
|
||||
rest: dateString.slice(matchResult[0].length),
|
||||
};
|
||||
}
|
||||
|
||||
function parseAnyDigitsSigned(dateString) {
|
||||
return parseNumericPattern(
|
||||
_constants.numericPatterns.anyDigitsSigned,
|
||||
dateString,
|
||||
);
|
||||
}
|
||||
|
||||
function parseNDigits(n, dateString) {
|
||||
switch (n) {
|
||||
case 1:
|
||||
return parseNumericPattern(
|
||||
_constants.numericPatterns.singleDigit,
|
||||
dateString,
|
||||
);
|
||||
case 2:
|
||||
return parseNumericPattern(
|
||||
_constants.numericPatterns.twoDigits,
|
||||
dateString,
|
||||
);
|
||||
case 3:
|
||||
return parseNumericPattern(
|
||||
_constants.numericPatterns.threeDigits,
|
||||
dateString,
|
||||
);
|
||||
case 4:
|
||||
return parseNumericPattern(
|
||||
_constants.numericPatterns.fourDigits,
|
||||
dateString,
|
||||
);
|
||||
default:
|
||||
return parseNumericPattern(new RegExp("^\\d{1," + n + "}"), dateString);
|
||||
}
|
||||
}
|
||||
|
||||
function parseNDigitsSigned(n, dateString) {
|
||||
switch (n) {
|
||||
case 1:
|
||||
return parseNumericPattern(
|
||||
_constants.numericPatterns.singleDigitSigned,
|
||||
dateString,
|
||||
);
|
||||
case 2:
|
||||
return parseNumericPattern(
|
||||
_constants.numericPatterns.twoDigitsSigned,
|
||||
dateString,
|
||||
);
|
||||
case 3:
|
||||
return parseNumericPattern(
|
||||
_constants.numericPatterns.threeDigitsSigned,
|
||||
dateString,
|
||||
);
|
||||
case 4:
|
||||
return parseNumericPattern(
|
||||
_constants.numericPatterns.fourDigitsSigned,
|
||||
dateString,
|
||||
);
|
||||
default:
|
||||
return parseNumericPattern(new RegExp("^-?\\d{1," + n + "}"), dateString);
|
||||
}
|
||||
}
|
||||
|
||||
function dayPeriodEnumToHours(dayPeriod) {
|
||||
switch (dayPeriod) {
|
||||
case "morning":
|
||||
return 4;
|
||||
case "evening":
|
||||
return 17;
|
||||
case "pm":
|
||||
case "noon":
|
||||
case "afternoon":
|
||||
return 12;
|
||||
case "am":
|
||||
case "midnight":
|
||||
case "night":
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
function normalizeTwoDigitYear(twoDigitYear, currentYear) {
|
||||
const isCommonEra = currentYear > 0;
|
||||
// Absolute number of the current year:
|
||||
// 1 -> 1 AC
|
||||
// 0 -> 1 BC
|
||||
// -1 -> 2 BC
|
||||
const absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;
|
||||
|
||||
let result;
|
||||
if (absCurrentYear <= 50) {
|
||||
result = twoDigitYear || 100;
|
||||
} else {
|
||||
const rangeEnd = absCurrentYear + 50;
|
||||
const rangeEndCentury = Math.trunc(rangeEnd / 100) * 100;
|
||||
const isPreviousCentury = twoDigitYear >= rangeEnd % 100;
|
||||
result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);
|
||||
}
|
||||
|
||||
return isCommonEra ? result : 1 - result;
|
||||
}
|
||||
|
||||
function isLeapYearIndex(year) {
|
||||
return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue