format-years-calendar.js 6.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. /**
  2. * @fileoverview added by tsickle
  3. * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
  4. */
  5. import { shiftDate, formatDate } from 'ngx-bootstrap/chronos';
  6. import { createMatrix } from '../utils/matrix-utils';
  7. /** @type {?} */
  8. var height = 4;
  9. /** @type {?} */
  10. var width = 4;
  11. /** @type {?} */
  12. export var yearsPerCalendar = height * width;
  13. /** @type {?} */
  14. export var initialYearShift = (Math.floor(yearsPerCalendar / 2) - 1) * -1;
  15. /** @type {?} */
  16. var shift = { year: 1 };
  17. /**
  18. * @param {?} viewDate
  19. * @param {?} formatOptions
  20. * @param {?=} previousInitialDate
  21. * @return {?}
  22. */
  23. export function formatYearsCalendar(viewDate, formatOptions, previousInitialDate) {
  24. /** @type {?} */
  25. var initialDate = calculateInitialDate(viewDate, previousInitialDate);
  26. /** @type {?} */
  27. var matrixOptions = { width: width, height: height, initialDate: initialDate, shift: shift };
  28. /** @type {?} */
  29. var yearsMatrix = createMatrix(matrixOptions, (/**
  30. * @param {?} date
  31. * @return {?}
  32. */
  33. function (date) { return ({
  34. date: date,
  35. label: formatDate(date, formatOptions.yearLabel, formatOptions.locale)
  36. }); }));
  37. /** @type {?} */
  38. var yearTitle = formatYearRangeTitle(yearsMatrix, formatOptions);
  39. return {
  40. years: yearsMatrix,
  41. monthTitle: '',
  42. yearTitle: yearTitle
  43. };
  44. }
  45. /**
  46. * @param {?} viewDate
  47. * @param {?=} previousInitialDate
  48. * @return {?}
  49. */
  50. function calculateInitialDate(viewDate, previousInitialDate) {
  51. if (previousInitialDate
  52. && viewDate.getFullYear() >= previousInitialDate.getFullYear()
  53. && viewDate.getFullYear() < previousInitialDate.getFullYear() + yearsPerCalendar) {
  54. return previousInitialDate;
  55. }
  56. return shiftDate(viewDate, { year: initialYearShift });
  57. }
  58. /**
  59. * @param {?} yearsMatrix
  60. * @param {?} formatOptions
  61. * @return {?}
  62. */
  63. function formatYearRangeTitle(yearsMatrix, formatOptions) {
  64. /** @type {?} */
  65. var from = formatDate(yearsMatrix[0][0].date, formatOptions.yearTitle, formatOptions.locale);
  66. /** @type {?} */
  67. var to = formatDate(yearsMatrix[height - 1][width - 1].date, formatOptions.yearTitle, formatOptions.locale);
  68. return from + " - " + to;
  69. }
  70. //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LXllYXJzLWNhbGVuZGFyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LWJvb3RzdHJhcC9kYXRlcGlja2VyLyIsInNvdXJjZXMiOlsiZW5naW5lL2Zvcm1hdC15ZWFycy1jYWxlbmRhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBS0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0lBRS9DLE1BQU0sR0FBRyxDQUFDOztJQUNWLEtBQUssR0FBRyxDQUFDOztBQUNmLE1BQU0sS0FBTyxnQkFBZ0IsR0FBRyxNQUFNLEdBQUcsS0FBSzs7QUFDOUMsTUFBTSxLQUFPLGdCQUFnQixHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7O0lBQ3JFLEtBQUssR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUU7Ozs7Ozs7QUFFekIsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyxRQUFjLEVBQ2QsYUFBc0MsRUFDdEMsbUJBQTBCOztRQUVwQixXQUFXLEdBQUcsb0JBQW9CLENBQUMsUUFBUSxFQUFFLG1CQUFtQixDQUFDOztRQUNqRSxhQUFhLEdBQUcsRUFBRSxLQUFLLE9BQUEsRUFBRSxNQUFNLFFBQUEsRUFBRSxXQUFXLGFBQUEsRUFBRSxLQUFLLE9BQUEsRUFBRTs7UUFDckQsV0FBVyxHQUFHLFlBQVksQ0FFOUIsYUFBYTs7OztJQUFFLFVBQUEsSUFBSSxJQUFJLE9BQUEsQ0FBQztRQUN4QixJQUFJLE1BQUE7UUFDSixLQUFLLEVBQUUsVUFBVSxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsU0FBUyxFQUFFLGFBQWEsQ0FBQyxNQUFNLENBQUM7S0FDdkUsQ0FBQyxFQUh1QixDQUd2QixFQUFDOztRQUNHLFNBQVMsR0FBRyxvQkFBb0IsQ0FBQyxXQUFXLEVBQUUsYUFBYSxDQUFDO0lBRWxFLE9BQU87UUFDTCxLQUFLLEVBQUUsV0FBVztRQUNsQixVQUFVLEVBQUUsRUFBRTtRQUNkLFNBQVMsV0FBQTtLQUNWLENBQUM7QUFDSixDQUFDOzs7Ozs7QUFFRCxTQUFTLG9CQUFvQixDQUFDLFFBQWMsRUFBRSxtQkFBMEI7SUFDdEUsSUFBSSxtQkFBbUI7V0FDbEIsUUFBUSxDQUFDLFdBQVcsRUFBRSxJQUFJLG1CQUFtQixDQUFDLFdBQVcsRUFBRTtXQUMzRCxRQUFRLENBQUMsV0FBVyxFQUFFLEdBQUcsbUJBQW1CLENBQUMsV0FBVyxFQUFFLEdBQUcsZ0JBQWdCLEVBQUU7UUFDbEYsT0FBTyxtQkFBbUIsQ0FBQztLQUM1QjtJQUVELE9BQU8sU0FBUyxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7QUFDekQsQ0FBQzs7Ozs7O0FBRUQsU0FBUyxvQkFBb0IsQ0FDM0IsV0FBc0MsRUFDdEMsYUFBc0M7O1FBRWhDLElBQUksR0FBRyxVQUFVLENBQ3JCLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQ3RCLGFBQWEsQ0FBQyxTQUFTLEVBQ3ZCLGFBQWEsQ0FBQyxNQUFNLENBQ3JCOztRQUNLLEVBQUUsR0FBRyxVQUFVLENBQ25CLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksRUFDdkMsYUFBYSxDQUFDLFNBQVMsRUFDdkIsYUFBYSxDQUFDLE1BQU0sQ0FDckI7SUFFRCxPQUFVLElBQUksV0FBTSxFQUFJLENBQUM7QUFDM0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERhdGVwaWNrZXJGb3JtYXRPcHRpb25zLFxuICBZZWFyc0NhbGVuZGFyVmlld01vZGVsLFxuICBDYWxlbmRhckNlbGxWaWV3TW9kZWxcbn0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7IHNoaWZ0RGF0ZSwgZm9ybWF0RGF0ZSB9IGZyb20gJ25neC1ib290c3RyYXAvY2hyb25vcyc7XG5pbXBvcnQgeyBjcmVhdGVNYXRyaXggfSBmcm9tICcuLi91dGlscy9tYXRyaXgtdXRpbHMnO1xuXG5jb25zdCBoZWlnaHQgPSA0O1xuY29uc3Qgd2lkdGggPSA0O1xuZXhwb3J0IGNvbnN0IHllYXJzUGVyQ2FsZW5kYXIgPSBoZWlnaHQgKiB3aWR0aDtcbmV4cG9ydCBjb25zdCBpbml0aWFsWWVhclNoaWZ0ID0gKE1hdGguZmxvb3IoeWVhcnNQZXJDYWxlbmRhciAvIDIpIC0gMSkgKiAtMTtcbmNvbnN0IHNoaWZ0ID0geyB5ZWFyOiAxIH07XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRZZWFyc0NhbGVuZGFyKFxuICB2aWV3RGF0ZTogRGF0ZSxcbiAgZm9ybWF0T3B0aW9uczogRGF0ZXBpY2tlckZvcm1hdE9wdGlvbnMsXG4gIHByZXZpb3VzSW5pdGlhbERhdGU/OiBEYXRlXG4pOiBZZWFyc0NhbGVuZGFyVmlld01vZGVsIHtcbiAgY29uc3QgaW5pdGlhbERhdGUgPSBjYWxjdWxhdGVJbml0aWFsRGF0ZSh2aWV3RGF0ZSwgcHJldmlvdXNJbml0aWFsRGF0ZSk7XG4gIGNvbnN0IG1hdHJpeE9wdGlvbnMgPSB7IHdpZHRoLCBoZWlnaHQsIGluaXRpYWxEYXRlLCBzaGlmdCB9O1xuICBjb25zdCB5ZWFyc01hdHJpeCA9IGNyZWF0ZU1hdHJpeDxcbiAgICBDYWxlbmRhckNlbGxWaWV3TW9kZWxcbiAgPihtYXRyaXhPcHRpb25zLCBkYXRlID0+ICh7XG4gICAgZGF0ZSxcbiAgICBsYWJlbDogZm9ybWF0RGF0ZShkYXRlLCBmb3JtYXRPcHRpb25zLnllYXJMYWJlbCwgZm9ybWF0T3B0aW9ucy5sb2NhbGUpXG4gIH0pKTtcbiAgY29uc3QgeWVhclRpdGxlID0gZm9ybWF0WWVhclJhbmdlVGl0bGUoeWVhcnNNYXRyaXgsIGZvcm1hdE9wdGlvbnMpO1xuXG4gIHJldHVybiB7XG4gICAgeWVhcnM6IHllYXJzTWF0cml4LFxuICAgIG1vbnRoVGl0bGU6ICcnLFxuICAgIHllYXJUaXRsZVxuICB9O1xufVxuXG5mdW5jdGlvbiBjYWxjdWxhdGVJbml0aWFsRGF0ZSh2aWV3RGF0ZTogRGF0ZSwgcHJldmlvdXNJbml0aWFsRGF0ZT86IERhdGUpOiBEYXRlIHtcbiAgaWYgKHByZXZpb3VzSW5pdGlhbERhdGVcbiAgICAmJiB2aWV3RGF0ZS5nZXRGdWxsWWVhcigpID49IHByZXZpb3VzSW5pdGlhbERhdGUuZ2V0RnVsbFllYXIoKVxuICAgICYmIHZpZXdEYXRlLmdldEZ1bGxZZWFyKCkgPCBwcmV2aW91c0luaXRpYWxEYXRlLmdldEZ1bGxZZWFyKCkgKyB5ZWFyc1BlckNhbGVuZGFyKSB7XG4gICAgcmV0dXJuIHByZXZpb3VzSW5pdGlhbERhdGU7XG4gIH1cblxuICByZXR1cm4gc2hpZnREYXRlKHZpZXdEYXRlLCB7IHllYXI6IGluaXRpYWxZZWFyU2hpZnQgfSk7XG59XG5cbmZ1bmN0aW9uIGZvcm1hdFllYXJSYW5nZVRpdGxlKFxuICB5ZWFyc01hdHJpeDogQ2FsZW5kYXJDZWxsVmlld01vZGVsW11bXSxcbiAgZm9ybWF0T3B0aW9uczogRGF0ZXBpY2tlckZvcm1hdE9wdGlvbnNcbik6IHN0cmluZyB7XG4gIGNvbnN0IGZyb20gPSBmb3JtYXREYXRlKFxuICAgIHllYXJzTWF0cml4WzBdWzBdLmRhdGUsXG4gICAgZm9ybWF0T3B0aW9ucy55ZWFyVGl0bGUsXG4gICAgZm9ybWF0T3B0aW9ucy5sb2NhbGVcbiAgKTtcbiAgY29uc3QgdG8gPSBmb3JtYXREYXRlKFxuICAgIHllYXJzTWF0cml4W2hlaWdodCAtIDFdW3dpZHRoIC0gMV0uZGF0ZSxcbiAgICBmb3JtYXRPcHRpb25zLnllYXJUaXRsZSxcbiAgICBmb3JtYXRPcHRpb25zLmxvY2FsZVxuICApO1xuXG4gIHJldHVybiBgJHtmcm9tfSAtICR7dG99YDtcbn1cbiJdfQ==