(function(p,r){"use strict";class I{constructor(){this.reset()}reset(){return this.stroke=0,this.strokeColor="#000000",this.leading=0,this.lineHeight=0,this.letterSpacing=0,this.href=null,this}recover(){this!=I.EMPTY&&r.Pool.recover("HTMLExtendStyle",this.reset())}static create(){return r.Pool.getItemByClass("HTMLExtendStyle",I)}}I.EMPTY=new I,r.ClassUtils.regClass("laya.html.utils.HTMLExtendStyle",I),r.ClassUtils.regClass("Laya.HTMLExtendStyle",I);class i{constructor(){this.padding=i._PADDING,this.reset()}_getExtendStyle(){return this._extendStyle===I.EMPTY&&(this._extendStyle=I.create()),this._extendStyle}get href(){return this._extendStyle.href}set href(t){t!==this._extendStyle.href&&(this._getExtendStyle().href=t)}get stroke(){return this._extendStyle.stroke}set stroke(t){this._extendStyle.stroke!==t&&(this._getExtendStyle().stroke=t)}get strokeColor(){return this._extendStyle.strokeColor}set strokeColor(t){this._extendStyle.strokeColor!==t&&(this._getExtendStyle().strokeColor=t)}get leading(){return this._extendStyle.leading}set leading(t){this._extendStyle.leading!==t&&(this._getExtendStyle().leading=t)}get lineHeight(){return this._extendStyle.lineHeight}set lineHeight(t){this._extendStyle.lineHeight!==t&&(this._getExtendStyle().lineHeight=t)}set align(t){t in i.alignVDic&&(this._type&=~i._ALIGN,this._type|=i.alignVDic[t])}get align(){var t=this._type&i._ALIGN;return i.align_Value[t]}set valign(t){t in i.alignVDic&&(this._type&=~i._VALIGN,this._type|=i.alignVDic[t])}get valign(){var t=this._type&i._VALIGN;return i.vAlign_Value[t]}set font(t){for(var e=t.split(" "),s=0,n=e.length;s0){this.fontSize=parseInt(h),this.family=e[s+1],s++;continue}}}get font(){return(this.italic?"italic ":"")+(this.bold?"bold ":"")+this.fontSize+"px "+(r.ILaya.Browser.onIPhone?r.ILaya.Text.fontFamilyMap[this.family]||this.family:this.family)}set block(t){t?this._type|=i._CSS_BLOCK:this._type&=~i._CSS_BLOCK}get block(){return(this._type&i._CSS_BLOCK)!=0}reset(){return this.ower=null,this._type=0,this.wordWrap=!0,this.fontSize=r.ILaya.Text.defaultFontSize,this.family=r.ILaya.Text.defaultFont,this.color="#000000",this.valign=i.VALIGN_TOP,this.padding=i._PADDING,this.bold=!1,this.italic=!1,this.align=i.ALIGN_LEFT,this.textDecoration=null,this.bgColor=null,this.borderColor=null,this._extendStyle&&this._extendStyle.recover(),this._extendStyle=I.EMPTY,this}recover(){r.Pool.recover("HTMLStyle",this.reset())}static create(){return r.Pool.getItemByClass("HTMLStyle",i)}inherit(t){var e,s,n;n=i._inheritProps,s=n.length;var h;for(e=0;e=0&&(this._type|=i._WIDTHAUTO,t=t.substr(0,e)),this._calculation("width",t))return;t=parseInt(t)}this.size(t,-1)}set height(t){if(this._type|=i._HEIGHT_SET,typeof t=="string"){if(this._calculation("height",t))return;t=parseInt(t)}this.size(-1,t)}heighted(t){return(this._type&i._HEIGHT_SET)!=0}size(t,e){var s=this.ower,n=!1;t!==-1&&t!=s.width&&(this._type|=i._WIDTH_SET,s.width=t,n=!0),e!==-1&&e!=s.height&&(this._type|=i._HEIGHT_SET,s.height=e,n=!0),n&&s._layoutLater()}getLineElement(){return(this._type&i._LINE_ELEMENT)!=0}setLineElement(t){t?this._type|=i._LINE_ELEMENT:this._type&=~i._LINE_ELEMENT}_enableLayout(){return(this._type&i._DISPLAY_NONE)===0&&(this._type&i._ABSOLUTE)===0}get letterSpacing(){return this._extendStyle.letterSpacing}set letterSpacing(t){typeof t=="string"&&(t=parseInt(t+"")),t!=this._extendStyle.letterSpacing&&(this._getExtendStyle().letterSpacing=t)}cssText(t){this.attrs(i.parseOneCSS(t,";"))}attrs(t){if(t)for(var e=0,s=t.length;e1||(h[1]=h[2]=h[3]=h[0]),_[1]=[parseInt(h[0]),parseInt(h[1]),parseInt(h[2]),parseInt(h[3])];break;default:(_[0]=i._CSSTOVALUE[c])||(_[0]=c)}s.push(_)}}return s}static parseCSS(t,e){for(var s;(s=i._parseCSSRegExp.exec(t))!=null;)i.styleSheets[s[1]]=i.parseOneCSS(s[2],";")}}i._CSSTOVALUE={"letter-spacing":"letterSpacing","white-space":"whiteSpace","line-height":"lineHeight","font-family":"family","vertical-align":"valign","text-decoration":"textDecoration","background-color":"bgColor","border-color":"borderColor"},i._parseCSSRegExp=new RegExp("([.#]\\w+)\\s*{([\\s\\S]*?)}","g"),i._inheritProps=["italic","align","valign","leading","stroke","strokeColor","bold","fontSize","lineHeight","wordWrap","color"],i.ALIGN_LEFT="left",i.ALIGN_CENTER="center",i.ALIGN_RIGHT="right",i.VALIGN_TOP="top",i.VALIGN_MIDDLE="middle",i.VALIGN_BOTTOM="bottom",i.styleSheets={},i.ADDLAYOUTED=512,i._PADDING=[0,0,0,0],i._HEIGHT_SET=8192,i._LINE_ELEMENT=65536,i._NOWARP=131072,i._WIDTHAUTO=262144,i._BOLD=1024,i._ITALIC=2048,i._CSS_BLOCK=1,i._DISPLAY_NONE=2,i._ABSOLUTE=4,i._WIDTH_SET=8,i.alignVDic={left:0,center:16,right:32,top:0,middle:64,bottom:128},i.align_Value={0:"left",16:"center",32:"right"},i.vAlign_Value={0:"top",64:"middle",128:"bottom"},i._ALIGN=48,i._VALIGN=192,r.ClassUtils.regClass("laya.html.utils.HTMLStyle",i),r.ClassUtils.regClass("Laya.HTMLStyle",i);class b{constructor(){this.all=[],this.styleSheets=i.styleSheets}getElementById(t){return this.all[t]}setElementById(t,e){this.all[t]=e}}b.document=new b,r.ClassUtils.regClass("laya.html.dom.HTMLDocument",b),r.ClassUtils.regClass("Laya.HTMLDocument",b);class R{constructor(){this.rec=new r.Rectangle,this.reset()}reset(){return this.rec.reset(),this.href=null,this}recover(){r.Pool.recover("HTMLHitRect",this.reset())}static create(){return r.Pool.getItemByClass("HTMLHitRect",R)}}r.ClassUtils.regClass("laya.html.dom.HTMLHitRect",R),r.ClassUtils.regClass("Laya.HTMLHitRect",R);class y{}y.HTMLDivElement=null,y.HTMLImageElement=null,y.HTMLBrElement=null,y.HTMLDivParser=null,y.HTMLParse=null,y.HTMLElementType=null;class W{constructor(){this.elements=[],this.x=0,this.y=0,this.w=0,this.h=0,this.wordStartIndex=0,this.minTextHeight=99999,this.mWidth=0}updatePos(t,e,s,n,h,l,a){var o=0,d;this.elements.length>0&&(d=this.elements[this.elements.length-1],o=d.x+d.width-this.elements[0].x),a=a||this.h;var c=0,C;h===i.ALIGN_CENTER&&(c=(e-o)/2),h===i.ALIGN_RIGHT&&(c=e-o);for(var _=0,m=this.elements.length;_0&&A+G>c&&f.wordStartIndex>0){var Q=0;Q=f.elements.length-f.wordStartIndex+1,f.elements.length=f.wordStartIndex,s-=Q,F();continue}L=!1,j+=H.width}G=H.width+H.style.letterSpacing,K=H.height,z=!1,L=L||A+G>c,L&&F(),f.minTextHeight=Math.min(f.minTextHeight,w.height)}else B=w._getCSSStyle(),$=w,X=B.padding,L=z||B.getLineElement(),G=$.width+X[1]+X[3]+B.letterSpacing,K=$.height+X[0]+X[2],z=B.getLineElement(),L=L||A+G>c&&B.wordWrap,L&&F();f.elements.push(w),f.h=Math.max(f.h,K),w.x=A,w.y=S,A+=G,f.w=A-l,f.y=S,_=Math.max(A+m,_)}if(S=f.y+f.h,P){var J=0,Z=c;for(d&&t.width>0&&(Z=t.width),s=0,n=M.length;st.height&&(t.height=S),[_,S]}}v.DIV_ELEMENT_PADDING=0,r.ClassUtils.regClass("laya.html.utils.Layout",v),r.ClassUtils.regClass("Laya.Layout",v),function(x){x[x.BASE=0]="BASE",x[x.IMAGE=1]="IMAGE"}(p.HTMLElementType||(p.HTMLElementType={}));class g{constructor(){this.eletype=p.HTMLElementType.BASE,this._creates(),this.reset()}static formatURL1(t,e=null){if(!t)return"null path";if(e||(e=r.URL.basePath),t.indexOf(":")>0||(r.URL.customFormat!=null&&(t=r.URL.customFormat(t)),t.indexOf(":")>0))return t;var s=t.charAt(0);if(s===".")return r.URL._formatRelativePath(e+t);if(s==="~")return r.URL.rootPath+t.substring(1);if(s==="d"){if(t.indexOf("data:image")===0)return t}else if(s==="/")return t;return e+t}_creates(){this._style=i.create()}reset(){if(this.URI=null,this.parent=null,this._style.reset(),this._style.ower=this,this._style.valign="middle",this._text&&this._text.words){var t=this._text.words,e,s;s=t.length;var n;for(e=0;e-1;t--)this._children[t].destroy();this._children.length=0}}get style(){return this._style}_getWords(){if(!this._text)return null;var t=this._text.text;if(!t||t.length===0)return null;var e=this._text.words;if(e&&e.length===t.length)return e;e===null&&(this._text.words=e=[]),e.length=t.length;for(var s,n=this.style,h=n.font,l=0,a=t.length;l0||this._getWords()!=null)&&t.block?(v.later(this),t._type|=i.ADDLAYOUTED):this.parent&&this.parent._layoutLater())}set x(t){this._x!=t&&(this._x=t,this.parentRepaint())}get x(){return this._x}set y(t){this._y!=t&&(this._y=t,this.parentRepaint())}get y(){return this._y}get width(){return this._width}set width(t){this._width!==t&&(this._width=t,this.repaint())}get height(){return this._height}set height(t){this._height!==t&&(this._height=t,this.repaint())}_setAttributes(t,e){switch(t){case"style":this.style.cssText(e);break;case"class":this.className=e;break;case"x":this.x=parseFloat(e);break;case"y":this.y=parseFloat(e);break;case"width":this.width=parseFloat(e);break;case"height":this.height=parseFloat(e);break;default:this[t]=e}}set href(t){this._style&&t!=this._style.href&&(this._style.href=t,this.repaint())}get href(){return this._style?this._style.href:null}formatURL(t){return this.URI?g.formatURL1(t,this.URI?this.URI.path:null):t}set color(t){this.style.color=t}set className(t){this.style.attrs(b.document.styleSheets["."+t])}drawToGraphic(t,e,s,n){e+=this.x,s+=this.y;var h=this.style;h.paddingLeft&&(e+=h.paddingLeft),h.paddingTop&&(s+=h.paddingTop),(h.bgColor!=null||h.borderColor)&&t.drawRect(e,s,this.width,this.height,h.bgColor,h.borderColor,1),this.renderSelfToGraphic(t,e,s,n);var l,a,o;if(this._children&&this._children.length>0)for(a=this._children.length,l=0;l/g,"
"),e=""+e+"",e=e.replace(u.spacePattern,u.char255);var n=r.Utils.parseXMLFromString(e);u._parseXML(t,n.childNodes[0].childNodes,s)}static _parseXML(t,e,s,n=null){var h,l;if(e.join||e.item)for(h=0,l=e.length;h0&&(a=u.getInstance(o),a&&(a._style&&(a._style.family=t.style.family),t.addChild(a),a.innerTEXT=d.replace(u.char255AndOneSpacePattern," ")));else if(d=e.textContent.replace(/^\s+|\s+$/g,""),d.length>0){var c=t;if(t instanceof g&&t.innerTEXT&&t.innerTEXT.length>0){let E=u.getInstance("p");E&&(E._style&&(E._style.family=t.style.family),t.addChild(E),c=E)}c.innerTEXT=d.replace(u.char255AndOneSpacePattern," ")}return}else{if(o=e.nodeName.toLowerCase(),o=="#comment")return;if(a=u.getInstance(o),a){a._style&&(a._style.family=t.style.family),o=="p"?(t.addChild(u.getInstance("br")),a=t.addChild(a),t.addChild(u.getInstance("br"))):a=t.addChild(a),a.URI=s,a.href=n;var C=e.attributes;if(C&&C.length>0)for(h=0,l=C.length;h0&&this._setGraphicDirty()}_updateGraphicWork(){switch(this._repaintState){case 1:this._updateGraphic();break;case 2:this._refresh();break}}_setGraphicDirty(){this.callLater(this._updateGraphicWork)}_doClears(){if(this._recList){var t,e=this._recList.length,s;for(t=0;t{var n=this._element.URI;this._element.URI=new r.URL(t),this.innerHTML=s,!n||(this._element.URI=n)}),e.load(t,r.Loader.TEXT)}}r.ClassUtils.regClass("laya.html.dom.HTMLIframeElement",Y),r.ClassUtils.regClass("Laya.HTMLIframeElement",Y),p.HTMLBrElement=T,p.HTMLDivElement=V,p.HTMLDivParser=D,p.HTMLDocument=b,p.HTMLElement=g,p.HTMLExtendStyle=I,p.HTMLHitRect=R,p.HTMLIframeElement=Y,p.HTMLImageElement=O,p.HTMLLinkElement=k,p.HTMLParse=u,p.HTMLStyle=i,p.HTMLStyleElement=N,p.IHtml=y,p.Layout=v,p.LayoutLine=W})(window.Laya=window.Laya||{},Laya);