UNPKG

@tarojs/components

Version:
1 lines • 2.28 kB
import{r as t,c as i,h as o,H as e}from"./p-f72fcd8c.js";import{c as s}from"./p-160d710a.js";const r=class{constructor(o){t(this,o),this.onLoad=i(this,"load",7),this.onError=i(this,"error",7),this.src=void 0,this.mode="scaleToFill",this.lazyLoad=!1,this.nativeProps={},this.disableDefaultSize=!1,this.didLoad=!1}componentDidLoad(){if(!this.lazyLoad||!this.imgRef)return;const t=new IntersectionObserver((i=>{i[i.length-1].isIntersecting&&(this.imgRef&&t.unobserve(this.imgRef),this.didLoad=!0)}),{rootMargin:"300px 0px"});t.observe(this.imgRef)}imageOnLoad(){if(!this.imgRef)return;const{width:t,height:i}=this.imgRef;this.onLoad.emit({width:t,height:i})}imageOnError(t){this.onError.emit(t)}render(){const{src:t,lazyLoad:i=!1,imageOnLoad:r,imageOnError:a,nativeProps:h,didLoad:m}=this,n=this.mode||"scaleToFill",d=s({"taro-img__widthfix":"widthFix"===n,"taro-img__disable-default-size":this.disableDefaultSize}),l=`taro-img__mode-${n.toLowerCase().replace(/\s/g,"")}`;return o(e,{class:d},t?o("img",Object.assign({ref:t=>this.imgRef=t,class:l,src:i&&!m?void 0:t,onLoad:r.bind(this),onError:a.bind(this)},h)):"")}};r.style='img[src=""]{opacity:0}:where(taro-image-core){width:320px;height:240px;font-size:0;display:inline-block;position:relative;overflow:hidden}:where(taro-image-core.taro-img__disable-default-size){width:auto;height:auto}.taro-img.taro-img__widthfix{height:100%}.taro-img__mode-scaletofill{width:100%;height:100%}.taro-img__mode-aspectfit{max-width:100%;max-height:100%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.taro-img__mode-aspectfill{object-fit:cover;width:100%;height:100%}.taro-img__mode-widthfix{width:100%}.taro-img__mode-heightfix{height:100%}.taro-img__mode-top{position:absolute;left:50%;transform:translate(-50%)}.taro-img__mode-bottom{position:absolute;bottom:0;left:50%;transform:translate(-50%)}.taro-img__mode-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.taro-img__mode-left{position:absolute;top:50%;transform:translateY(-50%)}.taro-img__mode-right{position:absolute;top:50%;right:0;transform:translateY(-50%)}.taro-img__mode-topright{position:absolute;right:0}.taro-img__mode-bottomleft{position:absolute;bottom:0}.taro-img__mode-bottomright{position:absolute;bottom:0;right:0}';export{r as I}