@tarojs/components
Version:
1 lines • 5.06 kB
JavaScript
var __awaiter=this&&this.__awaiter||function(e,t,n,a){function o(e){return e instanceof n?e:new n((function(t){t(e)}))}return new(n||(n=Promise))((function(n,i){function r(e){try{u(a.next(e))}catch(e){i(e)}}function l(e){try{u(a["throw"](e))}catch(e){i(e)}}function u(e){e.done?n(e.value):o(e.value).then(r,l)}u((a=a.apply(e,t||[])).next())}))};var __generator=this&&this.__generator||function(e,t){var n={label:0,sent:function(){if(i[0]&1)throw i[1];return i[1]},trys:[],ops:[]},a,o,i,r;return r={next:l(0),throw:l(1),return:l(2)},typeof Symbol==="function"&&(r[Symbol.iterator]=function(){return this}),r;function l(e){return function(t){return u([e,t])}}function u(l){if(a)throw new TypeError("Generator is already executing.");while(r&&(r=0,l[0]&&(n=0)),n)try{if(a=1,o&&(i=l[0]&2?o["return"]:l[0]?o["throw"]||((i=o["return"])&&i.call(o),0):o.next)&&!(i=i.call(o,l[1])).done)return i;if(o=0,i)l=[l[0]&2,i.value];switch(l[0]){case 0:case 1:i=l;break;case 4:n.label++;return{value:l[1],done:false};case 5:n.label++;o=l[1];l=[0];continue;case 7:l=n.ops.pop();n.trys.pop();continue;default:if(!(i=n.trys,i=i.length>0&&i[i.length-1])&&(l[0]===6||l[0]===2)){n=0;continue}if(l[0]===3&&(!i||l[1]>i[0]&&l[1]<i[3])){n.label=l[1];break}if(l[0]===6&&n.label<i[1]){n.label=i[1];i=l;break}if(i&&n.label<i[2]){n.label=i[2];n.ops.push(l);break}if(i[2])n.ops.pop();n.trys.pop();continue}l=t.call(e,n)}catch(e){l=[6,e];o=0}finally{a=i=0}if(l[0]&5)throw l[1];return{value:l[0]?l[1]:void 0,done:true}}};import{r as registerInstance,c as createEvent,h,g as getElement}from"./index-980f930f.js";var indexCss="taro-textarea-core{display:block;width:300px}taro-textarea-core .auto-height{height:auto}.taro-textarea{display:block;position:relative;border:0;width:100%;height:inherit;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:auto;line-height:1.5}.taro-textarea:focus{outline:none}";function fixControlledValue(e){return e!==null&&e!==void 0?e:""}var Textarea=function(){function e(e){var t=this;registerInstance(this,e);this.onInput=createEvent(this,"input",7);this.onFocus=createEvent(this,"focus",7);this.onBlur=createEvent(this,"blur",7);this.onConfirm=createEvent(this,"confirm",7);this.onChange=createEvent(this,"change",7);this.onLineChange=createEvent(this,"linechange",7);this.onKeyDown=createEvent(this,"keydown",7);this.handleInput=function(e){e.stopPropagation();t.handleLineChange();var n=e.target.value||"";t.onInput.emit({value:n,cursor:n.length})};this.handleFocus=function(e){e.stopPropagation();t.onFocus.emit({value:e.target.value})};this.handleBlur=function(e){e.stopPropagation();t.onBlur.emit({value:e.target.value})};this.handleChange=function(e){e.stopPropagation();t.onChange.emit({value:e.target.value})};this.handleLineChange=function(){var e=t.getNumberOfLines();if(e!==t.line){t.line=e;t.onLineChange.emit({height:t.textareaRef.clientHeight,lineCount:t.line})}};this.handleKeyDown=function(e){e.stopPropagation();var n=e.target.value;var a=e.keyCode||e.code;t.onKeyDown.emit({value:n,cursor:n.length,keyCode:a});a===13&&t.onConfirm.emit({value:n})};this.calculateContentHeight=function(e,t){var n=e.style.height,a=e.offsetHeight,o=e.scrollHeight,i=e.style.overflow,r=e.style.minHeight||null;if(a>=o){e.style.minHeight=0;e.style.height=a+t+"px";e.style.overflow="hidden";if(o<e.scrollHeight){while(e.offsetHeight>=e.scrollHeight){e.style.height=(a-=t)+"px"}while(e.offsetHeight<e.scrollHeight){e.style.height=a+++"px"}e.style.height=n;e.style.overflow=i;e.style.minHeight=r;return a}}else{return o}};this.getNumberOfLines=function(){var e=t.textareaRef,n=window.getComputedStyle?window.getComputedStyle(e):e.style,a=parseInt(n.lineHeight,10),o=t.calculateContentHeight(e,a),i=Math.floor(o/a);return i};this.value="";this.placeholder=undefined;this.disabled=false;this.maxlength=140;this.autoFocus=false;this.autoHeight=false;this.name=undefined;this.nativeProps={};this.line=1}e.prototype.watchAutoFocus=function(e,t){var n;if(!t&&e){(n=this.textareaRef)===null||n===void 0?void 0:n.focus()}};e.prototype.focus=function(){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(e){this.textareaRef.focus();return[2]}))}))};e.prototype.render=function(){var e=this;var t=this,n=t.value,a=t.placeholder,o=t.disabled,i=t.maxlength,r=t.autoFocus,l=t.autoHeight,u=t.name,s=t.nativeProps,c=t.handleInput,f=t.handleFocus,g=t.handleBlur,p=t.handleChange;var d={};if(l){d.rows=this.line}return h("textarea",Object.assign({ref:function(t){if(t){e.textareaRef=t;if(r&&t)t.focus()}},class:"taro-textarea ".concat(l?"auto-height":""),value:fixControlledValue(n),placeholder:a,name:u,disabled:o,maxlength:i,autofocus:r,onInput:c,onFocus:f,onBlur:g,onChange:p,onKeyDown:this.handleKeyDown},s,d))};Object.defineProperty(e.prototype,"el",{get:function(){return getElement(this)},enumerable:false,configurable:true});Object.defineProperty(e,"watchers",{get:function(){return{autoFocus:["watchAutoFocus"]}},enumerable:false,configurable:true});return e}();Textarea.style=indexCss;export{Textarea as taro_textarea_core};