primereact 8.0.0-rc.1 → 8.0.0-rc.2

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 (349) hide show
  1. package/README.md +4 -2
  2. package/accordion/accordion.cjs.js +1 -1
  3. package/accordion/accordion.cjs.min.js +1 -1
  4. package/accordion/accordion.d.ts +2 -0
  5. package/accordion/accordion.esm.js +1 -1
  6. package/accordion/accordion.esm.min.js +1 -1
  7. package/accordion/accordion.js +1 -1
  8. package/accordion/accordion.min.js +1 -1
  9. package/api/api.cjs.js +2 -5
  10. package/api/api.cjs.min.js +1 -1
  11. package/api/api.esm.js +2 -5
  12. package/api/api.esm.min.js +1 -1
  13. package/api/api.js +2 -5
  14. package/api/api.min.js +1 -1
  15. package/autocomplete/autocomplete.cjs.js +5 -0
  16. package/autocomplete/autocomplete.cjs.min.js +1 -1
  17. package/autocomplete/autocomplete.d.ts +2 -1
  18. package/autocomplete/autocomplete.esm.js +5 -0
  19. package/autocomplete/autocomplete.esm.min.js +1 -1
  20. package/autocomplete/autocomplete.js +5 -0
  21. package/autocomplete/autocomplete.min.js +1 -1
  22. package/avatar/avatar.d.ts +1 -0
  23. package/avatargroup/avatargroup.d.ts +1 -0
  24. package/badge/badge.d.ts +1 -0
  25. package/blockui/blockui.d.ts +1 -0
  26. package/breadcrumb/breadcrumb.cjs.js +7 -5
  27. package/breadcrumb/breadcrumb.cjs.min.js +1 -1
  28. package/breadcrumb/breadcrumb.d.ts +1 -0
  29. package/breadcrumb/breadcrumb.esm.js +8 -6
  30. package/breadcrumb/breadcrumb.esm.min.js +1 -1
  31. package/breadcrumb/breadcrumb.js +7 -5
  32. package/breadcrumb/breadcrumb.min.js +1 -1
  33. package/button/button.cjs.js +3 -1
  34. package/button/button.cjs.min.js +1 -1
  35. package/button/button.d.ts +1 -0
  36. package/button/button.esm.js +3 -1
  37. package/button/button.esm.min.js +1 -1
  38. package/button/button.js +3 -1
  39. package/button/button.min.js +1 -1
  40. package/calendar/calendar.cjs.js +314 -151
  41. package/calendar/calendar.cjs.min.js +1 -1
  42. package/calendar/calendar.d.ts +8 -0
  43. package/calendar/calendar.esm.js +314 -151
  44. package/calendar/calendar.esm.min.js +1 -1
  45. package/calendar/calendar.js +315 -152
  46. package/calendar/calendar.min.css +1 -1
  47. package/calendar/calendar.min.js +1 -1
  48. package/captcha/captcha.d.ts +1 -0
  49. package/card/card.d.ts +1 -0
  50. package/carousel/carousel.d.ts +1 -0
  51. package/cascadeselect/cascadeselect.d.ts +4 -2
  52. package/chart/chart.d.ts +1 -0
  53. package/checkbox/checkbox.cjs.js +5 -13
  54. package/checkbox/checkbox.cjs.min.js +1 -1
  55. package/checkbox/checkbox.d.ts +2 -2
  56. package/checkbox/checkbox.esm.js +5 -13
  57. package/checkbox/checkbox.esm.min.js +1 -1
  58. package/checkbox/checkbox.js +5 -13
  59. package/checkbox/checkbox.min.js +1 -1
  60. package/chip/chip.d.ts +1 -0
  61. package/chips/chips.d.ts +1 -0
  62. package/colorpicker/colorpicker.d.ts +1 -0
  63. package/column/column.d.ts +2 -1
  64. package/columngroup/columngroup.d.ts +3 -1
  65. package/common/common.min.css +1 -1
  66. package/confirmdialog/confirmdialog.cjs.js +2 -2
  67. package/confirmdialog/confirmdialog.d.ts +1 -0
  68. package/confirmdialog/confirmdialog.esm.js +2 -2
  69. package/confirmdialog/confirmdialog.js +2 -2
  70. package/confirmpopup/confirmpopup.cjs.js +2 -2
  71. package/confirmpopup/confirmpopup.d.ts +1 -0
  72. package/confirmpopup/confirmpopup.esm.js +2 -2
  73. package/confirmpopup/confirmpopup.js +2 -2
  74. package/contextmenu/contextmenu.cjs.js +6 -2
  75. package/contextmenu/contextmenu.cjs.min.js +1 -1
  76. package/contextmenu/contextmenu.d.ts +1 -0
  77. package/contextmenu/contextmenu.esm.js +7 -3
  78. package/contextmenu/contextmenu.esm.min.js +1 -1
  79. package/contextmenu/contextmenu.js +6 -2
  80. package/contextmenu/contextmenu.min.js +1 -1
  81. package/core/core.js +197 -134
  82. package/core/core.min.js +9 -9
  83. package/datascroller/datascroller.d.ts +1 -0
  84. package/datatable/datatable.cjs.js +4 -4
  85. package/datatable/datatable.cjs.min.js +1 -1
  86. package/datatable/datatable.d.ts +2 -1
  87. package/datatable/datatable.esm.js +4 -4
  88. package/datatable/datatable.esm.min.js +1 -1
  89. package/datatable/datatable.js +4 -4
  90. package/datatable/datatable.min.js +1 -1
  91. package/dataview/dataview.d.ts +2 -0
  92. package/deferredcontent/deferredcontent.d.ts +1 -0
  93. package/dialog/dialog.d.ts +1 -0
  94. package/divider/divider.d.ts +1 -0
  95. package/dock/dock.cjs.js +5 -3
  96. package/dock/dock.cjs.min.js +1 -1
  97. package/dock/dock.d.ts +1 -0
  98. package/dock/dock.esm.js +6 -4
  99. package/dock/dock.esm.min.js +1 -1
  100. package/dock/dock.js +5 -3
  101. package/dock/dock.min.js +1 -1
  102. package/dropdown/dropdown.cjs.js +2 -6
  103. package/dropdown/dropdown.cjs.min.js +1 -1
  104. package/dropdown/dropdown.d.ts +4 -2
  105. package/dropdown/dropdown.esm.js +2 -6
  106. package/dropdown/dropdown.esm.min.js +1 -1
  107. package/dropdown/dropdown.js +2 -6
  108. package/dropdown/dropdown.min.js +1 -1
  109. package/editor/editor.d.ts +1 -0
  110. package/fieldset/fieldset.d.ts +1 -0
  111. package/fileupload/fileupload.d.ts +2 -1
  112. package/fullcalendar/fullcalendar.d.ts +1 -0
  113. package/galleria/galleria.d.ts +1 -0
  114. package/gmap/gmap.cjs.js +27 -12
  115. package/gmap/gmap.cjs.min.js +1 -1
  116. package/gmap/gmap.d.ts +1 -0
  117. package/gmap/gmap.esm.js +27 -12
  118. package/gmap/gmap.esm.min.js +1 -1
  119. package/gmap/gmap.js +27 -12
  120. package/gmap/gmap.min.js +1 -1
  121. package/image/image.d.ts +1 -0
  122. package/inplace/inplace.d.ts +7 -2
  123. package/inputmask/inputmask.cjs.js +2 -0
  124. package/inputmask/inputmask.cjs.min.js +1 -1
  125. package/inputmask/inputmask.d.ts +1 -0
  126. package/inputmask/inputmask.esm.js +2 -0
  127. package/inputmask/inputmask.esm.min.js +1 -1
  128. package/inputmask/inputmask.js +2 -0
  129. package/inputmask/inputmask.min.js +1 -1
  130. package/inputnumber/inputnumber.cjs.js +8 -5
  131. package/inputnumber/inputnumber.cjs.min.js +1 -1
  132. package/inputnumber/inputnumber.d.ts +1 -0
  133. package/inputnumber/inputnumber.esm.js +8 -5
  134. package/inputnumber/inputnumber.esm.min.js +1 -1
  135. package/inputnumber/inputnumber.js +8 -5
  136. package/inputnumber/inputnumber.min.js +1 -1
  137. package/inputswitch/inputswitch.cjs.js +7 -10
  138. package/inputswitch/inputswitch.cjs.min.js +1 -1
  139. package/inputswitch/inputswitch.d.ts +2 -1
  140. package/inputswitch/inputswitch.esm.js +7 -10
  141. package/inputswitch/inputswitch.esm.min.js +1 -1
  142. package/inputswitch/inputswitch.js +7 -10
  143. package/inputswitch/inputswitch.min.js +1 -1
  144. package/inputtext/inputtext.cjs.js +12 -2
  145. package/inputtext/inputtext.cjs.min.js +1 -1
  146. package/inputtext/inputtext.d.ts +1 -0
  147. package/inputtext/inputtext.esm.js +12 -2
  148. package/inputtext/inputtext.esm.min.js +1 -1
  149. package/inputtext/inputtext.js +12 -2
  150. package/inputtext/inputtext.min.js +1 -1
  151. package/inputtextarea/inputtextarea.d.ts +1 -0
  152. package/keyfilter/keyfilter.cjs.js +54 -1
  153. package/keyfilter/keyfilter.cjs.min.js +1 -1
  154. package/keyfilter/keyfilter.esm.js +54 -1
  155. package/keyfilter/keyfilter.esm.min.js +1 -1
  156. package/keyfilter/keyfilter.js +146 -93
  157. package/keyfilter/keyfilter.min.js +1 -1
  158. package/knob/knob.d.ts +1 -0
  159. package/listbox/listbox.d.ts +4 -2
  160. package/megamenu/megamenu.cjs.js +8 -5
  161. package/megamenu/megamenu.cjs.min.js +1 -1
  162. package/megamenu/megamenu.d.ts +1 -0
  163. package/megamenu/megamenu.esm.js +9 -6
  164. package/megamenu/megamenu.esm.min.js +1 -1
  165. package/megamenu/megamenu.js +8 -5
  166. package/megamenu/megamenu.min.js +1 -1
  167. package/mention/mention.d.ts +1 -0
  168. package/menu/menu.cjs.js +4 -2
  169. package/menu/menu.cjs.min.js +1 -1
  170. package/menu/menu.d.ts +1 -0
  171. package/menu/menu.esm.js +5 -3
  172. package/menu/menu.esm.min.js +1 -1
  173. package/menu/menu.js +4 -2
  174. package/menu/menu.min.js +1 -1
  175. package/menubar/menubar.cjs.js +6 -2
  176. package/menubar/menubar.cjs.min.js +1 -1
  177. package/menubar/menubar.d.ts +1 -0
  178. package/menubar/menubar.esm.js +7 -3
  179. package/menubar/menubar.esm.min.js +1 -1
  180. package/menubar/menubar.js +6 -2
  181. package/menubar/menubar.min.js +1 -1
  182. package/menuitem/menuitem.d.ts +0 -2
  183. package/message/message.d.ts +1 -0
  184. package/messages/messages.d.ts +1 -0
  185. package/multiselect/multiselect.cjs.js +5 -13
  186. package/multiselect/multiselect.cjs.min.js +1 -1
  187. package/multiselect/multiselect.d.ts +4 -2
  188. package/multiselect/multiselect.esm.js +5 -13
  189. package/multiselect/multiselect.esm.min.js +1 -1
  190. package/multiselect/multiselect.js +5 -13
  191. package/multiselect/multiselect.min.js +1 -1
  192. package/multistatecheckbox/multistatecheckbox.d.ts +1 -0
  193. package/orderlist/orderlist.d.ts +1 -0
  194. package/organizationchart/organizationchart.d.ts +1 -0
  195. package/overlaypanel/overlaypanel.d.ts +1 -0
  196. package/package.json +3 -2
  197. package/paginator/paginator.cjs.js +11 -5
  198. package/paginator/paginator.d.ts +1 -0
  199. package/paginator/paginator.esm.js +11 -5
  200. package/paginator/paginator.js +11 -5
  201. package/panel/panel.d.ts +1 -0
  202. package/panelmenu/panelmenu.cjs.js +12 -6
  203. package/panelmenu/panelmenu.cjs.min.js +1 -1
  204. package/panelmenu/panelmenu.d.ts +1 -0
  205. package/panelmenu/panelmenu.esm.js +13 -7
  206. package/panelmenu/panelmenu.esm.min.js +1 -1
  207. package/panelmenu/panelmenu.js +12 -6
  208. package/panelmenu/panelmenu.min.js +1 -1
  209. package/password/password.d.ts +1 -0
  210. package/picklist/picklist.d.ts +1 -0
  211. package/primereact.all.cjs.js +506 -257
  212. package/primereact.all.cjs.min.js +1 -1
  213. package/primereact.all.esm.js +506 -257
  214. package/primereact.all.esm.min.js +1 -1
  215. package/primereact.all.js +506 -257
  216. package/primereact.all.min.js +1 -1
  217. package/progressbar/progressbar.d.ts +1 -0
  218. package/progressspinner/progressspinner.d.ts +2 -1
  219. package/radiobutton/radiobutton.d.ts +2 -1
  220. package/rating/rating.d.ts +1 -0
  221. package/resources/primereact.css +165 -140
  222. package/resources/primereact.min.css +1 -1
  223. package/resources/themes/arya-blue/theme.css +51 -13
  224. package/resources/themes/arya-green/theme.css +51 -13
  225. package/resources/themes/arya-orange/theme.css +51 -13
  226. package/resources/themes/arya-purple/theme.css +51 -13
  227. package/resources/themes/bootstrap4-dark-blue/theme.css +51 -13
  228. package/resources/themes/bootstrap4-dark-purple/theme.css +51 -13
  229. package/resources/themes/bootstrap4-light-blue/theme.css +51 -13
  230. package/resources/themes/bootstrap4-light-purple/theme.css +51 -13
  231. package/resources/themes/fluent-light/theme.css +51 -13
  232. package/resources/themes/lara-dark-blue/theme.css +51 -13
  233. package/resources/themes/lara-dark-indigo/theme.css +51 -13
  234. package/resources/themes/lara-dark-purple/theme.css +51 -13
  235. package/resources/themes/lara-dark-teal/theme.css +51 -13
  236. package/resources/themes/lara-light-blue/theme.css +51 -13
  237. package/resources/themes/lara-light-indigo/theme.css +51 -13
  238. package/resources/themes/lara-light-purple/theme.css +51 -13
  239. package/resources/themes/lara-light-teal/theme.css +51 -13
  240. package/resources/themes/luna-amber/theme.css +51 -13
  241. package/resources/themes/luna-blue/theme.css +51 -13
  242. package/resources/themes/luna-green/theme.css +51 -13
  243. package/resources/themes/luna-pink/theme.css +51 -13
  244. package/resources/themes/md-dark-deeppurple/theme.css +54 -13
  245. package/resources/themes/md-dark-indigo/theme.css +54 -13
  246. package/resources/themes/md-light-deeppurple/theme.css +54 -13
  247. package/resources/themes/md-light-indigo/theme.css +54 -13
  248. package/resources/themes/mdc-dark-deeppurple/theme.css +54 -13
  249. package/resources/themes/mdc-dark-indigo/theme.css +54 -13
  250. package/resources/themes/mdc-light-deeppurple/theme.css +54 -13
  251. package/resources/themes/mdc-light-indigo/theme.css +54 -13
  252. package/resources/themes/nova/theme.css +51 -13
  253. package/resources/themes/nova-accent/theme.css +51 -13
  254. package/resources/themes/nova-alt/theme.css +51 -13
  255. package/resources/themes/rhea/theme.css +51 -13
  256. package/resources/themes/saga-blue/theme.css +51 -13
  257. package/resources/themes/saga-green/theme.css +51 -13
  258. package/resources/themes/saga-orange/theme.css +51 -13
  259. package/resources/themes/saga-purple/theme.css +51 -13
  260. package/resources/themes/tailwind-light/theme.css +50 -12
  261. package/resources/themes/vela-blue/theme.css +51 -13
  262. package/resources/themes/vela-green/theme.css +51 -13
  263. package/resources/themes/vela-orange/theme.css +51 -13
  264. package/resources/themes/vela-purple/theme.css +51 -13
  265. package/ripple/ripple.cjs.js +1 -0
  266. package/ripple/ripple.cjs.min.js +1 -1
  267. package/ripple/ripple.d.ts +3 -1
  268. package/ripple/ripple.esm.js +1 -0
  269. package/ripple/ripple.esm.min.js +1 -1
  270. package/ripple/ripple.js +1 -0
  271. package/ripple/ripple.min.js +1 -1
  272. package/row/row.d.ts +1 -0
  273. package/scrollpanel/scrollpanel.d.ts +1 -0
  274. package/scrolltop/scrolltop.d.ts +1 -0
  275. package/selectbutton/selectbutton.d.ts +4 -2
  276. package/selectitem/selectitem.d.ts +2 -0
  277. package/sidebar/sidebar.d.ts +1 -0
  278. package/skeleton/skeleton.d.ts +1 -0
  279. package/slidemenu/slidemenu.cjs.js +6 -2
  280. package/slidemenu/slidemenu.cjs.min.js +1 -1
  281. package/slidemenu/slidemenu.d.ts +1 -0
  282. package/slidemenu/slidemenu.esm.js +7 -3
  283. package/slidemenu/slidemenu.esm.min.js +1 -1
  284. package/slidemenu/slidemenu.js +6 -2
  285. package/slidemenu/slidemenu.min.js +1 -1
  286. package/slider/slider.d.ts +1 -0
  287. package/speeddial/speeddial.cjs.js +10 -5
  288. package/speeddial/speeddial.cjs.min.js +1 -1
  289. package/speeddial/speeddial.d.ts +1 -0
  290. package/speeddial/speeddial.esm.js +11 -6
  291. package/speeddial/speeddial.esm.min.js +1 -1
  292. package/speeddial/speeddial.js +10 -5
  293. package/speeddial/speeddial.min.js +1 -1
  294. package/splitbutton/splitbutton.cjs.js +5 -3
  295. package/splitbutton/splitbutton.cjs.min.js +1 -1
  296. package/splitbutton/splitbutton.d.ts +1 -0
  297. package/splitbutton/splitbutton.esm.js +6 -4
  298. package/splitbutton/splitbutton.esm.min.js +1 -1
  299. package/splitbutton/splitbutton.js +5 -3
  300. package/splitbutton/splitbutton.min.js +1 -1
  301. package/splitter/splitter.d.ts +2 -0
  302. package/steps/steps.cjs.js +8 -1
  303. package/steps/steps.cjs.min.js +1 -1
  304. package/steps/steps.d.ts +1 -0
  305. package/steps/steps.esm.js +9 -2
  306. package/steps/steps.esm.min.js +1 -1
  307. package/steps/steps.js +8 -1
  308. package/steps/steps.min.js +1 -1
  309. package/styleclass/styleclass.d.ts +1 -0
  310. package/tabmenu/tabmenu.cjs.js +4 -3
  311. package/tabmenu/tabmenu.cjs.min.js +1 -1
  312. package/tabmenu/tabmenu.d.ts +1 -0
  313. package/tabmenu/tabmenu.esm.js +5 -4
  314. package/tabmenu/tabmenu.esm.min.js +1 -1
  315. package/tabmenu/tabmenu.js +4 -3
  316. package/tabmenu/tabmenu.min.js +1 -1
  317. package/tabview/tabview.d.ts +2 -0
  318. package/tag/tag.d.ts +1 -0
  319. package/terminal/terminal.d.ts +1 -0
  320. package/tieredmenu/tieredmenu.cjs.js +6 -3
  321. package/tieredmenu/tieredmenu.cjs.min.js +1 -1
  322. package/tieredmenu/tieredmenu.d.ts +1 -0
  323. package/tieredmenu/tieredmenu.esm.js +7 -4
  324. package/tieredmenu/tieredmenu.esm.min.js +1 -1
  325. package/tieredmenu/tieredmenu.js +6 -3
  326. package/tieredmenu/tieredmenu.min.js +1 -1
  327. package/timeline/timeline.d.ts +1 -0
  328. package/toast/toast.d.ts +1 -0
  329. package/togglebutton/togglebutton.d.ts +1 -0
  330. package/toolbar/toolbar.d.ts +1 -0
  331. package/tooltip/tooltip.d.ts +1 -0
  332. package/tree/tree.d.ts +1 -0
  333. package/treeselect/treeselect.cjs.js +0 -1
  334. package/treeselect/treeselect.cjs.min.js +1 -1
  335. package/treeselect/treeselect.d.ts +2 -1
  336. package/treeselect/treeselect.esm.js +0 -1
  337. package/treeselect/treeselect.esm.min.js +1 -1
  338. package/treeselect/treeselect.js +0 -1
  339. package/treeselect/treeselect.min.js +1 -1
  340. package/treetable/treetable.d.ts +2 -1
  341. package/tristatecheckbox/tristatecheckbox.d.ts +1 -0
  342. package/utils/utils.cjs.js +11 -8
  343. package/utils/utils.cjs.min.js +1 -1
  344. package/utils/utils.esm.js +11 -8
  345. package/utils/utils.esm.min.js +1 -1
  346. package/utils/utils.js +11 -8
  347. package/utils/utils.min.js +1 -1
  348. package/virtualscroller/virtualscroller.d.ts +1 -0
  349. package/web-types.json +7 -13
