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
@@ -4,8 +4,8 @@ import { Button } from 'primereact/button';
4
4
  import { usePrevious, useOverlayListener, useMountEffect, useUpdateEffect, useUnmountEffect } from 'primereact/hooks';
5
5
  import { InputText } from 'primereact/inputtext';
6
6
  import { OverlayService } from 'primereact/overlayservice';
7
+ import { UniqueComponentId, DomHandler, ObjectUtils, mask, ZIndexUtils, classNames } from 'primereact/utils';
7
8
  import { Ripple } from 'primereact/ripple';
8
- import { DomHandler, ObjectUtils, mask, ZIndexUtils, classNames } from 'primereact/utils';
9
9
  import { CSSTransition } from 'primereact/csstransition';
10
10
  import { Portal } from 'primereact/portal';
11
11
 
@@ -45,11 +45,17 @@ function _extends() {
45
45
  function _typeof(obj) {
46
46
  "@babel/helpers - typeof";
47
47
 
48
- return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
49
- return typeof obj;
50
- } : function (obj) {
51
- return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
52
- }, _typeof(obj);
48
+ if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
49
+ _typeof = function _typeof(obj) {
50
+ return typeof obj;
51
+ };
52
+ } else {
53
+ _typeof = function _typeof(obj) {
54
+ return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
55
+ };
56
+ }
57
+
58
+ return _typeof(obj);
53
59
  }
54
60
 
