@wordpress/date 4.2.2 → 4.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/index.js CHANGED
@@ -5,15 +5,15 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.setSettings = setSettings;
9
8
  exports.__experimentalGetSettings = __experimentalGetSettings;
10
- exports.format = format;
11
9
  exports.date = date;
12
- exports.gmdate = gmdate;
13
10
  exports.dateI18n = dateI18n;
11
+ exports.format = format;
12
+ exports.getDate = getDate;
13
+ exports.gmdate = gmdate;
14
14
  exports.gmdateI18n = gmdateI18n;
15
15
  exports.isInTheFuture = isInTheFuture;
16
- exports.getDate = getDate;
16
+ exports.setSettings = setSettings;
17
17
 
18
18
  var _moment = _interopRequireDefault(require("moment"));
19
19
 
@@ -372,7 +372,8 @@ const formatMap = {
372
372
  * @return {string} Formatted date.
373
373
  */
374
374
 
375
- function format(dateFormat, dateValue = new Date()) {
375
+ function format(dateFormat) {
376
+ let dateValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Date();
376
377
  let i, char;
377
378
  const newFormat = [];
378
379
  const momentDate = (0, _moment.default)(dateValue);
@@ -426,7 +427,9 @@ function format(dateFormat, dateValue = new Date()) {
426
427
  */
427
428
 
428
429
 
429
- function date(dateFormat, dateValue = new Date(), timezone) {
430
+ function date(dateFormat) {
431
+ let dateValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Date();
432
+ let timezone = arguments.length > 2 ? arguments[2] : undefined;
430
433
  const dateMoment = buildMoment(dateValue, timezone);
431
434
  return format(dateFormat, dateMoment);
432
435
  }
@@ -442,7 +445,8 @@ function date(dateFormat, dateValue = new Date(), timezone) {
442
445
  */
443
446
 
444
447
 
445
- function gmdate(dateFormat, dateValue = new Date()) {
448
+ function gmdate(dateFormat) {
449
+ let dateValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Date();
446
450
  const dateMoment = (0, _moment.default)(dateValue).utc();
447
451
  return format(dateFormat, dateMoment);
448
452
  }
@@ -469,7 +473,10 @@ function gmdate(dateFormat, dateValue = new Date()) {
469
473
  */
470
474
 
471
475
 
472
- function dateI18n(dateFormat, dateValue = new Date(), timezone) {
476
+ function dateI18n(dateFormat) {
477
+ let dateValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Date();
478
+ let timezone = arguments.length > 2 ? arguments[2] : undefined;
479
+
473
480
  if (true === timezone) {
474
481
  return gmdateI18n(dateFormat, dateValue);
475
482
  }
@@ -495,7 +502,8 @@ function dateI18n(dateFormat, dateValue = new Date(), timezone) {
495
502
  */
496
503
 
497
504
 
498
- function gmdateI18n(dateFormat, dateValue = new Date()) {
505
+ function gmdateI18n(dateFormat) {
506
+ let dateValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Date();
499
507
  const dateMoment = (0, _moment.default)(dateValue).utc();
500
508
  dateMoment.locale(settings.l10n.locale);
501
509
  return format(dateFormat, dateMoment);
@@ -548,7 +556,8 @@ function getDate(dateString) {
548
556
  */
549
557
 
550
558
 
551
- function buildMoment(dateValue, timezone = '') {
559
+ function buildMoment(dateValue) {
560
+ let timezone = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
552
561
  const dateMoment = (0, _moment.default)(dateValue);
553
562
 
554
563
  if (timezone && !isUTCOffset(timezone)) {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/date/src/index.js"],"names":["WP_ZONE","VALID_UTC_OFFSET","settings","l10n","locale","months","monthsShort","weekdays","weekdaysShort","meridiem","am","pm","AM","PM","relative","future","past","s","ss","m","mm","h","hh","d","dd","M","MM","y","yy","formats","time","date","datetime","datetimeAbbreviated","timezone","offset","string","abbr","setSettings","dateSettings","currentLocale","momentLib","updateLocale","parentLocale","hour","minute","isLowercase","longDateFormat","LT","LTS","L","LL","LLL","LLLL","relativeTime","setupWPTimezone","__experimentalGetSettings","tz","add","pack","name","abbrs","untils","offsets","MINUTE_IN_SECONDS","HOUR_IN_MINUTES","HOUR_IN_SECONDS","formatMap","D","j","l","N","S","momentDate","num","format","withOrdinal","replace","w","z","parseInt","toString","W","F","n","t","daysInMonth","isLeapYear","o","Y","a","A","B","timezoned","utcOffset","seconds","minutes","hours","g","G","H","i","u","v","e","I","isDST","O","P","T","Z","sign","parts","substring","split","map","c","r","U","dateFormat","dateValue","Date","char","newFormat","length","push","formatter","join","dateMoment","buildMoment","gmdate","utc","dateI18n","gmdateI18n","undefined","isInTheFuture","now","momentObject","isAfter","getDate","dateString","toDate","isUTCOffset","test"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport momentLib from 'moment';\nimport 'moment-timezone/moment-timezone';\nimport 'moment-timezone/moment-timezone-utils';\n\n/** @typedef {import('moment').Moment} Moment */\n/** @typedef {import('moment').LocaleSpecification} MomentLocaleSpecification */\n\n/**\n * @typedef MeridiemConfig\n * @property {string} am Lowercase AM.\n * @property {string} AM Uppercase AM.\n * @property {string} pm Lowercase PM.\n * @property {string} PM Uppercase PM.\n */\n\n/**\n * @typedef FormatsConfig\n * @property {string} time Time format.\n * @property {string} date Date format.\n * @property {string} datetime Datetime format.\n * @property {string} datetimeAbbreviated Abbreviated datetime format.\n */\n\n/**\n * @typedef TimezoneConfig\n * @property {string} offset Offset setting.\n * @property {string} string The timezone as a string (e.g., `'America/Los_Angeles'`).\n * @property {string} abbr Abbreviation for the timezone.\n */\n\n/* eslint-disable jsdoc/valid-types */\n/**\n * @typedef L10nSettings\n * @property {string} locale Moment locale.\n * @property {MomentLocaleSpecification['months']} months Locale months.\n * @property {MomentLocaleSpecification['monthsShort']} monthsShort Locale months short.\n * @property {MomentLocaleSpecification['weekdays']} weekdays Locale weekdays.\n * @property {MomentLocaleSpecification['weekdaysShort']} weekdaysShort Locale weekdays short.\n * @property {MeridiemConfig} meridiem Meridiem config.\n * @property {MomentLocaleSpecification['relativeTime']} relative Relative time config.\n */\n/* eslint-enable jsdoc/valid-types */\n\n/**\n * @typedef DateSettings\n * @property {L10nSettings} l10n Localization settings.\n * @property {FormatsConfig} formats Date/time formats config.\n * @property {TimezoneConfig} timezone Timezone settings.\n */\n\nconst WP_ZONE = 'WP';\n\n// This regular expression tests positive for UTC offsets as described in ISO 8601.\n// See: https://en.wikipedia.org/wiki/ISO_8601#Time_offsets_from_UTC\nconst VALID_UTC_OFFSET = /^[+-][0-1][0-9](:?[0-9][0-9])?$/;\n\n// Changes made here will likely need to be made in `lib/client-assets.php` as\n// well because it uses the `setSettings()` function to change these settings.\n/** @type {DateSettings} */\nlet settings = {\n\tl10n: {\n\t\tlocale: 'en',\n\t\tmonths: [\n\t\t\t'January',\n\t\t\t'February',\n\t\t\t'March',\n\t\t\t'April',\n\t\t\t'May',\n\t\t\t'June',\n\t\t\t'July',\n\t\t\t'August',\n\t\t\t'September',\n\t\t\t'October',\n\t\t\t'November',\n\t\t\t'December',\n\t\t],\n\t\tmonthsShort: [\n\t\t\t'Jan',\n\t\t\t'Feb',\n\t\t\t'Mar',\n\t\t\t'Apr',\n\t\t\t'May',\n\t\t\t'Jun',\n\t\t\t'Jul',\n\t\t\t'Aug',\n\t\t\t'Sep',\n\t\t\t'Oct',\n\t\t\t'Nov',\n\t\t\t'Dec',\n\t\t],\n\t\tweekdays: [\n\t\t\t'Sunday',\n\t\t\t'Monday',\n\t\t\t'Tuesday',\n\t\t\t'Wednesday',\n\t\t\t'Thursday',\n\t\t\t'Friday',\n\t\t\t'Saturday',\n\t\t],\n\t\tweekdaysShort: [ 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat' ],\n\t\tmeridiem: { am: 'am', pm: 'pm', AM: 'AM', PM: 'PM' },\n\t\trelative: {\n\t\t\tfuture: '%s from now',\n\t\t\tpast: '%s ago',\n\t\t\ts: 'a few seconds',\n\t\t\tss: '%d seconds',\n\t\t\tm: 'a minute',\n\t\t\tmm: '%d minutes',\n\t\t\th: 'an hour',\n\t\t\thh: '%d hours',\n\t\t\td: 'a day',\n\t\t\tdd: '%d days',\n\t\t\tM: 'a month',\n\t\t\tMM: '%d months',\n\t\t\ty: 'a year',\n\t\t\tyy: '%d years',\n\t\t},\n\t},\n\tformats: {\n\t\ttime: 'g: i a',\n\t\tdate: 'F j, Y',\n\t\tdatetime: 'F j, Y g: i a',\n\t\tdatetimeAbbreviated: 'M j, Y g: i a',\n\t},\n\ttimezone: { offset: '0', string: '', abbr: '' },\n};\n\n/**\n * Adds a locale to moment, using the format supplied by `wp_localize_script()`.\n *\n * @param {DateSettings} dateSettings Settings, including locale data.\n */\nexport function setSettings( dateSettings ) {\n\tsettings = dateSettings;\n\n\t// Backup and restore current locale.\n\tconst currentLocale = momentLib.locale();\n\tmomentLib.updateLocale( dateSettings.l10n.locale, {\n\t\t// Inherit anything missing from the default locale.\n\t\tparentLocale: currentLocale,\n\t\tmonths: dateSettings.l10n.months,\n\t\tmonthsShort: dateSettings.l10n.monthsShort,\n\t\tweekdays: dateSettings.l10n.weekdays,\n\t\tweekdaysShort: dateSettings.l10n.weekdaysShort,\n\t\tmeridiem( hour, minute, isLowercase ) {\n\t\t\tif ( hour < 12 ) {\n\t\t\t\treturn isLowercase\n\t\t\t\t\t? dateSettings.l10n.meridiem.am\n\t\t\t\t\t: dateSettings.l10n.meridiem.AM;\n\t\t\t}\n\t\t\treturn isLowercase\n\t\t\t\t? dateSettings.l10n.meridiem.pm\n\t\t\t\t: dateSettings.l10n.meridiem.PM;\n\t\t},\n\t\tlongDateFormat: {\n\t\t\tLT: dateSettings.formats.time,\n\t\t\t// @ts-ignore Forcing this to `null`\n\t\t\tLTS: null,\n\t\t\t// @ts-ignore Forcing this to `null`\n\t\t\tL: null,\n\t\t\tLL: dateSettings.formats.date,\n\t\t\tLLL: dateSettings.formats.datetime,\n\t\t\t// @ts-ignore Forcing this to `null`\n\t\t\tLLLL: null,\n\t\t},\n\t\t// From human_time_diff?\n\t\t// Set to `(number, withoutSuffix, key, isFuture) => {}` instead.\n\t\trelativeTime: dateSettings.l10n.relative,\n\t} );\n\tmomentLib.locale( currentLocale );\n\n\tsetupWPTimezone();\n}\n\n/**\n * Returns the currently defined date settings.\n *\n * @return {Object} Settings, including locale data.\n */\nexport function __experimentalGetSettings() {\n\treturn settings;\n}\n\nfunction setupWPTimezone() {\n\t// Create WP timezone based off dateSettings.\n\tmomentLib.tz.add(\n\t\tmomentLib.tz.pack( {\n\t\t\tname: WP_ZONE,\n\t\t\tabbrs: [ WP_ZONE ],\n\t\t\tuntils: [ null ],\n\t\t\toffsets: [ -settings.timezone.offset * 60 || 0 ],\n\t\t} )\n\t);\n}\n\n// Date constants.\n/**\n * Number of seconds in one minute.\n *\n * @type {number}\n */\nconst MINUTE_IN_SECONDS = 60;\n/**\n * Number of minutes in one hour.\n *\n * @type {number}\n */\nconst HOUR_IN_MINUTES = 60;\n/**\n * Number of seconds in one hour.\n *\n * @type {number}\n */\nconst HOUR_IN_SECONDS = 60 * MINUTE_IN_SECONDS;\n\n/**\n * Map of PHP formats to Moment.js formats.\n *\n * These are used internally by {@link wp.date.format}, and are either\n * a string representing the corresponding Moment.js format code, or a\n * function which returns the formatted string.\n *\n * This should only be used through {@link wp.date.format}, not\n * directly.\n */\nconst formatMap = {\n\t// Day\n\td: 'DD',\n\tD: 'ddd',\n\tj: 'D',\n\tl: 'dddd',\n\tN: 'E',\n\n\t/**\n\t * Gets the ordinal suffix.\n\t *\n\t * @param {Moment} momentDate Moment instance.\n\t *\n\t * @return {string} Formatted date.\n\t */\n\tS( momentDate ) {\n\t\t// Do - D\n\t\tconst num = momentDate.format( 'D' );\n\t\tconst withOrdinal = momentDate.format( 'Do' );\n\t\treturn withOrdinal.replace( num, '' );\n\t},\n\n\tw: 'd',\n\t/**\n\t * Gets the day of the year (zero-indexed).\n\t *\n\t * @param {Moment} momentDate Moment instance.\n\t *\n\t * @return {string} Formatted date.\n\t */\n\tz( momentDate ) {\n\t\t// DDD - 1\n\t\treturn ( parseInt( momentDate.format( 'DDD' ), 10 ) - 1 ).toString();\n\t},\n\n\t// Week\n\tW: 'W',\n\n\t// Month\n\tF: 'MMMM',\n\tm: 'MM',\n\tM: 'MMM',\n\tn: 'M',\n\t/**\n\t * Gets the days in the month.\n\t *\n\t * @param {Moment} momentDate Moment instance.\n\t *\n\t * @return {number} Formatted date.\n\t */\n\tt( momentDate ) {\n\t\treturn momentDate.daysInMonth();\n\t},\n\n\t// Year\n\t/**\n\t * Gets whether the current year is a leap year.\n\t *\n\t * @param {Moment} momentDate Moment instance.\n\t *\n\t * @return {string} Formatted date.\n\t */\n\tL( momentDate ) {\n\t\treturn momentDate.isLeapYear() ? '1' : '0';\n\t},\n\to: 'GGGG',\n\tY: 'YYYY',\n\ty: 'YY',\n\n\t// Time\n\ta: 'a',\n\tA: 'A',\n\t/**\n\t * Gets the current time in Swatch Internet Time (.beats).\n\t *\n\t * @param {Moment} momentDate Moment instance.\n\t *\n\t * @return {number} Formatted date.\n\t */\n\tB( momentDate ) {\n\t\tconst timezoned = momentLib( momentDate ).utcOffset( 60 );\n\t\tconst seconds = parseInt( timezoned.format( 's' ), 10 ),\n\t\t\tminutes = parseInt( timezoned.format( 'm' ), 10 ),\n\t\t\thours = parseInt( timezoned.format( 'H' ), 10 );\n\t\treturn parseInt(\n\t\t\t(\n\t\t\t\t( seconds +\n\t\t\t\t\tminutes * MINUTE_IN_SECONDS +\n\t\t\t\t\thours * HOUR_IN_SECONDS ) /\n\t\t\t\t86.4\n\t\t\t).toString(),\n\t\t\t10\n\t\t);\n\t},\n\tg: 'h',\n\tG: 'H',\n\th: 'hh',\n\tH: 'HH',\n\ti: 'mm',\n\ts: 'ss',\n\tu: 'SSSSSS',\n\tv: 'SSS',\n\t// Timezone\n\te: 'zz',\n\t/**\n\t * Gets whether the timezone is in DST currently.\n\t *\n\t * @param {Moment} momentDate Moment instance.\n\t *\n\t * @return {string} Formatted date.\n\t */\n\tI( momentDate ) {\n\t\treturn momentDate.isDST() ? '1' : '0';\n\t},\n\tO: 'ZZ',\n\tP: 'Z',\n\tT: 'z',\n\t/**\n\t * Gets the timezone offset in seconds.\n\t *\n\t * @param {Moment} momentDate Moment instance.\n\t *\n\t * @return {number} Formatted date.\n\t */\n\tZ( momentDate ) {\n\t\t// Timezone offset in seconds.\n\t\tconst offset = momentDate.format( 'Z' );\n\t\tconst sign = offset[ 0 ] === '-' ? -1 : 1;\n\t\tconst parts = offset\n\t\t\t.substring( 1 )\n\t\t\t.split( ':' )\n\t\t\t.map( ( n ) => parseInt( n, 10 ) );\n\t\treturn (\n\t\t\tsign *\n\t\t\t( parts[ 0 ] * HOUR_IN_MINUTES + parts[ 1 ] ) *\n\t\t\tMINUTE_IN_SECONDS\n\t\t);\n\t},\n\t// Full date/time\n\tc: 'YYYY-MM-DDTHH:mm:ssZ', // .toISOString\n\tr: 'ddd, D MMM YYYY HH:mm:ss ZZ',\n\tU: 'X',\n};\n\n/**\n * Formats a date. Does not alter the date's timezone.\n *\n * @param {string} dateFormat PHP-style formatting string.\n * See php.net/date.\n * @param {Moment | Date | string | undefined} dateValue Date object or string,\n * parsable by moment.js.\n *\n * @return {string} Formatted date.\n */\nexport function format( dateFormat, dateValue = new Date() ) {\n\tlet i, char;\n\tconst newFormat = [];\n\tconst momentDate = momentLib( dateValue );\n\tfor ( i = 0; i < dateFormat.length; i++ ) {\n\t\tchar = dateFormat[ i ];\n\t\t// Is this an escape?\n\t\tif ( '\\\\' === char ) {\n\t\t\t// Add next character, then move on.\n\t\t\ti++;\n\t\t\tnewFormat.push( '[' + dateFormat[ i ] + ']' );\n\t\t\tcontinue;\n\t\t}\n\t\tif ( char in formatMap ) {\n\t\t\tconst formatter =\n\t\t\t\tformatMap[ /** @type {keyof formatMap} */ ( char ) ];\n\t\t\tif ( typeof formatter !== 'string' ) {\n\t\t\t\t// If the format is a function, call it.\n\t\t\t\tnewFormat.push( '[' + formatter( momentDate ) + ']' );\n\t\t\t} else {\n\t\t\t\t// Otherwise, add as a formatting string.\n\t\t\t\tnewFormat.push( formatter );\n\t\t\t}\n\t\t} else {\n\t\t\tnewFormat.push( '[' + char + ']' );\n\t\t}\n\t}\n\t// Join with [] between to separate characters, and replace\n\t// unneeded separators with static text.\n\treturn momentDate.format( newFormat.join( '[]' ) );\n}\n\n/**\n * Formats a date (like `date()` in PHP).\n *\n * @param {string} dateFormat PHP-style formatting string.\n * See php.net/date.\n * @param {Moment | Date | string | undefined} dateValue Date object or string, parsable\n * by moment.js.\n * @param {string | undefined} timezone Timezone to output result in or a\n * UTC offset. Defaults to timezone from\n * site.\n *\n * @see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_offsets_from_UTC\n *\n * @return {string} Formatted date in English.\n */\nexport function date( dateFormat, dateValue = new Date(), timezone ) {\n\tconst dateMoment = buildMoment( dateValue, timezone );\n\treturn format( dateFormat, dateMoment );\n}\n\n/**\n * Formats a date (like `date()` in PHP), in the UTC timezone.\n *\n * @param {string} dateFormat PHP-style formatting string.\n * See php.net/date.\n * @param {Moment | Date | string | undefined} dateValue Date object or string,\n * parsable by moment.js.\n *\n * @return {string} Formatted date in English.\n */\nexport function gmdate( dateFormat, dateValue = new Date() ) {\n\tconst dateMoment = momentLib( dateValue ).utc();\n\treturn format( dateFormat, dateMoment );\n}\n\n/**\n * Formats a date (like `wp_date()` in PHP), translating it into site's locale.\n *\n * Backward Compatibility Notice: if `timezone` is set to `true`, the function\n * behaves like `gmdateI18n`.\n *\n * @param {string} dateFormat PHP-style formatting string.\n * See php.net/date.\n * @param {Moment | Date | string | undefined} dateValue Date object or string, parsable by\n * moment.js.\n * @param {string | boolean | undefined} timezone Timezone to output result in or a\n * UTC offset. Defaults to timezone from\n * site. Notice: `boolean` is effectively\n * deprecated, but still supported for\n * backward compatibility reasons.\n *\n * @see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_offsets_from_UTC\n *\n * @return {string} Formatted date.\n */\nexport function dateI18n( dateFormat, dateValue = new Date(), timezone ) {\n\tif ( true === timezone ) {\n\t\treturn gmdateI18n( dateFormat, dateValue );\n\t}\n\n\tif ( false === timezone ) {\n\t\ttimezone = undefined;\n\t}\n\n\tconst dateMoment = buildMoment( dateValue, timezone );\n\tdateMoment.locale( settings.l10n.locale );\n\treturn format( dateFormat, dateMoment );\n}\n\n/**\n * Formats a date (like `wp_date()` in PHP), translating it into site's locale\n * and using the UTC timezone.\n *\n * @param {string} dateFormat PHP-style formatting string.\n * See php.net/date.\n * @param {Moment | Date | string | undefined} dateValue Date object or string,\n * parsable by moment.js.\n *\n * @return {string} Formatted date.\n */\nexport function gmdateI18n( dateFormat, dateValue = new Date() ) {\n\tconst dateMoment = momentLib( dateValue ).utc();\n\tdateMoment.locale( settings.l10n.locale );\n\treturn format( dateFormat, dateMoment );\n}\n\n/**\n * Check whether a date is considered in the future according to the WordPress settings.\n *\n * @param {string} dateValue Date String or Date object in the Defined WP Timezone.\n *\n * @return {boolean} Is in the future.\n */\nexport function isInTheFuture( dateValue ) {\n\tconst now = momentLib.tz( WP_ZONE );\n\tconst momentObject = momentLib.tz( dateValue, WP_ZONE );\n\n\treturn momentObject.isAfter( now );\n}\n\n/**\n * Create and return a JavaScript Date Object from a date string in the WP timezone.\n *\n * @param {string?} dateString Date formatted in the WP timezone.\n *\n * @return {Date} Date\n */\nexport function getDate( dateString ) {\n\tif ( ! dateString ) {\n\t\treturn momentLib.tz( WP_ZONE ).toDate();\n\t}\n\n\treturn momentLib.tz( dateString, WP_ZONE ).toDate();\n}\n\n/**\n * Creates a moment instance using the given timezone or, if none is provided, using global settings.\n *\n * @param {Moment | Date | string | undefined} dateValue Date object or string, parsable\n * by moment.js.\n * @param {string | undefined} timezone Timezone to output result in or a\n * UTC offset. Defaults to timezone from\n * site.\n *\n * @see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_offsets_from_UTC\n *\n * @return {Moment} a moment instance.\n */\nfunction buildMoment( dateValue, timezone = '' ) {\n\tconst dateMoment = momentLib( dateValue );\n\n\tif ( timezone && ! isUTCOffset( timezone ) ) {\n\t\treturn dateMoment.tz( timezone );\n\t}\n\n\tif ( timezone && isUTCOffset( timezone ) ) {\n\t\treturn dateMoment.utcOffset( timezone );\n\t}\n\n\tif ( settings.timezone.string ) {\n\t\treturn dateMoment.tz( settings.timezone.string );\n\t}\n\n\treturn dateMoment.utcOffset( settings.timezone.offset );\n}\n\n/**\n * Returns whether a certain UTC offset is valid or not.\n *\n * @param {number|string} offset a UTC offset.\n *\n * @return {boolean} whether a certain UTC offset is valid or not.\n */\nfunction isUTCOffset( offset ) {\n\tif ( 'number' === typeof offset ) {\n\t\treturn true;\n\t}\n\n\treturn VALID_UTC_OFFSET.test( offset );\n}\n\nsetupWPTimezone();\n"]}
1
+ {"version":3,"sources":["@wordpress/date/src/index.js"],"names":["WP_ZONE","VALID_UTC_OFFSET","settings","l10n","locale","months","monthsShort","weekdays","weekdaysShort","meridiem","am","pm","AM","PM","relative","future","past","s","ss","m","mm","h","hh","d","dd","M","MM","y","yy","formats","time","date","datetime","datetimeAbbreviated","timezone","offset","string","abbr","setSettings","dateSettings","currentLocale","momentLib","updateLocale","parentLocale","hour","minute","isLowercase","longDateFormat","LT","LTS","L","LL","LLL","LLLL","relativeTime","setupWPTimezone","__experimentalGetSettings","tz","add","pack","name","abbrs","untils","offsets","MINUTE_IN_SECONDS","HOUR_IN_MINUTES","HOUR_IN_SECONDS","formatMap","D","j","l","N","S","momentDate","num","format","withOrdinal","replace","w","z","parseInt","toString","W","F","n","t","daysInMonth","isLeapYear","o","Y","a","A","B","timezoned","utcOffset","seconds","minutes","hours","g","G","H","i","u","v","e","I","isDST","O","P","T","Z","sign","parts","substring","split","map","c","r","U","dateFormat","dateValue","Date","char","newFormat","length","push","formatter","join","dateMoment","buildMoment","gmdate","utc","dateI18n","gmdateI18n","undefined","isInTheFuture","now","momentObject","isAfter","getDate","dateString","toDate","isUTCOffset","test"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport momentLib from 'moment';\nimport 'moment-timezone/moment-timezone';\nimport 'moment-timezone/moment-timezone-utils';\n\n/** @typedef {import('moment').Moment} Moment */\n/** @typedef {import('moment').LocaleSpecification} MomentLocaleSpecification */\n\n/**\n * @typedef MeridiemConfig\n * @property {string} am Lowercase AM.\n * @property {string} AM Uppercase AM.\n * @property {string} pm Lowercase PM.\n * @property {string} PM Uppercase PM.\n */\n\n/**\n * @typedef FormatsConfig\n * @property {string} time Time format.\n * @property {string} date Date format.\n * @property {string} datetime Datetime format.\n * @property {string} datetimeAbbreviated Abbreviated datetime format.\n */\n\n/**\n * @typedef TimezoneConfig\n * @property {string} offset Offset setting.\n * @property {string} string The timezone as a string (e.g., `'America/Los_Angeles'`).\n * @property {string} abbr Abbreviation for the timezone.\n */\n\n/* eslint-disable jsdoc/valid-types */\n/**\n * @typedef L10nSettings\n * @property {string} locale Moment locale.\n * @property {MomentLocaleSpecification['months']} months Locale months.\n * @property {MomentLocaleSpecification['monthsShort']} monthsShort Locale months short.\n * @property {MomentLocaleSpecification['weekdays']} weekdays Locale weekdays.\n * @property {MomentLocaleSpecification['weekdaysShort']} weekdaysShort Locale weekdays short.\n * @property {MeridiemConfig} meridiem Meridiem config.\n * @property {MomentLocaleSpecification['relativeTime']} relative Relative time config.\n */\n/* eslint-enable jsdoc/valid-types */\n\n/**\n * @typedef DateSettings\n * @property {L10nSettings} l10n Localization settings.\n * @property {FormatsConfig} formats Date/time formats config.\n * @property {TimezoneConfig} timezone Timezone settings.\n */\n\nconst WP_ZONE = 'WP';\n\n// This regular expression tests positive for UTC offsets as described in ISO 8601.\n// See: https://en.wikipedia.org/wiki/ISO_8601#Time_offsets_from_UTC\nconst VALID_UTC_OFFSET = /^[+-][0-1][0-9](:?[0-9][0-9])?$/;\n\n// Changes made here will likely need to be made in `lib/client-assets.php` as\n// well because it uses the `setSettings()` function to change these settings.\n/** @type {DateSettings} */\nlet settings = {\n\tl10n: {\n\t\tlocale: 'en',\n\t\tmonths: [\n\t\t\t'January',\n\t\t\t'February',\n\t\t\t'March',\n\t\t\t'April',\n\t\t\t'May',\n\t\t\t'June',\n\t\t\t'July',\n\t\t\t'August',\n\t\t\t'September',\n\t\t\t'October',\n\t\t\t'November',\n\t\t\t'December',\n\t\t],\n\t\tmonthsShort: [\n\t\t\t'Jan',\n\t\t\t'Feb',\n\t\t\t'Mar',\n\t\t\t'Apr',\n\t\t\t'May',\n\t\t\t'Jun',\n\t\t\t'Jul',\n\t\t\t'Aug',\n\t\t\t'Sep',\n\t\t\t'Oct',\n\t\t\t'Nov',\n\t\t\t'Dec',\n\t\t],\n\t\tweekdays: [\n\t\t\t'Sunday',\n\t\t\t'Monday',\n\t\t\t'Tuesday',\n\t\t\t'Wednesday',\n\t\t\t'Thursday',\n\t\t\t'Friday',\n\t\t\t'Saturday',\n\t\t],\n\t\tweekdaysShort: [ 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat' ],\n\t\tmeridiem: { am: 'am', pm: 'pm', AM: 'AM', PM: 'PM' },\n\t\trelative: {\n\t\t\tfuture: '%s from now',\n\t\t\tpast: '%s ago',\n\t\t\ts: 'a few seconds',\n\t\t\tss: '%d seconds',\n\t\t\tm: 'a minute',\n\t\t\tmm: '%d minutes',\n\t\t\th: 'an hour',\n\t\t\thh: '%d hours',\n\t\t\td: 'a day',\n\t\t\tdd: '%d days',\n\t\t\tM: 'a month',\n\t\t\tMM: '%d months',\n\t\t\ty: 'a year',\n\t\t\tyy: '%d years',\n\t\t},\n\t},\n\tformats: {\n\t\ttime: 'g: i a',\n\t\tdate: 'F j, Y',\n\t\tdatetime: 'F j, Y g: i a',\n\t\tdatetimeAbbreviated: 'M j, Y g: i a',\n\t},\n\ttimezone: { offset: '0', string: '', abbr: '' },\n};\n\n/**\n * Adds a locale to moment, using the format supplied by `wp_localize_script()`.\n *\n * @param {DateSettings} dateSettings Settings, including locale data.\n */\nexport function setSettings( dateSettings ) {\n\tsettings = dateSettings;\n\n\t// Backup and restore current locale.\n\tconst currentLocale = momentLib.locale();\n\tmomentLib.updateLocale( dateSettings.l10n.locale, {\n\t\t// Inherit anything missing from the default locale.\n\t\tparentLocale: currentLocale,\n\t\tmonths: dateSettings.l10n.months,\n\t\tmonthsShort: dateSettings.l10n.monthsShort,\n\t\tweekdays: dateSettings.l10n.weekdays,\n\t\tweekdaysShort: dateSettings.l10n.weekdaysShort,\n\t\tmeridiem( hour, minute, isLowercase ) {\n\t\t\tif ( hour < 12 ) {\n\t\t\t\treturn isLowercase\n\t\t\t\t\t? dateSettings.l10n.meridiem.am\n\t\t\t\t\t: dateSettings.l10n.meridiem.AM;\n\t\t\t}\n\t\t\treturn isLowercase\n\t\t\t\t? dateSettings.l10n.meridiem.pm\n\t\t\t\t: dateSettings.l10n.meridiem.PM;\n\t\t},\n\t\tlongDateFormat: {\n\t\t\tLT: dateSettings.formats.time,\n\t\t\t// @ts-ignore Forcing this to `null`\n\t\t\tLTS: null,\n\t\t\t// @ts-ignore Forcing this to `null`\n\t\t\tL: null,\n\t\t\tLL: dateSettings.formats.date,\n\t\t\tLLL: dateSettings.formats.datetime,\n\t\t\t// @ts-ignore Forcing this to `null`\n\t\t\tLLLL: null,\n\t\t},\n\t\t// From human_time_diff?\n\t\t// Set to `(number, withoutSuffix, key, isFuture) => {}` instead.\n\t\trelativeTime: dateSettings.l10n.relative,\n\t} );\n\tmomentLib.locale( currentLocale );\n\n\tsetupWPTimezone();\n}\n\n/**\n * Returns the currently defined date settings.\n *\n * @return {Object} Settings, including locale data.\n */\nexport function __experimentalGetSettings() {\n\treturn settings;\n}\n\nfunction setupWPTimezone() {\n\t// Create WP timezone based off dateSettings.\n\tmomentLib.tz.add(\n\t\tmomentLib.tz.pack( {\n\t\t\tname: WP_ZONE,\n\t\t\tabbrs: [ WP_ZONE ],\n\t\t\tuntils: [ null ],\n\t\t\toffsets: [ -settings.timezone.offset * 60 || 0 ],\n\t\t} )\n\t);\n}\n\n// Date constants.\n/**\n * Number of seconds in one minute.\n *\n * @type {number}\n */\nconst MINUTE_IN_SECONDS = 60;\n/**\n * Number of minutes in one hour.\n *\n * @type {number}\n */\nconst HOUR_IN_MINUTES = 60;\n/**\n * Number of seconds in one hour.\n *\n * @type {number}\n */\nconst HOUR_IN_SECONDS = 60 * MINUTE_IN_SECONDS;\n\n/**\n * Map of PHP formats to Moment.js formats.\n *\n * These are used internally by {@link wp.date.format}, and are either\n * a string representing the corresponding Moment.js format code, or a\n * function which returns the formatted string.\n *\n * This should only be used through {@link wp.date.format}, not\n * directly.\n */\nconst formatMap = {\n\t// Day\n\td: 'DD',\n\tD: 'ddd',\n\tj: 'D',\n\tl: 'dddd',\n\tN: 'E',\n\n\t/**\n\t * Gets the ordinal suffix.\n\t *\n\t * @param {Moment} momentDate Moment instance.\n\t *\n\t * @return {string} Formatted date.\n\t */\n\tS( momentDate ) {\n\t\t// Do - D\n\t\tconst num = momentDate.format( 'D' );\n\t\tconst withOrdinal = momentDate.format( 'Do' );\n\t\treturn withOrdinal.replace( num, '' );\n\t},\n\n\tw: 'd',\n\t/**\n\t * Gets the day of the year (zero-indexed).\n\t *\n\t * @param {Moment} momentDate Moment instance.\n\t *\n\t * @return {string} Formatted date.\n\t */\n\tz( momentDate ) {\n\t\t// DDD - 1\n\t\treturn ( parseInt( momentDate.format( 'DDD' ), 10 ) - 1 ).toString();\n\t},\n\n\t// Week\n\tW: 'W',\n\n\t// Month\n\tF: 'MMMM',\n\tm: 'MM',\n\tM: 'MMM',\n\tn: 'M',\n\t/**\n\t * Gets the days in the month.\n\t *\n\t * @param {Moment} momentDate Moment instance.\n\t *\n\t * @return {number} Formatted date.\n\t */\n\tt( momentDate ) {\n\t\treturn momentDate.daysInMonth();\n\t},\n\n\t// Year\n\t/**\n\t * Gets whether the current year is a leap year.\n\t *\n\t * @param {Moment} momentDate Moment instance.\n\t *\n\t * @return {string} Formatted date.\n\t */\n\tL( momentDate ) {\n\t\treturn momentDate.isLeapYear() ? '1' : '0';\n\t},\n\to: 'GGGG',\n\tY: 'YYYY',\n\ty: 'YY',\n\n\t// Time\n\ta: 'a',\n\tA: 'A',\n\t/**\n\t * Gets the current time in Swatch Internet Time (.beats).\n\t *\n\t * @param {Moment} momentDate Moment instance.\n\t *\n\t * @return {number} Formatted date.\n\t */\n\tB( momentDate ) {\n\t\tconst timezoned = momentLib( momentDate ).utcOffset( 60 );\n\t\tconst seconds = parseInt( timezoned.format( 's' ), 10 ),\n\t\t\tminutes = parseInt( timezoned.format( 'm' ), 10 ),\n\t\t\thours = parseInt( timezoned.format( 'H' ), 10 );\n\t\treturn parseInt(\n\t\t\t(\n\t\t\t\t( seconds +\n\t\t\t\t\tminutes * MINUTE_IN_SECONDS +\n\t\t\t\t\thours * HOUR_IN_SECONDS ) /\n\t\t\t\t86.4\n\t\t\t).toString(),\n\t\t\t10\n\t\t);\n\t},\n\tg: 'h',\n\tG: 'H',\n\th: 'hh',\n\tH: 'HH',\n\ti: 'mm',\n\ts: 'ss',\n\tu: 'SSSSSS',\n\tv: 'SSS',\n\t// Timezone\n\te: 'zz',\n\t/**\n\t * Gets whether the timezone is in DST currently.\n\t *\n\t * @param {Moment} momentDate Moment instance.\n\t *\n\t * @return {string} Formatted date.\n\t */\n\tI( momentDate ) {\n\t\treturn momentDate.isDST() ? '1' : '0';\n\t},\n\tO: 'ZZ',\n\tP: 'Z',\n\tT: 'z',\n\t/**\n\t * Gets the timezone offset in seconds.\n\t *\n\t * @param {Moment} momentDate Moment instance.\n\t *\n\t * @return {number} Formatted date.\n\t */\n\tZ( momentDate ) {\n\t\t// Timezone offset in seconds.\n\t\tconst offset = momentDate.format( 'Z' );\n\t\tconst sign = offset[ 0 ] === '-' ? -1 : 1;\n\t\tconst parts = offset\n\t\t\t.substring( 1 )\n\t\t\t.split( ':' )\n\t\t\t.map( ( n ) => parseInt( n, 10 ) );\n\t\treturn (\n\t\t\tsign *\n\t\t\t( parts[ 0 ] * HOUR_IN_MINUTES + parts[ 1 ] ) *\n\t\t\tMINUTE_IN_SECONDS\n\t\t);\n\t},\n\t// Full date/time\n\tc: 'YYYY-MM-DDTHH:mm:ssZ', // .toISOString\n\tr: 'ddd, D MMM YYYY HH:mm:ss ZZ',\n\tU: 'X',\n};\n\n/**\n * Formats a date. Does not alter the date's timezone.\n *\n * @param {string} dateFormat PHP-style formatting string.\n * See php.net/date.\n * @param {Moment | Date | string | undefined} dateValue Date object or string,\n * parsable by moment.js.\n *\n * @return {string} Formatted date.\n */\nexport function format( dateFormat, dateValue = new Date() ) {\n\tlet i, char;\n\tconst newFormat = [];\n\tconst momentDate = momentLib( dateValue );\n\tfor ( i = 0; i < dateFormat.length; i++ ) {\n\t\tchar = dateFormat[ i ];\n\t\t// Is this an escape?\n\t\tif ( '\\\\' === char ) {\n\t\t\t// Add next character, then move on.\n\t\t\ti++;\n\t\t\tnewFormat.push( '[' + dateFormat[ i ] + ']' );\n\t\t\tcontinue;\n\t\t}\n\t\tif ( char in formatMap ) {\n\t\t\tconst formatter =\n\t\t\t\tformatMap[ /** @type {keyof formatMap} */ ( char ) ];\n\t\t\tif ( typeof formatter !== 'string' ) {\n\t\t\t\t// If the format is a function, call it.\n\t\t\t\tnewFormat.push( '[' + formatter( momentDate ) + ']' );\n\t\t\t} else {\n\t\t\t\t// Otherwise, add as a formatting string.\n\t\t\t\tnewFormat.push( formatter );\n\t\t\t}\n\t\t} else {\n\t\t\tnewFormat.push( '[' + char + ']' );\n\t\t}\n\t}\n\t// Join with [] between to separate characters, and replace\n\t// unneeded separators with static text.\n\treturn momentDate.format( newFormat.join( '[]' ) );\n}\n\n/**\n * Formats a date (like `date()` in PHP).\n *\n * @param {string} dateFormat PHP-style formatting string.\n * See php.net/date.\n * @param {Moment | Date | string | undefined} dateValue Date object or string, parsable\n * by moment.js.\n * @param {string | undefined} timezone Timezone to output result in or a\n * UTC offset. Defaults to timezone from\n * site.\n *\n * @see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_offsets_from_UTC\n *\n * @return {string} Formatted date in English.\n */\nexport function date( dateFormat, dateValue = new Date(), timezone ) {\n\tconst dateMoment = buildMoment( dateValue, timezone );\n\treturn format( dateFormat, dateMoment );\n}\n\n/**\n * Formats a date (like `date()` in PHP), in the UTC timezone.\n *\n * @param {string} dateFormat PHP-style formatting string.\n * See php.net/date.\n * @param {Moment | Date | string | undefined} dateValue Date object or string,\n * parsable by moment.js.\n *\n * @return {string} Formatted date in English.\n */\nexport function gmdate( dateFormat, dateValue = new Date() ) {\n\tconst dateMoment = momentLib( dateValue ).utc();\n\treturn format( dateFormat, dateMoment );\n}\n\n/**\n * Formats a date (like `wp_date()` in PHP), translating it into site's locale.\n *\n * Backward Compatibility Notice: if `timezone` is set to `true`, the function\n * behaves like `gmdateI18n`.\n *\n * @param {string} dateFormat PHP-style formatting string.\n * See php.net/date.\n * @param {Moment | Date | string | undefined} dateValue Date object or string, parsable by\n * moment.js.\n * @param {string | boolean | undefined} timezone Timezone to output result in or a\n * UTC offset. Defaults to timezone from\n * site. Notice: `boolean` is effectively\n * deprecated, but still supported for\n * backward compatibility reasons.\n *\n * @see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_offsets_from_UTC\n *\n * @return {string} Formatted date.\n */\nexport function dateI18n( dateFormat, dateValue = new Date(), timezone ) {\n\tif ( true === timezone ) {\n\t\treturn gmdateI18n( dateFormat, dateValue );\n\t}\n\n\tif ( false === timezone ) {\n\t\ttimezone = undefined;\n\t}\n\n\tconst dateMoment = buildMoment( dateValue, timezone );\n\tdateMoment.locale( settings.l10n.locale );\n\treturn format( dateFormat, dateMoment );\n}\n\n/**\n * Formats a date (like `wp_date()` in PHP), translating it into site's locale\n * and using the UTC timezone.\n *\n * @param {string} dateFormat PHP-style formatting string.\n * See php.net/date.\n * @param {Moment | Date | string | undefined} dateValue Date object or string,\n * parsable by moment.js.\n *\n * @return {string} Formatted date.\n */\nexport function gmdateI18n( dateFormat, dateValue = new Date() ) {\n\tconst dateMoment = momentLib( dateValue ).utc();\n\tdateMoment.locale( settings.l10n.locale );\n\treturn format( dateFormat, dateMoment );\n}\n\n/**\n * Check whether a date is considered in the future according to the WordPress settings.\n *\n * @param {string} dateValue Date String or Date object in the Defined WP Timezone.\n *\n * @return {boolean} Is in the future.\n */\nexport function isInTheFuture( dateValue ) {\n\tconst now = momentLib.tz( WP_ZONE );\n\tconst momentObject = momentLib.tz( dateValue, WP_ZONE );\n\n\treturn momentObject.isAfter( now );\n}\n\n/**\n * Create and return a JavaScript Date Object from a date string in the WP timezone.\n *\n * @param {string?} dateString Date formatted in the WP timezone.\n *\n * @return {Date} Date\n */\nexport function getDate( dateString ) {\n\tif ( ! dateString ) {\n\t\treturn momentLib.tz( WP_ZONE ).toDate();\n\t}\n\n\treturn momentLib.tz( dateString, WP_ZONE ).toDate();\n}\n\n/**\n * Creates a moment instance using the given timezone or, if none is provided, using global settings.\n *\n * @param {Moment | Date | string | undefined} dateValue Date object or string, parsable\n * by moment.js.\n * @param {string | undefined} timezone Timezone to output result in or a\n * UTC offset. Defaults to timezone from\n * site.\n *\n * @see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_offsets_from_UTC\n *\n * @return {Moment} a moment instance.\n */\nfunction buildMoment( dateValue, timezone = '' ) {\n\tconst dateMoment = momentLib( dateValue );\n\n\tif ( timezone && ! isUTCOffset( timezone ) ) {\n\t\treturn dateMoment.tz( timezone );\n\t}\n\n\tif ( timezone && isUTCOffset( timezone ) ) {\n\t\treturn dateMoment.utcOffset( timezone );\n\t}\n\n\tif ( settings.timezone.string ) {\n\t\treturn dateMoment.tz( settings.timezone.string );\n\t}\n\n\treturn dateMoment.utcOffset( settings.timezone.offset );\n}\n\n/**\n * Returns whether a certain UTC offset is valid or not.\n *\n * @param {number|string} offset a UTC offset.\n *\n * @return {boolean} whether a certain UTC offset is valid or not.\n */\nfunction isUTCOffset( offset ) {\n\tif ( 'number' === typeof offset ) {\n\t\treturn true;\n\t}\n\n\treturn VALID_UTC_OFFSET.test( offset );\n}\n\nsetupWPTimezone();\n"]}
@@ -348,7 +348,8 @@ const formatMap = {
348
348
  * @return {string} Formatted date.
349
349
  */
350
350
 
351
- export function format(dateFormat, dateValue = new Date()) {
351
+ export function format(dateFormat) {
352
+ let dateValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Date();
352
353
  let i, char;
353
354
  const newFormat = [];
354
355
  const momentDate = momentLib(dateValue);
@@ -401,7 +402,9 @@ export function format(dateFormat, dateValue = new Date()) {
401
402
  * @return {string} Formatted date in English.
402
403
  */
403
404
 
404
- export function date(dateFormat, dateValue = new Date(), timezone) {
405
+ export function date(dateFormat) {
406
+ let dateValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Date();
407
+ let timezone = arguments.length > 2 ? arguments[2] : undefined;
405
408
  const dateMoment = buildMoment(dateValue, timezone);
406
409
  return format(dateFormat, dateMoment);
407
410
  }
@@ -416,7 +419,8 @@ export function date(dateFormat, dateValue = new Date(), timezone) {
416
419
  * @return {string} Formatted date in English.
417
420
  */
418
421
 
419
- export function gmdate(dateFormat, dateValue = new Date()) {
422
+ export function gmdate(dateFormat) {
423
+ let dateValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Date();
420
424
  const dateMoment = momentLib(dateValue).utc();
421
425
  return format(dateFormat, dateMoment);
422
426
  }
@@ -442,7 +446,10 @@ export function gmdate(dateFormat, dateValue = new Date()) {
442
446
  * @return {string} Formatted date.
443
447
  */
444
448
 
445
- export function dateI18n(dateFormat, dateValue = new Date(), timezone) {
449
+ export function dateI18n(dateFormat) {
450
+ let dateValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Date();
451
+ let timezone = arguments.length > 2 ? arguments[2] : undefined;
452
+
446
453
  if (true === timezone) {
447
454
  return gmdateI18n(dateFormat, dateValue);
448
455
  }
@@ -467,7 +474,8 @@ export function dateI18n(dateFormat, dateValue = new Date(), timezone) {
467
474
  * @return {string} Formatted date.
468
475
  */
469
476
 
470
- export function gmdateI18n(dateFormat, dateValue = new Date()) {
477
+ export function gmdateI18n(dateFormat) {
478
+ let dateValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Date();
471
479
  const dateMoment = momentLib(dateValue).utc();
472
480
  dateMoment.locale(settings.l10n.locale);
473
481
  return format(dateFormat, dateMoment);
@@ -515,7 +523,8 @@ export function getDate(dateString) {
515
523
  * @return {Moment} a moment instance.
516
524
  */
517
525
 
518
- function buildMoment(dateValue, timezone = '') {
526
+ function buildMoment(dateValue) {
527
+ let timezone = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
519
528
  const dateMoment = momentLib(dateValue);
520
529
 
521
530
  if (timezone && !isUTCOffset(timezone)) {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/date/src/index.js"],"names":["momentLib","WP_ZONE","VALID_UTC_OFFSET","settings","l10n","locale","months","monthsShort","weekdays","weekdaysShort","meridiem","am","pm","AM","PM","relative","future","past","s","ss","m","mm","h","hh","d","dd","M","MM","y","yy","formats","time","date","datetime","datetimeAbbreviated","timezone","offset","string","abbr","setSettings","dateSettings","currentLocale","updateLocale","parentLocale","hour","minute","isLowercase","longDateFormat","LT","LTS","L","LL","LLL","LLLL","relativeTime","setupWPTimezone","__experimentalGetSettings","tz","add","pack","name","abbrs","untils","offsets","MINUTE_IN_SECONDS","HOUR_IN_MINUTES","HOUR_IN_SECONDS","formatMap","D","j","l","N","S","momentDate","num","format","withOrdinal","replace","w","z","parseInt","toString","W","F","n","t","daysInMonth","isLeapYear","o","Y","a","A","B","timezoned","utcOffset","seconds","minutes","hours","g","G","H","i","u","v","e","I","isDST","O","P","T","Z","sign","parts","substring","split","map","c","r","U","dateFormat","dateValue","Date","char","newFormat","length","push","formatter","join","dateMoment","buildMoment","gmdate","utc","dateI18n","gmdateI18n","undefined","isInTheFuture","now","momentObject","isAfter","getDate","dateString","toDate","isUTCOffset","test"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport momentLib from 'moment';\nimport 'moment-timezone/moment-timezone';\nimport 'moment-timezone/moment-timezone-utils';\n\n/** @typedef {import('moment').Moment} Moment */\n/** @typedef {import('moment').LocaleSpecification} MomentLocaleSpecification */\n\n/**\n * @typedef MeridiemConfig\n * @property {string} am Lowercase AM.\n * @property {string} AM Uppercase AM.\n * @property {string} pm Lowercase PM.\n * @property {string} PM Uppercase PM.\n */\n\n/**\n * @typedef FormatsConfig\n * @property {string} time Time format.\n * @property {string} date Date format.\n * @property {string} datetime Datetime format.\n * @property {string} datetimeAbbreviated Abbreviated datetime format.\n */\n\n/**\n * @typedef TimezoneConfig\n * @property {string} offset Offset setting.\n * @property {string} string The timezone as a string (e.g., `'America/Los_Angeles'`).\n * @property {string} abbr Abbreviation for the timezone.\n */\n\n/* eslint-disable jsdoc/valid-types */\n/**\n * @typedef L10nSettings\n * @property {string} locale Moment locale.\n * @property {MomentLocaleSpecification['months']} months Locale months.\n * @property {MomentLocaleSpecification['monthsShort']} monthsShort Locale months short.\n * @property {MomentLocaleSpecification['weekdays']} weekdays Locale weekdays.\n * @property {MomentLocaleSpecification['weekdaysShort']} weekdaysShort Locale weekdays short.\n * @property {MeridiemConfig} meridiem Meridiem config.\n * @property {MomentLocaleSpecification['relativeTime']} relative Relative time config.\n */\n/* eslint-enable jsdoc/valid-types */\n\n/**\n * @typedef DateSettings\n * @property {L10nSettings} l10n Localization settings.\n * @property {FormatsConfig} formats Date/time formats config.\n * @property {TimezoneConfig} timezone Timezone settings.\n */\n\nconst WP_ZONE = 'WP';\n\n// This regular expression tests positive for UTC offsets as described in ISO 8601.\n// See: https://en.wikipedia.org/wiki/ISO_8601#Time_offsets_from_UTC\nconst VALID_UTC_OFFSET = /^[+-][0-1][0-9](:?[0-9][0-9])?$/;\n\n// Changes made here will likely need to be made in `lib/client-assets.php` as\n// well because it uses the `setSettings()` function to change these settings.\n/** @type {DateSettings} */\nlet settings = {\n\tl10n: {\n\t\tlocale: 'en',\n\t\tmonths: [\n\t\t\t'January',\n\t\t\t'February',\n\t\t\t'March',\n\t\t\t'April',\n\t\t\t'May',\n\t\t\t'June',\n\t\t\t'July',\n\t\t\t'August',\n\t\t\t'September',\n\t\t\t'October',\n\t\t\t'November',\n\t\t\t'December',\n\t\t],\n\t\tmonthsShort: [\n\t\t\t'Jan',\n\t\t\t'Feb',\n\t\t\t'Mar',\n\t\t\t'Apr',\n\t\t\t'May',\n\t\t\t'Jun',\n\t\t\t'Jul',\n\t\t\t'Aug',\n\t\t\t'Sep',\n\t\t\t'Oct',\n\t\t\t'Nov',\n\t\t\t'Dec',\n\t\t],\n\t\tweekdays: [\n\t\t\t'Sunday',\n\t\t\t'Monday',\n\t\t\t'Tuesday',\n\t\t\t'Wednesday',\n\t\t\t'Thursday',\n\t\t\t'Friday',\n\t\t\t'Saturday',\n\t\t],\n\t\tweekdaysShort: [ 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat' ],\n\t\tmeridiem: { am: 'am', pm: 'pm', AM: 'AM', PM: 'PM' },\n\t\trelative: {\n\t\t\tfuture: '%s from now',\n\t\t\tpast: '%s ago',\n\t\t\ts: 'a few seconds',\n\t\t\tss: '%d seconds',\n\t\t\tm: 'a minute',\n\t\t\tmm: '%d minutes',\n\t\t\th: 'an hour',\n\t\t\thh: '%d hours',\n\t\t\td: 'a day',\n\t\t\tdd: '%d days',\n\t\t\tM: 'a month',\n\t\t\tMM: '%d months',\n\t\t\ty: 'a year',\n\t\t\tyy: '%d years',\n\t\t},\n\t},\n\tformats: {\n\t\ttime: 'g: i a',\n\t\tdate: 'F j, Y',\n\t\tdatetime: 'F j, Y g: i a',\n\t\tdatetimeAbbreviated: 'M j, Y g: i a',\n\t},\n\ttimezone: { offset: '0', string: '', abbr: '' },\n};\n\n/**\n * Adds a locale to moment, using the format supplied by `wp_localize_script()`.\n *\n * @param {DateSettings} dateSettings Settings, including locale data.\n */\nexport function setSettings( dateSettings ) {\n\tsettings = dateSettings;\n\n\t// Backup and restore current locale.\n\tconst currentLocale = momentLib.locale();\n\tmomentLib.updateLocale( dateSettings.l10n.locale, {\n\t\t// Inherit anything missing from the default locale.\n\t\tparentLocale: currentLocale,\n\t\tmonths: dateSettings.l10n.months,\n\t\tmonthsShort: dateSettings.l10n.monthsShort,\n\t\tweekdays: dateSettings.l10n.weekdays,\n\t\tweekdaysShort: dateSettings.l10n.weekdaysShort,\n\t\tmeridiem( hour, minute, isLowercase ) {\n\t\t\tif ( hour < 12 ) {\n\t\t\t\treturn isLowercase\n\t\t\t\t\t? dateSettings.l10n.meridiem.am\n\t\t\t\t\t: dateSettings.l10n.meridiem.AM;\n\t\t\t}\n\t\t\treturn isLowercase\n\t\t\t\t? dateSettings.l10n.meridiem.pm\n\t\t\t\t: dateSettings.l10n.meridiem.PM;\n\t\t},\n\t\tlongDateFormat: {\n\t\t\tLT: dateSettings.formats.time,\n\t\t\t// @ts-ignore Forcing this to `null`\n\t\t\tLTS: null,\n\t\t\t// @ts-ignore Forcing this to `null`\n\t\t\tL: null,\n\t\t\tLL: dateSettings.formats.date,\n\t\t\tLLL: dateSettings.formats.datetime,\n\t\t\t// @ts-ignore Forcing this to `null`\n\t\t\tLLLL: null,\n\t\t},\n\t\t// From human_time_diff?\n\t\t// Set to `(number, withoutSuffix, key, isFuture) => {}` instead.\n\t\trelativeTime: dateSettings.l10n.relative,\n\t} );\n\tmomentLib.locale( currentLocale );\n\n\tsetupWPTimezone();\n}\n\n/**\n * Returns the currently defined date settings.\n *\n * @return {Object} Settings, including locale data.\n */\nexport function __experimentalGetSettings() {\n\treturn settings;\n}\n\nfunction setupWPTimezone() {\n\t// Create WP timezone based off dateSettings.\n\tmomentLib.tz.add(\n\t\tmomentLib.tz.pack( {\n\t\t\tname: WP_ZONE,\n\t\t\tabbrs: [ WP_ZONE ],\n\t\t\tuntils: [ null ],\n\t\t\toffsets: [ -settings.timezone.offset * 60 || 0 ],\n\t\t} )\n\t);\n}\n\n// Date constants.\n/**\n * Number of seconds in one minute.\n *\n * @type {number}\n */\nconst MINUTE_IN_SECONDS = 60;\n/**\n * Number of minutes in one hour.\n *\n * @type {number}\n */\nconst HOUR_IN_MINUTES = 60;\n/**\n * Number of seconds in one hour.\n *\n * @type {number}\n */\nconst HOUR_IN_SECONDS = 60 * MINUTE_IN_SECONDS;\n\n/**\n * Map of PHP formats to Moment.js formats.\n *\n * These are used internally by {@link wp.date.format}, and are either\n * a string representing the corresponding Moment.js format code, or a\n * function which returns the formatted string.\n *\n * This should only be used through {@link wp.date.format}, not\n * directly.\n */\nconst formatMap = {\n\t// Day\n\td: 'DD',\n\tD: 'ddd',\n\tj: 'D',\n\tl: 'dddd',\n\tN: 'E',\n\n\t/**\n\t * Gets the ordinal suffix.\n\t *\n\t * @param {Moment} momentDate Moment instance.\n\t *\n\t * @return {string} Formatted date.\n\t */\n\tS( momentDate ) {\n\t\t// Do - D\n\t\tconst num = momentDate.format( 'D' );\n\t\tconst withOrdinal = momentDate.format( 'Do' );\n\t\treturn withOrdinal.replace( num, '' );\n\t},\n\n\tw: 'd',\n\t/**\n\t * Gets the day of the year (zero-indexed).\n\t *\n\t * @param {Moment} momentDate Moment instance.\n\t *\n\t * @return {string} Formatted date.\n\t */\n\tz( momentDate ) {\n\t\t// DDD - 1\n\t\treturn ( parseInt( momentDate.format( 'DDD' ), 10 ) - 1 ).toString();\n\t},\n\n\t// Week\n\tW: 'W',\n\n\t// Month\n\tF: 'MMMM',\n\tm: 'MM',\n\tM: 'MMM',\n\tn: 'M',\n\t/**\n\t * Gets the days in the month.\n\t *\n\t * @param {Moment} momentDate Moment instance.\n\t *\n\t * @return {number} Formatted date.\n\t */\n\tt( momentDate ) {\n\t\treturn momentDate.daysInMonth();\n\t},\n\n\t// Year\n\t/**\n\t * Gets whether the current year is a leap year.\n\t *\n\t * @param {Moment} momentDate Moment instance.\n\t *\n\t * @return {string} Formatted date.\n\t */\n\tL( momentDate ) {\n\t\treturn momentDate.isLeapYear() ? '1' : '0';\n\t},\n\to: 'GGGG',\n\tY: 'YYYY',\n\ty: 'YY',\n\n\t// Time\n\ta: 'a',\n\tA: 'A',\n\t/**\n\t * Gets the current time in Swatch Internet Time (.beats).\n\t *\n\t * @param {Moment} momentDate Moment instance.\n\t *\n\t * @return {number} Formatted date.\n\t */\n\tB( momentDate ) {\n\t\tconst timezoned = momentLib( momentDate ).utcOffset( 60 );\n\t\tconst seconds = parseInt( timezoned.format( 's' ), 10 ),\n\t\t\tminutes = parseInt( timezoned.format( 'm' ), 10 ),\n\t\t\thours = parseInt( timezoned.format( 'H' ), 10 );\n\t\treturn parseInt(\n\t\t\t(\n\t\t\t\t( seconds +\n\t\t\t\t\tminutes * MINUTE_IN_SECONDS +\n\t\t\t\t\thours * HOUR_IN_SECONDS ) /\n\t\t\t\t86.4\n\t\t\t).toString(),\n\t\t\t10\n\t\t);\n\t},\n\tg: 'h',\n\tG: 'H',\n\th: 'hh',\n\tH: 'HH',\n\ti: 'mm',\n\ts: 'ss',\n\tu: 'SSSSSS',\n\tv: 'SSS',\n\t// Timezone\n\te: 'zz',\n\t/**\n\t * Gets whether the timezone is in DST currently.\n\t *\n\t * @param {Moment} momentDate Moment instance.\n\t *\n\t * @return {string} Formatted date.\n\t */\n\tI( momentDate ) {\n\t\treturn momentDate.isDST() ? '1' : '0';\n\t},\n\tO: 'ZZ',\n\tP: 'Z',\n\tT: 'z',\n\t/**\n\t * Gets the timezone offset in seconds.\n\t *\n\t * @param {Moment} momentDate Moment instance.\n\t *\n\t * @return {number} Formatted date.\n\t */\n\tZ( momentDate ) {\n\t\t// Timezone offset in seconds.\n\t\tconst offset = momentDate.format( 'Z' );\n\t\tconst sign = offset[ 0 ] === '-' ? -1 : 1;\n\t\tconst parts = offset\n\t\t\t.substring( 1 )\n\t\t\t.split( ':' )\n\t\t\t.map( ( n ) => parseInt( n, 10 ) );\n\t\treturn (\n\t\t\tsign *\n\t\t\t( parts[ 0 ] * HOUR_IN_MINUTES + parts[ 1 ] ) *\n\t\t\tMINUTE_IN_SECONDS\n\t\t);\n\t},\n\t// Full date/time\n\tc: 'YYYY-MM-DDTHH:mm:ssZ', // .toISOString\n\tr: 'ddd, D MMM YYYY HH:mm:ss ZZ',\n\tU: 'X',\n};\n\n/**\n * Formats a date. Does not alter the date's timezone.\n *\n * @param {string} dateFormat PHP-style formatting string.\n * See php.net/date.\n * @param {Moment | Date | string | undefined} dateValue Date object or string,\n * parsable by moment.js.\n *\n * @return {string} Formatted date.\n */\nexport function format( dateFormat, dateValue = new Date() ) {\n\tlet i, char;\n\tconst newFormat = [];\n\tconst momentDate = momentLib( dateValue );\n\tfor ( i = 0; i < dateFormat.length; i++ ) {\n\t\tchar = dateFormat[ i ];\n\t\t// Is this an escape?\n\t\tif ( '\\\\' === char ) {\n\t\t\t// Add next character, then move on.\n\t\t\ti++;\n\t\t\tnewFormat.push( '[' + dateFormat[ i ] + ']' );\n\t\t\tcontinue;\n\t\t}\n\t\tif ( char in formatMap ) {\n\t\t\tconst formatter =\n\t\t\t\tformatMap[ /** @type {keyof formatMap} */ ( char ) ];\n\t\t\tif ( typeof formatter !== 'string' ) {\n\t\t\t\t// If the format is a function, call it.\n\t\t\t\tnewFormat.push( '[' + formatter( momentDate ) + ']' );\n\t\t\t} else {\n\t\t\t\t// Otherwise, add as a formatting string.\n\t\t\t\tnewFormat.push( formatter );\n\t\t\t}\n\t\t} else {\n\t\t\tnewFormat.push( '[' + char + ']' );\n\t\t}\n\t}\n\t// Join with [] between to separate characters, and replace\n\t// unneeded separators with static text.\n\treturn momentDate.format( newFormat.join( '[]' ) );\n}\n\n/**\n * Formats a date (like `date()` in PHP).\n *\n * @param {string} dateFormat PHP-style formatting string.\n * See php.net/date.\n * @param {Moment | Date | string | undefined} dateValue Date object or string, parsable\n * by moment.js.\n * @param {string | undefined} timezone Timezone to output result in or a\n * UTC offset. Defaults to timezone from\n * site.\n *\n * @see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_offsets_from_UTC\n *\n * @return {string} Formatted date in English.\n */\nexport function date( dateFormat, dateValue = new Date(), timezone ) {\n\tconst dateMoment = buildMoment( dateValue, timezone );\n\treturn format( dateFormat, dateMoment );\n}\n\n/**\n * Formats a date (like `date()` in PHP), in the UTC timezone.\n *\n * @param {string} dateFormat PHP-style formatting string.\n * See php.net/date.\n * @param {Moment | Date | string | undefined} dateValue Date object or string,\n * parsable by moment.js.\n *\n * @return {string} Formatted date in English.\n */\nexport function gmdate( dateFormat, dateValue = new Date() ) {\n\tconst dateMoment = momentLib( dateValue ).utc();\n\treturn format( dateFormat, dateMoment );\n}\n\n/**\n * Formats a date (like `wp_date()` in PHP), translating it into site's locale.\n *\n * Backward Compatibility Notice: if `timezone` is set to `true`, the function\n * behaves like `gmdateI18n`.\n *\n * @param {string} dateFormat PHP-style formatting string.\n * See php.net/date.\n * @param {Moment | Date | string | undefined} dateValue Date object or string, parsable by\n * moment.js.\n * @param {string | boolean | undefined} timezone Timezone to output result in or a\n * UTC offset. Defaults to timezone from\n * site. Notice: `boolean` is effectively\n * deprecated, but still supported for\n * backward compatibility reasons.\n *\n * @see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_offsets_from_UTC\n *\n * @return {string} Formatted date.\n */\nexport function dateI18n( dateFormat, dateValue = new Date(), timezone ) {\n\tif ( true === timezone ) {\n\t\treturn gmdateI18n( dateFormat, dateValue );\n\t}\n\n\tif ( false === timezone ) {\n\t\ttimezone = undefined;\n\t}\n\n\tconst dateMoment = buildMoment( dateValue, timezone );\n\tdateMoment.locale( settings.l10n.locale );\n\treturn format( dateFormat, dateMoment );\n}\n\n/**\n * Formats a date (like `wp_date()` in PHP), translating it into site's locale\n * and using the UTC timezone.\n *\n * @param {string} dateFormat PHP-style formatting string.\n * See php.net/date.\n * @param {Moment | Date | string | undefined} dateValue Date object or string,\n * parsable by moment.js.\n *\n * @return {string} Formatted date.\n */\nexport function gmdateI18n( dateFormat, dateValue = new Date() ) {\n\tconst dateMoment = momentLib( dateValue ).utc();\n\tdateMoment.locale( settings.l10n.locale );\n\treturn format( dateFormat, dateMoment );\n}\n\n/**\n * Check whether a date is considered in the future according to the WordPress settings.\n *\n * @param {string} dateValue Date String or Date object in the Defined WP Timezone.\n *\n * @return {boolean} Is in the future.\n */\nexport function isInTheFuture( dateValue ) {\n\tconst now = momentLib.tz( WP_ZONE );\n\tconst momentObject = momentLib.tz( dateValue, WP_ZONE );\n\n\treturn momentObject.isAfter( now );\n}\n\n/**\n * Create and return a JavaScript Date Object from a date string in the WP timezone.\n *\n * @param {string?} dateString Date formatted in the WP timezone.\n *\n * @return {Date} Date\n */\nexport function getDate( dateString ) {\n\tif ( ! dateString ) {\n\t\treturn momentLib.tz( WP_ZONE ).toDate();\n\t}\n\n\treturn momentLib.tz( dateString, WP_ZONE ).toDate();\n}\n\n/**\n * Creates a moment instance using the given timezone or, if none is provided, using global settings.\n *\n * @param {Moment | Date | string | undefined} dateValue Date object or string, parsable\n * by moment.js.\n * @param {string | undefined} timezone Timezone to output result in or a\n * UTC offset. Defaults to timezone from\n * site.\n *\n * @see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_offsets_from_UTC\n *\n * @return {Moment} a moment instance.\n */\nfunction buildMoment( dateValue, timezone = '' ) {\n\tconst dateMoment = momentLib( dateValue );\n\n\tif ( timezone && ! isUTCOffset( timezone ) ) {\n\t\treturn dateMoment.tz( timezone );\n\t}\n\n\tif ( timezone && isUTCOffset( timezone ) ) {\n\t\treturn dateMoment.utcOffset( timezone );\n\t}\n\n\tif ( settings.timezone.string ) {\n\t\treturn dateMoment.tz( settings.timezone.string );\n\t}\n\n\treturn dateMoment.utcOffset( settings.timezone.offset );\n}\n\n/**\n * Returns whether a certain UTC offset is valid or not.\n *\n * @param {number|string} offset a UTC offset.\n *\n * @return {boolean} whether a certain UTC offset is valid or not.\n */\nfunction isUTCOffset( offset ) {\n\tif ( 'number' === typeof offset ) {\n\t\treturn true;\n\t}\n\n\treturn VALID_UTC_OFFSET.test( offset );\n}\n\nsetupWPTimezone();\n"]}
1
+ {"version":3,"sources":["@wordpress/date/src/index.js"],"names":["momentLib","WP_ZONE","VALID_UTC_OFFSET","settings","l10n","locale","months","monthsShort","weekdays","weekdaysShort","meridiem","am","pm","AM","PM","relative","future","past","s","ss","m","mm","h","hh","d","dd","M","MM","y","yy","formats","time","date","datetime","datetimeAbbreviated","timezone","offset","string","abbr","setSettings","dateSettings","currentLocale","updateLocale","parentLocale","hour","minute","isLowercase","longDateFormat","LT","LTS","L","LL","LLL","LLLL","relativeTime","setupWPTimezone","__experimentalGetSettings","tz","add","pack","name","abbrs","untils","offsets","MINUTE_IN_SECONDS","HOUR_IN_MINUTES","HOUR_IN_SECONDS","formatMap","D","j","l","N","S","momentDate","num","format","withOrdinal","replace","w","z","parseInt","toString","W","F","n","t","daysInMonth","isLeapYear","o","Y","a","A","B","timezoned","utcOffset","seconds","minutes","hours","g","G","H","i","u","v","e","I","isDST","O","P","T","Z","sign","parts","substring","split","map","c","r","U","dateFormat","dateValue","Date","char","newFormat","length","push","formatter","join","dateMoment","buildMoment","gmdate","utc","dateI18n","gmdateI18n","undefined","isInTheFuture","now","momentObject","isAfter","getDate","dateString","toDate","isUTCOffset","test"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport momentLib from 'moment';\nimport 'moment-timezone/moment-timezone';\nimport 'moment-timezone/moment-timezone-utils';\n\n/** @typedef {import('moment').Moment} Moment */\n/** @typedef {import('moment').LocaleSpecification} MomentLocaleSpecification */\n\n/**\n * @typedef MeridiemConfig\n * @property {string} am Lowercase AM.\n * @property {string} AM Uppercase AM.\n * @property {string} pm Lowercase PM.\n * @property {string} PM Uppercase PM.\n */\n\n/**\n * @typedef FormatsConfig\n * @property {string} time Time format.\n * @property {string} date Date format.\n * @property {string} datetime Datetime format.\n * @property {string} datetimeAbbreviated Abbreviated datetime format.\n */\n\n/**\n * @typedef TimezoneConfig\n * @property {string} offset Offset setting.\n * @property {string} string The timezone as a string (e.g., `'America/Los_Angeles'`).\n * @property {string} abbr Abbreviation for the timezone.\n */\n\n/* eslint-disable jsdoc/valid-types */\n/**\n * @typedef L10nSettings\n * @property {string} locale Moment locale.\n * @property {MomentLocaleSpecification['months']} months Locale months.\n * @property {MomentLocaleSpecification['monthsShort']} monthsShort Locale months short.\n * @property {MomentLocaleSpecification['weekdays']} weekdays Locale weekdays.\n * @property {MomentLocaleSpecification['weekdaysShort']} weekdaysShort Locale weekdays short.\n * @property {MeridiemConfig} meridiem Meridiem config.\n * @property {MomentLocaleSpecification['relativeTime']} relative Relative time config.\n */\n/* eslint-enable jsdoc/valid-types */\n\n/**\n * @typedef DateSettings\n * @property {L10nSettings} l10n Localization settings.\n * @property {FormatsConfig} formats Date/time formats config.\n * @property {TimezoneConfig} timezone Timezone settings.\n */\n\nconst WP_ZONE = 'WP';\n\n// This regular expression tests positive for UTC offsets as described in ISO 8601.\n// See: https://en.wikipedia.org/wiki/ISO_8601#Time_offsets_from_UTC\nconst VALID_UTC_OFFSET = /^[+-][0-1][0-9](:?[0-9][0-9])?$/;\n\n// Changes made here will likely need to be made in `lib/client-assets.php` as\n// well because it uses the `setSettings()` function to change these settings.\n/** @type {DateSettings} */\nlet settings = {\n\tl10n: {\n\t\tlocale: 'en',\n\t\tmonths: [\n\t\t\t'January',\n\t\t\t'February',\n\t\t\t'March',\n\t\t\t'April',\n\t\t\t'May',\n\t\t\t'June',\n\t\t\t'July',\n\t\t\t'August',\n\t\t\t'September',\n\t\t\t'October',\n\t\t\t'November',\n\t\t\t'December',\n\t\t],\n\t\tmonthsShort: [\n\t\t\t'Jan',\n\t\t\t'Feb',\n\t\t\t'Mar',\n\t\t\t'Apr',\n\t\t\t'May',\n\t\t\t'Jun',\n\t\t\t'Jul',\n\t\t\t'Aug',\n\t\t\t'Sep',\n\t\t\t'Oct',\n\t\t\t'Nov',\n\t\t\t'Dec',\n\t\t],\n\t\tweekdays: [\n\t\t\t'Sunday',\n\t\t\t'Monday',\n\t\t\t'Tuesday',\n\t\t\t'Wednesday',\n\t\t\t'Thursday',\n\t\t\t'Friday',\n\t\t\t'Saturday',\n\t\t],\n\t\tweekdaysShort: [ 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat' ],\n\t\tmeridiem: { am: 'am', pm: 'pm', AM: 'AM', PM: 'PM' },\n\t\trelative: {\n\t\t\tfuture: '%s from now',\n\t\t\tpast: '%s ago',\n\t\t\ts: 'a few seconds',\n\t\t\tss: '%d seconds',\n\t\t\tm: 'a minute',\n\t\t\tmm: '%d minutes',\n\t\t\th: 'an hour',\n\t\t\thh: '%d hours',\n\t\t\td: 'a day',\n\t\t\tdd: '%d days',\n\t\t\tM: 'a month',\n\t\t\tMM: '%d months',\n\t\t\ty: 'a year',\n\t\t\tyy: '%d years',\n\t\t},\n\t},\n\tformats: {\n\t\ttime: 'g: i a',\n\t\tdate: 'F j, Y',\n\t\tdatetime: 'F j, Y g: i a',\n\t\tdatetimeAbbreviated: 'M j, Y g: i a',\n\t},\n\ttimezone: { offset: '0', string: '', abbr: '' },\n};\n\n/**\n * Adds a locale to moment, using the format supplied by `wp_localize_script()`.\n *\n * @param {DateSettings} dateSettings Settings, including locale data.\n */\nexport function setSettings( dateSettings ) {\n\tsettings = dateSettings;\n\n\t// Backup and restore current locale.\n\tconst currentLocale = momentLib.locale();\n\tmomentLib.updateLocale( dateSettings.l10n.locale, {\n\t\t// Inherit anything missing from the default locale.\n\t\tparentLocale: currentLocale,\n\t\tmonths: dateSettings.l10n.months,\n\t\tmonthsShort: dateSettings.l10n.monthsShort,\n\t\tweekdays: dateSettings.l10n.weekdays,\n\t\tweekdaysShort: dateSettings.l10n.weekdaysShort,\n\t\tmeridiem( hour, minute, isLowercase ) {\n\t\t\tif ( hour < 12 ) {\n\t\t\t\treturn isLowercase\n\t\t\t\t\t? dateSettings.l10n.meridiem.am\n\t\t\t\t\t: dateSettings.l10n.meridiem.AM;\n\t\t\t}\n\t\t\treturn isLowercase\n\t\t\t\t? dateSettings.l10n.meridiem.pm\n\t\t\t\t: dateSettings.l10n.meridiem.PM;\n\t\t},\n\t\tlongDateFormat: {\n\t\t\tLT: dateSettings.formats.time,\n\t\t\t// @ts-ignore Forcing this to `null`\n\t\t\tLTS: null,\n\t\t\t// @ts-ignore Forcing this to `null`\n\t\t\tL: null,\n\t\t\tLL: dateSettings.formats.date,\n\t\t\tLLL: dateSettings.formats.datetime,\n\t\t\t// @ts-ignore Forcing this to `null`\n\t\t\tLLLL: null,\n\t\t},\n\t\t// From human_time_diff?\n\t\t// Set to `(number, withoutSuffix, key, isFuture) => {}` instead.\n\t\trelativeTime: dateSettings.l10n.relative,\n\t} );\n\tmomentLib.locale( currentLocale );\n\n\tsetupWPTimezone();\n}\n\n/**\n * Returns the currently defined date settings.\n *\n * @return {Object} Settings, including locale data.\n */\nexport function __experimentalGetSettings() {\n\treturn settings;\n}\n\nfunction setupWPTimezone() {\n\t// Create WP timezone based off dateSettings.\n\tmomentLib.tz.add(\n\t\tmomentLib.tz.pack( {\n\t\t\tname: WP_ZONE,\n\t\t\tabbrs: [ WP_ZONE ],\n\t\t\tuntils: [ null ],\n\t\t\toffsets: [ -settings.timezone.offset * 60 || 0 ],\n\t\t} )\n\t);\n}\n\n// Date constants.\n/**\n * Number of seconds in one minute.\n *\n * @type {number}\n */\nconst MINUTE_IN_SECONDS = 60;\n/**\n * Number of minutes in one hour.\n *\n * @type {number}\n */\nconst HOUR_IN_MINUTES = 60;\n/**\n * Number of seconds in one hour.\n *\n * @type {number}\n */\nconst HOUR_IN_SECONDS = 60 * MINUTE_IN_SECONDS;\n\n/**\n * Map of PHP formats to Moment.js formats.\n *\n * These are used internally by {@link wp.date.format}, and are either\n * a string representing the corresponding Moment.js format code, or a\n * function which returns the formatted string.\n *\n * This should only be used through {@link wp.date.format}, not\n * directly.\n */\nconst formatMap = {\n\t// Day\n\td: 'DD',\n\tD: 'ddd',\n\tj: 'D',\n\tl: 'dddd',\n\tN: 'E',\n\n\t/**\n\t * Gets the ordinal suffix.\n\t *\n\t * @param {Moment} momentDate Moment instance.\n\t *\n\t * @return {string} Formatted date.\n\t */\n\tS( momentDate ) {\n\t\t// Do - D\n\t\tconst num = momentDate.format( 'D' );\n\t\tconst withOrdinal = momentDate.format( 'Do' );\n\t\treturn withOrdinal.replace( num, '' );\n\t},\n\n\tw: 'd',\n\t/**\n\t * Gets the day of the year (zero-indexed).\n\t *\n\t * @param {Moment} momentDate Moment instance.\n\t *\n\t * @return {string} Formatted date.\n\t */\n\tz( momentDate ) {\n\t\t// DDD - 1\n\t\treturn ( parseInt( momentDate.format( 'DDD' ), 10 ) - 1 ).toString();\n\t},\n\n\t// Week\n\tW: 'W',\n\n\t// Month\n\tF: 'MMMM',\n\tm: 'MM',\n\tM: 'MMM',\n\tn: 'M',\n\t/**\n\t * Gets the days in the month.\n\t *\n\t * @param {Moment} momentDate Moment instance.\n\t *\n\t * @return {number} Formatted date.\n\t */\n\tt( momentDate ) {\n\t\treturn momentDate.daysInMonth();\n\t},\n\n\t// Year\n\t/**\n\t * Gets whether the current year is a leap year.\n\t *\n\t * @param {Moment} momentDate Moment instance.\n\t *\n\t * @return {string} Formatted date.\n\t */\n\tL( momentDate ) {\n\t\treturn momentDate.isLeapYear() ? '1' : '0';\n\t},\n\to: 'GGGG',\n\tY: 'YYYY',\n\ty: 'YY',\n\n\t// Time\n\ta: 'a',\n\tA: 'A',\n\t/**\n\t * Gets the current time in Swatch Internet Time (.beats).\n\t *\n\t * @param {Moment} momentDate Moment instance.\n\t *\n\t * @return {number} Formatted date.\n\t */\n\tB( momentDate ) {\n\t\tconst timezoned = momentLib( momentDate ).utcOffset( 60 );\n\t\tconst seconds = parseInt( timezoned.format( 's' ), 10 ),\n\t\t\tminutes = parseInt( timezoned.format( 'm' ), 10 ),\n\t\t\thours = parseInt( timezoned.format( 'H' ), 10 );\n\t\treturn parseInt(\n\t\t\t(\n\t\t\t\t( seconds +\n\t\t\t\t\tminutes * MINUTE_IN_SECONDS +\n\t\t\t\t\thours * HOUR_IN_SECONDS ) /\n\t\t\t\t86.4\n\t\t\t).toString(),\n\t\t\t10\n\t\t);\n\t},\n\tg: 'h',\n\tG: 'H',\n\th: 'hh',\n\tH: 'HH',\n\ti: 'mm',\n\ts: 'ss',\n\tu: 'SSSSSS',\n\tv: 'SSS',\n\t// Timezone\n\te: 'zz',\n\t/**\n\t * Gets whether the timezone is in DST currently.\n\t *\n\t * @param {Moment} momentDate Moment instance.\n\t *\n\t * @return {string} Formatted date.\n\t */\n\tI( momentDate ) {\n\t\treturn momentDate.isDST() ? '1' : '0';\n\t},\n\tO: 'ZZ',\n\tP: 'Z',\n\tT: 'z',\n\t/**\n\t * Gets the timezone offset in seconds.\n\t *\n\t * @param {Moment} momentDate Moment instance.\n\t *\n\t * @return {number} Formatted date.\n\t */\n\tZ( momentDate ) {\n\t\t// Timezone offset in seconds.\n\t\tconst offset = momentDate.format( 'Z' );\n\t\tconst sign = offset[ 0 ] === '-' ? -1 : 1;\n\t\tconst parts = offset\n\t\t\t.substring( 1 )\n\t\t\t.split( ':' )\n\t\t\t.map( ( n ) => parseInt( n, 10 ) );\n\t\treturn (\n\t\t\tsign *\n\t\t\t( parts[ 0 ] * HOUR_IN_MINUTES + parts[ 1 ] ) *\n\t\t\tMINUTE_IN_SECONDS\n\t\t);\n\t},\n\t// Full date/time\n\tc: 'YYYY-MM-DDTHH:mm:ssZ', // .toISOString\n\tr: 'ddd, D MMM YYYY HH:mm:ss ZZ',\n\tU: 'X',\n};\n\n/**\n * Formats a date. Does not alter the date's timezone.\n *\n * @param {string} dateFormat PHP-style formatting string.\n * See php.net/date.\n * @param {Moment | Date | string | undefined} dateValue Date object or string,\n * parsable by moment.js.\n *\n * @return {string} Formatted date.\n */\nexport function format( dateFormat, dateValue = new Date() ) {\n\tlet i, char;\n\tconst newFormat = [];\n\tconst momentDate = momentLib( dateValue );\n\tfor ( i = 0; i < dateFormat.length; i++ ) {\n\t\tchar = dateFormat[ i ];\n\t\t// Is this an escape?\n\t\tif ( '\\\\' === char ) {\n\t\t\t// Add next character, then move on.\n\t\t\ti++;\n\t\t\tnewFormat.push( '[' + dateFormat[ i ] + ']' );\n\t\t\tcontinue;\n\t\t}\n\t\tif ( char in formatMap ) {\n\t\t\tconst formatter =\n\t\t\t\tformatMap[ /** @type {keyof formatMap} */ ( char ) ];\n\t\t\tif ( typeof formatter !== 'string' ) {\n\t\t\t\t// If the format is a function, call it.\n\t\t\t\tnewFormat.push( '[' + formatter( momentDate ) + ']' );\n\t\t\t} else {\n\t\t\t\t// Otherwise, add as a formatting string.\n\t\t\t\tnewFormat.push( formatter );\n\t\t\t}\n\t\t} else {\n\t\t\tnewFormat.push( '[' + char + ']' );\n\t\t}\n\t}\n\t// Join with [] between to separate characters, and replace\n\t// unneeded separators with static text.\n\treturn momentDate.format( newFormat.join( '[]' ) );\n}\n\n/**\n * Formats a date (like `date()` in PHP).\n *\n * @param {string} dateFormat PHP-style formatting string.\n * See php.net/date.\n * @param {Moment | Date | string | undefined} dateValue Date object or string, parsable\n * by moment.js.\n * @param {string | undefined} timezone Timezone to output result in or a\n * UTC offset. Defaults to timezone from\n * site.\n *\n * @see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_offsets_from_UTC\n *\n * @return {string} Formatted date in English.\n */\nexport function date( dateFormat, dateValue = new Date(), timezone ) {\n\tconst dateMoment = buildMoment( dateValue, timezone );\n\treturn format( dateFormat, dateMoment );\n}\n\n/**\n * Formats a date (like `date()` in PHP), in the UTC timezone.\n *\n * @param {string} dateFormat PHP-style formatting string.\n * See php.net/date.\n * @param {Moment | Date | string | undefined} dateValue Date object or string,\n * parsable by moment.js.\n *\n * @return {string} Formatted date in English.\n */\nexport function gmdate( dateFormat, dateValue = new Date() ) {\n\tconst dateMoment = momentLib( dateValue ).utc();\n\treturn format( dateFormat, dateMoment );\n}\n\n/**\n * Formats a date (like `wp_date()` in PHP), translating it into site's locale.\n *\n * Backward Compatibility Notice: if `timezone` is set to `true`, the function\n * behaves like `gmdateI18n`.\n *\n * @param {string} dateFormat PHP-style formatting string.\n * See php.net/date.\n * @param {Moment | Date | string | undefined} dateValue Date object or string, parsable by\n * moment.js.\n * @param {string | boolean | undefined} timezone Timezone to output result in or a\n * UTC offset. Defaults to timezone from\n * site. Notice: `boolean` is effectively\n * deprecated, but still supported for\n * backward compatibility reasons.\n *\n * @see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_offsets_from_UTC\n *\n * @return {string} Formatted date.\n */\nexport function dateI18n( dateFormat, dateValue = new Date(), timezone ) {\n\tif ( true === timezone ) {\n\t\treturn gmdateI18n( dateFormat, dateValue );\n\t}\n\n\tif ( false === timezone ) {\n\t\ttimezone = undefined;\n\t}\n\n\tconst dateMoment = buildMoment( dateValue, timezone );\n\tdateMoment.locale( settings.l10n.locale );\n\treturn format( dateFormat, dateMoment );\n}\n\n/**\n * Formats a date (like `wp_date()` in PHP), translating it into site's locale\n * and using the UTC timezone.\n *\n * @param {string} dateFormat PHP-style formatting string.\n * See php.net/date.\n * @param {Moment | Date | string | undefined} dateValue Date object or string,\n * parsable by moment.js.\n *\n * @return {string} Formatted date.\n */\nexport function gmdateI18n( dateFormat, dateValue = new Date() ) {\n\tconst dateMoment = momentLib( dateValue ).utc();\n\tdateMoment.locale( settings.l10n.locale );\n\treturn format( dateFormat, dateMoment );\n}\n\n/**\n * Check whether a date is considered in the future according to the WordPress settings.\n *\n * @param {string} dateValue Date String or Date object in the Defined WP Timezone.\n *\n * @return {boolean} Is in the future.\n */\nexport function isInTheFuture( dateValue ) {\n\tconst now = momentLib.tz( WP_ZONE );\n\tconst momentObject = momentLib.tz( dateValue, WP_ZONE );\n\n\treturn momentObject.isAfter( now );\n}\n\n/**\n * Create and return a JavaScript Date Object from a date string in the WP timezone.\n *\n * @param {string?} dateString Date formatted in the WP timezone.\n *\n * @return {Date} Date\n */\nexport function getDate( dateString ) {\n\tif ( ! dateString ) {\n\t\treturn momentLib.tz( WP_ZONE ).toDate();\n\t}\n\n\treturn momentLib.tz( dateString, WP_ZONE ).toDate();\n}\n\n/**\n * Creates a moment instance using the given timezone or, if none is provided, using global settings.\n *\n * @param {Moment | Date | string | undefined} dateValue Date object or string, parsable\n * by moment.js.\n * @param {string | undefined} timezone Timezone to output result in or a\n * UTC offset. Defaults to timezone from\n * site.\n *\n * @see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_offsets_from_UTC\n *\n * @return {Moment} a moment instance.\n */\nfunction buildMoment( dateValue, timezone = '' ) {\n\tconst dateMoment = momentLib( dateValue );\n\n\tif ( timezone && ! isUTCOffset( timezone ) ) {\n\t\treturn dateMoment.tz( timezone );\n\t}\n\n\tif ( timezone && isUTCOffset( timezone ) ) {\n\t\treturn dateMoment.utcOffset( timezone );\n\t}\n\n\tif ( settings.timezone.string ) {\n\t\treturn dateMoment.tz( settings.timezone.string );\n\t}\n\n\treturn dateMoment.utcOffset( settings.timezone.offset );\n}\n\n/**\n * Returns whether a certain UTC offset is valid or not.\n *\n * @param {number|string} offset a UTC offset.\n *\n * @return {boolean} whether a certain UTC offset is valid or not.\n */\nfunction isUTCOffset( offset ) {\n\tif ( 'number' === typeof offset ) {\n\t\treturn true;\n\t}\n\n\treturn VALID_UTC_OFFSET.test( offset );\n}\n\nsetupWPTimezone();\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/date",
3
- "version": "4.2.2",
3
+ "version": "4.2.3",
4
4
  "description": "Date module for WordPress.",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -26,12 +26,12 @@
26
26
  "react-native": "src/index",
27
27
  "types": "build-types",
28
28
  "dependencies": {
29
- "@babel/runtime": "^7.13.10",
29
+ "@babel/runtime": "^7.16.0",
30
30
  "moment": "^2.22.1",
31
31
  "moment-timezone": "^0.5.31"
32
32
  },
33
33
  "publishConfig": {
34
34
  "access": "public"
35
35
  },
36
- "gitHead": "8f7f052bc04e3f4eb50f479ced14be1489b9fa79"
36
+ "gitHead": "9a1dd3474d937468e4cf9caf9886ad61ef0a8f50"
37
37
  }