primeng 13.0.3 → 13.2.0

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.
Files changed (211) hide show
  1. package/api/translation.d.ts +1 -0
  2. package/api/translationkeys.d.ts +1 -0
  3. package/button/button.d.ts +2 -1
  4. package/calendar/calendar.d.ts +7 -2
  5. package/contextmenu/contextmenu.d.ts +2 -0
  6. package/dropdown/dropdown.d.ts +2 -1
  7. package/esm2020/api/primengconfig.mjs +2 -1
  8. package/esm2020/api/translation.mjs +1 -1
  9. package/esm2020/api/translationkeys.mjs +2 -1
  10. package/esm2020/autocomplete/autocomplete.mjs +3 -3
  11. package/esm2020/button/button.mjs +6 -4
  12. package/esm2020/calendar/calendar.mjs +51 -22
  13. package/esm2020/cascadeselect/cascadeselect.mjs +3 -3
  14. package/esm2020/chip/chip.mjs +2 -2
  15. package/esm2020/contextmenu/contextmenu.mjs +14 -2
  16. package/esm2020/dropdown/dropdown.mjs +15 -13
  17. package/esm2020/fileupload/fileupload.mjs +2 -2
  18. package/esm2020/galleria/galleria.mjs +3 -3
  19. package/esm2020/image/image.mjs +1 -1
  20. package/esm2020/inputnumber/inputnumber.mjs +3 -3
  21. package/esm2020/inputswitch/inputswitch.mjs +6 -4
  22. package/esm2020/knob/knob.mjs +2 -2
  23. package/esm2020/megamenu/megamenu.mjs +2 -2
  24. package/esm2020/multiselect/multiselect.mjs +12 -7
  25. package/esm2020/orderlist/orderlist.mjs +6 -4
  26. package/esm2020/organizationchart/organizationchart.mjs +3 -3
  27. package/esm2020/paginator/paginator.mjs +1 -1
  28. package/esm2020/panel/panel.mjs +11 -8
  29. package/esm2020/password/password.mjs +8 -3
  30. package/esm2020/picklist/picklist.mjs +6 -4
  31. package/esm2020/slidemenu/slidemenu.mjs +3 -3
  32. package/esm2020/steps/steps.mjs +7 -6
  33. package/esm2020/table/table.mjs +102 -108
  34. package/esm2020/tabmenu/tabmenu.mjs +142 -63
  35. package/esm2020/tabview/tabview.mjs +2 -2
  36. package/esm2020/timeline/timeline.mjs +2 -2
  37. package/esm2020/tree/tree.mjs +3 -3
  38. package/esm2020/treetable/treetable.mjs +16 -19
  39. package/esm2020/utils/objectutils.mjs +9 -1
  40. package/fesm2015/primeng-api.mjs +2 -0
  41. package/fesm2015/primeng-api.mjs.map +1 -1
  42. package/fesm2015/primeng-autocomplete.mjs +2 -2
  43. package/fesm2015/primeng-autocomplete.mjs.map +1 -1
  44. package/fesm2015/primeng-button.mjs +5 -3
  45. package/fesm2015/primeng-button.mjs.map +1 -1
  46. package/fesm2015/primeng-calendar.mjs +50 -21
  47. package/fesm2015/primeng-calendar.mjs.map +1 -1
  48. package/fesm2015/primeng-cascadeselect.mjs +2 -2
  49. package/fesm2015/primeng-cascadeselect.mjs.map +1 -1
  50. package/fesm2015/primeng-chip.mjs +2 -2
  51. package/fesm2015/primeng-contextmenu.mjs +13 -1
  52. package/fesm2015/primeng-contextmenu.mjs.map +1 -1
  53. package/fesm2015/primeng-dropdown.mjs +14 -12
  54. package/fesm2015/primeng-dropdown.mjs.map +1 -1
  55. package/fesm2015/primeng-fileupload.mjs +2 -2
  56. package/fesm2015/primeng-galleria.mjs +2 -2
  57. package/fesm2015/primeng-galleria.mjs.map +1 -1
  58. package/fesm2015/primeng-image.mjs.map +1 -1
  59. package/fesm2015/primeng-inputnumber.mjs +2 -2
  60. package/fesm2015/primeng-inputnumber.mjs.map +1 -1
  61. package/fesm2015/primeng-inputswitch.mjs +5 -3
  62. package/fesm2015/primeng-inputswitch.mjs.map +1 -1
  63. package/fesm2015/primeng-knob.mjs +1 -1
  64. package/fesm2015/primeng-knob.mjs.map +1 -1
  65. package/fesm2015/primeng-megamenu.mjs +1 -1
  66. package/fesm2015/primeng-megamenu.mjs.map +1 -1
  67. package/fesm2015/primeng-multiselect.mjs +11 -6
  68. package/fesm2015/primeng-multiselect.mjs.map +1 -1
  69. package/fesm2015/primeng-orderlist.mjs +5 -3
  70. package/fesm2015/primeng-orderlist.mjs.map +1 -1
  71. package/fesm2015/primeng-organizationchart.mjs +2 -2
  72. package/fesm2015/primeng-organizationchart.mjs.map +1 -1
  73. package/fesm2015/primeng-paginator.mjs +1 -1
  74. package/fesm2015/primeng-panel.mjs +10 -7
  75. package/fesm2015/primeng-panel.mjs.map +1 -1
  76. package/fesm2015/primeng-password.mjs +7 -2
  77. package/fesm2015/primeng-password.mjs.map +1 -1
  78. package/fesm2015/primeng-picklist.mjs +5 -3
  79. package/fesm2015/primeng-picklist.mjs.map +1 -1
  80. package/fesm2015/primeng-slidemenu.mjs +2 -2
  81. package/fesm2015/primeng-slidemenu.mjs.map +1 -1
  82. package/fesm2015/primeng-steps.mjs +6 -5
  83. package/fesm2015/primeng-steps.mjs.map +1 -1
  84. package/fesm2015/primeng-table.mjs +101 -107
  85. package/fesm2015/primeng-table.mjs.map +1 -1
  86. package/fesm2015/primeng-tabmenu.mjs +142 -62
  87. package/fesm2015/primeng-tabmenu.mjs.map +1 -1
  88. package/fesm2015/primeng-tabview.mjs +1 -1
  89. package/fesm2015/primeng-tabview.mjs.map +1 -1
  90. package/fesm2015/primeng-timeline.mjs +2 -2
  91. package/fesm2015/primeng-tree.mjs +2 -2
  92. package/fesm2015/primeng-tree.mjs.map +1 -1
  93. package/fesm2015/primeng-treetable.mjs +15 -18
  94. package/fesm2015/primeng-treetable.mjs.map +1 -1
  95. package/fesm2015/primeng-utils.mjs +8 -0
  96. package/fesm2015/primeng-utils.mjs.map +1 -1
  97. package/fesm2020/primeng-api.mjs +2 -0
  98. package/fesm2020/primeng-api.mjs.map +1 -1
  99. package/fesm2020/primeng-autocomplete.mjs +2 -2
  100. package/fesm2020/primeng-autocomplete.mjs.map +1 -1
  101. package/fesm2020/primeng-button.mjs +5 -3
  102. package/fesm2020/primeng-button.mjs.map +1 -1
  103. package/fesm2020/primeng-calendar.mjs +50 -21
  104. package/fesm2020/primeng-calendar.mjs.map +1 -1
  105. package/fesm2020/primeng-cascadeselect.mjs +2 -2
  106. package/fesm2020/primeng-cascadeselect.mjs.map +1 -1
  107. package/fesm2020/primeng-chip.mjs +2 -2
  108. package/fesm2020/primeng-contextmenu.mjs +13 -1
  109. package/fesm2020/primeng-contextmenu.mjs.map +1 -1
  110. package/fesm2020/primeng-dropdown.mjs +14 -12
  111. package/fesm2020/primeng-dropdown.mjs.map +1 -1
  112. package/fesm2020/primeng-fileupload.mjs +2 -2
  113. package/fesm2020/primeng-galleria.mjs +2 -2
  114. package/fesm2020/primeng-galleria.mjs.map +1 -1
  115. package/fesm2020/primeng-image.mjs.map +1 -1
  116. package/fesm2020/primeng-inputnumber.mjs +2 -2
  117. package/fesm2020/primeng-inputnumber.mjs.map +1 -1
  118. package/fesm2020/primeng-inputswitch.mjs +5 -3
  119. package/fesm2020/primeng-inputswitch.mjs.map +1 -1
  120. package/fesm2020/primeng-knob.mjs +1 -1
  121. package/fesm2020/primeng-knob.mjs.map +1 -1
  122. package/fesm2020/primeng-megamenu.mjs +1 -1
  123. package/fesm2020/primeng-megamenu.mjs.map +1 -1
  124. package/fesm2020/primeng-multiselect.mjs +11 -6
  125. package/fesm2020/primeng-multiselect.mjs.map +1 -1
  126. package/fesm2020/primeng-orderlist.mjs +5 -3
  127. package/fesm2020/primeng-orderlist.mjs.map +1 -1
  128. package/fesm2020/primeng-organizationchart.mjs +2 -2
  129. package/fesm2020/primeng-organizationchart.mjs.map +1 -1
  130. package/fesm2020/primeng-paginator.mjs +1 -1
  131. package/fesm2020/primeng-panel.mjs +10 -7
  132. package/fesm2020/primeng-panel.mjs.map +1 -1
  133. package/fesm2020/primeng-password.mjs +7 -2
  134. package/fesm2020/primeng-password.mjs.map +1 -1
  135. package/fesm2020/primeng-picklist.mjs +5 -3
  136. package/fesm2020/primeng-picklist.mjs.map +1 -1
  137. package/fesm2020/primeng-slidemenu.mjs +2 -2
  138. package/fesm2020/primeng-slidemenu.mjs.map +1 -1
  139. package/fesm2020/primeng-steps.mjs +6 -5
  140. package/fesm2020/primeng-steps.mjs.map +1 -1
  141. package/fesm2020/primeng-table.mjs +101 -107
  142. package/fesm2020/primeng-table.mjs.map +1 -1
  143. package/fesm2020/primeng-tabmenu.mjs +141 -62
  144. package/fesm2020/primeng-tabmenu.mjs.map +1 -1
  145. package/fesm2020/primeng-tabview.mjs +1 -1
  146. package/fesm2020/primeng-tabview.mjs.map +1 -1
  147. package/fesm2020/primeng-timeline.mjs +2 -2
  148. package/fesm2020/primeng-tree.mjs +2 -2
  149. package/fesm2020/primeng-tree.mjs.map +1 -1
  150. package/fesm2020/primeng-treetable.mjs +15 -18
  151. package/fesm2020/primeng-treetable.mjs.map +1 -1
  152. package/fesm2020/primeng-utils.mjs +8 -0
  153. package/fesm2020/primeng-utils.mjs.map +1 -1
  154. package/image/image.d.ts +2 -1
  155. package/inputswitch/inputswitch.d.ts +2 -1
  156. package/multiselect/multiselect.d.ts +2 -1
  157. package/orderlist/orderlist.d.ts +2 -1
  158. package/package.json +1 -1
  159. package/panel/panel.d.ts +2 -1
  160. package/password/password.d.ts +1 -0
  161. package/picklist/picklist.d.ts +2 -1
  162. package/resources/components/panel/panel.css +1 -1
  163. package/resources/components/table/table.css +1 -1
  164. package/resources/components/tabmenu/tabmenu.css +37 -2
  165. package/resources/components/tree/tree.css +1 -0
  166. package/resources/themes/arya-blue/theme.css +72 -20
  167. package/resources/themes/arya-green/theme.css +72 -20
  168. package/resources/themes/arya-orange/theme.css +72 -20
  169. package/resources/themes/arya-purple/theme.css +72 -20
  170. package/resources/themes/bootstrap4-dark-blue/theme.css +59 -3
  171. package/resources/themes/bootstrap4-dark-purple/theme.css +59 -3
  172. package/resources/themes/bootstrap4-light-blue/theme.css +59 -3
  173. package/resources/themes/bootstrap4-light-purple/theme.css +59 -3
  174. package/resources/themes/fluent-light/theme.css +72 -20
  175. package/resources/themes/lara-dark-blue/theme.css +421 -369
  176. package/resources/themes/lara-dark-indigo/theme.css +421 -369
  177. package/resources/themes/lara-dark-purple/theme.css +421 -369
  178. package/resources/themes/lara-dark-teal/theme.css +421 -369
  179. package/resources/themes/lara-light-blue/theme.css +72 -20
  180. package/resources/themes/lara-light-indigo/theme.css +72 -20
  181. package/resources/themes/lara-light-purple/theme.css +72 -20
  182. package/resources/themes/lara-light-teal/theme.css +72 -20
  183. package/resources/themes/luna-amber/theme.css +72 -20
  184. package/resources/themes/luna-blue/theme.css +72 -20
  185. package/resources/themes/luna-green/theme.css +72 -20
  186. package/resources/themes/luna-pink/theme.css +72 -20
  187. package/resources/themes/md-dark-deeppurple/theme.css +55 -3
  188. package/resources/themes/md-dark-indigo/theme.css +55 -3
  189. package/resources/themes/md-light-deeppurple/theme.css +56 -4
  190. package/resources/themes/md-light-indigo/theme.css +56 -4
  191. package/resources/themes/mdc-dark-deeppurple/theme.css +55 -3
  192. package/resources/themes/mdc-dark-indigo/theme.css +55 -3
  193. package/resources/themes/mdc-light-deeppurple/theme.css +56 -4
  194. package/resources/themes/mdc-light-indigo/theme.css +56 -4
  195. package/resources/themes/nova/theme.css +72 -20
  196. package/resources/themes/nova-accent/theme.css +72 -20
  197. package/resources/themes/nova-alt/theme.css +72 -20
  198. package/resources/themes/rhea/theme.css +72 -20
  199. package/resources/themes/saga-blue/theme.css +55 -3
  200. package/resources/themes/saga-green/theme.css +55 -3
  201. package/resources/themes/saga-orange/theme.css +55 -3
  202. package/resources/themes/saga-purple/theme.css +55 -3
  203. package/resources/themes/tailwind-light/theme.css +75 -23
  204. package/resources/themes/vela-blue/theme.css +72 -20
  205. package/resources/themes/vela-green/theme.css +72 -20
  206. package/resources/themes/vela-orange/theme.css +72 -20
  207. package/resources/themes/vela-purple/theme.css +72 -20
  208. package/table/table.d.ts +8 -5
  209. package/tabmenu/tabmenu.d.ts +20 -2
  210. package/treetable/treetable.d.ts +2 -1
  211. package/utils/objectutils.d.ts +2 -0
