import { a6 as CurrencyType, a as Ctx, a7 as ItemType, a8 as Spinner, a9 as SpinnerStyle, T as Trans, aa as GameHelper, ab as PurchaseHelper, a3 as Dialog, t, a4 as DialogBody, A as ArrowIcon, e as ArrowIconStyles, a5 as DialogFooter, g as AccPath, f as Button } from "./index.js";
import { c as classNames } from "./reactSlick.js";
import React__default from "react";
import { Link } from "react-router-dom";
var MILLISECONDS_IN_MINUTE$6 = 6e4;
var getTimezoneOffsetInMilliseconds$1 = function getTimezoneOffsetInMilliseconds(dirtyDate) {
  var date = new Date(dirtyDate.getTime());
  var baseTimezoneOffset = date.getTimezoneOffset();
  date.setSeconds(0, 0);
  var millisecondsPartOfTimezoneOffset = date.getTime() % MILLISECONDS_IN_MINUTE$6;
  return baseTimezoneOffset * MILLISECONDS_IN_MINUTE$6 + millisecondsPartOfTimezoneOffset;
};
function isDate$2(argument) {
  return argument instanceof Date;
}
var is_date = isDate$2;
var getTimezoneOffsetInMilliseconds2 = getTimezoneOffsetInMilliseconds$1;
var isDate$1 = is_date;
var MILLISECONDS_IN_HOUR$2 = 36e5;
var MILLISECONDS_IN_MINUTE$5 = 6e4;
var DEFAULT_ADDITIONAL_DIGITS = 2;
var parseTokenDateTimeDelimeter = /[T ]/;
var parseTokenPlainTime = /:/;
var parseTokenYY = /^(\d{2})$/;
var parseTokensYYY = [
  /^([+-]\d{2})$/,
  /^([+-]\d{3})$/,
  /^([+-]\d{4})$/
];
var parseTokenYYYY = /^(\d{4})/;
var parseTokensYYYYY = [
  /^([+-]\d{4})/,
  /^([+-]\d{5})/,
  /^([+-]\d{6})/
];
var parseTokenMM = /^-(\d{2})$/;
var parseTokenDDD = /^-?(\d{3})$/;
var parseTokenMMDD = /^-?(\d{2})-?(\d{2})$/;
var parseTokenWww = /^-?W(\d{2})$/;
var parseTokenWwwD = /^-?W(\d{2})-?(\d{1})$/;
var parseTokenHH = /^(\d{2}([.,]\d*)?)$/;
var parseTokenHHMM = /^(\d{2}):?(\d{2}([.,]\d*)?)$/;
var parseTokenHHMMSS = /^(\d{2}):?(\d{2}):?(\d{2}([.,]\d*)?)$/;
var parseTokenTimezone = /([Z+-].*)$/;
var parseTokenTimezoneZ = /^(Z)$/;
var parseTokenTimezoneHH = /^([+-])(\d{2})$/;
var parseTokenTimezoneHHMM = /^([+-])(\d{2}):?(\d{2})$/;
function parse$1q(argument, dirtyOptions) {
  if (isDate$1(argument)) {
    return new Date(argument.getTime());
  } else if (typeof argument !== "string") {
    return new Date(argument);
  }
  var options = dirtyOptions || {};
  var additionalDigits = options.additionalDigits;
  if (additionalDigits == null) {
    additionalDigits = DEFAULT_ADDITIONAL_DIGITS;
  } else {
    additionalDigits = Number(additionalDigits);
  }
  var dateStrings = splitDateString(argument);
  var parseYearResult = parseYear(dateStrings.date, additionalDigits);
  var year = parseYearResult.year;
  var restDateString = parseYearResult.restDateString;
  var date = parseDate(restDateString, year);
  if (date) {
    var timestamp = date.getTime();
    var time = 0;
    var offset;
    if (dateStrings.time) {
      time = parseTime(dateStrings.time);
    }
    if (dateStrings.timezone) {
      offset = parseTimezone(dateStrings.timezone) * MILLISECONDS_IN_MINUTE$5;
    } else {
      var fullTime = timestamp + time;
      var fullTimeDate = new Date(fullTime);
      offset = getTimezoneOffsetInMilliseconds2(fullTimeDate);
      var fullTimeDateNextDay = new Date(fullTime);
      fullTimeDateNextDay.setDate(fullTimeDate.getDate() + 1);
      var offsetDiff = getTimezoneOffsetInMilliseconds2(fullTimeDateNextDay) - getTimezoneOffsetInMilliseconds2(fullTimeDate);
      if (offsetDiff > 0) {
        offset += offsetDiff;
      }
    }
    return new Date(timestamp + time + offset);
  } else {
    return new Date(argument);
  }
}
function splitDateString(dateString) {
  var dateStrings = {};
  var array = dateString.split(parseTokenDateTimeDelimeter);
  var timeString;
  if (parseTokenPlainTime.test(array[0])) {
    dateStrings.date = null;
    timeString = array[0];
  } else {
    dateStrings.date = array[0];
    timeString = array[1];
  }
  if (timeString) {
    var token = parseTokenTimezone.exec(timeString);
    if (token) {
      dateStrings.time = timeString.replace(token[1], "");
      dateStrings.timezone = token[1];
    } else {
      dateStrings.time = timeString;
    }
  }
  return dateStrings;
}
function parseYear(dateString, additionalDigits) {
  var parseTokenYYY = parseTokensYYY[additionalDigits];
  var parseTokenYYYYY = parseTokensYYYYY[additionalDigits];
  var token;
  token = parseTokenYYYY.exec(dateString) || parseTokenYYYYY.exec(dateString);
  if (token) {
    var yearString = token[1];
    return {
      year: parseInt(yearString, 10),
      restDateString: dateString.slice(yearString.length)
    };
  }
  token = parseTokenYY.exec(dateString) || parseTokenYYY.exec(dateString);
  if (token) {
    var centuryString = token[1];
    return {
      year: parseInt(centuryString, 10) * 100,
      restDateString: dateString.slice(centuryString.length)
    };
  }
  return {
    year: null
  };
}
function parseDate(dateString, year) {
  if (year === null) {
    return null;
  }
  var token;
  var date;
  var month;
  var week;
  if (dateString.length === 0) {
    date = new Date(0);
    date.setUTCFullYear(year);
    return date;
  }
  token = parseTokenMM.exec(dateString);
  if (token) {
    date = new Date(0);
    month = parseInt(token[1], 10) - 1;
    date.setUTCFullYear(year, month);
    return date;
  }
  token = parseTokenDDD.exec(dateString);
  if (token) {
    date = new Date(0);
    var dayOfYear = parseInt(token[1], 10);
    date.setUTCFullYear(year, 0, dayOfYear);
    return date;
  }
  token = parseTokenMMDD.exec(dateString);
  if (token) {
    date = new Date(0);
    month = parseInt(token[1], 10) - 1;
    var day = parseInt(token[2], 10);
    date.setUTCFullYear(year, month, day);
    return date;
  }
  token = parseTokenWww.exec(dateString);
  if (token) {
    week = parseInt(token[1], 10) - 1;
    return dayOfISOYear(year, week);
  }
  token = parseTokenWwwD.exec(dateString);
  if (token) {
    week = parseInt(token[1], 10) - 1;
    var dayOfWeek = parseInt(token[2], 10) - 1;
    return dayOfISOYear(year, week, dayOfWeek);
  }
  return null;
}
function parseTime(timeString) {
  var token;
  var hours;
  var minutes;
  token = parseTokenHH.exec(timeString);
  if (token) {
    hours = parseFloat(token[1].replace(",", "."));
    return hours % 24 * MILLISECONDS_IN_HOUR$2;
  }
  token = parseTokenHHMM.exec(timeString);
  if (token) {
    hours = parseInt(token[1], 10);
    minutes = parseFloat(token[2].replace(",", "."));
    return hours % 24 * MILLISECONDS_IN_HOUR$2 + minutes * MILLISECONDS_IN_MINUTE$5;
  }
  token = parseTokenHHMMSS.exec(timeString);
  if (token) {
    hours = parseInt(token[1], 10);
    minutes = parseInt(token[2], 10);
    var seconds = parseFloat(token[3].replace(",", "."));
    return hours % 24 * MILLISECONDS_IN_HOUR$2 + minutes * MILLISECONDS_IN_MINUTE$5 + seconds * 1e3;
  }
  return null;
}
function parseTimezone(timezoneString) {
  var token;
  var absoluteOffset;
  token = parseTokenTimezoneZ.exec(timezoneString);
  if (token) {
    return 0;
  }
  token = parseTokenTimezoneHH.exec(timezoneString);
  if (token) {
    absoluteOffset = parseInt(token[2], 10) * 60;
    return token[1] === "+" ? -absoluteOffset : absoluteOffset;
  }
  token = parseTokenTimezoneHHMM.exec(timezoneString);
  if (token) {
    absoluteOffset = parseInt(token[2], 10) * 60 + parseInt(token[3], 10);
    return token[1] === "+" ? -absoluteOffset : absoluteOffset;
  }
  return 0;
}
function dayOfISOYear(isoYear, week, day) {
  week = week || 0;
  day = day || 0;
  var date = new Date(0);
  date.setUTCFullYear(isoYear, 0, 4);
  var fourthOfJanuaryDay = date.getUTCDay() || 7;
  var diff = week * 7 + day + 1 - fourthOfJanuaryDay;
  date.setUTCDate(date.getUTCDate() + diff);
  return date;
}
var parse_1 = parse$1q;
var parse$1p = parse_1;
function addDays$4(dirtyDate, dirtyAmount) {
  var date = parse$1p(dirtyDate);
  var amount = Number(dirtyAmount);
  date.setDate(date.getDate() + amount);
  return date;
}
var add_days = addDays$4;
var parse$1o = parse_1;
function addMilliseconds$4(dirtyDate, dirtyAmount) {
  var timestamp = parse$1o(dirtyDate).getTime();
  var amount = Number(dirtyAmount);
  return new Date(timestamp + amount);
}
var add_milliseconds = addMilliseconds$4;
var addMilliseconds$3 = add_milliseconds;
var MILLISECONDS_IN_HOUR$1 = 36e5;
function addHours$1(dirtyDate, dirtyAmount) {
  var amount = Number(dirtyAmount);
  return addMilliseconds$3(dirtyDate, amount * MILLISECONDS_IN_HOUR$1);
}
var add_hours = addHours$1;
var parse$1n = parse_1;
function startOfWeek$3(dirtyDate, dirtyOptions) {
  var weekStartsOn = dirtyOptions ? Number(dirtyOptions.weekStartsOn) || 0 : 0;
  var date = parse$1n(dirtyDate);
  var day = date.getDay();
  var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;
  date.setDate(date.getDate() - diff);
  date.setHours(0, 0, 0, 0);
  return date;
}
var start_of_week = startOfWeek$3;
var startOfWeek$2 = start_of_week;
function startOfISOWeek$6(dirtyDate) {
  return startOfWeek$2(dirtyDate, { weekStartsOn: 1 });
}
var start_of_iso_week = startOfISOWeek$6;
var parse$1m = parse_1;
var startOfISOWeek$5 = start_of_iso_week;
function getISOYear$6(dirtyDate) {
  var date = parse$1m(dirtyDate);
  var year = date.getFullYear();
  var fourthOfJanuaryOfNextYear = new Date(0);
  fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);
  fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);
  var startOfNextYear = startOfISOWeek$5(fourthOfJanuaryOfNextYear);
  var fourthOfJanuaryOfThisYear = new Date(0);
  fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);
  fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);
  var startOfThisYear = startOfISOWeek$5(fourthOfJanuaryOfThisYear);
  if (date.getTime() >= startOfNextYear.getTime()) {
    return year + 1;
  } else if (date.getTime() >= startOfThisYear.getTime()) {
    return year;
  } else {
    return year - 1;
  }
}
var get_iso_year = getISOYear$6;
var getISOYear$5 = get_iso_year;
var startOfISOWeek$4 = start_of_iso_week;
function startOfISOYear$4(dirtyDate) {
  var year = getISOYear$5(dirtyDate);
  var fourthOfJanuary = new Date(0);
  fourthOfJanuary.setFullYear(year, 0, 4);
  fourthOfJanuary.setHours(0, 0, 0, 0);
  var date = startOfISOWeek$4(fourthOfJanuary);
  return date;
}
var start_of_iso_year = startOfISOYear$4;
var parse$1l = parse_1;
function startOfDay$6(dirtyDate) {
  var date = parse$1l(dirtyDate);
  date.setHours(0, 0, 0, 0);
  return date;
}
var start_of_day = startOfDay$6;
var startOfDay$5 = start_of_day;
var MILLISECONDS_IN_MINUTE$4 = 6e4;
var MILLISECONDS_IN_DAY$1 = 864e5;
function differenceInCalendarDays$3(dirtyDateLeft, dirtyDateRight) {
  var startOfDayLeft = startOfDay$5(dirtyDateLeft);
  var startOfDayRight = startOfDay$5(dirtyDateRight);
  var timestampLeft = startOfDayLeft.getTime() - startOfDayLeft.getTimezoneOffset() * MILLISECONDS_IN_MINUTE$4;
  var timestampRight = startOfDayRight.getTime() - startOfDayRight.getTimezoneOffset() * MILLISECONDS_IN_MINUTE$4;
  return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_DAY$1);
}
var difference_in_calendar_days = differenceInCalendarDays$3;
var parse$1k = parse_1;
var startOfISOYear$3 = start_of_iso_year;
var differenceInCalendarDays$2 = difference_in_calendar_days;
function setISOYear$1(dirtyDate, dirtyISOYear) {
  var date = parse$1k(dirtyDate);
  var isoYear = Number(dirtyISOYear);
  var diff = differenceInCalendarDays$2(date, startOfISOYear$3(date));
  var fourthOfJanuary = new Date(0);
  fourthOfJanuary.setFullYear(isoYear, 0, 4);
  fourthOfJanuary.setHours(0, 0, 0, 0);
  date = startOfISOYear$3(fourthOfJanuary);
  date.setDate(date.getDate() + diff);
  return date;
}
var set_iso_year = setISOYear$1;
var getISOYear$4 = get_iso_year;
var setISOYear = set_iso_year;
function addISOYears$1(dirtyDate, dirtyAmount) {
  var amount = Number(dirtyAmount);
  return setISOYear(dirtyDate, getISOYear$4(dirtyDate) + amount);
}
var add_iso_years = addISOYears$1;
var addMilliseconds$2 = add_milliseconds;
var MILLISECONDS_IN_MINUTE$3 = 6e4;
function addMinutes$1(dirtyDate, dirtyAmount) {
  var amount = Number(dirtyAmount);
  return addMilliseconds$2(dirtyDate, amount * MILLISECONDS_IN_MINUTE$3);
}
var add_minutes = addMinutes$1;
var parse$1j = parse_1;
function getDaysInMonth$2(dirtyDate) {
  var date = parse$1j(dirtyDate);
  var year = date.getFullYear();
  var monthIndex = date.getMonth();
  var lastDayOfMonth2 = new Date(0);
  lastDayOfMonth2.setFullYear(year, monthIndex + 1, 0);
  lastDayOfMonth2.setHours(0, 0, 0, 0);
  return lastDayOfMonth2.getDate();
}
var get_days_in_month = getDaysInMonth$2;
var parse$1i = parse_1;
var getDaysInMonth$1 = get_days_in_month;
function addMonths$3(dirtyDate, dirtyAmount) {
  var date = parse$1i(dirtyDate);
  var amount = Number(dirtyAmount);
  var desiredMonth = date.getMonth() + amount;
  var dateWithDesiredMonth = new Date(0);
  dateWithDesiredMonth.setFullYear(date.getFullYear(), desiredMonth, 1);
  dateWithDesiredMonth.setHours(0, 0, 0, 0);
  var daysInMonth = getDaysInMonth$1(dateWithDesiredMonth);
  date.setMonth(desiredMonth, Math.min(daysInMonth, date.getDate()));
  return date;
}
var add_months = addMonths$3;
var addMonths$2 = add_months;
function addQuarters$1(dirtyDate, dirtyAmount) {
  var amount = Number(dirtyAmount);
  var months = amount * 3;
  return addMonths$2(dirtyDate, months);
}
var add_quarters = addQuarters$1;
var addMilliseconds$1 = add_milliseconds;
function addSeconds$1(dirtyDate, dirtyAmount) {
  var amount = Number(dirtyAmount);
  return addMilliseconds$1(dirtyDate, amount * 1e3);
}
var add_seconds = addSeconds$1;
var addDays$3 = add_days;
function addWeeks$2(dirtyDate, dirtyAmount) {
  var amount = Number(dirtyAmount);
  var days = amount * 7;
  return addDays$3(dirtyDate, days);
}
var add_weeks = addWeeks$2;
var addMonths$1 = add_months;
function addYears$1(dirtyDate, dirtyAmount) {
  var amount = Number(dirtyAmount);
  return addMonths$1(dirtyDate, amount * 12);
}
var add_years = addYears$1;
var parse$1h = parse_1;
function areRangesOverlapping(dirtyInitialRangeStartDate, dirtyInitialRangeEndDate, dirtyComparedRangeStartDate, dirtyComparedRangeEndDate) {
  var initialStartTime = parse$1h(dirtyInitialRangeStartDate).getTime();
  var initialEndTime = parse$1h(dirtyInitialRangeEndDate).getTime();
  var comparedStartTime = parse$1h(dirtyComparedRangeStartDate).getTime();
  var comparedEndTime = parse$1h(dirtyComparedRangeEndDate).getTime();
  if (initialStartTime > initialEndTime || comparedStartTime > comparedEndTime) {
    throw new Error("The start of the range cannot be after the end of the range");
  }
  return initialStartTime < comparedEndTime && comparedStartTime < initialEndTime;
}
var are_ranges_overlapping = areRangesOverlapping;
var parse$1g = parse_1;
function closestIndexTo(dirtyDateToCompare, dirtyDatesArray) {
  if (!(dirtyDatesArray instanceof Array)) {
    throw new TypeError(toString.call(dirtyDatesArray) + " is not an instance of Array");
  }
  var dateToCompare = parse$1g(dirtyDateToCompare);
  var timeToCompare = dateToCompare.getTime();
  var result;
  var minDistance;
  dirtyDatesArray.forEach(function(dirtyDate, index) {
    var currentDate = parse$1g(dirtyDate);
    var distance = Math.abs(timeToCompare - currentDate.getTime());
    if (result === void 0 || distance < minDistance) {
      result = index;
      minDistance = distance;
    }
  });
  return result;
}
var closest_index_to = closestIndexTo;
var parse$1f = parse_1;
function closestTo(dirtyDateToCompare, dirtyDatesArray) {
  if (!(dirtyDatesArray instanceof Array)) {
    throw new TypeError(toString.call(dirtyDatesArray) + " is not an instance of Array");
  }
  var dateToCompare = parse$1f(dirtyDateToCompare);
  var timeToCompare = dateToCompare.getTime();
  var result;
  var minDistance;
  dirtyDatesArray.forEach(function(dirtyDate) {
    var currentDate = parse$1f(dirtyDate);
    var distance = Math.abs(timeToCompare - currentDate.getTime());
    if (result === void 0 || distance < minDistance) {
      result = currentDate;
      minDistance = distance;
    }
  });
  return result;
}
var closest_to = closestTo;
var parse$1e = parse_1;
function compareAsc$4(dirtyDateLeft, dirtyDateRight) {
  var dateLeft = parse$1e(dirtyDateLeft);
  var timeLeft = dateLeft.getTime();
  var dateRight = parse$1e(dirtyDateRight);
  var timeRight = dateRight.getTime();
  if (timeLeft < timeRight) {
    return -1;
  } else if (timeLeft > timeRight) {
    return 1;
  } else {
    return 0;
  }
}
var compare_asc = compareAsc$4;
var parse$1d = parse_1;
function compareDesc$2(dirtyDateLeft, dirtyDateRight) {
  var dateLeft = parse$1d(dirtyDateLeft);
  var timeLeft = dateLeft.getTime();
  var dateRight = parse$1d(dirtyDateRight);
  var timeRight = dateRight.getTime();
  if (timeLeft > timeRight) {
    return -1;
  } else if (timeLeft < timeRight) {
    return 1;
  } else {
    return 0;
  }
}
var compare_desc = compareDesc$2;
var startOfISOWeek$3 = start_of_iso_week;
var MILLISECONDS_IN_MINUTE$2 = 6e4;
var MILLISECONDS_IN_WEEK$3 = 6048e5;
function differenceInCalendarISOWeeks(dirtyDateLeft, dirtyDateRight) {
  var startOfISOWeekLeft = startOfISOWeek$3(dirtyDateLeft);
  var startOfISOWeekRight = startOfISOWeek$3(dirtyDateRight);
  var timestampLeft = startOfISOWeekLeft.getTime() - startOfISOWeekLeft.getTimezoneOffset() * MILLISECONDS_IN_MINUTE$2;
  var timestampRight = startOfISOWeekRight.getTime() - startOfISOWeekRight.getTimezoneOffset() * MILLISECONDS_IN_MINUTE$2;
  return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_WEEK$3);
}
var difference_in_calendar_iso_weeks = differenceInCalendarISOWeeks;
var getISOYear$3 = get_iso_year;
function differenceInCalendarISOYears$1(dirtyDateLeft, dirtyDateRight) {
  return getISOYear$3(dirtyDateLeft) - getISOYear$3(dirtyDateRight);
}
var difference_in_calendar_iso_years = differenceInCalendarISOYears$1;
var parse$1c = parse_1;
function differenceInCalendarMonths$1(dirtyDateLeft, dirtyDateRight) {
  var dateLeft = parse$1c(dirtyDateLeft);
  var dateRight = parse$1c(dirtyDateRight);
  var yearDiff = dateLeft.getFullYear() - dateRight.getFullYear();
  var monthDiff = dateLeft.getMonth() - dateRight.getMonth();
  return yearDiff * 12 + monthDiff;
}
var difference_in_calendar_months = differenceInCalendarMonths$1;
var parse$1b = parse_1;
function getQuarter$1(dirtyDate) {
  var date = parse$1b(dirtyDate);
  var quarter = Math.floor(date.getMonth() / 3) + 1;
  return quarter;
}
var get_quarter = getQuarter$1;
var getQuarter = get_quarter;
var parse$1a = parse_1;
function differenceInCalendarQuarters(dirtyDateLeft, dirtyDateRight) {
  var dateLeft = parse$1a(dirtyDateLeft);
  var dateRight = parse$1a(dirtyDateRight);
  var yearDiff = dateLeft.getFullYear() - dateRight.getFullYear();
  var quarterDiff = getQuarter(dateLeft) - getQuarter(dateRight);
  return yearDiff * 4 + quarterDiff;
}
var difference_in_calendar_quarters = differenceInCalendarQuarters;
var startOfWeek$1 = start_of_week;
var MILLISECONDS_IN_MINUTE$1 = 6e4;
var MILLISECONDS_IN_WEEK$2 = 6048e5;
function differenceInCalendarWeeks(dirtyDateLeft, dirtyDateRight, dirtyOptions) {
  var startOfWeekLeft = startOfWeek$1(dirtyDateLeft, dirtyOptions);
  var startOfWeekRight = startOfWeek$1(dirtyDateRight, dirtyOptions);
  var timestampLeft = startOfWeekLeft.getTime() - startOfWeekLeft.getTimezoneOffset() * MILLISECONDS_IN_MINUTE$1;
  var timestampRight = startOfWeekRight.getTime() - startOfWeekRight.getTimezoneOffset() * MILLISECONDS_IN_MINUTE$1;
  return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_WEEK$2);
}
var difference_in_calendar_weeks = differenceInCalendarWeeks;
var parse$19 = parse_1;
function differenceInCalendarYears$1(dirtyDateLeft, dirtyDateRight) {
  var dateLeft = parse$19(dirtyDateLeft);
  var dateRight = parse$19(dirtyDateRight);
  return dateLeft.getFullYear() - dateRight.getFullYear();
}
var difference_in_calendar_years = differenceInCalendarYears$1;
var parse$18 = parse_1;
var differenceInCalendarDays$1 = difference_in_calendar_days;
var compareAsc$3 = compare_asc;
function differenceInDays$1(dirtyDateLeft, dirtyDateRight) {
  var dateLeft = parse$18(dirtyDateLeft);
  var dateRight = parse$18(dirtyDateRight);
  var sign = compareAsc$3(dateLeft, dateRight);
  var difference = Math.abs(differenceInCalendarDays$1(dateLeft, dateRight));
  dateLeft.setDate(dateLeft.getDate() - sign * difference);
  var isLastDayNotFull = compareAsc$3(dateLeft, dateRight) === -sign;
  return sign * (difference - isLastDayNotFull);
}
var difference_in_days = differenceInDays$1;
var parse$17 = parse_1;
function differenceInMilliseconds$3(dirtyDateLeft, dirtyDateRight) {
  var dateLeft = parse$17(dirtyDateLeft);
  var dateRight = parse$17(dirtyDateRight);
  return dateLeft.getTime() - dateRight.getTime();
}
var difference_in_milliseconds = differenceInMilliseconds$3;
var differenceInMilliseconds$2 = difference_in_milliseconds;
var MILLISECONDS_IN_HOUR = 36e5;
function differenceInHours(dirtyDateLeft, dirtyDateRight) {
  var diff = differenceInMilliseconds$2(dirtyDateLeft, dirtyDateRight) / MILLISECONDS_IN_HOUR;
  return diff > 0 ? Math.floor(diff) : Math.ceil(diff);
}
var difference_in_hours = differenceInHours;
var addISOYears = add_iso_years;
function subISOYears$1(dirtyDate, dirtyAmount) {
  var amount = Number(dirtyAmount);
  return addISOYears(dirtyDate, -amount);
}
var sub_iso_years = subISOYears$1;
var parse$16 = parse_1;
var differenceInCalendarISOYears = difference_in_calendar_iso_years;
var compareAsc$2 = compare_asc;
var subISOYears = sub_iso_years;
function differenceInISOYears(dirtyDateLeft, dirtyDateRight) {
  var dateLeft = parse$16(dirtyDateLeft);
  var dateRight = parse$16(dirtyDateRight);
  var sign = compareAsc$2(dateLeft, dateRight);
  var difference = Math.abs(differenceInCalendarISOYears(dateLeft, dateRight));
  dateLeft = subISOYears(dateLeft, sign * difference);
  var isLastISOYearNotFull = compareAsc$2(dateLeft, dateRight) === -sign;
  return sign * (difference - isLastISOYearNotFull);
}
var difference_in_iso_years = differenceInISOYears;
var differenceInMilliseconds$1 = difference_in_milliseconds;
var MILLISECONDS_IN_MINUTE = 6e4;
function differenceInMinutes(dirtyDateLeft, dirtyDateRight) {
  var diff = differenceInMilliseconds$1(dirtyDateLeft, dirtyDateRight) / MILLISECONDS_IN_MINUTE;
  return diff > 0 ? Math.floor(diff) : Math.ceil(diff);
}
var difference_in_minutes = differenceInMinutes;
var parse$15 = parse_1;
var differenceInCalendarMonths = difference_in_calendar_months;
var compareAsc$1 = compare_asc;
function differenceInMonths$2(dirtyDateLeft, dirtyDateRight) {
  var dateLeft = parse$15(dirtyDateLeft);
  var dateRight = parse$15(dirtyDateRight);
  var sign = compareAsc$1(dateLeft, dateRight);
  var difference = Math.abs(differenceInCalendarMonths(dateLeft, dateRight));
  dateLeft.setMonth(dateLeft.getMonth() - sign * difference);
  var isLastMonthNotFull = compareAsc$1(dateLeft, dateRight) === -sign;
  return sign * (difference - isLastMonthNotFull);
}
var difference_in_months = differenceInMonths$2;
var differenceInMonths$1 = difference_in_months;
function differenceInQuarters(dirtyDateLeft, dirtyDateRight) {
  var diff = differenceInMonths$1(dirtyDateLeft, dirtyDateRight) / 3;
  return diff > 0 ? Math.floor(diff) : Math.ceil(diff);
}
var difference_in_quarters = differenceInQuarters;
var differenceInMilliseconds = difference_in_milliseconds;
function differenceInSeconds$2(dirtyDateLeft, dirtyDateRight) {
  var diff = differenceInMilliseconds(dirtyDateLeft, dirtyDateRight) / 1e3;
  return diff > 0 ? Math.floor(diff) : Math.ceil(diff);
}
var difference_in_seconds = differenceInSeconds$2;
var differenceInDays = difference_in_days;
function differenceInWeeks(dirtyDateLeft, dirtyDateRight) {
  var diff = differenceInDays(dirtyDateLeft, dirtyDateRight) / 7;
  return diff > 0 ? Math.floor(diff) : Math.ceil(diff);
}
var difference_in_weeks = differenceInWeeks;
var parse$14 = parse_1;
var differenceInCalendarYears = difference_in_calendar_years;
var compareAsc = compare_asc;
function differenceInYears(dirtyDateLeft, dirtyDateRight) {
  var dateLeft = parse$14(dirtyDateLeft);
  var dateRight = parse$14(dirtyDateRight);
  var sign = compareAsc(dateLeft, dateRight);
  var difference = Math.abs(differenceInCalendarYears(dateLeft, dateRight));
  dateLeft.setFullYear(dateLeft.getFullYear() - sign * difference);
  var isLastYearNotFull = compareAsc(dateLeft, dateRight) === -sign;
  return sign * (difference - isLastYearNotFull);
}
var difference_in_years = differenceInYears;
function buildDistanceInWordsLocale$1() {
  var distanceInWordsLocale = {
    lessThanXSeconds: {
      one: "less than a second",
      other: "less than {{count}} seconds"
    },
    xSeconds: {
      one: "1 second",
      other: "{{count}} seconds"
    },
    halfAMinute: "half a minute",
    lessThanXMinutes: {
      one: "less than a minute",
      other: "less than {{count}} minutes"
    },
    xMinutes: {
      one: "1 minute",
      other: "{{count}} minutes"
    },
    aboutXHours: {
      one: "about 1 hour",
      other: "about {{count}} hours"
    },
    xHours: {
      one: "1 hour",
      other: "{{count}} hours"
    },
    xDays: {
      one: "1 day",
      other: "{{count}} days"
    },
    aboutXMonths: {
      one: "about 1 month",
      other: "about {{count}} months"
    },
    xMonths: {
      one: "1 month",
      other: "{{count}} months"
    },
    aboutXYears: {
      one: "about 1 year",
      other: "about {{count}} years"
    },
    xYears: {
      one: "1 year",
      other: "{{count}} years"
    },
    overXYears: {
      one: "over 1 year",
      other: "over {{count}} years"
    },
    almostXYears: {
      one: "almost 1 year",
      other: "almost {{count}} years"
    }
  };
  function localize(token, count, options) {
    options = options || {};
    var result;
    if (typeof distanceInWordsLocale[token] === "string") {
      result = distanceInWordsLocale[token];
    } else if (count === 1) {
      result = distanceInWordsLocale[token].one;
    } else {
      result = distanceInWordsLocale[token].other.replace("{{count}}", count);
    }
    if (options.addSuffix) {
      if (options.comparison > 0) {
        return "in " + result;
      } else {
        return result + " ago";
      }
    }
    return result;
  }
  return {
    localize
  };
}
var build_distance_in_words_locale = buildDistanceInWordsLocale$1;
var commonFormatterKeys = [
  "M",
  "MM",
  "Q",
  "D",
  "DD",
  "DDD",
  "DDDD",
  "d",
  "E",
  "W",
  "WW",
  "YY",
  "YYYY",
  "GG",
  "GGGG",
  "H",
  "HH",
  "h",
  "hh",
  "m",
  "mm",
  "s",
  "ss",
  "S",
  "SS",
  "SSS",
  "Z",
  "ZZ",
  "X",
  "x"
];
function buildFormattingTokensRegExp$1(formatters2) {
  var formatterKeys = [];
  for (var key in formatters2) {
    if (formatters2.hasOwnProperty(key)) {
      formatterKeys.push(key);
    }
  }
  var formattingTokens = commonFormatterKeys.concat(formatterKeys).sort().reverse();
  var formattingTokensRegExp = new RegExp("(\\[[^\\[]*\\])|(\\\\)?(" + formattingTokens.join("|") + "|.)", "g");
  return formattingTokensRegExp;
}
var build_formatting_tokens_reg_exp = buildFormattingTokensRegExp$1;
var buildFormattingTokensRegExp = build_formatting_tokens_reg_exp;
function buildFormatLocale$1() {
  var months3char = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
  var monthsFull = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
  var weekdays2char = ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"];
  var weekdays3char = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
  var weekdaysFull = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
  var meridiemUppercase = ["AM", "PM"];
  var meridiemLowercase = ["am", "pm"];
  var meridiemFull = ["a.m.", "p.m."];
  var formatters2 = {
    "MMM": function(date) {
      return months3char[date.getMonth()];
    },
    "MMMM": function(date) {
      return monthsFull[date.getMonth()];
    },
    "dd": function(date) {
      return weekdays2char[date.getDay()];
    },
    "ddd": function(date) {
      return weekdays3char[date.getDay()];
    },
    "dddd": function(date) {
      return weekdaysFull[date.getDay()];
    },
    "A": function(date) {
      return date.getHours() / 12 >= 1 ? meridiemUppercase[1] : meridiemUppercase[0];
    },
    "a": function(date) {
      return date.getHours() / 12 >= 1 ? meridiemLowercase[1] : meridiemLowercase[0];
    },
    "aa": function(date) {
      return date.getHours() / 12 >= 1 ? meridiemFull[1] : meridiemFull[0];
    }
  };
  var ordinalFormatters = ["M", "D", "DDD", "d", "Q", "W"];
  ordinalFormatters.forEach(function(formatterToken) {
    formatters2[formatterToken + "o"] = function(date, formatters3) {
      return ordinal(formatters3[formatterToken](date));
    };
  });
  return {
    formatters: formatters2,
    formattingTokensRegExp: buildFormattingTokensRegExp(formatters2)
  };
}
function ordinal(number) {
  var rem100 = number % 100;
  if (rem100 > 20 || rem100 < 10) {
    switch (rem100 % 10) {
      case 1:
        return number + "st";
      case 2:
        return number + "nd";
      case 3:
        return number + "rd";
    }
  }
  return number + "th";
}
var build_format_locale = buildFormatLocale$1;
var buildDistanceInWordsLocale = build_distance_in_words_locale;
var buildFormatLocale = build_format_locale;
var en = {
  distanceInWords: buildDistanceInWordsLocale(),
  format: buildFormatLocale()
};
var compareDesc$1 = compare_desc;
var parse$13 = parse_1;
var differenceInSeconds$1 = difference_in_seconds;
var differenceInMonths = difference_in_months;
var enLocale$2 = en;
var MINUTES_IN_DAY$1 = 1440;
var MINUTES_IN_ALMOST_TWO_DAYS = 2520;
var MINUTES_IN_MONTH$1 = 43200;
var MINUTES_IN_TWO_MONTHS = 86400;
function distanceInWords$1(dirtyDateToCompare, dirtyDate, dirtyOptions) {
  var options = dirtyOptions || {};
  var comparison = compareDesc$1(dirtyDateToCompare, dirtyDate);
  var locale = options.locale;
  var localize = enLocale$2.distanceInWords.localize;
  if (locale && locale.distanceInWords && locale.distanceInWords.localize) {
    localize = locale.distanceInWords.localize;
  }
  var localizeOptions = {
    addSuffix: Boolean(options.addSuffix),
    comparison
  };
  var dateLeft, dateRight;
  if (comparison > 0) {
    dateLeft = parse$13(dirtyDateToCompare);
    dateRight = parse$13(dirtyDate);
  } else {
    dateLeft = parse$13(dirtyDate);
    dateRight = parse$13(dirtyDateToCompare);
  }
  var seconds = differenceInSeconds$1(dateRight, dateLeft);
  var offset = dateRight.getTimezoneOffset() - dateLeft.getTimezoneOffset();
  var minutes = Math.round(seconds / 60) - offset;
  var months;
  if (minutes < 2) {
    if (options.includeSeconds) {
      if (seconds < 5) {
        return localize("lessThanXSeconds", 5, localizeOptions);
      } else if (seconds < 10) {
        return localize("lessThanXSeconds", 10, localizeOptions);
      } else if (seconds < 20) {
        return localize("lessThanXSeconds", 20, localizeOptions);
      } else if (seconds < 40) {
        return localize("halfAMinute", null, localizeOptions);
      } else if (seconds < 60) {
        return localize("lessThanXMinutes", 1, localizeOptions);
      } else {
        return localize("xMinutes", 1, localizeOptions);
      }
    } else {
      if (minutes === 0) {
        return localize("lessThanXMinutes", 1, localizeOptions);
      } else {
        return localize("xMinutes", minutes, localizeOptions);
      }
    }
  } else if (minutes < 45) {
    return localize("xMinutes", minutes, localizeOptions);
  } else if (minutes < 90) {
    return localize("aboutXHours", 1, localizeOptions);
  } else if (minutes < MINUTES_IN_DAY$1) {
    var hours = Math.round(minutes / 60);
    return localize("aboutXHours", hours, localizeOptions);
  } else if (minutes < MINUTES_IN_ALMOST_TWO_DAYS) {
    return localize("xDays", 1, localizeOptions);
  } else if (minutes < MINUTES_IN_MONTH$1) {
    var days = Math.round(minutes / MINUTES_IN_DAY$1);
    return localize("xDays", days, localizeOptions);
  } else if (minutes < MINUTES_IN_TWO_MONTHS) {
    months = Math.round(minutes / MINUTES_IN_MONTH$1);
    return localize("aboutXMonths", months, localizeOptions);
  }
  months = differenceInMonths(dateRight, dateLeft);
  if (months < 12) {
    var nearestMonth = Math.round(minutes / MINUTES_IN_MONTH$1);
    return localize("xMonths", nearestMonth, localizeOptions);
  } else {
    var monthsSinceStartOfYear = months % 12;
    var years = Math.floor(months / 12);
    if (monthsSinceStartOfYear < 3) {
      return localize("aboutXYears", years, localizeOptions);
    } else if (monthsSinceStartOfYear < 9) {
      return localize("overXYears", years, localizeOptions);
    } else {
      return localize("almostXYears", years + 1, localizeOptions);
    }
  }
}
var distance_in_words = distanceInWords$1;
var compareDesc = compare_desc;
var parse$12 = parse_1;
var differenceInSeconds = difference_in_seconds;
var enLocale$1 = en;
var MINUTES_IN_DAY = 1440;
var MINUTES_IN_MONTH = 43200;
var MINUTES_IN_YEAR = 525600;
function distanceInWordsStrict(dirtyDateToCompare, dirtyDate, dirtyOptions) {
  var options = dirtyOptions || {};
  var comparison = compareDesc(dirtyDateToCompare, dirtyDate);
  var locale = options.locale;
  var localize = enLocale$1.distanceInWords.localize;
  if (locale && locale.distanceInWords && locale.distanceInWords.localize) {
    localize = locale.distanceInWords.localize;
  }
  var localizeOptions = {
    addSuffix: Boolean(options.addSuffix),
    comparison
  };
  var dateLeft, dateRight;
  if (comparison > 0) {
    dateLeft = parse$12(dirtyDateToCompare);
    dateRight = parse$12(dirtyDate);
  } else {
    dateLeft = parse$12(dirtyDate);
    dateRight = parse$12(dirtyDateToCompare);
  }
  var unit;
  var mathPartial = Math[options.partialMethod ? String(options.partialMethod) : "floor"];
  var seconds = differenceInSeconds(dateRight, dateLeft);
  var offset = dateRight.getTimezoneOffset() - dateLeft.getTimezoneOffset();
  var minutes = mathPartial(seconds / 60) - offset;
  var hours, days, months, years;
  if (options.unit) {
    unit = String(options.unit);
  } else {
    if (minutes < 1) {
      unit = "s";
    } else if (minutes < 60) {
      unit = "m";
    } else if (minutes < MINUTES_IN_DAY) {
      unit = "h";
    } else if (minutes < MINUTES_IN_MONTH) {
      unit = "d";
    } else if (minutes < MINUTES_IN_YEAR) {
      unit = "M";
    } else {
      unit = "Y";
    }
  }
  if (unit === "s") {
    return localize("xSeconds", seconds, localizeOptions);
  } else if (unit === "m") {
    return localize("xMinutes", minutes, localizeOptions);
  } else if (unit === "h") {
    hours = mathPartial(minutes / 60);
    return localize("xHours", hours, localizeOptions);
  } else if (unit === "d") {
    days = mathPartial(minutes / MINUTES_IN_DAY);
    return localize("xDays", days, localizeOptions);
  } else if (unit === "M") {
    months = mathPartial(minutes / MINUTES_IN_MONTH);
    return localize("xMonths", months, localizeOptions);
  } else if (unit === "Y") {
    years = mathPartial(minutes / MINUTES_IN_YEAR);
    return localize("xYears", years, localizeOptions);
  }
  throw new Error("Unknown unit: " + unit);
}
var distance_in_words_strict = distanceInWordsStrict;
var distanceInWords = distance_in_words;
function distanceInWordsToNow(dirtyDate, dirtyOptions) {
  return distanceInWords(Date.now(), dirtyDate, dirtyOptions);
}
var distance_in_words_to_now = distanceInWordsToNow;
var parse$11 = parse_1;
function eachDay(dirtyStartDate, dirtyEndDate, dirtyStep) {
  var startDate = parse$11(dirtyStartDate);
  var endDate = parse$11(dirtyEndDate);
  var step = dirtyStep !== void 0 ? dirtyStep : 1;
  var endTime = endDate.getTime();
  if (startDate.getTime() > endTime) {
    throw new Error("The first date cannot be after the second date");
  }
  var dates = [];
  var currentDate = startDate;
  currentDate.setHours(0, 0, 0, 0);
  while (currentDate.getTime() <= endTime) {
    dates.push(parse$11(currentDate));
    currentDate.setDate(currentDate.getDate() + step);
  }
  return dates;
}
var each_day = eachDay;
var parse$10 = parse_1;
function endOfDay$2(dirtyDate) {
  var date = parse$10(dirtyDate);
  date.setHours(23, 59, 59, 999);
  return date;
}
var end_of_day = endOfDay$2;
var parse$$ = parse_1;
function endOfHour(dirtyDate) {
  var date = parse$$(dirtyDate);
  date.setMinutes(59, 59, 999);
  return date;
}
var end_of_hour = endOfHour;
var parse$_ = parse_1;
function endOfWeek$1(dirtyDate, dirtyOptions) {
  var weekStartsOn = dirtyOptions ? Number(dirtyOptions.weekStartsOn) || 0 : 0;
  var date = parse$_(dirtyDate);
  var day = date.getDay();
  var diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn);
  date.setDate(date.getDate() + diff);
  date.setHours(23, 59, 59, 999);
  return date;
}
var end_of_week = endOfWeek$1;
var endOfWeek = end_of_week;
function endOfISOWeek(dirtyDate) {
  return endOfWeek(dirtyDate, { weekStartsOn: 1 });
}
var end_of_iso_week = endOfISOWeek;
var getISOYear$2 = get_iso_year;
var startOfISOWeek$2 = start_of_iso_week;
function endOfISOYear(dirtyDate) {
  var year = getISOYear$2(dirtyDate);
  var fourthOfJanuaryOfNextYear = new Date(0);
  fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);
  fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);
  var date = startOfISOWeek$2(fourthOfJanuaryOfNextYear);
  date.setMilliseconds(date.getMilliseconds() - 1);
  return date;
}
var end_of_iso_year = endOfISOYear;
var parse$Z = parse_1;
function endOfMinute(dirtyDate) {
  var date = parse$Z(dirtyDate);
  date.setSeconds(59, 999);
  return date;
}
var end_of_minute = endOfMinute;
var parse$Y = parse_1;
function endOfMonth$1(dirtyDate) {
  var date = parse$Y(dirtyDate);
  var month = date.getMonth();
  date.setFullYear(date.getFullYear(), month + 1, 0);
  date.setHours(23, 59, 59, 999);
  return date;
}
var end_of_month = endOfMonth$1;
var parse$X = parse_1;
function endOfQuarter(dirtyDate) {
  var date = parse$X(dirtyDate);
  var currentMonth = date.getMonth();
  var month = currentMonth - currentMonth % 3 + 3;
  date.setMonth(month, 0);
  date.setHours(23, 59, 59, 999);
  return date;
}
var end_of_quarter = endOfQuarter;
var parse$W = parse_1;
function endOfSecond(dirtyDate) {
  var date = parse$W(dirtyDate);
  date.setMilliseconds(999);
  return date;
}
var end_of_second = endOfSecond;
var endOfDay$1 = end_of_day;
function endOfToday() {
  return endOfDay$1(new Date());
}
var end_of_today = endOfToday;
function endOfTomorrow() {
  var now = new Date();
  var year = now.getFullYear();
  var month = now.getMonth();
  var day = now.getDate();
  var date = new Date(0);
  date.setFullYear(year, month, day + 1);
  date.setHours(23, 59, 59, 999);
  return date;
}
var end_of_tomorrow = endOfTomorrow;
var parse$V = parse_1;
function endOfYear(dirtyDate) {
  var date = parse$V(dirtyDate);
  var year = date.getFullYear();
  date.setFullYear(year + 1, 0, 0);
  date.setHours(23, 59, 59, 999);
  return date;
}
var end_of_year = endOfYear;
function endOfYesterday() {
  var now = new Date();
  var year = now.getFullYear();
  var month = now.getMonth();
  var day = now.getDate();
  var date = new Date(0);
  date.setFullYear(year, month, day - 1);
  date.setHours(23, 59, 59, 999);
  return date;
}
var end_of_yesterday = endOfYesterday;
var parse$U = parse_1;
function startOfYear$1(dirtyDate) {
  var cleanDate = parse$U(dirtyDate);
  var date = new Date(0);
  date.setFullYear(cleanDate.getFullYear(), 0, 1);
  date.setHours(0, 0, 0, 0);
  return date;
}
var start_of_year = startOfYear$1;
var parse$T = parse_1;
var startOfYear = start_of_year;
var differenceInCalendarDays = difference_in_calendar_days;
function getDayOfYear$1(dirtyDate) {
  var date = parse$T(dirtyDate);
  var diff = differenceInCalendarDays(date, startOfYear(date));
  var dayOfYear = diff + 1;
  return dayOfYear;
}
var get_day_of_year = getDayOfYear$1;
var parse$S = parse_1;
var startOfISOWeek$1 = start_of_iso_week;
var startOfISOYear$2 = start_of_iso_year;
var MILLISECONDS_IN_WEEK$1 = 6048e5;
function getISOWeek$2(dirtyDate) {
  var date = parse$S(dirtyDate);
  var diff = startOfISOWeek$1(date).getTime() - startOfISOYear$2(date).getTime();
  return Math.round(diff / MILLISECONDS_IN_WEEK$1) + 1;
}
var get_iso_week = getISOWeek$2;
var isDate = is_date;
function isValid$1(dirtyDate) {
  if (isDate(dirtyDate)) {
    return !isNaN(dirtyDate);
  } else {
    throw new TypeError(toString.call(dirtyDate) + " is not an instance of Date");
  }
}
var is_valid = isValid$1;
var getDayOfYear = get_day_of_year;
var getISOWeek$1 = get_iso_week;
var getISOYear$1 = get_iso_year;
var parse$R = parse_1;
var isValid = is_valid;
var enLocale = en;
function format(dirtyDate, dirtyFormatStr, dirtyOptions) {
  var formatStr = dirtyFormatStr ? String(dirtyFormatStr) : "YYYY-MM-DDTHH:mm:ss.SSSZ";
  var options = dirtyOptions || {};
  var locale = options.locale;
  var localeFormatters = enLocale.format.formatters;
  var formattingTokensRegExp = enLocale.format.formattingTokensRegExp;
  if (locale && locale.format && locale.format.formatters) {
    localeFormatters = locale.format.formatters;
    if (locale.format.formattingTokensRegExp) {
      formattingTokensRegExp = locale.format.formattingTokensRegExp;
    }
  }
  var date = parse$R(dirtyDate);
  if (!isValid(date)) {
    return "Invalid Date";
  }
  var formatFn = buildFormatFn(formatStr, localeFormatters, formattingTokensRegExp);
  return formatFn(date);
}
var formatters = {
  "M": function(date) {
    return date.getMonth() + 1;
  },
  "MM": function(date) {
    return addLeadingZeros(date.getMonth() + 1, 2);
  },
  "Q": function(date) {
    return Math.ceil((date.getMonth() + 1) / 3);
  },
  "D": function(date) {
    return date.getDate();
  },
  "DD": function(date) {
    return addLeadingZeros(date.getDate(), 2);
  },
  "DDD": function(date) {
    return getDayOfYear(date);
  },
  "DDDD": function(date) {
    return addLeadingZeros(getDayOfYear(date), 3);
  },
  "d": function(date) {
    return date.getDay();
  },
  "E": function(date) {
    return date.getDay() || 7;
  },
  "W": function(date) {
    return getISOWeek$1(date);
  },
  "WW": function(date) {
    return addLeadingZeros(getISOWeek$1(date), 2);
  },
  "YY": function(date) {
    return addLeadingZeros(date.getFullYear(), 4).substr(2);
  },
  "YYYY": function(date) {
    return addLeadingZeros(date.getFullYear(), 4);
  },
  "GG": function(date) {
    return String(getISOYear$1(date)).substr(2);
  },
  "GGGG": function(date) {
    return getISOYear$1(date);
  },
  "H": function(date) {
    return date.getHours();
  },
  "HH": function(date) {
    return addLeadingZeros(date.getHours(), 2);
  },
  "h": function(date) {
    var hours = date.getHours();
    if (hours === 0) {
      return 12;
    } else if (hours > 12) {
      return hours % 12;
    } else {
      return hours;
    }
  },
  "hh": function(date) {
    return addLeadingZeros(formatters["h"](date), 2);
  },
  "m": function(date) {
    return date.getMinutes();
  },
  "mm": function(date) {
    return addLeadingZeros(date.getMinutes(), 2);
  },
  "s": function(date) {
    return date.getSeconds();
  },
  "ss": function(date) {
    return addLeadingZeros(date.getSeconds(), 2);
  },
  "S": function(date) {
    return Math.floor(date.getMilliseconds() / 100);
  },
  "SS": function(date) {
    return addLeadingZeros(Math.floor(date.getMilliseconds() / 10), 2);
  },
  "SSS": function(date) {
    return addLeadingZeros(date.getMilliseconds(), 3);
  },
  "Z": function(date) {
    return formatTimezone(date.getTimezoneOffset(), ":");
  },
  "ZZ": function(date) {
    return formatTimezone(date.getTimezoneOffset());
  },
  "X": function(date) {
    return Math.floor(date.getTime() / 1e3);
  },
  "x": function(date) {
    return date.getTime();
  }
};
function buildFormatFn(formatStr, localeFormatters, formattingTokensRegExp) {
  var array = formatStr.match(formattingTokensRegExp);
  var length = array.length;
  var i;
  var formatter;
  for (i = 0; i < length; i++) {
    formatter = localeFormatters[array[i]] || formatters[array[i]];
    if (formatter) {
      array[i] = formatter;
    } else {
      array[i] = removeFormattingTokens(array[i]);
    }
  }
  return function(date) {
    var output = "";
    for (var i2 = 0; i2 < length; i2++) {
      if (array[i2] instanceof Function) {
        output += array[i2](date, formatters);
      } else {
        output += array[i2];
      }
    }
    return output;
  };
}
function removeFormattingTokens(input) {
  if (input.match(/\[[\s\S]/)) {
    return input.replace(/^\[|]$/g, "");
  }
  return input.replace(/\\/g, "");
}
function formatTimezone(offset, delimeter) {
  delimeter = delimeter || "";
  var sign = offset > 0 ? "-" : "+";
  var absOffset = Math.abs(offset);
  var hours = Math.floor(absOffset / 60);
  var minutes = absOffset % 60;
  return sign + addLeadingZeros(hours, 2) + delimeter + addLeadingZeros(minutes, 2);
}
function addLeadingZeros(number, targetLength) {
  var output = Math.abs(number).toString();
  while (output.length < targetLength) {
    output = "0" + output;
  }
  return output;
}
var format_1 = format;
var parse$Q = parse_1;
function getDate(dirtyDate) {
  var date = parse$Q(dirtyDate);
  var dayOfMonth = date.getDate();
  return dayOfMonth;
}
var get_date = getDate;
var parse$P = parse_1;
function getDay(dirtyDate) {
  var date = parse$P(dirtyDate);
  var day = date.getDay();
  return day;
}
var get_day = getDay;
var parse$O = parse_1;
function isLeapYear$1(dirtyDate) {
  var date = parse$O(dirtyDate);
  var year = date.getFullYear();
  return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;
}
var is_leap_year = isLeapYear$1;
var isLeapYear = is_leap_year;
function getDaysInYear(dirtyDate) {
  return isLeapYear(dirtyDate) ? 366 : 365;
}
var get_days_in_year = getDaysInYear;
var parse$N = parse_1;
function getHours(dirtyDate) {
  var date = parse$N(dirtyDate);
  var hours = date.getHours();
  return hours;
}
var get_hours = getHours;
var parse$M = parse_1;
function getISODay$1(dirtyDate) {
  var date = parse$M(dirtyDate);
  var day = date.getDay();
  if (day === 0) {
    day = 7;
  }
  return day;
}
var get_iso_day = getISODay$1;
var startOfISOYear$1 = start_of_iso_year;
var addWeeks$1 = add_weeks;
var MILLISECONDS_IN_WEEK = 6048e5;
function getISOWeeksInYear(dirtyDate) {
  var thisYear = startOfISOYear$1(dirtyDate);
  var nextYear = startOfISOYear$1(addWeeks$1(thisYear, 60));
  var diff = nextYear.valueOf() - thisYear.valueOf();
  return Math.round(diff / MILLISECONDS_IN_WEEK);
}
var get_iso_weeks_in_year = getISOWeeksInYear;
var parse$L = parse_1;
function getMilliseconds(dirtyDate) {
  var date = parse$L(dirtyDate);
  var milliseconds = date.getMilliseconds();
  return milliseconds;
}
var get_milliseconds = getMilliseconds;
var parse$K = parse_1;
function getMinutes(dirtyDate) {
  var date = parse$K(dirtyDate);
  var minutes = date.getMinutes();
  return minutes;
}
var get_minutes = getMinutes;
var parse$J = parse_1;
function getMonth(dirtyDate) {
  var date = parse$J(dirtyDate);
  var month = date.getMonth();
  return month;
}
var get_month = getMonth;
var parse$I = parse_1;
var MILLISECONDS_IN_DAY = 24 * 60 * 60 * 1e3;
function getOverlappingDaysInRanges(dirtyInitialRangeStartDate, dirtyInitialRangeEndDate, dirtyComparedRangeStartDate, dirtyComparedRangeEndDate) {
  var initialStartTime = parse$I(dirtyInitialRangeStartDate).getTime();
  var initialEndTime = parse$I(dirtyInitialRangeEndDate).getTime();
  var comparedStartTime = parse$I(dirtyComparedRangeStartDate).getTime();
  var comparedEndTime = parse$I(dirtyComparedRangeEndDate).getTime();
  if (initialStartTime > initialEndTime || comparedStartTime > comparedEndTime) {
    throw new Error("The start of the range cannot be after the end of the range");
  }
  var isOverlapping = initialStartTime < comparedEndTime && comparedStartTime < initialEndTime;
  if (!isOverlapping) {
    return 0;
  }
  var overlapStartDate = comparedStartTime < initialStartTime ? initialStartTime : comparedStartTime;
  var overlapEndDate = comparedEndTime > initialEndTime ? initialEndTime : comparedEndTime;
  var differenceInMs = overlapEndDate - overlapStartDate;
  return Math.ceil(differenceInMs / MILLISECONDS_IN_DAY);
}
var get_overlapping_days_in_ranges = getOverlappingDaysInRanges;
var parse$H = parse_1;
function getSeconds(dirtyDate) {
  var date = parse$H(dirtyDate);
  var seconds = date.getSeconds();
  return seconds;
}
var get_seconds = getSeconds;
var parse$G = parse_1;
function getTime(dirtyDate) {
  var date = parse$G(dirtyDate);
  var timestamp = date.getTime();
  return timestamp;
}
var get_time = getTime;
var parse$F = parse_1;
function getYear(dirtyDate) {
  var date = parse$F(dirtyDate);
  var year = date.getFullYear();
  return year;
}
var get_year = getYear;
var parse$E = parse_1;
function isAfter(dirtyDate, dirtyDateToCompare) {
  var date = parse$E(dirtyDate);
  var dateToCompare = parse$E(dirtyDateToCompare);
  return date.getTime() > dateToCompare.getTime();
}
var is_after = isAfter;
var parse$D = parse_1;
function isBefore(dirtyDate, dirtyDateToCompare) {
  var date = parse$D(dirtyDate);
  var dateToCompare = parse$D(dirtyDateToCompare);
  return date.getTime() < dateToCompare.getTime();
}
var is_before = isBefore;
var parse$C = parse_1;
function isEqual(dirtyLeftDate, dirtyRightDate) {
  var dateLeft = parse$C(dirtyLeftDate);
  var dateRight = parse$C(dirtyRightDate);
  return dateLeft.getTime() === dateRight.getTime();
}
var is_equal = isEqual;
var parse$B = parse_1;
function isFirstDayOfMonth(dirtyDate) {
  return parse$B(dirtyDate).getDate() === 1;
}
var is_first_day_of_month = isFirstDayOfMonth;
var parse$A = parse_1;
function isFriday(dirtyDate) {
  return parse$A(dirtyDate).getDay() === 5;
}
var is_friday = isFriday;
var parse$z = parse_1;
function isFuture(dirtyDate) {
  return parse$z(dirtyDate).getTime() > new Date().getTime();
}
var is_future = isFuture;
var parse$y = parse_1;
var endOfDay = end_of_day;
var endOfMonth = end_of_month;
function isLastDayOfMonth(dirtyDate) {
  var date = parse$y(dirtyDate);
  return endOfDay(date).getTime() === endOfMonth(date).getTime();
}
var is_last_day_of_month = isLastDayOfMonth;
var parse$x = parse_1;
function isMonday(dirtyDate) {
  return parse$x(dirtyDate).getDay() === 1;
}
var is_monday = isMonday;
var parse$w = parse_1;
function isPast(dirtyDate) {
  return parse$w(dirtyDate).getTime() < new Date().getTime();
}
var is_past = isPast;
var startOfDay$4 = start_of_day;
function isSameDay(dirtyDateLeft, dirtyDateRight) {
  var dateLeftStartOfDay = startOfDay$4(dirtyDateLeft);
  var dateRightStartOfDay = startOfDay$4(dirtyDateRight);
  return dateLeftStartOfDay.getTime() === dateRightStartOfDay.getTime();
}
var is_same_day = isSameDay;
var parse$v = parse_1;
function startOfHour$1(dirtyDate) {
  var date = parse$v(dirtyDate);
  date.setMinutes(0, 0, 0);
  return date;
}
var start_of_hour = startOfHour$1;
var startOfHour = start_of_hour;
function isSameHour$1(dirtyDateLeft, dirtyDateRight) {
  var dateLeftStartOfHour = startOfHour(dirtyDateLeft);
  var dateRightStartOfHour = startOfHour(dirtyDateRight);
  return dateLeftStartOfHour.getTime() === dateRightStartOfHour.getTime();
}
var is_same_hour = isSameHour$1;
var startOfWeek = start_of_week;
function isSameWeek$2(dirtyDateLeft, dirtyDateRight, dirtyOptions) {
  var dateLeftStartOfWeek = startOfWeek(dirtyDateLeft, dirtyOptions);
  var dateRightStartOfWeek = startOfWeek(dirtyDateRight, dirtyOptions);
  return dateLeftStartOfWeek.getTime() === dateRightStartOfWeek.getTime();
}
var is_same_week = isSameWeek$2;
var isSameWeek$1 = is_same_week;
function isSameISOWeek$1(dirtyDateLeft, dirtyDateRight) {
  return isSameWeek$1(dirtyDateLeft, dirtyDateRight, { weekStartsOn: 1 });
}
var is_same_iso_week = isSameISOWeek$1;
var startOfISOYear = start_of_iso_year;
function isSameISOYear$1(dirtyDateLeft, dirtyDateRight) {
  var dateLeftStartOfYear = startOfISOYear(dirtyDateLeft);
  var dateRightStartOfYear = startOfISOYear(dirtyDateRight);
  return dateLeftStartOfYear.getTime() === dateRightStartOfYear.getTime();
}
var is_same_iso_year = isSameISOYear$1;
var parse$u = parse_1;
function startOfMinute$1(dirtyDate) {
  var date = parse$u(dirtyDate);
  date.setSeconds(0, 0);
  return date;
}
var start_of_minute = startOfMinute$1;
var startOfMinute = start_of_minute;
function isSameMinute$1(dirtyDateLeft, dirtyDateRight) {
  var dateLeftStartOfMinute = startOfMinute(dirtyDateLeft);
  var dateRightStartOfMinute = startOfMinute(dirtyDateRight);
  return dateLeftStartOfMinute.getTime() === dateRightStartOfMinute.getTime();
}
var is_same_minute = isSameMinute$1;
var parse$t = parse_1;
function isSameMonth$1(dirtyDateLeft, dirtyDateRight) {
  var dateLeft = parse$t(dirtyDateLeft);
  var dateRight = parse$t(dirtyDateRight);
  return dateLeft.getFullYear() === dateRight.getFullYear() && dateLeft.getMonth() === dateRight.getMonth();
}
var is_same_month = isSameMonth$1;
var parse$s = parse_1;
function startOfQuarter$1(dirtyDate) {
  var date = parse$s(dirtyDate);
  var currentMonth = date.getMonth();
  var month = currentMonth - currentMonth % 3;
  date.setMonth(month, 1);
  date.setHours(0, 0, 0, 0);
  return date;
}
var start_of_quarter = startOfQuarter$1;
var startOfQuarter = start_of_quarter;
function isSameQuarter$1(dirtyDateLeft, dirtyDateRight) {
  var dateLeftStartOfQuarter = startOfQuarter(dirtyDateLeft);
  var dateRightStartOfQuarter = startOfQuarter(dirtyDateRight);
  return dateLeftStartOfQuarter.getTime() === dateRightStartOfQuarter.getTime();
}
var is_same_quarter = isSameQuarter$1;
var parse$r = parse_1;
function startOfSecond$1(dirtyDate) {
  var date = parse$r(dirtyDate);
  date.setMilliseconds(0);
  return date;
}
var start_of_second = startOfSecond$1;
var startOfSecond = start_of_second;
function isSameSecond$1(dirtyDateLeft, dirtyDateRight) {
  var dateLeftStartOfSecond = startOfSecond(dirtyDateLeft);
  var dateRightStartOfSecond = startOfSecond(dirtyDateRight);
  return dateLeftStartOfSecond.getTime() === dateRightStartOfSecond.getTime();
}
var is_same_second = isSameSecond$1;
var parse$q = parse_1;
function isSameYear$1(dirtyDateLeft, dirtyDateRight) {
  var dateLeft = parse$q(dirtyDateLeft);
  var dateRight = parse$q(dirtyDateRight);
  return dateLeft.getFullYear() === dateRight.getFullYear();
}
var is_same_year = isSameYear$1;
var parse$p = parse_1;
function isSaturday(dirtyDate) {
  return parse$p(dirtyDate).getDay() === 6;
}
var is_saturday = isSaturday;
var parse$o = parse_1;
function isSunday(dirtyDate) {
  return parse$o(dirtyDate).getDay() === 0;
}
var is_sunday = isSunday;
var isSameHour = is_same_hour;
function isThisHour(dirtyDate) {
  return isSameHour(new Date(), dirtyDate);
}
var is_this_hour = isThisHour;
var isSameISOWeek = is_same_iso_week;
function isThisISOWeek(dirtyDate) {
  return isSameISOWeek(new Date(), dirtyDate);
}
var is_this_iso_week = isThisISOWeek;
var isSameISOYear = is_same_iso_year;
function isThisISOYear(dirtyDate) {
  return isSameISOYear(new Date(), dirtyDate);
}
var is_this_iso_year = isThisISOYear;
var isSameMinute = is_same_minute;
function isThisMinute(dirtyDate) {
  return isSameMinute(new Date(), dirtyDate);
}
var is_this_minute = isThisMinute;
var isSameMonth = is_same_month;
function isThisMonth(dirtyDate) {
  return isSameMonth(new Date(), dirtyDate);
}
var is_this_month = isThisMonth;
var isSameQuarter = is_same_quarter;
function isThisQuarter(dirtyDate) {
  return isSameQuarter(new Date(), dirtyDate);
}
var is_this_quarter = isThisQuarter;
var isSameSecond = is_same_second;
function isThisSecond(dirtyDate) {
  return isSameSecond(new Date(), dirtyDate);
}
var is_this_second = isThisSecond;
var isSameWeek = is_same_week;
function isThisWeek(dirtyDate, dirtyOptions) {
  return isSameWeek(new Date(), dirtyDate, dirtyOptions);
}
var is_this_week = isThisWeek;
var isSameYear = is_same_year;
function isThisYear(dirtyDate) {
  return isSameYear(new Date(), dirtyDate);
}
var is_this_year = isThisYear;
var parse$n = parse_1;
function isThursday(dirtyDate) {
  return parse$n(dirtyDate).getDay() === 4;
}
var is_thursday = isThursday;
var startOfDay$3 = start_of_day;
function isToday(dirtyDate) {
  return startOfDay$3(dirtyDate).getTime() === startOfDay$3(new Date()).getTime();
}
var is_today = isToday;
var startOfDay$2 = start_of_day;
function isTomorrow(dirtyDate) {
  var tomorrow = new Date();
  tomorrow.setDate(tomorrow.getDate() + 1);
  return startOfDay$2(dirtyDate).getTime() === startOfDay$2(tomorrow).getTime();
}
var is_tomorrow = isTomorrow;
var parse$m = parse_1;
function isTuesday(dirtyDate) {
  return parse$m(dirtyDate).getDay() === 2;
}
var is_tuesday = isTuesday;
var parse$l = parse_1;
function isWednesday(dirtyDate) {
  return parse$l(dirtyDate).getDay() === 3;
}
var is_wednesday = isWednesday;
var parse$k = parse_1;
function isWeekend(dirtyDate) {
  var date = parse$k(dirtyDate);
  var day = date.getDay();
  return day === 0 || day === 6;
}
var is_weekend = isWeekend;
var parse$j = parse_1;
function isWithinRange(dirtyDate, dirtyStartDate, dirtyEndDate) {
  var time = parse$j(dirtyDate).getTime();
  var startTime = parse$j(dirtyStartDate).getTime();
  var endTime = parse$j(dirtyEndDate).getTime();
  if (startTime > endTime) {
    throw new Error("The start of the range cannot be after the end of the range");
  }
  return time >= startTime && time <= endTime;
}
var is_within_range = isWithinRange;
var startOfDay$1 = start_of_day;
function isYesterday(dirtyDate) {
  var yesterday = new Date();
  yesterday.setDate(yesterday.getDate() - 1);
  return startOfDay$1(dirtyDate).getTime() === startOfDay$1(yesterday).getTime();
}
var is_yesterday = isYesterday;
var parse$i = parse_1;
function lastDayOfWeek$1(dirtyDate, dirtyOptions) {
  var weekStartsOn = dirtyOptions ? Number(dirtyOptions.weekStartsOn) || 0 : 0;
  var date = parse$i(dirtyDate);
  var day = date.getDay();
  var diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn);
  date.setHours(0, 0, 0, 0);
  date.setDate(date.getDate() + diff);
  return date;
}
var last_day_of_week = lastDayOfWeek$1;
var lastDayOfWeek = last_day_of_week;
function lastDayOfISOWeek(dirtyDate) {
  return lastDayOfWeek(dirtyDate, { weekStartsOn: 1 });
}
var last_day_of_iso_week = lastDayOfISOWeek;
var getISOYear = get_iso_year;
var startOfISOWeek = start_of_iso_week;
function lastDayOfISOYear(dirtyDate) {
  var year = getISOYear(dirtyDate);
  var fourthOfJanuary = new Date(0);
  fourthOfJanuary.setFullYear(year + 1, 0, 4);
  fourthOfJanuary.setHours(0, 0, 0, 0);
  var date = startOfISOWeek(fourthOfJanuary);
  date.setDate(date.getDate() - 1);
  return date;
}
var last_day_of_iso_year = lastDayOfISOYear;
var parse$h = parse_1;
function lastDayOfMonth(dirtyDate) {
  var date = parse$h(dirtyDate);
  var month = date.getMonth();
  date.setFullYear(date.getFullYear(), month + 1, 0);
  date.setHours(0, 0, 0, 0);
  return date;
}
var last_day_of_month = lastDayOfMonth;
var parse$g = parse_1;
function lastDayOfQuarter(dirtyDate) {
  var date = parse$g(dirtyDate);
  var currentMonth = date.getMonth();
  var month = currentMonth - currentMonth % 3 + 3;
  date.setMonth(month, 0);
  date.setHours(0, 0, 0, 0);
  return date;
}
var last_day_of_quarter = lastDayOfQuarter;
var parse$f = parse_1;
function lastDayOfYear(dirtyDate) {
  var date = parse$f(dirtyDate);
  var year = date.getFullYear();
  date.setFullYear(year + 1, 0, 0);
  date.setHours(0, 0, 0, 0);
  return date;
}
var last_day_of_year = lastDayOfYear;
var parse$e = parse_1;
function max() {
  var dirtyDates = Array.prototype.slice.call(arguments);
  var dates = dirtyDates.map(function(dirtyDate) {
    return parse$e(dirtyDate);
  });
  var latestTimestamp = Math.max.apply(null, dates);
  return new Date(latestTimestamp);
}
var max_1 = max;
var parse$d = parse_1;
function min() {
  var dirtyDates = Array.prototype.slice.call(arguments);
  var dates = dirtyDates.map(function(dirtyDate) {
    return parse$d(dirtyDate);
  });
  var earliestTimestamp = Math.min.apply(null, dates);
  return new Date(earliestTimestamp);
}
var min_1 = min;
var parse$c = parse_1;
function setDate(dirtyDate, dirtyDayOfMonth) {
  var date = parse$c(dirtyDate);
  var dayOfMonth = Number(dirtyDayOfMonth);
  date.setDate(dayOfMonth);
  return date;
}
var set_date = setDate;
var parse$b = parse_1;
var addDays$2 = add_days;
function setDay(dirtyDate, dirtyDay, dirtyOptions) {
  var weekStartsOn = dirtyOptions ? Number(dirtyOptions.weekStartsOn) || 0 : 0;
  var date = parse$b(dirtyDate);
  var day = Number(dirtyDay);
  var currentDay = date.getDay();
  var remainder = day % 7;
  var dayIndex = (remainder + 7) % 7;
  var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;
  return addDays$2(date, diff);
}
var set_day = setDay;
var parse$a = parse_1;
function setDayOfYear(dirtyDate, dirtyDayOfYear) {
  var date = parse$a(dirtyDate);
  var dayOfYear = Number(dirtyDayOfYear);
  date.setMonth(0);
  date.setDate(dayOfYear);
  return date;
}
var set_day_of_year = setDayOfYear;
var parse$9 = parse_1;
function setHours(dirtyDate, dirtyHours) {
  var date = parse$9(dirtyDate);
  var hours = Number(dirtyHours);
  date.setHours(hours);
  return date;
}
var set_hours = setHours;
var parse$8 = parse_1;
var addDays$1 = add_days;
var getISODay = get_iso_day;
function setISODay(dirtyDate, dirtyDay) {
  var date = parse$8(dirtyDate);
  var day = Number(dirtyDay);
  var currentDay = getISODay(date);
  var diff = day - currentDay;
  return addDays$1(date, diff);
}
var set_iso_day = setISODay;
var parse$7 = parse_1;
var getISOWeek = get_iso_week;
function setISOWeek(dirtyDate, dirtyISOWeek) {
  var date = parse$7(dirtyDate);
  var isoWeek = Number(dirtyISOWeek);
  var diff = getISOWeek(date) - isoWeek;
  date.setDate(date.getDate() - diff * 7);
  return date;
}
var set_iso_week = setISOWeek;
var parse$6 = parse_1;
function setMilliseconds(dirtyDate, dirtyMilliseconds) {
  var date = parse$6(dirtyDate);
  var milliseconds = Number(dirtyMilliseconds);
  date.setMilliseconds(milliseconds);
  return date;
}
var set_milliseconds = setMilliseconds;
var parse$5 = parse_1;
function setMinutes(dirtyDate, dirtyMinutes) {
  var date = parse$5(dirtyDate);
  var minutes = Number(dirtyMinutes);
  date.setMinutes(minutes);
  return date;
}
var set_minutes = setMinutes;
var parse$4 = parse_1;
var getDaysInMonth = get_days_in_month;
function setMonth$1(dirtyDate, dirtyMonth) {
  var date = parse$4(dirtyDate);
  var month = Number(dirtyMonth);
  var year = date.getFullYear();
  var day = date.getDate();
  var dateWithDesiredMonth = new Date(0);
  dateWithDesiredMonth.setFullYear(year, month, 15);
  dateWithDesiredMonth.setHours(0, 0, 0, 0);
  var daysInMonth = getDaysInMonth(dateWithDesiredMonth);
  date.setMonth(month, Math.min(day, daysInMonth));
  return date;
}
var set_month = setMonth$1;
var parse$3 = parse_1;
var setMonth = set_month;
function setQuarter(dirtyDate, dirtyQuarter) {
  var date = parse$3(dirtyDate);
  var quarter = Number(dirtyQuarter);
  var oldQuarter = Math.floor(date.getMonth() / 3) + 1;
  var diff = quarter - oldQuarter;
  return setMonth(date, date.getMonth() + diff * 3);
}
var set_quarter = setQuarter;
var parse$2 = parse_1;
function setSeconds(dirtyDate, dirtySeconds) {
  var date = parse$2(dirtyDate);
  var seconds = Number(dirtySeconds);
  date.setSeconds(seconds);
  return date;
}
var set_seconds = setSeconds;
var parse$1 = parse_1;
function setYear(dirtyDate, dirtyYear) {
  var date = parse$1(dirtyDate);
  var year = Number(dirtyYear);
  date.setFullYear(year);
  return date;
}
var set_year = setYear;
var parse = parse_1;
function startOfMonth(dirtyDate) {
  var date = parse(dirtyDate);
  date.setDate(1);
  date.setHours(0, 0, 0, 0);
  return date;
}
var start_of_month = startOfMonth;
var startOfDay = start_of_day;
function startOfToday() {
  return startOfDay(new Date());
}
var start_of_today = startOfToday;
function startOfTomorrow() {
  var now = new Date();
  var year = now.getFullYear();
  var month = now.getMonth();
  var day = now.getDate();
  var date = new Date(0);
  date.setFullYear(year, month, day + 1);
  date.setHours(0, 0, 0, 0);
  return date;
}
var start_of_tomorrow = startOfTomorrow;
function startOfYesterday() {
  var now = new Date();
  var year = now.getFullYear();
  var month = now.getMonth();
  var day = now.getDate();
  var date = new Date(0);
  date.setFullYear(year, month, day - 1);
  date.setHours(0, 0, 0, 0);
  return date;
}
var start_of_yesterday = startOfYesterday;
var addDays = add_days;
function subDays(dirtyDate, dirtyAmount) {
  var amount = Number(dirtyAmount);
  return addDays(dirtyDate, -amount);
}
var sub_days = subDays;
var addHours = add_hours;
function subHours(dirtyDate, dirtyAmount) {
  var amount = Number(dirtyAmount);
  return addHours(dirtyDate, -amount);
}
var sub_hours = subHours;
var addMilliseconds = add_milliseconds;
function subMilliseconds(dirtyDate, dirtyAmount) {
  var amount = Number(dirtyAmount);
  return addMilliseconds(dirtyDate, -amount);
}
var sub_milliseconds = subMilliseconds;
var addMinutes = add_minutes;
function subMinutes(dirtyDate, dirtyAmount) {
  var amount = Number(dirtyAmount);
  return addMinutes(dirtyDate, -amount);
}
var sub_minutes = subMinutes;
var addMonths = add_months;
function subMonths(dirtyDate, dirtyAmount) {
  var amount = Number(dirtyAmount);
  return addMonths(dirtyDate, -amount);
}
var sub_months = subMonths;
var addQuarters = add_quarters;
function subQuarters(dirtyDate, dirtyAmount) {
  var amount = Number(dirtyAmount);
  return addQuarters(dirtyDate, -amount);
}
var sub_quarters = subQuarters;
var addSeconds = add_seconds;
function subSeconds(dirtyDate, dirtyAmount) {
  var amount = Number(dirtyAmount);
  return addSeconds(dirtyDate, -amount);
}
var sub_seconds = subSeconds;
var addWeeks = add_weeks;
function subWeeks(dirtyDate, dirtyAmount) {
  var amount = Number(dirtyAmount);
  return addWeeks(dirtyDate, -amount);
}
var sub_weeks = subWeeks;
var addYears = add_years;
function subYears(dirtyDate, dirtyAmount) {
  var amount = Number(dirtyAmount);
  return addYears(dirtyDate, -amount);
}
var sub_years = subYears;
var dateFns = {
  addDays: add_days,
  addHours: add_hours,
  addISOYears: add_iso_years,
  addMilliseconds: add_milliseconds,
  addMinutes: add_minutes,
  addMonths: add_months,
  addQuarters: add_quarters,
  addSeconds: add_seconds,
  addWeeks: add_weeks,
  addYears: add_years,
  areRangesOverlapping: are_ranges_overlapping,
  closestIndexTo: closest_index_to,
  closestTo: closest_to,
  compareAsc: compare_asc,
  compareDesc: compare_desc,
  differenceInCalendarDays: difference_in_calendar_days,
  differenceInCalendarISOWeeks: difference_in_calendar_iso_weeks,
  differenceInCalendarISOYears: difference_in_calendar_iso_years,
  differenceInCalendarMonths: difference_in_calendar_months,
  differenceInCalendarQuarters: difference_in_calendar_quarters,
  differenceInCalendarWeeks: difference_in_calendar_weeks,
  differenceInCalendarYears: difference_in_calendar_years,
  differenceInDays: difference_in_days,
  differenceInHours: difference_in_hours,
  differenceInISOYears: difference_in_iso_years,
  differenceInMilliseconds: difference_in_milliseconds,
  differenceInMinutes: difference_in_minutes,
  differenceInMonths: difference_in_months,
  differenceInQuarters: difference_in_quarters,
  differenceInSeconds: difference_in_seconds,
  differenceInWeeks: difference_in_weeks,
  differenceInYears: difference_in_years,
  distanceInWords: distance_in_words,
  distanceInWordsStrict: distance_in_words_strict,
  distanceInWordsToNow: distance_in_words_to_now,
  eachDay: each_day,
  endOfDay: end_of_day,
  endOfHour: end_of_hour,
  endOfISOWeek: end_of_iso_week,
  endOfISOYear: end_of_iso_year,
  endOfMinute: end_of_minute,
  endOfMonth: end_of_month,
  endOfQuarter: end_of_quarter,
  endOfSecond: end_of_second,
  endOfToday: end_of_today,
  endOfTomorrow: end_of_tomorrow,
  endOfWeek: end_of_week,
  endOfYear: end_of_year,
  endOfYesterday: end_of_yesterday,
  format: format_1,
  getDate: get_date,
  getDay: get_day,
  getDayOfYear: get_day_of_year,
  getDaysInMonth: get_days_in_month,
  getDaysInYear: get_days_in_year,
  getHours: get_hours,
  getISODay: get_iso_day,
  getISOWeek: get_iso_week,
  getISOWeeksInYear: get_iso_weeks_in_year,
  getISOYear: get_iso_year,
  getMilliseconds: get_milliseconds,
  getMinutes: get_minutes,
  getMonth: get_month,
  getOverlappingDaysInRanges: get_overlapping_days_in_ranges,
  getQuarter: get_quarter,
  getSeconds: get_seconds,
  getTime: get_time,
  getYear: get_year,
  isAfter: is_after,
  isBefore: is_before,
  isDate: is_date,
  isEqual: is_equal,
  isFirstDayOfMonth: is_first_day_of_month,
  isFriday: is_friday,
  isFuture: is_future,
  isLastDayOfMonth: is_last_day_of_month,
  isLeapYear: is_leap_year,
  isMonday: is_monday,
  isPast: is_past,
  isSameDay: is_same_day,
  isSameHour: is_same_hour,
  isSameISOWeek: is_same_iso_week,
  isSameISOYear: is_same_iso_year,
  isSameMinute: is_same_minute,
  isSameMonth: is_same_month,
  isSameQuarter: is_same_quarter,
  isSameSecond: is_same_second,
  isSameWeek: is_same_week,
  isSameYear: is_same_year,
  isSaturday: is_saturday,
  isSunday: is_sunday,
  isThisHour: is_this_hour,
  isThisISOWeek: is_this_iso_week,
  isThisISOYear: is_this_iso_year,
  isThisMinute: is_this_minute,
  isThisMonth: is_this_month,
  isThisQuarter: is_this_quarter,
  isThisSecond: is_this_second,
  isThisWeek: is_this_week,
  isThisYear: is_this_year,
  isThursday: is_thursday,
  isToday: is_today,
  isTomorrow: is_tomorrow,
  isTuesday: is_tuesday,
  isValid: is_valid,
  isWednesday: is_wednesday,
  isWeekend: is_weekend,
  isWithinRange: is_within_range,
  isYesterday: is_yesterday,
  lastDayOfISOWeek: last_day_of_iso_week,
  lastDayOfISOYear: last_day_of_iso_year,
  lastDayOfMonth: last_day_of_month,
  lastDayOfQuarter: last_day_of_quarter,
  lastDayOfWeek: last_day_of_week,
  lastDayOfYear: last_day_of_year,
  max: max_1,
  min: min_1,
  parse: parse_1,
  setDate: set_date,
  setDay: set_day,
  setDayOfYear: set_day_of_year,
  setHours: set_hours,
  setISODay: set_iso_day,
  setISOWeek: set_iso_week,
  setISOYear: set_iso_year,
  setMilliseconds: set_milliseconds,
  setMinutes: set_minutes,
  setMonth: set_month,
  setQuarter: set_quarter,
  setSeconds: set_seconds,
  setYear: set_year,
  startOfDay: start_of_day,
  startOfHour: start_of_hour,
  startOfISOWeek: start_of_iso_week,
  startOfISOYear: start_of_iso_year,
  startOfMinute: start_of_minute,
  startOfMonth: start_of_month,
  startOfQuarter: start_of_quarter,
  startOfSecond: start_of_second,
  startOfToday: start_of_today,
  startOfTomorrow: start_of_tomorrow,
  startOfWeek: start_of_week,
  startOfYear: start_of_year,
  startOfYesterday: start_of_yesterday,
  subDays: sub_days,
  subHours: sub_hours,
  subISOYears: sub_iso_years,
  subMilliseconds: sub_milliseconds,
  subMinutes: sub_minutes,
  subMonths: sub_months,
  subQuarters: sub_quarters,
  subSeconds: sub_seconds,
  subWeeks: sub_weeks,
  subYears: sub_years
};
class OrderHelper {
  static handleOrderCreationImplication(createdOrder) {
    if (createdOrder.itemSnapshot) {
      switch (createdOrder.currency.currencyType) {
        case CurrencyType.enum.VIRTUAL:
          Ctx.getAppState().refreshWallet();
          break;
      }
    }
  }
  static handleOrderFulfillmentImplication(createdOrder) {
    if (createdOrder.itemSnapshot) {
      switch (createdOrder.itemSnapshot.itemType) {
        case ItemType.enum.COINS:
          Ctx.getAppState().refreshWallet();
          break;
      }
    }
  }
}
OrderHelper.AVOID_REDIRECT_TO_FILE_PROTOCOL = null;
var orderExpiredImage = "data:image/svg+xml;base64, ";
var orderPendingImage = "data:image/svg+xml;base64, ";
var paymentFailedImage = "data:image/svg+xml;base64, ";
var paymentSuccessImage = "data:image/svg+xml;base64, ";
var PaymentStatusDialog = "";
class CloseButton extends React__default.Component {
  render() {
    const { className, isLoading, onClick } = this.props;
    return /* @__PURE__ */ React__default.createElement("button", {
      onClick,
      className: classNames("btn btnClose btn-ghost uppercase", className),
      disabled: isLoading
    }, isLoading && /* @__PURE__ */ React__default.createElement(Spinner, {
      className: SpinnerStyle.inline
    }), /* @__PURE__ */ React__default.createElement(Trans, {
      i18nKey: "PaymentStatusDialog.paymentSuccess.close"
    }, "CLOSE"));
  }
}
class PaymentStatusSuccessDialog extends React__default.Component {
  constructor(props) {
    super(props);
    this.handleClose = () => {
      const { onCloseDialog } = this.props;
      onCloseDialog();
    };
    this.state = {
      isLoading: false
    };
  }
  async componentDidMount() {
    try {
      this.setState({ isLoading: true });
      await GameHelper.loadGameInfo();
    } finally {
      this.setState({ isLoading: false });
    }
  }
  render() {
    const { isLoading } = this.state;
    const { orderInfo } = this.props;
    const price = `${orderInfo.currency.currencySymbol} ${PurchaseHelper.calculateIntegerPrice(orderInfo.totalPrice || 0, orderInfo.currency)}`;
    const itemSnapshot = orderInfo.itemSnapshot;
    const itemType = itemSnapshot && itemSnapshot.itemType;
    return /* @__PURE__ */ React__default.createElement(Dialog, {
      title: t("PaymentStatusDialog.paymentSuccess.title"),
      isOpen: true,
      className: classNames("paymentStatusDialog", this.props.className, {
        orderCode: itemType === ItemType.enum.CODE
      })
    }, /* @__PURE__ */ React__default.createElement(DialogBody, {
      className: classNames("dialogBody", { nonCode: itemType !== ItemType.enum.CODE })
    }, /* @__PURE__ */ React__default.createElement("img", {
      src: paymentSuccessImage,
      alt: "Payment Success"
    }), itemType === ItemType.enum.CODE ? /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement(Trans, {
      i18nKey: "PaymentStatusDialog.content.thanks"
    }, /* @__PURE__ */ React__default.createElement("p", {
      className: "code heading above"
    }, "Thank you! Your payment of ", /* @__PURE__ */ React__default.createElement("span", {
      className: "price"
    }, { price }), " was"), /* @__PURE__ */ React__default.createElement("p", {
      className: "code heading bottom"
    }, "successful.")), /* @__PURE__ */ React__default.createElement(Trans, {
      i18nKey: "PaymentStatusDialog.paymentSuccess.code.description"
    }, /* @__PURE__ */ React__default.createElement("p", {
      className: "description"
    }, "Your product key has been sent to your email. You can also see"), /* @__PURE__ */ React__default.createElement("p", {
      className: "description code bottom"
    }, "the key by clicking the See My Keys button below, or going to")), /* @__PURE__ */ React__default.createElement(Trans, {
      i18nKey: "PaymentStatusDialog.paymentSuccess.code.goToMyPurchasedItem"
    }, /* @__PURE__ */ React__default.createElement("p", {
      className: "goToPurchasedItemContainer"
    }, /* @__PURE__ */ React__default.createElement("span", null, "My Account"), /* @__PURE__ */ React__default.createElement(ArrowIcon, {
      className: classNames("arrow", ArrowIconStyles.right)
    }), /* @__PURE__ */ React__default.createElement("span", null, "Purchased Items"), /* @__PURE__ */ React__default.createElement(ArrowIcon, {
      className: classNames("arrow", ArrowIconStyles.right)
    }), /* @__PURE__ */ React__default.createElement("span", null, "Product Keys")))) : itemType === ItemType.enum.OPTIONBOX ? /* @__PURE__ */ React__default.createElement("div", {
      className: "optionboxPayment"
    }, /* @__PURE__ */ React__default.createElement("p", {
      className: "headingPayment"
    }, /* @__PURE__ */ React__default.createElement(Trans, {
      i18nKey: "PaymentStatusDialog.content.optionbox.thanks"
    }, "Thank you! Your payment of ", /* @__PURE__ */ React__default.createElement("span", {
      className: "text-[color:rgb(var(--od-rgba-text))]"
    }, { price }), " was successful.")), /* @__PURE__ */ React__default.createElement(Trans, {
      i18nKey: "PaymentStatusDialog.paymentSuccess.optionbox.description"
    }, /* @__PURE__ */ React__default.createElement("p", {
      className: "paymentDescription mt-5"
    }, "Please click the button below to open the option box and select the item you want to claim."), /* @__PURE__ */ React__default.createElement("p", {
      className: "paymentDescription mt-7"
    }, "You also can open the option box later at:")), /* @__PURE__ */ React__default.createElement(Trans, {
      i18nKey: "PaymentStatusDialog.paymentSuccess.optionbox.goToMyPurchasedItem"
    }, /* @__PURE__ */ React__default.createElement("p", {
      className: "goToOptionBoxPage"
    }, /* @__PURE__ */ React__default.createElement("span", null, "My Account"), /* @__PURE__ */ React__default.createElement(ArrowIcon, {
      className: classNames("arrow", ArrowIconStyles.right)
    }), /* @__PURE__ */ React__default.createElement("span", null, "Purchased Items"), /* @__PURE__ */ React__default.createElement(ArrowIcon, {
      className: classNames("arrow", ArrowIconStyles.right)
    }), /* @__PURE__ */ React__default.createElement("span", null, "Option Box")))) : /* @__PURE__ */ React__default.createElement(Trans, {
      i18nKey: "PaymentStatusDialog.paymentSuccess.content"
    }, /* @__PURE__ */ React__default.createElement("p", {
      className: "description above"
    }, "Thank you!"), /* @__PURE__ */ React__default.createElement("p", {
      className: "description"
    }, "Your payment of ", /* @__PURE__ */ React__default.createElement("span", {
      className: "price"
    }, { price }), " was successful."))), /* @__PURE__ */ React__default.createElement(DialogFooter, {
      className: "dialogFooter"
    }, itemType === ItemType.enum.CODE ? /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement(CloseButton, {
      isLoading,
      onClick: this.handleClose
    }), /* @__PURE__ */ React__default.createElement(Link, {
      to: AccPath.PurchasedKeys.makePath()
    }, /* @__PURE__ */ React__default.createElement(Button, {
      className: "btn btn-primary btnSeeKeys"
    }, /* @__PURE__ */ React__default.createElement(Trans, {
      i18nKey: "PaymentStatusDialog.paymentSuccess.button.seeMyKeys"
    }, "See My Keys")))) : itemType === ItemType.enum.OPTIONBOX ? /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement(CloseButton, {
      isLoading,
      onClick: this.handleClose
    }), /* @__PURE__ */ React__default.createElement(Link, {
      to: AccPath.PurchasedOptionbox.makePath()
    }, /* @__PURE__ */ React__default.createElement(Button, {
      className: "btn btn-primary btnSeeKeys"
    }, /* @__PURE__ */ React__default.createElement(Trans, {
      i18nKey: "PaymentStatusDialog.paymentSuccess.button.optionbox"
    }, "See My Optionbox")))) : /* @__PURE__ */ React__default.createElement(CloseButton, {
      className: "nonCode",
      isLoading,
      onClick: this.handleClose
    })));
  }
}
class PaymentStatusProcessedCountDownDialog extends React__default.Component {
  constructor() {
    super(...arguments);
    this.defaultProps = { isOpen: true };
  }
  render() {
    const { isOpen } = this.props;
    return /* @__PURE__ */ React__default.createElement(Dialog, {
      title: "Processing Payment",
      isOpen: isOpen || this.defaultProps.isOpen,
      className: classNames("paymentStatusDialog")
    }, /* @__PURE__ */ React__default.createElement(DialogBody, {
      className: "dialogBody processedCountdown"
    }, /* @__PURE__ */ React__default.createElement(Spinner, {
      className: classNames(SpinnerStyle.blue, "spinner")
    }), /* @__PURE__ */ React__default.createElement(Trans, {
      i18nKey: "PaymentStatusDialog.StatusProcessedTimeout.content"
    }, /* @__PURE__ */ React__default.createElement("p", null, "Your payment is now being processed. Please wait for a few seconds..."))));
  }
}
class PaymentStatusNeedMoreTimeProcessedDialog extends React__default.Component {
  constructor() {
    super(...arguments);
    this.defaultProps = { isOpen: true };
  }
  render() {
    const { onClose, isOpen } = this.props;
    return /* @__PURE__ */ React__default.createElement(Dialog, {
      title: "Processing Payment",
      isOpen: isOpen || this.defaultProps.isOpen,
      className: classNames("paymentStatusDialog needMoreTime")
    }, /* @__PURE__ */ React__default.createElement(DialogBody, {
      className: "dialogBody needMoreTime"
    }, /* @__PURE__ */ React__default.createElement("img", {
      src: orderPendingImage,
      alt: "order pending"
    }), /* @__PURE__ */ React__default.createElement(Trans, {
      i18nKey: "PaymentStatusDialog.paymentProcessed.content"
    }, /* @__PURE__ */ React__default.createElement("p", {
      className: "description above"
    }, "Your payment is still being processed, which may take up to 15 minutes. You will be notified via email"), /* @__PURE__ */ React__default.createElement("p", {
      className: "description "
    }, "when your payment has been processed. For assistance, please contact support."))), onClose && /* @__PURE__ */ React__default.createElement(DialogFooter, {
      className: "dialogFooter"
    }, /* @__PURE__ */ React__default.createElement("button", {
      className: "btn btnClose failed",
      onClick: onClose
    }, /* @__PURE__ */ React__default.createElement(Trans, {
      i18nKey: "PaymentStatusDialog.paymentFailed.close"
    }, "CLOSE"))));
  }
}
class PaymentStatusFailedDialog extends React__default.Component {
  render() {
    return /* @__PURE__ */ React__default.createElement(Dialog, {
      title: t("PaymentStatusDialog.paymentFailed.title"),
      isOpen: true,
      className: classNames("paymentStatusDialog", this.props.className)
    }, /* @__PURE__ */ React__default.createElement(DialogBody, {
      className: "dialogBody failed"
    }, /* @__PURE__ */ React__default.createElement("img", {
      src: paymentFailedImage,
      alt: "Payment Failed"
    }), /* @__PURE__ */ React__default.createElement(Trans, {
      i18nKey: "PaymentStatusDialog.paymentFailed.content"
    }, /* @__PURE__ */ React__default.createElement("p", {
      className: "description above"
    }, "Your payment has failed."), /* @__PURE__ */ React__default.createElement("p", {
      className: "description"
    }, "Please contact support for assistance."))), /* @__PURE__ */ React__default.createElement(DialogFooter, {
      className: "dialogFooter"
    }, /* @__PURE__ */ React__default.createElement("button", {
      onClick: this.props.onCloseDialog,
      className: "btn btnClose failed"
    }, /* @__PURE__ */ React__default.createElement(Trans, {
      i18nKey: "PaymentStatusDialog.paymentFailed.close"
    }, "CLOSE"))));
  }
}
class OrderCancelledDialog extends React__default.Component {
  render() {
    return /* @__PURE__ */ React__default.createElement(Dialog, {
      title: /* @__PURE__ */ React__default.createElement(Trans, {
        i18nKey: "OrderPage.cancellationnotice.title"
      }, "Order Cancelled"),
      isOpen: true,
      className: classNames("paymentStatusDialog", this.props.className)
    }, /* @__PURE__ */ React__default.createElement(DialogBody, {
      className: "dialogBody"
    }, /* @__PURE__ */ React__default.createElement("img", {
      src: orderExpiredImage,
      alt: "Order cancelled"
    }), /* @__PURE__ */ React__default.createElement("p", {
      className: "description above"
    }, /* @__PURE__ */ React__default.createElement(Trans, {
      i18nKey: "OrderPage.cancellationNotice.message"
    }, "Your order has been successfully canceled. Head back to the store to explore other awesome games."))), /* @__PURE__ */ React__default.createElement(DialogFooter, {
      className: "dialogFooter"
    }, /* @__PURE__ */ React__default.createElement("button", {
      className: "btn btnClose cancelled",
      onClick: this.props.onCloseDialog
    }, /* @__PURE__ */ React__default.createElement(Trans, {
      i18nKey: "OrderPage.cancellationNotice.closeButton"
    }, "Close"))));
  }
}
class OrderExpiredDialog extends React__default.Component {
  render() {
    return /* @__PURE__ */ React__default.createElement(Dialog, {
      title: /* @__PURE__ */ React__default.createElement(Trans, {
        i18nKey: "OrderPage.expiryDialog.title"
      }, "Order Expired"),
      isOpen: true,
      className: classNames("paymentStatusDialog", this.props.className)
    }, /* @__PURE__ */ React__default.createElement(DialogBody, {
      className: "dialogBody"
    }, /* @__PURE__ */ React__default.createElement("img", {
      src: orderExpiredImage,
      alt: "Order expired"
    }), /* @__PURE__ */ React__default.createElement("p", {
      className: "description above"
    }, /* @__PURE__ */ React__default.createElement(Trans, {
      i18nKey: "OrderPage.expiryDialog.message"
    }, "Your order has expired. Please return to the store to place a new order."))), /* @__PURE__ */ React__default.createElement(DialogFooter, {
      className: "dialogFooter"
    }, /* @__PURE__ */ React__default.createElement("button", {
      className: "btn btnClose expired",
      onClick: this.props.onCloseDialog
    }, /* @__PURE__ */ React__default.createElement(Trans, {
      i18nKey: "OrderPage.expiryDialog.closeButton"
    }, "Close"))));
  }
}
export { OrderHelper as O, PaymentStatusSuccessDialog as P, PaymentStatusNeedMoreTimeProcessedDialog as a, PaymentStatusProcessedCountDownDialog as b, PaymentStatusFailedDialog as c, dateFns as d, OrderExpiredDialog as e, OrderCancelledDialog as f };
