@tarojs/components
Version:
1 lines • 4.53 kB
JavaScript
import{r as t,c as i,h as e,g as o,H as s}from"./p-9137dcab.js";import{d as r}from"./p-d3c7f87d.js";import{c as n}from"./p-de951a46.js";function a(t){if(t){const i=/([\w-]*)\s*:\s*([^;]*)/g,e={};let o;for(;o=i.exec(t);)e[`${o[1]}`]=o[2].trim();return e}}const c=class{constructor(e){t(this,e),this.onChange=i(this,"onselect",7),this.onSelectStart=i(this,"onselectstart",7),this.onSelectEnd=i(this,"onselectend",7),this.handleSelected=r((()=>{const t=this.el.childNodes;let i=0,e="0";for(const o in t){const s=t[o].offsetHeight;if(i+s/2>this.el.scrollTop){e=o;break}i+=s}this.el.scrollTo({top:i,behavior:"smooth"}),this.onChange.emit({curIndex:this.col,selectedIndex:e}),this.onSelectEnd.emit()}),500),this.col=void 0,this.initialPosition="0",this.paddingVertical=0,this.isInit=!1}onTouchStart(){this.onSelectStart.emit()}onTouchEnd(){this.handleSelected()}componentDidLoad(){this.handleChange()}componentDidUpdate(){this.handleChange()}handleChange(){const t=this.el.childNodes;let i=0,e=0;for(const o in t){const s=t[o];if(this.initialPosition===o||!s||"number"!=typeof s.offsetHeight)break;e+=s.offsetHeight,i++}this.el.scrollTo({top:e}),i>=t.length&&this.onChange.emit({curIndex:this.col,selectedIndex:i-1})}render(){const{paddingVertical:t=0}=this;return e(s,{class:"taro-picker-view-column-container",style:{"padding-top":`${t}px`,"padding-bottom":`${t}px`}})}get el(){return o(this)}};c.style=".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}";const l=class{constructor(e){t(this,e),this.onChange=i(this,"change",7),this.onPickStart=i(this,"pickstart",7),this.onPickEnd=i(this,"pickend",7),this.indicatorStyle=void 0,this.indicatorClass=void 0,this.value=void 0,this.maskStyle=void 0,this.maskClass=void 0}onPropsChange(){this.handleValueChange()}onSelect(t){t.stopPropagation(),"TARO-PICKER-VIEW-COLUMN-CORE"===t.target.tagName&&(this.value[+t.detail.curIndex]=+t.detail.selectedIndex,this.onChange.emit({value:this.value}))}onSelectStart(t){t.stopPropagation(),"TARO-PICKER-VIEW-COLUMN-CORE"===t.target.tagName&&this.onPickStart.emit()}onPickerColEnd(t){t.stopPropagation(),"TARO-PICKER-VIEW-COLUMN-CORE"===t.target.tagName&&this.onPickEnd.emit()}componentDidLoad(){this.handleValueChange()}handleValueChange(){this.el.querySelectorAll("taro-picker-view-column-core").forEach(((t,i)=>{var e;t.setAttribute("col",`${i}`);let o=0;this.value&&this.value.length>i&&(o=this.value[i]);const s=(this.el.getBoundingClientRect().height-((null===(e=this.indicator)||void 0===e?void 0:e.offsetHeight)||0))/2;t.setAttribute("initial-position",`${o}`),t.setAttribute("padding-vertical",`${s}`)}))}componentDidRender(){this.el.childNodes.forEach((t=>{"TARO-PICKER-VIEW-COLUMN-CORE"!==t.tagName&&"taro-picker-view-mask-container"!==t.className&&this.el.removeChild(t)}))}render(){const t=n("taro-picker-view-mask-indicator",this.indicatorClass),i=n("taro-picker-view-mask-top",this.maskClass),o=n("taro-picker-view-mask-bottom",this.maskClass),r=a(this.indicatorStyle),c=a(this.maskStyle),l=a(this.maskStyle);return e(s,{class:"taro-picker-view-container"},e("slot",null),e("div",{class:"taro-picker-view-mask-container"},e("div",{class:i,style:c}),e("div",{class:t,style:r,ref:t=>this.indicator=t}),e("div",{class:o,style:l})))}get el(){return o(this)}static get watchers(){return{value:["onPropsChange"]}}};l.style=".taro-picker-view-container{display:-ms-flexbox;display:flex;position:relative}.taro-picker-view-mask-container{display:-ms-flexbox;display:flex;position:absolute;left:0;right:0;top:0;bottom:0;-ms-flex-direction:column;flex-direction:column;pointer-events:none}.taro-picker-view-mask-indicator{display:-ms-flexbox;display:flex;border-top:1px solid #ddd;border-bottom:1px solid #ddd;height:50px}.taro-picker-view-mask-top{-ms-flex:1;flex:1;background-image:-webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0.95)), to(rgba(255, 255, 255, 0.6)));background-image:linear-gradient(to bottom, rgba(255, 255, 255, 0.95), rgba(255, 255, 255, 0.6))}.taro-picker-view-mask-bottom{-ms-flex:1;flex:1;background:-webkit-gradient(linear, left bottom, left top, from(rgba(255, 255, 255, 0.95)), to(rgba(255, 255, 255, 0.6)));background:linear-gradient(to top, rgba(255, 255, 255, 0.95), rgba(255, 255, 255, 0.6))}";export{c as taro_picker_view_column_core,l as taro_picker_view_core}