wip
This commit is contained in:
Vendored
+220
-437
@@ -1058,6 +1058,14 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
|
||||
}));
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 4040:
|
||||
/***/ ((module) => {
|
||||
|
||||
"use strict";
|
||||
module.exports = window["wp"]["deprecated"];
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 5537:
|
||||
@@ -1075,6 +1083,13 @@ moment.tz.load(__webpack_require__(1681));
|
||||
"use strict";
|
||||
module.exports = window["moment"];
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 7140:
|
||||
/***/ (() => {
|
||||
|
||||
|
||||
|
||||
/***/ })
|
||||
|
||||
/******/ });
|
||||
@@ -1149,180 +1164,123 @@ var __webpack_exports__ = {};
|
||||
// This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
|
||||
(() => {
|
||||
"use strict";
|
||||
// ESM COMPAT FLAG
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
|
||||
// EXPORTS
|
||||
__webpack_require__.d(__webpack_exports__, {
|
||||
__experimentalGetSettings: () => (/* binding */ __experimentalGetSettings),
|
||||
date: () => (/* binding */ date),
|
||||
dateI18n: () => (/* binding */ dateI18n),
|
||||
format: () => (/* binding */ format),
|
||||
getDate: () => (/* binding */ getDate),
|
||||
getSettings: () => (/* binding */ getSettings),
|
||||
gmdate: () => (/* binding */ gmdate),
|
||||
gmdateI18n: () => (/* binding */ gmdateI18n),
|
||||
humanTimeDiff: () => (/* binding */ humanTimeDiff),
|
||||
isInTheFuture: () => (/* binding */ isInTheFuture),
|
||||
setSettings: () => (/* binding */ setSettings)
|
||||
});
|
||||
|
||||
// EXTERNAL MODULE: external "moment"
|
||||
var external_moment_ = __webpack_require__(6154);
|
||||
var external_moment_default = /*#__PURE__*/__webpack_require__.n(external_moment_);
|
||||
// EXTERNAL MODULE: ./node_modules/moment-timezone/moment-timezone.js
|
||||
var moment_timezone = __webpack_require__(3849);
|
||||
// EXTERNAL MODULE: ./node_modules/moment-timezone/moment-timezone-utils.js
|
||||
var moment_timezone_utils = __webpack_require__(1685);
|
||||
;// external ["wp","deprecated"]
|
||||
const external_wp_deprecated_namespaceObject = window["wp"]["deprecated"];
|
||||
var external_wp_deprecated_default = /*#__PURE__*/__webpack_require__.n(external_wp_deprecated_namespaceObject);
|
||||
;// ./node_modules/@wordpress/date/build-module/index.js
|
||||
/**
|
||||
* External dependencies
|
||||
*/
|
||||
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
||||
/* harmony export */ __experimentalGetSettings: () => (/* binding */ __experimentalGetSettings),
|
||||
/* harmony export */ date: () => (/* binding */ date),
|
||||
/* harmony export */ dateI18n: () => (/* binding */ dateI18n),
|
||||
/* harmony export */ format: () => (/* binding */ format),
|
||||
/* harmony export */ getDate: () => (/* binding */ getDate),
|
||||
/* harmony export */ getSettings: () => (/* binding */ getSettings),
|
||||
/* harmony export */ gmdate: () => (/* binding */ gmdate),
|
||||
/* harmony export */ gmdateI18n: () => (/* binding */ gmdateI18n),
|
||||
/* harmony export */ humanTimeDiff: () => (/* binding */ humanTimeDiff),
|
||||
/* harmony export */ isInTheFuture: () => (/* binding */ isInTheFuture),
|
||||
/* harmony export */ setSettings: () => (/* binding */ setSettings)
|
||||
/* harmony export */ });
|
||||
/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6154);
|
||||
/* harmony import */ var moment__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(moment__WEBPACK_IMPORTED_MODULE_0__);
|
||||
/* harmony import */ var moment_timezone_moment_timezone__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3849);
|
||||
/* harmony import */ var moment_timezone_moment_timezone__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(moment_timezone_moment_timezone__WEBPACK_IMPORTED_MODULE_1__);
|
||||
/* harmony import */ var moment_timezone_moment_timezone_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1685);
|
||||
/* harmony import */ var moment_timezone_moment_timezone_utils__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(moment_timezone_moment_timezone_utils__WEBPACK_IMPORTED_MODULE_2__);
|
||||
/* harmony import */ var _wordpress_deprecated__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4040);
|
||||
/* harmony import */ var _wordpress_deprecated__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_deprecated__WEBPACK_IMPORTED_MODULE_3__);
|
||||
/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7140);
|
||||
/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_types__WEBPACK_IMPORTED_MODULE_4__);
|
||||
/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};
|
||||
/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in _types__WEBPACK_IMPORTED_MODULE_4__) if(["default","__experimentalGetSettings","date","dateI18n","format","getDate","getSettings","gmdate","gmdateI18n","humanTimeDiff","isInTheFuture","setSettings"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => _types__WEBPACK_IMPORTED_MODULE_4__[__WEBPACK_IMPORT_KEY__]
|
||||
/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* WordPress dependencies
|
||||
*/
|
||||
|
||||
|
||||
/** @typedef {import('moment').Moment} Moment */
|
||||
/** @typedef {import('moment').LocaleSpecification} MomentLocaleSpecification */
|
||||
|
||||
/**
|
||||
* @typedef MeridiemConfig
|
||||
* @property {string} am Lowercase AM.
|
||||
* @property {string} AM Uppercase AM.
|
||||
* @property {string} pm Lowercase PM.
|
||||
* @property {string} PM Uppercase PM.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @typedef FormatsConfig
|
||||
* @property {string} time Time format.
|
||||
* @property {string} date Date format.
|
||||
* @property {string} datetime Datetime format.
|
||||
* @property {string} datetimeAbbreviated Abbreviated datetime format.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @typedef TimezoneConfig
|
||||
* @property {string} offset Offset setting.
|
||||
* @property {string} offsetFormatted Offset setting with decimals formatted to minutes.
|
||||
* @property {string} string The timezone as a string (e.g., `'America/Los_Angeles'`).
|
||||
* @property {string} abbr Abbreviation for the timezone.
|
||||
*/
|
||||
|
||||
/* eslint-disable jsdoc/valid-types */
|
||||
/**
|
||||
* @typedef L10nSettings
|
||||
* @property {string} locale Moment locale.
|
||||
* @property {MomentLocaleSpecification['months']} months Locale months.
|
||||
* @property {MomentLocaleSpecification['monthsShort']} monthsShort Locale months short.
|
||||
* @property {MomentLocaleSpecification['weekdays']} weekdays Locale weekdays.
|
||||
* @property {MomentLocaleSpecification['weekdaysShort']} weekdaysShort Locale weekdays short.
|
||||
* @property {MeridiemConfig} meridiem Meridiem config.
|
||||
* @property {MomentLocaleSpecification['relativeTime']} relative Relative time config.
|
||||
* @property {0|1|2|3|4|5|6} startOfWeek Day that the week starts on.
|
||||
*/
|
||||
/* eslint-enable jsdoc/valid-types */
|
||||
|
||||
/**
|
||||
* @typedef DateSettings
|
||||
* @property {L10nSettings} l10n Localization settings.
|
||||
* @property {FormatsConfig} formats Date/time formats config.
|
||||
* @property {TimezoneConfig} timezone Timezone settings.
|
||||
*/
|
||||
|
||||
const WP_ZONE = 'WP';
|
||||
|
||||
// This regular expression tests positive for UTC offsets as described in ISO 8601.
|
||||
// See: https://en.wikipedia.org/wiki/ISO_8601#Time_offsets_from_UTC
|
||||
const WP_ZONE = "WP";
|
||||
const VALID_UTC_OFFSET = /^[+-][0-1][0-9](:?[0-9][0-9])?$/;
|
||||
|
||||
// Changes made here will likely need to be synced with Core in the file
|
||||
// src/wp-includes/script-loader.php in `wp_default_packages_inline_scripts()`.
|
||||
/** @type {DateSettings} */
|
||||
let settings = {
|
||||
l10n: {
|
||||
locale: 'en',
|
||||
months: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
|
||||
monthsShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
|
||||
weekdays: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
|
||||
weekdaysShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
|
||||
meridiem: {
|
||||
am: 'am',
|
||||
pm: 'pm',
|
||||
AM: 'AM',
|
||||
PM: 'PM'
|
||||
},
|
||||
locale: "en",
|
||||
months: [
|
||||
"January",
|
||||
"February",
|
||||
"March",
|
||||
"April",
|
||||
"May",
|
||||
"June",
|
||||
"July",
|
||||
"August",
|
||||
"September",
|
||||
"October",
|
||||
"November",
|
||||
"December"
|
||||
],
|
||||
monthsShort: [
|
||||
"Jan",
|
||||
"Feb",
|
||||
"Mar",
|
||||
"Apr",
|
||||
"May",
|
||||
"Jun",
|
||||
"Jul",
|
||||
"Aug",
|
||||
"Sep",
|
||||
"Oct",
|
||||
"Nov",
|
||||
"Dec"
|
||||
],
|
||||
weekdays: [
|
||||
"Sunday",
|
||||
"Monday",
|
||||
"Tuesday",
|
||||
"Wednesday",
|
||||
"Thursday",
|
||||
"Friday",
|
||||
"Saturday"
|
||||
],
|
||||
weekdaysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
|
||||
meridiem: { am: "am", pm: "pm", AM: "AM", PM: "PM" },
|
||||
relative: {
|
||||
future: '%s from now',
|
||||
past: '%s ago',
|
||||
s: 'a few seconds',
|
||||
ss: '%d seconds',
|
||||
m: 'a minute',
|
||||
mm: '%d minutes',
|
||||
h: 'an hour',
|
||||
hh: '%d hours',
|
||||
d: 'a day',
|
||||
dd: '%d days',
|
||||
M: 'a month',
|
||||
MM: '%d months',
|
||||
y: 'a year',
|
||||
yy: '%d years'
|
||||
future: "%s from now",
|
||||
past: "%s ago",
|
||||
s: "a few seconds",
|
||||
ss: "%d seconds",
|
||||
m: "a minute",
|
||||
mm: "%d minutes",
|
||||
h: "an hour",
|
||||
hh: "%d hours",
|
||||
d: "a day",
|
||||
dd: "%d days",
|
||||
M: "a month",
|
||||
MM: "%d months",
|
||||
y: "a year",
|
||||
yy: "%d years"
|
||||
},
|
||||
startOfWeek: 0
|
||||
},
|
||||
formats: {
|
||||
time: 'g: i a',
|
||||
date: 'F j, Y',
|
||||
datetime: 'F j, Y g: i a',
|
||||
datetimeAbbreviated: 'M j, Y g: i a'
|
||||
time: "g: i a",
|
||||
date: "F j, Y",
|
||||
datetime: "F j, Y g: i a",
|
||||
datetimeAbbreviated: "M j, Y g: i a"
|
||||
},
|
||||
timezone: {
|
||||
offset: '0',
|
||||
offsetFormatted: '0',
|
||||
string: '',
|
||||
abbr: ''
|
||||
}
|
||||
timezone: { offset: "0", offsetFormatted: "0", string: "", abbr: "" }
|
||||
};
|
||||
|
||||
/**
|
||||
* Adds a locale to moment, using the format supplied by `wp_localize_script()`.
|
||||
*
|
||||
* @param {DateSettings} dateSettings Settings, including locale data.
|
||||
*/
|
||||
function setSettings(dateSettings) {
|
||||
settings = dateSettings;
|
||||
setupWPTimezone();
|
||||
|
||||
// Does moment already have a locale with the right name?
|
||||
if (external_moment_default().locales().includes(dateSettings.l10n.locale)) {
|
||||
// Is that locale misconfigured, e.g. because we are on a site running
|
||||
// WordPress < 6.0?
|
||||
if (external_moment_default().localeData(dateSettings.l10n.locale).longDateFormat('LTS') === null) {
|
||||
// Delete the misconfigured locale.
|
||||
// @ts-ignore Type definitions are incorrect - null is permitted.
|
||||
external_moment_default().defineLocale(dateSettings.l10n.locale, null);
|
||||
if (moment__WEBPACK_IMPORTED_MODULE_0___default().locales().includes(dateSettings.l10n.locale)) {
|
||||
if (moment__WEBPACK_IMPORTED_MODULE_0___default().localeData(dateSettings.l10n.locale).longDateFormat("LTS") === null) {
|
||||
moment__WEBPACK_IMPORTED_MODULE_0___default().defineLocale(dateSettings.l10n.locale, null);
|
||||
} else {
|
||||
// We have a properly configured locale, so no need to create one.
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// defineLocale() will modify the current locale, so back it up.
|
||||
const currentLocale = external_moment_default().locale();
|
||||
|
||||
// Create locale.
|
||||
external_moment_default().defineLocale(dateSettings.l10n.locale, {
|
||||
const currentLocale = moment__WEBPACK_IMPORTED_MODULE_0___default().locale();
|
||||
moment__WEBPACK_IMPORTED_MODULE_0___default().defineLocale(dateSettings.l10n.locale, {
|
||||
// Inherit anything missing from English. We don't load
|
||||
// moment-with-locales.js so English is all there is.
|
||||
parentLocale: 'en',
|
||||
parentLocale: "en",
|
||||
months: dateSettings.l10n.months,
|
||||
monthsShort: dateSettings.l10n.monthsShort,
|
||||
weekdays: dateSettings.l10n.weekdays,
|
||||
@@ -1335,144 +1293,96 @@ function setSettings(dateSettings) {
|
||||
},
|
||||
longDateFormat: {
|
||||
LT: dateSettings.formats.time,
|
||||
LTS: external_moment_default().localeData('en').longDateFormat('LTS'),
|
||||
L: external_moment_default().localeData('en').longDateFormat('L'),
|
||||
LTS: moment__WEBPACK_IMPORTED_MODULE_0___default().localeData("en").longDateFormat("LTS"),
|
||||
L: moment__WEBPACK_IMPORTED_MODULE_0___default().localeData("en").longDateFormat("L"),
|
||||
LL: dateSettings.formats.date,
|
||||
LLL: dateSettings.formats.datetime,
|
||||
LLLL: external_moment_default().localeData('en').longDateFormat('LLLL')
|
||||
LLLL: moment__WEBPACK_IMPORTED_MODULE_0___default().localeData("en").longDateFormat("LLLL")
|
||||
},
|
||||
// From human_time_diff?
|
||||
// Set to `(number, withoutSuffix, key, isFuture) => {}` instead.
|
||||
relativeTime: dateSettings.l10n.relative
|
||||
});
|
||||
|
||||
// Restore the locale to what it was.
|
||||
external_moment_default().locale(currentLocale);
|
||||
moment__WEBPACK_IMPORTED_MODULE_0___default().locale(currentLocale);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the currently defined date settings.
|
||||
*
|
||||
* @return {DateSettings} Settings, including locale data.
|
||||
*/
|
||||
function getSettings() {
|
||||
return settings;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the currently defined date settings.
|
||||
*
|
||||
* @deprecated
|
||||
* @return {DateSettings} Settings, including locale data.
|
||||
*/
|
||||
function __experimentalGetSettings() {
|
||||
external_wp_deprecated_default()('wp.date.__experimentalGetSettings', {
|
||||
since: '6.1',
|
||||
alternative: 'wp.date.getSettings'
|
||||
_wordpress_deprecated__WEBPACK_IMPORTED_MODULE_3___default()("wp.date.__experimentalGetSettings", {
|
||||
since: "6.1",
|
||||
alternative: "wp.date.getSettings"
|
||||
});
|
||||
return getSettings();
|
||||
}
|
||||
function setupWPTimezone() {
|
||||
// Get the current timezone settings from the WP timezone string.
|
||||
const currentTimezone = external_moment_default().tz.zone(settings.timezone.string);
|
||||
|
||||
// Check to see if we have a valid TZ data, if so, use it for the custom WP_ZONE timezone, otherwise just use the offset.
|
||||
const currentTimezone = moment__WEBPACK_IMPORTED_MODULE_0___default().tz.zone(settings.timezone.string);
|
||||
if (currentTimezone) {
|
||||
// Create WP timezone based off settings.timezone.string. We need to include the additional data so that we
|
||||
// don't lose information about daylight savings time and other items.
|
||||
// See https://github.com/WordPress/gutenberg/pull/48083
|
||||
external_moment_default().tz.add(external_moment_default().tz.pack({
|
||||
name: WP_ZONE,
|
||||
abbrs: currentTimezone.abbrs,
|
||||
untils: currentTimezone.untils,
|
||||
offsets: currentTimezone.offsets
|
||||
}));
|
||||
moment__WEBPACK_IMPORTED_MODULE_0___default().tz.add(
|
||||
moment__WEBPACK_IMPORTED_MODULE_0___default().tz.pack({
|
||||
name: WP_ZONE,
|
||||
abbrs: currentTimezone.abbrs,
|
||||
untils: currentTimezone.untils,
|
||||
offsets: currentTimezone.offsets
|
||||
})
|
||||
);
|
||||
} else {
|
||||
// Create WP timezone based off dateSettings.
|
||||
external_moment_default().tz.add(external_moment_default().tz.pack({
|
||||
name: WP_ZONE,
|
||||
abbrs: [WP_ZONE],
|
||||
untils: [null],
|
||||
offsets: [-settings.timezone.offset * 60 || 0]
|
||||
}));
|
||||
moment__WEBPACK_IMPORTED_MODULE_0___default().tz.add(
|
||||
moment__WEBPACK_IMPORTED_MODULE_0___default().tz.pack({
|
||||
name: WP_ZONE,
|
||||
abbrs: [WP_ZONE],
|
||||
untils: [null],
|
||||
offsets: [-settings.timezone.offset * 60 || 0]
|
||||
})
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// Date constants.
|
||||
/**
|
||||
* Number of seconds in one minute.
|
||||
*
|
||||
* @type {number}
|
||||
*/
|
||||
const MINUTE_IN_SECONDS = 60;
|
||||
/**
|
||||
* Number of minutes in one hour.
|
||||
*
|
||||
* @type {number}
|
||||
*/
|
||||
const HOUR_IN_MINUTES = 60;
|
||||
/**
|
||||
* Number of seconds in one hour.
|
||||
*
|
||||
* @type {number}
|
||||
*/
|
||||
const HOUR_IN_SECONDS = 60 * MINUTE_IN_SECONDS;
|
||||
|
||||
/**
|
||||
* Map of PHP formats to Moment.js formats.
|
||||
*
|
||||
* These are used internally by {@link wp.date.format}, and are either
|
||||
* a string representing the corresponding Moment.js format code, or a
|
||||
* function which returns the formatted string.
|
||||
*
|
||||
* This should only be used through {@link wp.date.format}, not
|
||||
* directly.
|
||||
*/
|
||||
const formatMap = {
|
||||
// Day.
|
||||
d: 'DD',
|
||||
D: 'ddd',
|
||||
j: 'D',
|
||||
l: 'dddd',
|
||||
N: 'E',
|
||||
d: "DD",
|
||||
D: "ddd",
|
||||
j: "D",
|
||||
l: "dddd",
|
||||
N: "E",
|
||||
/**
|
||||
* Gets the ordinal suffix.
|
||||
*
|
||||
* @param {Moment} momentDate Moment instance.
|
||||
* @param momentDate Moment instance.
|
||||
*
|
||||
* @return {string} Formatted date.
|
||||
* @return Formatted date.
|
||||
*/
|
||||
S(momentDate) {
|
||||
// Do - D.
|
||||
const num = momentDate.format('D');
|
||||
const withOrdinal = momentDate.format('Do');
|
||||
return withOrdinal.replace(num, '');
|
||||
const num = momentDate.format("D");
|
||||
const withOrdinal = momentDate.format("Do");
|
||||
return withOrdinal.replace(num, "");
|
||||
},
|
||||
w: 'd',
|
||||
w: "d",
|
||||
/**
|
||||
* Gets the day of the year (zero-indexed).
|
||||
*
|
||||
* @param {Moment} momentDate Moment instance.
|
||||
* @param momentDate Moment instance.
|
||||
*
|
||||
* @return {string} Formatted date.
|
||||
* @return Formatted date.
|
||||
*/
|
||||
z(momentDate) {
|
||||
// DDD - 1.
|
||||
return (parseInt(momentDate.format('DDD'), 10) - 1).toString();
|
||||
return (parseInt(momentDate.format("DDD"), 10) - 1).toString();
|
||||
},
|
||||
// Week.
|
||||
W: 'W',
|
||||
W: "W",
|
||||
// Month.
|
||||
F: 'MMMM',
|
||||
m: 'MM',
|
||||
M: 'MMM',
|
||||
n: 'M',
|
||||
F: "MMMM",
|
||||
m: "MM",
|
||||
M: "MMM",
|
||||
n: "M",
|
||||
/**
|
||||
* Gets the days in the month.
|
||||
*
|
||||
* @param {Moment} momentDate Moment instance.
|
||||
* @param momentDate Moment instance.
|
||||
*
|
||||
* @return {number} Formatted date.
|
||||
* @return Formatted date.
|
||||
*/
|
||||
t(momentDate) {
|
||||
return momentDate.daysInMonth();
|
||||
@@ -1481,273 +1391,153 @@ const formatMap = {
|
||||
/**
|
||||
* Gets whether the current year is a leap year.
|
||||
*
|
||||
* @param {Moment} momentDate Moment instance.
|
||||
* @param momentDate Moment instance.
|
||||
*
|
||||
* @return {string} Formatted date.
|
||||
* @return Formatted date.
|
||||
*/
|
||||
L(momentDate) {
|
||||
return momentDate.isLeapYear() ? '1' : '0';
|
||||
return momentDate.isLeapYear() ? "1" : "0";
|
||||
},
|
||||
o: 'GGGG',
|
||||
Y: 'YYYY',
|
||||
y: 'YY',
|
||||
o: "GGGG",
|
||||
Y: "YYYY",
|
||||
y: "YY",
|
||||
// Time.
|
||||
a: 'a',
|
||||
A: 'A',
|
||||
a: "a",
|
||||
A: "A",
|
||||
/**
|
||||
* Gets the current time in Swatch Internet Time (.beats).
|
||||
*
|
||||
* @param {Moment} momentDate Moment instance.
|
||||
* @param momentDate Moment instance.
|
||||
*
|
||||
* @return {number} Formatted date.
|
||||
* @return Formatted date.
|
||||
*/
|
||||
B(momentDate) {
|
||||
const timezoned = external_moment_default()(momentDate).utcOffset(60);
|
||||
const seconds = parseInt(timezoned.format('s'), 10),
|
||||
minutes = parseInt(timezoned.format('m'), 10),
|
||||
hours = parseInt(timezoned.format('H'), 10);
|
||||
return parseInt(((seconds + minutes * MINUTE_IN_SECONDS + hours * HOUR_IN_SECONDS) / 86.4).toString(), 10);
|
||||
const timezoned = moment__WEBPACK_IMPORTED_MODULE_0___default()(momentDate).utcOffset(60);
|
||||
const seconds = parseInt(timezoned.format("s"), 10), minutes = parseInt(timezoned.format("m"), 10), hours = parseInt(timezoned.format("H"), 10);
|
||||
return parseInt(
|
||||
((seconds + minutes * MINUTE_IN_SECONDS + hours * HOUR_IN_SECONDS) / 86.4).toString(),
|
||||
10
|
||||
);
|
||||
},
|
||||
g: 'h',
|
||||
G: 'H',
|
||||
h: 'hh',
|
||||
H: 'HH',
|
||||
i: 'mm',
|
||||
s: 'ss',
|
||||
u: 'SSSSSS',
|
||||
v: 'SSS',
|
||||
g: "h",
|
||||
G: "H",
|
||||
h: "hh",
|
||||
H: "HH",
|
||||
i: "mm",
|
||||
s: "ss",
|
||||
u: "SSSSSS",
|
||||
v: "SSS",
|
||||
// Timezone.
|
||||
e: 'zz',
|
||||
e: "zz",
|
||||
/**
|
||||
* Gets whether the timezone is in DST currently.
|
||||
*
|
||||
* @param {Moment} momentDate Moment instance.
|
||||
* @param momentDate Moment instance.
|
||||
*
|
||||
* @return {string} Formatted date.
|
||||
* @return Formatted date.
|
||||
*/
|
||||
I(momentDate) {
|
||||
return momentDate.isDST() ? '1' : '0';
|
||||
return momentDate.isDST() ? "1" : "0";
|
||||
},
|
||||
O: 'ZZ',
|
||||
P: 'Z',
|
||||
T: 'z',
|
||||
O: "ZZ",
|
||||
P: "Z",
|
||||
T: "z",
|
||||
/**
|
||||
* Gets the timezone offset in seconds.
|
||||
*
|
||||
* @param {Moment} momentDate Moment instance.
|
||||
* @param momentDate Moment instance.
|
||||
*
|
||||
* @return {number} Formatted date.
|
||||
* @return Formatted date.
|
||||
*/
|
||||
Z(momentDate) {
|
||||
// Timezone offset in seconds.
|
||||
const offset = momentDate.format('Z');
|
||||
const sign = offset[0] === '-' ? -1 : 1;
|
||||
const parts = offset.substring(1).split(':').map(n => parseInt(n, 10));
|
||||
const offset = momentDate.format("Z");
|
||||
const sign = offset[0] === "-" ? -1 : 1;
|
||||
const parts = offset.substring(1).split(":").map((n) => parseInt(n, 10));
|
||||
return sign * (parts[0] * HOUR_IN_MINUTES + parts[1]) * MINUTE_IN_SECONDS;
|
||||
},
|
||||
// Full date/time.
|
||||
c: 'YYYY-MM-DDTHH:mm:ssZ',
|
||||
c: "YYYY-MM-DDTHH:mm:ssZ",
|
||||
// .toISOString.
|
||||
/**
|
||||
* Formats the date as RFC2822.
|
||||
*
|
||||
* @param {Moment} momentDate Moment instance.
|
||||
* @param momentDate Moment instance.
|
||||
*
|
||||
* @return {string} Formatted date.
|
||||
* @return Formatted date.
|
||||
*/
|
||||
r(momentDate) {
|
||||
return momentDate.locale('en').format('ddd, DD MMM YYYY HH:mm:ss ZZ');
|
||||
return momentDate.locale("en").format("ddd, DD MMM YYYY HH:mm:ss ZZ");
|
||||
},
|
||||
U: 'X'
|
||||
U: "X"
|
||||
};
|
||||
|
||||
/**
|
||||
* Formats a date. Does not alter the date's timezone.
|
||||
*
|
||||
* @param {string} dateFormat PHP-style formatting string.
|
||||
* See [php.net/date](https://www.php.net/manual/en/function.date.php).
|
||||
* @param {Moment | Date | string | undefined} dateValue Date object or string,
|
||||
* parsable by moment.js.
|
||||
*
|
||||
* @return {string} Formatted date.
|
||||
*/
|
||||
function format(dateFormat, dateValue = new Date()) {
|
||||
function format(dateFormat, dateValue = /* @__PURE__ */ new Date()) {
|
||||
let i, char;
|
||||
const newFormat = [];
|
||||
const momentDate = external_moment_default()(dateValue);
|
||||
const momentDate = moment__WEBPACK_IMPORTED_MODULE_0___default()(dateValue);
|
||||
for (i = 0; i < dateFormat.length; i++) {
|
||||
char = dateFormat[i];
|
||||
// Is this an escape?
|
||||
if ('\\' === char) {
|
||||
// Add next character, then move on.
|
||||
if ("\\" === char) {
|
||||
i++;
|
||||
newFormat.push('[' + dateFormat[i] + ']');
|
||||
newFormat.push("[" + dateFormat[i] + "]");
|
||||
continue;
|
||||
}
|
||||
if (char in formatMap) {
|
||||
const formatter = formatMap[(/** @type {keyof formatMap} */char)];
|
||||
if (typeof formatter !== 'string') {
|
||||
// If the format is a function, call it.
|
||||
newFormat.push('[' + formatter(momentDate) + ']');
|
||||
const formatter = formatMap[char];
|
||||
if (typeof formatter !== "string") {
|
||||
newFormat.push("[" + formatter(momentDate) + "]");
|
||||
} else {
|
||||
// Otherwise, add as a formatting string.
|
||||
newFormat.push(formatter);
|
||||
}
|
||||
} else {
|
||||
newFormat.push('[' + char + ']');
|
||||
newFormat.push("[" + char + "]");
|
||||
}
|
||||
}
|
||||
// Join with [] between to separate characters, and replace
|
||||
// unneeded separators with static text.
|
||||
return momentDate.format(newFormat.join('[]'));
|
||||
return momentDate.format(newFormat.join("[]"));
|
||||
}
|
||||
|
||||
/**
|
||||
* Formats a date (like `date()` in PHP).
|
||||
*
|
||||
* @param {string} dateFormat PHP-style formatting string.
|
||||
* See [php.net/date](https://www.php.net/manual/en/function.date.php).
|
||||
* @param {Moment | Date | string | undefined} dateValue Date object or string, parsable
|
||||
* by moment.js.
|
||||
* @param {string | number | undefined} timezone Timezone to output result in or a
|
||||
* UTC offset. Defaults to timezone from
|
||||
* site.
|
||||
*
|
||||
* @see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
|
||||
* @see https://en.wikipedia.org/wiki/ISO_8601#Time_offsets_from_UTC
|
||||
*
|
||||
* @return {string} Formatted date in English.
|
||||
*/
|
||||
function date(dateFormat, dateValue = new Date(), timezone) {
|
||||
function date(dateFormat, dateValue = /* @__PURE__ */ new Date(), timezone) {
|
||||
const dateMoment = buildMoment(dateValue, timezone);
|
||||
return format(dateFormat, dateMoment);
|
||||
}
|
||||
|
||||
/**
|
||||
* Formats a date (like `date()` in PHP), in the UTC timezone.
|
||||
*
|
||||
* @param {string} dateFormat PHP-style formatting string.
|
||||
* See [php.net/date](https://www.php.net/manual/en/function.date.php).
|
||||
* @param {Moment | Date | string | undefined} dateValue Date object or string,
|
||||
* parsable by moment.js.
|
||||
*
|
||||
* @return {string} Formatted date in English.
|
||||
*/
|
||||
function gmdate(dateFormat, dateValue = new Date()) {
|
||||
const dateMoment = external_moment_default()(dateValue).utc();
|
||||
function gmdate(dateFormat, dateValue = /* @__PURE__ */ new Date()) {
|
||||
const dateMoment = moment__WEBPACK_IMPORTED_MODULE_0___default()(dateValue).utc();
|
||||
return format(dateFormat, dateMoment);
|
||||
}
|
||||
|
||||
/**
|
||||
* Formats a date (like `wp_date()` in PHP), translating it into site's locale.
|
||||
*
|
||||
* Backward Compatibility Notice: if `timezone` is set to `true`, the function
|
||||
* behaves like `gmdateI18n`.
|
||||
*
|
||||
* @param {string} dateFormat PHP-style formatting string.
|
||||
* See [php.net/date](https://www.php.net/manual/en/function.date.php).
|
||||
* @param {Moment | Date | string | undefined} dateValue Date object or string, parsable by
|
||||
* moment.js.
|
||||
* @param {string | number | boolean | undefined=} timezone Timezone to output result in or a
|
||||
* UTC offset. Defaults to timezone from
|
||||
* site. Notice: `boolean` is effectively
|
||||
* deprecated, but still supported for
|
||||
* backward compatibility reasons.
|
||||
*
|
||||
* @see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
|
||||
* @see https://en.wikipedia.org/wiki/ISO_8601#Time_offsets_from_UTC
|
||||
*
|
||||
* @return {string} Formatted date.
|
||||
*/
|
||||
function dateI18n(dateFormat, dateValue = new Date(), timezone) {
|
||||
function dateI18n(dateFormat, dateValue = /* @__PURE__ */ new Date(), timezone) {
|
||||
if (true === timezone) {
|
||||
return gmdateI18n(dateFormat, dateValue);
|
||||
}
|
||||
if (false === timezone) {
|
||||
timezone = undefined;
|
||||
timezone = void 0;
|
||||
}
|
||||
const dateMoment = buildMoment(dateValue, timezone);
|
||||
dateMoment.locale(settings.l10n.locale);
|
||||
return format(dateFormat, dateMoment);
|
||||
}
|
||||
|
||||
/**
|
||||
* Formats a date (like `wp_date()` in PHP), translating it into site's locale
|
||||
* and using the UTC timezone.
|
||||
*
|
||||
* @param {string} dateFormat PHP-style formatting string.
|
||||
* See [php.net/date](https://www.php.net/manual/en/function.date.php).
|
||||
* @param {Moment | Date | string | undefined} dateValue Date object or string,
|
||||
* parsable by moment.js.
|
||||
*
|
||||
* @return {string} Formatted date.
|
||||
*/
|
||||
function gmdateI18n(dateFormat, dateValue = new Date()) {
|
||||
const dateMoment = external_moment_default()(dateValue).utc();
|
||||
function gmdateI18n(dateFormat, dateValue = /* @__PURE__ */ new Date()) {
|
||||
const dateMoment = moment__WEBPACK_IMPORTED_MODULE_0___default()(dateValue).utc();
|
||||
dateMoment.locale(settings.l10n.locale);
|
||||
return format(dateFormat, dateMoment);
|
||||
}
|
||||
|
||||
/**
|
||||
* Check whether a date is considered in the future according to the WordPress settings.
|
||||
*
|
||||
* @param {string} dateValue Date String or Date object in the Defined WP Timezone.
|
||||
*
|
||||
* @return {boolean} Is in the future.
|
||||
*/
|
||||
function isInTheFuture(dateValue) {
|
||||
const now = external_moment_default().tz(WP_ZONE);
|
||||
const momentObject = external_moment_default().tz(dateValue, WP_ZONE);
|
||||
const now = moment__WEBPACK_IMPORTED_MODULE_0___default().tz(WP_ZONE);
|
||||
const momentObject = moment__WEBPACK_IMPORTED_MODULE_0___default().tz(dateValue, WP_ZONE);
|
||||
return momentObject.isAfter(now);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create and return a JavaScript Date Object from a date string in the WP timezone.
|
||||
*
|
||||
* @param {?string} dateString Date formatted in the WP timezone.
|
||||
*
|
||||
* @return {Date} Date
|
||||
*/
|
||||
function getDate(dateString) {
|
||||
if (!dateString) {
|
||||
return external_moment_default().tz(WP_ZONE).toDate();
|
||||
return moment__WEBPACK_IMPORTED_MODULE_0___default().tz(WP_ZONE).toDate();
|
||||
}
|
||||
return external_moment_default().tz(dateString, WP_ZONE).toDate();
|
||||
return moment__WEBPACK_IMPORTED_MODULE_0___default().tz(dateString, WP_ZONE).toDate();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a human-readable time difference between two dates, like human_time_diff() in PHP.
|
||||
*
|
||||
* @param {Moment | Date | string} from From date, in the WP timezone.
|
||||
* @param {Moment | Date | string | undefined} to To date, formatted in the WP timezone.
|
||||
*
|
||||
* @return {string} Human-readable time difference.
|
||||
*/
|
||||
function humanTimeDiff(from, to) {
|
||||
const fromMoment = external_moment_default().tz(from, WP_ZONE);
|
||||
const toMoment = to ? external_moment_default().tz(to, WP_ZONE) : external_moment_default().tz(WP_ZONE);
|
||||
const fromMoment = moment__WEBPACK_IMPORTED_MODULE_0___default().tz(from, WP_ZONE);
|
||||
const toMoment = to ? moment__WEBPACK_IMPORTED_MODULE_0___default().tz(to, WP_ZONE) : moment__WEBPACK_IMPORTED_MODULE_0___default().tz(WP_ZONE);
|
||||
return fromMoment.from(toMoment);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a moment instance using the given timezone or, if none is provided, using global settings.
|
||||
*
|
||||
* @param {Moment | Date | string | undefined} dateValue Date object or string, parsable
|
||||
* by moment.js.
|
||||
* @param {string | number | undefined} timezone Timezone to output result in or a
|
||||
* UTC offset. Defaults to timezone from
|
||||
* site.
|
||||
*
|
||||
* @see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
|
||||
* @see https://en.wikipedia.org/wiki/ISO_8601#Time_offsets_from_UTC
|
||||
*
|
||||
* @return {Moment} a moment instance.
|
||||
*/
|
||||
function buildMoment(dateValue, timezone = '') {
|
||||
const dateMoment = external_moment_default()(dateValue);
|
||||
function buildMoment(dateValue, timezone = "") {
|
||||
const dateMoment = moment__WEBPACK_IMPORTED_MODULE_0___default()(dateValue);
|
||||
if (timezone && !isUTCOffset(timezone)) {
|
||||
// The ! isUTCOffset() check guarantees that timezone is a string.
|
||||
return dateMoment.tz(/** @type {string} */timezone);
|
||||
return dateMoment.tz(timezone);
|
||||
}
|
||||
if (timezone && isUTCOffset(timezone)) {
|
||||
return dateMoment.utcOffset(timezone);
|
||||
@@ -1757,22 +1547,15 @@ function buildMoment(dateValue, timezone = '') {
|
||||
}
|
||||
return dateMoment.utcOffset(+settings.timezone.offset);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether a certain UTC offset is valid or not.
|
||||
*
|
||||
* @param {number|string} offset a UTC offset.
|
||||
*
|
||||
* @return {boolean} whether a certain UTC offset is valid or not.
|
||||
*/
|
||||
function isUTCOffset(offset) {
|
||||
if ('number' === typeof offset) {
|
||||
if ("number" === typeof offset) {
|
||||
return true;
|
||||
}
|
||||
return VALID_UTC_OFFSET.test(offset);
|
||||
}
|
||||
setupWPTimezone();
|
||||
|
||||
|
||||
})();
|
||||
|
||||
(window.wp = window.wp || {}).date = __webpack_exports__;
|
||||
|
||||
Reference in New Issue
Block a user