UNPKG

@tarojs/components

Version:
1 lines 2.08 kB
import{r as registerInstance,c as createEvent,h,g as getElement,H as Host}from"./index-5bd7cbab.js";import{d as debounce}from"./index-cad8203e.js";var columnCss=".taro-picker-view-column-container{display:-ms-flexbox;display:flex;overflow:scroll;overflow-x:hidden;position:relative;-ms-flex-direction:column;flex-direction:column;-ms-flex:1;flex:1;text-align:center}.taro-picker-view-column-container::-webkit-scrollbar{display:none}";var PickerViewColumn=function(){function e(e){var t=this;registerInstance(this,e);this.onChange=createEvent(this,"onselect",7);this.onSelectStart=createEvent(this,"onselectstart",7);this.onSelectEnd=createEvent(this,"onselectend",7);this.initialPosition="0";this.paddingVertical=0;this.isInit=false;this.isMove=false;this.handleSelected=debounce((function(){var e=t.el.childNodes;var i=0;var o="0";for(var n in e){var s=e[n];var r=s.offsetHeight;if(i+r/2>t.el.scrollTop){o=n;break}i+=r}t.el.scrollTo({top:i,behavior:"smooth"});t.onChange.emit({curIndex:t.col,selectedIndex:o});t.onSelectEnd.emit()}),500)}e.prototype.onScroll=function(e){if(!this.isMove){this.isMove=true;this.onSelectStart.emit()}this.handleSelected()};e.prototype.onMouseEnd=function(){if(!this.isMove)return;this.isMove=false;this.handleSelected()};e.prototype.onTouchEnd=function(){this.isMove=false;this.handleSelected()};e.prototype.componentDidUpdate=function(){if(!this.isInit){this.isInit=true;var e=this.el.childNodes;var t=0;var i=0;for(var o in e){var n=e[o];if(this.initialPosition===o||!n||typeof n.offsetHeight!=="number"){break}i+=n.offsetHeight;t++}this.el.scrollTo({top:i});if(t>=e.length){this.onChange.emit({curIndex:this.col,selectedIndex:t-1})}}};e.prototype.render=function(){var e=this.paddingVertical,t=e===void 0?0:e;return h(Host,{class:"taro-picker-view-column-container",style:{"padding-top":t+"px","padding-bottom":t+"px"}})};Object.defineProperty(e.prototype,"el",{get:function(){return getElement(this)},enumerable:false,configurable:true});return e}();PickerViewColumn.style=columnCss;export{PickerViewColumn as taro_picker_view_column_core};