| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763 |
- /**
- * DevExtreme (localization/globalize/date.js)
- * Version: 19.1.16
- * Build date: Tue Oct 18 2022
- *
- * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED
- * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
- */
- "use strict";
- require("./core");
- require("./number");
- require("globalize/date");
- var timeData = {
- supplemental: {
- version: {
- _cldrVersion: "28",
- _unicodeVersion: "8.0.0",
- _number: "$Revision: 11969 $"
- },
- timeData: {
- "001": {
- _allowed: "H h",
- _preferred: "H"
- },
- DE: {
- _allowed: "H",
- _preferred: "H"
- },
- JP: {
- _allowed: "H K h",
- _preferred: "H"
- },
- RU: {
- _allowed: "H",
- _preferred: "H"
- },
- US: {
- _allowed: "H h",
- _preferred: "h"
- }
- }
- }
- };
- var enCaGregorian = {
- main: {
- en: {
- identity: {
- version: {
- _cldrVersion: "28",
- _number: "$Revision: 11972 $"
- },
- language: "en"
- },
- dates: {
- calendars: {
- gregorian: {
- months: {
- format: {
- abbreviated: {
- 1: "Jan",
- 2: "Feb",
- 3: "Mar",
- 4: "Apr",
- 5: "May",
- 6: "Jun",
- 7: "Jul",
- 8: "Aug",
- 9: "Sep",
- 10: "Oct",
- 11: "Nov",
- 12: "Dec"
- },
- narrow: {
- 1: "J",
- 2: "F",
- 3: "M",
- 4: "A",
- 5: "M",
- 6: "J",
- 7: "J",
- 8: "A",
- 9: "S",
- 10: "O",
- 11: "N",
- 12: "D"
- },
- wide: {
- 1: "January",
- 2: "February",
- 3: "March",
- 4: "April",
- 5: "May",
- 6: "June",
- 7: "July",
- 8: "August",
- 9: "September",
- 10: "October",
- 11: "November",
- 12: "December"
- }
- },
- "stand-alone": {
- abbreviated: {
- 1: "Jan",
- 2: "Feb",
- 3: "Mar",
- 4: "Apr",
- 5: "May",
- 6: "Jun",
- 7: "Jul",
- 8: "Aug",
- 9: "Sep",
- 10: "Oct",
- 11: "Nov",
- 12: "Dec"
- },
- narrow: {
- 1: "J",
- 2: "F",
- 3: "M",
- 4: "A",
- 5: "M",
- 6: "J",
- 7: "J",
- 8: "A",
- 9: "S",
- 10: "O",
- 11: "N",
- 12: "D"
- },
- wide: {
- 1: "January",
- 2: "February",
- 3: "March",
- 4: "April",
- 5: "May",
- 6: "June",
- 7: "July",
- 8: "August",
- 9: "September",
- 10: "October",
- 11: "November",
- 12: "December"
- }
- }
- },
- days: {
- format: {
- abbreviated: {
- sun: "Sun",
- mon: "Mon",
- tue: "Tue",
- wed: "Wed",
- thu: "Thu",
- fri: "Fri",
- sat: "Sat"
- },
- narrow: {
- sun: "S",
- mon: "M",
- tue: "T",
- wed: "W",
- thu: "T",
- fri: "F",
- sat: "S"
- },
- "short": {
- sun: "Su",
- mon: "Mo",
- tue: "Tu",
- wed: "We",
- thu: "Th",
- fri: "Fr",
- sat: "Sa"
- },
- wide: {
- sun: "Sunday",
- mon: "Monday",
- tue: "Tuesday",
- wed: "Wednesday",
- thu: "Thursday",
- fri: "Friday",
- sat: "Saturday"
- }
- },
- "stand-alone": {
- abbreviated: {
- sun: "Sun",
- mon: "Mon",
- tue: "Tue",
- wed: "Wed",
- thu: "Thu",
- fri: "Fri",
- sat: "Sat"
- },
- narrow: {
- sun: "S",
- mon: "M",
- tue: "T",
- wed: "W",
- thu: "T",
- fri: "F",
- sat: "S"
- },
- "short": {
- sun: "Su",
- mon: "Mo",
- tue: "Tu",
- wed: "We",
- thu: "Th",
- fri: "Fr",
- sat: "Sa"
- },
- wide: {
- sun: "Sunday",
- mon: "Monday",
- tue: "Tuesday",
- wed: "Wednesday",
- thu: "Thursday",
- fri: "Friday",
- sat: "Saturday"
- }
- }
- },
- quarters: {
- format: {
- abbreviated: {
- 1: "Q1",
- 2: "Q2",
- 3: "Q3",
- 4: "Q4"
- },
- narrow: {
- 1: "1",
- 2: "2",
- 3: "3",
- 4: "4"
- },
- wide: {
- 1: "1st quarter",
- 2: "2nd quarter",
- 3: "3rd quarter",
- 4: "4th quarter"
- }
- },
- "stand-alone": {
- abbreviated: {
- 1: "Q1",
- 2: "Q2",
- 3: "Q3",
- 4: "Q4"
- },
- narrow: {
- 1: "1",
- 2: "2",
- 3: "3",
- 4: "4"
- },
- wide: {
- 1: "1st quarter",
- 2: "2nd quarter",
- 3: "3rd quarter",
- 4: "4th quarter"
- }
- }
- },
- dayPeriods: {
- format: {
- abbreviated: {
- midnight: "midnight",
- am: "AM",
- "am-alt-variant": "am",
- noon: "noon",
- pm: "PM",
- "pm-alt-variant": "pm",
- morning1: "in the morning",
- afternoon1: "in the afternoon",
- evening1: "in the evening",
- night1: "at night"
- },
- narrow: {
- midnight: "mi",
- am: "a",
- "am-alt-variant": "am",
- noon: "n",
- pm: "p",
- "pm-alt-variant": "pm",
- morning1: "in the morning",
- afternoon1: "in the afternoon",
- evening1: "in the evening",
- night1: "at night"
- },
- wide: {
- midnight: "midnight",
- am: "AM",
- "am-alt-variant": "am",
- noon: "noon",
- pm: "PM",
- "pm-alt-variant": "pm",
- morning1: "in the morning",
- afternoon1: "in the afternoon",
- evening1: "in the evening",
- night1: "at night"
- }
- },
- "stand-alone": {
- abbreviated: {
- midnight: "midnight",
- am: "AM",
- "am-alt-variant": "am",
- noon: "noon",
- pm: "PM",
- "pm-alt-variant": "pm",
- morning1: "in the morning",
- afternoon1: "in the afternoon",
- evening1: "in the evening",
- night1: "at night"
- },
- narrow: {
- midnight: "midnight",
- am: "AM",
- "am-alt-variant": "am",
- noon: "noon",
- pm: "PM",
- "pm-alt-variant": "pm",
- morning1: "in the morning",
- afternoon1: "in the afternoon",
- evening1: "in the evening",
- night1: "at night"
- },
- wide: {
- midnight: "midnight",
- am: "AM",
- "am-alt-variant": "am",
- noon: "noon",
- pm: "PM",
- "pm-alt-variant": "pm",
- morning1: "morning",
- afternoon1: "afternoon",
- evening1: "evening",
- night1: "night"
- }
- }
- },
- eras: {
- eraNames: {
- 0: "Before Christ",
- "0-alt-variant": "Before Common Era",
- 1: "Anno Domini",
- "1-alt-variant": "Common Era"
- },
- eraAbbr: {
- 0: "BC",
- "0-alt-variant": "BCE",
- 1: "AD",
- "1-alt-variant": "CE"
- },
- eraNarrow: {
- 0: "B",
- "0-alt-variant": "BCE",
- 1: "A",
- "1-alt-variant": "CE"
- }
- },
- dateFormats: {
- full: "EEEE, MMMM d, y",
- "long": "MMMM d, y",
- medium: "MMM d, y",
- "short": "M/d/yy"
- },
- timeFormats: {
- full: "h:mm:ss a zzzz",
- "long": "h:mm:ss a z",
- medium: "h:mm:ss a",
- "short": "h:mm a"
- },
- dateTimeFormats: {
- full: "{1} 'at' {0}",
- "long": "{1} 'at' {0}",
- medium: "{1}, {0}",
- "short": "{1}, {0}",
- availableFormats: {
- d: "d",
- E: "ccc",
- Ed: "d E",
- Ehm: "E h:mm a",
- EHm: "E HH:mm",
- Ehms: "E h:mm:ss a",
- EHms: "E HH:mm:ss",
- Gy: "y G",
- GyMMM: "MMM y G",
- GyMMMd: "MMM d, y G",
- GyMMMEd: "E, MMM d, y G",
- h: "h a",
- H: "HH",
- hm: "h:mm a",
- Hm: "HH:mm",
- hms: "h:mm:ss a",
- Hms: "HH:mm:ss",
- hmsv: "h:mm:ss a v",
- Hmsv: "HH:mm:ss v",
- hmv: "h:mm a v",
- Hmv: "HH:mm v",
- M: "L",
- Md: "M/d",
- MEd: "E, M/d",
- MMM: "LLL",
- MMMd: "MMM d",
- MMMEd: "E, MMM d",
- MMMMd: "MMMM d",
- ms: "mm:ss",
- y: "y",
- yM: "M/y",
- yMd: "M/d/y",
- yMEd: "E, M/d/y",
- yMMM: "MMM y",
- yMMMd: "MMM d, y",
- yMMMEd: "E, MMM d, y",
- yMMMM: "MMMM y",
- yQQQ: "QQQ y",
- yQQQQ: "QQQQ y"
- },
- appendItems: {
- Day: "{0} ({2}: {1})",
- "Day-Of-Week": "{0} {1}",
- Era: "{0} {1}",
- Hour: "{0} ({2}: {1})",
- Minute: "{0} ({2}: {1})",
- Month: "{0} ({2}: {1})",
- Quarter: "{0} ({2}: {1})",
- Second: "{0} ({2}: {1})",
- Timezone: "{0} {1}",
- Week: "{0} ({2}: {1})",
- Year: "{0} {1}"
- },
- intervalFormats: {
- intervalFormatFallback: "{0} \u2013 {1}",
- d: {
- d: "d \u2013 d"
- },
- h: {
- a: "h a \u2013 h a",
- h: "h \u2013 h a"
- },
- H: {
- H: "HH \u2013 HH"
- },
- hm: {
- a: "h:mm a \u2013 h:mm a",
- h: "h:mm \u2013 h:mm a",
- m: "h:mm \u2013 h:mm a"
- },
- Hm: {
- H: "HH:mm \u2013 HH:mm",
- m: "HH:mm \u2013 HH:mm"
- },
- hmv: {
- a: "h:mm a \u2013 h:mm a v",
- h: "h:mm \u2013 h:mm a v",
- m: "h:mm \u2013 h:mm a v"
- },
- Hmv: {
- H: "HH:mm \u2013 HH:mm v",
- m: "HH:mm \u2013 HH:mm v"
- },
- hv: {
- a: "h a \u2013 h a v",
- h: "h \u2013 h a v"
- },
- Hv: {
- H: "HH \u2013 HH v"
- },
- M: {
- M: "M \u2013 M"
- },
- Md: {
- d: "M/d \u2013 M/d",
- M: "M/d \u2013 M/d"
- },
- MEd: {
- d: "E, M/d \u2013 E, M/d",
- M: "E, M/d \u2013 E, M/d"
- },
- MMM: {
- M: "MMM \u2013 MMM"
- },
- MMMd: {
- d: "MMM d \u2013 d",
- M: "MMM d \u2013 MMM d"
- },
- MMMEd: {
- d: "E, MMM d \u2013 E, MMM d",
- M: "E, MMM d \u2013 E, MMM d"
- },
- y: {
- y: "y \u2013 y"
- },
- yM: {
- M: "M/y \u2013 M/y",
- y: "M/y \u2013 M/y"
- },
- yMd: {
- d: "M/d/y \u2013 M/d/y",
- M: "M/d/y \u2013 M/d/y",
- y: "M/d/y \u2013 M/d/y"
- },
- yMEd: {
- d: "E, M/d/y \u2013 E, M/d/y",
- M: "E, M/d/y \u2013 E, M/d/y",
- y: "E, M/d/y \u2013 E, M/d/y"
- },
- yMMM: {
- M: "MMM \u2013 MMM y",
- y: "MMM y \u2013 MMM y"
- },
- yMMMd: {
- d: "MMM d \u2013 d, y",
- M: "MMM d \u2013 MMM d, y",
- y: "MMM d, y \u2013 MMM d, y"
- },
- yMMMEd: {
- d: "E, MMM d \u2013 E, MMM d, y",
- M: "E, MMM d \u2013 E, MMM d, y",
- y: "E, MMM d, y \u2013 E, MMM d, y"
- },
- yMMMM: {
- M: "MMMM \u2013 MMMM y",
- y: "MMMM y \u2013 MMMM y"
- }
- }
- }
- }
- }
- }
- }
- }
- };
- var weekData = {
- supplemental: {
- version: {
- _cldrVersion: "28",
- _unicodeVersion: "8.0.0",
- _number: "$Revision: 11969 $"
- },
- weekData: {
- minDays: {
- "001": "1",
- US: "1",
- DE: "4"
- },
- firstDay: {
- "001": "mon",
- DE: "mon",
- RU: "mon",
- JP: "sun",
- US: "sun"
- },
- weekendStart: {
- "001": "sat"
- },
- weekendEnd: {
- "001": "sun"
- }
- }
- }
- };
- var ACCEPTABLE_JSON_FORMAT_PROPERTIES = ["skeleton", "date", "time", "datetime", "raw"];
- var Globalize = require("globalize");
- var dateLocalization = require("../date");
- var isObject = require("../../core/utils/type").isObject;
- var inArray = require("../../core/utils/array").inArray;
- var iteratorUtils = require("../../core/utils/iterator");
- if (Globalize && Globalize.formatDate) {
- if ("en" === Globalize.locale().locale) {
- Globalize.load(weekData, timeData, enCaGregorian);
- Globalize.locale("en")
- }
- var formattersCache = {};
- var FORMATS_TO_GLOBALIZE_MAP = {
- shortdate: {
- path: "dateTimeFormats/availableFormats/yMd"
- },
- shorttime: {
- path: "timeFormats/short"
- },
- longdate: {
- path: "dateFormats/full"
- },
- longtime: {
- path: "timeFormats/medium"
- },
- monthandday: {
- path: "dateTimeFormats/availableFormats/MMMMd"
- },
- monthandyear: {
- path: "dateTimeFormats/availableFormats/yMMMM"
- },
- quarterandyear: {
- path: "dateTimeFormats/availableFormats/yQQQ"
- },
- day: {
- path: "dateTimeFormats/availableFormats/d"
- },
- year: {
- path: "dateTimeFormats/availableFormats/y"
- },
- shortdateshorttime: {
- path: "dateTimeFormats/short",
- parts: ["shorttime", "shortdate"]
- },
- mediumdatemediumtime: {
- path: "dateTimeFormats/medium",
- parts: ["shorttime", "monthandday"]
- },
- longdatelongtime: {
- path: "dateTimeFormats/medium",
- parts: ["longtime", "longdate"]
- },
- month: {
- pattern: "LLLL"
- },
- shortyear: {
- pattern: "yy"
- },
- dayofweek: {
- pattern: "EEEE"
- },
- quarter: {
- pattern: "QQQ"
- },
- millisecond: {
- pattern: "SSS"
- },
- hour: {
- pattern: "HH"
- },
- minute: {
- pattern: "mm"
- },
- second: {
- pattern: "ss"
- }
- };
- var globalizeDateLocalization = {
- _getPatternByFormat: function(format) {
- var that = this;
- var lowerFormat = format.toLowerCase();
- var globalizeFormat = FORMATS_TO_GLOBALIZE_MAP[lowerFormat];
- if ("datetime-local" === lowerFormat) {
- return "yyyy-MM-ddTHH':'mm':'ss"
- }
- if (!globalizeFormat) {
- return
- }
- var result = globalizeFormat.path && that._getFormatStringByPath(globalizeFormat.path) || globalizeFormat.pattern;
- if (globalizeFormat.parts) {
- iteratorUtils.each(globalizeFormat.parts, function(index, part) {
- result = result.replace("{" + index + "}", that._getPatternByFormat(part))
- })
- }
- return result
- },
- _getFormatStringByPath: function(path) {
- return Globalize.locale().main("dates/calendars/gregorian/" + path)
- },
- getPeriodNames: function() {
- var json = Globalize.locale().main("dates/calendars/gregorian/dayPeriods/stand-alone/wide");
- return [json.am, json.pm]
- },
- getMonthNames: function(format, type) {
- var months = Globalize.locale().main("dates/calendars/gregorian/months/" + ("format" === type ? type : "stand-alone") + "/" + (format || "wide"));
- return iteratorUtils.map(months, function(month) {
- return month
- })
- },
- getDayNames: function(format) {
- var days = Globalize.locale().main("dates/calendars/gregorian/days/stand-alone/" + (format || "wide"));
- return iteratorUtils.map(days, function(day) {
- return day
- })
- },
- getTimeSeparator: function() {
- return Globalize.locale().main("numbers/symbols-numberSystem-latn/timeSeparator")
- },
- format: function(date, _format) {
- if (!date) {
- return
- }
- if (!_format) {
- return date
- }
- var formatter;
- var formatCacheKey;
- if ("function" === typeof _format) {
- return _format(date)
- }
- if (_format.formatter) {
- return _format.formatter(date)
- }
- _format = _format.type || _format;
- if ("string" === typeof _format) {
- formatCacheKey = Globalize.locale().locale + ":" + _format;
- formatter = formattersCache[formatCacheKey];
- if (!formatter) {
- _format = {
- raw: this._getPatternByFormat(_format) || _format
- };
- formatter = formattersCache[formatCacheKey] = Globalize.dateFormatter(_format)
- }
- } else {
- if (!this._isAcceptableFormat(_format)) {
- return
- }
- formatter = Globalize.dateFormatter(_format)
- }
- return formatter(date)
- },
- parse: function(text, format) {
- if (!text) {
- return
- }
- if (!format || "function" === typeof format || isObject(format) && !this._isAcceptableFormat(format)) {
- if (format) {
- var parsedValue = this.callBase(text, format);
- if (parsedValue) {
- return parsedValue
- }
- }
- return Globalize.parseDate(text)
- }
- if (format.parser) {
- return format.parser(text)
- }
- if ("string" === typeof format) {
- format = {
- raw: this._getPatternByFormat(format) || format
- }
- }
- return Globalize.parseDate(text, format)
- },
- _isAcceptableFormat: function(format) {
- if (format.parser) {
- return true
- }
- for (var i = 0; i < ACCEPTABLE_JSON_FORMAT_PROPERTIES.length; i++) {
- if (Object.prototype.hasOwnProperty.call(format, ACCEPTABLE_JSON_FORMAT_PROPERTIES[i])) {
- return true
- }
- }
- },
- firstDayOfWeekIndex: function() {
- var firstDay = Globalize.locale().supplemental.weekData.firstDay();
- return inArray(firstDay, this._getDayKeys())
- },
- _getDayKeys: function() {
- var days = Globalize.locale().main("dates/calendars/gregorian/days/format/short");
- return iteratorUtils.map(days, function(day, key) {
- return key
- })
- }
- };
- dateLocalization.inject(globalizeDateLocalization)
- }
|