@tarojs/components-react 4.1.12-beta.64 → 4.1.12-beta.67

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 (27) hide show
  1. package/dist/components/picker/picker-group-slider.js +1 -1
  2. package/dist/components/picker/picker-group-slider.js.map +1 -1
  3. package/dist/components/picker-view/index.js +265 -0
  4. package/dist/components/picker-view/index.js.map +1 -0
  5. package/dist/components/picker-view/style/index.scss.js +4 -0
  6. package/dist/components/picker-view/style/index.scss.js.map +1 -0
  7. package/dist/components/picker-view-column/index.js +517 -0
  8. package/dist/components/picker-view-column/index.js.map +1 -0
  9. package/dist/index.css +1 -1
  10. package/dist/index.js +3 -1
  11. package/dist/index.js.map +1 -1
  12. package/dist/original/components/picker/picker-group-slider.js +1 -1
  13. package/dist/original/components/picker/picker-group-slider.js.map +1 -1
  14. package/dist/original/components/picker-view/index.js +265 -0
  15. package/dist/original/components/picker-view/index.js.map +1 -0
  16. package/dist/original/components/picker-view/style/index.scss +132 -0
  17. package/dist/original/components/picker-view-column/index.js +517 -0
  18. package/dist/original/components/picker-view-column/index.js.map +1 -0
  19. package/dist/original/index.js +3 -1
  20. package/dist/original/index.js.map +1 -1
  21. package/dist/original/utils/picker-scale.js +25 -0
  22. package/dist/original/utils/picker-scale.js.map +1 -0
  23. package/dist/solid/components/picker/picker-group-slider.js +1 -1
  24. package/dist/solid/components/picker/picker-group-slider.js.map +1 -1
  25. package/dist/utils/picker-scale.js +25 -0
  26. package/dist/utils/picker-scale.js.map +1 -0
  27. package/package.json +6 -6
