@syncfusion/ej2-calendars 20.2.38 → 20.2.40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1094,6 +1094,7 @@ var CalendarBase = /** @__PURE__ @class */ (function (_super) {
1094
1094
  this.currentDate.setFullYear(d.getFullYear());
1095
1095
  }
1096
1096
  else {
1097
+ this.islamicPreviousHeader = this.headerElement.textContent;
1097
1098
  var islamicDate = this.islamicModule.getIslamicDate(d);
1098
1099
  this.currentDate = this.islamicModule.toGregorian(islamicDate.year, islamicDate.month, 1);
1099
1100
  }
@@ -2745,6 +2746,8 @@ var Islamic = /** @__PURE__ @class */ (function () {
2745
2746
  this.calendarInstance.switchView(view);
2746
2747
  break;
2747
2748
  case 'Decade':
2749
+ this.calendarInstance.nextIconClicked = true;
2750
+ islamicDate.year = islamicDate.year - this.calendarInstance.headerElement.textContent.split('-')[0].trim() === 1 ? islamicDate.year + 1 : islamicDate.year;
2748
2751
  this.calendarInstance.currentDate = this.toGregorian(islamicDate.year + 10, islamicDate.month, 1);
2749
2752
  this.calendarInstance.switchView(view);
2750
2753
  break;
@@ -2764,6 +2767,7 @@ var Islamic = /** @__PURE__ @class */ (function () {
2764
2767
  this.calendarInstance.switchView(currentView);
2765
2768
  break;
2766
2769
  case 'Decade':
2770
+ this.calendarInstance.previousIconClicked = true;
2767
2771
  this.calendarInstance.currentDate = this.toGregorian(islamicDate.year - 10, islamicDate.month - 1, 1);
2768
2772
  this.calendarInstance.switchView(currentView);
2769
2773
  break;
@@ -2833,43 +2837,93 @@ var Islamic = /** @__PURE__ @class */ (function () {
2833
2837
  var endFullYr = endYr.getFullYear();
2834
2838
  var startHdrYr = this.calendarInstance.globalize.formatDate(startYr, { type: 'dateTime', format: 'y', calendar: 'islamic' });
2835
2839
  var endHdrYr = this.calendarInstance.globalize.formatDate(endYr, { type: 'dateTime', format: 'y', calendar: 'islamic' });
2840
+ if (this.calendarInstance.islamicPreviousHeader) {
2841
+ startHdrYr = this.calendarInstance.islamicPreviousHeader.split('-')[0].trim();
2842
+ endHdrYr = this.calendarInstance.islamicPreviousHeader.split('-')[1].trim();
2843
+ this.calendarInstance.islamicPreviousHeader = null;
2844
+ }
2845
+ var splityear = this.calendarInstance.headerElement.textContent.split('-');
2846
+ if (this.calendarInstance.previousIconClicked) {
2847
+ for (var i = 0; i <= splityear.length; i++) {
2848
+ endHdrYr = endHdrYr - splityear[i] === 2 || splityear[i] - endHdrYr === 2 ? (parseInt(endHdrYr) + 1).toString() : endHdrYr - splityear[i] === 3 || splityear[i] - endHdrYr === 3 ? (parseInt(endHdrYr) + 2).toString() : endHdrYr - splityear[i] === 4 || splityear[i] - endHdrYr === 4 ? (parseInt(endHdrYr) + 3).toString() : endHdrYr - splityear[i] === 5 || splityear[i] - endHdrYr === 5 ? (parseInt(endHdrYr) + 4).toString() : endHdrYr;
2849
+ if (endHdrYr - splityear[i] === 0 || splityear[i] - endHdrYr === 0) {
2850
+ endHdrYr = (parseInt(endHdrYr) - 1).toString();
2851
+ }
2852
+ }
2853
+ startHdrYr = endHdrYr - startHdrYr === 10
2854
+ ? (parseInt(startHdrYr) + 1).toString() : endHdrYr - startHdrYr === 11
2855
+ ? (parseInt(startHdrYr) + 2).toString() : endHdrYr - startHdrYr === 12
2856
+ ? (parseInt(startHdrYr) + 3).toString() : startHdrYr;
2857
+ startHdrYr = endHdrYr - startHdrYr === 8 ? (parseInt(startHdrYr) - 1).toString() : startHdrYr;
2858
+ }
2859
+ if (this.calendarInstance.nextIconClicked) {
2860
+ for (var i = 0; i <= splityear.length; i++) {
2861
+ if (startHdrYr - splityear[i] === 0 || splityear[i] - startHdrYr === 0) {
2862
+ startHdrYr = (parseInt(startHdrYr) + 1).toString();
2863
+ }
2864
+ if (startHdrYr - splityear[i] === 2 && startHdrYr > splityear[i].trim()) {
2865
+ startHdrYr = (parseInt(startHdrYr) - 1).toString();
2866
+ }
2867
+ if (splityear[i] - startHdrYr === 1 && startHdrYr < splityear[i].trim()) {
2868
+ startHdrYr = (parseInt(startHdrYr) + 2).toString();
2869
+ }
2870
+ }
2871
+ endHdrYr = endHdrYr - startHdrYr === 10 ? (parseInt(endHdrYr) - 1).toString() : endHdrYr;
2872
+ endHdrYr = endHdrYr - startHdrYr === 7
2873
+ ? (parseInt(endHdrYr) + 2).toString() : endHdrYr - startHdrYr === 8
2874
+ ? (parseInt(endHdrYr) + 1).toString() : endHdrYr;
2875
+ }
2836
2876
  this.calendarInstance.headerTitleElement.textContent = startHdrYr + ' - ' + (endHdrYr);
2837
- var start = new Date(localYr - (localYr % 10) - 2, 0, 1);
2838
- var startYear = start.getFullYear();
2877
+ this.calendarInstance.nextIconClicked = this.calendarInstance.previousIconClicked = false;
2878
+ var year = (parseInt(startHdrYr) - 2).toString();
2879
+ startFullYr = Math.round(parseInt(startHdrYr) * 0.97 + 622);
2880
+ endFullYr = Math.round(parseInt(endHdrYr) * 0.97 + 622);
2881
+ var startYear = Math.round(parseInt(year) * 0.97 + 622);
2839
2882
  for (var rowCount = 1; rowCount <= yearCell; ++rowCount) {
2840
- var year = startYear + rowCount;
2841
- localDate.setFullYear(year);
2883
+ var year_1 = startYear + rowCount;
2884
+ localDate.setFullYear(year_1);
2842
2885
  localDate.setDate(1);
2843
2886
  localDate.setMonth(0);
2844
- var islamicDate_2 = this.getIslamicDate(localDate);
2845
- var gregorianObject_2 = HijriParser.toGregorian(islamicDate_2.year, 1, 1);
2846
- localDate = gregorianObject_2;
2847
- var tdEle = this.islamicDayCell(localDate);
2848
- attributes(tdEle, { 'role': 'gridcell' });
2849
- var dayLink = this.calendarInstance.createElement('span');
2850
- dayLink.textContent = this.calendarInstance.globalize.formatDate(localDate, { type: 'dateTime', format: 'y', calendar: 'islamic' });
2851
- if ((year < startFullYr) || (year > endFullYr)) {
2852
- addClass([tdEle], OTHERMONTH$1);
2887
+ if ((this.getIslamicDate(localDate).year - islamicDate.year) > 1) {
2888
+ localDate.setMonth(1);
2889
+ rowCount = rowCount - 1;
2890
+ localDate.setFullYear(localDate.getFullYear() - 1);
2853
2891
  }
2854
- else if (year < new Date(this.islamicInValue(this.calendarInstance.min)).getFullYear()
2855
- || year > new Date(this.islamicInValue(this.calendarInstance.max)).getFullYear()) {
2856
- addClass([tdEle], DISABLED$1);
2857
- }
2858
- else if (!isNullOrUndefined(value) &&
2859
- (this.getIslamicDate(localDate)).year ===
2860
- (this.getIslamicDate(value)).year) {
2861
- addClass([tdEle], SELECTED$1);
2862
- }
2863
- else {
2864
- if (localDate.getFullYear() === this.calendarInstance.currentDate.getFullYear() && !tdEle.classList.contains(DISABLED$1)) {
2865
- addClass([tdEle], FOCUSEDDATE$1);
2892
+ islamicDate = this.getIslamicDate(localDate);
2893
+ var gregorianObject_2 = HijriParser.toGregorian(islamicDate.year, 1, 1);
2894
+ localDate = gregorianObject_2;
2895
+ if (islamicDate.year === parseInt(startHdrYr) - 1 || islamicDate.year >= startHdrYr && islamicDate.year <= endFullYr || islamicDate.year === parseInt(endHdrYr) + 1) {
2896
+ var tdEle = this.islamicDayCell(localDate);
2897
+ attributes(tdEle, { 'role': 'gridcell' });
2898
+ var dayLink = this.calendarInstance.createElement('span');
2899
+ dayLink.textContent = this.calendarInstance.globalize.formatDate(localDate, { type: 'dateTime', format: 'y', calendar: 'islamic' });
2900
+ if (islamicDate.year === parseInt(startHdrYr) - 1 || (year_1 < startFullYr) || (year_1 > endFullYr) && islamicDate.year !== parseInt(endHdrYr)) {
2901
+ addClass([tdEle], OTHERMONTH$1);
2902
+ if (year_1 < new Date(this.islamicInValue(this.calendarInstance.min)).getFullYear()
2903
+ || year_1 > new Date(this.islamicInValue(this.calendarInstance.max)).getFullYear()) {
2904
+ addClass([tdEle], DISABLED$1);
2905
+ }
2906
+ }
2907
+ else if (year_1 < new Date(this.islamicInValue(this.calendarInstance.min)).getFullYear()
2908
+ || year_1 > new Date(this.islamicInValue(this.calendarInstance.max)).getFullYear()) {
2909
+ addClass([tdEle], DISABLED$1);
2910
+ }
2911
+ else if (!isNullOrUndefined(value) &&
2912
+ (this.getIslamicDate(localDate)).year ===
2913
+ (this.getIslamicDate(value)).year) {
2914
+ addClass([tdEle], SELECTED$1);
2866
2915
  }
2916
+ else {
2917
+ if (localDate.getFullYear() === this.calendarInstance.currentDate.getFullYear() && !tdEle.classList.contains(DISABLED$1)) {
2918
+ addClass([tdEle], FOCUSEDDATE$1);
2919
+ }
2920
+ }
2921
+ if (!tdEle.classList.contains(DISABLED$1)) {
2922
+ EventHandler.add(tdEle, 'click', this.calendarInstance.clickHandler, this.calendarInstance);
2923
+ }
2924
+ tdEle.appendChild(dayLink);
2925
+ tdEles.push(tdEle);
2867
2926
  }
2868
- if (!tdEle.classList.contains(DISABLED$1)) {
2869
- EventHandler.add(tdEle, 'click', this.calendarInstance.clickHandler, this.calendarInstance);
2870
- }
2871
- tdEle.appendChild(dayLink);
2872
- tdEles.push(tdEle);
2873
2927
  }
2874
2928
  this.islamicRenderTemplate(tdEles, numCells, 'e-decade', e, value);
2875
2929
  };
@@ -2896,7 +2950,7 @@ var Islamic = /** @__PURE__ @class */ (function () {
2896
2950
  var otherMonthCell = 6;
2897
2951
  var row = count;
2898
2952
  var rowCount = 0;
2899
- for (var dayCell = 0; dayCell < elements.length / count; ++dayCell) {
2953
+ for (var dayCell = 0; dayCell < Math.round(elements.length / count); ++dayCell) {
2900
2954
  trEle = this.calendarInstance.createElement('tr', { attrs: { 'role': 'row' } });
2901
2955
  for (rowCount = 0 + rowCount; rowCount < row; rowCount++) {
2902
2956
  if (!elements[rowCount].classList.contains('e-week-number') && !isNullOrUndefined(elements[rowCount].children[0])) {