UNPKG

@talend/react-components

Version:
62 lines (59 loc) 2.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.buildDayNames = buildDayNames; exports.buildMonths = buildMonths; exports.buildWeeks = void 0; exports.buildYears = buildYears; exports.getPickerLocale = void 0; var _addMonths = require("date-fns/addMonths"); var _format = require("date-fns/format"); var _getYear = require("date-fns/getYear"); var _setDay = require("date-fns/setDay"); var _utils = require("@talend/utils"); var _locale = _interopRequireDefault(require("../i18n/DateFnsLocale/locale")); var _lodash = require("lodash"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } function buildDateFnsLocale() { return { locale: (0, _locale.default)() }; } const getPickerLocale = exports.getPickerLocale = (0, _lodash.memoize)(buildDateFnsLocale); /** * Generate days of week, starting from the provided index */ function buildDayNames(firstDayOfweek = 1, t) { const pickerLocale = getPickerLocale(t); return new Array(7).fill(0).map((_, i) => (i + firstDayOfweek) % 7).map(dayOfWeek => (0, _setDay.setDay)(new Date(0), dayOfWeek)).map(headerDate => ({ abbr: (0, _format.format)(headerDate, 'EEEEE', pickerLocale), full: (0, _format.format)(headerDate, 'EEEE', pickerLocale) })); } const buildWeeks = exports.buildWeeks = _utils.date.buildWeeks; /** * Generate th sets of months, each set has the size of provided "chunkSize" */ function buildMonths(chunkSize, t) { const pickerLocale = getPickerLocale(t); const months = new Array(12).fill(0).map((_, i) => i).map(index => ({ index, name: (0, _format.format)((0, _addMonths.addMonths)(new Date(0), index), 'MMMM', pickerLocale) })); return (0, _lodash.chunk)(months, chunkSize); } /** * Generate a years window, centered on the current year by default, or the provided one */ function buildYears(middle, window = 3) { const middleYear = middle === undefined ? (0, _getYear.getYear)(new Date()) : middle; const start = middleYear - window; const end = middleYear + window; const years = []; for (let i = start; i <= end; i += 1) { years.push(i); } return years; } //# sourceMappingURL=generator.js.map