text: 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);
    };
  });