@@ -1,5 +1,5 @@
1
1
  this.primereact = this.primereact || {};
2
- this.primereact.calendar = (function (exports, React, PrimeReact, button, hooks, inputtext, overlayservice, ripple, utils, csstransition, portal) {
2
+ this.primereact.calendar = (function (exports, React, PrimeReact, button, hooks, inputtext, overlayservice, utils, ripple, csstransition, portal) {
3
3
  'use strict';
4
4
 
5
5
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -61,11 +61,17 @@ this.primereact.calendar = (function (exports, React, PrimeReact, button, hooks,
61
61
  function _typeof(obj) {
62
62
  "@babel/helpers - typeof";
63
63
 
64
- return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
65
- return typeof obj;
66
- } : function (obj) {
67
- return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
68
- }, _typeof(obj);
64
+ if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
65
+ _typeof = function _typeof(obj) {
66
+ return typeof obj;
67
+ };
68
+ } else {
69
+ _typeof = function _typeof(obj) {
70
+ return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
71
+ };
72
+ }
73
+
74
+ return _typeof(obj);
69
75
  }
70
76
 
71
77
  function _arrayLikeToArray$1(arr, len) {
@@ -213,8 +219,30 @@ this.primereact.calendar = (function (exports, React, PrimeReact, button, hooks,
213
219
  var overlayEventListener = React__namespace.useRef(null);
214
220
  var touchUIMaskClickListener = React__namespace.useRef(null);
215
221
  var isOverlayClicked = React__namespace.useRef(false);
222
+
223
+ var _React$useState7 = React__namespace.useState('date'),
224
+ _React$useState8 = _slicedToArray(_React$useState7, 2),
225
+ currentView = _React$useState8[0],
226
+ setCurrentView = _React$useState8[1];
227
+
228
+ var _React$useState9 = React__namespace.useState(null),
229
+ _React$useState10 = _slicedToArray(_React$useState9, 2),
230
+ currentMonth = _React$useState10[0],
231
+ setCurrentMonth = _React$useState10[1];
232
+
233
+ var _React$useState11 = React__namespace.useState(null),
234
+ _React$useState12 = _slicedToArray(_React$useState11, 2),
235
+ currentYear = _React$useState12[0],
236
+ setCurrentYear = _React$useState12[1];
237
+
238
+ var _React$useState13 = React__namespace.useState([]),
239
+ _React$useState14 = _slicedToArray(_React$useState13, 2),
240
+ yearOptions = _React$useState14[0],
241
+ setYearOptions = _React$useState14[1];
242
+
216
243
  var previousValue = hooks.usePrevious(props.value);
217
244
  var visible = props.inline || (props.onVisibleChange ? props.visible : overlayVisibleState);
245
+ var attributeSelector = utils.UniqueComponentId();
218
246
 
219
247
  var _useOverlayListener = hooks.useOverlayListener({
220
248
  target: elementRef,
@@ -390,7 +418,7 @@ this.primereact.calendar = (function (exports, React, PrimeReact, button, hooks,
390
418
  if (navigation.current) {
391
419
  if (navigation.current.button) {
392
420
  initFocusableCell();
393
- if (navigation.backward) utils.DomHandler.findSingle(overlayRef.current, '.p-datepicker-prev').focus();else utils.DomHandler.findSingle(overlayRef.current, '.p-datepicker-next').focus();
421
+ if (navigation.current.backward) utils.DomHandler.findSingle(overlayRef.current, '.p-datepicker-prev').focus();else utils.DomHandler.findSingle(overlayRef.current, '.p-datepicker-next').focus();
394
422
  } else {
395
423
  var cell;
396
424
 
@@ -446,16 +474,22 @@ this.primereact.calendar = (function (exports, React, PrimeReact, button, hooks,
446
474
  var newViewDate = new Date(getViewDate().getTime());
447
475
  newViewDate.setDate(1);
448
476
 
449
- if (props.view === 'date') {
477
+ if (currentView === 'date') {
450
478
  if (newViewDate.getMonth() === 0) {
451
479
  newViewDate.setMonth(11);
452
480
  newViewDate.setFullYear(newViewDate.getFullYear() - 1);
481
+ setCurrentMonth(11);
482
+ decrementYear();
453
483
  } else {
454
484
  newViewDate.setMonth(newViewDate.getMonth() - 1);
485
+ setCurrentMonth(function (prevState) {
486
+ return prevState - 1;
487
+ });
455
488
  }
456
- } else if (props.view === 'month') {
457
- var currentYear = newViewDate.getFullYear();
458
- var newYear = currentYear - 1;
489
+ } else if (currentView === 'month') {
490
+ var _currentYear2 = newViewDate.getFullYear();
491
+
492
+ var newYear = _currentYear2 - 1;
459
493
 
460
494
  if (props.yearNavigator) {
461
495
  var minYear = parseInt(props.yearRange.split(':')[0], 10);
@@ -468,6 +502,12 @@ this.primereact.calendar = (function (exports, React, PrimeReact, button, hooks,
468
502
  newViewDate.setFullYear(newYear);
469
503
  }
470
504
 
505
+ if (currentView === 'month') {
506
+ decrementYear();
507
+ } else if (currentView === 'year') {
508
+ decrementDecade();
509
+ }
510
+
471
511
  updateViewDate(event, newViewDate);
472
512
  event.preventDefault();
473
513
  };
@@ -481,16 +521,22 @@ this.primereact.calendar = (function (exports, React, PrimeReact, button, hooks,
481
521
  var newViewDate = new Date(getViewDate().getTime());
482
522
  newViewDate.setDate(1);
483
523
 
484
- if (props.view === 'date') {
524
+ if (currentView === 'date') {
485
525
  if (newViewDate.getMonth() === 11) {
486
526
  newViewDate.setMonth(0);
487
527
  newViewDate.setFullYear(newViewDate.getFullYear() + 1);
528
+ setCurrentMonth(0);
529
+ incrementYear();
488
530
  } else {
489
531
  newViewDate.setMonth(newViewDate.getMonth() + 1);
532
+ setCurrentMonth(function (prevState) {
533
+ return prevState + 1;
534
+ });
490
535
  }
491
- } else if (props.view === 'month') {
492
- var currentYear = newViewDate.getFullYear();
493
- var newYear = currentYear + 1;
536
+ } else if (currentView === 'month') {
537
+ var _currentYear3 = newViewDate.getFullYear();
538
+
539
+ var newYear = _currentYear3 + 1;
494
540
 
495
541
  if (props.yearNavigator) {
496
542
  var maxYear = parseInt(props.yearRange.split(':')[1], 10);
@@ -503,10 +549,48 @@ this.primereact.calendar = (function (exports, React, PrimeReact, button, hooks,
503
549
  newViewDate.setFullYear(newYear);
504
550
  }
505
551
 
552
+ if (currentView === 'month') {
553
+ incrementYear();
554
+ } else if (currentView === 'year') {
555
+ incrementDecade();
556
+ }
557
+
506
558
  updateViewDate(event, newViewDate);
507
559
  event.preventDefault();
508
560
  };
509
561
 
562
+ var populateYearOptions = function populateYearOptions(start, end) {
563
+ var _yearOptions = [];
564
+
565
+ for (var i = start; i <= end; i++) {
566
+ yearOptions.push(i);
567
+ }
568
+
569
+ setYearOptions(_yearOptions);
570
+ };
571
+
572
+ var decrementYear = function decrementYear() {
573
+ var _currentYear = currentYear - 1;
574
+
575
+ setCurrentYear(_currentYear);
576
+
577
+ if (props.yearNavigator && _currentYear < yearOptions[0]) {
578
+ var difference = yearOptions[yearOptions.length - 1] - yearOptions[0];
579
+ populateYearOptions(yearOptions[0] - difference, yearOptions[yearOptions.length - 1] - difference);
580
+ }
581
+ };
582
+
583
+ var incrementYear = function incrementYear() {
584
+ var _currentYear = currentYear + 1;
585
+
586
+ setCurrentYear(_currentYear);
587
+
588
+ if (props.yearNavigator && _currentYear.current > yearOptions[yearOptions.length - 1]) {
589
+ var difference = yearOptions[yearOptions.length - 1] - yearOptions[0];
590
+ populateYearOptions(yearOptions[0] + difference, yearOptions[yearOptions.length - 1] + difference);
591
+ }
592
+ };
593
+
510
594
  var onMonthDropdownChange = function onMonthDropdownChange(event, value) {
511
595
  var currentViewDate = getViewDate();
512
596
  var newViewDate = new Date(currentViewDate.getTime());
@@ -1203,84 +1287,6 @@ this.primereact.calendar = (function (exports, React, PrimeReact, button, hooks,
1203
1287
  }
1204
1288
  };
1205
1289
 
1206
- var onMonthCellKeydown = function onMonthCellKeydown(event, index) {
1207
- var cell = event.currentTarget;
1208
-
1209
- switch (event.which) {
1210
- //arrows
1211
- case 38:
1212
- case 40:
1213
- {
1214
- cell.tabIndex = '-1';
1215
- var cells = cell.parentElement.children;
1216
- var cellIndex = utils.DomHandler.index(cell);
1217
- var nextCell = cells[event.which === 40 ? cellIndex + 3 : cellIndex - 3];
1218
-
1219
- if (nextCell) {
1220
- nextCell.tabIndex = '0';
1221
- nextCell.focus();
1222
- }
1223
-
1224
- event.preventDefault();
1225
- break;
1226
- }
1227
- //left arrow
1228
-
1229
- case 37:
1230
- {
1231
- cell.tabIndex = '-1';
1232
- var prevCell = cell.previousElementSibling;
1233
-
1234
- if (prevCell) {
1235
- prevCell.tabIndex = '0';
1236
- prevCell.focus();
1237
- }
1238
-
1239
- event.preventDefault();
1240
- break;
1241
- }
1242
- //right arrow
1243
-
1244
- case 39:
1245
- {
1246
- cell.tabIndex = '-1';
1247
- var _nextCell = cell.nextElementSibling;
1248
-
1249
- if (_nextCell) {
1250
- _nextCell.tabIndex = '0';
1251
-
1252
- _nextCell.focus();
1253
- }
1254
-
1255
- event.preventDefault();
1256
- break;
1257
- }
1258
- //enter
1259
-
1260
- case 13:
1261
- {
1262
- onMonthSelect(event, index);
1263
- event.preventDefault();
1264
- break;
1265
- }
1266
- //escape
1267
-
1268
- case 27:
1269
- {
1270
- hide(null, reFocusInputField);
1271
- event.preventDefault();
1272
- break;
1273
- }
1274
- //tab
1275
-
1276
- case 9:
1277
- {
1278
- trapFocus(event);
1279
- break;
1280
- }
1281
- }
1282
- };
1283
-
1284
1290
  var onDateSelect = function onDateSelect(event, dateMeta, timeMeta) {
1285
1291
  if (props.disabled || !dateMeta.selectable) {
1286
1292
  event.preventDefault();
@@ -1398,16 +1404,70 @@ this.primereact.calendar = (function (exports, React, PrimeReact, button, hooks,
1398
1404
  updateInputfield(selectedValues);
1399
1405
  };
1400
1406
 
1401
- var onMonthSelect = function onMonthSelect(event, month) {
1402
- onDateSelect(event, {
1403
- year: getViewDate().getFullYear(),
1404
- month: month,
1405
- day: 1,
1406
- selectable: true
1407
+ var decrementDecade = function decrementDecade() {
1408
+ setCurrentYear(function (prevState) {
1409
+ return prevState - 10;
1410
+ });
1411
+ };
1412
+
1413
+ var incrementDecade = function incrementDecade() {
1414
+ setCurrentYear(function (prevState) {
1415
+ return prevState + 10;
1407
1416
  });
1417
+ };
1418
+
1419
+ var switchToMonthView = function switchToMonthView(event) {
1420
+ setCurrentView('month');
1421
+ event.preventDefault();
1422
+ };
1423
+
1424
+ var switchToYearView = function switchToYearView(event) {
1425
+ setCurrentView('year');
1408
1426
  event.preventDefault();
1409
1427
  };
1410
1428
 
1429
+ var onMonthSelect = function onMonthSelect(event, month) {
1430
+ if (props.view === 'month') {
1431
+ onDateSelect(event, {
1432
+ year: currentYear,
1433
+ month: month,
1434
+ day: 1,
1435
+ selectable: true
1436
+ });
1437
+ event.preventDefault();
1438
+ } else {
1439
+ setCurrentMonth(month);
1440
+ createMonthsMeta(month, currentYear);
1441
+ var currentDate = new Date(getCurrentDateTime().getTime());
1442
+ currentDate.setMonth(month);
1443
+ currentDate.setYear(currentYear);
1444
+ setViewDateState(currentDate);
1445
+ setCurrentView('date');
1446
+ props.onMonthChange && props.onMonthChange({
1447
+ month: month + 1,
1448
+ year: currentYear
1449
+ });
1450
+ }
1451
+ };
1452
+
1453
+ var onYearSelect = function onYearSelect(event, year) {
1454
+ if (props.view === 'year') {
1455
+ onDateSelect(event, {
1456
+ year: year,
1457
+ month: 0,
1458
+ day: 1,
1459
+ selectable: true
1460
+ });
1461
+ } else {
1462
+ setCurrentYear(year);
1463
+ setCurrentView('month');
1464
+ props.onMonthChange && props.onMonthChange({
1465
+ month: currentMonth + 1,
1466
+ year: year
1467
+ });
1468
+ }
1469
+ };
1470
+
1411
1471
  var updateModel = function updateModel(event, value) {
1412
1472
  if (props.onChange) {
1413
1473
  var newValue = value && value instanceof Date ? new Date(value.getTime()) : value;
@@ -1491,11 +1551,28 @@ this.primereact.calendar = (function (exports, React, PrimeReact, button, hooks,
1491
1551
  props.onHide && props.onHide();
1492
1552
  };
1493
1553
 
1554
+ var appendDisabled = function appendDisabled() {
1555
+ return props.appendTo === 'self' || props.inline;
1556
+ };
1557
+
1494
1558
  var alignOverlay = function alignOverlay() {
1495
1559
  if (props.touchUI) {
1496
1560
  enableModality();
1497
- } else {
1498
- utils.DomHandler.alignOverlay(overlayRef.current, inputRef.current.parentElement, props.appendTo || PrimeReact__default["default"].appendTo);
1561
+ } else if (overlayRef && overlayRef.current && inputRef && inputRef.current) {
1562
+ utils.DomHandler.alignOverlay(overlayRef.current, inputRef.current, props.appendTo || PrimeReact__default["default"].appendTo);
1563
+
1564
+ if (appendDisabled()) {
1565
+ utils.DomHandler.relativePosition(overlayRef.current, inputRef.current);
1566
+ } else {
1567
+ if (currentView === 'date') {
1568
+ overlayRef.current.style.width = utils.DomHandler.getOuterWidth(overlayRef.current) + 'px';
1569
+ overlayRef.current.style.minWidth = utils.DomHandler.getOuterWidth(inputRef.current) + 'px';
1570
+ } else {
1571
+ overlayRef.current.style.width = utils.DomHandler.getOuterWidth(inputRef.current) + 'px';
1572
+ }
1573
+
1574
+ utils.DomHandler.absolutePosition(overlayRef.current, inputRef.current);
1575
+ }
1499
1576
  }
1500
1577
  };
1501
1578
 
@@ -1870,9 +1947,30 @@ this.primereact.calendar = (function (exports, React, PrimeReact, button, hooks,
1870
1947
  }
1871
1948
  };
1872
1949
 
1950
+ var isComparable = function isComparable() {
1951
+ return props.value != null && typeof props.value !== 'string';
1952
+ };
1953
+
1873
1954
  var isMonthSelected = function isMonthSelected(month) {
1874
- var viewDate = getViewDate();
1875
- if (props.value && props.value instanceof Date) return props.value.getDate() === 1 && props.value.getMonth() === month && props.value.getFullYear() === viewDate.getFullYear();else return false;
1955
+ if (isComparable()) {
1956
+ var value = isRangeSelection() ? props.value[0] : props.value;
1957
+ return !isMultipleSelection() ? value.getMonth() === month && value.getFullYear() === currentYear : false;
1958
+ }
1959
+
1960
+ return false;
1961
+ };
1962
+
1963
+ var isYearSelected = function isYearSelected(year) {
1964
+ if (isComparable()) {
1965
+ var value = isRangeSelection() ? props.value[0] : props.value;
1966
+ return !isMultipleSelection() && isComparable() ? value.getFullYear() === year : false;
1967
+ }
1968
+
1969
+ return false;
1970
+ };
1971
+
1972
+ var switchViewButtonDisabled = function switchViewButtonDisabled() {
1973
+ return props.numberOfMonths > 1 || props.disabled;
1876
1974
  };
1877
1975
 
1878
1976
  var isDateEquals = function isDateEquals(value, dateMeta) {
@@ -2432,9 +2530,20 @@ this.primereact.calendar = (function (exports, React, PrimeReact, button, hooks,
2432
2530
  var viewDate = getViewDate(props.viewDate);
2433
2531
  validateDate(viewDate);
2434
2532
  setViewDateState(viewDate);
2533
+ setCurrentMonth(viewDate.getMonth());
2534
+ setCurrentYear(viewDate.getFullYear());
2535
+ setCurrentView(props.view);
2435
2536
 
2436
2537
  if (props.inline) {
2437
- initFocusableCell();
2538
+ overlayRef && overlayRef.current.setAttribute(attributeSelector, '');
2539
+
2540
+ if (!props.disabled) {
2541
+ initFocusableCell();
2542
+
2543
+ if (props.numberOfMonths === 1) {
2544
+ overlayRef.current.style.width = utils.DomHandler.getOuterWidth(overlayRef.current) + 'px';
2545
+ }
2546
+ }
2438
2547
  } else if (props.mask) {
2439
2548
  utils.mask(inputRef.current, {
2440
2549
  mask: props.mask,
@@ -2472,7 +2581,7 @@ this.primereact.calendar = (function (exports, React, PrimeReact, button, hooks,
2472
2581
  }
2473
2582
  }, [props.onViewDateChange, props.value]);
2474
2583
  hooks.useUpdateEffect(function () {
2475
- if (previousValue !== props.value && (!viewStateChanged.current || !visible)) {
2584
+ if (previousValue !== props.value && (!viewStateChanged || !visible)) {
2476
2585
  updateInputfield(props.value);
2477
2586
  }
2478
2587
  }, [props.value, visible]);
@@ -2513,7 +2622,7 @@ this.primereact.calendar = (function (exports, React, PrimeReact, button, hooks,
2513
2622
  };
2514
2623
  return /*#__PURE__*/React__namespace.createElement("button", _extends({
2515
2624
  type: "button",
2516
- className: "p-datepicker-prev p-link"
2625
+ className: "p-datepicker-prev"
2517
2626
  }, navigatorProps), /*#__PURE__*/React__namespace.createElement("span", {
2518
2627
  className: "p-datepicker-prev-icon pi pi-chevron-left"
2519
2628
  }), /*#__PURE__*/React__namespace.createElement(ripple.Ripple, null));
@@ -2532,13 +2641,13 @@ this.primereact.calendar = (function (exports, React, PrimeReact, button, hooks,
2532
2641
  };
2533
2642
  return /*#__PURE__*/React__namespace.createElement("button", _extends({
2534
2643
  type: "button",
2535
- className: "p-datepicker-next p-link"
2644
+ className: "p-datepicker-next"
2536
2645
  }, navigatorProps), /*#__PURE__*/React__namespace.createElement("span", {
2537
2646
  className: "p-datepicker-next-icon pi pi-chevron-right"
2538
2647
  }), /*#__PURE__*/React__namespace.createElement(ripple.Ripple, null));
2539
2648
  };
2540
2649
 
2541
- var createTitleMonthElement = function createTitleMonthElement(month) {
2650
+ var createTitleMonthElement = function createTitleMonthElement() {
2542
2651
  var monthNames = PrimeReact.localeOption('monthNames', props.locale);
2543
2652
 
2544
2653
  if (props.monthNavigator && props.view !== 'month') {
@@ -2586,25 +2695,28 @@ this.primereact.calendar = (function (exports, React, PrimeReact, button, hooks,
2586
2695
  return _content;
2587
2696
  }
2588
2697
 
2589
- return /*#__PURE__*/React__namespace.createElement("span", {
2590
- className: "p-datepicker-month"
2591
- }, monthNames[month]);
2698
+ return currentView === 'date' && /*#__PURE__*/React__namespace.createElement("button", {
2699
+ className: "p-datepicker-month p-link",
2700
+ onClick: switchToMonthView,
2701
+ disabled: switchViewButtonDisabled()
2702
+ }, monthNames[currentMonth]);
2592
2703
  };
2593
2704
 
2594
- var createTitleYearElement = function createTitleYearElement(year) {
2705
+ var createTitleYearElement = function createTitleYearElement() {
2595
2706
  if (props.yearNavigator) {
2596
- var yearOptions = [];
2707
+ var _yearOptions2 = [];
2597
2708
  var years = props.yearRange.split(':');
2598
2709
  var yearStart = parseInt(years[0], 10);
2599
2710
  var yearEnd = parseInt(years[1], 10);
2600
2711
 
2601
2712
  for (var i = yearStart; i <= yearEnd; i++) {
2602
- yearOptions.push(i);
2713
+ _yearOptions2.push(i);
2603
2714
  }
2604
2715
 
2605
2716
  var viewDate = getViewDate();
2606
2717
  var viewYear = viewDate.getFullYear();
2607
- var displayedYearNames = yearOptions.filter(function (year) {
2718
+
2719
+ var displayedYearNames = _yearOptions2.filter(function (year) {
2608
2720
  return !(props.minDate && props.minDate.getFullYear() > year) && !(props.maxDate && props.maxDate.getFullYear() < year);
2609
2721
  });
2610
2722
 
@@ -2644,17 +2756,32 @@ this.primereact.calendar = (function (exports, React, PrimeReact, button, hooks,
2644
2756
  return _content2;
2645
2757
  }
2646
2758
 
2647
- return /*#__PURE__*/React__namespace.createElement("span", {
2648
- className: "p-datepicker-year"
2649
- }, year);
2759
+ return currentView !== 'year' && /*#__PURE__*/React__namespace.createElement("button", {
2760
+ className: "p-datepicker-year p-link",
2761
+ onClick: switchToYearView,
2762
+ disabled: switchViewButtonDisabled()
2763
+ }, currentYear);
2764
+ };
2765
+
2766
+ var createTitleDecadeElement = function createTitleDecadeElement() {
2767
+ var years = yearPickerValues();
2768
+
2769
+ if (currentView === 'year') {
2770
+ return /*#__PURE__*/React__namespace.createElement("span", {
2771
+ className: "p-datepicker-decade"
2772
+ }, props.decadeTemplate ? props.decadeTemplate(years) : /*#__PURE__*/React__namespace.createElement("span", null, "".concat(yearPickerValues()[0], " - ").concat(yearPickerValues()[yearPickerValues().length - 1])));
2773
+ }
2774
+
2775
+ return null;
2650
2776
  };
2651
2777
 
2652
2778
  var createTitle = function createTitle(monthMetaData) {
2653
2779
  var month = createTitleMonthElement(monthMetaData.month);
2654
2780
  var year = createTitleYearElement(monthMetaData.year);
2781
+ var decade = createTitleDecadeElement();
2655
2782
  return /*#__PURE__*/React__namespace.createElement("div", {
2656
2783
  className: "p-datepicker-title"
2657
- }, month, year);
2784
+ }, month, year, decade);
2658
2785
  };
2659
2786
 
2660
2787
  var createDayNames = function createDayNames(weekDays) {
@@ -2732,7 +2859,7 @@ this.primereact.calendar = (function (exports, React, PrimeReact, button, hooks,
2732
2859
  var createDateViewGrid = function createDateViewGrid(monthMetaData, weekDays, groupIndex) {
2733
2860
  var dayNames = createDayNames(weekDays);
2734
2861
  var dates = createDates(monthMetaData, groupIndex);
2735
- return /*#__PURE__*/React__namespace.createElement("div", {
2862
+ return currentView === 'date' && /*#__PURE__*/React__namespace.createElement("div", {
2736
2863
  className: "p-datepicker-calendar-container"
2737
2864
  }, /*#__PURE__*/React__namespace.createElement("table", {
2738
2865
  className: "p-datepicker-calendar"
@@ -2768,39 +2895,33 @@ this.primereact.calendar = (function (exports, React, PrimeReact, button, hooks,
2768
2895
  return months;
2769
2896
  };
2770
2897
 
2771
- var createMonthViewMonth = function createMonthViewMonth(index) {
2772
- var className = utils.classNames('p-monthpicker-month', {
2773
- 'p-highlight': isMonthSelected(index)
2774
- });
2898
+ var monthPickerValues = function monthPickerValues() {
2899
+ var monthPickerValues = [];
2775
2900
  var monthNamesShort = PrimeReact.localeOption('monthNamesShort', props.locale);
2776
- var monthName = monthNamesShort[index];
2777
- return /*#__PURE__*/React__namespace.createElement("span", {
2778
- key: monthName,
2779
- className: className,
2780
- onClick: function onClick(event) {
2781
- return onMonthSelect(event, index);
2782
- },
2783
- onKeyDown: function onKeyDown(event) {
2784
- return onMonthCellKeydown(event, index);
2785
- }
2786
- }, monthName, /*#__PURE__*/React__namespace.createElement(ripple.Ripple, null));
2901
+
2902
+ for (var i = 0; i <= 11; i++) {
2903
+ monthPickerValues.push(monthNamesShort[i]);
2904
+ }
2905
+
2906
+ return monthPickerValues;
2787
2907
  };
2788
2908
 
2789
- var createMonthViewMonths = function createMonthViewMonths() {
2790
- var months = [];
2909
+ var yearPickerValues = function yearPickerValues() {
2910
+ var yearPickerValues = [];
2911
+ var base = currentYear - currentYear % 10;
2791
2912
 
2792
- for (var i = 0; i <= 11; i++) {
2793
- months.push(createMonthViewMonth(i));
2913
+ for (var i = 0; i < 10; i++) {
2914
+ yearPickerValues.push(base + i);
2794
2915
  }
2795
2916
 
2796
- return months;
2917
+ return yearPickerValues;
2797
2918
  };
2798
2919
 
2799
- var createMonthView = function createMonthView() {
2920
+ var createMonthYearView = function createMonthYearView() {
2800
2921
  var backwardNavigator = createBackwardNavigator(true);
2801
2922
  var forwardNavigator = createForwardNavigator(true);
2802
2923
  var yearElement = createTitleYearElement(getViewDate().getFullYear());
2803
- var months = createMonthViewMonths();
2924
+ var decade = createTitleDecadeElement();
2804
2925
  return /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/React__namespace.createElement("div", {
2805
2926
  className: "p-datepicker-group-container"
2806
2927
  }, /*#__PURE__*/React__namespace.createElement("div", {
@@ -2809,17 +2930,15 @@ this.primereact.calendar = (function (exports, React, PrimeReact, button, hooks,
2809
2930
  className: "p-datepicker-header"
2810
2931
  }, backwardNavigator, /*#__PURE__*/React__namespace.createElement("div", {
2811
2932
  className: "p-datepicker-title"
2812
- }, yearElement), forwardNavigator))), /*#__PURE__*/React__namespace.createElement("div", {
2813
- className: "p-monthpicker"
2814
- }, months));
2933
+ }, yearElement, decade), forwardNavigator))));
2815
2934
  };
2816
2935
 
2817
2936
  var createDatePicker = function createDatePicker() {
2818
2937
  if (!props.timeOnly) {
2819
2938
  if (props.view === 'date') {
2820
2939
  return createDateView();
2821
- } else if (props.view === 'month') {
2822
- return createMonthView();
2940
+ } else {
2941
+ return createMonthYearView();
2823
2942
  }
2824
2943
  }
2825
2944
 
@@ -3011,7 +3130,7 @@ this.primereact.calendar = (function (exports, React, PrimeReact, button, hooks,
3011
3130
  };
3012
3131
 
3013
3132
  var createTimePicker = function createTimePicker() {
3014
- if (props.showTime || props.timeOnly) {
3133
+ if ((props.showTime || props.timeOnly) && currentView === 'date') {
3015
3134
  return /*#__PURE__*/React__namespace.createElement("div", {
3016
3135
  className: "p-timepicker"
3017
3136
  }, createHourPicker(), createSeparator(':'), createMinutePicker(), props.showSeconds && createSeparator(':'), createSecondPicker(), props.showMillisec && createSeparator('.'), createMiliSecondPicker(), props.hourFormat === '12' && createSeparator(':'), createAmPmPicker());
@@ -3120,6 +3239,46 @@ this.primereact.calendar = (function (exports, React, PrimeReact, button, hooks,
3120
3239
  return null;
3121
3240
  };
3122
3241
 
3242
+ var createMonthPicker = function createMonthPicker() {
3243
+ if (currentView === 'month') {
3244
+ return /*#__PURE__*/React__namespace.createElement("div", {
3245
+ className: "p-monthpicker"
3246
+ }, monthPickerValues().map(function (m, i) {
3247
+ return /*#__PURE__*/React__namespace.createElement("span", {
3248
+ onClick: function onClick(event) {
3249
+ return onMonthSelect(event, i);
3250
+ },
3251
+ key: "month".concat(i + 1),
3252
+ className: utils.classNames('p-monthpicker-month', {
3253
+ 'p-highlight': isMonthSelected(i)
3254
+ })
3255
+ }, m);
3256
+ }));
3257
+ }
3258
+
3259
+ return null;
3260
+ };
3261
+
3262
+ var createYearPicker = function createYearPicker() {
3263
+ if (currentView === 'year') {
3264
+ return /*#__PURE__*/React__namespace.createElement("div", {
3265
+ className: "p-yearpicker"
3266
+ }, yearPickerValues().map(function (y, i) {
3267
+ return /*#__PURE__*/React__namespace.createElement("span", {
3268
+ onClick: function onClick(event) {
3269
+ return onYearSelect(event, y);
3270
+ },
3271
+ key: "year".concat(i + 1),
3272
+ className: utils.classNames('p-yearpicker-year', {
3273
+ 'p-highlight': isYearSelected(y)
3274
+ })
3275
+ }, y);
3276
+ }));
3277
+ }
3278
+
3279
+ return null;
3280
+ };
3281
+
3123
3282
  var otherProps = utils.ObjectUtils.findDiffKeys(props, Calendar.defaultProps);
3124
3283
  var className = utils.classNames('p-calendar p-component p-inputwrapper', props.className, (_classNames = {}, _defineProperty(_classNames, "p-calendar-w-btn p-calendar-w-btn-".concat(props.iconPos), props.showIcon), _defineProperty(_classNames, 'p-calendar-disabled', props.disabled), _defineProperty(_classNames, 'p-calendar-timeonly', props.timeOnly), _defineProperty(_classNames, 'p-inputwrapper-filled', props.value || utils.DomHandler.hasClass(inputRef.current, 'p-filled') && inputRef.current.value !== ''), _defineProperty(_classNames, 'p-inputwrapper-focus', focusedState), _classNames));
3125
3284
  var panelClassName = utils.classNames('p-datepicker p-component', props.panelClassName, {
@@ -3127,7 +3286,7 @@ this.primereact.calendar = (function (exports, React, PrimeReact, button, hooks,
3127
3286
  'p-disabled': props.disabled,
3128
3287
  'p-datepicker-timeonly': props.timeOnly,
3129
3288
  'p-datepicker-multiple-month': props.numberOfMonths > 1,
3130
- 'p-datepicker-monthpicker': props.view === 'month',
3289
+ 'p-datepicker-monthpicker': currentView === 'month',
3131
3290
  'p-datepicker-touch-ui': props.touchUI
3132
3291
  });
3133
3292
  var content = createContent();
@@ -3135,6 +3294,8 @@ this.primereact.calendar = (function (exports, React, PrimeReact, button, hooks,
3135
3294
  var timePicker = createTimePicker();
3136
3295
  var buttonBar = createButtonBar();
3137
3296
  var footer = createFooter();
3297
+ var monthPicker = createMonthPicker();
3298
+ var yearPicker = createYearPicker();
3138
3299
  return /*#__PURE__*/React__namespace.createElement("span", _extends({
3139
3300
  ref: elementRef,
3140
3301
  id: props.id,
@@ -3154,7 +3315,7 @@ this.primereact.calendar = (function (exports, React, PrimeReact, button, hooks,
3154
3315
  onExit: onOverlayExit,
3155
3316
  onExited: onOverlayExited,
3156
3317
  transitionOptions: props.transitionOptions
3157
- }, datePicker, timePicker, buttonBar, footer));
3318
+ }, datePicker, timePicker, buttonBar, footer, monthPicker, yearPicker));
3158
3319
  }));
3159
3320
  Calendar.displayName = 'Calendar';
3160
3321
  Calendar.defaultProps = {
@@ -3223,6 +3384,7 @@ this.primereact.calendar = (function (exports, React, PrimeReact, button, hooks,
3223
3384
  tooltipOptions: null,
3224
3385
  ariaLabelledBy: null,
3225
3386
  dateTemplate: null,
3387
+ decadeTemplate: null,
3226
3388
  headerTemplate: null,
3227
3389
  footerTemplate: null,
3228
3390
  monthNavigatorTemplate: null,
@@ -3238,7 +3400,8 @@ this.primereact.calendar = (function (exports, React, PrimeReact, button, hooks,
3238
3400
  onTodayButtonClick: null,
3239
3401
  onClearButtonClick: null,
3240
3402
  onShow: null,
3241
- onHide: null
3403
+ onHide: null,
3404
+ onMonthChange: null
3242
3405
  };
3243
3406
 
3244
3407
  exports.Calendar = Calendar;
@@ -3247,4 +3410,4 @@ this.primereact.calendar = (function (exports, React, PrimeReact, button, hooks,
3247
3410
 
3248
3411
  return exports;
3249
3412
 
3250
- })({}, React, primereact.api, primereact.button, primereact.hooks, primereact.inputtext, primereact.overlayservice, primereact.ripple, primereact.utils, primereact.csstransition, primereact.portal);
3413
+ })({}, React, primereact.api, primereact.button, primereact.hooks, primereact.inputtext, primereact.overlayservice, primereact.utils, primereact.ripple, primereact.csstransition, primereact.portal);