dayjs.js 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.default = void 0;
  7. var _dayjs = _interopRequireDefault(require("dayjs"));
  8. var _weekday = _interopRequireDefault(require("dayjs/plugin/weekday"));
  9. var _localeData = _interopRequireDefault(require("dayjs/plugin/localeData"));
  10. var _weekOfYear = _interopRequireDefault(require("dayjs/plugin/weekOfYear"));
  11. var _weekYear = _interopRequireDefault(require("dayjs/plugin/weekYear"));
  12. var _advancedFormat = _interopRequireDefault(require("dayjs/plugin/advancedFormat"));
  13. var _customParseFormat = _interopRequireDefault(require("dayjs/plugin/customParseFormat"));
  14. var _warning = require("../../vc-util/warning");
  15. _dayjs.default.extend(_customParseFormat.default);
  16. _dayjs.default.extend(_advancedFormat.default);
  17. _dayjs.default.extend(_weekday.default);
  18. _dayjs.default.extend(_localeData.default);
  19. _dayjs.default.extend(_weekOfYear.default);
  20. _dayjs.default.extend(_weekYear.default);
  21. _dayjs.default.extend(function (_o, c) {
  22. // todo support Wo (ISO week)
  23. var proto = c.prototype;
  24. var oldFormat = proto.format;
  25. proto.format = function f(formatStr) {
  26. var str = (formatStr || '').replace('Wo', 'wo');
  27. return oldFormat.bind(this)(str);
  28. };
  29. });
  30. var localeMap = {
  31. // ar_EG:
  32. // az_AZ:
  33. // bg_BG:
  34. bn_BD: 'bn-bd',
  35. by_BY: 'be',
  36. // ca_ES:
  37. // cs_CZ:
  38. // da_DK:
  39. // de_DE:
  40. // el_GR:
  41. en_GB: 'en-gb',
  42. en_US: 'en',
  43. // es_ES:
  44. // et_EE:
  45. // fa_IR:
  46. // fi_FI:
  47. fr_BE: 'fr',
  48. fr_CA: 'fr-ca',
  49. // fr_FR:
  50. // ga_IE:
  51. // gl_ES:
  52. // he_IL:
  53. // hi_IN:
  54. // hr_HR:
  55. // hu_HU:
  56. hy_AM: 'hy-am',
  57. // id_ID:
  58. // is_IS:
  59. // it_IT:
  60. // ja_JP:
  61. // ka_GE:
  62. // kk_KZ:
  63. // km_KH:
  64. kmr_IQ: 'ku',
  65. // kn_IN:
  66. // ko_KR:
  67. // ku_IQ: // previous ku in antd
  68. // lt_LT:
  69. // lv_LV:
  70. // mk_MK:
  71. // ml_IN:
  72. // mn_MN:
  73. // ms_MY:
  74. // nb_NO:
  75. // ne_NP:
  76. nl_BE: 'nl-be',
  77. // nl_NL:
  78. // pl_PL:
  79. pt_BR: 'pt-br',
  80. // pt_PT:
  81. // ro_RO:
  82. // ru_RU:
  83. // sk_SK:
  84. // sl_SI:
  85. // sr_RS:
  86. // sv_SE:
  87. // ta_IN:
  88. // th_TH:
  89. // tr_TR:
  90. // uk_UA:
  91. // ur_PK:
  92. // vi_VN:
  93. zh_CN: 'zh-cn',
  94. zh_HK: 'zh-hk',
  95. zh_TW: 'zh-tw'
  96. };
  97. var parseLocale = function parseLocale(locale) {
  98. var mapLocale = localeMap[locale];
  99. return mapLocale || locale.split('_')[0];
  100. };
  101. var parseNoMatchNotice = function parseNoMatchNotice() {
  102. /* istanbul ignore next */
  103. (0, _warning.noteOnce)(false, 'Not match any format. Please help to fire a issue about this.');
  104. };
  105. var generateConfig = {
  106. // get
  107. getNow: function getNow() {
  108. return (0, _dayjs.default)();
  109. },
  110. getFixedDate: function getFixedDate(string) {
  111. return (0, _dayjs.default)(string, ['YYYY-M-DD', 'YYYY-MM-DD']);
  112. },
  113. getEndDate: function getEndDate(date) {
  114. return date.endOf('month');
  115. },
  116. getWeekDay: function getWeekDay(date) {
  117. var clone = date.locale('en');
  118. return clone.weekday() + clone.localeData().firstDayOfWeek();
  119. },
  120. getYear: function getYear(date) {
  121. return date.year();
  122. },
  123. getMonth: function getMonth(date) {
  124. return date.month();
  125. },
  126. getDate: function getDate(date) {
  127. return date.date();
  128. },
  129. getHour: function getHour(date) {
  130. return date.hour();
  131. },
  132. getMinute: function getMinute(date) {
  133. return date.minute();
  134. },
  135. getSecond: function getSecond(date) {
  136. return date.second();
  137. },
  138. // set
  139. addYear: function addYear(date, diff) {
  140. return date.add(diff, 'year');
  141. },
  142. addMonth: function addMonth(date, diff) {
  143. return date.add(diff, 'month');
  144. },
  145. addDate: function addDate(date, diff) {
  146. return date.add(diff, 'day');
  147. },
  148. setYear: function setYear(date, year) {
  149. return date.year(year);
  150. },
  151. setMonth: function setMonth(date, month) {
  152. return date.month(month);
  153. },
  154. setDate: function setDate(date, num) {
  155. return date.date(num);
  156. },
  157. setHour: function setHour(date, hour) {
  158. return date.hour(hour);
  159. },
  160. setMinute: function setMinute(date, minute) {
  161. return date.minute(minute);
  162. },
  163. setSecond: function setSecond(date, second) {
  164. return date.second(second);
  165. },
  166. // Compare
  167. isAfter: function isAfter(date1, date2) {
  168. return date1.isAfter(date2);
  169. },
  170. isValidate: function isValidate(date) {
  171. return date.isValid();
  172. },
  173. locale: {
  174. getWeekFirstDay: function getWeekFirstDay(locale) {
  175. return (0, _dayjs.default)().locale(parseLocale(locale)).localeData().firstDayOfWeek();
  176. },
  177. getWeekFirstDate: function getWeekFirstDate(locale, date) {
  178. return date.locale(parseLocale(locale)).weekday(0);
  179. },
  180. getWeek: function getWeek(locale, date) {
  181. return date.locale(parseLocale(locale)).week();
  182. },
  183. getShortWeekDays: function getShortWeekDays(locale) {
  184. return (0, _dayjs.default)().locale(parseLocale(locale)).localeData().weekdaysMin();
  185. },
  186. getShortMonths: function getShortMonths(locale) {
  187. return (0, _dayjs.default)().locale(parseLocale(locale)).localeData().monthsShort();
  188. },
  189. format: function format(locale, date, _format) {
  190. return date.locale(parseLocale(locale)).format(_format);
  191. },
  192. parse: function parse(locale, text, formats) {
  193. var localeStr = parseLocale(locale);
  194. for (var i = 0; i < formats.length; i += 1) {
  195. var format = formats[i];
  196. var formatText = text;
  197. if (format.includes('wo') || format.includes('Wo')) {
  198. // parse Wo
  199. var year = formatText.split('-')[0];
  200. var weekStr = formatText.split('-')[1];
  201. var firstWeek = (0, _dayjs.default)(year, 'YYYY').startOf('year').locale(localeStr);
  202. for (var j = 0; j <= 52; j += 1) {
  203. var nextWeek = firstWeek.add(j, 'week');
  204. if (nextWeek.format('Wo') === weekStr) {
  205. return nextWeek;
  206. }
  207. }
  208. parseNoMatchNotice();
  209. return null;
  210. }
  211. var date = (0, _dayjs.default)(formatText, format, true).locale(localeStr);
  212. if (date.isValid()) {
  213. return date;
  214. }
  215. }
  216. if (!text) {
  217. parseNoMatchNotice();
  218. }
  219. return null;
  220. }
  221. },
  222. toDate: function toDate(value, valueFormat) {
  223. if (Array.isArray(value)) {
  224. return value.map(function (val) {
  225. return typeof val === 'string' && val ? (0, _dayjs.default)(val, valueFormat) : val || null;
  226. });
  227. } else {
  228. return typeof value === 'string' && value ? (0, _dayjs.default)(value, valueFormat) : value || null;
  229. }
  230. },
  231. toString: function toString(value, valueFormat) {
  232. if (Array.isArray(value)) {
  233. return value.map(function (val) {
  234. return _dayjs.default.isDayjs(val) ? val.format(valueFormat) : val;
  235. });
  236. } else {
  237. return _dayjs.default.isDayjs(value) ? value.format(valueFormat) : value;
  238. }
  239. }
  240. };
  241. var _default = generateConfig;
  242. exports.default = _default;