@@ -11,7 +11,7 @@ import { DomHandler, ConnectedOverlayScrollHandler } from 'primeng/dom';
11
11
  import * as i1 from 'primeng/api';
12
12
  import { TranslationKeys, PrimeTemplate, SharedModule } from 'primeng/api';
13
13
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
14
- import { UniqueComponentId, ZIndexUtils } from 'primeng/utils';
14
+ import { UniqueComponentId, ObjectUtils, ZIndexUtils } from 'primeng/utils';
15
15
 
16
16
  const CALENDAR_VALUE_ACCESSOR = {
17
17
  provide: NG_VALUE_ACCESSOR,
@@ -49,7 +49,6 @@ class Calendar {
49
49
  this.hideOnDateTimeSelect = true;
50
50
  this.timeSeparator = ":";
51
51
  this.focusTrap = true;
52
- this.firstDayOfWeek = 0;
53
52
  this.showTransitionOptions = '.12s cubic-bezier(0, 0, 0.2, 1)';
54
53
  this.hideTransitionOptions = '.1s linear';
55
54
  this.onFocus = new EventEmitter();
@@ -196,6 +195,13 @@ class Calendar {
196
195
  this.destroyResponsiveStyleElement();
197
196
  this.createResponsiveStyle();
198
197
  }
198
+ get firstDayOfWeek() {
199
+ return this._firstDayOfWeek;
200
+ }
201
+ set firstDayOfWeek(firstDayOfWeek) {
202
+ this._firstDayOfWeek = firstDayOfWeek;
203
+ this.createWeekDays();
204
+ }
199
205
  set locale(newLocale) {
200
206
  console.warn("Locale property has no effect, use new i18n API instead.");
201
207
  }
@@ -263,7 +269,7 @@ class Calendar {
263
269
  }
264
270
  createWeekDays() {
265
271
  this.weekDays = [];
266
- let dayIndex = this.firstDayOfWeek;
272
+ let dayIndex = this.getFirstDateOfWeek();
267
273
  let dayLabels = this.getTranslation(TranslationKeys.DAY_NAMES_MIN);
268
274
  for (let i = 0; i < 7; i++) {
269
275
  this.weekDays.push(dayLabels[dayIndex]);
@@ -451,10 +457,14 @@ class Calendar {
451
457
  }
452
458
  switchToMonthView(event) {
453
459
  this.currentView = 'month';
460
+ this.cd.detectChanges();
461
+ this.alignOverlay();
454
462
  event.preventDefault();
455
463
  }
456
464
  switchToYearView(event) {
457
465
  this.currentView = 'year';
466
+ this.cd.detectChanges();
467
+ this.alignOverlay();
458
468
  event.preventDefault();
459
469
  }
460
470
  onDateSelect(event, dateMeta) {
@@ -550,8 +560,8 @@ class Calendar {
550
560
  }
551
561
  }
552
562
  formatDateTime(date) {
553
- let formattedValue = null;
554
- if (date) {
563
+ let formattedValue = this.keepInvalid ? date : null;
564
+ if (this.isValidDate(date)) {
555
565
  if (this.timeOnly) {
556
566
  formattedValue = this.formatTime(date);
557
567
  }
@@ -688,7 +698,8 @@ class Calendar {
688
698
  return { 'month': m, 'year': y };
689
699
  }
690
700
  getSundayIndex() {
691
- return this.firstDayOfWeek > 0 ? 7 - this.firstDayOfWeek : 0;
701
+ let firstDayOfWeek = this.getFirstDateOfWeek();
702
+ return firstDayOfWeek > 0 ? 7 - firstDayOfWeek : 0;
692
703
  }
693
704
  isSelected(dateMeta) {
694
705
  if (this.value) {
@@ -734,7 +745,7 @@ class Calendar {
734
745
  return false;
735
746
  }
736
747
  isDateEquals(value, dateMeta) {
737
- if (value)
748
+ if (value && value instanceof Date)
738
749
  return value.getDate() === dateMeta.day && value.getMonth() === dateMeta.month && value.getFullYear() === dateMeta.year;
739
750
  else
740
751
  return false;
@@ -861,6 +872,9 @@ class Calendar {
861
872
  getMonthName(index) {
862
873
  return this.config.getTranslation('monthNames')[index];
863
874
  }
875
+ getYear(month) {
876
+ return this.currentView === 'month' ? this.currentYear : month.year;
877
+ }
864
878
  switchViewButtonDisabled() {
865
879
  return this.numberOfMonths > 1 || this.disabled;
866
880
  }
@@ -1567,7 +1581,8 @@ class Calendar {
1567
1581
  }
1568
1582
  catch (err) {
1569
1583
  //invalid date
1570
- this.updateModel(null);
1584
+ let value = this.keepInvalid ? val : null;
1585
+ this.updateModel(value);
1571
1586
  }
1572
1587
  this.filled = val != null && val.length;
1573
1588
  this.onInput.emit(event);
@@ -1641,11 +1656,15 @@ class Calendar {
1641
1656
  value.setMinutes(time.minute);
1642
1657
  value.setSeconds(time.second);
1643
1658
  }
1659
+ isValidDate(date) {
1660
+ return date instanceof Date && ObjectUtils.isNotEmpty(date);
1661
+ }
1644
1662
  updateUI() {
1645
- let val = this.value || this.defaultDate || new Date();
1646
- if (Array.isArray(val)) {
1647
- val = val[0];
1663
+ let propValue = this.value;
1664
+ if (Array.isArray(propValue)) {
1665
+ propValue = propValue[0];
1648
1666
  }
1667
+ let val = this.defaultDate && this.isValidDate(this.defaultDate) && !this.value ? this.defaultDate : (propValue && this.isValidDate(propValue) ? propValue : new Date());
1649
1668
  this.currentMonth = val.getMonth();
1650
1669
  this.currentYear = val.getFullYear();
1651
1670
  this.createMonths(this.currentMonth, this.currentYear);
@@ -1811,7 +1830,14 @@ class Calendar {
1811
1830
  writeValue(value) {
1812
1831
  this.value = value;
1813
1832
  if (this.value && typeof this.value === 'string') {
1814
- this.value = this.parseValueFromString(this.value);
1833
+ try {
1834
+ this.value = this.parseValueFromString(this.value);
1835
+ }
1836
+ catch {
1837
+ if (this.keepInvalid) {
1838
+ this.value = value;
1839
+ }
1840
+ }
1815
1841
  }
1816
1842
  this.updateInputfield();
1817
1843
  this.updateUI();
@@ -1830,6 +1856,9 @@ class Calendar {
1830
1856
  getDateFormat() {
1831
1857
  return this.dateFormat || this.getTranslation('dateFormat');
1832
1858
  }
1859
+ getFirstDateOfWeek() {
1860
+ return this._firstDayOfWeek || this.getTranslation(TranslationKeys.FIRST_DAY_OF_WEEK);
1861
+ }
1833
1862
  // Ported from jquery-ui datepicker formatDate
1834
1863
  formatDate(date, format) {
1835
1864
  if (!date) {
@@ -2255,7 +2284,7 @@ class Calendar {
2255
2284
  }
2256
2285
  }
2257
2286
  Calendar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: Calendar, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i1.PrimeNGConfig }, { token: i1.OverlayService }], target: i0.ɵɵFactoryTarget.Component });
2258
- Calendar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: Calendar, selector: "p-calendar", inputs: { style: "style", styleClass: "styleClass", inputStyle: "inputStyle", inputId: "inputId", name: "name", inputStyleClass: "inputStyleClass", placeholder: "placeholder", ariaLabelledBy: "ariaLabelledBy", iconAriaLabel: "iconAriaLabel", disabled: "disabled", dateFormat: "dateFormat", multipleSeparator: "multipleSeparator", rangeSeparator: "rangeSeparator", inline: "inline", showOtherMonths: "showOtherMonths", selectOtherMonths: "selectOtherMonths", showIcon: "showIcon", icon: "icon", appendTo: "appendTo", readonlyInput: "readonlyInput", shortYearCutoff: "shortYearCutoff", monthNavigator: "monthNavigator", yearNavigator: "yearNavigator", hourFormat: "hourFormat", timeOnly: "timeOnly", stepHour: "stepHour", stepMinute: "stepMinute", stepSecond: "stepSecond", showSeconds: "showSeconds", required: "required", showOnFocus: "showOnFocus", showWeek: "showWeek", dataType: "dataType", selectionMode: "selectionMode", maxDateCount: "maxDateCount", showButtonBar: "showButtonBar", todayButtonStyleClass: "todayButtonStyleClass", clearButtonStyleClass: "clearButtonStyleClass", autoZIndex: "autoZIndex", baseZIndex: "baseZIndex", panelStyleClass: "panelStyleClass", panelStyle: "panelStyle", keepInvalid: "keepInvalid", hideOnDateTimeSelect: "hideOnDateTimeSelect", touchUI: "touchUI", timeSeparator: "timeSeparator", focusTrap: "focusTrap", firstDayOfWeek: "firstDayOfWeek", showTransitionOptions: "showTransitionOptions", hideTransitionOptions: "hideTransitionOptions", tabindex: "tabindex", view: "view", defaultDate: "defaultDate", minDate: "minDate", maxDate: "maxDate", disabledDates: "disabledDates", disabledDays: "disabledDays", yearRange: "yearRange", showTime: "showTime", responsiveOptions: "responsiveOptions", numberOfMonths: "numberOfMonths", locale: "locale" }, outputs: { onFocus: "onFocus", onBlur: "onBlur", onClose: "onClose", onSelect: "onSelect", onInput: "onInput", onTodayClick: "onTodayClick", onClearClick: "onClearClick", onMonthChange: "onMonthChange", onYearChange: "onYearChange", onClickOutside: "onClickOutside", onShow: "onShow" }, host: { properties: { "class.p-inputwrapper-filled": "filled", "class.p-inputwrapper-focus": "focus" }, classAttribute: "p-element p-inputwrapper" }, providers: [CALENDAR_VALUE_ACCESSOR], queries: [{ propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "containerViewChild", first: true, predicate: ["container"], descendants: true }, { propertyName: "inputfieldViewChild", first: true, predicate: ["inputfield"], descendants: true }, { propertyName: "content", first: true, predicate: ["contentWrapper"], descendants: true }], ngImport: i0, template: `
2287
+ Calendar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: Calendar, selector: "p-calendar", inputs: { style: "style", styleClass: "styleClass", inputStyle: "inputStyle", inputId: "inputId", name: "name", inputStyleClass: "inputStyleClass", placeholder: "placeholder", ariaLabelledBy: "ariaLabelledBy", iconAriaLabel: "iconAriaLabel", disabled: "disabled", dateFormat: "dateFormat", multipleSeparator: "multipleSeparator", rangeSeparator: "rangeSeparator", inline: "inline", showOtherMonths: "showOtherMonths", selectOtherMonths: "selectOtherMonths", showIcon: "showIcon", icon: "icon", appendTo: "appendTo", readonlyInput: "readonlyInput", shortYearCutoff: "shortYearCutoff", monthNavigator: "monthNavigator", yearNavigator: "yearNavigator", hourFormat: "hourFormat", timeOnly: "timeOnly", stepHour: "stepHour", stepMinute: "stepMinute", stepSecond: "stepSecond", showSeconds: "showSeconds", required: "required", showOnFocus: "showOnFocus", showWeek: "showWeek", dataType: "dataType", selectionMode: "selectionMode", maxDateCount: "maxDateCount", showButtonBar: "showButtonBar", todayButtonStyleClass: "todayButtonStyleClass", clearButtonStyleClass: "clearButtonStyleClass", autoZIndex: "autoZIndex", baseZIndex: "baseZIndex", panelStyleClass: "panelStyleClass", panelStyle: "panelStyle", keepInvalid: "keepInvalid", hideOnDateTimeSelect: "hideOnDateTimeSelect", touchUI: "touchUI", timeSeparator: "timeSeparator", focusTrap: "focusTrap", showTransitionOptions: "showTransitionOptions", hideTransitionOptions: "hideTransitionOptions", tabindex: "tabindex", view: "view", defaultDate: "defaultDate", minDate: "minDate", maxDate: "maxDate", disabledDates: "disabledDates", disabledDays: "disabledDays", yearRange: "yearRange", showTime: "showTime", responsiveOptions: "responsiveOptions", numberOfMonths: "numberOfMonths", firstDayOfWeek: "firstDayOfWeek", locale: "locale" }, outputs: { onFocus: "onFocus", onBlur: "onBlur", onClose: "onClose", onSelect: "onSelect", onInput: "onInput", onTodayClick: "onTodayClick", onClearClick: "onClearClick", onMonthChange: "onMonthChange", onYearChange: "onYearChange", onClickOutside: "onClickOutside", onShow: "onShow" }, host: { properties: { "class.p-inputwrapper-filled": "filled", "class.p-inputwrapper-focus": "focus" }, classAttribute: "p-element p-inputwrapper" }, providers: [CALENDAR_VALUE_ACCESSOR], queries: [{ propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "containerViewChild", first: true, predicate: ["container"], descendants: true }, { propertyName: "inputfieldViewChild", first: true, predicate: ["inputfield"], descendants: true }, { propertyName: "content", first: true, predicate: ["contentWrapper"], descendants: true }], ngImport: i0, template: `
2259
2288
  <span #container [ngClass]="{'p-calendar':true, 'p-calendar-w-btn': showIcon, 'p-calendar-timeonly': timeOnly, 'p-calendar-disabled':disabled, 'p-focus': focus}" [ngStyle]="style" [class]="styleClass">
2260
2289
  <ng-template [ngIf]="!inline">
2261
2290
  <input #inputfield type="text" [attr.id]="inputId" [attr.name]="name" [attr.required]="required" [attr.aria-required]="required" [value]="inputFieldValue" (focus)="onInputFocus($event)" (keydown)="onInputKeydown($event)" (click)="onInputClick()" (blur)="onInputBlur($event)"
@@ -2283,7 +2312,7 @@ Calendar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.
2283
2312
  {{getMonthName(month.month)}}
2284
2313
  </button>
2285
2314
  <button type="button" (click)="switchToYearView($event)" (keydown)="onContainerButtonKeydown($event)" *ngIf="currentView !== 'year'" class="p-datepicker-year p-link" [disabled]="switchViewButtonDisabled()">
2286
- {{currentYear}}
2315
+ {{getYear(month)}}
2287
2316
  </button>
2288
2317
  <span class="p-datepicker-decade" *ngIf="currentView === 'year'">
2289
2318
  <ng-container *ngIf="!decadeTemplate">{{yearPickerValues()[0]}} - {{yearPickerValues()[yearPickerValues().length - 1]}}</ng-container>
@@ -2329,7 +2358,7 @@ Calendar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.
2329
2358
  </div>
2330
2359
  </div>
2331
2360
  <div class="p-monthpicker" *ngIf="currentView === 'month'">
2332
- <span *ngFor="let m of monthPickerValues(); let i = index" (click)="onMonthSelect($event, i)" (keydown)="onMonthCellKeydown($event,i)" class="p-monthpicker-month" [ngClass]="{'p-highlight': isMonthSelected(i), 'p-disabled':!isSelectable(1, i, this.currentYear, false)}" pRipple>
2361
+ <span *ngFor="let m of monthPickerValues(); let i = index" (click)="onMonthSelect($event, i)" (keydown)="onMonthCellKeydown($event,i)" class="p-monthpicker-month" [ngClass]="{'p-highlight': isMonthSelected(i)}" pRipple>
2333
2362
  {{m}}
2334
2363
  </span>
2335
2364
  </div>
@@ -2339,7 +2368,7 @@ Calendar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.
2339
2368
  </span>
2340
2369
  </div>
2341
2370
  </ng-container>
2342
- <div class="p-timepicker" *ngIf="showTime||timeOnly">
2371
+ <div class="p-timepicker" *ngIf="(showTime||timeOnly) && currentView === 'date'">
2343
2372
  <div class="p-hour-picker">
2344
2373
  <button class="p-link" type="button" (keydown)="onContainerButtonKeydown($event)" (keydown.enter)="incrementHour($event)" (keydown.space)="incrementHour($event)" (mousedown)="onTimePickerElementMouseDown($event, 0, 1)" (mouseup)="onTimePickerElementMouseUp($event)" (keyup.enter)="onTimePickerElementMouseUp($event)" (keyup.space)="onTimePickerElementMouseUp($event)" (mouseleave)="onTimePickerElementMouseLeave()" pRipple>
2345
2374
  <span class="pi pi-chevron-up"></span>
@@ -2446,7 +2475,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
2446
2475
  {{getMonthName(month.month)}}
2447
2476
  </button>
2448
2477
  <button type="button" (click)="switchToYearView($event)" (keydown)="onContainerButtonKeydown($event)" *ngIf="currentView !== 'year'" class="p-datepicker-year p-link" [disabled]="switchViewButtonDisabled()">
2449
- {{currentYear}}
2478
+ {{getYear(month)}}
2450
2479
  </button>
2451
2480
  <span class="p-datepicker-decade" *ngIf="currentView === 'year'">
2452
2481
  <ng-container *ngIf="!decadeTemplate">{{yearPickerValues()[0]}} - {{yearPickerValues()[yearPickerValues().length - 1]}}</ng-container>
@@ -2492,7 +2521,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
2492
2521
  </div>
2493
2522
  </div>
2494
2523
  <div class="p-monthpicker" *ngIf="currentView === 'month'">
2495
- <span *ngFor="let m of monthPickerValues(); let i = index" (click)="onMonthSelect($event, i)" (keydown)="onMonthCellKeydown($event,i)" class="p-monthpicker-month" [ngClass]="{'p-highlight': isMonthSelected(i), 'p-disabled':!isSelectable(1, i, this.currentYear, false)}" pRipple>
2524
+ <span *ngFor="let m of monthPickerValues(); let i = index" (click)="onMonthSelect($event, i)" (keydown)="onMonthCellKeydown($event,i)" class="p-monthpicker-month" [ngClass]="{'p-highlight': isMonthSelected(i)}" pRipple>
2496
2525
  {{m}}
2497
2526
  </span>
2498
2527
  </div>
@@ -2502,7 +2531,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
2502
2531
  </span>
2503
2532
  </div>
2504
2533
  </ng-container>
2505
- <div class="p-timepicker" *ngIf="showTime||timeOnly">
2534
+ <div class="p-timepicker" *ngIf="(showTime||timeOnly) && currentView === 'date'">
2506
2535
  <div class="p-hour-picker">
2507
2536
  <button class="p-link" type="button" (keydown)="onContainerButtonKeydown($event)" (keydown.enter)="incrementHour($event)" (keydown.space)="incrementHour($event)" (mousedown)="onTimePickerElementMouseDown($event, 0, 1)" (mouseup)="onTimePickerElementMouseUp($event)" (keyup.enter)="onTimePickerElementMouseUp($event)" (keyup.space)="onTimePickerElementMouseUp($event)" (mouseleave)="onTimePickerElementMouseLeave()" pRipple>
2508
2537
  <span class="pi pi-chevron-up"></span>
@@ -2677,8 +2706,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
2677
2706
  type: Input
2678
2707
  }], focusTrap: [{
2679
2708
  type: Input
2680
- }], firstDayOfWeek: [{
2681
- type: Input
2682
2709
  }], showTransitionOptions: [{
2683
2710
  type: Input
2684
2711
  }], hideTransitionOptions: [{
@@ -2739,6 +2766,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
2739
2766
  type: Input
2740
2767
  }], numberOfMonths: [{
2741
2768
  type: Input
2769
+ }], firstDayOfWeek: [{
2770
+ type: Input
2742
2771
  }], locale: [{
2743
2772
  type: Input
2744
2773
  }] } });