55
61
  function _arrayLikeToArray$1(arr, len) {
@@ -197,8 +203,30 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
197
203
  var overlayEventListener = React.useRef(null);
198
204
  var touchUIMaskClickListener = React.useRef(null);
199
205
  var isOverlayClicked = React.useRef(false);
206
+
207
+ var _React$useState7 = React.useState('date'),
208
+ _React$useState8 = _slicedToArray(_React$useState7, 2),
209
+ currentView = _React$useState8[0],
210
+ setCurrentView = _React$useState8[1];
211
+
212
+ var _React$useState9 = React.useState(null),
213
+ _React$useState10 = _slicedToArray(_React$useState9, 2),
214
+ currentMonth = _React$useState10[0],
215
+ setCurrentMonth = _React$useState10[1];
216
+
217
+ var _React$useState11 = React.useState(null),
218
+ _React$useState12 = _slicedToArray(_React$useState11, 2),
219
+ currentYear = _React$useState12[0],
220
+ setCurrentYear = _React$useState12[1];
221
+
222
+ var _React$useState13 = React.useState([]),
223
+ _React$useState14 = _slicedToArray(_React$useState13, 2),
224
+ yearOptions = _React$useState14[0],
225
+ setYearOptions = _React$useState14[1];
226
+
200
227
  var previousValue = usePrevious(props.value);
201
228
  var visible = props.inline || (props.onVisibleChange ? props.visible : overlayVisibleState);
229
+ var attributeSelector = UniqueComponentId();
202
230
 
203
231
  var _useOverlayListener = useOverlayListener({
204
232
  target: elementRef,
@@ -374,7 +402,7 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
374
402
  if (navigation.current) {
375
403
  if (navigation.current.button) {
376
404
  initFocusableCell();
377
- if (navigation.backward) DomHandler.findSingle(overlayRef.current, '.p-datepicker-prev').focus();else DomHandler.findSingle(overlayRef.current, '.p-datepicker-next').focus();
405
+ if (navigation.current.backward) DomHandler.findSingle(overlayRef.current, '.p-datepicker-prev').focus();else DomHandler.findSingle(overlayRef.current, '.p-datepicker-next').focus();
378
406
  } else {
379
407
  var cell;
380
408
 
@@ -430,16 +458,22 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
430
458
  var newViewDate = new Date(getViewDate().getTime());
431
459
  newViewDate.setDate(1);
432
460
 
433
- if (props.view === 'date') {
461
+ if (currentView === 'date') {
434
462
  if (newViewDate.getMonth() === 0) {
435
463
  newViewDate.setMonth(11);
436
464
  newViewDate.setFullYear(newViewDate.getFullYear() - 1);
465
+ setCurrentMonth(11);
466
+ decrementYear();
437
467
  } else {
438
468
  newViewDate.setMonth(newViewDate.getMonth() - 1);
469
+ setCurrentMonth(function (prevState) {
470
+ return prevState - 1;
471
+ });
439
472
  }
440
- } else if (props.view === 'month') {
441
- var currentYear = newViewDate.getFullYear();
442
- var newYear = currentYear - 1;
473
+ } else if (currentView === 'month') {
474
+ var _currentYear2 = newViewDate.getFullYear();
475
+
476
+ var newYear = _currentYear2 - 1;
443
477
 
444
478
  if (props.yearNavigator) {
445
479
  var minYear = parseInt(props.yearRange.split(':')[0], 10);
@@ -452,6 +486,12 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
452
486
  newViewDate.setFullYear(newYear);
453
487
  }
454
488
 
489
+ if (currentView === 'month') {
490
+ decrementYear();
491
+ } else if (currentView === 'year') {
492
+ decrementDecade();
493
+ }
494
+
455
495
  updateViewDate(event, newViewDate);
456
496
  event.preventDefault();
457
497
  };
@@ -465,16 +505,22 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
465
505
  var newViewDate = new Date(getViewDate().getTime());
466
506
  newViewDate.setDate(1);
467
507
 
468
- if (props.view === 'date') {
508
+ if (currentView === 'date') {
469
509
  if (newViewDate.getMonth() === 11) {
470
510
  newViewDate.setMonth(0);
471
511
  newViewDate.setFullYear(newViewDate.getFullYear() + 1);
512
+ setCurrentMonth(0);
513
+ incrementYear();
472
514
  } else {
473
515
  newViewDate.setMonth(newViewDate.getMonth() + 1);
516
+ setCurrentMonth(function (prevState) {
517
+ return prevState + 1;
518
+ });
474
519
  }
475
- } else if (props.view === 'month') {
476
- var currentYear = newViewDate.getFullYear();
477
- var newYear = currentYear + 1;
520
+ } else if (currentView === 'month') {
521
+ var _currentYear3 = newViewDate.getFullYear();
522
+
523
+ var newYear = _currentYear3 + 1;
478
524
 
479
525
  if (props.yearNavigator) {
480
526
  var maxYear = parseInt(props.yearRange.split(':')[1], 10);
@@ -487,10 +533,48 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
487
533
  newViewDate.setFullYear(newYear);
488
534
  }
489
535
 
536
+ if (currentView === 'month') {
537
+ incrementYear();
538
+ } else if (currentView === 'year') {
539
+ incrementDecade();
540
+ }
541
+
490
542
  updateViewDate(event, newViewDate);
491
543
  event.preventDefault();
492
544
  };
493
545
 
546
+ var populateYearOptions = function populateYearOptions(start, end) {
547
+ var _yearOptions = [];
548
+
549
+ for (var i = start; i <= end; i++) {
550
+ yearOptions.push(i);
551
+ }
552
+
553
+ setYearOptions(_yearOptions);
554
+ };
555
+
556
+ var decrementYear = function decrementYear() {
557
+ var _currentYear = currentYear - 1;
558
+
559
+ setCurrentYear(_currentYear);
560
+
561
+ if (props.yearNavigator && _currentYear < yearOptions[0]) {
562
+ var difference = yearOptions[yearOptions.length - 1] - yearOptions[0];
563
+ populateYearOptions(yearOptions[0] - difference, yearOptions[yearOptions.length - 1] - difference);
564
+ }
565
+ };
566
+
567
+ var incrementYear = function incrementYear() {
568
+ var _currentYear = currentYear + 1;
569
+
570
+ setCurrentYear(_currentYear);
571
+
572
+ if (props.yearNavigator && _currentYear.current > yearOptions[yearOptions.length - 1]) {
573
+ var difference = yearOptions[yearOptions.length - 1] - yearOptions[0];
574
+ populateYearOptions(yearOptions[0] + difference, yearOptions[yearOptions.length - 1] + difference);
575
+ }
576
+ };
577
+
494
578
  var onMonthDropdownChange = function onMonthDropdownChange(event, value) {
495
579
  var currentViewDate = getViewDate();
496
580
  var newViewDate = new Date(currentViewDate.getTime());
@@ -1187,84 +1271,6 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
1187
1271
  }
1188
1272
  };
1189
1273
 
1190
- var onMonthCellKeydown = function onMonthCellKeydown(event, index) {
1191
- var cell = event.currentTarget;
1192
-
1193
- switch (event.which) {
1194
- //arrows
1195
- case 38:
1196
- case 40:
1197
- {
1198
- cell.tabIndex = '-1';
1199
- var cells = cell.parentElement.children;
1200
- var cellIndex = DomHandler.index(cell);
1201
- var nextCell = cells[event.which === 40 ? cellIndex + 3 : cellIndex - 3];
1202
-
1203
- if (nextCell) {
1204
- nextCell.tabIndex = '0';
1205
- nextCell.focus();
1206
- }
1207
-
1208
- event.preventDefault();
1209
- break;
1210
- }
1211
- //left arrow
1212
-
1213
- case 37:
1214
- {
1215
- cell.tabIndex = '-1';
1216
- var prevCell = cell.previousElementSibling;
1217
-
1218
- if (prevCell) {
1219
- prevCell.tabIndex = '0';
1220
- prevCell.focus();
1221
- }
1222
-
1223
- event.preventDefault();
1224
- break;
1225
- }
1226
- //right arrow
1227
-
1228
- case 39:
1229
- {
1230
- cell.tabIndex = '-1';
1231
- var _nextCell = cell.nextElementSibling;
1232
-
1233
- if (_nextCell) {
1234
- _nextCell.tabIndex = '0';
1235
-
1236
- _nextCell.focus();
1237
- }
1238
-
1239
- event.preventDefault();
1240
- break;
1241
- }
1242
- //enter
1243
-
1244
- case 13:
1245
- {
1246
- onMonthSelect(event, index);
1247
- event.preventDefault();
1248
- break;
1249
- }
1250
- //escape
1251
-
1252
- case 27:
1253
- {
1254
- hide(null, reFocusInputField);
1255
- event.preventDefault();
1256
- break;
1257
- }
1258
- //tab
1259
-
1260
- case 9:
1261
- {
1262
- trapFocus(event);
1263
- break;
1264
- }
1265
- }
1266
- };
1267
-
1268
1274
  var onDateSelect = function onDateSelect(event, dateMeta, timeMeta) {
1269
1275
  if (props.disabled || !dateMeta.selectable) {
1270
1276
  event.preventDefault();
@@ -1382,16 +1388,70 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
1382
1388
  updateInputfield(selectedValues);
1383
1389
  };
1384
1390
 
1385
- var onMonthSelect = function onMonthSelect(event, month) {
1386
- onDateSelect(event, {
1387
- year: getViewDate().getFullYear(),
1388
- month: month,
1389
- day: 1,
1390
- selectable: true
1391
+ var decrementDecade = function decrementDecade() {
1392
+ setCurrentYear(function (prevState) {
1393
+ return prevState - 10;
1394
+ });
1395
+ };
1396
+
1397
+ var incrementDecade = function incrementDecade() {
1398
+ setCurrentYear(function (prevState) {
1399
+ return prevState + 10;
1391
1400
  });
1401
+ };
1402
+
1403
+ var switchToMonthView = function switchToMonthView(event) {
1404
+ setCurrentView('month');
1405
+ event.preventDefault();
1406
+ };
1407
+
1408
+ var switchToYearView = function switchToYearView(event) {
1409
+ setCurrentView('year');
1392
1410
  event.preventDefault();
1393
1411
  };
1394
1412
 
1413
+ var onMonthSelect = function onMonthSelect(event, month) {
1414
+ if (props.view === 'month') {
1415
+ onDateSelect(event, {
1416
+ year: currentYear,
1417
+ month: month,
1418
+ day: 1,
1419
+ selectable: true
1420
+ });
1421
+ event.preventDefault();
1422
+ } else {
1423
+ setCurrentMonth(month);
1424
+ createMonthsMeta(month, currentYear);
1425
+ var currentDate = new Date(getCurrentDateTime().getTime());
1426
+ currentDate.setMonth(month);
1427
+ currentDate.setYear(currentYear);
1428
+ setViewDateState(currentDate);
1429
+ setCurrentView('date');
1430
+ props.onMonthChange && props.onMonthChange({
1431
+ month: month + 1,
1432
+ year: currentYear
1433
+ });
1434
+ }
1435
+ };
1436
+
1437
+ var onYearSelect = function onYearSelect(event, year) {
1438
+ if (props.view === 'year') {
1439
+ onDateSelect(event, {
1440
+ year: year,
1441
+ month: 0,
1442
+ day: 1,
1443
+ selectable: true
1444
+ });
1445
+ } else {
1446
+ setCurrentYear(year);
1447
+ setCurrentView('month');
1448
+ props.onMonthChange && props.onMonthChange({
1449
+ month: currentMonth + 1,
1450
+ year: year
1451
+ });
1452
+ }
1453
+ };
1454
+
1395
1455
  var updateModel = function updateModel(event, value) {
1396
1456
  if (props.onChange) {
1397
1457
  var newValue = value && value instanceof Date ? new Date(value.getTime()) : value;
@@ -1475,11 +1535,28 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
1475
1535
  props.onHide && props.onHide();
1476
1536
  };
1477
1537
 
1538
+ var appendDisabled = function appendDisabled() {
1539
+ return props.appendTo === 'self' || props.inline;
1540
+ };
1541
+
1478
1542
  var alignOverlay = function alignOverlay() {
1479
1543
  if (props.touchUI) {
1480
1544
  enableModality();
1481
- } else {
1482
- DomHandler.alignOverlay(overlayRef.current, inputRef.current.parentElement, props.appendTo || PrimeReact.appendTo);
1545
+ } else if (overlayRef && overlayRef.current && inputRef && inputRef.current) {
1546
+ DomHandler.alignOverlay(overlayRef.current, inputRef.current, props.appendTo || PrimeReact.appendTo);
1547
+
1548
+ if (appendDisabled()) {
1549
+ DomHandler.relativePosition(overlayRef.current, inputRef.current);
1550
+ } else {
1551
+ if (currentView === 'date') {
1552
+ overlayRef.current.style.width = DomHandler.getOuterWidth(overlayRef.current) + 'px';
1553
+ overlayRef.current.style.minWidth = DomHandler.getOuterWidth(inputRef.current) + 'px';
1554
+ } else {
1555
+ overlayRef.current.style.width = DomHandler.getOuterWidth(inputRef.current) + 'px';
1556
+ }
1557
+
1558
+ DomHandler.absolutePosition(overlayRef.current, inputRef.current);
1559
+ }
1483
1560
  }
1484
1561
  };
1485
1562
 
@@ -1854,9 +1931,30 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
1854
1931
  }
1855
1932
  };
1856
1933
 
1934
+ var isComparable = function isComparable() {
1935
+ return props.value != null && typeof props.value !== 'string';
1936
+ };
1937
+
1857
1938
  var isMonthSelected = function isMonthSelected(month) {
1858
- var viewDate = getViewDate();
1859
- if (props.value && props.value instanceof Date) return props.value.getDate() === 1 && props.value.getMonth() === month && props.value.getFullYear() === viewDate.getFullYear();else return false;
1939
+ if (isComparable()) {
1940
+ var value = isRangeSelection() ? props.value[0] : props.value;
1941
+ return !isMultipleSelection() ? value.getMonth() === month && value.getFullYear() === currentYear : false;
1942
+ }
1943
+
1944
+ return false;
1945
+ };
1946
+
1947
+ var isYearSelected = function isYearSelected(year) {
1948
+ if (isComparable()) {
1949
+ var value = isRangeSelection() ? props.value[0] : props.value;
1950
+ return !isMultipleSelection() && isComparable() ? value.getFullYear() === year : false;
1951
+ }
1952
+
1953
+ return false;
1954
+ };
1955
+
1956
+ var switchViewButtonDisabled = function switchViewButtonDisabled() {
1957
+ return props.numberOfMonths > 1 || props.disabled;
1860
1958
  };
1861
1959
 
1862
1960
  var isDateEquals = function isDateEquals(value, dateMeta) {
@@ -2416,9 +2514,20 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
2416
2514
  var viewDate = getViewDate(props.viewDate);
2417
2515
  validateDate(viewDate);
2418
2516
  setViewDateState(viewDate);
2517
+ setCurrentMonth(viewDate.getMonth());
2518
+ setCurrentYear(viewDate.getFullYear());
2519
+ setCurrentView(props.view);
2419
2520
 
2420
2521
  if (props.inline) {
2421
- initFocusableCell();
2522
+ overlayRef && overlayRef.current.setAttribute(attributeSelector, '');
2523
+
2524
+ if (!props.disabled) {
2525
+ initFocusableCell();
2526
+
2527
+ if (props.numberOfMonths === 1) {
2528
+ overlayRef.current.style.width = DomHandler.getOuterWidth(overlayRef.current) + 'px';
2529
+ }
2530
+ }
2422
2531
  } else if (props.mask) {
2423
2532
  mask(inputRef.current, {
2424
2533
  mask: props.mask,
@@ -2456,7 +2565,7 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
2456
2565
  }
2457
2566
  }, [props.onViewDateChange, props.value]);
2458
2567
  useUpdateEffect(function () {
2459
- if (previousValue !== props.value && (!viewStateChanged.current || !visible)) {
2568
+ if (previousValue !== props.value && (!viewStateChanged || !visible)) {
2460
2569
  updateInputfield(props.value);
2461
2570
  }
2462
2571
  }, [props.value, visible]);
@@ -2497,7 +2606,7 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
2497
2606
  };
2498
2607
  return /*#__PURE__*/React.createElement("button", _extends({
2499
2608
  type: "button",
2500
- className: "p-datepicker-prev p-link"
2609
+ className: "p-datepicker-prev"
2501
2610
  }, navigatorProps), /*#__PURE__*/React.createElement("span", {
2502
2611
  className: "p-datepicker-prev-icon pi pi-chevron-left"
2503
2612
  }), /*#__PURE__*/React.createElement(Ripple, null));
@@ -2516,13 +2625,13 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
2516
2625
  };
2517
2626
  return /*#__PURE__*/React.createElement("button", _extends({
2518
2627
  type: "button",
2519
- className: "p-datepicker-next p-link"
2628
+ className: "p-datepicker-next"
2520
2629
  }, navigatorProps), /*#__PURE__*/React.createElement("span", {
2521
2630
  className: "p-datepicker-next-icon pi pi-chevron-right"
2522
2631
  }), /*#__PURE__*/React.createElement(Ripple, null));
2523
2632
  };
2524
2633
 
2525
- var createTitleMonthElement = function createTitleMonthElement(month) {
2634
+ var createTitleMonthElement = function createTitleMonthElement() {
2526
2635
  var monthNames = localeOption('monthNames', props.locale);
2527
2636
 
2528
2637
  if (props.monthNavigator && props.view !== 'month') {
@@ -2570,25 +2679,28 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
2570
2679
  return _content;
2571
2680
  }
2572
2681
 
2573
- return /*#__PURE__*/React.createElement("span", {
2574
- className: "p-datepicker-month"
2575
- }, monthNames[month]);
2682
+ return currentView === 'date' && /*#__PURE__*/React.createElement("button", {
2683
+ className: "p-datepicker-month p-link",
2684
+ onClick: switchToMonthView,
2685
+ disabled: switchViewButtonDisabled()
2686
+ }, monthNames[currentMonth]);
2576
2687
  };
2577
2688
 
2578
- var createTitleYearElement = function createTitleYearElement(year) {
2689
+ var createTitleYearElement = function createTitleYearElement() {
2579
2690
  if (props.yearNavigator) {
2580
- var yearOptions = [];
2691
+ var _yearOptions2 = [];
2581
2692
  var years = props.yearRange.split(':');
2582
2693
  var yearStart = parseInt(years[0], 10);
2583
2694
  var yearEnd = parseInt(years[1], 10);
2584
2695
 
2585
2696
  for (var i = yearStart; i <= yearEnd; i++) {
2586
- yearOptions.push(i);
2697
+ _yearOptions2.push(i);
2587
2698
  }
2588
2699
 
2589
2700
  var viewDate = getViewDate();
2590
2701
  var viewYear = viewDate.getFullYear();
2591
- var displayedYearNames = yearOptions.filter(function (year) {
2702
+
2703
+ var displayedYearNames = _yearOptions2.filter(function (year) {
2592
2704
  return !(props.minDate && props.minDate.getFullYear() > year) && !(props.maxDate && props.maxDate.getFullYear() < year);
2593
2705
  });
2594
2706
 
@@ -2628,17 +2740,32 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
2628
2740
  return _content2;
2629
2741
  }
2630
2742
 
2631
- return /*#__PURE__*/React.createElement("span", {
2632
- className: "p-datepicker-year"
2633
- }, year);
2743
+ return currentView !== 'year' && /*#__PURE__*/React.createElement("button", {
2744
+ className: "p-datepicker-year p-link",
2745
+ onClick: switchToYearView,
2746
+ disabled: switchViewButtonDisabled()
2747
+ }, currentYear);
2748
+ };
2749
+
2750
+ var createTitleDecadeElement = function createTitleDecadeElement() {
2751
+ var years = yearPickerValues();
2752
+
2753
+ if (currentView === 'year') {
2754
+ return /*#__PURE__*/React.createElement("span", {
2755
+ className: "p-datepicker-decade"
2756
+ }, props.decadeTemplate ? props.decadeTemplate(years) : /*#__PURE__*/React.createElement("span", null, "".concat(yearPickerValues()[0], " - ").concat(yearPickerValues()[yearPickerValues().length - 1])));
2757
+ }
2758
+
2759
+ return null;
2634
2760
  };
2635
2761
 
2636
2762
  var createTitle = function createTitle(monthMetaData) {
2637
2763
  var month = createTitleMonthElement(monthMetaData.month);
2638
2764
  var year = createTitleYearElement(monthMetaData.year);
2765
+ var decade = createTitleDecadeElement();
2639
2766
  return /*#__PURE__*/React.createElement("div", {
2640
2767
  className: "p-datepicker-title"
2641
- }, month, year);
2768
+ }, month, year, decade);
2642
2769
  };
2643
2770
 
2644
2771
  var createDayNames = function createDayNames(weekDays) {
@@ -2716,7 +2843,7 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
2716
2843
  var createDateViewGrid = function createDateViewGrid(monthMetaData, weekDays, groupIndex) {
2717
2844
  var dayNames = createDayNames(weekDays);
2718
2845
  var dates = createDates(monthMetaData, groupIndex);
2719
- return /*#__PURE__*/React.createElement("div", {
2846
+ return currentView === 'date' && /*#__PURE__*/React.createElement("div", {
2720
2847
  className: "p-datepicker-calendar-container"
2721
2848
  }, /*#__PURE__*/React.createElement("table", {
2722
2849
  className: "p-datepicker-calendar"
@@ -2752,39 +2879,33 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
2752
2879
  return months;
2753
2880
  };
2754
2881
 
2755
- var createMonthViewMonth = function createMonthViewMonth(index) {
2756
- var className = classNames('p-monthpicker-month', {
2757
- 'p-highlight': isMonthSelected(index)
2758
- });
2882
+ var monthPickerValues = function monthPickerValues() {
2883
+ var monthPickerValues = [];
2759
2884
  var monthNamesShort = localeOption('monthNamesShort', props.locale);
2760
- var monthName = monthNamesShort[index];
2761
- return /*#__PURE__*/React.createElement("span", {
2762
- key: monthName,
2763
- className: className,
2764
- onClick: function onClick(event) {
2765
- return onMonthSelect(event, index);
2766
- },
2767
- onKeyDown: function onKeyDown(event) {
2768
- return onMonthCellKeydown(event, index);
2769
- }
2770
- }, monthName, /*#__PURE__*/React.createElement(Ripple, null));
2885
+
2886
+ for (var i = 0; i <= 11; i++) {
2887
+ monthPickerValues.push(monthNamesShort[i]);
2888
+ }
2889
+
2890
+ return monthPickerValues;
2771
2891
  };
2772
2892
 
2773
- var createMonthViewMonths = function createMonthViewMonths() {
2774
- var months = [];
2893
+ var yearPickerValues = function yearPickerValues() {
2894
+ var yearPickerValues = [];
2895
+ var base = currentYear - currentYear % 10;
2775
2896
 
2776
- for (var i = 0; i <= 11; i++) {
2777
- months.push(createMonthViewMonth(i));
2897
+ for (var i = 0; i < 10; i++) {
2898
+ yearPickerValues.push(base + i);
2778
2899
  }
2779
2900
 
2780
- return months;
2901
+ return yearPickerValues;
2781
2902
  };
2782
2903
 
2783
- var createMonthView = function createMonthView() {
2904
+ var createMonthYearView = function createMonthYearView() {
2784
2905
  var backwardNavigator = createBackwardNavigator(true);
2785
2906
  var forwardNavigator = createForwardNavigator(true);
2786
2907
  var yearElement = createTitleYearElement(getViewDate().getFullYear());
2787
- var months = createMonthViewMonths();
2908
+ var decade = createTitleDecadeElement();
2788
2909
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
2789
2910
  className: "p-datepicker-group-container"
2790
2911
  }, /*#__PURE__*/React.createElement("div", {
@@ -2793,17 +2914,15 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
2793
2914
  className: "p-datepicker-header"
2794
2915
  }, backwardNavigator, /*#__PURE__*/React.createElement("div", {
2795
2916
  className: "p-datepicker-title"
2796
- }, yearElement), forwardNavigator))), /*#__PURE__*/React.createElement("div", {
2797
- className: "p-monthpicker"
2798
- }, months));
2917
+ }, yearElement, decade), forwardNavigator))));
2799
2918
  };
2800
2919
 
2801
2920
  var createDatePicker = function createDatePicker() {
2802
2921
  if (!props.timeOnly) {
2803
2922
  if (props.view === 'date') {
2804
2923
  return createDateView();
2805
- } else if (props.view === 'month') {
2806
- return createMonthView();
2924
+ } else {
2925
+ return createMonthYearView();
2807
2926
  }
2808
2927
  }
2809
2928
 
@@ -2995,7 +3114,7 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
2995
3114
  };
2996
3115
 
2997
3116
  var createTimePicker = function createTimePicker() {
2998
- if (props.showTime || props.timeOnly) {
3117
+ if ((props.showTime || props.timeOnly) && currentView === 'date') {
2999
3118
  return /*#__PURE__*/React.createElement("div", {
3000
3119
  className: "p-timepicker"
3001
3120
  }, createHourPicker(), createSeparator(':'), createMinutePicker(), props.showSeconds && createSeparator(':'), createSecondPicker(), props.showMillisec && createSeparator('.'), createMiliSecondPicker(), props.hourFormat === '12' && createSeparator(':'), createAmPmPicker());
@@ -3104,6 +3223,46 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
3104
3223
  return null;
3105
3224
  };
3106
3225
 
3226
+ var createMonthPicker = function createMonthPicker() {
3227
+ if (currentView === 'month') {
3228
+ return /*#__PURE__*/React.createElement("div", {
3229
+ className: "p-monthpicker"
3230
+ }, monthPickerValues().map(function (m, i) {
3231
+ return /*#__PURE__*/React.createElement("span", {
3232
+ onClick: function onClick(event) {
3233
+ return onMonthSelect(event, i);
3234
+ },
3235
+ key: "month".concat(i + 1),
3236
+ className: classNames('p-monthpicker-month', {
3237
+ 'p-highlight': isMonthSelected(i)
3238
+ })
3239
+ }, m);
3240
+ }));
3241
+ }
3242
+
3243
+ return null;
3244
+ };
3245
+
3246
+ var createYearPicker = function createYearPicker() {
3247
+ if (currentView === 'year') {
3248
+ return /*#__PURE__*/React.createElement("div", {
3249
+ className: "p-yearpicker"
3250
+ }, yearPickerValues().map(function (y, i) {
3251
+ return /*#__PURE__*/React.createElement("span", {
3252
+ onClick: function onClick(event) {
3253
+ return onYearSelect(event, y);
3254
+ },
3255
+ key: "year".concat(i + 1),
3256
+ className: classNames('p-yearpicker-year', {
3257
+ 'p-highlight': isYearSelected(y)
3258
+ })
3259
+ }, y);
3260
+ }));
3261
+ }
3262
+
3263
+ return null;
3264
+ };
3265
+
3107
3266
  var otherProps = ObjectUtils.findDiffKeys(props, Calendar.defaultProps);
3108
3267
  var className = 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 || DomHandler.hasClass(inputRef.current, 'p-filled') && inputRef.current.value !== ''), _defineProperty(_classNames, 'p-inputwrapper-focus', focusedState), _classNames));
3109
3268
  var panelClassName = classNames('p-datepicker p-component', props.panelClassName, {
@@ -3111,7 +3270,7 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
3111
3270
  'p-disabled': props.disabled,
3112
3271
  'p-datepicker-timeonly': props.timeOnly,
3113
3272
  'p-datepicker-multiple-month': props.numberOfMonths > 1,
3114
- 'p-datepicker-monthpicker': props.view === 'month',
3273
+ 'p-datepicker-monthpicker': currentView === 'month',
3115
3274
  'p-datepicker-touch-ui': props.touchUI
3116
3275
  });
3117
3276
  var content = createContent();
@@ -3119,6 +3278,8 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
3119
3278
  var timePicker = createTimePicker();
3120
3279
  var buttonBar = createButtonBar();
3121
3280
  var footer = createFooter();
3281
+ var monthPicker = createMonthPicker();
3282
+ var yearPicker = createYearPicker();
3122
3283
  return /*#__PURE__*/React.createElement("span", _extends({
3123
3284
  ref: elementRef,
3124
3285
  id: props.id,
@@ -3138,7 +3299,7 @@ var Calendar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (
3138
3299
  onExit: onOverlayExit,
3139
3300
  onExited: onOverlayExited,
3140
3301
  transitionOptions: props.transitionOptions
3141
- }, datePicker, timePicker, buttonBar, footer));
3302
+ }, datePicker, timePicker, buttonBar, footer, monthPicker, yearPicker));
3142
3303
  }));
3143
3304
  Calendar.displayName = 'Calendar';
3144
3305
  Calendar.defaultProps = {
@@ -3207,6 +3368,7 @@ Calendar.defaultProps = {
3207
3368
  tooltipOptions: null,
3208
3369
  ariaLabelledBy: null,
3209
3370
  dateTemplate: null,
3371
+ decadeTemplate: null,
3210
3372
  headerTemplate: null,
3211
3373
  footerTemplate: null,
3212
3374
  monthNavigatorTemplate: null,
@@ -3222,7 +3384,8 @@ Calendar.defaultProps = {
3222
3384
  onTodayButtonClick: null,
3223
3385
  onClearButtonClick: null,
3224
3386
  onShow: null,
3225
- onHide: null
3387
+ onHide: null,
3388
+ onMonthChange: null
3226
3389
  };
3227
3390
 
3228
3391
  export { Calendar };