@nutui/nutui-react 2.7.9 → 2.7.11
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.
- package/CHANGELOG.md +23 -4
- package/dist/esm/Calendar/style/index.js +3 -1
- package/dist/esm/Calendar/style/style.css +1 -1
- package/dist/esm/Calendar.js +267 -10
- package/dist/esm/CalendarCard.js +1 -1
- package/dist/esm/CalendarItem.js +119 -42
- package/dist/esm/SearchBar/style/style.css +1 -1
- package/dist/esm/configprovider2.js +4 -0
- package/dist/esm/date.js +7 -80
- package/dist/esm/utils.js +125 -0
- package/dist/locales/base.d.ts +4 -0
- package/dist/locales/base.js +1 -1
- package/dist/locales/en-US.js +5 -1
- package/dist/locales/id-ID.js +5 -1
- package/dist/locales/tr-TR.js +5 -1
- package/dist/locales/zh-CN.js +5 -1
- package/dist/locales/zh-TW.js +5 -1
- package/dist/locales/zh-UG.js +5 -1
- package/dist/nutui.react.es.js +553 -114
- package/dist/nutui.react.umd.js +553 -114
- package/dist/packages/calendar/calendar.scss +24 -0
- package/dist/packages/calendar/calendarviewmode.scss +181 -0
- package/dist/packages/searchbar/searchbar.scss +2 -0
- package/dist/style.css +1 -1
- package/dist/styles/variables-jmapp.scss +4 -0
- package/dist/styles/variables.scss +4 -0
- package/dist/types/locales/base.d.ts +4 -0
- package/dist/types/packages/calendar/calendar.d.ts +4 -0
- package/dist/types/packages/calendar/calendar.taro.d.ts +4 -0
- package/dist/types/packages/calendar/calendarviewmodeitem.d.ts +20 -0
- package/dist/types/packages/calendar/calendarviewmodeitem.taro.d.ts +20 -0
- package/dist/types/packages/calendar/types.d.ts +27 -0
- package/dist/types/packages/calendar/utils.d.ts +40 -0
- package/dist/types/packages/calendaritem/calendaritem.d.ts +1 -0
- package/dist/types/packages/calendaritem/calendaritem.taro.d.ts +1 -0
- package/dist/types/packages/calendaritem/utils.d.ts +17 -0
- package/dist/types/packages/configprovider/types.d.ts +1 -1
- package/dist/types/packages/searchbar/searchbar.taro.d.ts +11 -5
- package/dist/types/utils/date.d.ts +0 -17
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,10 +1,29 @@
|
|
|
1
|
+
# v2.7.11
|
|
2
|
+
`2025-03-28`
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
* :bug: fix(searchbar): 支付宝小程序设置 enableInPageRenderInput 后无法触发 onChange (#3125)
|
|
6
|
+
* :bug: fix: build jmapp (#3124)
|
|
7
|
+
* :bug: fix(SearchBar): demos fixed (#3100)
|
|
8
|
+
* :bug: fix: add $calendar-panel-item
|
|
9
|
+
* 💡 test: fixed calenader (#3099)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
# v2.7.10
|
|
13
|
+
|
|
14
|
+
`2025-03-14`
|
|
15
|
+
|
|
16
|
+
- :sparkles: feat(calendar): add viewmode (#2985)
|
|
17
|
+
- :bug: fix(calendar): defaultvalue 为空时,渲染异常 (#3015)
|
|
18
|
+
- :bug: fix(tabs): 修复tabs数量过多时的滚动操作bug (#3014)
|
|
19
|
+
|
|
1
20
|
# v2.7.9
|
|
2
|
-
`2025-02-21`
|
|
3
21
|
|
|
4
|
-
|
|
5
|
-
* 🪵 refactor: use compatible systemInfo util API (#2995)
|
|
6
|
-
* 📖 docs(loading): 主题变量修正 (#3008)
|
|
22
|
+
`2025-02-21`
|
|
7
23
|
|
|
24
|
+
- :bug: fix(swiper): 设置横向轮播后,手势无法触发页面的滚动 (#3003)
|
|
25
|
+
- 🪵 refactor: use compatible systemInfo util API (#2995)
|
|
26
|
+
- 📖 docs(loading): 主题变量修正 (#3008)
|
|
8
27
|
|
|
9
28
|
# v2.7.8
|
|
10
29
|
|
|
@@ -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)}
|
package/dist/esm/Calendar.js
CHANGED
|
@@ -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
|
|
5
|
-
import { useConfig } from "./ConfigProvider.js";
|
|
4
|
+
import classNames from "classnames";
|
|
6
5
|
import { C as ComponentDefaults } from "./typings.js";
|
|
7
|
-
|
|
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:
|
|
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 {
|
package/dist/esm/CalendarCard.js
CHANGED
|
@@ -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 {
|
|
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 = () => {
|