@nutui/nutui-react 2.7.8 → 2.7.10

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 (41) hide show
  1. package/CHANGELOG.md +22 -6
  2. package/dist/esm/Calendar/style/index.js +3 -1
  3. package/dist/esm/Calendar/style/style.css +1 -1
  4. package/dist/esm/Calendar.js +267 -10
  5. package/dist/esm/CalendarCard.js +1 -1
  6. package/dist/esm/CalendarItem.js +119 -42
  7. package/dist/esm/ImagePreview/style/style.css +1 -1
  8. package/dist/esm/Swiper/style/style.css +1 -1
  9. package/dist/esm/Swiper.js +5 -6
  10. package/dist/esm/configprovider2.js +4 -0
  11. package/dist/esm/date.js +7 -80
  12. package/dist/esm/utils.js +125 -0
  13. package/dist/locales/base.d.ts +4 -0
  14. package/dist/locales/base.js +1 -1
  15. package/dist/locales/en-US.js +5 -1
  16. package/dist/locales/id-ID.js +5 -1
  17. package/dist/locales/tr-TR.js +5 -1
  18. package/dist/locales/zh-CN.js +5 -1
  19. package/dist/locales/zh-TW.js +5 -1
  20. package/dist/locales/zh-UG.js +5 -1
  21. package/dist/nutui.react.es.js +562 -120
  22. package/dist/nutui.react.umd.js +562 -120
  23. package/dist/packages/calendar/calendar.scss +24 -0
  24. package/dist/packages/calendar/calendarviewmode.scss +181 -0
  25. package/dist/packages/swiper/swiper.scss +11 -0
  26. package/dist/style.css +1 -1
  27. package/dist/styles/variables.scss +4 -0
  28. package/dist/types/locales/base.d.ts +4 -0
  29. package/dist/types/packages/calendar/calendar.d.ts +4 -0
  30. package/dist/types/packages/calendar/calendar.taro.d.ts +4 -0
  31. package/dist/types/packages/calendar/calendarviewmodeitem.d.ts +20 -0
  32. package/dist/types/packages/calendar/calendarviewmodeitem.taro.d.ts +20 -0
  33. package/dist/types/packages/calendar/types.d.ts +27 -0
  34. package/dist/types/packages/calendar/utils.d.ts +40 -0
  35. package/dist/types/packages/calendaritem/calendaritem.d.ts +1 -0
  36. package/dist/types/packages/calendaritem/calendaritem.taro.d.ts +1 -0
  37. package/dist/types/packages/calendaritem/utils.d.ts +17 -0
  38. package/dist/types/packages/configprovider/types.d.ts +1 -1
  39. package/dist/types/utils/date.d.ts +0 -17
  40. package/dist/types/utils/get-system-info.d.ts +19 -0
  41. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,12 +1,28 @@
