@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.
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * filename: index.d.ts
3
- * version : 20.2.38
3
+ * version : 20.2.40
4
4
  * Copyright Syncfusion Inc. 2001 - 2020. All rights reserved.
5
5
  * Use of this code is subject to the terms of our license.
6
6
  * A copy of the current license can be obtained at any time by e-mailing
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "_from": "@syncfusion/ej2-calendars@*",
3
- "_id": "@syncfusion/ej2-calendars@20.2.36",
3
+ "_id": "@syncfusion/ej2-calendars@20.2.38",
4
4
  "_inBundle": false,
5
- "_integrity": "sha512-UFDUzNYkbmOgWfZRpjl+qyaE/IjQiDu4Bg0qgUtyKCo3sDXPaetRHT3vEG4Pvb0jA/NobBNFA3lDAiEm6kQqhQ==",
5
+ "_integrity": "sha512-3Nvq36mXmkyj4dgK6Xb2kxSA90GPfXT1cVO+115iy+KFnqEplCv18sbkLeMSZqkfKvCKmDVYfV/2S8IuhXu0OQ==",
6
6
  "_location": "/@syncfusion/ej2-calendars",
7
7
  "_phantomChildren": {},
8
8
  "_requested": {
@@ -32,8 +32,8 @@
32
32
  "/@syncfusion/ej2-schedule",
33
33
  "/@syncfusion/ej2-vue-calendars"
34
34
  ],
35
- "_resolved": "http://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-calendars/-/ej2-calendars-20.2.36.tgz",
36
- "_shasum": "c4ce9b96ae01271434047d5b399408cf2cb5b32c",
35
+ "_resolved": "http://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-calendars/-/ej2-calendars-20.2.38.tgz",
36
+ "_shasum": "02258f4ba3c38c0a39179224cf5cd031961a7871",
37
37
  "_spec": "@syncfusion/ej2-calendars@*",
38
38
  "_where": "/jenkins/workspace/automation_release_19.1.0.1-ZPMUBNQ6AUYH6YGEFBPVYMEQLRRW2SLD4XCZ6GATNZJFYJ3RIAOA/packages/included",
39
39
  "author": {
@@ -44,11 +44,11 @@
44
44
  },
45
45
  "bundleDependencies": false,
46
46
  "dependencies": {
47
- "@syncfusion/ej2-base": "~20.2.38",
47
+ "@syncfusion/ej2-base": "~20.2.39",
48
48
  "@syncfusion/ej2-buttons": "~20.2.38",
49
49
  "@syncfusion/ej2-inputs": "~20.2.38",
50
- "@syncfusion/ej2-lists": "~20.2.38",
51
- "@syncfusion/ej2-popups": "~20.2.38"
50
+ "@syncfusion/ej2-lists": "~20.2.39",
51
+ "@syncfusion/ej2-popups": "~20.2.40"
52
52
  },
53
53
  "deprecated": false,
54
54
  "description": "A complete package of date or time components with built-in features such as date formatting, inline editing, multiple (range) selection, range restriction, month and year selection, strict mode, and globalization.",
@@ -81,6 +81,6 @@
81
81
  "url": "git+https://github.com/syncfusion/ej2-javascript-ui-controls.git"
82
82
  },
83
83
  "typings": "index.d.ts",
84
- "version": "20.2.38",
84
+ "version": "20.2.40",
85
85
  "sideEffects": false
86
86
  }
@@ -44,8 +44,11 @@ export declare class CalendarBase extends Component<HTMLElement> implements INot
44
44
  protected navigateNextHandler: Function;
45
45
  protected l10: L10n;
46
46
  protected todayDisabled: boolean;
47
+ protected nextIconClicked: boolean;
48
+ protected previousIconClicked: boolean;
47
49
  protected tabIndex: string;
48
50
  protected todayDate: Date;
51
+ protected islamicPreviousHeader: any;
49
52
  protected calendarElement: HTMLElement;
50
53
  protected isPopupClicked: boolean;
51
54
  protected isDateSelected: boolean;
