chartjs-adapter-moment.js 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. /*!
  2. * chartjs-adapter-moment v1.0.1
  3. * https://www.chartjs.org
  4. * (c) 2022 chartjs-adapter-moment Contributors
  5. * Released under the MIT license
  6. */
  7. (function (global, factory) {
  8. typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('moment'), require('chart.js')) :
  9. typeof define === 'function' && define.amd ? define(['moment', 'chart.js'], factory) :
  10. (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.moment, global.Chart));
  11. }(this, (function (moment, chart_js) { 'use strict';
  12. function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
  13. var moment__default = /*#__PURE__*/_interopDefaultLegacy(moment);
  14. const FORMATS = {
  15. datetime: 'MMM D, YYYY, h:mm:ss a',
  16. millisecond: 'h:mm:ss.SSS a',
  17. second: 'h:mm:ss a',
  18. minute: 'h:mm a',
  19. hour: 'hA',
  20. day: 'MMM D',
  21. week: 'll',
  22. month: 'MMM YYYY',
  23. quarter: '[Q]Q - YYYY',
  24. year: 'YYYY'
  25. };
  26. chart_js._adapters._date.override(typeof moment__default['default'] === 'function' ? {
  27. _id: 'moment', // DEBUG ONLY
  28. formats: function() {
  29. return FORMATS;
  30. },
  31. parse: function(value, format) {
  32. if (typeof value === 'string' && typeof format === 'string') {
  33. value = moment__default['default'](value, format);
  34. } else if (!(value instanceof moment__default['default'])) {
  35. value = moment__default['default'](value);
  36. }
  37. return value.isValid() ? value.valueOf() : null;
  38. },
  39. format: function(time, format) {
  40. return moment__default['default'](time).format(format);
  41. },
  42. add: function(time, amount, unit) {
  43. return moment__default['default'](time).add(amount, unit).valueOf();
  44. },
  45. diff: function(max, min, unit) {
  46. return moment__default['default'](max).diff(moment__default['default'](min), unit);
  47. },
  48. startOf: function(time, unit, weekday) {
  49. time = moment__default['default'](time);
  50. if (unit === 'isoWeek') {
  51. weekday = Math.trunc(Math.min(Math.max(0, weekday), 6));
  52. return time.isoWeekday(weekday).startOf('day').valueOf();
  53. }
  54. return time.startOf(unit).valueOf();
  55. },
  56. endOf: function(time, unit) {
  57. return moment__default['default'](time).endOf(unit).valueOf();
  58. }
  59. } : {});
  60. })));