114 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			114 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
import { t } from '../localizedFormat/utils';
 | 
						|
export default (function (o, c, dayjs) {
 | 
						|
  // locale needed later
 | 
						|
  var proto = c.prototype;
 | 
						|
 | 
						|
  var getLocalePart = function getLocalePart(part) {
 | 
						|
    return part && (part.indexOf ? part : part.s);
 | 
						|
  };
 | 
						|
 | 
						|
  var getShort = function getShort(ins, target, full, num, localeOrder) {
 | 
						|
    var locale = ins.name ? ins : ins.$locale();
 | 
						|
    var targetLocale = getLocalePart(locale[target]);
 | 
						|
    var fullLocale = getLocalePart(locale[full]);
 | 
						|
    var result = targetLocale || fullLocale.map(function (f) {
 | 
						|
      return f.slice(0, num);
 | 
						|
    });
 | 
						|
    if (!localeOrder) return result;
 | 
						|
    var weekStart = locale.weekStart;
 | 
						|
    return result.map(function (_, index) {
 | 
						|
      return result[(index + (weekStart || 0)) % 7];
 | 
						|
    });
 | 
						|
  };
 | 
						|
 | 
						|
  var getDayjsLocaleObject = function getDayjsLocaleObject() {
 | 
						|
    return dayjs.Ls[dayjs.locale()];
 | 
						|
  };
 | 
						|
 | 
						|
  var getLongDateFormat = function getLongDateFormat(l, format) {
 | 
						|
    return l.formats[format] || t(l.formats[format.toUpperCase()]);
 | 
						|
  };
 | 
						|
 | 
						|
  var localeData = function localeData() {
 | 
						|
    var _this = this;
 | 
						|
 | 
						|
    return {
 | 
						|
      months: function months(instance) {
 | 
						|
        return instance ? instance.format('MMMM') : getShort(_this, 'months');
 | 
						|
      },
 | 
						|
      monthsShort: function monthsShort(instance) {
 | 
						|
        return instance ? instance.format('MMM') : getShort(_this, 'monthsShort', 'months', 3);
 | 
						|
      },
 | 
						|
      firstDayOfWeek: function firstDayOfWeek() {
 | 
						|
        return _this.$locale().weekStart || 0;
 | 
						|
      },
 | 
						|
      weekdays: function weekdays(instance) {
 | 
						|
        return instance ? instance.format('dddd') : getShort(_this, 'weekdays');
 | 
						|
      },
 | 
						|
      weekdaysMin: function weekdaysMin(instance) {
 | 
						|
        return instance ? instance.format('dd') : getShort(_this, 'weekdaysMin', 'weekdays', 2);
 | 
						|
      },
 | 
						|
      weekdaysShort: function weekdaysShort(instance) {
 | 
						|
        return instance ? instance.format('ddd') : getShort(_this, 'weekdaysShort', 'weekdays', 3);
 | 
						|
      },
 | 
						|
      longDateFormat: function longDateFormat(format) {
 | 
						|
        return getLongDateFormat(_this.$locale(), format);
 | 
						|
      },
 | 
						|
      meridiem: this.$locale().meridiem,
 | 
						|
      ordinal: this.$locale().ordinal
 | 
						|
    };
 | 
						|
  };
 | 
						|
 | 
						|
  proto.localeData = function () {
 | 
						|
    return localeData.bind(this)();
 | 
						|
  };
 | 
						|
 | 
						|
  dayjs.localeData = function () {
 | 
						|
    var localeObject = getDayjsLocaleObject();
 | 
						|
    return {
 | 
						|
      firstDayOfWeek: function firstDayOfWeek() {
 | 
						|
        return localeObject.weekStart || 0;
 | 
						|
      },
 | 
						|
      weekdays: function weekdays() {
 | 
						|
        return dayjs.weekdays();
 | 
						|
      },
 | 
						|
      weekdaysShort: function weekdaysShort() {
 | 
						|
        return dayjs.weekdaysShort();
 | 
						|
      },
 | 
						|
      weekdaysMin: function weekdaysMin() {
 | 
						|
        return dayjs.weekdaysMin();
 | 
						|
      },
 | 
						|
      months: function months() {
 | 
						|
        return dayjs.months();
 | 
						|
      },
 | 
						|
      monthsShort: function monthsShort() {
 | 
						|
        return dayjs.monthsShort();
 | 
						|
      },
 | 
						|
      longDateFormat: function longDateFormat(format) {
 | 
						|
        return getLongDateFormat(localeObject, format);
 | 
						|
      },
 | 
						|
      meridiem: localeObject.meridiem,
 | 
						|
      ordinal: localeObject.ordinal
 | 
						|
    };
 | 
						|
  };
 | 
						|
 | 
						|
  dayjs.months = function () {
 | 
						|
    return getShort(getDayjsLocaleObject(), 'months');
 | 
						|
  };
 | 
						|
 | 
						|
  dayjs.monthsShort = function () {
 | 
						|
    return getShort(getDayjsLocaleObject(), 'monthsShort', 'months', 3);
 | 
						|
  };
 | 
						|
 | 
						|
  dayjs.weekdays = function (localeOrder) {
 | 
						|
    return getShort(getDayjsLocaleObject(), 'weekdays', null, null, localeOrder);
 | 
						|
  };
 | 
						|
 | 
						|
  dayjs.weekdaysShort = function (localeOrder) {
 | 
						|
    return getShort(getDayjsLocaleObject(), 'weekdaysShort', 'weekdays', 3, localeOrder);
 | 
						|
  };
 | 
						|
 | 
						|
  dayjs.weekdaysMin = function (localeOrder) {
 | 
						|
    return getShort(getDayjsLocaleObject(), 'weekdaysMin', 'weekdays', 2, localeOrder);
 | 
						|
  };
 | 
						|
}); |