@@ -1095,6 +1095,7 @@ var CalendarBase = /** @class */ (function (_super) {
1095
1095
  this.currentDate.setFullYear(d.getFullYear());
1096
1096
  }
1097
1097
  else {
1098
+ this.islamicPreviousHeader = this.headerElement.textContent;
1098
1099
  var islamicDate = this.islamicModule.getIslamicDate(d);
1099
1100
  this.currentDate = this.islamicModule.toGregorian(islamicDate.year, islamicDate.month, 1);
1100
1101
  }
@@ -201,6 +201,8 @@ var Islamic = /** @class */ (function () {
201
201
  this.calendarInstance.switchView(view);
202
202
  break;
203
203
  case 'Decade':
204
+ this.calendarInstance.nextIconClicked = true;
205
+ islamicDate.year = islamicDate.year - this.calendarInstance.headerElement.textContent.split('-')[0].trim() === 1 ? islamicDate.year + 1 : islamicDate.year;
204
206
  this.calendarInstance.currentDate = this.toGregorian(islamicDate.year + 10, islamicDate.month, 1);
205
207
  this.calendarInstance.switchView(view);
206
208
  break;
@@ -220,6 +222,7 @@ var Islamic = /** @class */ (function () {
220
222
  this.calendarInstance.switchView(currentView);
221
223
  break;
222
224
  case 'Decade':
225
+ this.calendarInstance.previousIconClicked = true;
223
226
  this.calendarInstance.currentDate = this.toGregorian(islamicDate.year - 10, islamicDate.month - 1, 1);
224
227
  this.calendarInstance.switchView(currentView);
225
228
  break;
@@ -289,43 +292,93 @@ var Islamic = /** @class */ (function () {
289
292
  var endFullYr = endYr.getFullYear();
290
293
  var startHdrYr = this.calendarInstance.globalize.formatDate(startYr, { type: 'dateTime', format: 'y', calendar: 'islamic' });
291
294
  var endHdrYr = this.calendarInstance.globalize.formatDate(endYr, { type: 'dateTime', format: 'y', calendar: 'islamic' });
295
+ if (this.calendarInstance.islamicPreviousHeader) {
296
+ startHdrYr = this.calendarInstance.islamicPreviousHeader.split('-')[0].trim();
297
+ endHdrYr = this.calendarInstance.islamicPreviousHeader.split('-')[1].trim();
298
+ this.calendarInstance.islamicPreviousHeader = null;
299
+ }
300
+ var splityear = this.calendarInstance.headerElement.textContent.split('-');
301
+ if (this.calendarInstance.previousIconClicked) {
302
+ for (var i = 0; i <= splityear.length; i++) {
303
+ 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;
304
+ if (endHdrYr - splityear[i] === 0 || splityear[i] - endHdrYr === 0) {
305
+ endHdrYr = (parseInt(endHdrYr) - 1).toString();
306
+ }
307
+ }
308
+ startHdrYr = endHdrYr - startHdrYr === 10
309
+ ? (parseInt(startHdrYr) + 1).toString() : endHdrYr - startHdrYr === 11
310
+ ? (parseInt(startHdrYr) + 2).toString() : endHdrYr - startHdrYr === 12
311
+ ? (parseInt(startHdrYr) + 3).toString() : startHdrYr;
312
+ startHdrYr = endHdrYr - startHdrYr === 8 ? (parseInt(startHdrYr) - 1).toString() : startHdrYr;
313
+ }
314
+ if (this.calendarInstance.nextIconClicked) {
315
+ for (var i = 0; i <= splityear.length; i++) {
316
+ if (startHdrYr - splityear[i] === 0 || splityear[i] - startHdrYr === 0) {
317
+ startHdrYr = (parseInt(startHdrYr) + 1).toString();
318
+ }
319
+ if (startHdrYr - splityear[i] === 2 && startHdrYr > splityear[i].trim()) {
320
+ startHdrYr = (parseInt(startHdrYr) - 1).toString();
321
+ }
322
+ if (splityear[i] - startHdrYr === 1 && startHdrYr < splityear[i].trim()) {
323
+ startHdrYr = (parseInt(startHdrYr) + 2).toString();
324
+ }
325
+ }
326
+ endHdrYr = endHdrYr - startHdrYr === 10 ? (parseInt(endHdrYr) - 1).toString() : endHdrYr;
327
+ endHdrYr = endHdrYr - startHdrYr === 7
328
+ ? (parseInt(endHdrYr) + 2).toString() : endHdrYr - startHdrYr === 8
329
+ ? (parseInt(endHdrYr) + 1).toString() : endHdrYr;
330
+ }
292
331
  this.calendarInstance.headerTitleElement.textContent = startHdrYr + ' - ' + (endHdrYr);
293
- var start = new Date(localYr - (localYr % 10) - 2, 0, 1);
294
- var startYear = start.getFullYear();
332
+ this.calendarInstance.nextIconClicked = this.calendarInstance.previousIconClicked = false;
333
+ var year = (parseInt(startHdrYr) - 2).toString();
334
+ startFullYr = Math.round(parseInt(startHdrYr) * 0.97 + 622);
335
+ endFullYr = Math.round(parseInt(endHdrYr) * 0.97 + 622);
336
+ var startYear = Math.round(parseInt(year) * 0.97 + 622);
295
337
  for (var rowCount = 1; rowCount <= yearCell; ++rowCount) {
296
- var year = startYear + rowCount;
297
- localDate.setFullYear(year);
338
+ var year_1 = startYear + rowCount;
339
+ localDate.setFullYear(year_1);
298
340
  localDate.setDate(1);
299
341
  localDate.setMonth(0);
300
- var islamicDate_2 = this.getIslamicDate(localDate);
301
- var gregorianObject_2 = HijriParser.toGregorian(islamicDate_2.year, 1, 1);
302
- localDate = gregorianObject_2;
303
- var tdEle = this.islamicDayCell(localDate);
304
- attributes(tdEle, { 'role': 'gridcell' });
305
- var dayLink = this.calendarInstance.createElement('span');
306
- dayLink.textContent = this.calendarInstance.globalize.formatDate(localDate, { type: 'dateTime', format: 'y', calendar: 'islamic' });
307
- if ((year < startFullYr) || (year > endFullYr)) {
308
- addClass([tdEle], OTHERMONTH);
309
- }
310
- else if (year < new Date(this.islamicInValue(this.calendarInstance.min)).getFullYear()
311
- || year > new Date(this.islamicInValue(this.calendarInstance.max)).getFullYear()) {
312
- addClass([tdEle], DISABLED);
313
- }
314
- else if (!isNullOrUndefined(value) &&
315
- (this.getIslamicDate(localDate)).year ===
316
- (this.getIslamicDate(value)).year) {
317
- addClass([tdEle], SELECTED);
342
+ if ((this.getIslamicDate(localDate).year - islamicDate.year) > 1) {
343
+ localDate.setMonth(1);
344
+ rowCount = rowCount - 1;
345
+ localDate.setFullYear(localDate.getFullYear() - 1);
318
346
  }
319
- else {
320
- if (localDate.getFullYear() === this.calendarInstance.currentDate.getFullYear() && !tdEle.classList.contains(DISABLED)) {
321
- addClass([tdEle], FOCUSEDDATE);
347
+ islamicDate = this.getIslamicDate(localDate);
348
+ var gregorianObject_2 = HijriParser.toGregorian(islamicDate.year, 1, 1);
349
+ localDate = gregorianObject_2;
350
+ if (islamicDate.year === parseInt(startHdrYr) - 1 || islamicDate.year >= startHdrYr && islamicDate.year <= endFullYr || islamicDate.year === parseInt(endHdrYr) + 1) {
351
+ var tdEle = this.islamicDayCell(localDate);
352
+ attributes(tdEle, { 'role': 'gridcell' });
353
+ var dayLink = this.calendarInstance.createElement('span');
354
+ dayLink.textContent = this.calendarInstance.globalize.formatDate(localDate, { type: 'dateTime', format: 'y', calendar: 'islamic' });
355
+ if (islamicDate.year === parseInt(startHdrYr) - 1 || (year_1 < startFullYr) || (year_1 > endFullYr) && islamicDate.year !== parseInt(endHdrYr)) {
356
+ addClass([tdEle], OTHERMONTH);
357
+ if (year_1 < new Date(this.islamicInValue(this.calendarInstance.min)).getFullYear()
358
+ || year_1 > new Date(this.islamicInValue(this.calendarInstance.max)).getFullYear()) {
359
+ addClass([tdEle], DISABLED);
360
+ }
322
361
  }
362
+ else if (year_1 < new Date(this.islamicInValue(this.calendarInstance.min)).getFullYear()
363
+ || year_1 > new Date(this.islamicInValue(this.calendarInstance.max)).getFullYear()) {
364
+ addClass([tdEle], DISABLED);
365
+ }
366
+ else if (!isNullOrUndefined(value) &&
367
+ (this.getIslamicDate(localDate)).year ===
368
+ (this.getIslamicDate(value)).year) {
369
+ addClass([tdEle], SELECTED);
370
+ }
371
+ else {
372
+ if (localDate.getFullYear() === this.calendarInstance.currentDate.getFullYear() && !tdEle.classList.contains(DISABLED)) {
373
+ addClass([tdEle], FOCUSEDDATE);
374
+ }
375
+ }
376
+ if (!tdEle.classList.contains(DISABLED)) {
377
+ EventHandler.add(tdEle, 'click', this.calendarInstance.clickHandler, this.calendarInstance);
378
+ }
379
+ tdEle.appendChild(dayLink);
380
+ tdEles.push(tdEle);
323
381
  }
324
- if (!tdEle.classList.contains(DISABLED)) {
325
- EventHandler.add(tdEle, 'click', this.calendarInstance.clickHandler, this.calendarInstance);
326
- }
327
- tdEle.appendChild(dayLink);
328
- tdEles.push(tdEle);
329
382
  }
330
383
  this.islamicRenderTemplate(tdEles, numCells, 'e-decade', e, value);
331
384
  };
@@ -352,7 +405,7 @@ var Islamic = /** @class */ (function () {
352
405
  var otherMonthCell = 6;
353
406
  var row = count;
354
407
  var rowCount = 0;
355
- for (var dayCell = 0; dayCell < elements.length / count; ++dayCell) {
408
+ for (var dayCell = 0; dayCell < Math.round(elements.length / count); ++dayCell) {
356
409
  trEle = this.calendarInstance.createElement('tr', { attrs: { 'role': 'row' } });
357
410
  for (rowCount = 0 + rowCount; rowCount < row; rowCount++) {
358
411
  if (!elements[rowCount].classList.contains('e-week-number') && !isNullOrUndefined(elements[rowCount].children[0])) {