1
- # v2.7.8
2
- `2025-02-14`
1
+ # v2.7.10
2
+ `2025-03-14`
3
+
4
+
5
+ * :sparkles: feat(calendar): add viewmode (#2985)
6
+ * :bug: fix(calendar): defaultvalue 为空时,渲染异常 (#3015)
7
+ * :bug: fix(tabs): 修复tabs数量过多时的滚动操作bug (#3014)
8
+
3
9
 
10
+ # v2.7.9
4
11
 
5
- * 📖 docs(configprovider): 优化文档中的主题配置描述 (#2959)
6
- * :bug: fix: next ci failed (#2970)
7
- * zap: perf: animate (#2969)
8
- * 🪵 refactor: calendar (#2983)
12
+ `2025-02-21`
13
+
14
+ - :bug: fix(swiper): 设置横向轮播后,手势无法触发页面的滚动 (#3003)
15
+ - 🪵 refactor: use compatible systemInfo util API (#2995)
16
+ - 📖 docs(loading): 主题变量修正 (#3008)
17
+
18
+ # v2.7.8
19
+
20
+ `2025-02-14`
9
21
 
22
+ - 📖 docs(configprovider): 优化文档中的主题配置描述 (#2959)
23
+ - :bug: fix: next ci failed (#2970)
24
+ - zap: perf: animate (#2969)
25
+ - 🪵 refactor: calendar (#2983)
10
26
 
11
27
  # v2.7.7
12
28
 
@@ -1,2 +1,4 @@
1
- import '../../Popup/style'
1
+ import '../../Popup/style'
2
+ import'../../../packages/calendar/calendarviewmode.scss';
3
+
2
4
  import '../../../packages/calendar/calendar.scss'
@@ -1 +1 @@
1
- .nut-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:var(--nutui-overlay-bg-color, var(--nutui-black-10, rgba(0, 0, 0, .7)));z-index:var(--nutui-overlay-zIndex, 1000)}.nut-overlay .wrapper .content{background-color:var(--nutui-overlay-content-bg-color, var(--nutui-gray-1, #ffffff));color:var(--nutui-overlay-content-color, var(--nutui-gray-7, #1a1a1a))}[dir=rtl] .nut-overlay,.nut-rtl .nut-overlay{left:auto;right:0}.nut-overflow-hidden{overflow:hidden!important}@keyframes nut-fade-in{0%{opacity:0}1%{opacity:0}to{opacity:1}}@keyframes nut-fade-out{0%{opacity:1}1%{opacity:1}to{opacity:0}}.nut-overlay-slide-enter-active,.nut-overlay-slide-appear-active{animation-fill-mode:both;animation-name:nut-fade-in;animation-duration:var(--nutui-overlay-animation-duration, .3s)}.nut-overlay-slide-exit-active{animation-fill-mode:both;animation-name:nut-fade-out;animation-duration:var(--nutui-overlay-animation-duration, .3s)}.nut-popup{position:fixed;min-height:26%;max-height:100%;overflow-y:auto;background-color:var(--nutui-overlay-content-bg-color, var(--nutui-gray-1, #ffffff));color:var(--nutui-gray-7, #1a1a1a);-webkit-overflow-scrolling:touch;font-size:var(--nutui-font-size-3, 14px)}.nut-popup-title{display:flex;align-items:center;justify-content:center;border-bottom:var(--nutui-popup-title-border-bottom, 0);padding:var(--nutui-popup-title-padding, 16px);position:relative}.nut-popup-title-left{position:absolute;left:var(--nutui-popup-title-padding, 16px)}.nut-popup-title-title{font-weight:var(--nutui-font-weight-bold, 500);font-size:var(--nutui-popup-title-font-size, var(--nutui-font-size-5, 18px))}.nut-popup-title-description{color:var(--nutui-gray-5, #8c8c8c);font-size:var(--nutui-popup-description-font-size, var(--nutui-font-size-1, 10px));font-weight:var(--nutui-font-weight, 400)}.nut-popup-title-right{position:absolute!important;z-index:1;cursor:pointer;width:var(--nutui-popup-icon-size, var(--nutui-font-size-5, 18px));height:var(--nutui-popup-icon-size, var(--nutui-font-size-5, 18px));display:flex;justify-content:center;align-items:center;top:var(--nutui-popup-title-padding, 16px);right:var(--nutui-popup-title-padding, 16px);color:var(--nutui-gray-5, #8c8c8c)}.nut-popup-title-right:active{opacity:.7}.nut-popup-title-right-top-left{top:var(--nutui-popup-title-padding, 16px);left:var(--nutui-popup-title-padding, 16px)}.nut-popup-title-right-bottom-left{bottom:var(--nutui-popup-title-padding, 16px);left:var(--nutui-popup-title-padding, 16px)}.nut-popup-title-right-bottom-right{right:var(--nutui-popup-title-padding, 16px);bottom:var(--nutui-popup-title-padding, 16px)}.nut-popup-center{top:50%;left:50%;min-height:10%;transform:translate(-50%,-50%)}.nut-popup-center.nut-popup-round{border-radius:var(--nutui-popup-border-radius, 24px)}.nut-popup-bottom,.nut-popup-top{max-height:83%}.nut-popup-bottom{bottom:0;left:0;width:100%}.nut-popup-bottom.nut-popup-round{border-radius:var(--nutui-popup-border-radius, 24px) var(--nutui-popup-border-radius, 24px) 0 0}.nut-popup-right{top:0;right:0}.nut-popup-right.nut-popup-round{border-radius:var(--nutui-popup-border-radius, 24px) 0 0 var(--nutui-popup-border-radius, 24px)}.nut-popup-left{top:0;left:0}.nut-popup-left.nut-popup-round{border-radius:0 var(--nutui-popup-border-radius, 24px) var(--nutui-popup-border-radius, 24px) 0}.nut-popup-top{top:0;left:0;width:100%}.nut-popup-top.nut-popup-round{border-radius:0 0 var(--nutui-popup-border-radius, 24px) var(--nutui-popup-border-radius, 24px)}@keyframes popup-scale-fade-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes popup-scale-fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}.nut-popup-slide-default-enter-active{animation-fill-mode:both;animation-name:popup-scale-fade-in;animation-duration:var(--nutui-popup-animation-duration, .3s)}.nut-popup-slide-default-exit-active{animation-fill-mode:both;animation-name:popup-scale-fade-out;animation-duration:var(--nutui-popup-animation-duration, .3s)}@keyframes popup-fade-in{0%{opacity:0}to{opacity:1}}@keyframes popup-fade-out{0%{opacity:1}to{opacity:0}}.nut-popup-slide-center-enter-active{animation-fill-mode:both;animation-name:popup-fade-in;animation-duration:var(--nutui-popup-animation-duration, .3s)}.nut-popup-slide-center-exit-active{animation-fill-mode:both;animation-name:popup-fade-out;animation-duration:var(--nutui-popup-animation-duration, .3s)}@keyframes popup-slide-top-enter{0%{transform:translate3d(0,-100%,0)}}@keyframes popup-slide-top-exit{to{transform:translate3d(0,-100%,0)}}.nut-popup-slide-top-enter-active,.nut-popup-slide-top-appear-active{transform:translateZ(0);animation-fill-mode:both;animation-name:popup-slide-top-enter;animation-duration:var(--nutui-popup-animation-duration, .3s)}.nut-popup-slide-top-exit-active{animation-fill-mode:both;animation-name:popup-slide-top-exit;animation-duration:var(--nutui-popup-animation-duration, .3s)}@keyframes popup-slide-right-enter{0%{transform:translate3d(100%,0,0)}}@keyframes popup-slide-right-exit{to{transform:translate3d(100%,0,0)}}.nut-popup-slide-right-enter-active,.nut-popup-slide-right-appear-active{transform:translateZ(0);animation-fill-mode:both;animation-name:popup-slide-right-enter;animation-duration:var(--nutui-popup-animation-duration, .3s)}.nut-popup-slide-right-exit{animation-fill-mode:both;animation-name:popup-slide-right-exit;animation-duration:var(--nutui-popup-animation-duration, .3s)}@keyframes popup-slide-bottom-enter{0%{transform:translate3d(0,100%,0)}}@keyframes slide-bottom-exit{to{transform:translate3d(0,100%,0)}}.nut-popup-slide-bottom-enter-active,.nut-popup-slide-bottom-appear-active{transform:translate(0);animation-fill-mode:both;animation-name:popup-slide-bottom-enter;animation-duration:var(--nutui-popup-animation-duration, .3s)}.nut-popup-slide-bottom-exit{animation-fill-mode:both;animation-name:slide-bottom-exit;animation-duration:var(--nutui-popup-animation-duration, .3s)}@keyframes popup-slide-left-enter{0%{transform:translate3d(-100%,0,0)}}@keyframes popup-slide-left-exit{to{transform:translate3d(-100%,0,0)}}.nut-popup-slide-left-enter-active,.nut-popup-slide-left-appear-active{transform:translate(0);animation-fill-mode:both;animation-name:popup-slide-left-enter;animation-duration:var(--nutui-popup-animation-duration, .3s)}.nut-popup-slide-left-exit-active,.nut-popup-slide-left-exit-done{animation-fill-mode:both;animation-name:popup-slide-left-exit;animation-duration:var(--nutui-popup-animation-duration, .3s)}.nut-popup-slide-default-exit-done.nut-popup,.nut-popup-slide-center-exit-done.nut-popup,.nut-popup-slide-left-exit-done.nut-popup,.nut-popup-slide-right-exit-done.nut-popup,.nut-popup-slide-top-exit-done.nut-popup,.nut-popup-slide-bottom-exit-done.nut-popup{display:none}.nut-popup .nut-overflow-hidden{overflow:hidden!important}[dir=rtl] .nut-popup-title-left,.nut-rtl .nut-popup-title-left{left:auto;right:var(--nutui-popup-title-padding, 16px)}[dir=rtl] .nut-popup-title-right,.nut-rtl .nut-popup-title-right{right:auto;left:var(--nutui-popup-title-padding, 16px)}[dir=rtl] .nut-popup-title-right-top-left,.nut-rtl .nut-popup-title-right-top-left,[dir=rtl] .nut-popup-title-right-bottom-left,.nut-rtl .nut-popup-title-right-bottom-left{left:auto;right:var(--nutui-popup-title-padding, 16px)}[dir=rtl] .nut-popup-title-right-bottom-right,.nut-rtl .nut-popup-title-right-bottom-right{right:auto;left:var(--nutui-popup-title-padding, 16px)}[dir=rtl] .nut-popup-title .nut-icon-ArrowLeft,.nut-rtl .nut-popup-title .nut-icon-ArrowLeft{transform:rotate(180deg)}[dir=rtl] .nut-popup-center,.nut-rtl .nut-popup-center{left:auto;right:50%;transform:translate(50%,-50%)}[dir=rtl] .nut-popup-bottom,.nut-rtl .nut-popup-bottom,[dir=rtl] .nut-popup-top,.nut-rtl .nut-popup-top{left:auto;right:0}.nut-calendar{position:relative;display:flex;flex-direction:column;flex:1;font-size:var(--nutui-calendar-base-font-size, var(--nutui-font-size-4, 16px));background-color:var(--nutui-gray-1, #ffffff);color:var(--nutui-gray-7, #1a1a1a);overflow:hidden;height:100%}.nut-calendar.nut-calendar-title .nut-calendar-header .calendar-title{font-size:var(--nutui-calendar-base-font-size, var(--nutui-font-size-4, 16px))}.nut-calendar .nut-calendar-taro{height:60vh}.nut-calendar .popup-box{height:100%}.nut-calendar ::-webkit-scrollbar{display:none}.nut-calendar-header{display:flex;flex-direction:column;text-align:center}.nut-calendar-title{color:var(--nutui-gray-7, #1a1a1a);font-size:var(--nutui-calendar-title-font-size, var(--nutui-font-size-5, 18px));font-weight:var(--nutui-calendar-title-font-weight, var(--nutui-font-weight-bold, 500));line-height:50px}.nut-calendar-sub-title{padding:7px 0;line-height:22px;font-size:var(--nutui-calendar-sub-title-font-size, var(--nutui-font-size-3, 14px))}.nut-calendar-header-buttons{height:var(--nutui-calendar-header-height, 24px)}.nut-calendar-weeks{display:flex;align-items:center;justify-content:space-around;height:36px;border-radius:0 0 12px 12px;box-shadow:0 4px 10px #0000000f}.nut-calendar-week-item:first-of-type,.nut-calendar-week-item:last-of-type{color:var(--nutui-color-primary, #fa2c19)}.nut-calendar-content{flex:1;width:100%;display:block;overflow-y:auto}.nut-calendar-pannel{position:relative;width:100%;height:auto;display:block;box-sizing:border-box}.nut-calendar-pannel .calendar-loading-tip{height:50px;line-height:50px;text-align:center;position:absolute;top:-50px;left:0;right:0;font-size:var(--nutui-font-size-2, 12px);color:var(--nutui-gray-6, #595959)}.nut-calendar-month{display:flex;flex-direction:column;text-align:center}.nut-calendar-month-title{height:23px;line-height:23px;margin:8px 0}.nut-calendar-days{overflow:hidden}.nut-calendar-day{display:flex;align-items:center;justify-content:center;flex-direction:column;position:relative;float:left;width:var(--nutui-calendar-day-width, 14.28%);height:var(--nutui-calendar-day-height, 60px);font-weight:var(--nutui-calendar-day-font-weight, var(--nutui-font-weight-bold, 500));margin-bottom:4px}.nut-calendar-day:nth-child(7n),.nut-calendar-day:nth-child(7n+1){color:var(--nutui-color-primary, #fa2c19)}.nut-calendar-day-info-curr,.nut-calendar-day-info{position:absolute;bottom:5px;width:100%;font-size:12px;line-height:14px}.nut-calendar-day-info-top{position:absolute;width:100%;top:5px}.nut-calendar-day-info-bottom{position:absolute;width:100%;bottom:5px}.nut-calendar-day-active{background-color:var(--nutui-calendar-active-background-color, var(--nutui-color-primary, #fa2c19));color:var(--nutui-color-primary-text, #ffffff)!important;border-radius:var(--nutui-calendar-day-active-border-radius, 4px)}.nut-calendar-day-active.active-start{border-radius:0;border-top-left-radius:var(--nutui-calendar-day-active-border-radius, 4px);border-bottom-left-radius:var(--nutui-calendar-day-active-border-radius, 4px)}.nut-calendar-day-active.active-end{border-radius:0;border-top-right-radius:var(--nutui-calendar-day-active-border-radius, 4px);border-bottom-right-radius:var(--nutui-calendar-day-active-border-radius, 4px)}.nut-calendar-day-active .nut-calendar-day-info{color:var(--nutui-color-primary-text, #ffffff)}.nut-calendar-day-disabled{color:var(--nutui-calendar-disable-color, var(--nutui-color-text-disabled, #bfbfbf))!important}.nut-calendar-day-disabled .nut-calendar-day-info-curr{display:none}.nut-calendar-day-choose{background-color:var(--nutui-calendar-choose-background-color, var(--nutui-color-primary-light, #ffeae8));color:var(--nutui-calendar-choose-color, var(--nutui-color-primary, #fa2c19))}.nut-calendar-day-choose-disabled{background-color:var(--nutui-calendar-choose-disable-background-color, rgba(191, 191, 191, .09));color:var(--nutui-calendar-disable-color, var(--nutui-color-text-disabled, #bfbfbf))!important}.nut-calendar-day-choose-disabled .nut-calendar-day-info-curr{display:none}.nut-calendar-footer{display:flex;width:100%;flex-direction:column;background-color:#fff}.nut-calendar-footer .calendar-confirm-btn{height:44px;margin:10px 18px;border-radius:22px;background:linear-gradient(135deg,var(--nutui-color-primary-stop-1, #f53d4d) 0%,var(--nutui-color-primary-stop-2, #fa2c19) 100%);color:var(--nutui-color-primary-text, #ffffff);text-align:center;line-height:44px}.nut-calendar-popup .nut-popup-title-right{top:7px!important}[dir=rtl] .nut-calendar-day,.nut-rtl .nut-calendar-day{float:right}[dir=rtl] .nut-calendar-day-active.active-start,.nut-rtl .nut-calendar-day-active.active-start{border-top-left-radius:0;border-top-right-radius:var(--nutui-calendar-day-active-border-radius, 4px);border-bottom-left-radius:0;border-bottom-right-radius:var(--nutui-calendar-day-active-border-radius, 4px)}[dir=rtl] .nut-calendar-day-active.active-end,.nut-rtl .nut-calendar-day-active.active-end{border-top-right-radius:0;border-top-left-radius:var(--nutui-calendar-day-active-border-radius, 4px);border-bottom-right-radius:0;border-bottom-left-radius:var(--nutui-calendar-day-active-border-radius, 4px)}
1
+ .nut-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:var(--nutui-overlay-bg-color, var(--nutui-black-10, rgba(0, 0, 0, .7)));z-index:var(--nutui-overlay-zIndex, 1000)}.nut-overlay .wrapper .content{background-color:var(--nutui-overlay-content-bg-color, var(--nutui-gray-1, #ffffff));color:var(--nutui-overlay-content-color, var(--nutui-gray-7, #1a1a1a))}[dir=rtl] .nut-overlay,.nut-rtl .nut-overlay{left:auto;right:0}.nut-overflow-hidden{overflow:hidden!important}@keyframes nut-fade-in{0%{opacity:0}1%{opacity:0}to{opacity:1}}@keyframes nut-fade-out{0%{opacity:1}1%{opacity:1}to{opacity:0}}.nut-overlay-slide-enter-active,.nut-overlay-slide-appear-active{animation-fill-mode:both;animation-name:nut-fade-in;animation-duration:var(--nutui-overlay-animation-duration, .3s)}.nut-overlay-slide-exit-active{animation-fill-mode:both;animation-name:nut-fade-out;animation-duration:var(--nutui-overlay-animation-duration, .3s)}.nut-popup{position:fixed;min-height:26%;max-height:100%;overflow-y:auto;background-color:var(--nutui-overlay-content-bg-color, var(--nutui-gray-1, #ffffff));color:var(--nutui-gray-7, #1a1a1a);-webkit-overflow-scrolling:touch;font-size:var(--nutui-font-size-3, 14px)}.nut-popup-title{display:flex;align-items:center;justify-content:center;border-bottom:var(--nutui-popup-title-border-bottom, 0);padding:var(--nutui-popup-title-padding, 16px);position:relative}.nut-popup-title-left{position:absolute;left:var(--nutui-popup-title-padding, 16px)}.nut-popup-title-title{font-weight:var(--nutui-font-weight-bold, 500);font-size:var(--nutui-popup-title-font-size, var(--nutui-font-size-5, 18px))}.nut-popup-title-description{color:var(--nutui-gray-5, #8c8c8c);font-size:var(--nutui-popup-description-font-size, var(--nutui-font-size-1, 10px));font-weight:var(--nutui-font-weight, 400)}.nut-popup-title-right{position:absolute!important;z-index:1;cursor:pointer;width:var(--nutui-popup-icon-size, var(--nutui-font-size-5, 18px));height:var(--nutui-popup-icon-size, var(--nutui-font-size-5, 18px));display:flex;justify-content:center;align-items:center;top:var(--nutui-popup-title-padding, 16px);right:var(--nutui-popup-title-padding, 16px);color:var(--nutui-gray-5, #8c8c8c)}.nut-popup-title-right:active{opacity:.7}.nut-popup-title-right-top-left{top:var(--nutui-popup-title-padding, 16px);left:var(--nutui-popup-title-padding, 16px)}.nut-popup-title-right-bottom-left{bottom:var(--nutui-popup-title-padding, 16px);left:var(--nutui-popup-title-padding, 16px)}.nut-popup-title-right-bottom-right{right:var(--nutui-popup-title-padding, 16px);bottom:var(--nutui-popup-title-padding, 16px)}.nut-popup-center{top:50%;left:50%;min-height:10%;transform:translate(-50%,-50%)}.nut-popup-center.nut-popup-round{border-radius:var(--nutui-popup-border-radius, 24px)}.nut-popup-bottom,.nut-popup-top{max-height:83%}.nut-popup-bottom{bottom:0;left:0;width:100%}.nut-popup-bottom.nut-popup-round{border-radius:var(--nutui-popup-border-radius, 24px) var(--nutui-popup-border-radius, 24px) 0 0}.nut-popup-right{top:0;right:0}.nut-popup-right.nut-popup-round{border-radius:var(--nutui-popup-border-radius, 24px) 0 0 var(--nutui-popup-border-radius, 24px)}.nut-popup-left{top:0;left:0}.nut-popup-left.nut-popup-round{border-radius:0 var(--nutui-popup-border-radius, 24px) var(--nutui-popup-border-radius, 24px) 0}.nut-popup-top{top:0;left:0;width:100%}.nut-popup-top.nut-popup-round{border-radius:0 0 var(--nutui-popup-border-radius, 24px) var(--nutui-popup-border-radius, 24px)}@keyframes popup-scale-fade-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes popup-scale-fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}.nut-popup-slide-default-enter-active{animation-fill-mode:both;animation-name:popup-scale-fade-in;animation-duration:var(--nutui-popup-animation-duration, .3s)}.nut-popup-slide-default-exit-active{animation-fill-mode:both;animation-name:popup-scale-fade-out;animation-duration:var(--nutui-popup-animation-duration, .3s)}@keyframes popup-fade-in{0%{opacity:0}to{opacity:1}}@keyframes popup-fade-out{0%{opacity:1}to{opacity:0}}.nut-popup-slide-center-enter-active{animation-fill-mode:both;animation-name:popup-fade-in;animation-duration:var(--nutui-popup-animation-duration, .3s)}.nut-popup-slide-center-exit-active{animation-fill-mode:both;animation-name:popup-fade-out;animation-duration:var(--nutui-popup-animation-duration, .3s)}@keyframes popup-slide-top-enter{0%{transform:translate3d(0,-100%,0)}}@keyframes popup-slide-top-exit{to{transform:translate3d(0,-100%,0)}}.nut-popup-slide-top-enter-active,.nut-popup-slide-top-appear-active{transform:translateZ(0);animation-fill-mode:both;animation-name:popup-slide-top-enter;animation-duration:var(--nutui-popup-animation-duration, .3s)}.nut-popup-slide-top-exit-active{animation-fill-mode:both;animation-name:popup-slide-top-exit;animation-duration:var(--nutui-popup-animation-duration, .3s)}@keyframes popup-slide-right-enter{0%{transform:translate3d(100%,0,0)}}@keyframes popup-slide-right-exit{to{transform:translate3d(100%,0,0)}}.nut-popup-slide-right-enter-active,.nut-popup-slide-right-appear-active{transform:translateZ(0);animation-fill-mode:both;animation-name:popup-slide-right-enter;animation-duration:var(--nutui-popup-animation-duration, .3s)}.nut-popup-slide-right-exit{animation-fill-mode:both;animation-name:popup-slide-right-exit;animation-duration:var(--nutui-popup-animation-duration, .3s)}@keyframes popup-slide-bottom-enter{0%{transform:translate3d(0,100%,0)}}@keyframes slide-bottom-exit{to{transform:translate3d(0,100%,0)}}.nut-popup-slide-bottom-enter-active,.nut-popup-slide-bottom-appear-active{transform:translate(0);animation-fill-mode:both;animation-name:popup-slide-bottom-enter;animation-duration:var(--nutui-popup-animation-duration, .3s)}.nut-popup-slide-bottom-exit{animation-fill-mode:both;animation-name:slide-bottom-exit;animation-duration:var(--nutui-popup-animation-duration, .3s)}@keyframes popup-slide-left-enter{0%{transform:translate3d(-100%,0,0)}}@keyframes popup-slide-left-exit{to{transform:translate3d(-100%,0,0)}}.nut-popup-slide-left-enter-active,.nut-popup-slide-left-appear-active{transform:translate(0);animation-fill-mode:both;animation-name:popup-slide-left-enter;animation-duration:var(--nutui-popup-animation-duration, .3s)}.nut-popup-slide-left-exit-active,.nut-popup-slide-left-exit-done{animation-fill-mode:both;animation-name:popup-slide-left-exit;animation-duration:var(--nutui-popup-animation-duration, .3s)}.nut-popup-slide-default-exit-done.nut-popup,.nut-popup-slide-center-exit-done.nut-popup,.nut-popup-slide-left-exit-done.nut-popup,.nut-popup-slide-right-exit-done.nut-popup,.nut-popup-slide-top-exit-done.nut-popup,.nut-popup-slide-bottom-exit-done.nut-popup{display:none}.nut-popup .nut-overflow-hidden{overflow:hidden!important}[dir=rtl] .nut-popup-title-left,.nut-rtl .nut-popup-title-left{left:auto;right:var(--nutui-popup-title-padding, 16px)}[dir=rtl] .nut-popup-title-right,.nut-rtl .nut-popup-title-right{right:auto;left:var(--nutui-popup-title-padding, 16px)}[dir=rtl] .nut-popup-title-right-top-left,.nut-rtl .nut-popup-title-right-top-left,[dir=rtl] .nut-popup-title-right-bottom-left,.nut-rtl .nut-popup-title-right-bottom-left{left:auto;right:var(--nutui-popup-title-padding, 16px)}[dir=rtl] .nut-popup-title-right-bottom-right,.nut-rtl .nut-popup-title-right-bottom-right{right:auto;left:var(--nutui-popup-title-padding, 16px)}[dir=rtl] .nut-popup-title .nut-icon-ArrowLeft,.nut-rtl .nut-popup-title .nut-icon-ArrowLeft{transform:rotate(180deg)}[dir=rtl] .nut-popup-center,.nut-rtl .nut-popup-center{left:auto;right:50%;transform:translate(50%,-50%)}[dir=rtl] .nut-popup-bottom,.nut-rtl .nut-popup-bottom,[dir=rtl] .nut-popup-top,.nut-rtl .nut-popup-top{left:auto;right:0}.nut-calendar-viewmode{position:relative;display:flex;flex-direction:column;flex:1;font-size:var(--nutui-calendar-base-font-size, var(--nutui-font-size-4, 16px));background-color:var(--nutui-gray-1, #ffffff);color:var(--nutui-gray-7, #1a1a1a);overflow:hidden;height:100%}.nut-calendar-viewmode.nut-calendar-title .nut-calendar-header .calendar-title{font-size:var(--nutui-calendar-base-font-size, var(--nutui-font-size-4, 16px))}.nut-calendar-viewmode .nut-calendar-taro{height:60vh}.nut-calendar-viewmode .popup-box{height:100%}.nut-calendar-viewmode ::-webkit-scrollbar{display:none}.nut-calendar-viewmode-header{display:flex;flex-direction:column;text-align:center}.nut-calendar-viewmode-title{color:var(--nutui-gray-7, #1a1a1a);font-size:var(--nutui-calendar-title-font-size, var(--nutui-font-size-5, 18px));font-weight:var(--nutui-calendar-title-font-weight, var(--nutui-font-weight-bold, 500));line-height:50px}.nut-calendar-viewmode-sub-title{padding:7px 0;line-height:22px;font-size:var(--nutui-calendar-sub-title-font-size, var(--nutui-font-size-3, 14px))}.nut-calendar-viewmode-content{flex:1;width:100%;display:block;overflow-y:auto}.nut-calendar-viewmode-pannel{position:relative;width:100%;height:auto;display:block;box-sizing:border-box}.nut-calendar-viewmode-pannel .calendar-loading-tip{height:50px;line-height:50px;text-align:center;position:absolute;top:-50px;left:0;right:0;font-size:var(--nutui-font-size-2, 12px);color:var(--nutui-gray-6, #595959)}.nut-calendar-viewmode-panel{display:flex;flex-direction:column;text-align:center}.nut-calendar-viewmode-panel-title{height:23px;line-height:23px;margin:8px 0}.nut-calendar-viewmode-item{display:flex;align-items:center;justify-content:center;flex-direction:column;position:relative;float:left;width:var(--nutui-calendar-panel-item-width, 24.85%);height:var(--nutui-calendar-day-height, 60px);font-weight:var(--nutui-calendar-day-font-weight, var(--nutui-font-weight-bold, 500));margin-bottom:4px}.nut-calendar-viewmode-item-info-curr,.nut-calendar-viewmode-item-info{position:absolute;bottom:5px;width:100%;font-size:var(--nutui-font-size-2, 12px);line-height:14px}.nut-calendar-viewmode-item.active{background-color:var(--nutui-calendar-active-background-color, var(--nutui-color-primary, #fa2c19));color:var(--nutui-color-primary-text, #ffffff)!important;border-radius:var(--nutui-calendar-day-active-border-radius, 4px)}.nut-calendar-viewmode-item.active .nut-calendar-day-info{color:var(--nutui-color-primary-text, #ffffff)}.nut-calendar-viewmode-item-prev,.nut-calendar-viewmode-item-next{color:var(--nutui-calendar-disable-color, var(--nutui-color-text-disabled, #bfbfbf))!important}.nut-calendar-viewmode-item-prev .nut-calendar-day-info-curr,.nut-calendar-viewmode-item-next .nut-calendar-day-info-curr{display:none}.nut-calendar-viewmode-footer{display:flex;width:100%;flex-direction:column;background-color:#fff}.nut-calendar-viewmode-footer .calendar-confirm-btn{height:44px;margin:10px 18px;border-radius:22px;background:linear-gradient(135deg,var(--nutui-color-primary-stop-1, #f53d4d) 0%,var(--nutui-color-primary-stop-2, #fa2c19) 100%);color:var(--nutui-color-primary-text, #ffffff);text-align:center;line-height:44px}.nut-calendar{position:relative;display:flex;flex-direction:column;flex:1;font-size:var(--nutui-calendar-base-font-size, var(--nutui-font-size-4, 16px));background-color:var(--nutui-gray-1, #ffffff);color:var(--nutui-gray-7, #1a1a1a);overflow:hidden;height:100%}.nut-calendar.nut-calendar-title .nut-calendar-header .calendar-title{font-size:var(--nutui-calendar-base-font-size, var(--nutui-font-size-4, 16px))}.nut-calendar .nut-calendar-taro{height:60vh}.nut-calendar .popup-box{height:100%}.nut-calendar ::-webkit-scrollbar{display:none}.nut-calendar-header{display:flex;flex-direction:column;text-align:center}.nut-calendar-title{color:var(--nutui-gray-7, #1a1a1a);font-size:var(--nutui-calendar-title-font-size, var(--nutui-font-size-5, 18px));font-weight:var(--nutui-calendar-title-font-weight, var(--nutui-font-weight-bold, 500));line-height:50px}.nut-calendar-sub-title{padding:7px 0;line-height:22px;font-size:var(--nutui-calendar-sub-title-font-size, var(--nutui-font-size-3, 14px))}.nut-calendar-header-buttons{height:var(--nutui-calendar-header-height, 24px)}.nut-calendar-weeks{display:flex;align-items:center;justify-content:space-around;height:36px;border-radius:0 0 12px 12px;box-shadow:0 4px 10px #0000000f}.nut-calendar-weeks-shrink{padding-left:17%}.nut-calendar-week-item:first-of-type,.nut-calendar-week-item:last-of-type{color:var(--nutui-color-primary, #fa2c19)}.nut-calendar-content{flex:1;width:100%;display:block;overflow-y:auto}.nut-calendar-pannel{position:relative;width:100%;height:auto;display:block;box-sizing:border-box}.nut-calendar-pannel .calendar-loading-tip{height:50px;line-height:50px;text-align:center;position:absolute;top:-50px;left:0;right:0;font-size:var(--nutui-font-size-2, 12px);color:var(--nutui-gray-6, #595959)}.nut-calendar-month{display:flex;flex-direction:column;text-align:center}.nut-calendar-month-title{height:23px;line-height:23px;margin:8px 0}.nut-calendar-weeknumber{width:35%}.nut-calendar-weeknumber-index{display:flex;align-items:center;justify-content:center;flex-direction:column;position:relative;height:var(--nutui-calendar-day-height, 60px);font-weight:var(--nutui-font-weight, 400);font-size:var(--nutui-font-size-3, 14px);margin-bottom:4px;color:var(--nutui-gray-5, #8c8c8c)}.nut-calendar-days{overflow:hidden}.nut-calendar-day{display:flex;align-items:center;justify-content:center;flex-direction:column;position:relative;float:left;width:var(--nutui-calendar-day-width, 14.28%);height:var(--nutui-calendar-day-height, 60px);font-weight:var(--nutui-calendar-day-font-weight, var(--nutui-font-weight-bold, 500));margin-bottom:4px}.nut-calendar-day:nth-child(7n),.nut-calendar-day:nth-child(7n+1){color:var(--nutui-color-primary, #fa2c19)}.nut-calendar-day-info-curr,.nut-calendar-day-info{position:absolute;bottom:5px;width:100%;font-size:12px;line-height:14px}.nut-calendar-day-info-top{position:absolute;width:100%;top:5px}.nut-calendar-day-info-bottom{position:absolute;width:100%;bottom:5px}.nut-calendar-day-active{background-color:var(--nutui-calendar-active-background-color, var(--nutui-color-primary, #fa2c19));color:var(--nutui-color-primary-text, #ffffff)!important;border-radius:var(--nutui-calendar-day-active-border-radius, 4px)}.nut-calendar-day-active.active-start{border-radius:0;border-top-left-radius:var(--nutui-calendar-day-active-border-radius, 4px);border-bottom-left-radius:var(--nutui-calendar-day-active-border-radius, 4px)}.nut-calendar-day-active.active-end{border-radius:0;border-top-right-radius:var(--nutui-calendar-day-active-border-radius, 4px);border-bottom-right-radius:var(--nutui-calendar-day-active-border-radius, 4px)}.nut-calendar-day-active .nut-calendar-day-info{color:var(--nutui-color-primary-text, #ffffff)}.nut-calendar-day-disabled{color:var(--nutui-calendar-disable-color, var(--nutui-color-text-disabled, #bfbfbf))!important}.nut-calendar-day-disabled .nut-calendar-day-info-curr{display:none}.nut-calendar-day-choose{background-color:var(--nutui-calendar-choose-background-color, var(--nutui-color-primary-light, #ffeae8));color:var(--nutui-calendar-choose-color, var(--nutui-color-primary, #fa2c19))}.nut-calendar-day-choose-disabled{background-color:var(--nutui-calendar-choose-disable-background-color, rgba(191, 191, 191, .09));color:var(--nutui-calendar-disable-color, var(--nutui-color-text-disabled, #bfbfbf))!important}.nut-calendar-day-choose-disabled .nut-calendar-day-info-curr{display:none}.nut-calendar .shrink{display:flex}.nut-calendar-footer{display:flex;width:100%;flex-direction:column;background-color:#fff}.nut-calendar-footer .calendar-confirm-btn{height:44px;margin:10px 18px;border-radius:22px;background:linear-gradient(135deg,var(--nutui-color-primary-stop-1, #f53d4d) 0%,var(--nutui-color-primary-stop-2, #fa2c19) 100%);color:var(--nutui-color-primary-text, #ffffff);text-align:center;line-height:44px}.nut-calendar-popup .nut-popup-title-right{top:7px!important}[dir=rtl] .nut-calendar-day,.nut-rtl .nut-calendar-day{float:right}[dir=rtl] .nut-calendar-day-active.active-start,.nut-rtl .nut-calendar-day-active.active-start{border-top-left-radius:0;border-top-right-radius:var(--nutui-calendar-day-active-border-radius, 4px);border-bottom-left-radius:0;border-bottom-right-radius:var(--nutui-calendar-day-active-border-radius, 4px)}[dir=rtl] .nut-calendar-day-active.active-end,.nut-rtl .nut-calendar-day-active.active-end{border-top-right-radius:0;border-top-left-radius:var(--nutui-calendar-day-active-border-radius, 4px);border-bottom-right-radius:0;border-bottom-left-radius:var(--nutui-calendar-day-active-border-radius, 4px)}
@@ -1,17 +1,277 @@
1
- import React__default, { useRef } from "react";
1
+ import React__default, { useState, useRef, useEffect } from "react";
2
2
  import Popup__default from "./Popup.js";
3
3
  import CalendarItem__default from "./CalendarItem.js";
4
- import { g as getDateString } from "./date.js";
5
- import { useConfig } from "./ConfigProvider.js";
4
+ import classNames from "classnames";
6
5
  import { C as ComponentDefaults } from "./typings.js";
7
- const defaultProps = Object.assign(Object.assign({}, ComponentDefaults), { type: "single", autoBackfill: false, popup: true, visible: false, title: "", defaultValue: "", startDate: getDateString(0), endDate: getDateString(365), showToday: true, startText: "", endText: "", confirmText: "", showTitle: true, showSubTitle: true, scrollAnimation: true, firstDayOfWeek: 0, disableDate: (date) => false, renderHeaderButtons: void 0, renderDay: void 0, renderDayTop: void 0, renderDayBottom: void 0, onClose: () => {
6
+ import { a as getDateString } from "./date.js";
7
+ import { r as requestAniFrame } from "./raf.js";
8
+ import { useConfig } from "./ConfigProvider.js";
9
+ import { u as usePropsValue } from "./use-props-value.js";
10
+ import { s as splitDate, g as getPreMonths, a as getMonths, b as getPreQuarters, c as getQuarters, d as getNextQuarters } from "./utils.js";
11
+ const YearMonthPanelHeight = 231;
12
+ const YearQuarterPanelHeight = 103;
13
+ const defaultProps$1 = Object.assign(Object.assign({}, ComponentDefaults), { type: "single", viewMode: "month", title: "", startDate: getDateString(0), endDate: getDateString(365), showToday: true, showTitle: true, scrollAnimation: true, renderDay: void 0, onItemClick: () => {
14
+ } });
15
+ const CalendarViewModeItem = React__default.forwardRef((props) => {
16
+ const { locale } = useConfig();
17
+ const { style, className, viewMode, title, value, defaultValue, startDate, endDate, showTitle, renderDay, onItemClick } = Object.assign(Object.assign({}, defaultProps$1), props);
18
+ const classPrefix = "nut-calendar-viewmode";
19
+ const [panelDate, setPanelDate] = useState({
20
+ months: [
21
+ {
22
+ year: (/* @__PURE__ */ new Date()).getFullYear(),
23
+ months: [],
24
+ cssHeight: 0,
25
+ scrollTop: 0,
26
+ currYear: false
27
+ }
28
+ ],
29
+ quarters: [
30
+ {
31
+ year: (/* @__PURE__ */ new Date()).getFullYear(),
32
+ quarters: [],
33
+ cssHeight: 0,
34
+ scrollTop: 0,
35
+ currYear: false
36
+ }
37
+ ]
38
+ });
39
+ const propStartDate = startDate || getDateString(0);
40
+ const propEndDate = endDate || getDateString(365);
41
+ const startDates = splitDate(propStartDate);
42
+ const endDates = splitDate(propEndDate);
43
+ const [innerValue, setInnerValue] = usePropsValue({
44
+ value,
45
+ defaultValue,
46
+ finalValue: [],
47
+ onChange: (val) => {
48
+ }
49
+ });
50
+ const monthsRef = useRef(null);
51
+ const monthsPanel = useRef(null);
52
+ const viewAreaRef = useRef(null);
53
+ const getMonthsPanel = () => {
54
+ return monthsPanel.current;
55
+ };
56
+ const getMonthsRef = () => {
57
+ return monthsRef.current;
58
+ };
59
+ const requestAniFrameFunc = (viewMode2) => {
60
+ switch (viewMode2) {
61
+ case "month":
62
+ {
63
+ const lastItem = panelDate.months[panelDate.months.length - 1];
64
+ const containerHeight = lastItem.cssHeight + lastItem.scrollTop;
65
+ const currentIndex = panelDate.months.findIndex((item) => item.currYear === true);
66
+ requestAniFrame(() => {
67
+ if (monthsRef && monthsPanel && viewAreaRef) {
68
+ getMonthsRef().clientHeight;
69
+ getMonthsPanel().style.height = `${containerHeight}px`;
70
+ getMonthsRef().scrollTop = panelDate.months[currentIndex].scrollTop;
71
+ }
72
+ });
73
+ }
74
+ break;
75
+ case "quarter":
76
+ {
77
+ const lastItem = panelDate.quarters[panelDate.quarters.length - 1];
78
+ const containerHeight = lastItem.cssHeight + lastItem.scrollTop;
79
+ const currentIndex = panelDate.quarters.findIndex((item) => item.currYear === true);
80
+ requestAniFrame(() => {
81
+ if (monthsRef && monthsPanel && viewAreaRef) {
82
+ getMonthsRef().clientHeight;
83
+ getMonthsPanel().style.height = `${containerHeight}px`;
84
+ getMonthsRef().scrollTop = panelDate.quarters[currentIndex].scrollTop;
85
+ }
86
+ });
87
+ }
88
+ break;
89
+ }
90
+ };
91
+ const isCurrYear = (year) => {
92
+ return innerValue.split("-")[0] === `${year}`;
93
+ };
94
+ const getMonthsData = () => {
95
+ const startYear = Number(startDates[0]);
96
+ const startMonth = Number(startDates[1]);
97
+ const endYear = Number(endDates[0]);
98
+ const endMonth = Number(endDates[1]);
99
+ const panelData = [];
100
+ const addPanelData = (year, months, scrollTop) => {
101
+ panelData.push({
102
+ year,
103
+ months,
104
+ scrollTop,
105
+ cssHeight: YearMonthPanelHeight,
106
+ currYear: isCurrYear(year)
107
+ });
108
+ };
109
+ if (startYear === endYear) {
110
+ addPanelData(startYear, [
111
+ ...getPreMonths("prev", startYear, startMonth),
112
+ ...getMonths("curr", startYear, startMonth, endMonth),
113
+ ...getMonths("next", endYear, endMonth + 1)
114
+ ], 0);
115
+ } else {
116
+ let scrollTop = panelData.length * YearMonthPanelHeight;
117
+ const startMonths = [
118
+ ...getPreMonths("prev", startYear, startMonth),
119
+ ...getMonths("curr", startYear, startMonth)
120
+ ];
121
+ addPanelData(startYear, startMonths, scrollTop);
122
+ for (let i = startYear + 1; i < endYear; i++) {
123
+ scrollTop = panelData.length * YearMonthPanelHeight;
124
+ const midMonths = [...getMonths("curr", i, 1)];
125
+ addPanelData(i, midMonths, scrollTop);
126
+ }
127
+ const lastMonths = [
128
+ ...getPreMonths("curr", endYear, endMonth + 1),
129
+ ...getMonths("next", endYear, endMonth + 1)
130
+ ];
131
+ scrollTop = panelData.length * YearMonthPanelHeight;
132
+ addPanelData(endYear, lastMonths, scrollTop);
133
+ }
134
+ return panelData;
135
+ };
136
+ const getQuartersData = () => {
137
+ const startYear = Number(startDates[0]);
138
+ const startMonth = Number(startDates[1]);
139
+ const endYear = Number(endDates[0]);
140
+ const endMonth = Number(endDates[1]);
141
+ const panelData = [];
142
+ const addPanelData = (year, quarters, scrollTop) => {
143
+ panelData.push({
144
+ year,
145
+ quarters,
146
+ scrollTop,
147
+ cssHeight: YearQuarterPanelHeight,
148
+ currYear: isCurrYear(year)
149
+ });
150
+ };
151
+ if (startYear === endYear) {
152
+ const quarters = [
153
+ ...getPreQuarters("prev", startYear, startMonth),
154
+ ...getQuarters("curr", startYear, startMonth, endMonth),
155
+ ...getNextQuarters("next", endYear, endMonth)
156
+ ];
157
+ addPanelData(startYear, quarters, 0);
158
+ } else {
159
+ let scrollTop = panelData.length * YearQuarterPanelHeight;
160
+ const startQuarters = [
161
+ ...getPreQuarters("prev", startYear, startMonth),
162
+ ...getQuarters("curr", startYear, startMonth)
163
+ ];
164
+ addPanelData(startYear, startQuarters, scrollTop);
165
+ for (let i = startYear + 1; i < endYear; i++) {
166
+ scrollTop = panelData.length * YearQuarterPanelHeight;
167
+ const midQuarters = [...getQuarters("curr", i, 1)];
168
+ addPanelData(i, midQuarters, scrollTop);
169
+ }
170
+ const lastQuarters = [
171
+ ...getQuarters("curr", endYear, 1, endMonth),
172
+ ...getNextQuarters("next", endYear, endMonth)
173
+ ];
174
+ scrollTop = panelData.length * YearQuarterPanelHeight;
175
+ addPanelData(endYear, lastQuarters, scrollTop);
176
+ }
177
+ return panelData;
178
+ };
179
+ const initData = () => {
180
+ const data = (
181
+ // eslint-disable-next-line no-nested-ternary
182
+ viewMode === "month" ? getMonthsData() : viewMode === "quarter" ? getQuartersData() : null
183
+ );
184
+ setPanelDate(Object.assign(Object.assign({}, panelDate), { [`${viewMode}s`]: data }));
185
+ };
186
+ useEffect(() => {
187
+ requestAniFrameFunc(viewMode);
188
+ }, [panelDate]);
189
+ useEffect(() => {
190
+ initData();
191
+ }, []);
192
+ const handleItemClick = (item) => {
193
+ if (item.type !== "curr")
194
+ return;
195
+ const val = viewMode === "month" ? item.yearAndMonth : item.yearAndQuarter;
196
+ setInnerValue(val);
197
+ onItemClick === null || onItemClick === void 0 ? void 0 : onItemClick(val);
198
+ };
199
+ const isDisable = (item) => {
200
+ return item.type === "prev" || item.type === "next";
201
+ };
202
+ const isActive = (item) => {
203
+ const val = viewMode === "month" ? item.yearAndMonth : item.yearAndQuarter;
204
+ return val === innerValue;
205
+ };
206
+ const getClasses = (item) => {
207
+ if (isDisable(item)) {
208
+ return ["disabled"];
209
+ }
210
+ const res = [];
211
+ if (item.type === "curr") {
212
+ if (isActive(item)) {
213
+ res.push("active");
214
+ }
215
+ }
216
+ return res;
217
+ };
218
+ const classes = classNames(classPrefix, className);
219
+ const renderHeader = () => {
220
+ return showTitle && React__default.createElement(
221
+ "div",
222
+ { className: classNames({
223
+ [`${classPrefix}-header`]: true
224
+ }) },
225
+ React__default.createElement("div", { className: `${classPrefix}-title` }, title)
226
+ );
227
+ };
228
+ const renderItem = (item, index) => {
229
+ const units = {
230
+ month: locale.calendaritem.month,
231
+ quarter: locale.calendaritem.quarter
232
+ };
233
+ return React__default.createElement(
234
+ "div",
235
+ { className: classNames(`${classPrefix}-item`, item.type, getClasses(item)), onClick: () => handleItemClick(item), key: index },
236
+ React__default.createElement("div", { className: `${classPrefix}-item-${item.type}` }, renderDay ? renderDay(item) : `${item[viewMode]}${units[viewMode]}`)
237
+ );
238
+ };
239
+ const renderPanel = () => {
240
+ return React__default.createElement(React__default.Fragment, null, panelDate[`${viewMode}s`].map((item, key) => React__default.createElement(
241
+ "div",
242
+ { className: `${classPrefix}-panel`, key },
243
+ React__default.createElement("div", { className: `${classPrefix}-panel-title` }, item.year),
244
+ React__default.createElement("div", { className: `${classPrefix}-content` }, item[`${viewMode}s`].map((item2, i) => renderItem(item2, i)))
245
+ )));
246
+ };
247
+ const renderContent = () => {
248
+ return React__default.createElement(
249
+ "div",
250
+ { className: `${classPrefix}-content`, ref: monthsRef },
251
+ React__default.createElement(
252
+ "div",
253
+ { className: `${classPrefix}-pannel`, ref: monthsPanel },
254
+ React__default.createElement("div", { ref: viewAreaRef }, renderPanel())
255
+ )
256
+ );
257
+ };
258
+ return React__default.createElement(
259
+ "div",
260
+ { className: classes, style },
261
+ renderHeader(),
262
+ renderContent()
263
+ );
264
+ });
265
+ CalendarViewModeItem.displayName = "NutCalendarViewModeItem";
266
+ const defaultProps = Object.assign(Object.assign({}, ComponentDefaults), { type: "single", viewMode: "day", autoBackfill: false, popup: true, visible: false, title: "", value: "", defaultValue: "", startDate: getDateString(0), endDate: getDateString(365), showToday: true, startText: "", endText: "", confirmText: "", showTitle: true, showSubTitle: true, showMonthNumber: false, scrollAnimation: true, firstDayOfWeek: 0, disableDate: (date) => false, renderHeaderButtons: void 0, renderDay: void 0, renderDayTop: void 0, renderDayBottom: void 0, onClose: () => {
8
267
  }, onConfirm: (param) => {
9
268
  }, onDayClick: (data) => {
269
+ }, onItemClick: () => {
10
270
  }, onPageChange: (param) => {
11
271
  } });
12
272
  const Calendar = React__default.forwardRef((props, ref) => {
13
273
  const { locale } = useConfig();
14
- const { style, className, children, popup, visible, type, autoBackfill, title, defaultValue, startDate, endDate, showToday, startText, endText, confirmText, showTitle, showSubTitle, scrollAnimation, firstDayOfWeek, closeIcon, disableDate, renderHeaderButtons, renderBottomButton, renderDay, renderDayTop, renderDayBottom, onClose, onConfirm, onDayClick, onPageChange } = Object.assign(Object.assign({}, defaultProps), props);
274
+ const { style, className, children, popup, visible, type, viewMode, autoBackfill, title, value, defaultValue, startDate, endDate, showToday, startText, endText, confirmText, showTitle, showSubTitle, showMonthNumber, scrollAnimation, firstDayOfWeek, closeIcon, disableDate, renderHeaderButtons, renderBottomButton, renderDay, renderDayTop, renderDayBottom, onClose, onConfirm, onDayClick, onItemClick, onPageChange } = Object.assign(Object.assign({}, defaultProps), props);
15
275
  const calendarRef = useRef(null);
16
276
  const close = () => {
17
277
  onClose && onClose();
@@ -23,9 +283,6 @@ const Calendar = React__default.forwardRef((props, ref) => {
23
283
  const closePopup = () => {
24
284
  close();
25
285
  };
26
- const select = (param) => {
27
- onDayClick && onDayClick(param);
28
- };
29
286
  const scrollToDate = (date) => {
30
287
  var _a;
31
288
  (_a = calendarRef.current) === null || _a === void 0 ? void 0 : _a.scrollToDate(date);
@@ -37,9 +294,9 @@ const Calendar = React__default.forwardRef((props, ref) => {
37
294
  scrollToDate
38
295
  }));
39
296
  const renderItem = () => {
40
- return React__default.createElement(CalendarItem__default, { ref: calendarRef, style, className, children, type, autoBackfill, renderBottomButton, popup, title: title || locale.calendaritem.title, defaultValue, startDate, endDate, showToday, startText: startText || locale.calendaritem.start, endText: endText || locale.calendaritem.end, confirmText: confirmText || locale.calendaritem.confirm, showTitle, showSubTitle, scrollAnimation, firstDayOfWeek, disableDate, renderHeaderButtons, renderDay, renderDayTop, renderDayBottom, onConfirm: choose, onDayClick: select, onPageChange: yearMonthChange });
297
+ return React__default.createElement(React__default.Fragment, null, viewMode !== "day" ? React__default.createElement(CalendarViewModeItem, { ref: calendarRef, style, className, type, viewMode, title: title || locale.calendaritem.title, value, defaultValue, startDate, endDate, showTitle, scrollAnimation, renderDay, onItemClick }) : React__default.createElement(CalendarItem__default, { ref: calendarRef, style, className, children, type, autoBackfill, renderBottomButton, popup, title: title || locale.calendaritem.title, defaultValue, startDate, endDate, showToday, startText: startText || locale.calendaritem.start, endText: endText || locale.calendaritem.end, confirmText: confirmText || locale.calendaritem.confirm, showTitle, showSubTitle, showMonthNumber, scrollAnimation, firstDayOfWeek, disableDate, renderHeaderButtons, renderDay, renderDayTop, renderDayBottom, onConfirm: choose, onDayClick: (param) => onDayClick && onDayClick(param), onPageChange: yearMonthChange }));
41
298
  };
42
- return React__default.createElement(React__default.Fragment, null, popup ? React__default.createElement(Popup__default, { className: "nut-calendar-popup", visible, position: "bottom", round: true, closeable: true, closeIcon, destroyOnClose: true, onOverlayClick: closePopup, onCloseIconClick: closePopup, style: { height: "83%" } }, renderItem()) : renderItem());
299
+ return React__default.createElement(React__default.Fragment, null, popup && viewMode === "day" ? React__default.createElement(Popup__default, { className: "nut-calendar-popup", visible, position: "bottom", round: true, closeable: true, closeIcon, destroyOnClose: true, onOverlayClick: closePopup, onCloseIconClick: closePopup, style: { height: "83%" } }, renderItem()) : renderItem());
43
300
  });
44
301
  Calendar.displayName = "NutCalendar";
45
302
  export {
@@ -1,7 +1,7 @@
1
1
  import React__default, { useState, useEffect } from "react";
2
2
  import classNames from "classnames";
3
3
  import { C as ComponentDefaults } from "./typings.js";
4
- import { m as getMonthPreDay, f as getMonthDays } from "./date.js";
4
+ import { c as getMonthPreDay, b as getMonthDays } from "./date.js";
5
5
  import { useConfig } from "./ConfigProvider.js";
6
6
  import { u as usePropsValue } from "./use-props-value.js";
7
7
  const ArrowLeft = () => {