: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
// Fallback for modularized imports:
/* harmony default export */ const date_fns_constructFrom = ((/* unused pure expression or super */ null && (constructFrom_constructFrom)));
;// CONCATENATED MODULE: ./node_modules/date-fns/addMonths.mjs
* @category Month Helpers
* @summary Add the specified number of months to the given date.
* Add the specified number of months to the given date.
* @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
* @param date - The date to be changed
* @param amount - The amount of months to be added.
* @returns The new date with the months added
* // Add 5 months to 1 September 2014:
* const result = addMonths(new Date(2014, 8, 1), 5)
* //=> Sun Feb 01 2015 00:00:00
* // Add one month to 30 January 2023:
* const result = addMonths(new Date(2023, 0, 30), 1)
* //=> Tue Feb 28 2023 00:00:00
function addMonths_addMonths(date, amount) {
const _date = toDate_toDate(date);
if (isNaN(amount)) return constructFrom_constructFrom(date, NaN);
// If 0 months, no-op to avoid changing times in the hour before end of DST
const dayOfMonth = _date.getDate();
// The JS Date object supports date math by accepting out-of-bounds values for
// month, day, etc. For example, new Date(2020, 0, 0) returns 31 Dec 2019 and
// new Date(2020, 13, 1) returns 1 Feb 2021. This is *almost* the behavior we
// want except that dates will wrap around the end of a month, meaning that
// new Date(2020, 13, 31) will return 3 Mar 2021 not 28 Feb 2021 as desired. So
// we'll default to the end of the desired month by adding 1 to the desired
// month and using a date of 0 to back up one day to the end of the desired
const endOfDesiredMonth = constructFrom_constructFrom(date, _date.getTime());
endOfDesiredMonth.setMonth(_date.getMonth() + amount + 1, 0);
const daysInMonth = endOfDesiredMonth.getDate();
if (dayOfMonth >= daysInMonth) {
// If we're already at the end of the month, then this is the correct date
return endOfDesiredMonth;
// Otherwise, we now know that setting the original day-of-month value won't
// cause an overflow, so set the desired day-of-month. Note that we can't
// just set the date of `endOfDesiredMonth` because that object may have had
// its time changed in the unusual case where where a DST transition was on
// the last day of the month and its local time was in the hour skipped or
// repeated next to a DST transition. So we use `date` instead which is
// guaranteed to still have the original time.
endOfDesiredMonth.getFullYear(),
endOfDesiredMonth.getMonth(),
// Fallback for modularized imports:
/* harmony default export */ const date_fns_addMonths = ((/* unused pure expression or super */ null && (addMonths_addMonths)));
;// CONCATENATED MODULE: ./node_modules/date-fns/subMonths.mjs
* @category Month Helpers
* @summary Subtract the specified number of months from the given date.
* Subtract the specified number of months from the given date.
* @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
* @param date - The date to be changed
* @param amount - The amount of months to be subtracted.
* @returns The new date with the months subtracted
* // Subtract 5 months from 1 February 2015:
* const result = subMonths(new Date(2015, 1, 1), 5)
* //=> Mon Sep 01 2014 00:00:00
function subMonths_subMonths(date, amount) {
return addMonths_addMonths(date, -amount);
// Fallback for modularized imports:
/* harmony default export */ const date_fns_subMonths = ((/* unused pure expression or super */ null && (subMonths_subMonths)));
;// CONCATENATED MODULE: ./node_modules/date-fns/locale/en-US/_lib/formatDistance.mjs
const formatDistanceLocale = {
one: "less than a second",
other: "less than {{count}} seconds",
other: "{{count}} seconds",
halfAMinute: "half a minute",
one: "less than a minute",
other: "less than {{count}} minutes",
other: "{{count}} minutes",
other: "about {{count}} hours",
other: "{{count}} hours",
other: "about {{count}} weeks",
other: "{{count}} weeks",
other: "about {{count}} months",
other: "{{count}} months",
other: "about {{count}} years",
other: "{{count}} years",
other: "over {{count}} years",
other: "almost {{count}} years",
const formatDistance = (token, count, options) => {
const tokenValue = formatDistanceLocale[token];
if (typeof tokenValue === "string") {
} else if (count === 1) {
result = tokenValue.other.replace("{{count}}", count.toString());
if (options?.addSuffix) {
if (options.comparison && options.comparison > 0) {
;// CONCATENATED MODULE: ./node_modules/date-fns/locale/_lib/buildFormatLongFn.mjs
function buildFormatLongFn(args) {
return (options = {}) => {
const width = options.width ? String(options.width) : args.defaultWidth;
const format = args.formats[width] || args.formats[args.defaultWidth];
;// CONCATENATED MODULE: ./node_modules/date-fns/locale/en-US/_lib/formatLong.mjs
full: "EEEE, MMMM do, y",
const dateTimeFormats = {
full: "{{date}} 'at' {{time}}",
long: "{{date}} 'at' {{time}}",
medium: "{{date}}, {{time}}",
short: "{{date}}, {{time}}",
date: buildFormatLongFn({
time: buildFormatLongFn({
dateTime: buildFormatLongFn({
formats: dateTimeFormats,
;// CONCATENATED MODULE: ./node_modules/date-fns/locale/en-US/_lib/formatRelative.mjs
const formatRelativeLocale = {
lastWeek: "'last' eeee 'at' p",
yesterday: "'yesterday at' p",
tomorrow: "'tomorrow at' p",
const formatRelative = (token, _date, _baseDate, _options) =>
formatRelativeLocale[token];
;// CONCATENATED MODULE: ./node_modules/date-fns/locale/_lib/buildLocalizeFn.mjs
/* eslint-disable no-unused-vars */
* The localize function argument callback which allows to convert raw value to
* @param value - The value to convert
* @returns The converted value
* The map of localized values for each width.
* The index type of the locale unit value. It types conversion of units of
* values that don't start at 0 (i.e. quarters).
* Converts the unit value to the tuple of values.
* The tuple of localized era values. The first element represents BC,
* the second element represents AD.
* The tuple of localized quarter values. The first element represents Q1.
* The tuple of localized day values. The first element represents Sunday.
* The tuple of localized month values. The first element represents January.
function buildLocalizeFn(args) {
return (value, options) => {
const context = options?.context ? String(options.context) : "standalone";
if (context === "formatting" && args.formattingValues) {
const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;
const width = options?.width ? String(options.width) : defaultWidth;
args.formattingValues[width] || args.formattingValues[defaultWidth];
const defaultWidth = args.defaultWidth;
const width = options?.width ? String(options.width) : args.defaultWidth;
valuesArray = args.values[width] || args.values[defaultWidth];
const index = args.argumentCallback ? args.argumentCallback(value) : value;
// @ts-expect-error - For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!
return valuesArray[index];
;// CONCATENATED MODULE: ./node_modules/date-fns/locale/en-US/_lib/localize.mjs
abbreviated: ["BC", "AD"],
wide: ["Before Christ", "Anno Domini"],
narrow: ["1", "2", "3", "4"],
abbreviated: ["Q1", "Q2", "Q3", "Q4"],
wide: ["1st quarter", "2nd quarter", "3rd quarter", "4th quarter"],
// Note: in English, the names of days of the week and months are capitalized.
// If you are making a new locale based on this one, check if the same is true for the language you're working on.
// Generally, formatted dates should look like they are in the middle of a sentence,
// e.g. in Spanish language the weekdays and months should be in the lowercase.
narrow: ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"],
narrow: ["S", "M", "T", "W", "T", "F", "S"],
short: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
abbreviated: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
const dayPeriodValues = {
const formattingDayPeriodValues = {
morning: "in the morning",
afternoon: "in the afternoon",
evening: "in the evening",
morning: "in the morning",
afternoon: "in the afternoon",
evening: "in the evening",
morning: "in the morning",
afternoon: "in the afternoon",
evening: "in the evening",
const ordinalNumber = (dirtyNumber, _options) => {
const number = Number(dirtyNumber);
// If ordinal numbers depend on context, for example,
// if they are different for different grammatical genders,
// `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',
// 'day', 'hour', 'minute', 'second'.
const rem100 = number % 100;
if (rem100 > 20 || rem100 < 10) {