indproblr-react-datepicker
Version:
Flexible, Reusable, Mobile friendly DatePicker Component
53 lines • 2.39 kB
JavaScript
;
var __spreadArrays = (this && this.__spreadArrays) || function () {
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
for (var r = Array(s), k = 0, i = 0; i < il; i++)
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
r[k] = a[j];
return r;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.formatDate = exports.isDayRange = exports.isDayBefore = exports.isDayAfter = exports.isDayEqual = exports.getYearMatrix = exports.getMonthMatrix = exports.getDayMatrix = void 0;
var ArrayUtil_1 = require("./ArrayUtil");
var dayjs = require("dayjs");
var LocaleUtil_1 = require("./LocaleUtil");
var euOffset = 1; // ashik
exports.getDayMatrix = function (year, month) {
var date = dayjs()
.year(year)
.month(month);
var startOfMonth = date.startOf('month').date();
var endOfMonth = date.endOf('month').date();
/** The reason for the modular is that if the startday is -1 we want it to be 6 */
var startDay = (date.startOf('month').day() - euOffset + 7) % 7;
var remain = (startDay + endOfMonth) % 7;
return ArrayUtil_1.chunk(__spreadArrays(ArrayUtil_1.repeat(' ', startDay), ArrayUtil_1.range(startOfMonth, endOfMonth + 1).map(function (v) { return "" + v; }), (7 - remain === 7 ? [] : ArrayUtil_1.repeat(' ', 7 - remain))), 7);
};
exports.getMonthMatrix = function (locale) {
return ArrayUtil_1.chunk(LocaleUtil_1.getMonthShort(locale), 3);
};
exports.getYearMatrix = function (year) {
return ArrayUtil_1.chunk(ArrayUtil_1.range(year - 4, year + 5).map(function (v) { return "" + v; }), 3);
};
exports.isDayEqual = function (day1, day2) {
if (!day1 || !day2)
return false;
return dayjs(day1).isSame(day2, 'date');
};
exports.isDayAfter = function (day1, day2) {
return dayjs(day1).isAfter(day2, 'date');
};
exports.isDayBefore = function (day1, day2) {
return dayjs(day1).isBefore(day2, 'date');
};
exports.isDayRange = function (date, start, end) {
if (!start || !end)
return false;
return exports.isDayAfter(date, start) && exports.isDayBefore(date, end);
};
exports.formatDate = function (date, format) {
if (date === undefined)
return '';
return dayjs(date).format(format);
};
//# sourceMappingURL=DateUtil.js.map