package/dist/index.css CHANGED
@@ -1 +1 @@
1
- @-webkit-keyframes weuiLoading{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes weuiLoading{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.taro-button-core.taro-btn-loading .weui-loading{animation:weuiLoading 1s steps(12) infinite;background:transparent url(https://img13.360buyimg.com/imagetools/jfs/t1/353674/27/5761/14397/690ac1cfFf6bf0e2c/77727d0791bacf8e.png) no-repeat;background-size:cover;display:inline-block;height:22px;width:22px}.taro-button-core.taro-btn-loading .weui-loading.weui-btn_primary,.taro-button-core.taro-btn-loading .weui-loading.weui-btn_warn{color:hsla(0,0%,100%,.6)}.taro-button-core.taro-btn-loading .weui-loading.weui-btn_primary{background-color:#179b16}.taro-button-core.taro-btn-loading .weui-loading.weui-btn_warn{background-color:#ce3c39}.taro-button-core.taro-btn-loading.taro-btn-mini .weui-loading{display:inline-block;height:16px;vertical-align:middle;width:16px}.taro-button-core{-webkit-tap-highlight-color:rgba(0,0,0,0);align-items:center;appearance:none;background-color:#f8f8f8;border:1px solid rgba(0,0,0,.2);border-radius:10px;box-sizing:border-box;color:#000;display:flex;font-size:18px;justify-content:center;outline:0;overflow:hidden;padding:0 14px;position:relative;text-decoration:none;width:100%}.taro-button-core:focus{outline:0}.taro-button-core:not(.taro-btn-disabled):active{background-color:#dedede;color:rgba(0,0,0,.6)}.taro-button-core+.taro-button-core{margin-top:15px}.taro-button-core.taro-btn-default{background-color:#f8f8f8;color:#000}.taro-button-core.taro-btn-default:not(.taro-btn-disabled):visited{color:#000}.taro-button-core.taro-btn-default:not(.taro-btn-disabled):active{background-color:#dedede;color:rgba(0,0,0,.6)}.taro-button-core.taro-btn-mini{display:inline-block;font-size:13px;padding:0 26px;vertical-align:middle;width:auto}.taro-button-core.taro-btn-plain,.taro-button-core.taro-btn-plain.taro-btn-default,.taro-button-core.taro-btn-plain.taro-btn-primary,.taro-button-core.taro-btn-plain.taro-btn-warn{background-color:transparent;border-width:1px}.taro-button-core.taro-btn-disabled{color:hsla(0,0%,100%,.6)}.taro-button-core.taro-btn-disabled.taro-btn-default{background-color:#f7f7f7;color:rgba(0,0,0,.3)}.taro-button-core.taro-btn-disabled.taro-btn-primary{background-color:#9ed99d}.taro-button-core.taro-btn-disabled.taro-btn-warn{background-color:#ec8b89}.taro-button-core.taro-btn-loading.taro-btn-primary,.taro-button-core.taro-btn-loading.taro-btn-warn{color:hsla(0,0%,100%,.6)}.taro-button-core.taro-btn-loading.taro-btn-primary{background-color:#179b16}.taro-button-core.taro-btn-loading.taro-btn-warn{background-color:#ce3c39}.taro-button-core.taro-btn-plain.taro-btn-primary{border:1px solid #1aad19;color:#1aad19}.taro-button-core.taro-btn-plain.taro-btn-primary:not(.taro-btn-disabled):active{background-color:transparent;border-color:rgba(26,173,25,.6);color:rgba(26,173,25,.6)}.taro-button-core.taro-btn-plain.taro-btn-primary:after{border-width:0}.taro-button-core.taro-btn-plain.taro-btn-warn{border:1px solid #e64340;color:#e64340}.taro-button-core.taro-btn-plain.taro-btn-warn:not(.taro-btn-disabled):active{background-color:transparent;border-color:rgba(230,67,64,.6);color:rgba(230,67,64,.6)}.taro-button-core.taro-btn-plain.taro-btn-warn:after{border-width:0}.taro-button-core.taro-btn-plain,.taro-button-core.taro-btn-plain.taro-btn-default{border:1px solid #353535;color:#353535}.taro-button-core.taro-btn-plain.taro-btn-default:not(.taro-btn-disabled):active,.taro-button-core.taro-btn-plain:not(.taro-btn-disabled):active{background-color:transparent;border-color:rgba(53,53,53,.6);color:rgba(53,53,53,.6)}.taro-button-core.taro-btn-plain.taro-btn-default:after,.taro-button-core.taro-btn-plain:after{border-width:0}.taro-button-core.taro-btn-primary{background-color:#1aad19;color:#fff}.taro-button-core.taro-btn-primary:not(.taro-btn-disabled):visited{color:#fff}.taro-button-core.taro-btn-primary:not(.taro-btn-disabled):active{background-color:#179b16;color:hsla(0,0%,100%,.6)}.taro-button-core.taro-btn-warn{background-color:#e64340;color:#fff}.taro-button-core.taro-btn-warn:not(.taro-btn-disabled):visited{color:#fff}.taro-button-core.taro-btn-warn:not(.taro-btn-disabled):active{background-color:#ce3c39;color:hsla(0,0%,100%,.6)}.taro-button-core.taro-btn-plain.taro-btn-disabled.taro-btn-default,.taro-button-core.taro-btn-plain.taro-btn-disabled.taro-btn-primary,.taro-button-core.taro-btn-plain.taro-btn-disabled.taro-btn-warn{background-color:#f7f7f7;border:1px solid rgba(0,0,0,.2);color:rgba(0,0,0,.3)}.weui-icon-circle:before{content:"\ea01"}.weui-icon-download:before{content:"\ea02"}.weui-icon-info:before{content:"\ea03"}.weui-icon-safe-success:before{content:"\ea04"}.weui-icon-safe-warn:before{content:"\ea05"}.weui-icon-success:before{content:"\ea06"}.weui-icon-success-circle:before{content:"\ea07"}.weui-icon-success-no-circle:before{content:"\ea08"}.weui-icon-waiting:before{content:"\ea09"}.weui-icon-waiting-circle:before{content:"\ea0a"}.weui-icon-warn:before{content:"\ea0b"}.weui-icon-info-circle:before{content:"\ea0c"}.weui-icon-cancel:before{content:"\ea0d"}.weui-icon-search:before{content:"\ea0e"}.weui-icon-clear:before{content:"\ea0f"}.weui-icon-back:before{content:"\ea10"}.weui-icon-delete:before{content:"\ea11"}.weui-icon-success{color:#09bb07;font-size:23px}.weui-icon-waiting{color:#10aeff;font-size:23px}.weui-icon-warn{color:#f43530;font-size:23px}.weui-icon-info{color:#10aeff;font-size:23px}.weui-icon-success-circle,.weui-icon-success-no-circle{color:#09bb07;font-size:23px}.weui-icon-waiting-circle{color:#10aeff;font-size:23px}.weui-icon-circle{color:#c9c9c9;font-size:23px}.weui-icon-download,.weui-icon-info-circle{color:#09bb07;font-size:23px}.weui-icon-safe-success{color:#09bb07}.weui-icon-safe-warn{color:#ffbe00}.weui-icon-cancel{color:#f43530;font-size:22px}.weui-icon-clear,.weui-icon-search{color:#b2b2b2;font-size:14px}.weui-icon-delete.weui-icon_gallery-delete{color:#fff;font-size:22px}.weui-icon_msg{font-size:93px}.weui-icon_msg.weui-icon-warn{color:#f76260}.weui-icon_msg-primary{font-size:93px}.weui-icon_msg-primary.weui-icon-warn{color:#ffbe00}img[src=""]{opacity:0}.taro-img{display:inline-block;font-size:0;overflow:hidden;position:relative}.taro-img--with-default-host-size{height:240px;width:320px}.taro-img.taro-img__widthfix,.taro-img__mode-heightfix{height:100%}.taro-img__mode-scaletofill{height:100%;width:100%}.taro-img__mode-aspectfit{height:100%;object-fit:contain;width:100%}.taro-img__mode-aspectfill{height:100%;object-fit:cover;width:100%}.taro-img__mode-widthfix{width:100%}.taro-img__mode-bottom,.taro-img__mode-top{left:50%;position:absolute;transform:translate(-50%)}.taro-img__mode-bottom{bottom:0}.taro-img__mode-center{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.taro-img__mode-left,.taro-img__mode-right{position:absolute;top:50%;transform:translateY(-50%)}.taro-img__mode-right{right:0}.taro-img__mode-topright{position:absolute;right:0}.taro-img__mode-bottomleft{bottom:0;position:absolute}.taro-img__mode-bottomright{bottom:0;position:absolute;right:0}.taro-input-core{display:block}.weui-input{-webkit-appearance:none;background-color:transparent;border:0;color:inherit;font-size:inherit;height:1.4705882353em;line-height:1.4705882353;outline:0;width:100%}.weui-input::-webkit-inner-spin-button,.weui-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.taro-picker__overlay{position:fixed;z-index:1000}.taro-picker__mask-overlay,.taro-picker__overlay{bottom:0;height:100%;left:0;right:0;top:0;width:100%}.taro-picker__mask-overlay{position:absolute;z-index:1001}.taro-picker__overlay.taro-picker__overlay--theme-light .taro-picker__mask-overlay{background-color:rgba(0,0,0,.6)}.taro-picker__overlay.taro-picker__overlay--theme-dark .taro-picker__mask-overlay{background-color:hsla(0,0%,8%,.7)}.taro-picker{bottom:0;font-size:14px;left:0;position:absolute;width:100%;z-index:1002}.taro-picker__hd{align-items:center;display:flex;font-size:17px;height:44px;justify-content:space-between;padding:0;position:relative}.taro-picker__hd:after{bottom:0;content:"";height:1px;left:0;position:absolute;transform:scaleY(.5);width:100%}.taro-picker__action{flex:0 0 auto;font-size:14px;height:44px;line-height:44px;padding:0 10px}.taro-picker__title{font-size:16px;font-weight:500;left:50%;max-width:40%;overflow:hidden;position:absolute;text-overflow:ellipsis;top:50%;transform:translate(-50%,-50%);white-space:nowrap}.taro-picker__bd{box-sizing:border-box;display:flex;flex:1;height:238px;overflow:hidden;width:100%}.taro-picker-theme-light{background-color:#e5e5e5}.taro-picker-theme-light .taro-picker__hd{background-color:#fff}.taro-picker-theme-light .taro-picker__hd:after{background-color:#e5e5e5}.taro-picker-theme-light .taro-picker__action{color:#ff0f23}.taro-picker-theme-light .taro-picker__action:first-child{color:#888}.taro-picker-theme-light .taro-picker__title{color:#000}.taro-picker-theme-light .taro-picker__bd{background-color:#fff}.taro-picker-theme-light .taro-picker__indicator{border-bottom:1px solid #e5e5e5;border-top:1px solid #e5e5e5}.taro-picker-theme-light .taro-picker__mask{background:linear-gradient(180deg,hsla(0,0%,100%,.95),hsla(0,0%,100%,.6) 40%,hsla(0,0%,100%,0) 45%,hsla(0,0%,100%,0) 55%,hsla(0,0%,100%,.6) 60%,hsla(0,0%,100%,.95))}.taro-picker-theme-light .taro-picker__item{color:#000}.taro-picker-theme-light .taro-picker__item--selected{color:#ff0f23}.taro-picker-theme-light .taro-picker__item--disabled{color:#999}.taro-picker-theme-dark{background-color:hsla(0,0%,100%,.06)}.taro-picker-theme-dark .taro-picker__hd{background-color:#1f1f1f}.taro-picker-theme-dark .taro-picker__hd:after{background-color:hsla(0,0%,100%,.06)}.taro-picker-theme-dark .taro-picker__action{color:#ff0f23}.taro-picker-theme-dark .taro-picker__action:first-child{color:#818181}.taro-picker-theme-dark .taro-picker__title{color:#e6e6e6}.taro-picker-theme-dark .taro-picker__bd{background-color:#1f1f1f}.taro-picker-theme-dark .taro-picker__indicator{border-bottom:1px solid hsla(0,0%,100%,.06);border-top:1px solid hsla(0,0%,100%,.06)}.taro-picker-theme-dark .taro-picker__mask{background:linear-gradient(180deg,rgba(31,31,31,.95),rgba(31,31,31,.6) 40%,rgba(31,31,31,0) 45%,rgba(31,31,31,0) 55%,rgba(31,31,31,.6) 60%,rgba(31,31,31,.95))}.taro-picker-theme-dark .taro-picker__item{color:#e6e6e6}.taro-picker-theme-dark .taro-picker__item--selected{color:#ff0f23}.taro-picker-theme-dark .taro-picker__item--disabled{color:#999}.taro-picker__group{align-items:center;box-sizing:border-box;display:flex;flex:1;height:100%;justify-content:center;min-width:0;position:relative}.taro-picker__group--date .taro-picker__columns{display:flex;height:100%;width:100%}.taro-picker__mask{height:100%;top:0;z-index:1}.taro-picker__indicator,.taro-picker__mask{left:0;pointer-events:none;position:absolute;width:100%}.taro-picker__indicator{box-sizing:border-box;height:34px;top:50%;transform:translateY(-50%);z-index:1002}.taro-picker__content{box-sizing:border-box;height:100%;width:100%}.taro-picker__item{align-items:center;box-sizing:border-box;display:flex;font-size:16px;height:34px;justify-content:center;line-height:34px;overflow:hidden;padding:0 8px;text-align:center;text-overflow:ellipsis;white-space:nowrap;width:100%}.taro-picker__item--selected{font-weight:500}.taro-picker__column{flex:1;margin:0 8px}.taro-picker__column:first-child{margin-left:0}.taro-picker__column:last-child{margin-right:0}.taro-picker__item--custom{align-items:center;color:#888;display:flex;font-weight:400;justify-content:center;text-align:center}@keyframes taro-picker__slide-up{0%{transform:translate3d(0,100%,0)}to{transform:translateZ(0)}}@keyframes taro-picker__slide-down{0%{transform:translateZ(0)}to{transform:translate3d(0,100%,0)}}@keyframes taro-picker__fade-in{0%{opacity:0}to{opacity:1}}@keyframes taro-picker__fade-out{0%{opacity:1}to{opacity:0}}.rmc-pull-to-refresh-content{transform-origin:left top 0}.rmc-pull-to-refresh-content-wrapper{min-height:100%}.rmc-pull-to-refresh-transition{transition:transform .3s}@keyframes rmc-pull-to-refresh-indicator{50%{opacity:.2}to{opacity:1}}.rmc-pull-to-refresh-indicator{height:30px;line-height:10px;text-align:center}.rmc-pull-to-refresh-indicator>div{animation-fill-mode:both;animation:rmc-pull-to-refresh-indicator .5s linear 0s infinite;background-color:grey;border-radius:100%;display:inline-block;height:6px;margin:3px;width:6px}.rmc-pull-to-refresh-indicator>div:nth-child(0){animation-delay:-.1s!important}.rmc-pull-to-refresh-indicator>div:first-child{animation-delay:-.2s!important}.rmc-pull-to-refresh-indicator>div:nth-child(2){animation-delay:-.3s!important}.rmc-pull-to-refresh-down .rmc-pull-to-refresh-indicator{margin-top:-25px}.taro-scroll{-webkit-overflow-scrolling:auto}.taro-scroll--hidebar::-webkit-scrollbar{display:none}.taro-scroll-view{overflow:hidden}.taro-scroll-view__scroll-x{overflow-x:scroll;overflow-y:hidden}.taro-scroll-view__scroll-y{overflow-x:hidden;overflow-y:scroll}.swiper-container-wrapper{height:150px}.swiper-container{height:100%;overflow:visible;position:relative}.taro-switch{cursor:pointer;display:inline-block;position:relative}.taro-switch--disabled{cursor:not-allowed;opacity:.5}.taro-switch--type-switch{border:1px solid #dfdfdf;box-sizing:border-box}.taro-switch--type-switch .taro-switch__thumb{background-color:#fff;border-radius:50%;box-shadow:0 1px 3px rgba(0,0,0,.4);left:1px;position:absolute;top:1px}.taro-switch--type-checkbox{border:1px solid #c9c9c9;box-sizing:border-box}.taro-switch--type-checkbox .taro-switch__checkmark{left:50%;position:absolute;top:50%}.taro-text{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.taro-text__selectable{-moz-user-select:text;-webkit-user-select:text;-ms-user-select:text;user-select:text}
1
+ @-webkit-keyframes weuiLoading{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes weuiLoading{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.taro-button-core.taro-btn-loading .weui-loading{animation:weuiLoading 1s steps(12) infinite;background:transparent url(https://img13.360buyimg.com/imagetools/jfs/t1/353674/27/5761/14397/690ac1cfFf6bf0e2c/77727d0791bacf8e.png) no-repeat;background-size:cover;display:inline-block;height:22px;width:22px}.taro-button-core.taro-btn-loading .weui-loading.weui-btn_primary,.taro-button-core.taro-btn-loading .weui-loading.weui-btn_warn{color:hsla(0,0%,100%,.6)}.taro-button-core.taro-btn-loading .weui-loading.weui-btn_primary{background-color:#179b16}.taro-button-core.taro-btn-loading .weui-loading.weui-btn_warn{background-color:#ce3c39}.taro-button-core.taro-btn-loading.taro-btn-mini .weui-loading{display:inline-block;height:16px;vertical-align:middle;width:16px}.taro-button-core{-webkit-tap-highlight-color:rgba(0,0,0,0);align-items:center;appearance:none;background-color:#f8f8f8;border:1px solid rgba(0,0,0,.2);border-radius:10px;box-sizing:border-box;color:#000;display:flex;font-size:18px;justify-content:center;outline:0;overflow:hidden;padding:0 14px;position:relative;text-decoration:none;width:100%}.taro-button-core:focus{outline:0}.taro-button-core:not(.taro-btn-disabled):active{background-color:#dedede;color:rgba(0,0,0,.6)}.taro-button-core+.taro-button-core{margin-top:15px}.taro-button-core.taro-btn-default{background-color:#f8f8f8;color:#000}.taro-button-core.taro-btn-default:not(.taro-btn-disabled):visited{color:#000}.taro-button-core.taro-btn-default:not(.taro-btn-disabled):active{background-color:#dedede;color:rgba(0,0,0,.6)}.taro-button-core.taro-btn-mini{display:inline-block;font-size:13px;padding:0 26px;vertical-align:middle;width:auto}.taro-button-core.taro-btn-plain,.taro-button-core.taro-btn-plain.taro-btn-default,.taro-button-core.taro-btn-plain.taro-btn-primary,.taro-button-core.taro-btn-plain.taro-btn-warn{background-color:transparent;border-width:1px}.taro-button-core.taro-btn-disabled{color:hsla(0,0%,100%,.6)}.taro-button-core.taro-btn-disabled.taro-btn-default{background-color:#f7f7f7;color:rgba(0,0,0,.3)}.taro-button-core.taro-btn-disabled.taro-btn-primary{background-color:#9ed99d}.taro-button-core.taro-btn-disabled.taro-btn-warn{background-color:#ec8b89}.taro-button-core.taro-btn-loading.taro-btn-primary,.taro-button-core.taro-btn-loading.taro-btn-warn{color:hsla(0,0%,100%,.6)}.taro-button-core.taro-btn-loading.taro-btn-primary{background-color:#179b16}.taro-button-core.taro-btn-loading.taro-btn-warn{background-color:#ce3c39}.taro-button-core.taro-btn-plain.taro-btn-primary{border:1px solid #1aad19;color:#1aad19}.taro-button-core.taro-btn-plain.taro-btn-primary:not(.taro-btn-disabled):active{background-color:transparent;border-color:rgba(26,173,25,.6);color:rgba(26,173,25,.6)}.taro-button-core.taro-btn-plain.taro-btn-primary:after{border-width:0}.taro-button-core.taro-btn-plain.taro-btn-warn{border:1px solid #e64340;color:#e64340}.taro-button-core.taro-btn-plain.taro-btn-warn:not(.taro-btn-disabled):active{background-color:transparent;border-color:rgba(230,67,64,.6);color:rgba(230,67,64,.6)}.taro-button-core.taro-btn-plain.taro-btn-warn:after{border-width:0}.taro-button-core.taro-btn-plain,.taro-button-core.taro-btn-plain.taro-btn-default{border:1px solid #353535;color:#353535}.taro-button-core.taro-btn-plain.taro-btn-default:not(.taro-btn-disabled):active,.taro-button-core.taro-btn-plain:not(.taro-btn-disabled):active{background-color:transparent;border-color:rgba(53,53,53,.6);color:rgba(53,53,53,.6)}.taro-button-core.taro-btn-plain.taro-btn-default:after,.taro-button-core.taro-btn-plain:after{border-width:0}.taro-button-core.taro-btn-primary{background-color:#1aad19;color:#fff}.taro-button-core.taro-btn-primary:not(.taro-btn-disabled):visited{color:#fff}.taro-button-core.taro-btn-primary:not(.taro-btn-disabled):active{background-color:#179b16;color:hsla(0,0%,100%,.6)}.taro-button-core.taro-btn-warn{background-color:#e64340;color:#fff}.taro-button-core.taro-btn-warn:not(.taro-btn-disabled):visited{color:#fff}.taro-button-core.taro-btn-warn:not(.taro-btn-disabled):active{background-color:#ce3c39;color:hsla(0,0%,100%,.6)}.taro-button-core.taro-btn-plain.taro-btn-disabled.taro-btn-default,.taro-button-core.taro-btn-plain.taro-btn-disabled.taro-btn-primary,.taro-button-core.taro-btn-plain.taro-btn-disabled.taro-btn-warn{background-color:#f7f7f7;border:1px solid rgba(0,0,0,.2);color:rgba(0,0,0,.3)}.weui-icon-circle:before{content:"\ea01"}.weui-icon-download:before{content:"\ea02"}.weui-icon-info:before{content:"\ea03"}.weui-icon-safe-success:before{content:"\ea04"}.weui-icon-safe-warn:before{content:"\ea05"}.weui-icon-success:before{content:"\ea06"}.weui-icon-success-circle:before{content:"\ea07"}.weui-icon-success-no-circle:before{content:"\ea08"}.weui-icon-waiting:before{content:"\ea09"}.weui-icon-waiting-circle:before{content:"\ea0a"}.weui-icon-warn:before{content:"\ea0b"}.weui-icon-info-circle:before{content:"\ea0c"}.weui-icon-cancel:before{content:"\ea0d"}.weui-icon-search:before{content:"\ea0e"}.weui-icon-clear:before{content:"\ea0f"}.weui-icon-back:before{content:"\ea10"}.weui-icon-delete:before{content:"\ea11"}.weui-icon-success{color:#09bb07;font-size:23px}.weui-icon-waiting{color:#10aeff;font-size:23px}.weui-icon-warn{color:#f43530;font-size:23px}.weui-icon-info{color:#10aeff;font-size:23px}.weui-icon-success-circle,.weui-icon-success-no-circle{color:#09bb07;font-size:23px}.weui-icon-waiting-circle{color:#10aeff;font-size:23px}.weui-icon-circle{color:#c9c9c9;font-size:23px}.weui-icon-download,.weui-icon-info-circle{color:#09bb07;font-size:23px}.weui-icon-safe-success{color:#09bb07}.weui-icon-safe-warn{color:#ffbe00}.weui-icon-cancel{color:#f43530;font-size:22px}.weui-icon-clear,.weui-icon-search{color:#b2b2b2;font-size:14px}.weui-icon-delete.weui-icon_gallery-delete{color:#fff;font-size:22px}.weui-icon_msg{font-size:93px}.weui-icon_msg.weui-icon-warn{color:#f76260}.weui-icon_msg-primary{font-size:93px}.weui-icon_msg-primary.weui-icon-warn{color:#ffbe00}img[src=""]{opacity:0}.taro-img{display:inline-block;font-size:0;overflow:hidden;position:relative}.taro-img--with-default-host-size{height:240px;width:320px}.taro-img.taro-img__widthfix,.taro-img__mode-heightfix{height:100%}.taro-img__mode-scaletofill{height:100%;width:100%}.taro-img__mode-aspectfit{height:100%;object-fit:contain;width:100%}.taro-img__mode-aspectfill{height:100%;object-fit:cover;width:100%}.taro-img__mode-widthfix{width:100%}.taro-img__mode-bottom,.taro-img__mode-top{left:50%;position:absolute;transform:translate(-50%)}.taro-img__mode-bottom{bottom:0}.taro-img__mode-center{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.taro-img__mode-left,.taro-img__mode-right{position:absolute;top:50%;transform:translateY(-50%)}.taro-img__mode-right{right:0}.taro-img__mode-topright{position:absolute;right:0}.taro-img__mode-bottomleft{bottom:0;position:absolute}.taro-img__mode-bottomright{bottom:0;position:absolute;right:0}.taro-input-core{display:block}.weui-input{-webkit-appearance:none;background-color:transparent;border:0;color:inherit;font-size:inherit;height:1.4705882353em;line-height:1.4705882353;outline:0;width:100%}.weui-input::-webkit-inner-spin-button,.weui-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.taro-picker__overlay{position:fixed;z-index:1000}.taro-picker__mask-overlay,.taro-picker__overlay{bottom:0;height:100%;left:0;right:0;top:0;width:100%}.taro-picker__mask-overlay{position:absolute;z-index:1001}.taro-picker__overlay.taro-picker__overlay--theme-light .taro-picker__mask-overlay{background-color:rgba(0,0,0,.6)}.taro-picker__overlay.taro-picker__overlay--theme-dark .taro-picker__mask-overlay{background-color:hsla(0,0%,8%,.7)}.taro-picker{bottom:0;font-size:14px;left:0;position:absolute;width:100%;z-index:1002}.taro-picker__hd{align-items:center;display:flex;font-size:17px;height:44px;justify-content:space-between;padding:0;position:relative}.taro-picker__hd:after{bottom:0;content:"";height:1px;left:0;position:absolute;transform:scaleY(.5);width:100%}.taro-picker__action{flex:0 0 auto;font-size:14px;height:44px;line-height:44px;padding:0 10px}.taro-picker__title{font-size:16px;font-weight:500;left:50%;max-width:40%;overflow:hidden;position:absolute;text-overflow:ellipsis;top:50%;transform:translate(-50%,-50%);white-space:nowrap}.taro-picker__bd{box-sizing:border-box;display:flex;flex:1;height:238px;overflow:hidden;width:100%}.taro-picker-theme-light{background-color:#e5e5e5}.taro-picker-theme-light .taro-picker__hd{background-color:#fff}.taro-picker-theme-light .taro-picker__hd:after{background-color:#e5e5e5}.taro-picker-theme-light .taro-picker__action{color:#ff0f23}.taro-picker-theme-light .taro-picker__action:first-child{color:#888}.taro-picker-theme-light .taro-picker__title{color:#000}.taro-picker-theme-light .taro-picker__bd{background-color:#fff}.taro-picker-theme-light .taro-picker__indicator{border-bottom:1px solid #e5e5e5;border-top:1px solid #e5e5e5}.taro-picker-theme-light .taro-picker__mask{background:linear-gradient(180deg,hsla(0,0%,100%,.95),hsla(0,0%,100%,.6) 40%,hsla(0,0%,100%,0) 45%,hsla(0,0%,100%,0) 55%,hsla(0,0%,100%,.6) 60%,hsla(0,0%,100%,.95))}.taro-picker-theme-light .taro-picker__item{color:#000}.taro-picker-theme-light .taro-picker__item--selected{color:#ff0f23}.taro-picker-theme-light .taro-picker__item--disabled{color:#999}.taro-picker-theme-dark{background-color:hsla(0,0%,100%,.06)}.taro-picker-theme-dark .taro-picker__hd{background-color:#1f1f1f}.taro-picker-theme-dark .taro-picker__hd:after{background-color:hsla(0,0%,100%,.06)}.taro-picker-theme-dark .taro-picker__action{color:#ff0f23}.taro-picker-theme-dark .taro-picker__action:first-child{color:#818181}.taro-picker-theme-dark .taro-picker__title{color:#e6e6e6}.taro-picker-theme-dark .taro-picker__bd{background-color:#1f1f1f}.taro-picker-theme-dark .taro-picker__indicator{border-bottom:1px solid hsla(0,0%,100%,.06);border-top:1px solid hsla(0,0%,100%,.06)}.taro-picker-theme-dark .taro-picker__mask{background:linear-gradient(180deg,rgba(31,31,31,.95),rgba(31,31,31,.6) 40%,rgba(31,31,31,0) 45%,rgba(31,31,31,0) 55%,rgba(31,31,31,.6) 60%,rgba(31,31,31,.95))}.taro-picker-theme-dark .taro-picker__item{color:#e6e6e6}.taro-picker-theme-dark .taro-picker__item--selected{color:#ff0f23}.taro-picker-theme-dark .taro-picker__item--disabled{color:#999}.taro-picker__group{align-items:center;box-sizing:border-box;display:flex;flex:1;height:100%;justify-content:center;min-width:0;position:relative}.taro-picker__group--date .taro-picker__columns{display:flex;height:100%;width:100%}.taro-picker__mask{height:100%;top:0;z-index:1}.taro-picker__indicator,.taro-picker__mask{left:0;pointer-events:none;position:absolute;width:100%}.taro-picker__indicator{box-sizing:border-box;height:34px;top:50%;transform:translateY(-50%);z-index:1002}.taro-picker__content{box-sizing:border-box;height:100%;width:100%}.taro-picker__item{align-items:center;box-sizing:border-box;display:flex;font-size:16px;height:34px;justify-content:center;line-height:34px;overflow:hidden;padding:0 8px;text-align:center;text-overflow:ellipsis;white-space:nowrap;width:100%}.taro-picker__item--selected{font-weight:500}.taro-picker__column{flex:1;margin:0 8px}.taro-picker__column:first-child{margin-left:0}.taro-picker__column:last-child{margin-right:0}.taro-picker__item--custom{align-items:center;color:#888;display:flex;font-weight:400;justify-content:center;text-align:center}@keyframes taro-picker__slide-up{0%{transform:translate3d(0,100%,0)}to{transform:translateZ(0)}}@keyframes taro-picker__slide-down{0%{transform:translateZ(0)}to{transform:translate3d(0,100%,0)}}@keyframes taro-picker__fade-in{0%{opacity:0}to{opacity:1}}@keyframes taro-picker__fade-out{0%{opacity:1}to{opacity:0}}.taro-picker-view{display:block;height:170px;min-height:102px;width:100%}.taro-picker-view__wrapper{height:100%;overflow:hidden;position:relative;width:100%}.taro-picker-view__columns{display:flex;flex-direction:row;height:100%;width:100%}.taro-picker-view__column{box-sizing:border-box;flex:1;height:100%}.taro-picker-view__item{align-items:center;box-sizing:border-box;display:flex;justify-content:center;text-align:center}.taro-picker-view__column-blank{width:100%}.taro-picker-view__mask{height:100%;top:0;z-index:1001}.taro-picker-view__indicator,.taro-picker-view__mask{left:0;pointer-events:none;position:absolute;width:100%}.taro-picker-view__indicator{box-sizing:border-box;top:50%;transform:translateY(-50%);z-index:1002}.taro-picker-view .taro-picker-view__indicator{border-bottom:1px solid #e5e5e5;border-top:1px solid #e5e5e5}.taro-picker-view .taro-picker-view__mask{background:linear-gradient(180deg,hsla(0,0%,100%,.95),hsla(0,0%,100%,.6) 40%,hsla(0,0%,100%,0) 45%,hsla(0,0%,100%,0) 55%,hsla(0,0%,100%,.6) 60%,hsla(0,0%,100%,.95))}.taro-picker-view .taro-picker-view__item{color:#000}.rmc-pull-to-refresh-content{transform-origin:left top 0}.rmc-pull-to-refresh-content-wrapper{min-height:100%}.rmc-pull-to-refresh-transition{transition:transform .3s}@keyframes rmc-pull-to-refresh-indicator{50%{opacity:.2}to{opacity:1}}.rmc-pull-to-refresh-indicator{height:30px;line-height:10px;text-align:center}.rmc-pull-to-refresh-indicator>div{animation-fill-mode:both;animation:rmc-pull-to-refresh-indicator .5s linear 0s infinite;background-color:grey;border-radius:100%;display:inline-block;height:6px;margin:3px;width:6px}.rmc-pull-to-refresh-indicator>div:nth-child(0){animation-delay:-.1s!important}.rmc-pull-to-refresh-indicator>div:first-child{animation-delay:-.2s!important}.rmc-pull-to-refresh-indicator>div:nth-child(2){animation-delay:-.3s!important}.rmc-pull-to-refresh-down .rmc-pull-to-refresh-indicator{margin-top:-25px}.taro-scroll{-webkit-overflow-scrolling:auto}.taro-scroll--hidebar::-webkit-scrollbar{display:none}.taro-scroll-view{overflow:hidden}.taro-scroll-view__scroll-x{overflow-x:scroll;overflow-y:hidden}.taro-scroll-view__scroll-y{overflow-x:hidden;overflow-y:scroll}.swiper-container-wrapper{height:150px}.swiper-container{height:100%;overflow:visible;position:relative}.taro-switch{cursor:pointer;display:inline-block;position:relative}.taro-switch--disabled{cursor:not-allowed;opacity:.5}.taro-switch--type-switch{border:1px solid #dfdfdf;box-sizing:border-box}.taro-switch--type-switch .taro-switch__thumb{background-color:#fff;border-radius:50%;box-shadow:0 1px 3px rgba(0,0,0,.4);left:1px;position:absolute;top:1px}.taro-switch--type-checkbox{border:1px solid #c9c9c9;box-sizing:border-box}.taro-switch--type-checkbox .taro-switch__checkmark{left:50%;position:absolute;top:50%}.taro-text{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.taro-text__selectable{-moz-user-select:text;-webkit-user-select:text;-ms-user-select:text;user-select:text}
package/dist/index.js CHANGED
@@ -1,10 +1,12 @@
1
- export { Ad, AdCustom, AnimationVideo, AnimationView, ArCamera, Audio, AwemeData, Block, Camera, Canvas, ChannelLive, ChannelVideo, Checkbox, CheckboxGroup, CommentDetail, CommentList, ContactButton, CoverImage, CoverView, CustomWrapper, DraggableSheet, Editor, FollowSwan, Form, FunctionalPageNavigator, GridBuilder, GridView, InlinePaymentPanel, KeyboardAccessory, Label, Lifestyle, Like, ListBuilder, ListView, LivePlayer, LivePusher, Login, Lottie, MatchMedia, MovableArea, MovableView, NativeSlot, NavigationBar, Navigator, NestedScrollBody, NestedScrollHeader, OfficialAccount, OpenContainer, OpenData, PageContainer, PageMeta, PickerView, PickerViewColumn, Progress, Radio, RadioGroup, RichText, RootPortal, RtcRoom, RtcRoomItem, Script, ShareElement, Slider, Slot, Snapshot, Span, Tabs, Textarea, Video, VoipRoom, WebView } from '@tarojs/components/lib/react';
1
+ export { Ad, AdCustom, AnimationVideo, AnimationView, ArCamera, Audio, AwemeData, Block, Camera, Canvas, ChannelLive, ChannelVideo, Checkbox, CheckboxGroup, CommentDetail, CommentList, ContactButton, CoverImage, CoverView, CustomWrapper, DraggableSheet, Editor, FollowSwan, Form, FunctionalPageNavigator, GridBuilder, GridView, InlinePaymentPanel, KeyboardAccessory, Label, Lifestyle, Like, ListBuilder, ListView, LivePlayer, LivePusher, Login, Lottie, MatchMedia, MovableArea, MovableView, NativeSlot, NavigationBar, Navigator, NestedScrollBody, NestedScrollHeader, OfficialAccount, OpenContainer, OpenData, PageContainer, PageMeta, Progress, Radio, RadioGroup, RichText, RootPortal, RtcRoom, RtcRoomItem, Script, ShareElement, Slider, Slot, Snapshot, Span, Tabs, Textarea, Video, VoipRoom, WebView } from '@tarojs/components/lib/react';
2
2
  export { default as Button } from './components/button/index.js';
3
3
  export { default as Icon } from './components/icon/index.js';
4
4
  export { default as Image } from './components/image/index.js';
5
5
  export { default as Input } from './components/input/index.js';
6
6
  export { default as Map } from './components/map/index.js';
7
7
  export { default as Picker } from './components/picker/index.js';
8
+ export { PickerView } from './components/picker-view/index.js';
9
+ export { PickerViewColumn } from './components/picker-view-column/index.js';
8
10
  export { default as PullDownRefresh } from './components/pull-down-refresh/index.js';
9
11
  export { Refresher } from './components/refresher/index.js';
10
12
  export { ScrollElementContext } from './contexts/ScrollElementContext.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/index.react.ts"],"sourcesContent":["/* eslint-disable simple-import-sort/exports */\nexport { Ad } from '@tarojs/components/lib/react'\nexport { AdCustom } from '@tarojs/components/lib/react'\nexport { AnimationVideo } from '@tarojs/components/lib/react'\nexport { AnimationView } from '@tarojs/components/lib/react'\nexport { ArCamera } from '@tarojs/components/lib/react'\nexport { Audio } from '@tarojs/components/lib/react'\nexport { AwemeData } from '@tarojs/components/lib/react'\nexport { Block } from '@tarojs/components/lib/react'\nexport { default as Button } from './components/button'\nexport { Camera } from '@tarojs/components/lib/react'\nexport { Canvas } from '@tarojs/components/lib/react'\nexport { ChannelLive } from '@tarojs/components/lib/react'\nexport { ChannelVideo } from '@tarojs/components/lib/react'\nexport { Checkbox, CheckboxGroup } from '@tarojs/components/lib/react'\nexport { CommentDetail, CommentList } from '@tarojs/components/lib/react'\nexport { ContactButton } from '@tarojs/components/lib/react'\nexport { CoverImage } from '@tarojs/components/lib/react'\nexport { CoverView } from '@tarojs/components/lib/react'\nexport { CustomWrapper } from '@tarojs/components/lib/react'\nexport { DraggableSheet } from '@tarojs/components/lib/react'\nexport { Editor } from '@tarojs/components/lib/react'\nexport { FollowSwan } from '@tarojs/components/lib/react'\nexport { Form } from '@tarojs/components/lib/react'\nexport { FunctionalPageNavigator } from '@tarojs/components/lib/react'\nexport { GridView } from '@tarojs/components/lib/react'\nexport { GridBuilder } from '@tarojs/components/lib/react'\nexport { default as Icon } from './components/icon'\nexport { default as Image } from './components/image'\nexport { InlinePaymentPanel } from '@tarojs/components/lib/react'\nexport { default as Input } from './components/input'\nexport { KeyboardAccessory } from '@tarojs/components/lib/react'\nexport { Label } from '@tarojs/components/lib/react'\nexport { Lifestyle } from '@tarojs/components/lib/react'\nexport { Like } from '@tarojs/components/lib/react'\nexport { LivePlayer } from '@tarojs/components/lib/react'\nexport { LivePusher } from '@tarojs/components/lib/react'\nexport { ListBuilder } from '@tarojs/components/lib/react'\nexport { ListView } from '@tarojs/components/lib/react'\nexport { Login } from '@tarojs/components/lib/react'\nexport { Lottie } from '@tarojs/components/lib/react'\nexport { default as Map, type MapProps } from './components/map'\nexport { createMapContext } from './components/map'\nexport { MatchMedia } from '@tarojs/components/lib/react'\nexport { MovableArea, MovableView } from '@tarojs/components/lib/react'\nexport { NavigationBar } from '@tarojs/components/lib/react'\nexport { Navigator } from '@tarojs/components/lib/react'\nexport { NestedScrollBody } from '@tarojs/components/lib/react'\nexport { NestedScrollHeader } from '@tarojs/components/lib/react'\nexport { OfficialAccount } from '@tarojs/components/lib/react'\nexport { OpenData } from '@tarojs/components/lib/react'\nexport { OpenContainer } from '@tarojs/components/lib/react'\nexport { PageContainer } from '@tarojs/components/lib/react'\nexport { PageMeta } from '@tarojs/components/lib/react'\nexport { default as Picker } from './components/picker'\nexport { PickerView, PickerViewColumn } from '@tarojs/components/lib/react'\nexport { Progress } from '@tarojs/components/lib/react'\nexport { default as PullDownRefresh } from './components/pull-down-refresh'\n// export { PullToRefresh } from '@tarojs/components/lib/react'\nexport { default as Refresher, type RefresherProps } from './components/refresher'\nexport { Radio, RadioGroup } from '@tarojs/components/lib/react'\nexport { RichText } from '@tarojs/components/lib/react'\nexport { RootPortal } from '@tarojs/components/lib/react'\nexport { RtcRoom, RtcRoomItem } from '@tarojs/components/lib/react'\nexport { Script } from '@tarojs/components/lib/react'\nexport { ScrollElementContext, type ScrollElementContextValue } from './contexts/ScrollElementContext'\nexport { default as ScrollView } from './components/scroll-view'\nexport { ShareElement } from '@tarojs/components/lib/react'\nexport { Slider } from '@tarojs/components/lib/react'\nexport { Snapshot } from '@tarojs/components/lib/react'\nexport { Span } from '@tarojs/components/lib/react'\nexport { NativeSlot, Slot } from '@tarojs/components/lib/react'\nexport { Swiper, SwiperItem } from './components/swiper'\nexport { default as Switch } from './components/switch'\nexport { Tabs } from '@tarojs/components/lib/react'\nexport { default as Text } from './components/text'\nexport { Textarea } from '@tarojs/components/lib/react'\nexport { Video } from '@tarojs/components/lib/react'\nexport { default as View } from './components/view'\nexport { VoipRoom } from '@tarojs/components/lib/react'\nexport { WebView } from '@tarojs/components/lib/react'\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA"}
1
+ {"version":3,"file":"index.js","sources":["../src/index.react.ts"],"sourcesContent":["/* eslint-disable simple-import-sort/exports */\nexport { Ad } from '@tarojs/components/lib/react'\nexport { AdCustom } from '@tarojs/components/lib/react'\nexport { AnimationVideo } from '@tarojs/components/lib/react'\nexport { AnimationView } from '@tarojs/components/lib/react'\nexport { ArCamera } from '@tarojs/components/lib/react'\nexport { Audio } from '@tarojs/components/lib/react'\nexport { AwemeData } from '@tarojs/components/lib/react'\nexport { Block } from '@tarojs/components/lib/react'\nexport { default as Button } from './components/button'\nexport { Camera } from '@tarojs/components/lib/react'\nexport { Canvas } from '@tarojs/components/lib/react'\nexport { ChannelLive } from '@tarojs/components/lib/react'\nexport { ChannelVideo } from '@tarojs/components/lib/react'\nexport { Checkbox, CheckboxGroup } from '@tarojs/components/lib/react'\nexport { CommentDetail, CommentList } from '@tarojs/components/lib/react'\nexport { ContactButton } from '@tarojs/components/lib/react'\nexport { CoverImage } from '@tarojs/components/lib/react'\nexport { CoverView } from '@tarojs/components/lib/react'\nexport { CustomWrapper } from '@tarojs/components/lib/react'\nexport { DraggableSheet } from '@tarojs/components/lib/react'\nexport { Editor } from '@tarojs/components/lib/react'\nexport { FollowSwan } from '@tarojs/components/lib/react'\nexport { Form } from '@tarojs/components/lib/react'\nexport { FunctionalPageNavigator } from '@tarojs/components/lib/react'\nexport { GridView } from '@tarojs/components/lib/react'\nexport { GridBuilder } from '@tarojs/components/lib/react'\nexport { default as Icon } from './components/icon'\nexport { default as Image } from './components/image'\nexport { InlinePaymentPanel } from '@tarojs/components/lib/react'\nexport { default as Input } from './components/input'\nexport { KeyboardAccessory } from '@tarojs/components/lib/react'\nexport { Label } from '@tarojs/components/lib/react'\nexport { Lifestyle } from '@tarojs/components/lib/react'\nexport { Like } from '@tarojs/components/lib/react'\nexport { LivePlayer } from '@tarojs/components/lib/react'\nexport { LivePusher } from '@tarojs/components/lib/react'\nexport { ListBuilder } from '@tarojs/components/lib/react'\nexport { ListView } from '@tarojs/components/lib/react'\nexport { Login } from '@tarojs/components/lib/react'\nexport { Lottie } from '@tarojs/components/lib/react'\nexport { default as Map, type MapProps } from './components/map'\nexport { createMapContext } from './components/map'\nexport { MatchMedia } from '@tarojs/components/lib/react'\nexport { MovableArea, MovableView } from '@tarojs/components/lib/react'\nexport { NavigationBar } from '@tarojs/components/lib/react'\nexport { Navigator } from '@tarojs/components/lib/react'\nexport { NestedScrollBody } from '@tarojs/components/lib/react'\nexport { NestedScrollHeader } from '@tarojs/components/lib/react'\nexport { OfficialAccount } from '@tarojs/components/lib/react'\nexport { OpenData } from '@tarojs/components/lib/react'\nexport { OpenContainer } from '@tarojs/components/lib/react'\nexport { PageContainer } from '@tarojs/components/lib/react'\nexport { PageMeta } from '@tarojs/components/lib/react'\nexport { default as Picker } from './components/picker'\nexport { default as PickerView } from './components/picker-view'\nexport { default as PickerViewColumn } from './components/picker-view-column'\nexport { Progress } from '@tarojs/components/lib/react'\nexport { default as PullDownRefresh } from './components/pull-down-refresh'\n// export { PullToRefresh } from '@tarojs/components/lib/react'\nexport { default as Refresher, type RefresherProps } from './components/refresher'\nexport { Radio, RadioGroup } from '@tarojs/components/lib/react'\nexport { RichText } from '@tarojs/components/lib/react'\nexport { RootPortal } from '@tarojs/components/lib/react'\nexport { RtcRoom, RtcRoomItem } from '@tarojs/components/lib/react'\nexport { Script } from '@tarojs/components/lib/react'\nexport { ScrollElementContext, type ScrollElementContextValue } from './contexts/ScrollElementContext'\nexport { default as ScrollView } from './components/scroll-view'\nexport { ShareElement } from '@tarojs/components/lib/react'\nexport { Slider } from '@tarojs/components/lib/react'\nexport { Snapshot } from '@tarojs/components/lib/react'\nexport { Span } from '@tarojs/components/lib/react'\nexport { NativeSlot, Slot } from '@tarojs/components/lib/react'\nexport { Swiper, SwiperItem } from './components/swiper'\nexport { default as Switch } from './components/switch'\nexport { Tabs } from '@tarojs/components/lib/react'\nexport { default as Text } from './components/text'\nexport { Textarea } from '@tarojs/components/lib/react'\nexport { Video } from '@tarojs/components/lib/react'\nexport { default as View } from './components/view'\nexport { VoipRoom } from '@tarojs/components/lib/react'\nexport { WebView } from '@tarojs/components/lib/react'\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA"}
@@ -21,7 +21,7 @@ function usePickerItemScrollIntoView() {
21
21
  function useA11yOpen() {
22
22
  const [a11yOpen, setA11yOpen] = React.useState(false);
23
23
  React.useEffect(() => {
24
- Taro.checkIsOpenAccessibility().then(res => {
24
+ Taro.checkIsOpenAccessibility({}).then(res => {
25
25
  setA11yOpen(!!res.open);
26
26
  }).catch(() => {});
27
27
  }, []);
@@ -1 +1 @@
1
- {"version":3,"file":"picker-group-slider.js","sources":["../../../../src/components/picker/picker-group-slider.tsx"],"sourcesContent":["import { ScrollView, View } from '@tarojs/components'\nimport Taro from '@tarojs/taro'\nimport * as React from 'react'\n\nimport type { PickerGroupProps } from './picker-group'\n\n// 添加类型定义\ntype TaroScrollView = React.ElementRef<typeof ScrollView>\n\n/** 部分端同 id 连续 scrollIntoView 不生效:先清空再在下一宏任务设回目标 id */\nfunction usePickerItemScrollIntoView(): [string, (itemId: string) => void] {\n const [scrollIntoView, setScrollIntoView] = React.useState('')\n const pulseRef = React.useRef(0)\n\n const scrollToItemId = React.useCallback((itemId: string) => {\n pulseRef.current += 1\n const token = pulseRef.current\n setScrollIntoView('')\n setTimeout(() => {\n if (pulseRef.current !== token) return\n setScrollIntoView(itemId)\n }, 0)\n }, [])\n\n return [scrollIntoView, scrollToItemId]\n}\n\n/** 系统读屏是否开启:开启时 mask 需可命中(关掉 pointer-events:none) */\nfunction useA11yOpen(): boolean {\n const [a11yOpen, setA11yOpen] = React.useState(false)\n React.useEffect(() => {\n Taro.checkIsOpenAccessibility()\n .then((res) => {\n setA11yOpen(!!(res as Taro.checkIsOpenAccessibility.SuccessCallbackResult).open)\n })\n .catch(() => {})\n }, [])\n return a11yOpen\n}\n\n// 定义常量\nconst PICKER_LINE_HEIGHT = 34 // px\nconst PICKER_VISIBLE_ITEMS = 7 // 可见行数\nconst PICKER_BLANK_ITEMS = 3 // 空白行数\n\nconst getIndicatorStyle = (lineColor: string): React.CSSProperties => {\n return {\n borderTopColor: lineColor,\n borderBottomColor: lineColor\n }\n}\n\n// 大屏方案版本要求\nconst MIN_DESIGN_APP_VERSION = 16\n// 判断是否启用测量值缩放适配(true=启用, false=使用系统侧缩放)\nconst resolveUseMeasuredScale = (res: Taro.getSystemInfo.Result): boolean => {\n // H5/weapp 不参与大屏系数\n if (process.env.TARO_ENV === 'h5' || process.env.TARO_ENV === 'weapp') {\n return false\n }\n\n const designAppVersionRaw = (res as any).designAppVersion\n const designAppVersionMajor = designAppVersionRaw != null ? parseInt(String(designAppVersionRaw).trim(), 10) : Number.NaN\n if (!Number.isFinite(designAppVersionMajor) || designAppVersionMajor < MIN_DESIGN_APP_VERSION) {\n return false\n }\n\n const platform = String((res as any).platform || '').toLowerCase()\n if (platform === 'harmony' || platform === 'android' || platform === 'ios') {\n return true\n }\n\n return false\n}\n\n// 辅助函数:计算 lengthScaleRatio\nconst calculateLengthScaleRatio = (res: Taro.getSystemInfo.Result): number => {\n let lengthScaleRatio = (res as any)?.lengthScaleRatio\n if (lengthScaleRatio == null || lengthScaleRatio === 0) {\n console.warn('Taro.getSystemInfo: lengthScaleRatio 不存在,使用计算值')\n lengthScaleRatio = 1\n if (res.windowWidth < 320) {\n lengthScaleRatio = res.windowWidth / 320\n } else if (res.windowWidth >= 400 && res.windowWidth < 600) {\n lengthScaleRatio = res.windowWidth / 400\n }\n const shortSide = res.windowWidth < res.windowHeight ? res.windowWidth : res.windowHeight\n const isBigScreen = shortSide >= 600\n if (isBigScreen) {\n lengthScaleRatio = shortSide / 720\n }\n }\n return lengthScaleRatio\n}\n\n// 辅助函数:获取系统信息的 lengthScaleRatio 并设置 targetScrollTop\nconst setTargetScrollTopWithScale = (\n setTargetScrollTop: (value: number) => void,\n baseValue: number,\n randomOffset?: number,\n lengthScaleRatio: number = 1,\n) => {\n // H5 和 weapp 不参与放大计算,直接使用 baseValue\n if (process.env.TARO_ENV === 'h5' || process.env.TARO_ENV === 'weapp') {\n const finalValue = randomOffset !== undefined ? baseValue + randomOffset : baseValue\n setTargetScrollTop(finalValue)\n return\n }\n\n if (process.env.TARO_PLATFORM === 'harmony') {\n const scaledValue = baseValue\n const finalValue = randomOffset !== undefined ? scaledValue + randomOffset : scaledValue\n setTargetScrollTop(finalValue)\n } else {\n const scaledValue = baseValue * lengthScaleRatio\n const finalValue = randomOffset !== undefined ? scaledValue + randomOffset : scaledValue\n setTargetScrollTop(finalValue)\n }\n}\n\n// 根据 scrollTop 计算选中索引\n// 系统侧缩放模式:scrollHeight 已被系统缩放,直接相除即可\n// 自行缩放模式:需要除以 ratio 换算(harmony 特殊处理,ratio 已内嵌在 itemHeight 中)\nconst getSelectedIndex = (scrollTop: number, itemHeight: number, lengthScaleRatio: number = 1, useMeasuredScale: boolean = false): number => {\n if (!useMeasuredScale || process.env.TARO_PLATFORM === 'harmony') {\n return Math.round(scrollTop / itemHeight)\n }\n return Math.round(scrollTop / lengthScaleRatio / itemHeight)\n}\n\n// 计算单项高度(返回设计稿值)\nconst calculateItemHeight = (\n scrollView: TaroScrollView | null,\n lengthScaleRatio: number,\n useMeasuredScale: boolean = false,\n): number => {\n if (process.env.TARO_PLATFORM === 'harmony') {\n return useMeasuredScale ? PICKER_LINE_HEIGHT * lengthScaleRatio : PICKER_LINE_HEIGHT\n }\n if (scrollView && scrollView?.scrollHeight) {\n return useMeasuredScale\n ? scrollView.scrollHeight / lengthScaleRatio / scrollView.childNodes.length\n : scrollView.scrollHeight / scrollView.childNodes.length\n }\n console.warn('Height measurement anomaly')\n return PICKER_LINE_HEIGHT\n}\n\nexport function PickerGroupBasic(props: PickerGroupProps) {\n const {\n range = [],\n rangeKey,\n columnId,\n updateIndex,\n onColumnChange,\n selectedIndex = 0, // 使用selectedIndex参数,默认为0\n colors = {},\n enableClickItemScroll = true,\n } = props\n const indicatorStyle = colors.lineColor ? getIndicatorStyle(colors.lineColor) : null\n const [targetScrollTop, setTargetScrollTop] = React.useState(0)\n const [scrollIntoView, scrollToItemId] = usePickerItemScrollIntoView()\n const scrollViewRef = React.useRef<TaroScrollView>(null)\n // 使用selectedIndex初始化当前索引\n const [currentIndex, setCurrentIndex] = React.useState(selectedIndex)\n // 触摸状态用于优化用户体验\n const isTouchingRef = React.useRef(false)\n // 系统读屏开启时关闭 mask 的 pointer-events:none,便于无障碍命中;未开启则保持穿透以便手势滚动\n const a11yOpen = useA11yOpen()\n\n const lengthScaleRatioRef = React.useRef(1)\n const useMeasuredScaleRef = React.useRef(false)\n const itemHeightRef = React.useRef(PICKER_LINE_HEIGHT)\n\n // 初始化时计算 lengthScaleRatio 并判定缩放模式\n React.useEffect(() => {\n Taro.getSystemInfo({\n success: (res) => {\n lengthScaleRatioRef.current = calculateLengthScaleRatio(res)\n useMeasuredScaleRef.current = resolveUseMeasuredScale(res)\n itemHeightRef.current = calculateItemHeight(scrollViewRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n },\n fail: () => {\n lengthScaleRatioRef.current = 1\n useMeasuredScaleRef.current = false\n }\n })\n }, [])\n\n React.useEffect(() => {\n itemHeightRef.current = calculateItemHeight(scrollViewRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n }, [range.length]) // 只在range长度变化时重新计算\n\n // 滚动到指定索引(供程序化对齐与无障碍步进复用)\n const scrollToIndex = React.useCallback((index: number, withRandomOffset = false) => {\n const baseValue = index * itemHeightRef.current\n const randomOffset = withRandomOffset ? Math.random() * 0.001 : undefined\n setTargetScrollTopWithScale(setTargetScrollTop, baseValue, randomOffset, lengthScaleRatioRef.current)\n }, [])\n\n // props 的 selectedIndex 变化:滚至对应项\n React.useEffect(() => {\n if (scrollViewRef.current && range.length > 0 && !isTouchingRef.current) {\n scrollToIndex(selectedIndex)\n setCurrentIndex(selectedIndex)\n }\n }, [selectedIndex, range, scrollToIndex])\n\n // 是否处于归中状态\n const isCenterTimerId = React.useRef<NodeJS.Timeout | null>(null)\n // 滚动静止后归中并同步选中\n const handleScrollEnd = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n // 100ms 内无新滚动则归中并提交索引\n isCenterTimerId.current = setTimeout(() => {\n if (!scrollViewRef.current) return\n\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop, itemHeightRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n\n isTouchingRef.current = false\n scrollToIndex(newIndex, true)\n updateIndex(newIndex, columnId)\n onColumnChange?.({ columnId, index: newIndex })\n isCenterTimerId.current = null\n }, 100)\n }\n // 滚动中:按 scrollTop 更新高亮索引\n const handleScroll = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n const scrollTop = scrollViewRef.current.scrollTop\n const ih = itemHeightRef.current\n const newIndex = getSelectedIndex(scrollTop, ih, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n if (newIndex !== currentIndex) {\n setCurrentIndex(newIndex)\n }\n }\n\n // 无障碍:整列作单 slider,转子 increment/decrement 切相邻项\n const clampIndex = (index: number) => Math.max(0, Math.min(index, range.length - 1))\n // 切换后主动播报当前项:焦点停在 slider 容器上,aria 属性更新读屏不会自动重读,需主动触发\n const announceIndex = (index: number) => {\n const item = range[index]\n const content = rangeKey && item && typeof item === 'object' ? item[rangeKey] : item\n const text = content != null ? String(content) : ''\n if (!text) return\n const fn = (Taro as any).accessibilityAnnounce\n if (typeof fn !== 'function') return\n fn({ announce: text, delay: 300 })\n }\n const commitIndexByA11y = (nextIndex: number) => {\n const clamped = clampIndex(nextIndex)\n if (clamped === currentIndex) return\n isTouchingRef.current = false\n setCurrentIndex(clamped)\n scrollToIndex(clamped, true)\n updateIndex(clamped, columnId)\n onColumnChange?.({ columnId, index: clamped })\n announceIndex(clamped)\n }\n const handleAriaAction = (e: any) => {\n const actionName = e?.detail?.actionName\n if (actionName === 'increment') {\n commitIndexByA11y(currentIndex + 1)\n } else if (actionName === 'decrement') {\n commitIndexByA11y(currentIndex - 1)\n }\n }\n\n // 无障碍 label:当前项值(用 rangeKey 取显示值),仅 string 或 number(转 string)挂载,对象等其它类型不挂载\n const currentItem = range[currentIndex]\n const currentValue = rangeKey && currentItem && typeof currentItem === 'object' ? currentItem[rangeKey] : currentItem\n const ariaLabel =\n typeof currentValue === 'string'\n ? currentValue\n : typeof currentValue === 'number'\n ? String(currentValue)\n : undefined\n\n // 渲染选项\n const pickerItem = range.map((item, index) => {\n const content = rangeKey && item && typeof item === 'object' ? item[rangeKey] : item\n\n return (\n <View\n id={`picker-item-${columnId}-${index}`}\n key={index}\n ariaHidden\n className={`taro-picker__item${index === currentIndex ? ' taro-picker__item--selected' : ''}`}\n {...(enableClickItemScroll\n ? { onClick: () => scrollToItemId(`picker-item-${columnId}-${index}`) }\n : {})}\n style={{\n height: PICKER_LINE_HEIGHT,\n color: index === currentIndex\n ? (colors.itemSelectedColor || undefined)\n : (colors.itemDefaultColor || undefined)\n }}\n >\n {content}\n </View>\n )\n })\n\n const realPickerItems = [\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-top-${idx}`}\n ariaHidden\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ...pickerItem,\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-bottom-${idx}`}\n ariaHidden\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ]\n\n const clickScrollViewProps = enableClickItemScroll\n ? { scrollIntoView, scrollIntoViewAlignment: 'center' as const }\n : {}\n\n return (\n <View\n className=\"taro-picker__group\"\n style={{ position: 'relative' }}\n >\n {/* 视觉蒙层兼无障碍焦点靶:CSS 默认 pointer-events:none 保证手势穿透滚动;\n 系统读屏开启时改为 auto,便于无障碍命中 */}\n <View\n className=\"taro-picker__mask\"\n style={a11yOpen ? { pointerEvents: 'auto' } : undefined}\n ariaRole=\"slider\"\n ariaLabel={ariaLabel}\n // @ts-expect-error Taro View 未声明无障碍扩展 props\n ariaAction={[\n { name: 'increment', label: 'increment' },\n { name: 'decrement', label: 'decrement' },\n ]}\n onAriaAction={handleAriaAction}\n />\n <View\n className=\"taro-picker__indicator\"\n ariaHidden\n {...(indicatorStyle ? { style: indicatorStyle } : {})}\n />\n <ScrollView\n ref={scrollViewRef}\n scrollY\n showScrollbar={false}\n className=\"taro-picker__content\"\n ariaHidden\n style={{\n height: PICKER_LINE_HEIGHT * PICKER_VISIBLE_ITEMS,\n }}\n scrollTop={targetScrollTop}\n {...clickScrollViewProps}\n onScroll={handleScroll}\n onTouchStart={() => { isTouchingRef.current = true }}\n onScrollEnd={handleScrollEnd}\n scrollWithAnimation\n >\n {realPickerItems}\n </ScrollView>\n </View>\n )\n}\n\n// 时间选择器实现\nexport function PickerGroupTime(props: PickerGroupProps) {\n const {\n range = [],\n rangeKey,\n columnId,\n updateIndex,\n selectedIndex = 0,\n colors = {},\n timeA11yLimitFocus,\n timeA11yLimitEventNonce,\n enableClickItemScroll = true,\n } = props\n\n const indicatorStyle = colors.lineColor ? getIndicatorStyle(colors.lineColor) : null\n const [targetScrollTop, setTargetScrollTop] = React.useState(0)\n const [scrollIntoView, scrollToItemId] = usePickerItemScrollIntoView()\n const scrollViewRef = React.useRef<TaroScrollView>(null)\n const [currentIndex, setCurrentIndex] = React.useState(selectedIndex)\n const isTouchingRef = React.useRef(false)\n const a11yOpen = useA11yOpen()\n\n const lengthScaleRatioRef = React.useRef(1)\n const useMeasuredScaleRef = React.useRef(false)\n const itemHeightRef = React.useRef(PICKER_LINE_HEIGHT)\n\n // 初始化时计算 lengthScaleRatio 并判定缩放模式\n React.useEffect(() => {\n Taro.getSystemInfo({\n success: (res) => {\n lengthScaleRatioRef.current = calculateLengthScaleRatio(res)\n useMeasuredScaleRef.current = resolveUseMeasuredScale(res)\n itemHeightRef.current = calculateItemHeight(scrollViewRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n },\n fail: () => {\n lengthScaleRatioRef.current = 1\n useMeasuredScaleRef.current = false\n }\n })\n }, [])\n\n React.useEffect(() => {\n itemHeightRef.current = calculateItemHeight(scrollViewRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n }, [range.length]) // 只在range长度变化时重新计算\n\n // 滚动到指定索引(供程序化对齐与无障碍步进复用)\n const scrollToIndex = React.useCallback((index: number, withRandomOffset = false) => {\n const baseValue = index * itemHeightRef.current\n const randomOffset = withRandomOffset ? Math.random() * 0.001 : undefined\n setTargetScrollTopWithScale(setTargetScrollTop, baseValue, randomOffset, lengthScaleRatioRef.current)\n }, [])\n\n // props 的 selectedIndex 变化:滚至对应项\n React.useEffect(() => {\n if (scrollViewRef.current && range.length > 0 && !isTouchingRef.current) {\n scrollToIndex(selectedIndex)\n setCurrentIndex(selectedIndex)\n }\n }, [selectedIndex, range, scrollToIndex])\n\n // 限位回弹强制对齐:限位后即使 selectedIndex 值不变(回弹到同一边界),nonce 变化也强制重新对齐 scrollTop\n React.useEffect(() => {\n if (!timeA11yLimitEventNonce) return\n if (!scrollViewRef.current || range.length === 0 || isTouchingRef.current) return\n scrollToIndex(selectedIndex, true)\n setCurrentIndex(selectedIndex)\n // 仅被限位触发的列在回弹稳定后补播报一次修正值(nonce 两列共享,需按 columnId 过滤)\n if (timeA11yLimitFocus && timeA11yLimitFocus.columnId === columnId) {\n const item = range[selectedIndex]\n const content = rangeKey && item && typeof item === 'object' ? item[rangeKey] : item\n const text = content != null ? String(content) : ''\n const fn = (Taro as any).accessibilityAnnounce\n if (text && typeof fn === 'function') {\n fn({ announce: text, delay: 300 })\n }\n }\n }, [timeA11yLimitEventNonce]) // 仅依赖 nonce,其余用 ref\n\n // 是否处于归中状态\n const isCenterTimerId = React.useRef<NodeJS.Timeout | null>(null)\n\n // 滚动静止后归中并同步选中(保留 time 限位业务:超 start/end 由父级修正后经 selectedIndex 回弹)\n const handleScrollEnd = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n // 100ms 内无新滚动则归中并提交索引\n isCenterTimerId.current = setTimeout(() => {\n if (!scrollViewRef.current) return\n\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop, itemHeightRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n isTouchingRef.current = false\n const isLimited = Boolean(updateIndex(newIndex, columnId, true))\n // 限位时不归中:父级会通过 selectedIndex / nonce 下发修正值触发重新对齐\n if (!isLimited) {\n scrollToIndex(newIndex, true)\n }\n isCenterTimerId.current = null\n }, 100)\n }\n\n // 滚动中:按 scrollTop 更新高亮索引\n const handleScroll = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n const scrollTop = scrollViewRef.current.scrollTop\n const ih = itemHeightRef.current\n const newIndex = getSelectedIndex(scrollTop, ih, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n if (newIndex !== currentIndex) {\n setCurrentIndex(newIndex)\n }\n }\n\n // 无障碍:整列作单 slider,转子 increment/decrement 切相邻项(保留 time 限位)\n const clampIndex = (index: number) => Math.max(0, Math.min(index, range.length - 1))\n // 切换后主动播报当前项:焦点停在 slider 覆盖层上,aria 属性更新读屏不会自动重读,需主动触发\n const announceIndex = (index: number) => {\n const item = range[index]\n const content = rangeKey && item && typeof item === 'object' ? item[rangeKey] : item\n const text = content != null ? String(content) : ''\n if (!text) return\n const fn = (Taro as any).accessibilityAnnounce\n if (typeof fn !== 'function') return\n fn({ announce: text, delay: 300 })\n }\n const commitIndexByA11y = (nextIndex: number) => {\n const clamped = clampIndex(nextIndex)\n if (clamped === currentIndex) return\n isTouchingRef.current = false\n setCurrentIndex(clamped)\n scrollToIndex(clamped, true)\n // 保留 time 限位:超 start/end 时父级修正并经 selectedIndex / nonce 回弹对齐\n updateIndex(clamped, columnId, true)\n announceIndex(clamped)\n }\n const handleAriaAction = (e: any) => {\n const actionName = e?.detail?.actionName\n if (actionName === 'increment') {\n commitIndexByA11y(currentIndex + 1)\n } else if (actionName === 'decrement') {\n commitIndexByA11y(currentIndex - 1)\n }\n }\n\n // 无障碍 label:当前项值,仅 string 或 number(转 string)挂载,对象等其它类型不挂载\n const currentItem = range[currentIndex]\n const currentValue = rangeKey && currentItem && typeof currentItem === 'object' ? currentItem[rangeKey] : currentItem\n const ariaLabel =\n typeof currentValue === 'string'\n ? currentValue\n : typeof currentValue === 'number'\n ? String(currentValue)\n : undefined\n\n // 渲染选项\n const pickerItem = range.map((item, index) => {\n const content = rangeKey && item && typeof item === 'object' ? item[rangeKey] : item\n\n return (\n <View\n id={`picker-item-${columnId}-${index}`}\n key={index}\n ariaHidden\n className={`taro-picker__item${index === currentIndex ? ' taro-picker__item--selected' : ''}`}\n {...(enableClickItemScroll\n ? { onClick: () => scrollToItemId(`picker-item-${columnId}-${index}`) }\n : {})}\n style={{\n height: PICKER_LINE_HEIGHT,\n color: index === currentIndex\n ? (colors.itemSelectedColor || undefined)\n : (colors.itemDefaultColor || undefined)\n }}\n >\n {content}\n </View>\n )\n })\n\n const realPickerItems = [\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-top-${idx}`}\n ariaHidden\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ...pickerItem,\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-bottom-${idx}`}\n ariaHidden\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ]\n\n const clickScrollViewProps = enableClickItemScroll\n ? { scrollIntoView, scrollIntoViewAlignment: 'center' as const }\n : {}\n\n return (\n <View\n className=\"taro-picker__group\"\n style={{ position: 'relative' }}\n >\n {/* 视觉蒙层兼无障碍焦点靶:CSS 默认 pointer-events:none 保证手势穿透滚动;\n 系统读屏开启时改为 auto,便于无障碍命中 */}\n <View\n className=\"taro-picker__mask\"\n style={a11yOpen ? { pointerEvents: 'auto' } : undefined}\n ariaRole=\"slider\"\n ariaLabel={ariaLabel}\n // @ts-expect-error Taro View 未声明无障碍扩展 props\n ariaAction={[\n { name: 'increment', label: 'increment' },\n { name: 'decrement', label: 'decrement' },\n ]}\n onAriaAction={handleAriaAction}\n />\n <View\n className=\"taro-picker__indicator\"\n ariaHidden\n {...(indicatorStyle ? { style: indicatorStyle } : {})}\n />\n <ScrollView\n ref={scrollViewRef}\n scrollY\n showScrollbar={false}\n className=\"taro-picker__content\"\n ariaHidden\n style={{\n height: PICKER_LINE_HEIGHT * PICKER_VISIBLE_ITEMS,\n }}\n scrollTop={targetScrollTop}\n {...clickScrollViewProps}\n onScroll={handleScroll}\n onTouchStart={() => { isTouchingRef.current = true }}\n onScrollEnd={handleScrollEnd}\n scrollWithAnimation\n >\n {realPickerItems}\n </ScrollView>\n </View>\n )\n}\n\n// 日期选择器实现\nexport function PickerGroupDate(props: PickerGroupProps) {\n const {\n range = [],\n columnId,\n updateDay,\n selectedIndex = 0,\n colors = {},\n enableClickItemScroll = true,\n } = props\n\n const indicatorStyle = colors.lineColor ? getIndicatorStyle(colors.lineColor) : null\n const [targetScrollTop, setTargetScrollTop] = React.useState(0)\n const [scrollIntoView, scrollToItemId] = usePickerItemScrollIntoView()\n const scrollViewRef = React.useRef<TaroScrollView>(null)\n const [currentIndex, setCurrentIndex] = React.useState(selectedIndex)\n const isTouchingRef = React.useRef(false)\n const a11yOpen = useA11yOpen()\n\n const lengthScaleRatioRef = React.useRef(1)\n const useMeasuredScaleRef = React.useRef(false)\n const itemHeightRef = React.useRef(PICKER_LINE_HEIGHT)\n\n // 初始化时计算 lengthScaleRatio 并判定缩放模式\n React.useEffect(() => {\n Taro.getSystemInfo({\n success: (res) => {\n lengthScaleRatioRef.current = calculateLengthScaleRatio(res)\n useMeasuredScaleRef.current = resolveUseMeasuredScale(res)\n itemHeightRef.current = calculateItemHeight(scrollViewRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n },\n fail: () => {\n lengthScaleRatioRef.current = 1\n useMeasuredScaleRef.current = false\n }\n })\n }, [])\n\n React.useEffect(() => {\n itemHeightRef.current = calculateItemHeight(scrollViewRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n }, [range.length]) // 只在range长度变化时重新计算\n\n // 滚动到指定索引(供程序化对齐与无障碍步进复用)\n const scrollToIndex = React.useCallback((index: number, withRandomOffset = false) => {\n const baseValue = index * itemHeightRef.current\n const randomOffset = withRandomOffset ? Math.random() * 0.001 : undefined\n setTargetScrollTopWithScale(setTargetScrollTop, baseValue, randomOffset, lengthScaleRatioRef.current)\n }, [])\n\n // props 的 selectedIndex 变化:滚至对应项\n React.useEffect(() => {\n if (scrollViewRef.current && range.length > 0 && !isTouchingRef.current) {\n scrollToIndex(selectedIndex)\n setCurrentIndex(selectedIndex)\n }\n }, [selectedIndex, range, scrollToIndex])\n\n // 提交日期值:解析文本中的数字(移除年、月、日等后缀)后回调 updateDay\n const commitDay = (index: number) => {\n if (!updateDay) return\n const valueText = range[index] || ''\n const numericValue = parseInt(valueText.replace(/[^0-9]/g, ''))\n updateDay(isNaN(numericValue) ? 0 : numericValue, parseInt(columnId))\n }\n\n // 是否处于归中状态\n const isCenterTimerId = React.useRef<NodeJS.Timeout | null>(null)\n\n // 滚动静止后归中并同步选中\n const handleScrollEnd = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n\n // 100ms 内无新滚动则归中并提交索引\n isCenterTimerId.current = setTimeout(() => {\n if (!scrollViewRef.current) return\n\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop, itemHeightRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n\n isTouchingRef.current = false\n scrollToIndex(newIndex, true)\n commitDay(newIndex)\n isCenterTimerId.current = null\n }, 100)\n }\n\n // 滚动中:按 scrollTop 更新高亮索引\n const handleScroll = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n const scrollTop = scrollViewRef.current.scrollTop\n const ih = itemHeightRef.current\n const newIndex = getSelectedIndex(scrollTop, ih, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n if (newIndex !== currentIndex) {\n setCurrentIndex(newIndex)\n }\n }\n\n // 无障碍:整列作单 slider,转子 increment/decrement 切相邻项\n const clampIndex = (index: number) => Math.max(0, Math.min(index, range.length - 1))\n // 切换后主动播报当前项:焦点停在 slider 覆盖层上,aria 属性更新读屏不会自动重读,需主动触发\n const announceIndex = (index: number) => {\n const text = range[index] != null ? String(range[index]) : ''\n if (!text) return\n const fn = (Taro as any).accessibilityAnnounce\n if (typeof fn !== 'function') return\n fn({ announce: text, delay: 300 })\n }\n const commitIndexByA11y = (nextIndex: number) => {\n const clamped = clampIndex(nextIndex)\n if (clamped === currentIndex) return\n isTouchingRef.current = false\n setCurrentIndex(clamped)\n scrollToIndex(clamped, true)\n commitDay(clamped)\n announceIndex(clamped)\n }\n const handleAriaAction = (e: any) => {\n const actionName = e?.detail?.actionName\n if (actionName === 'increment') {\n commitIndexByA11y(currentIndex + 1)\n } else if (actionName === 'decrement') {\n commitIndexByA11y(currentIndex - 1)\n }\n }\n\n // 无障碍 label:当前项值,仅 string 或 number(转 string)挂载,对象等其它类型不挂载\n const currentValue = range[currentIndex]\n const ariaLabel =\n typeof currentValue === 'string'\n ? currentValue\n : typeof currentValue === 'number'\n ? String(currentValue)\n : undefined\n\n // 渲染选项\n const pickerItem = range.map((item, index) => {\n return (\n <View\n id={`picker-item-${columnId}-${index}`}\n key={index}\n ariaHidden\n className={`taro-picker__item${index === currentIndex ? ' taro-picker__item--selected' : ''}`}\n {...(enableClickItemScroll\n ? { onClick: () => scrollToItemId(`picker-item-${columnId}-${index}`) }\n : {})}\n style={{\n height: PICKER_LINE_HEIGHT,\n color: index === currentIndex\n ? (colors.itemSelectedColor || undefined)\n : (colors.itemDefaultColor || undefined)\n }}\n >\n {item}\n </View>\n )\n })\n\n const realPickerItems = [\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-top-${idx}`}\n ariaHidden\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ...pickerItem,\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-bottom-${idx}`}\n ariaHidden\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ]\n\n const clickScrollViewProps = enableClickItemScroll\n ? { scrollIntoView, scrollIntoViewAlignment: 'center' as const }\n : {}\n\n return (\n <View\n className=\"taro-picker__group\"\n style={{ position: 'relative' }}\n >\n {/* 视觉蒙层兼无障碍焦点靶:CSS 默认 pointer-events:none 保证手势穿透滚动;\n 系统读屏开启时改为 auto,便于无障碍命中 */}\n <View\n className=\"taro-picker__mask\"\n style={a11yOpen ? { pointerEvents: 'auto' } : undefined}\n ariaRole=\"slider\"\n ariaLabel={ariaLabel}\n // @ts-expect-error Taro View 未声明无障碍扩展 props\n ariaAction={[\n { name: 'increment', label: 'increment' },\n { name: 'decrement', label: 'decrement' },\n ]}\n onAriaAction={handleAriaAction}\n />\n <View\n className=\"taro-picker__indicator\"\n ariaHidden\n {...(indicatorStyle ? { style: indicatorStyle } : {})}\n />\n <ScrollView\n ref={scrollViewRef}\n scrollY\n showScrollbar={false}\n className=\"taro-picker__content\"\n ariaHidden\n style={{ height: PICKER_LINE_HEIGHT * PICKER_VISIBLE_ITEMS }}\n scrollTop={targetScrollTop}\n {...clickScrollViewProps}\n onScroll={handleScroll}\n onTouchStart={() => { isTouchingRef.current = true }}\n onScrollEnd={handleScrollEnd}\n scrollWithAnimation\n >\n {realPickerItems}\n </ScrollView>\n </View>\n )\n}\n\n// 地区选择器实现\nexport function PickerGroupRegion(props: PickerGroupProps) {\n const {\n range = [],\n rangeKey,\n columnId,\n updateIndex,\n selectedIndex = 0, // 使用selectedIndex参数,默认为0\n colors = {},\n enableClickItemScroll = true,\n } = props\n\n const indicatorStyle = colors.lineColor ? getIndicatorStyle(colors.lineColor) : null\n const scrollViewRef = React.useRef<TaroScrollView>(null)\n const [targetScrollTop, setTargetScrollTop] = React.useState(0)\n const [scrollIntoView, scrollToItemId] = usePickerItemScrollIntoView()\n const [currentIndex, setCurrentIndex] = React.useState(selectedIndex)\n const isTouchingRef = React.useRef(false)\n // 程序化滚动标记:开屏/受控同步预设值时置 true,避免被 region 级联门误判为用户滚动而重置后续列\n const syncScrollFromPropsRef = React.useRef(false)\n const a11yOpen = useA11yOpen()\n\n const lengthScaleRatioRef = React.useRef(1)\n const useMeasuredScaleRef = React.useRef(false)\n const itemHeightRef = React.useRef(PICKER_LINE_HEIGHT)\n\n // 初始化时计算 lengthScaleRatio 并判定缩放模式\n React.useEffect(() => {\n Taro.getSystemInfo({\n success: (res) => {\n lengthScaleRatioRef.current = calculateLengthScaleRatio(res)\n useMeasuredScaleRef.current = resolveUseMeasuredScale(res)\n itemHeightRef.current = calculateItemHeight(scrollViewRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n },\n fail: () => {\n lengthScaleRatioRef.current = 1\n useMeasuredScaleRef.current = false\n }\n })\n }, [])\n\n React.useEffect(() => {\n itemHeightRef.current = calculateItemHeight(scrollViewRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n }, [range.length]) // 只在range长度变化时重新计算\n\n // 滚动到指定索引(供程序化对齐与无障碍步进复用)\n const scrollToIndex = React.useCallback((index: number, withRandomOffset = false) => {\n const baseValue = index * itemHeightRef.current\n const randomOffset = withRandomOffset ? Math.random() * 0.001 : undefined\n setTargetScrollTopWithScale(setTargetScrollTop, baseValue, randomOffset, lengthScaleRatioRef.current)\n }, [])\n\n // props 的 selectedIndex 变化:滚至对应项,并短时标记程序化滚动(避免级联门误判)\n React.useEffect(() => {\n if (scrollViewRef.current && range.length > 0 && !isTouchingRef.current) {\n syncScrollFromPropsRef.current = true\n scrollToIndex(selectedIndex)\n setCurrentIndex(selectedIndex)\n const tid = setTimeout(() => {\n syncScrollFromPropsRef.current = false\n }, 400)\n return () => clearTimeout(tid)\n }\n }, [selectedIndex, range, scrollToIndex])\n\n // 滚动静止后归中(debounce)\n const isCenterTimerId = React.useRef<NodeJS.Timeout | null>(null)\n const handleScrollEnd = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n // 100ms 内无新滚动则归中并提交索引\n isCenterTimerId.current = setTimeout(() => {\n if (!scrollViewRef.current) return\n\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop, itemHeightRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n\n // 程序化滚动(受控同步预设值)不触发级联初始化,仅用户滚动才翻转初始化标志并重置后续列\n const isUserScroll = !syncScrollFromPropsRef.current\n isTouchingRef.current = false\n scrollToIndex(newIndex, true)\n updateIndex(newIndex, columnId, false, isUserScroll)\n syncScrollFromPropsRef.current = false\n isCenterTimerId.current = null\n }, 100)\n }\n\n // 滚动中:按 scrollTop 更新高亮索引\n const handleScroll = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n // 用户触摸滚动立即清程序化标志,使其 scrollEnd 被正确判为用户滚动(触发 region 级联)\n if (isTouchingRef.current) {\n syncScrollFromPropsRef.current = false\n }\n const scrollTop = scrollViewRef.current.scrollTop\n const ih = itemHeightRef.current\n const newIndex = getSelectedIndex(scrollTop, ih, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n if (newIndex !== currentIndex) {\n setCurrentIndex(newIndex)\n }\n }\n\n // 无障碍:整列作单 slider,转子 increment/decrement 切相邻项\n const clampIndex = (index: number) => Math.max(0, Math.min(index, range.length - 1))\n // 切换后主动播报当前项:焦点停在 slider 覆盖层上,aria 属性更新读屏不会自动重读,需主动触发\n const announceIndex = (index: number) => {\n const item = range[index]\n const content = rangeKey && item && typeof item === 'object' ? item[rangeKey] : item\n const text = content != null ? String(content) : ''\n if (!text) return\n const fn = (Taro as any).accessibilityAnnounce\n if (typeof fn !== 'function') return\n fn({ announce: text, delay: 300 })\n }\n const commitIndexByA11y = (nextIndex: number) => {\n const clamped = clampIndex(nextIndex)\n if (clamped === currentIndex) return\n isTouchingRef.current = false\n setCurrentIndex(clamped)\n scrollToIndex(clamped, true)\n updateIndex(clamped, columnId, false, true)\n announceIndex(clamped)\n }\n const handleAriaAction = (e: any) => {\n const actionName = e?.detail?.actionName\n if (actionName === 'increment') {\n commitIndexByA11y(currentIndex + 1)\n } else if (actionName === 'decrement') {\n commitIndexByA11y(currentIndex - 1)\n }\n }\n\n // 无障碍 label:当前项值(region 用 rangeKey 取显示值),仅 string 或 number 挂载\n const currentItem = range[currentIndex]\n const currentValue = rangeKey && currentItem && typeof currentItem === 'object' ? currentItem[rangeKey] : currentItem\n const ariaLabel =\n typeof currentValue === 'string'\n ? currentValue\n : typeof currentValue === 'number'\n ? String(currentValue)\n : undefined\n\n // 渲染选项\n const pickerItem = range.map((item, index) => {\n const content = rangeKey && item && typeof item === 'object' ? item[rangeKey] : item\n\n return (\n <View\n id={`picker-item-${columnId}-${index}`}\n key={index}\n ariaHidden\n className={`taro-picker__item${index === currentIndex ? ' taro-picker__item--selected' : ''}`}\n {...(enableClickItemScroll\n ? { onClick: () => scrollToItemId(`picker-item-${columnId}-${index}`) }\n : {})}\n style={{\n height: PICKER_LINE_HEIGHT,\n color: index === currentIndex\n ? (colors.itemSelectedColor || undefined)\n : (colors.itemDefaultColor || undefined)\n }}\n >\n {content}\n </View>\n )\n })\n\n const realPickerItems = [\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-top-${idx}`}\n ariaHidden\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ...pickerItem,\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-bottom-${idx}`}\n ariaHidden\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ]\n const clickScrollViewProps = enableClickItemScroll\n ? { scrollIntoView, scrollIntoViewAlignment: 'center' as const }\n : {}\n\n return (\n <View\n className=\"taro-picker__group\"\n style={{ position: 'relative' }}\n >\n {/* 视觉蒙层兼无障碍焦点靶:CSS 默认 pointer-events:none 保证手势穿透滚动;\n 系统读屏开启时改为 auto,便于无障碍命中 */}\n <View\n className=\"taro-picker__mask\"\n style={a11yOpen ? { pointerEvents: 'auto' } : undefined}\n ariaRole=\"slider\"\n ariaLabel={ariaLabel}\n // @ts-expect-error Taro View 未声明无障碍扩展 props\n ariaAction={[\n { name: 'increment', label: 'increment' },\n { name: 'decrement', label: 'decrement' },\n ]}\n onAriaAction={handleAriaAction}\n />\n <View\n className=\"taro-picker__indicator\"\n ariaHidden\n {...(indicatorStyle ? { style: indicatorStyle } : {})}\n />\n <ScrollView\n ref={scrollViewRef}\n scrollY\n showScrollbar={false}\n className=\"taro-picker__content\"\n ariaHidden\n style={{ height: PICKER_LINE_HEIGHT * PICKER_VISIBLE_ITEMS }}\n scrollTop={targetScrollTop}\n {...clickScrollViewProps}\n onScroll={handleScroll}\n onTouchStart={() => { isTouchingRef.current = true }}\n onScrollEnd={handleScrollEnd}\n scrollWithAnimation\n >\n {realPickerItems}\n </ScrollView>\n </View>\n )\n}\n\n// 新版无障碍(slider 遮挡方案),根据 mode 自动分发\nexport function PickerGroupSlider(props: PickerGroupProps) {\n switch (props.mode) {\n case 'time':\n return <PickerGroupTime {...props} />\n case 'date':\n return <PickerGroupDate {...props} />\n case 'region':\n return <PickerGroupRegion {...props} />\n default:\n return <PickerGroupBasic {...props} />\n }\n}\n"],"names":["usePickerItemScrollIntoView","scrollIntoView","setScrollIntoView","React","useState","pulseRef","useRef","scrollToItemId","useCallback","itemId","current","token","setTimeout","useA11yOpen","a11yOpen","setA11yOpen","useEffect","Taro","checkIsOpenAccessibility","then","res","open","catch","PICKER_LINE_HEIGHT","PICKER_VISIBLE_ITEMS","PICKER_BLANK_ITEMS","getIndicatorStyle","lineColor","borderTopColor","borderBottomColor","MIN_DESIGN_APP_VERSION","resolveUseMeasuredScale","process","env","TARO_ENV","designAppVersionRaw","designAppVersion","designAppVersionMajor","parseInt","String","trim","Number","NaN","isFinite","platform","toLowerCase","calculateLengthScaleRatio","lengthScaleRatio","console","warn","windowWidth","shortSide","windowHeight","isBigScreen","setTargetScrollTopWithScale","setTargetScrollTop","baseValue","randomOffset","arguments","length","undefined","finalValue","TARO_PLATFORM","scaledValue","getSelectedIndex","scrollTop","itemHeight","useMeasuredScale","Math","round","calculateItemHeight","scrollView","scrollHeight","childNodes","PickerGroupBasic","props","range","rangeKey","columnId","updateIndex","onColumnChange","selectedIndex","colors","enableClickItemScroll","indicatorStyle","targetScrollTop","scrollViewRef","currentIndex","setCurrentIndex","isTouchingRef","lengthScaleRatioRef","useMeasuredScaleRef","itemHeightRef","getSystemInfo","success","fail","scrollToIndex","index","withRandomOffset","random","isCenterTimerId","handleScrollEnd","clearTimeout","newIndex","handleScroll","ih","clampIndex","max","min","announceIndex","item","content","text","fn","accessibilityAnnounce","announce","delay","commitIndexByA11y","nextIndex","clamped","handleAriaAction","e","actionName","_a","detail","currentItem","currentValue","ariaLabel","pickerItem","map","_jsx","View","id","ariaHidden","className","onClick","style","height","color","itemSelectedColor","itemDefaultColor","children","realPickerItems","Array","fill","_","idx","clickScrollViewProps","scrollIntoViewAlignment","_jsxs","position","pointerEvents","ariaRole","ariaAction","name","label","onAriaAction","ScrollView","ref","scrollY","showScrollbar","onScroll","onTouchStart","onScrollEnd","scrollWithAnimation","PickerGroupTime","timeA11yLimitFocus","timeA11yLimitEventNonce","isLimited","Boolean","PickerGroupDate","updateDay","commitDay","valueText","numericValue","replace","isNaN","PickerGroupRegion","syncScrollFromPropsRef","tid","isUserScroll","PickerGroupSlider","mode"],"mappings":"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"}
1
+ {"version":3,"file":"picker-group-slider.js","sources":["../../../../src/components/picker/picker-group-slider.tsx"],"sourcesContent":["import { ScrollView, View } from '@tarojs/components'\nimport Taro from '@tarojs/taro'\nimport * as React from 'react'\n\nimport type { PickerGroupProps } from './picker-group'\n\n// 添加类型定义\ntype TaroScrollView = React.ElementRef<typeof ScrollView>\n\n/** 部分端同 id 连续 scrollIntoView 不生效:先清空再在下一宏任务设回目标 id */\nfunction usePickerItemScrollIntoView(): [string, (itemId: string) => void] {\n const [scrollIntoView, setScrollIntoView] = React.useState('')\n const pulseRef = React.useRef(0)\n\n const scrollToItemId = React.useCallback((itemId: string) => {\n pulseRef.current += 1\n const token = pulseRef.current\n setScrollIntoView('')\n setTimeout(() => {\n if (pulseRef.current !== token) return\n setScrollIntoView(itemId)\n }, 0)\n }, [])\n\n return [scrollIntoView, scrollToItemId]\n}\n\n/** 系统读屏是否开启:开启时 mask 需可命中(关掉 pointer-events:none) */\nfunction useA11yOpen(): boolean {\n const [a11yOpen, setA11yOpen] = React.useState(false)\n React.useEffect(() => {\n Taro.checkIsOpenAccessibility({})\n .then((res) => {\n setA11yOpen(!!(res as Taro.checkIsOpenAccessibility.SuccessCallbackResult).open)\n })\n .catch(() => {})\n }, [])\n return a11yOpen\n}\n\n// 定义常量\nconst PICKER_LINE_HEIGHT = 34 // px\nconst PICKER_VISIBLE_ITEMS = 7 // 可见行数\nconst PICKER_BLANK_ITEMS = 3 // 空白行数\n\nconst getIndicatorStyle = (lineColor: string): React.CSSProperties => {\n return {\n borderTopColor: lineColor,\n borderBottomColor: lineColor\n }\n}\n\n// 大屏方案版本要求\nconst MIN_DESIGN_APP_VERSION = 16\n// 判断是否启用测量值缩放适配(true=启用, false=使用系统侧缩放)\nconst resolveUseMeasuredScale = (res: Taro.getSystemInfo.Result): boolean => {\n // H5/weapp 不参与大屏系数\n if (process.env.TARO_ENV === 'h5' || process.env.TARO_ENV === 'weapp') {\n return false\n }\n\n const designAppVersionRaw = (res as any).designAppVersion\n const designAppVersionMajor = designAppVersionRaw != null ? parseInt(String(designAppVersionRaw).trim(), 10) : Number.NaN\n if (!Number.isFinite(designAppVersionMajor) || designAppVersionMajor < MIN_DESIGN_APP_VERSION) {\n return false\n }\n\n const platform = String((res as any).platform || '').toLowerCase()\n if (platform === 'harmony' || platform === 'android' || platform === 'ios') {\n return true\n }\n\n return false\n}\n\n// 辅助函数:计算 lengthScaleRatio\nconst calculateLengthScaleRatio = (res: Taro.getSystemInfo.Result): number => {\n let lengthScaleRatio = (res as any)?.lengthScaleRatio\n if (lengthScaleRatio == null || lengthScaleRatio === 0) {\n console.warn('Taro.getSystemInfo: lengthScaleRatio 不存在,使用计算值')\n lengthScaleRatio = 1\n if (res.windowWidth < 320) {\n lengthScaleRatio = res.windowWidth / 320\n } else if (res.windowWidth >= 400 && res.windowWidth < 600) {\n lengthScaleRatio = res.windowWidth / 400\n }\n const shortSide = res.windowWidth < res.windowHeight ? res.windowWidth : res.windowHeight\n const isBigScreen = shortSide >= 600\n if (isBigScreen) {\n lengthScaleRatio = shortSide / 720\n }\n }\n return lengthScaleRatio\n}\n\n// 辅助函数:获取系统信息的 lengthScaleRatio 并设置 targetScrollTop\nconst setTargetScrollTopWithScale = (\n setTargetScrollTop: (value: number) => void,\n baseValue: number,\n randomOffset?: number,\n lengthScaleRatio: number = 1,\n) => {\n // H5 和 weapp 不参与放大计算,直接使用 baseValue\n if (process.env.TARO_ENV === 'h5' || process.env.TARO_ENV === 'weapp') {\n const finalValue = randomOffset !== undefined ? baseValue + randomOffset : baseValue\n setTargetScrollTop(finalValue)\n return\n }\n\n if (process.env.TARO_PLATFORM === 'harmony') {\n const scaledValue = baseValue\n const finalValue = randomOffset !== undefined ? scaledValue + randomOffset : scaledValue\n setTargetScrollTop(finalValue)\n } else {\n const scaledValue = baseValue * lengthScaleRatio\n const finalValue = randomOffset !== undefined ? scaledValue + randomOffset : scaledValue\n setTargetScrollTop(finalValue)\n }\n}\n\n// 根据 scrollTop 计算选中索引\n// 系统侧缩放模式:scrollHeight 已被系统缩放,直接相除即可\n// 自行缩放模式:需要除以 ratio 换算(harmony 特殊处理,ratio 已内嵌在 itemHeight 中)\nconst getSelectedIndex = (scrollTop: number, itemHeight: number, lengthScaleRatio: number = 1, useMeasuredScale: boolean = false): number => {\n if (!useMeasuredScale || process.env.TARO_PLATFORM === 'harmony') {\n return Math.round(scrollTop / itemHeight)\n }\n return Math.round(scrollTop / lengthScaleRatio / itemHeight)\n}\n\n// 计算单项高度(返回设计稿值)\nconst calculateItemHeight = (\n scrollView: TaroScrollView | null,\n lengthScaleRatio: number,\n useMeasuredScale: boolean = false,\n): number => {\n if (process.env.TARO_PLATFORM === 'harmony') {\n return useMeasuredScale ? PICKER_LINE_HEIGHT * lengthScaleRatio : PICKER_LINE_HEIGHT\n }\n if (scrollView && scrollView?.scrollHeight) {\n return useMeasuredScale\n ? scrollView.scrollHeight / lengthScaleRatio / scrollView.childNodes.length\n : scrollView.scrollHeight / scrollView.childNodes.length\n }\n console.warn('Height measurement anomaly')\n return PICKER_LINE_HEIGHT\n}\n\nexport function PickerGroupBasic(props: PickerGroupProps) {\n const {\n range = [],\n rangeKey,\n columnId,\n updateIndex,\n onColumnChange,\n selectedIndex = 0, // 使用selectedIndex参数,默认为0\n colors = {},\n enableClickItemScroll = true,\n } = props\n const indicatorStyle = colors.lineColor ? getIndicatorStyle(colors.lineColor) : null\n const [targetScrollTop, setTargetScrollTop] = React.useState(0)\n const [scrollIntoView, scrollToItemId] = usePickerItemScrollIntoView()\n const scrollViewRef = React.useRef<TaroScrollView>(null)\n // 使用selectedIndex初始化当前索引\n const [currentIndex, setCurrentIndex] = React.useState(selectedIndex)\n // 触摸状态用于优化用户体验\n const isTouchingRef = React.useRef(false)\n // 系统读屏开启时关闭 mask 的 pointer-events:none,便于无障碍命中;未开启则保持穿透以便手势滚动\n const a11yOpen = useA11yOpen()\n\n const lengthScaleRatioRef = React.useRef(1)\n const useMeasuredScaleRef = React.useRef(false)\n const itemHeightRef = React.useRef(PICKER_LINE_HEIGHT)\n\n // 初始化时计算 lengthScaleRatio 并判定缩放模式\n React.useEffect(() => {\n Taro.getSystemInfo({\n success: (res) => {\n lengthScaleRatioRef.current = calculateLengthScaleRatio(res)\n useMeasuredScaleRef.current = resolveUseMeasuredScale(res)\n itemHeightRef.current = calculateItemHeight(scrollViewRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n },\n fail: () => {\n lengthScaleRatioRef.current = 1\n useMeasuredScaleRef.current = false\n }\n })\n }, [])\n\n React.useEffect(() => {\n itemHeightRef.current = calculateItemHeight(scrollViewRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n }, [range.length]) // 只在range长度变化时重新计算\n\n // 滚动到指定索引(供程序化对齐与无障碍步进复用)\n const scrollToIndex = React.useCallback((index: number, withRandomOffset = false) => {\n const baseValue = index * itemHeightRef.current\n const randomOffset = withRandomOffset ? Math.random() * 0.001 : undefined\n setTargetScrollTopWithScale(setTargetScrollTop, baseValue, randomOffset, lengthScaleRatioRef.current)\n }, [])\n\n // props 的 selectedIndex 变化:滚至对应项\n React.useEffect(() => {\n if (scrollViewRef.current && range.length > 0 && !isTouchingRef.current) {\n scrollToIndex(selectedIndex)\n setCurrentIndex(selectedIndex)\n }\n }, [selectedIndex, range, scrollToIndex])\n\n // 是否处于归中状态\n const isCenterTimerId = React.useRef<NodeJS.Timeout | null>(null)\n // 滚动静止后归中并同步选中\n const handleScrollEnd = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n // 100ms 内无新滚动则归中并提交索引\n isCenterTimerId.current = setTimeout(() => {\n if (!scrollViewRef.current) return\n\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop, itemHeightRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n\n isTouchingRef.current = false\n scrollToIndex(newIndex, true)\n updateIndex(newIndex, columnId)\n onColumnChange?.({ columnId, index: newIndex })\n isCenterTimerId.current = null\n }, 100)\n }\n // 滚动中:按 scrollTop 更新高亮索引\n const handleScroll = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n const scrollTop = scrollViewRef.current.scrollTop\n const ih = itemHeightRef.current\n const newIndex = getSelectedIndex(scrollTop, ih, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n if (newIndex !== currentIndex) {\n setCurrentIndex(newIndex)\n }\n }\n\n // 无障碍:整列作单 slider,转子 increment/decrement 切相邻项\n const clampIndex = (index: number) => Math.max(0, Math.min(index, range.length - 1))\n // 切换后主动播报当前项:焦点停在 slider 容器上,aria 属性更新读屏不会自动重读,需主动触发\n const announceIndex = (index: number) => {\n const item = range[index]\n const content = rangeKey && item && typeof item === 'object' ? item[rangeKey] : item\n const text = content != null ? String(content) : ''\n if (!text) return\n const fn = (Taro as any).accessibilityAnnounce\n if (typeof fn !== 'function') return\n fn({ announce: text, delay: 300 })\n }\n const commitIndexByA11y = (nextIndex: number) => {\n const clamped = clampIndex(nextIndex)\n if (clamped === currentIndex) return\n isTouchingRef.current = false\n setCurrentIndex(clamped)\n scrollToIndex(clamped, true)\n updateIndex(clamped, columnId)\n onColumnChange?.({ columnId, index: clamped })\n announceIndex(clamped)\n }\n const handleAriaAction = (e: any) => {\n const actionName = e?.detail?.actionName\n if (actionName === 'increment') {\n commitIndexByA11y(currentIndex + 1)\n } else if (actionName === 'decrement') {\n commitIndexByA11y(currentIndex - 1)\n }\n }\n\n // 无障碍 label:当前项值(用 rangeKey 取显示值),仅 string 或 number(转 string)挂载,对象等其它类型不挂载\n const currentItem = range[currentIndex]\n const currentValue = rangeKey && currentItem && typeof currentItem === 'object' ? currentItem[rangeKey] : currentItem\n const ariaLabel =\n typeof currentValue === 'string'\n ? currentValue\n : typeof currentValue === 'number'\n ? String(currentValue)\n : undefined\n\n // 渲染选项\n const pickerItem = range.map((item, index) => {\n const content = rangeKey && item && typeof item === 'object' ? item[rangeKey] : item\n\n return (\n <View\n id={`picker-item-${columnId}-${index}`}\n key={index}\n ariaHidden\n className={`taro-picker__item${index === currentIndex ? ' taro-picker__item--selected' : ''}`}\n {...(enableClickItemScroll\n ? { onClick: () => scrollToItemId(`picker-item-${columnId}-${index}`) }\n : {})}\n style={{\n height: PICKER_LINE_HEIGHT,\n color: index === currentIndex\n ? (colors.itemSelectedColor || undefined)\n : (colors.itemDefaultColor || undefined)\n }}\n >\n {content}\n </View>\n )\n })\n\n const realPickerItems = [\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-top-${idx}`}\n ariaHidden\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ...pickerItem,\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-bottom-${idx}`}\n ariaHidden\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ]\n\n const clickScrollViewProps = enableClickItemScroll\n ? { scrollIntoView, scrollIntoViewAlignment: 'center' as const }\n : {}\n\n return (\n <View\n className=\"taro-picker__group\"\n style={{ position: 'relative' }}\n >\n {/* 视觉蒙层兼无障碍焦点靶:CSS 默认 pointer-events:none 保证手势穿透滚动;\n 系统读屏开启时改为 auto,便于无障碍命中 */}\n <View\n className=\"taro-picker__mask\"\n style={a11yOpen ? { pointerEvents: 'auto' } : undefined}\n ariaRole=\"slider\"\n ariaLabel={ariaLabel}\n // @ts-expect-error Taro View 未声明无障碍扩展 props\n ariaAction={[\n { name: 'increment', label: 'increment' },\n { name: 'decrement', label: 'decrement' },\n ]}\n onAriaAction={handleAriaAction}\n />\n <View\n className=\"taro-picker__indicator\"\n ariaHidden\n {...(indicatorStyle ? { style: indicatorStyle } : {})}\n />\n <ScrollView\n ref={scrollViewRef}\n scrollY\n showScrollbar={false}\n className=\"taro-picker__content\"\n ariaHidden\n style={{\n height: PICKER_LINE_HEIGHT * PICKER_VISIBLE_ITEMS,\n }}\n scrollTop={targetScrollTop}\n {...clickScrollViewProps}\n onScroll={handleScroll}\n onTouchStart={() => { isTouchingRef.current = true }}\n onScrollEnd={handleScrollEnd}\n scrollWithAnimation\n >\n {realPickerItems}\n </ScrollView>\n </View>\n )\n}\n\n// 时间选择器实现\nexport function PickerGroupTime(props: PickerGroupProps) {\n const {\n range = [],\n rangeKey,\n columnId,\n updateIndex,\n selectedIndex = 0,\n colors = {},\n timeA11yLimitFocus,\n timeA11yLimitEventNonce,\n enableClickItemScroll = true,\n } = props\n\n const indicatorStyle = colors.lineColor ? getIndicatorStyle(colors.lineColor) : null\n const [targetScrollTop, setTargetScrollTop] = React.useState(0)\n const [scrollIntoView, scrollToItemId] = usePickerItemScrollIntoView()\n const scrollViewRef = React.useRef<TaroScrollView>(null)\n const [currentIndex, setCurrentIndex] = React.useState(selectedIndex)\n const isTouchingRef = React.useRef(false)\n const a11yOpen = useA11yOpen()\n\n const lengthScaleRatioRef = React.useRef(1)\n const useMeasuredScaleRef = React.useRef(false)\n const itemHeightRef = React.useRef(PICKER_LINE_HEIGHT)\n\n // 初始化时计算 lengthScaleRatio 并判定缩放模式\n React.useEffect(() => {\n Taro.getSystemInfo({\n success: (res) => {\n lengthScaleRatioRef.current = calculateLengthScaleRatio(res)\n useMeasuredScaleRef.current = resolveUseMeasuredScale(res)\n itemHeightRef.current = calculateItemHeight(scrollViewRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n },\n fail: () => {\n lengthScaleRatioRef.current = 1\n useMeasuredScaleRef.current = false\n }\n })\n }, [])\n\n React.useEffect(() => {\n itemHeightRef.current = calculateItemHeight(scrollViewRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n }, [range.length]) // 只在range长度变化时重新计算\n\n // 滚动到指定索引(供程序化对齐与无障碍步进复用)\n const scrollToIndex = React.useCallback((index: number, withRandomOffset = false) => {\n const baseValue = index * itemHeightRef.current\n const randomOffset = withRandomOffset ? Math.random() * 0.001 : undefined\n setTargetScrollTopWithScale(setTargetScrollTop, baseValue, randomOffset, lengthScaleRatioRef.current)\n }, [])\n\n // props 的 selectedIndex 变化:滚至对应项\n React.useEffect(() => {\n if (scrollViewRef.current && range.length > 0 && !isTouchingRef.current) {\n scrollToIndex(selectedIndex)\n setCurrentIndex(selectedIndex)\n }\n }, [selectedIndex, range, scrollToIndex])\n\n // 限位回弹强制对齐:限位后即使 selectedIndex 值不变(回弹到同一边界),nonce 变化也强制重新对齐 scrollTop\n React.useEffect(() => {\n if (!timeA11yLimitEventNonce) return\n if (!scrollViewRef.current || range.length === 0 || isTouchingRef.current) return\n scrollToIndex(selectedIndex, true)\n setCurrentIndex(selectedIndex)\n // 仅被限位触发的列在回弹稳定后补播报一次修正值(nonce 两列共享,需按 columnId 过滤)\n if (timeA11yLimitFocus && timeA11yLimitFocus.columnId === columnId) {\n const item = range[selectedIndex]\n const content = rangeKey && item && typeof item === 'object' ? item[rangeKey] : item\n const text = content != null ? String(content) : ''\n const fn = (Taro as any).accessibilityAnnounce\n if (text && typeof fn === 'function') {\n fn({ announce: text, delay: 300 })\n }\n }\n }, [timeA11yLimitEventNonce]) // 仅依赖 nonce,其余用 ref\n\n // 是否处于归中状态\n const isCenterTimerId = React.useRef<NodeJS.Timeout | null>(null)\n\n // 滚动静止后归中并同步选中(保留 time 限位业务:超 start/end 由父级修正后经 selectedIndex 回弹)\n const handleScrollEnd = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n // 100ms 内无新滚动则归中并提交索引\n isCenterTimerId.current = setTimeout(() => {\n if (!scrollViewRef.current) return\n\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop, itemHeightRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n isTouchingRef.current = false\n const isLimited = Boolean(updateIndex(newIndex, columnId, true))\n // 限位时不归中:父级会通过 selectedIndex / nonce 下发修正值触发重新对齐\n if (!isLimited) {\n scrollToIndex(newIndex, true)\n }\n isCenterTimerId.current = null\n }, 100)\n }\n\n // 滚动中:按 scrollTop 更新高亮索引\n const handleScroll = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n const scrollTop = scrollViewRef.current.scrollTop\n const ih = itemHeightRef.current\n const newIndex = getSelectedIndex(scrollTop, ih, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n if (newIndex !== currentIndex) {\n setCurrentIndex(newIndex)\n }\n }\n\n // 无障碍:整列作单 slider,转子 increment/decrement 切相邻项(保留 time 限位)\n const clampIndex = (index: number) => Math.max(0, Math.min(index, range.length - 1))\n // 切换后主动播报当前项:焦点停在 slider 覆盖层上,aria 属性更新读屏不会自动重读,需主动触发\n const announceIndex = (index: number) => {\n const item = range[index]\n const content = rangeKey && item && typeof item === 'object' ? item[rangeKey] : item\n const text = content != null ? String(content) : ''\n if (!text) return\n const fn = (Taro as any).accessibilityAnnounce\n if (typeof fn !== 'function') return\n fn({ announce: text, delay: 300 })\n }\n const commitIndexByA11y = (nextIndex: number) => {\n const clamped = clampIndex(nextIndex)\n if (clamped === currentIndex) return\n isTouchingRef.current = false\n setCurrentIndex(clamped)\n scrollToIndex(clamped, true)\n // 保留 time 限位:超 start/end 时父级修正并经 selectedIndex / nonce 回弹对齐\n updateIndex(clamped, columnId, true)\n announceIndex(clamped)\n }\n const handleAriaAction = (e: any) => {\n const actionName = e?.detail?.actionName\n if (actionName === 'increment') {\n commitIndexByA11y(currentIndex + 1)\n } else if (actionName === 'decrement') {\n commitIndexByA11y(currentIndex - 1)\n }\n }\n\n // 无障碍 label:当前项值,仅 string 或 number(转 string)挂载,对象等其它类型不挂载\n const currentItem = range[currentIndex]\n const currentValue = rangeKey && currentItem && typeof currentItem === 'object' ? currentItem[rangeKey] : currentItem\n const ariaLabel =\n typeof currentValue === 'string'\n ? currentValue\n : typeof currentValue === 'number'\n ? String(currentValue)\n : undefined\n\n // 渲染选项\n const pickerItem = range.map((item, index) => {\n const content = rangeKey && item && typeof item === 'object' ? item[rangeKey] : item\n\n return (\n <View\n id={`picker-item-${columnId}-${index}`}\n key={index}\n ariaHidden\n className={`taro-picker__item${index === currentIndex ? ' taro-picker__item--selected' : ''}`}\n {...(enableClickItemScroll\n ? { onClick: () => scrollToItemId(`picker-item-${columnId}-${index}`) }\n : {})}\n style={{\n height: PICKER_LINE_HEIGHT,\n color: index === currentIndex\n ? (colors.itemSelectedColor || undefined)\n : (colors.itemDefaultColor || undefined)\n }}\n >\n {content}\n </View>\n )\n })\n\n const realPickerItems = [\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-top-${idx}`}\n ariaHidden\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ...pickerItem,\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-bottom-${idx}`}\n ariaHidden\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ]\n\n const clickScrollViewProps = enableClickItemScroll\n ? { scrollIntoView, scrollIntoViewAlignment: 'center' as const }\n : {}\n\n return (\n <View\n className=\"taro-picker__group\"\n style={{ position: 'relative' }}\n >\n {/* 视觉蒙层兼无障碍焦点靶:CSS 默认 pointer-events:none 保证手势穿透滚动;\n 系统读屏开启时改为 auto,便于无障碍命中 */}\n <View\n className=\"taro-picker__mask\"\n style={a11yOpen ? { pointerEvents: 'auto' } : undefined}\n ariaRole=\"slider\"\n ariaLabel={ariaLabel}\n // @ts-expect-error Taro View 未声明无障碍扩展 props\n ariaAction={[\n { name: 'increment', label: 'increment' },\n { name: 'decrement', label: 'decrement' },\n ]}\n onAriaAction={handleAriaAction}\n />\n <View\n className=\"taro-picker__indicator\"\n ariaHidden\n {...(indicatorStyle ? { style: indicatorStyle } : {})}\n />\n <ScrollView\n ref={scrollViewRef}\n scrollY\n showScrollbar={false}\n className=\"taro-picker__content\"\n ariaHidden\n style={{\n height: PICKER_LINE_HEIGHT * PICKER_VISIBLE_ITEMS,\n }}\n scrollTop={targetScrollTop}\n {...clickScrollViewProps}\n onScroll={handleScroll}\n onTouchStart={() => { isTouchingRef.current = true }}\n onScrollEnd={handleScrollEnd}\n scrollWithAnimation\n >\n {realPickerItems}\n </ScrollView>\n </View>\n )\n}\n\n// 日期选择器实现\nexport function PickerGroupDate(props: PickerGroupProps) {\n const {\n range = [],\n columnId,\n updateDay,\n selectedIndex = 0,\n colors = {},\n enableClickItemScroll = true,\n } = props\n\n const indicatorStyle = colors.lineColor ? getIndicatorStyle(colors.lineColor) : null\n const [targetScrollTop, setTargetScrollTop] = React.useState(0)\n const [scrollIntoView, scrollToItemId] = usePickerItemScrollIntoView()\n const scrollViewRef = React.useRef<TaroScrollView>(null)\n const [currentIndex, setCurrentIndex] = React.useState(selectedIndex)\n const isTouchingRef = React.useRef(false)\n const a11yOpen = useA11yOpen()\n\n const lengthScaleRatioRef = React.useRef(1)\n const useMeasuredScaleRef = React.useRef(false)\n const itemHeightRef = React.useRef(PICKER_LINE_HEIGHT)\n\n // 初始化时计算 lengthScaleRatio 并判定缩放模式\n React.useEffect(() => {\n Taro.getSystemInfo({\n success: (res) => {\n lengthScaleRatioRef.current = calculateLengthScaleRatio(res)\n useMeasuredScaleRef.current = resolveUseMeasuredScale(res)\n itemHeightRef.current = calculateItemHeight(scrollViewRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n },\n fail: () => {\n lengthScaleRatioRef.current = 1\n useMeasuredScaleRef.current = false\n }\n })\n }, [])\n\n React.useEffect(() => {\n itemHeightRef.current = calculateItemHeight(scrollViewRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n }, [range.length]) // 只在range长度变化时重新计算\n\n // 滚动到指定索引(供程序化对齐与无障碍步进复用)\n const scrollToIndex = React.useCallback((index: number, withRandomOffset = false) => {\n const baseValue = index * itemHeightRef.current\n const randomOffset = withRandomOffset ? Math.random() * 0.001 : undefined\n setTargetScrollTopWithScale(setTargetScrollTop, baseValue, randomOffset, lengthScaleRatioRef.current)\n }, [])\n\n // props 的 selectedIndex 变化:滚至对应项\n React.useEffect(() => {\n if (scrollViewRef.current && range.length > 0 && !isTouchingRef.current) {\n scrollToIndex(selectedIndex)\n setCurrentIndex(selectedIndex)\n }\n }, [selectedIndex, range, scrollToIndex])\n\n // 提交日期值:解析文本中的数字(移除年、月、日等后缀)后回调 updateDay\n const commitDay = (index: number) => {\n if (!updateDay) return\n const valueText = range[index] || ''\n const numericValue = parseInt(valueText.replace(/[^0-9]/g, ''))\n updateDay(isNaN(numericValue) ? 0 : numericValue, parseInt(columnId))\n }\n\n // 是否处于归中状态\n const isCenterTimerId = React.useRef<NodeJS.Timeout | null>(null)\n\n // 滚动静止后归中并同步选中\n const handleScrollEnd = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n\n // 100ms 内无新滚动则归中并提交索引\n isCenterTimerId.current = setTimeout(() => {\n if (!scrollViewRef.current) return\n\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop, itemHeightRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n\n isTouchingRef.current = false\n scrollToIndex(newIndex, true)\n commitDay(newIndex)\n isCenterTimerId.current = null\n }, 100)\n }\n\n // 滚动中:按 scrollTop 更新高亮索引\n const handleScroll = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n const scrollTop = scrollViewRef.current.scrollTop\n const ih = itemHeightRef.current\n const newIndex = getSelectedIndex(scrollTop, ih, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n if (newIndex !== currentIndex) {\n setCurrentIndex(newIndex)\n }\n }\n\n // 无障碍:整列作单 slider,转子 increment/decrement 切相邻项\n const clampIndex = (index: number) => Math.max(0, Math.min(index, range.length - 1))\n // 切换后主动播报当前项:焦点停在 slider 覆盖层上,aria 属性更新读屏不会自动重读,需主动触发\n const announceIndex = (index: number) => {\n const text = range[index] != null ? String(range[index]) : ''\n if (!text) return\n const fn = (Taro as any).accessibilityAnnounce\n if (typeof fn !== 'function') return\n fn({ announce: text, delay: 300 })\n }\n const commitIndexByA11y = (nextIndex: number) => {\n const clamped = clampIndex(nextIndex)\n if (clamped === currentIndex) return\n isTouchingRef.current = false\n setCurrentIndex(clamped)\n scrollToIndex(clamped, true)\n commitDay(clamped)\n announceIndex(clamped)\n }\n const handleAriaAction = (e: any) => {\n const actionName = e?.detail?.actionName\n if (actionName === 'increment') {\n commitIndexByA11y(currentIndex + 1)\n } else if (actionName === 'decrement') {\n commitIndexByA11y(currentIndex - 1)\n }\n }\n\n // 无障碍 label:当前项值,仅 string 或 number(转 string)挂载,对象等其它类型不挂载\n const currentValue = range[currentIndex]\n const ariaLabel =\n typeof currentValue === 'string'\n ? currentValue\n : typeof currentValue === 'number'\n ? String(currentValue)\n : undefined\n\n // 渲染选项\n const pickerItem = range.map((item, index) => {\n return (\n <View\n id={`picker-item-${columnId}-${index}`}\n key={index}\n ariaHidden\n className={`taro-picker__item${index === currentIndex ? ' taro-picker__item--selected' : ''}`}\n {...(enableClickItemScroll\n ? { onClick: () => scrollToItemId(`picker-item-${columnId}-${index}`) }\n : {})}\n style={{\n height: PICKER_LINE_HEIGHT,\n color: index === currentIndex\n ? (colors.itemSelectedColor || undefined)\n : (colors.itemDefaultColor || undefined)\n }}\n >\n {item}\n </View>\n )\n })\n\n const realPickerItems = [\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-top-${idx}`}\n ariaHidden\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ...pickerItem,\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-bottom-${idx}`}\n ariaHidden\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ]\n\n const clickScrollViewProps = enableClickItemScroll\n ? { scrollIntoView, scrollIntoViewAlignment: 'center' as const }\n : {}\n\n return (\n <View\n className=\"taro-picker__group\"\n style={{ position: 'relative' }}\n >\n {/* 视觉蒙层兼无障碍焦点靶:CSS 默认 pointer-events:none 保证手势穿透滚动;\n 系统读屏开启时改为 auto,便于无障碍命中 */}\n <View\n className=\"taro-picker__mask\"\n style={a11yOpen ? { pointerEvents: 'auto' } : undefined}\n ariaRole=\"slider\"\n ariaLabel={ariaLabel}\n // @ts-expect-error Taro View 未声明无障碍扩展 props\n ariaAction={[\n { name: 'increment', label: 'increment' },\n { name: 'decrement', label: 'decrement' },\n ]}\n onAriaAction={handleAriaAction}\n />\n <View\n className=\"taro-picker__indicator\"\n ariaHidden\n {...(indicatorStyle ? { style: indicatorStyle } : {})}\n />\n <ScrollView\n ref={scrollViewRef}\n scrollY\n showScrollbar={false}\n className=\"taro-picker__content\"\n ariaHidden\n style={{ height: PICKER_LINE_HEIGHT * PICKER_VISIBLE_ITEMS }}\n scrollTop={targetScrollTop}\n {...clickScrollViewProps}\n onScroll={handleScroll}\n onTouchStart={() => { isTouchingRef.current = true }}\n onScrollEnd={handleScrollEnd}\n scrollWithAnimation\n >\n {realPickerItems}\n </ScrollView>\n </View>\n )\n}\n\n// 地区选择器实现\nexport function PickerGroupRegion(props: PickerGroupProps) {\n const {\n range = [],\n rangeKey,\n columnId,\n updateIndex,\n selectedIndex = 0, // 使用selectedIndex参数,默认为0\n colors = {},\n enableClickItemScroll = true,\n } = props\n\n const indicatorStyle = colors.lineColor ? getIndicatorStyle(colors.lineColor) : null\n const scrollViewRef = React.useRef<TaroScrollView>(null)\n const [targetScrollTop, setTargetScrollTop] = React.useState(0)\n const [scrollIntoView, scrollToItemId] = usePickerItemScrollIntoView()\n const [currentIndex, setCurrentIndex] = React.useState(selectedIndex)\n const isTouchingRef = React.useRef(false)\n // 程序化滚动标记:开屏/受控同步预设值时置 true,避免被 region 级联门误判为用户滚动而重置后续列\n const syncScrollFromPropsRef = React.useRef(false)\n const a11yOpen = useA11yOpen()\n\n const lengthScaleRatioRef = React.useRef(1)\n const useMeasuredScaleRef = React.useRef(false)\n const itemHeightRef = React.useRef(PICKER_LINE_HEIGHT)\n\n // 初始化时计算 lengthScaleRatio 并判定缩放模式\n React.useEffect(() => {\n Taro.getSystemInfo({\n success: (res) => {\n lengthScaleRatioRef.current = calculateLengthScaleRatio(res)\n useMeasuredScaleRef.current = resolveUseMeasuredScale(res)\n itemHeightRef.current = calculateItemHeight(scrollViewRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n },\n fail: () => {\n lengthScaleRatioRef.current = 1\n useMeasuredScaleRef.current = false\n }\n })\n }, [])\n\n React.useEffect(() => {\n itemHeightRef.current = calculateItemHeight(scrollViewRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n }, [range.length]) // 只在range长度变化时重新计算\n\n // 滚动到指定索引(供程序化对齐与无障碍步进复用)\n const scrollToIndex = React.useCallback((index: number, withRandomOffset = false) => {\n const baseValue = index * itemHeightRef.current\n const randomOffset = withRandomOffset ? Math.random() * 0.001 : undefined\n setTargetScrollTopWithScale(setTargetScrollTop, baseValue, randomOffset, lengthScaleRatioRef.current)\n }, [])\n\n // props 的 selectedIndex 变化:滚至对应项,并短时标记程序化滚动(避免级联门误判)\n React.useEffect(() => {\n if (scrollViewRef.current && range.length > 0 && !isTouchingRef.current) {\n syncScrollFromPropsRef.current = true\n scrollToIndex(selectedIndex)\n setCurrentIndex(selectedIndex)\n const tid = setTimeout(() => {\n syncScrollFromPropsRef.current = false\n }, 400)\n return () => clearTimeout(tid)\n }\n }, [selectedIndex, range, scrollToIndex])\n\n // 滚动静止后归中(debounce)\n const isCenterTimerId = React.useRef<NodeJS.Timeout | null>(null)\n const handleScrollEnd = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n // 100ms 内无新滚动则归中并提交索引\n isCenterTimerId.current = setTimeout(() => {\n if (!scrollViewRef.current) return\n\n const scrollTop = scrollViewRef.current.scrollTop\n const newIndex = getSelectedIndex(scrollTop, itemHeightRef.current, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n\n // 程序化滚动(受控同步预设值)不触发级联初始化,仅用户滚动才翻转初始化标志并重置后续列\n const isUserScroll = !syncScrollFromPropsRef.current\n isTouchingRef.current = false\n scrollToIndex(newIndex, true)\n updateIndex(newIndex, columnId, false, isUserScroll)\n syncScrollFromPropsRef.current = false\n isCenterTimerId.current = null\n }, 100)\n }\n\n // 滚动中:按 scrollTop 更新高亮索引\n const handleScroll = () => {\n if (!scrollViewRef.current) return\n if (isCenterTimerId.current) {\n clearTimeout(isCenterTimerId.current)\n isCenterTimerId.current = null\n }\n // 用户触摸滚动立即清程序化标志,使其 scrollEnd 被正确判为用户滚动(触发 region 级联)\n if (isTouchingRef.current) {\n syncScrollFromPropsRef.current = false\n }\n const scrollTop = scrollViewRef.current.scrollTop\n const ih = itemHeightRef.current\n const newIndex = getSelectedIndex(scrollTop, ih, lengthScaleRatioRef.current, useMeasuredScaleRef.current)\n if (newIndex !== currentIndex) {\n setCurrentIndex(newIndex)\n }\n }\n\n // 无障碍:整列作单 slider,转子 increment/decrement 切相邻项\n const clampIndex = (index: number) => Math.max(0, Math.min(index, range.length - 1))\n // 切换后主动播报当前项:焦点停在 slider 覆盖层上,aria 属性更新读屏不会自动重读,需主动触发\n const announceIndex = (index: number) => {\n const item = range[index]\n const content = rangeKey && item && typeof item === 'object' ? item[rangeKey] : item\n const text = content != null ? String(content) : ''\n if (!text) return\n const fn = (Taro as any).accessibilityAnnounce\n if (typeof fn !== 'function') return\n fn({ announce: text, delay: 300 })\n }\n const commitIndexByA11y = (nextIndex: number) => {\n const clamped = clampIndex(nextIndex)\n if (clamped === currentIndex) return\n isTouchingRef.current = false\n setCurrentIndex(clamped)\n scrollToIndex(clamped, true)\n updateIndex(clamped, columnId, false, true)\n announceIndex(clamped)\n }\n const handleAriaAction = (e: any) => {\n const actionName = e?.detail?.actionName\n if (actionName === 'increment') {\n commitIndexByA11y(currentIndex + 1)\n } else if (actionName === 'decrement') {\n commitIndexByA11y(currentIndex - 1)\n }\n }\n\n // 无障碍 label:当前项值(region 用 rangeKey 取显示值),仅 string 或 number 挂载\n const currentItem = range[currentIndex]\n const currentValue = rangeKey && currentItem && typeof currentItem === 'object' ? currentItem[rangeKey] : currentItem\n const ariaLabel =\n typeof currentValue === 'string'\n ? currentValue\n : typeof currentValue === 'number'\n ? String(currentValue)\n : undefined\n\n // 渲染选项\n const pickerItem = range.map((item, index) => {\n const content = rangeKey && item && typeof item === 'object' ? item[rangeKey] : item\n\n return (\n <View\n id={`picker-item-${columnId}-${index}`}\n key={index}\n ariaHidden\n className={`taro-picker__item${index === currentIndex ? ' taro-picker__item--selected' : ''}`}\n {...(enableClickItemScroll\n ? { onClick: () => scrollToItemId(`picker-item-${columnId}-${index}`) }\n : {})}\n style={{\n height: PICKER_LINE_HEIGHT,\n color: index === currentIndex\n ? (colors.itemSelectedColor || undefined)\n : (colors.itemDefaultColor || undefined)\n }}\n >\n {content}\n </View>\n )\n })\n\n const realPickerItems = [\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-top-${idx}`}\n ariaHidden\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ...pickerItem,\n ...new Array(PICKER_BLANK_ITEMS)\n .fill(null)\n .map((_, idx) => (\n <View\n key={`blank-bottom-${idx}`}\n ariaHidden\n className=\"taro-picker__item taro-picker__item--blank\"\n style={{ height: PICKER_LINE_HEIGHT }}\n />\n )),\n ]\n const clickScrollViewProps = enableClickItemScroll\n ? { scrollIntoView, scrollIntoViewAlignment: 'center' as const }\n : {}\n\n return (\n <View\n className=\"taro-picker__group\"\n style={{ position: 'relative' }}\n >\n {/* 视觉蒙层兼无障碍焦点靶:CSS 默认 pointer-events:none 保证手势穿透滚动;\n 系统读屏开启时改为 auto,便于无障碍命中 */}\n <View\n className=\"taro-picker__mask\"\n style={a11yOpen ? { pointerEvents: 'auto' } : undefined}\n ariaRole=\"slider\"\n ariaLabel={ariaLabel}\n // @ts-expect-error Taro View 未声明无障碍扩展 props\n ariaAction={[\n { name: 'increment', label: 'increment' },\n { name: 'decrement', label: 'decrement' },\n ]}\n onAriaAction={handleAriaAction}\n />\n <View\n className=\"taro-picker__indicator\"\n ariaHidden\n {...(indicatorStyle ? { style: indicatorStyle } : {})}\n />\n <ScrollView\n ref={scrollViewRef}\n scrollY\n showScrollbar={false}\n className=\"taro-picker__content\"\n ariaHidden\n style={{ height: PICKER_LINE_HEIGHT * PICKER_VISIBLE_ITEMS }}\n scrollTop={targetScrollTop}\n {...clickScrollViewProps}\n onScroll={handleScroll}\n onTouchStart={() => { isTouchingRef.current = true }}\n onScrollEnd={handleScrollEnd}\n scrollWithAnimation\n >\n {realPickerItems}\n </ScrollView>\n </View>\n )\n}\n\n// 新版无障碍(slider 遮挡方案),根据 mode 自动分发\nexport function PickerGroupSlider(props: PickerGroupProps) {\n switch (props.mode) {\n case 'time':\n return <PickerGroupTime {...props} />\n case 'date':\n return <PickerGroupDate {...props} />\n case 'region':\n return <PickerGroupRegion {...props} />\n default:\n return <PickerGroupBasic {...props} />\n }\n}\n"],"names":["usePickerItemScrollIntoView","scrollIntoView","setScrollIntoView","React","useState","pulseRef","useRef","scrollToItemId","useCallback","itemId","current","token","setTimeout","useA11yOpen","a11yOpen","setA11yOpen","useEffect","Taro","checkIsOpenAccessibility","then","res","open","catch","PICKER_LINE_HEIGHT","PICKER_VISIBLE_ITEMS","PICKER_BLANK_ITEMS","getIndicatorStyle","lineColor","borderTopColor","borderBottomColor","MIN_DESIGN_APP_VERSION","resolveUseMeasuredScale","process","env","TARO_ENV","designAppVersionRaw","designAppVersion","designAppVersionMajor","parseInt","String","trim","Number","NaN","isFinite","platform","toLowerCase","calculateLengthScaleRatio","lengthScaleRatio","console","warn","windowWidth","shortSide","windowHeight","isBigScreen","setTargetScrollTopWithScale","setTargetScrollTop","baseValue","randomOffset","arguments","length","undefined","finalValue","TARO_PLATFORM","scaledValue","getSelectedIndex","scrollTop","itemHeight","useMeasuredScale","Math","round","calculateItemHeight","scrollView","scrollHeight","childNodes","PickerGroupBasic","props","range","rangeKey","columnId","updateIndex","onColumnChange","selectedIndex","colors","enableClickItemScroll","indicatorStyle","targetScrollTop","scrollViewRef","currentIndex","setCurrentIndex","isTouchingRef","lengthScaleRatioRef","useMeasuredScaleRef","itemHeightRef","getSystemInfo","success","fail","scrollToIndex","index","withRandomOffset","random","isCenterTimerId","handleScrollEnd","clearTimeout","newIndex","handleScroll","ih","clampIndex","max","min","announceIndex","item","content","text","fn","accessibilityAnnounce","announce","delay","commitIndexByA11y","nextIndex","clamped","handleAriaAction","e","actionName","_a","detail","currentItem","currentValue","ariaLabel","pickerItem","map","_jsx","View","id","ariaHidden","className","onClick","style","height","color","itemSelectedColor","itemDefaultColor","children","realPickerItems","Array","fill","_","idx","clickScrollViewProps","scrollIntoViewAlignment","_jsxs","position","pointerEvents","ariaRole","ariaAction","name","label","onAriaAction","ScrollView","ref","scrollY","showScrollbar","onScroll","onTouchStart","onScrollEnd","scrollWithAnimation","PickerGroupTime","timeA11yLimitFocus","timeA11yLimitEventNonce","isLimited","Boolean","PickerGroupDate","updateDay","commitDay","valueText","numericValue","replace","isNaN","PickerGroupRegion","syncScrollFromPropsRef","tid","isUserScroll","PickerGroupSlider","mode"],"mappings":"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"}