UNPKG

phaser4-rex-plugins

Version:
7 lines 53.9 kB
var t,e;t=void 0,e=function(){var t={renderWebGL:function(t,e,i,s){if(0!==e.width&&0!==e.height){i.camera.addToRenderList(e);var r=e.customRenderNodes,n=e.defaultRenderNodes;(r.Submitter||n.Submitter).run(i,e,s,0,r.Texturer||n.Texturer,r.Transformer||n.Transformer)}},renderCanvas:function(t,e,i,s){0!==e.width&&0!==e.height&&(i.addToRenderList(e),t.batchSprite(e,e.frame,i,s))}};const e=Phaser.Display.Canvas.CanvasPool;var i=!1;!function(t){if(!i){void 0===t&&(t=0);var e=Phaser.VERSION.split("."),s=parseInt(e[0]);if(4===s){var r=parseInt(e[1]);r<t&&console.error(`Minimum supported version : ${s}.${r}`)}else console.error(`Can't supported version : ${s}`);i=!0}}();const s=Phaser.GameObjects.GameObject;class r extends s{setStyle(t){return this.style.setStyle(t)}setFont(t){return this.style.setFont(t)}setFontFamily(t){return this.style.setFontFamily(t)}setFontSize(t){return this.style.setFontSize(t)}setFontStyle(t){return this.style.setFontStyle(t)}setTestString(t){return this.style.setTestString(t)}setFixedSize(t,e){return this.style.setFixedSize(t,e)}setBackgroundColor(t,e,i){return this.style.setBackgroundColor(t,e,i)}setBackgroundStrokeColor(t,e){return this.style.setBackgroundStrokeColor(t,e)}setBackgroundCornerRadius(t,e){return this.style.setBackgroundCornerRadius(t,e)}setFill(t){return this.style.setFill(t)}setColor(t){return this.style.setColor(t)}setStroke(t,e){return this.style.setStroke(t,e)}setShadow(t,e,i,s,r,n){return this.style.setShadow(t,e,i,s,r,n)}setShadowOffset(t,e){return this.style.setShadowOffset(t,e)}setShadowColor(t){return this.style.setShadowColor(t)}setShadowBlur(t){return this.style.setShadowBlur(t)}setShadowStroke(t){return this.style.setShadowStroke(t)}setShadowFill(t){return this.style.setShadowFill(t)}setUnderline(t,e,i){return this.style.setUnderline(t,e,i)}setUnderlineColor(t){return this.style.setUnderlineColor(t)}setUnderlineThickness(t){return this.style.setUnderlineThickness(t)}setUnderlineOffset(t){return this.style.setUnderlineOffset(t)}setStrikethrough(t,e,i){return this.style.setStrikethrough(t,e,i)}setStrikethroughColor(t){return this.style.setStrikethroughColor(t)}setStrikethroughThickness(t){return this.style.setStrikethroughThickness(t)}setStrikethroughOffset(t){return this.style.setStrikethroughOffset(t)}setWrapMode(t){return this.style.setWrapMode(t)}setWrapWidth(t){return this.style.setWrapWidth(t)}setWordWrapWidth(t){return this.style.setWrapWidth(t)}setAlign(t){return this.style.setHAlign(t)}setHAlign(t){return this.style.setHAlign(t)}setVAlign(t){return this.style.setVAlign(t)}get lineSpacing(){return this.style.lineSpacing}set lineSpacing(t){this.style.lineSpacing=t}setLineSpacing(t){return this.style.lineSpacing=t,this.updateText(!0),this}get letterSpacing(){return this.style.letterSpacing}set letterSpacing(t){this.style.letterSpacing=t}setLetterSpacing(t){return this.style.letterSpacing=t,this.updateText(!0),this}setXOffset(t){return this.style.setXOffset(t)}setMaxLines(t){return this.style.setMaxLines(t)}setResolution(t){return this.style.setResolution(t)}getTextMetrics(){return this.style.getTextMetrics()}setTextMetrics(t,e){return this.style.setTextMetrics(t,e)}measureTextMargins(t,i){return function(t,i,s){void 0===s&&(s={});var r=e.create(this),n=r.getContext("2d",{willReadFrequently:!0});t.syncFont(r,n);var a=n.measureText(i),h=Math.ceil(a.width*t.baselineX),o=h,l=2*o;if(o=o*t.baselineY|0,r.width=h,r.height=l,n.fillStyle="#f00",n.fillRect(0,0,h,l),n.font=t._font,n.textBaseline="alphabetic",n.fillStyle="#000",n.fillText(t.testString,0,o),s.left=0,0===h||0===l||!n.getImageData(0,0,h,l))return e.remove(r),s;for(var u=n.getImageData(0,0,h,l).data,d=!1,g=0;g<h;g++){for(var c=0;c<l;c++)if(255!==u[4*(c*h+g)]){s.left=g,d=!0;break}if(d)break}return e.remove(r),s}(this.style,t,i)}}const n=Phaser.GameObjects.Components;Phaser.Class.mixin(r,[n.Alpha,n.BlendMode,n.ComputedSize,n.Crop,n.Depth,n.Flip,n.GetBounds,n.Lighting,n.Mask,n.Origin,n.RenderNodes,n.ScrollFactor,n.Tint,n.Transform,n.Visible,t]);const a=Phaser.Utils.String.Pad;var h=function(t,e,i){if(null==t)return t;switch(typeof t){case"string":default:return t;case"number":return`#${a(Math.floor(t).toString(16),6,"0",1)}`;case"function":return t(e,i);case"object":return t.hasOwnProperty("r")?t.hasOwnProperty("a")?`rgba(${t.r},${t.g},${t.b},${t.a})`:`rgb(${t.r},${t.g},${t.b})`:t.hasOwnProperty("h")?t.hasOwnProperty("a")?`hsla(${t.h},${t.s},${t.l},${t.a})`:`hsl(${t.h},${t.s},${t.l})`:t}},o={backgroundColor:["backgroundColor",null,h],backgroundColor2:["backgroundColor2",null,h],backgroundHorizontalGradient:["backgroundHorizontalGradient",!0,null],backgroundStrokeColor:["backgroundStrokeColor",null,h],backgroundStrokeLineWidth:["backgroundStrokeLineWidth",2,null],backgroundCornerRadius:["backgroundCornerRadius",0,null],backgroundCornerIteration:["backgroundCornerIteration",null,null],fontFamily:["fontFamily","Courier",null],fontSize:["fontSize","16px",null],fontStyle:["fontStyle","",null],color:["color","#fff",h],stroke:["stroke","#fff",h],strokeThickness:["strokeThickness",0,null],shadowOffsetX:["shadow.offsetX",0,null],shadowOffsetY:["shadow.offsetY",0,null],shadowColor:["shadow.color","#000",h],shadowBlur:["shadow.blur",0,null],shadowStroke:["shadow.stroke",!1,null],shadowFill:["shadow.fill",!1,null],underlineColor:["underline.color","#000",h],underlineThickness:["underline.thickness",0,null],underlineOffset:["underline.offset",0,null],strikethroughColor:["strikethrough.color","#000",h],strikethroughThickness:["strikethrough.thickness",0,null],strikethroughOffset:["strikethrough.offset",0,null],halign:["halign","left",null],valign:["valign","top",null],maxLines:["maxLines",0,null],fixedWidth:["fixedWidth",0,null],fixedHeight:["fixedHeight",0,null],resolution:["resolution",0,null],lineSpacing:["lineSpacing",0,null],letterSpacing:["letterSpacing",0,null],xOffset:["xOffset",0,null],rtl:["rtl",!1,null],testString:["testString","|MÉqgy",null],baselineX:["baselineX",1.2,null],baselineY:["baselineY",1.4,null],wrapMode:["wrap.mode",0,null],wrapWidth:["wrap.width",0,null],wrapCallback:["wrap.callback",null],wrapCallbackScope:["wrap.callbackScope",null]}; /** * @author Richard Davey <rich@photonstorm.com> * @copyright 2018 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ const l=Phaser.Display.Canvas.CanvasPool;var u=function(t){var e=l.create(this),i=e.getContext("2d",{willReadFrequently:!0});t.syncFont(e,i);var s=i.measureText(t.testString);if("actualBoundingBoxAscent"in s){var r=s.actualBoundingBoxAscent,n=s.actualBoundingBoxDescent,a={ascent:r,descent:n,fontSize:r+n};return l.remove(e),a}var h=Math.ceil(s.width*t.baselineX),o=h,u=2*o;if(o=o*t.baselineY|0,e.width=h,e.height=u,i.fillStyle="#f00",i.fillRect(0,0,h,u),i.font=t._font,i.textBaseline="alphabetic",i.fillStyle="#000",i.fillText(t.testString,0,o),a={ascent:0,descent:0,fontSize:0},!i.getImageData(0,0,h,u))return a.ascent=o,a.descent=o+6,a.fontSize=a.ascent+a.descent,l.remove(e),a;var d,g,c=i.getImageData(0,0,h,u).data,p=c.length,f=4*h,v=0,x=!1;for(d=0;d<o;d++){for(g=0;g<f;g+=4)if(255!==c[v+g]){x=!0;break}if(x)break;v+=f}for(a.ascent=o-d,v=p-f,x=!1,d=u;d>o;d--){for(g=0;g<f;g+=4)if(255!==c[v+g]){x=!0;break}if(x)break;v-=f}return a.descent=d-o,a.fontSize=a.ascent+a.descent,l.remove(e),a},d=0,g=1,c=2,p=0,f=1,v=2,x=/(?:\r\n|\r|\n)/;const y={none:p,word:f,char:v,character:v,mix:3},w=Phaser.Utils.Objects.GetAdvancedValue,S=Phaser.Utils.Objects.GetValue;class E{constructor(t,e,i){this.parent=t,void 0===i&&(i=o),this.propertyMap=i,this.backgroundColor,this.backgroundColor2,this.backgroundHorizontalGradient,this.backgroundStrokeColor,this.backgroundStrokeLineWidth,this.backgroundCornerRadius,this.backgroundCornerIteration,this.fontFamily,this.fontSize,this.fontStyle,this.color,this.stroke,this.strokeThickness,this.shadowOffsetX,this.shadowOffsetY,this.shadowColor,this.shadowBlur,this.shadowStroke,this.shadowFill,this.underlineColor,this.underlineThickness,this.underlineOffset,this.strikethroughColor,this.strikethroughThickness,this.strikethroughOffset,this.halign,this.valign,this.maxLines,this.fixedWidth,this.fixedHeight,this.resolution,this.xOffset,this.rtl,this.testString,this.baselineX,this.baselineY,this.wrapMode,this.wrapWidth,this.wrapCallback,this.wrapCallbackScope,this._font,this.setStyle(e,!1,!0)}get isWrapFitMode(){return this.fixedWidth>0&&this.wrapMode!==p&&0===this.wrapWidth}setStyle(t,e,i){if(void 0===e&&(e=!0),void 0===i&&(i=!1),t&&t.hasOwnProperty("wordWrap")){var s=t.wordWrap;s.hasOwnProperty("width")&&(t.wrap={mode:"word",width:s.width})}if(t&&t.hasOwnProperty("wrap")){var r=t.wrap;if(r.hasOwnProperty("mode")){var n=r.mode;"string"==typeof n&&(r.mode=y[n])}else r.hasOwnProperty("width")&&(r.mode=1)}t&&t.rtl&&i&&!t.hasOwnProperty("halign")&&(t.halign="right"),t&&t.hasOwnProperty("fontSize")&&"number"==typeof t.fontSize&&(t.fontSize=t.fontSize.toString()+"px");var a=this.propertyMap;for(var o in a){var l=a[o],d=l[0],g=i?l[1]:this[o],c=l[2];if("wrapCallback"===o||"wrapCallbackScope"===o)this[o]=S(t,d,g);else{var p=w(t,d,g);c&&(p=c(p)),this[o]=p}}var f=S(t,"font",null);this._font=null===f?this.fontStyle+" "+this.fontSize+" "+this.fontFamily:f;var v=S(t,"fill",null);null!==v&&(this.color=h(v));var x=S(t,"metrics",!1);return x?this.metrics={ascent:S(x,"ascent",0),descent:S(x,"descent",0),fontSize:S(x,"fontSize",0)}:!e&&this.metrics||(this.metrics=u(this)),e?this.parent.updateText():this.parent}syncFont(t,e){e.font=this._font}syncStyle(t,e){e.textBaseline="alphabetic",e.fillStyle=this.color,e.strokeStyle=this.stroke,e.lineWidth=this.strokeThickness,e.lineCap="round",e.lineJoin="round"}syncShadow(t,e){e?(t.shadowOffsetX=this.shadowOffsetX,t.shadowOffsetY=this.shadowOffsetY,t.shadowColor=this.shadowColor,t.shadowBlur=this.shadowBlur):(t.shadowOffsetX=0,t.shadowOffsetY=0,t.shadowColor=0,t.shadowBlur=0)}update(t){return t&&(this._font=`${this.fontStyle} ${this.fontSize} ${this.fontFamily}`.trim(),this.metrics=u(this)),this.parent.updateText(t)}buildFont(){var t=`${this.fontStyle} ${this.fontSize} ${this.fontFamily}`.trim();return t!==this._font&&(this._font=t),this}setFont(t){return"string"==typeof t?(this.fontFamily=t,this.fontSize="",this.fontStyle=""):(this.fontFamily=S(t,"fontFamily","Courier"),this.fontSize=S(t,"fontSize","16px"),this.fontStyle=S(t,"fontStyle","")),this.update(!0)}setFontFamily(t){return this.fontFamily=t,this.update(!0)}setFontStyle(t){return this.fontStyle=t,this.update(!0)}setFontSize(t){return"number"==typeof t&&(t=t.toString()+"px"),this.fontSize=t,this.update(!0)}setTestString(t){return this.testString=t,this.update(!0)}setFixedSize(t,e){return this.fixedWidth=t,this.fixedHeight=e,t&&(this.parent.width=t),e&&(this.parent.height=e),this.update(this.isWrapFitMode)}setResolution(t){return this.resolution=t,this.update(!1)}setXOffset(t){return this.xOffset=t,this.update(!1)}setBackgroundColor(t,e,i){return void 0===i&&(i=!0),this.backgroundColor=h(t,this.parent.canvas,this.parent.context),this.backgroundColor2=h(e,this.parent.canvas,this.parent.context),this.backgroundHorizontalGradient=i,this.update(!1)}setBackgroundStrokeColor(t,e){return this.backgroundStrokeColor=h(t,this.parent.canvas,this.parent.context),this.backgroundStrokeLineWidth=e,this.update(!1)}setBackgroundCornerRadius(t,e){return this.backgroundCornerRadius=t,this.backgroundCornerIteration=e,this.update(!1)}setFill(t){return this.color=h(t,this.parent.canvas,this.parent.context),this.update(!1)}setColor(t){return this.color=h(t,this.parent.canvas,this.parent.context),this.update(!1)}setStroke(t,e){return void 0===t?this.strokeThickness=0:(void 0===e&&(e=this.strokeThickness),this.stroke=h(t,this.parent.canvas,this.parent.context),this.strokeThickness=e),this.update(!0)}setShadow(t,e,i,s,r,n){return void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i="#000"),void 0===s&&(s=0),void 0===r&&(r=!1),void 0===n&&(n=!0),this.shadowOffsetX=t,this.shadowOffsetY=e,this.shadowColor=h(i,this.parent.canvas,this.parent.context),this.shadowBlur=s,this.shadowStroke=r,this.shadowFill=n,this.update(!1)}setShadowOffset(t,e){return void 0===t&&(t=0),void 0===e&&(e=t),this.shadowOffsetX=t,this.shadowOffsetY=e,this.update(!1)}setShadowColor(t){return void 0===t&&(t="#000"),this.shadowColor=h(t,this.parent.canvas,this.parent.context),this.update(!1)}setShadowBlur(t){return void 0===t&&(t=0),this.shadowBlur=t,this.update(!1)}setShadowStroke(t){return this.shadowStroke=t,this.update(!1)}setShadowFill(t){return this.shadowFill=t,this.update(!1)}setUnderline(t,e,i){return void 0===t&&(t="#000"),void 0===e&&(e=0),void 0===i&&(i=0),this.underlineColor=h(t,this.parent.canvas,this.parent.context),this.underlineThickness=e,this.underlineOffset=i,this.update(!1)}setUnderlineColor(t){return void 0===t&&(t="#000"),this.underlineColor=h(t,this.parent.canvas,this.parent.context),this.update(!1)}setUnderlineThickness(t){return void 0===t&&(t=0),this.underlineThickness=t,this.update(!1)}setUnderlineOffset(t){return void 0===t&&(t=0),this.underlineOffset=t,this.update(!1)}setStrikethrough(t,e,i){return void 0===t&&(t="#000"),void 0===e&&(e=0),void 0===i&&(i=0),this.strikethroughColor=h(t,this.parent.canvas,this.parent.context),this.strikethroughThickness=e,this.strikethroughOffset=i,this.update(!1)}setStrikethroughColor(t){return void 0===t&&(t="#000"),this.strikethroughColor=h(t,this.parent.canvas,this.parent.context),this.update(!1)}setStrikethroughThickness(t){return void 0===t&&(t=0),this.strikethroughThickness=t,this.update(!1)}setStrikethroughOffset(t){return void 0===t&&(t=0),this.strikethroughOffset=t,this.update(!1)}setWrapMode(t){return"string"==typeof t&&(t=y[t.toLowerCase()]||0),this.wrapMode=t,this.update(!0)}setWrapWidth(t){return this.wrapWidth=t,this.update(!1)}setAlign(t,e){return void 0===t&&(t="left"),void 0===e&&(e="top"),this.halign=t,this.valign=e,this.update(!1)}setHAlign(t){return void 0===t&&(t="left"),this.halign=t,this.update(!1)}setVAlign(t){return void 0===t&&(t="top"),this.valign=t,this.update(!1)}setMaxLines(t){return void 0===t&&(t=0),this.maxLines=t,this.update(!1)}getTextMetrics(){var t=this.metrics;return{ascent:t.ascent,descent:t.descent,fontSize:t.fontSize}}setTextMetrics(t,e){return this.metrics.ascent=t.ascent,this.metrics.descent=t.descent,this.metrics.fontSize=t.fontSize,e&&("string"==typeof e?(this.fontFamily=e,this.fontSize="",this.fontStyle=""):(this.fontFamily=S(e,"fontFamily",this.fontFamily),this.fontSize=S(e,"fontSize",this.fontSize),this.fontStyle=S(e,"fontStyle",this.fontStyle))),this.parent.updateText(!0)}get lineHeight(){return this.metrics.fontSize+this.parent.lineSpacing}toJSON(){var t={},e=this.propertyMap;for(var i in e)t[i]=this[i];return t.metrics=this.getTextMetrics(),t}destroy(){this.parent=void 0}}const O=Phaser.Utils.Objects.GetValue;class R{constructor(t,e,i,s,r){void 0===t&&(t=0),void 0===e&&(e=t),void 0===i&&(i=0),void 0===s&&(s=0),void 0===r&&(r=0),this.cornerRadius={},this._width=0,this._height=0,this.setTo(t,e,i,s,r)}setTo(t,e,i,s,r){return this.setPosition(t,e),this.setRadius(r),this.setSize(i,s),this}setPosition(t,e){return this.x=t,this.y=e,this}setRadius(t){return void 0===t&&(t=0),this.radius=t,this}setSize(t,e){return this.width=t,this.height=e,this}get minWidth(){var t=this.cornerRadius;return Math.max(t.tl.x+t.tr.x,t.bl.x+t.br.x)}get minHeight(){var t=this.cornerRadius;return Math.max(t.tl.y+t.bl.y,t.tr.y+t.br.y)}get width(){return this._width}set width(t){null==t&&(t=0),this._width=Math.max(t,this.minWidth)}get height(){return this._height}set height(t){null==t&&(t=0),this._height=Math.max(t,this.minHeight)}get radius(){var t=this.cornerRadius;return Math.max(t.tl.x,t.tl.y,t.tr.x,t.tr.y,t.bl.x,t.bl.y,t.br.x,t.br.y)}set radius(t){var e,i;"number"==typeof t?(e=t,i=t):(e=O(t,"x",0),i=O(t,"y",0));var s=this.cornerRadius;s.tl=T(O(t,"tl",void 0),e,i),s.tr=T(O(t,"tr",void 0),e,i),s.bl=T(O(t,"bl",void 0),e,i),s.br=T(O(t,"br",void 0),e,i)}get radiusTL(){var t=this.cornerRadius.tl;return Math.max(t.x,t.y)}set radiusTL(t){m(this.cornerRadius.tl,t)}get radiusTR(){var t=this.cornerRadius.tr;return Math.max(t.x,t.y)}set radiusTR(t){m(this.cornerRadius.tr,t)}get radiusBL(){var t=this.cornerRadius.bl;return Math.max(t.x,t.y)}set radiusBL(t){m(this.cornerRadius.bl,t)}get radiusBR(){var t=this.cornerRadius.br;return Math.max(t.x,t.y)}set radiusBR(t){m(this.cornerRadius.br,t)}}var T=function(t,e,i){return void 0===t?t={x:e,y:i}:"number"==typeof t&&(t={x:t,y:t}),k(t),t},m=function(t,e){"number"==typeof e?(t.x=e,t.y=e):(t.x=O(e,"x",0),t.y=O(e,"y",0)),k(t)},k=function(t){t.convex=t.x>=0||t.y>=0,t.x=Math.abs(t.x),t.y=Math.abs(t.y)};const _=Phaser.Math.DegToRad;var P=function(t){return!t.hasOwnProperty("convex")||t.convex},C=function(t){return t.x>0&&t.y>0},b=function(t,e,i,s,r,n,a,h,o){if(h&&a>n?a-=360:!h&&a<n&&(a+=360),n=_(n),a=_(a),null==o)t.ellipse(e,i,s,r,0,n,a,h);else for(var l,u,d,g=(a-n)/(o+=1),c=0;c<=o;c++)d=n+g*c,l=e+s*Math.cos(d),u=i+r*Math.sin(d),t.lineTo(l,u)},M=function(t,e,i,s,r,n,a,h,o,l,u,d,g){var c;(function(t,e,i,s,r,n,a){var h,o,l,u,d,g=new R(e,i,s,r,n),c=g.minWidth,p=g.minHeight,f=s>=c?1:s/c,v=r>=p?1:r/p,x=g.cornerRadius;t.save(),t.beginPath(),t.translate(e,i),h=x.tl,C(h)?(o=h.x*f,l=h.y*v,P(h)?b(t,o,l,o,l,180,270,!1,a):b(t,0,0,o,l,90,0,!0,a),u=0,d=l):(t.lineTo(0,0),u=0,d=0),h=x.tr,C(h)?(o=h.x*f,l=h.y*v,P(h)?b(t,s-o,l,o,l,270,360,!1,a):b(t,s,0,o,l,180,90,!0,a)):t.lineTo(s,0),h=x.br,C(h)?(o=h.x*f,l=h.y*v,P(h)?b(t,s-o,r-l,o,l,0,90,!1,a):b(t,s,r,o,l,270,180,!0,a)):t.lineTo(s,r),h=x.bl,C(h)?(o=h.x*f,l=h.y*v,P(h)?b(t,o,r-l,o,l,90,180,!1,a):b(t,0,r,o,l,360,270,!0,a)):t.lineTo(0,r),t.lineTo(u,d),t.closePath(),t.restore()}(e,i,s,r,n,a,g),null!=h)&&(null!=u&&((c=d?e.createLinearGradient(0,0,r,0):e.createLinearGradient(0,0,0,n)).addColorStop(0,h),c.addColorStop(1,u),h=c),e.fillStyle=h,e.fill());null!=o&&l>0&&(e.strokeStyle=o,e.lineWidth=l,e.stroke())},L={draw(t,e,i,s){var r=this.penManager;this.hitAreaManager.clear();var n=this.context;n.save();var a=this.defaultStyle;this.clear(),function(t,e,i,s,r,n,a,h){if(null!=e||null!=i){var o=t.canvas.width,l=t.canvas.height;null==i&&(s=0);var u=s/2;o=Math.max(1,o-s),l=Math.max(1,l-s),M(t.canvas,t.context,u,u,o,l,r,e,i,s,n,a,h)}}(this,a.backgroundColor,a.backgroundStrokeColor,a.backgroundStrokeLineWidth,a.backgroundCornerRadius,a.backgroundColor2,a.backgroundHorizontalGradient,a.backgroundCornerIteration),t+=this.startXOffset,e+=this.startYOffset;var h,o,l,u,d,g,c=a.halign,p=a.valign,f=a.lineHeight,v=r.lines,x=v.length,y=a.maxLines;y>0&&x>y?(o=y,l="center"===p?Math.floor((x-o)/2):"bottom"===p?x-o:0):(o=x,l=0),u=l+o;var w=this.rtl,S=w?this.parent.width:void 0;g="center"===p?Math.max((s-o*f)/2,0):"bottom"===p?Math.max(s-o*f-2,0):0,g+=e;for(var E=l;E<u;E++)if(0!==(h=r.getLineWidth(E))){for(var O=v[E],R=O.length,T=c,m=0;m<R;m++){var k=O[m].prop.align;if(void 0!==k){T=k;break}}for(d="center"===T?(i-h)/2:"right"===T?w?0:i-h:w?i-h:0,d+=t,m=0;m<R;m++)this.drawPen(O[m],d,g,S)}n.restore()},drawPen(t,e,i,s){e+=t.x,i+=t.y+(t.prop.y||0),void 0!==s&&(e=s-e);var r=this.canvas,n=this.context;n.save();var a=this.parser.propToContextStyle(this.defaultStyle,t.prop);if(null!==a.bgcolor&&t.width>0){var h=this.defaultStyle.metrics,o=i-h.ascent,l=h.fontSize;this.drawRectangle(e,o,t.width,l,a.bgcolor,a)}if(a.underlineThickness>0&&t.width>0){var u=i+a.underlineOffset-a.underlineThickness/2;this.drawLine(e,u,t.width,a.underlineThickness,a.underlineColor,a)}if(t.isTextPen&&(a.buildFont(),a.syncFont(r,n),a.syncStyle(r,n),this.drawText(e,i,t.text,a)),t.isImagePen&&this.drawImage(e,i,t.prop.img,t.prop.color,a),a.strikethroughThickness>0&&t.width>0&&(u=i+a.strikethroughOffset-a.strikethroughThickness/2,this.drawLine(e,u,t.width,a.strikethroughThickness,a.strikethroughColor,a)),n.restore(),t.hasAreaMarker&&t.width>0){var d,g=t.prop.area;if(g)d={key:g};else{var c=t.prop.url;d={key:`url:${c}`,url:c}}this.hitAreaManager.add(e,i-this.startYOffset,t.width,this.defaultStyle.lineHeight,d)}},clear(){var t=this.canvas;this.context.clearRect(0,0,t.width,t.height)},drawRectangle(t,e,i,s,r,n){this.autoRound&&(t=Math.round(t),e=Math.round(e));var a=this.context;a.fillStyle=r,a.fillRect(t,e,i,s)},drawLine(t,e,i,s,r,n){this.autoRound&&(t=Math.round(t),e=Math.round(e));var a=this.context;n.syncShadow(a,n.shadowStroke);var h=a.lineCap;a.lineCap="butt",a.strokeStyle=r,a.lineWidth=s,a.beginPath(),a.moveTo(t,e),a.lineTo(t+i,e),a.stroke(),a.lineCap=h},drawText(t,e,i,s){this.autoRound&&(t=Math.round(t),e=Math.round(e));var r=this.context,n=s.letterSpacing;if(0===n)s.stroke&&"none"!==s.stroke&&s.strokeThickness>0&&(s.syncShadow(r,s.shadowStroke),r.strokeText(i,t,e)),s.color&&"none"!==s.color&&(s.syncShadow(r,s.shadowFill),r.fillText(i,t,e));else for(var a=i.split(""),h=0,o=a.length;h<o;h++){var l=a[h];s.stroke&&"none"!==s.stroke&&s.strokeThickness>0&&(s.syncShadow(r,s.shadowStroke),r.strokeText(l,t,e)),s.color&&"none"!==s.color&&(s.syncShadow(r,s.shadowFill),r.fillText(l,t,e)),t+=r.measureText(l).width+n}},drawImage(t,e,i,s,r){e-=this.startYOffset,this.parent.imageManager.draw(i,this.context,t,e,s,this.autoRound)}};const A=Phaser.Utils.Objects.GetValue,I=d,N=g;class F{constructor(t){this.prop={},this.resetFromJSON(t)}resetFromJSON(t){this.text=A(t,"text",""),this.x=A(t,"x",0),this.y=A(t,"y",0),this.width=A(t,"width",0);var e=A(t,"prop",null);null===e&&(e={}),this.prop=e,this.newLineMode=A(t,"newLineMode",0),this.startIndex=A(t,"startIndex",0)}get plainText(){var t=this.text;return this.newLineMode===N&&(t+="\n"),t}get wrapText(){var t=this.text;return this.newLineMode!==I&&(t+="\n"),t}get rawTextLength(){var t=this.text.length;return this.newLineMode===N&&(t+=1),t}get endIndex(){return this.startIndex+this.rawTextLength}get lastX(){return this.x+this.width}get isTextPen(){return""!==this.text}get isImagePen(){return!!this.prop.img}get hasAreaMarker(){return!!this.prop.area||!!this.prop.url}}var W=function(t,e){var i=Array.isArray(t);if(void 0===e?e=i?[]:{}:function(t){if("object"!=typeof t||null===t)return t;if(Array.isArray(t))t.length=0;else for(var e in t)delete t[e]}(e),i){e.length=t.length;for(var s=0,r=t.length;s<r;s++)e[s]=t[s]}else for(var n in t)e[n]=t[n];return e},H=function(){};const $=Phaser.Utils.Objects.GetFastValue,B=d,G=c;class z{constructor(t){this.pens=[],this.lines=[],this.maxLinesWidth=void 0,this.pensPool=t.pensPool,this.linesPool=t.linesPool,this.tagToText=$(t,"tagToText",H),this.tagToTextScope=$(t,"tagToTextScope",void 0)}destroy(){this.clear(),this.tagToText=void 0,this.tagToTextScope=void 0}clear(){for(var t=0,e=this.lines.length;t<e;t++)this.lines[t].length=0;this.pensPool.pushMultiple(this.pens),this.linesPool.pushMultiple(this.lines),this.maxLinesWidth=void 0}addTextPen(t,e,i,s,r,n){var a=this.pensPool.pop();return null==a&&(a=new F),D.text=t,D.x=e,D.y=i,D.width=s,D.prop=r,D.newLineMode=n,a.resetFromJSON(D),this.addPen(a),this}addImagePen(t,e,i,s){return this.addTextPen("",t,e,i,s,B),this}addNewLinePen(){var t=this.lastPen,e=t?t.lastX:0,i=t?t.y:0,s=t?W(t.prop):null;return this.addTextPen("",e,i,0,s,G),this}addPen(t){var e=this.lastPen;t.startIndex=null==e?0:e.endIndex,this.pens.push(t);var i=this.lastLine;null==i&&(i=this.linesPool.pop()||[],this.lines.push(i)),i.push(t),t.newLineMode!==B&&(i=this.linesPool.pop()||[],this.lines.push(i)),this.maxLinesWidth=void 0}clone(t){null==t&&(t=new z),t.clear();for(var e=0,i=this.lines.length;e<i;e++)for(var s=this.lines[e],r=0,n=s.length;r<n;r++){var a=s[r];t.addPen(a.text,a.x,a.y,a.width,W(a.prop),a.newLineMode)}return t}get lastPen(){return this.pens[this.pens.length-1]}get lastLine(){return this.lines[this.lines.length-1]}getLineStartIndex(t){if(t>=this.lines.length)return this.getLineEndIndex(t);var e=this.lines[t];return e&&e[0]?e[0].startIndex:0}getLineEndIndex(t){t>=this.lines.length&&(t=this.lines.length-1);var e,i,s=!1;for(e=t;e>=0&&!(s=null!=(i=this.lines[e])&&i.length>0);e--);return s?i[i.length-1].endIndex:0}getLineWidth(t){var e=this.lines[t];if(!e)return 0;var i=e[e.length-1];return null==i?0:i.lastX}getMaxLineWidth(){if(void 0!==this.maxLinesWidth)return this.maxLinesWidth;for(var t,e=0,i=0,s=this.lines.length;i<s;i++)(t=this.getLineWidth(i))>e&&(e=t);return this.maxLinesWidth=e,e}getLineWidths(){for(var t=[],e=0,i=this.lines.length;e<i;e++)t.push(this.getLineWidth(e));return t}get linesCount(){return this.lines.length}get plainText(){for(var t="",e=this.pens,i=0,s=e.length;i<s;i++)t+=e[i].plainText;return t}get rawTextLength(){for(var t=0,e=this.pens,i=0,s=this.pens.length;i<s;i++)t+=e[i].rawTextLength;return t}getSliceTagText(t,e,i){var s=this.lastPen;if(null==s)return"";var r=s.endIndex;void 0!==t&&0!==t||(t=-1),void 0!==e&&e!==r||(e=r+1),void 0===i&&(i=!1);for(var n,a,h,o,l,u,d="",g=0,c=this.pens.length;g<c&&((o=(n=this.pens[g]).endIndex)<=t||(n=this.pens[g],a=i?n.wrapText:n.plainText,l=n.prop,(h=n.startIndex)>=t&&o<=e||(a=a.substring(t-h,e-h)),this.tagToTextScope?d+=this.tagToText.call(this.tagToTextScope,a,l,u):d+=this.tagToText(a,l,u),u=l,!(o>=e)));g++);return d}get length(){return this.lines.length}set length(t){this.clear()}}var D={};class U{constructor(){this.items=[]}destroy(){this.clear(),this.items=void 0}pop(){return this.items.length>0?this.items.pop():null}push(t){return this.items.push(t),this}pushMultiple(t){return this.items.push.apply(this.items,t),t.length=0,this}clear(){return this.items.length=0,this}}const j=Phaser.Geom.Rectangle;var X=new U;class Y{constructor(){this.hitAreas=[]}destroy(){this.clear()}clear(){for(var t=0,e=this.hitAreas.length;t<e;t++)this.hitAreas[t].data=null;return X.pushMultiple(this.hitAreas),this}add(t,e,i,s,r){void 0===r&&(r={});var n=X.pop();return null===n?n=new j(t,e,i,s):n.setTo(t,e,i,s),n.data=r,this.hitAreas.push(n),this}getFirst(t,e){for(var i=0,s=this.hitAreas.length;i<s;i++){var r=this.hitAreas[i];if(r.contains(t,e))return r}return null}getByKey(t){for(var e=0,i=this.hitAreas.length;e<i;e++){var s=this.hitAreas[e];if(s.data.key===t)return s}return null}drawBounds(t,e,i){void 0===e&&(e=16777215),i&&t.save().translateCanvas(i.x,i.y).rotateCanvas(i.rotation).scaleCanvas(i.scaleX,i.scaleY);for(var s=0,r=this.hitAreas.length;s<r;s++){var n=this.hitAreas[s];t.lineStyle(1,e).strokeRect(n.x,n.y,n.width,n.height)}return i&&t.restore(),this}}var K=function(t,e,i,s){var r=this.hitAreaManager.getFirst(e,i);if(null!==r){var n=r.data.key;q.call(this,"areadown",n,t,e,i,s),r.data&&(r.data.isDown=!0)}},V=function(t,e,i,s){var r=this.hitAreaManager.getFirst(e,i);if(null!==r){var n=r.data.key;if(q.call(this,"areaup",n,t,e,i,s),r.data){if(r.data.isDown){if(q.call(this,"areaclick",n,t,e,i,s),!r.data)return;var a=r.data.url;a&&window.open(a,"_blank")}r.data.isDown=!1}}},J=function(t,e,i,s){if(null!==e){var r=(a=this.hitAreaManager.getFirst(e,i))?a.data.key:null;if(this.lastHitAreaKey!==r){if(null!==this.lastHitAreaKey){q.call(this,"areaout",this.lastHitAreaKey,t,e,i,s);var n=this.hitAreaManager.getByKey(this.lastHitAreaKey);n&&(this.urlTagCursorStyle&&Z(this.scene,n,""),n.data.isDown=!1)}null!==r&&(q.call(this,"areaover",r,t,e,i,s),a.data&&this.urlTagCursorStyle&&Z(this.scene,a,this.urlTagCursorStyle)),this.lastHitAreaKey=r}}else{var a;null!==this.lastHitAreaKey&&(q.call(this,"areaout",this.lastHitAreaKey,t,e,i,s),(a=this.hitAreaManager.getByKey(this.lastHitAreaKey))&&a.data&&(a.data.isDown=!1),this.lastHitAreaKey=null)}},q=function(t,e,i,s,r,n){this.parent.emit(`${t}-${e}`,i,s,r,n),this.parent.emit(t,e,i,s,r,n)},Z=function(t,e,i){e&&e.data&&e.data.url&&(t.input.manager.canvas.style.cursor=i)};const Q=Phaser.GameObjects.Components.TransformMatrix,tt=Phaser.Math.TransformXY;var et,it,st={},rt=/^[\x00-\x7F]+$/,nt=function(t){return rt.test(t)};const at=d,ht=g,ot=c,lt=p,ut=f,dt=v,gt=x;var ct=function(t,e,i,s,r,n,a){s<=0&&(i=lt);var h=[];if(!t||!t.length)return h;for(var o,l,u,d=i===lt,g=t.split(gt),c=0,p=g.length;c<p;c++)if(o=g[c],u=c===p-1?at:ht,d){var f=e.measureText(o).width+r*o.length;h.push(a.getLine(o,f,u))}else{if(l=0===c?s-n:s,o.length<=100&&(f=e.measureText(o).width+r*o.length)<=l){h.push(a.getLine(o,f,u));continue}for(var v,x,y,w=pt(o,i),S="",E=0,O=0,R=w.length;O<R;O++){if(v=w[O],(x=e.measureText(v).width+r*v.length)>s&&ft(v)){""!==S?h.push(a.getLine(S,E,ot)):0===O&&n>0&&h.push(a.getLine("",0,ot)),h.push(...ct(v,e,dt,s,r,0,a));var T=h.pop();S=T.text,E=T.width,a.freeLine(T)," "===S&&(S="",E=0)}else(y=E+x)>l?(h.push(a.getLine(S,E,ot)),S=v,E=x,l=s):(S+=v,E=y);O===R-1&&h.push(a.getLine(S,E,u))}}return h},pt=function(t,e){var i;switch(e){case ut:i=[];for(var s=0,r=(t=t.split(" ")).length;s<r;s++){var n=t[s];s<r-1?i.push(n+" "):""!==n&&i.push(n)}break;case dt:i=t.split("");break;default:for(i=[],s=0,r=(t=t.split(" ")).length;s<r;s++)n=t[s],s<r-1?nt(n)?i.push(n+" "):(i.push(...n.split("")),i.push(" ")):""!==n&&(nt(n)?i.push(n):i.push(...n.split("")))}return i},ft=function(t){switch(t.length){case 1:return!1;case 2:return" "!==t.charAt(1);default:return!0}};const vt=Phaser.Utils.Objects.GetValue,xt=p,yt=d,wt=c;class St{constructor(t){this.parent=t.parent,this.scene=this.parent.scene,this.context=vt(t,"context",null),this.canvas=this.context.canvas,this.parser=vt(t,"parser",null),this.defaultStyle=vt(t,"style",null),this.autoRound=!0,this.pensPool=t.pensPool,this.linesPool=t.linesPool,this.wrapTextLinesPool=t.wrapTextLinesPool,this.penManager=this.newPenManager(),this._tmpPenManager=null,this.hitAreaManager=new Y,this.lastHitAreaKey=null,this.urlTagCursorStyle=null}destroy(){this.parent=void 0,this.scene=void 0,this.context=void 0,this.canvas=void 0,this.parser=void 0,this.defaultStyle=void 0,this.penManager&&(this.penManager.destroy(),this.penManager=void 0),this._tmpPenManager&&(this._tmpPenManager.destroy(),this._tmpPenManager=void 0),this.hitAreaManager&&(this.hitAreaManager.destroy(),this.hitAreaManager=void 0),this.pensPool=void 0,this.linesPool=void 0,this.wrapTextLinesPool=void 0}updatePenManager(t,e,i,s,r){if(void 0===r&&(r=this.penManager),r.clear(),""===t)return r;var n=this.parent.style;if(n.isWrapFitMode){var a=this.parent.padding;i=n.fixedWidth-a.left-a.right}for(var h,o,l,u,d,g=this.canvas,c=this.context,p=0,f=0,v=n.wrapCallback,x=n.wrapCallbackScope,y=!v,w=!0,S=this.parser.splitText(t),E=this.wrapTextLinesPool,O=0,R=S.length;O<R;O++)if(h=(u=this.parser.tagTextToProp(S[O],o)).plainText,(o=u.prop).img){var T=this.imageManager.getOuterWidth(o.img);i>0&&e!==xt&&i<p+T&&(r.addNewLinePen(),f+=s,p=0),r.addImagePen(p,f,T,W(o)),p+=T}else if(""!==h){if(c.save(),(l=this.parser.propToContextStyle(this.defaultStyle,o)).buildFont(),l.syncFont(g,c),l.syncStyle(g,c),y)d=ct(h,c,e,i,l.letterSpacing,p,E);else{"string"==typeof(d=v.call(x,h,c,i,l.letterSpacing,p))&&(d=d.split("\n"));for(var m=0,k=d.length;m<k;m++)"string"==typeof(_=d[m])?d[m]=E.getLine(_,c.measureText(_).width,m<k-1?wt:yt):w=!1}var _;for(m=0,k=d.length;m<k;m++)_=d[m],r.addTextPen(_.text,p,f,_.width,W(o),_.newLineMode),_.newLineMode!==yt?(p=0,f+=s):p+=_.width;w&&E.freeLines(d),d=null,c.restore()}for(O=0,R=this.lines.length;O<R;O++){var P=this.lines[O],C=P[P.length-1];C&&(C.width+=this.parser.getStrokeThinkness(this.defaultStyle,C.prop),C.width-=this.parser.getLetterSpacing(this.defaultStyle,C.prop))}return r}get startXOffset(){return this.defaultStyle.xOffset}get startYOffset(){return this.defaultStyle.metrics.ascent}get lines(){return this.penManager.lines}get displayLinesCount(){var t=this.penManager.linesCount,e=this.defaultStyle.maxLines;return e>0&&t>e&&(t=e),t}get linesWidth(){return Math.ceil(this.penManager.getMaxLineWidth())}get linesHeight(){var t=this.displayLinesCount,e=this.defaultStyle.lineHeight*t;return t>0&&(e-=this.defaultStyle.lineSpacing),e}get imageManager(){return this.parent.imageManager}get rtl(){return this.parent.style.rtl}newPenManager(){return new z({pensPool:this.pensPool,linesPool:this.linesPool,tagToText:this.parser.propToTagText,tagToTextScope:this.parser})}get tmpPenManager(){return null===this._tmpPenManager&&(this._tmpPenManager=this.newPenManager()),this._tmpPenManager}getPlainText(t,e,i){var s;if(null==t)s=this.penManager.plainText;else{var r=this.parser.splitText(t,1);s="";for(var n=0,a=r.length;n<a;n++)s+=r[n]}return null==e&&null==i||(null==e&&(e=0),null==i&&(i=s.length),s=s.substring(e,i)),s}getPenManager(t,e){if(void 0===t)return this.copyPenManager(e,this.penManager);void 0===e&&(e=this.newPenManager());var i=this.defaultStyle;return this.updatePenManager(t,i.wrapMode,i.wrapWidth,i.lineHeight,e),e}getText(t,e,i,s){if(null==t)return this.penManager.getSliceTagText(e,i,s);var r=this.tmpPenManager,n=this.defaultStyle;return this.updatePenManager(t,n.wrapMode,n.wrapWidth,n.lineHeight,r),r.getSliceTagText(e,i,s)}copyPenManager(t,e){return void 0===e&&(e=this.penManager),e.copy(t)}getTextWidth(t){return void 0===t&&(t=this.penManager),t.getMaxLineWidth()}getLastPen(t){return void 0===t&&(t=this.penManager),t.lastPen}}var Et={setInteractive:function(){this.parent.on("pointerdown",K,this).on("pointerup",V,this).on("pointermove",J,this).on("pointerover",J,this).on("pointerout",(function(t,e){J.call(this,t,null,null,e)}),this)},getHitArea:function(t,e,i){var s=function(t,e,i,s,r){void 0===s&&(s=t.scene.cameras.main),void 0===r?r={}:!0===r&&(r=st);var n=s.scrollX,a=s.scrollY,h=e+n*t.scrollFactorX-n,o=i+a*t.scrollFactorY-a;return t.parentContainer?(void 0===et&&(et=new Q,it=new Q),t.getWorldTransformMatrix(et,it),et.applyInverse(h,o,r)):tt(h,o,t.x,t.y,t.rotation,t.scaleX,t.scaleY,r),r.x+=t.displayOriginX,r.y+=t.displayOriginY,r}(this.parent,t,e,i,!0),r=this.hitAreaManager.getFirst(s.x,s.y);if(null!==r)return r.data.key}};Object.assign(St.prototype,L,Et);class Ot extends U{freeLine(t){if(t)return this.push(t),this}freeLines(t){if(t)return this.pushMultiple(t),this}getLine(t,e,i){var s=this.pop();return null===s&&(s={}),s.text=t,s.width=e,s.newLineMode=i,s}}const Rt=Phaser.Utils.Objects.IsPlainObject,Tt=Phaser.Utils.Objects.GetValue;var mt=function(t,e){Rt(t)?t=(e=t).key:void 0===e&&(e={key:t}),e.hasOwnProperty("key")||(e.key=t);var i=e.key,s=e.frame,r=e.width,n=e.height;if(void 0===r||void 0===n){var a=this.textureManager.getFrame(i,s),h=a?a.cutWidth:0,o=a?a.cutHeight:0;void 0===r&&void 0===n?(r=h,n=o):void 0===r?r=h*(n/o):void 0===n&&(n=o*(r/h))}this.images[t]={key:i,frame:s,width:r,height:n,y:Tt(e,"y",0),left:Tt(e,"left",0),right:Tt(e,"right",0),originX:Tt(e,"originX",0),originY:Tt(e,"originY",0),tintFill:Tt(e,"tintFill",!1)}};const kt=Phaser.Display.Canvas.CanvasPool;class _t{constructor(t){this.textureManager=t.sys.textures,this.images={}}destroy(){this.textureManager=void 0,this.images=void 0}add(t,e){if("string"==typeof t)mt.call(this,t,e);else if(Array.isArray(t))for(var i=0,s=(r=t).length;i<s;i++)mt.call(this,r[i]);else{var r=t;for(var t in r)mt.call(this,t,r[t])}return this}has(t){return this.images.hasOwnProperty(t)}remove(t){return this.has(t)&&delete this.images[t],this}get(t){return this.has(t)||this.textureManager.exists(t)&&this.add(t),this.images[t]}getOuterWidth(t){var e=this.get(t);return e?e.width+e.left+e.right:0}getFrame(t){var e=this.get(t);return e?this.textureManager.getFrame(e.key,e.frame):void 0}hasTexture(t){return!!this.getFrame(t)}}var Pt={draw:function(t,e,i,s,r,n){var a=this.get(t);if(a){var h=this.textureManager.getFrame(a.key,a.frame),o=a.width,l=a.height;i+=a.left-a.originX*o,s+=a.y-a.originY*l,a.tintFill||(r=void 0),function(t,e,i,s,r,n,a,h){void 0===i&&(i=0),void 0===s&&(s=0),void 0===r&&(r=t.cutWidth),void 0===n&&(n=t.cutHeight),void 0===h&&(h=!1),h&&(i=Math.round(i),s=Math.round(s));var o=e.getContext("2d",{willReadFrequently:!0});if(a){var l=kt.create(null,r,n,Phaser.CANVAS,!0),u=l.getContext("2d",{willReadFrequently:!0});u.drawImage(t.source.image,t.cutX,t.cutY,t.cutWidth,t.cutHeight,0,0,r,n),u.globalCompositeOperation="source-in",u.fillStyle=a,u.fillRect(0,0,r,n),o.drawImage(l,0,0,r,n,i,s,r,n),kt.remove(l)}else o.drawImage(t.source.image,t.cutX,t.cutY,t.cutWidth,t.cutHeight,i,s,r,n)}(h,e.canvas,i,s,o,l,r,n)}}};Object.assign(_t.prototype,Pt);const Ct=Phaser.Utils.Objects.IsPlainObject,bt=Phaser.DOM.AddToDOM,Mt=Phaser.Display.Canvas.CanvasPool,Lt=Phaser.GameObjects.GameObject,At=Phaser.Utils.Objects.GetValue,It=Phaser.DOM.RemoveFromDOM,Nt=x,Ft=Phaser.Utils.String.UUID,Wt=Phaser.Renderer.WebGL.RenderNodes.Defaults.DefaultImageNodes;var Ht=null,$t=null,Bt=null;class Gt extends r{constructor(t,e,i,s,r,n,a){if(Ct(e)){var h=e;e=At(h,"x",0),i=At(h,"y",0),s=At(h,"text",""),r=At(h,"style")}if(void 0===e&&(e=0),void 0===i&&(i=0),super(t,n),this.renderer=t.sys.game.renderer,this.setPosition(e,i),this.setOrigin(0,0),this.initRenderNodes(this._defaultRenderNodesMap),this.canvas=Mt.create(this),this._imageManager=void 0,r){if(r.hasOwnProperty("align")){var o=r.align;delete r.align,r.halign=o}r.hasOwnProperty("stroke")&&!r.hasOwnProperty("strokeThickness")&&(r.strokeThickness=1)}this.style=new E(this,r);var l,u,d,g=At(r,"images",void 0);g&&this.addImage(g),this.autoRound=!0,this._text=void 0,this.padding={left:0,right:0,top:0,bottom:0},this.width=1,this.height=1,this.dirty=!1,0===this.style.resolution&&(this.style.resolution=1),this._crop=this.resetCropObject(),this._textureKey=Ft(),this.texture=t.sys.textures.addCanvas(this._textureKey,this.canvas),this.context=this.texture.context,this.frame=this.texture.get(),this.frame.source.resolution=this.style.resolution,this.renderer&&this.renderer.gl&&(this.renderer.deleteTexture(this.frame.source.glTexture),this.frame.source.glTexture=null),At(r,"sharedPool",!0)?(Ht||(Ht={},$t=new U,Bt=new Ot,this.scene.game.events.once("destroy",(function(){Ht=null,$t=null,Bt=null}))),Ht.hasOwnProperty(n)||(Ht[n]=new U),l=Ht[n],u=$t,d=Bt):(l=new U,u=new U,d=new Ot),this.canvasText=new St({parent:this,context:this.context,parser:a,style:this.style,pensPool:l,linesPool:u,wrapTextLinesPool:d}),this.parser=a,this.initRTL(),r&&r.padding&&this.setPadding(r.padding),this.setText(s),this.setUrlTagCursorStyle(At(r,"urlTagCursorStyle","pointer")),At(r,"interactive",!1)&&this.setInteractive()}get _defaultRenderNodesMap(){return Wt}preDestroy(){It(this.canvas),this.canvasText.destroy(),this.canvasText=void 0,this._imageManager&&(this._imageManager.destroy(),this._imageManager=void 0),Mt.remove(this.canvas);var t=this.texture;t&&t.destroy()}set text(t){this.setText(t)}get text(){return this._text}initRTL(){this.style.rtl&&(this.canvas.dir="rtl",this.context.direction="rtl",this.canvas.style.display="none",bt(this.canvas,this.scene.sys.canvas),this.originX=1)}setRTL(t){void 0===t&&(t=!0);var e=this.style;if(e.rtl===t)return this;if(e.rtl=t,t?(this.canvas.dir="rtl",this.context.direction="rtl",this.canvas.style.display="none",bt(this.canvas,this.scene.sys.canvas)):(this.canvas.dir="ltr",this.context.direction="ltr"),"left"===e.halign?e.halign="right":"right"===e.halign&&(e.halign="left"),this._imageManager){var i=this._imageManager.images;for(var s in i)i[s].originX=1-i[s].originX}return this}setText(t){return(t=function(t){return null==t?t="":Array.isArray(t)?t=t.join("\n"):"number"==typeof t&&(t=t.toString()),t}(t))===this._text||(this._text=t,this.updateText()),this}setPadding(t,e,i,s){if("object"==typeof t){var r=t,n=At(r,"x",null);null!==n?(t=n,i=n):(t=At(r,"left",0),i=At(r,"right",t));var a=At(r,"y",null);null!==a?(e=a,s=a):(e=At(r,"top",0),s=At(r,"bottom",e))}else void 0===t&&(t=0),void 0===e&&(e=t),void 0===i&&(i=t),void 0===s&&(s=e);return this.padding.left=t,this.padding.top=e,this.padding.right=i,this.padding.bottom=s,this.updateText(!1)}updateText(t){void 0===t&&(t=!0);var e=this.canvasText,i=this.style;t&&e.updatePenManager(this._text,i.wrapMode,i.wrapWidth,i.lineHeight);var s,r,n=this.padding,a=Math.ceil(e.linesWidth);0===i.fixedWidth?(this.width=a+n.left+n.right,s=a):(this.width=i.fixedWidth,(s=this.width-n.left-n.right)<a&&(s=a)),0===i.fixedHeight?(this.height=e.linesHeight+n.top+n.bottom,r=e.linesHeight):(this.height=i.fixedHeight,(r=this.height-n.top-n.bottom)<e.linesHeight&&(r=e.linesHeight));var h=this.width,o=this.height;this.updateDisplayOrigin();var l=i.resolution;h*=l,o*=l,h=Math.max(Math.ceil(h),1),o=Math.max(Math.ceil(o),1);var u=this.canvas,d=this.context;u.width!==h||u.height!==o?(u.width=h,u.height=o,this.frame.setSize(h,o),this.frame.source.updateSize(h,o),this.frame.updateUVs()):d.clearRect(0,0,h,o),d.save(),d.scale(l,l);var g=this.style.rtl?n.right:n.left,c=n.top;e.draw(g,c,s,r),d.restore(),this.renderer&&this.renderer.gl&&(this.frame.source.glTexture=this.renderer.canvasToTexture(u,this.frame.source.glTexture,!0),this.frame.glTexture.spectorMetadata={textureKey:"BBCodeText Game Object"}),this.dirty=!0;var p=this.input;return p&&!p.customHitArea&&(p.hitArea.width=this.width,p.hitArea.height=this.height),this}toJSON(){var t=Components.ToJSON(this),e={autoRound:this.autoRound,text:this._text,style:this.style.toJSON(),resolution:this.resolution,padding:{left:this.padding.left,right:this.padding.right,top:this.padding.top,bottom:this.padding.bottom}};return t.data=e,t}setInteractive(t,e,i){var s=!!this.input;return Lt.prototype.setInteractive.call(this,t,e,i),s||this.canvasText.setInteractive(),this}setUrlTagCursorStyle(t){return this.urlTagCursorStyle=t,this}get urlTagCursorStyle(){return this.canvasText.urlTagCursorStyle}set urlTagCursorStyle(t){this.canvasText.urlTagCursorStyle=t}getWrappedText(t,e,i){return"number"==typeof t&&(i=e,e=t,t=void 0),(t=this.canvasText.getText(t,e,i,!0)).split(Nt)}getPlainText(t,e,i){return"number"==typeof t&&(i=e,e=t,t=void 0),this.canvasText.getPlainText(t,e,i)}getText(t,e,i,s){return"number"==typeof t&&(s=i,i=e,e=t,t=void 0),void 0===s&&(s=!1),this.canvasText.getText(t,e,i,s)}getSubString(t,e,i){return"number"==typeof t&&(i=e,e=t,t=void 0),this.getText(t,e,i)}copyPenManager(t){return this.canvasText.copyPenManager(t)}getPenManager(t,e){return this.canvasText.getPenManager(t,e)}setSize(t,e){return this.setFixedSize(t,e)}resize(t,e){return this.setFixedSize(t,e)}get imageManager(){return this._imageManager||(this._imageManager=new _t(this.scene)),this._imageManager}addImage(t,e){return this.imageManager.add(t,e),this}drawAreaBounds(t,e){return this.canvasText.hitAreaManager.drawBounds(t,e,this),this}generateTexture(t,e,i,s,r){var n=this.canvas;return void 0===s?s=n.width:s*=this.resolution,void 0===r?r=n.height:r*=this.resolution,function(t,e,i,s,r,n,a){var h,o=t.sys.textures,l=t.renderer;void 0===s&&(s=0),void 0===r&&(r=0),void 0===n&&(n=e.width),void 0===a&&(a=e.height);var u=(h=o.exists(i)?o.get(i):o.createCanvas(i,n,a)).getSourceImage();u.width!==n&&(u.width=n),u.height!==a&&(u.height=a);var d=u.getContext("2d",{willReadFrequently:!0});d.clearRect(0,0,n,a),d.drawImage(e,s,r,n,a),l.gl&&h&&l.canvasToTexture(u,h.source[0].glTexture,!0,0)}(this.scene,n,t,e,i,s,r),this}getHitArea(t,e,i){return this.canvasText.getHitArea(t,e,i)}}var zt={appendText:function(t,e){var i;return t||0===t||(t=""),void 0===e&&(e=!0),Array.isArray(t)&&(t=t.join("\n")),(i=e?`${this.text}\n${t}`:`${this.text}${t}`)!=this.text&&this.setText(i),this}};Object.assign(Gt.prototype,zt);const Dt=!1,Ut=!0;var jt,Xt,Yt={plainText:null,prevProp:null},Kt=function(t,e,i,s){return e===Ut?t[i]=s:t.hasOwnProperty(i)&&delete t[i],t},Vt=function(t){var e=t.b,i=t.weight,s=t.i;return e||i||s?s?e?"bold italic":i?`${i} italic`:"italic":e?"bold":i.toString():""},Jt=new E,qt={},Zt=function(t){return t.replace(Qt,"\\$&").replace(te,"\\x2d")},Qt=/[|\\{}()[\]^$+*?.]/g,te=/-/g,ee={},ie=function(t,e,i,s){return void 0===s?`${t}${i}${e}`:`${t}${i}=(${s})${e}`},se=function(t,e,i){return`${t}/${i}${e}`},re="[-.0-9]+",ne=["[a-zA-Z]+","#[0-9abcdef]+","rgba?\\(s*[.0-9]+s*(,s*[.0-9]+s*){2,3}\\)"].join("|"),ae=function(t,e){if(void 0===e){var i=t;t=i[0],e=i[1]}if(jt===t&&Xt===e)return!1;jt=t,Xt=e,t=Zt(t);var s=function(t){return`[^${t}]+`}(e=Zt(e)),r=ie(t,e,"esc"),n=se(t,e,"esc"),a=ie(t,e,"raw"),h=se(t,e,"raw"),o=ie(t,e,"b"),l=se(t,e,"b"),u=ie(t,e,"i"),d=se(t,e,"i"),g="weight",c=ie(t,e,g,re),p=se(t,e,g),f="size",v=ie(t,e,f,re),x=se(t,e,f),y="family",w=ie(t,e,y,s),S=se(t,e,y),E="color",O=ie(t,e,E,ne),R=se(t,e,E),T=ie(t,e,"u"),m=ie(t,e,"u",ne),k=se(t,e,"u"),_=ie(t,e,"s"),P=ie(t,e,"s",ne),C=se(t,e,"s"),b="shadow",M=ie(t,e,b),L=ie(t,e,b,ne),A=se(t,e,b),I="stroke",N=ie(t,e,I),F=ie(t,e,I,ne),W=se(t,e,I),H="bgcolor",$=ie(t,e,H,ne),B=se(t,e,H),G=ie(t,e,"y",re),z=se(t,e,"y"),D="spacing",U=ie(t,e,D,re),j=se(t,e,D),X=ie(t,e,"img",s),Y=se(t,e,"img"),K="area",V=ie(t,e,K,s),J=se(t,e,K),q=ie(t,e,"url",s),Z=se(t,e,"url"),Q="align",tt=ie(t,e,Q,s),et=se(t,e,Q),it=ie(t,e,"id",s),st=se(t,e,"id");return ee.RE_ESC_OPEN=new RegExp(r,"i"),ee.RE_ESC_CLOSE=new RegExp(n,"i"),ee.RE_RAW_OPEN=new RegExp(a,"i"),ee.RE_RAW_CLOSE=new RegExp(h,"i"),ee.RE_BLOD_OPEN=new RegExp(o,"i"),ee.RE_BLOD_CLOSE=new RegExp(l,"i"),ee.RE_ITALICS_OPEN=new RegExp(u,"i"),ee.RE_ITALICS_CLOSE=new RegExp(d,"i"),ee.RE_WEIGHT_OPEN=new RegExp(c,"i"),ee.RE_WEIGHT_CLOSE=new RegExp(p,"i"),ee.RE_SIZE_OPEN=new RegExp(v,"i"),ee.RE_SIZE_CLOSE=new RegExp(x,"i"),ee.RE_FAMILY_OPEN=new RegExp(w,"i"),ee.RE_FAMILY_CLOSE=new RegExp(S,"i"),ee.RE_COLOR_OPEN=new RegExp(O,"i"),ee.RE_COLOR_CLOSE=new RegExp(R,"i"),ee.RE_UNDERLINE_OPEN=new RegExp(T,"i"),ee.RE_UNDERLINE_OPENC=new RegExp(m,"i"),ee.RE_UNDERLINE_CLOSE=new RegExp(k,"i"),ee.RE_STRIKETHROUGH_OPEN=new RegExp(_,"i"),ee.RE_STRIKETHROUGH_OPENC=new RegExp(P,"i"),ee.RE_STRIKETHROUGH_CLOSE=new RegExp(C,"i"),ee.RE_SHADOW_OPEN=new RegExp(M,"i"),ee.RE_SHADOW_OPENC=new RegExp(L,"i"),ee.RE_SHADOW_CLOSE=new RegExp(A,"i"),ee.RE_STROKE_OPEN=new RegExp(N,"i"),ee.RE_STROKE_OPENC=new RegExp(F,"i"),ee.RE_STROKE_CLOSE=new RegExp(W,"i"),ee.RE_BGCOLOR_OPEN=new RegExp($,"i"),ee.RE_BGCOLOR_CLOSE=new RegExp(B,"i"),ee.RE_OFFSETY_OPEN=new RegExp(G,"i"),ee.RE_OFFSETY_CLOSE=new RegExp(z,"i"),ee.RE_SPACING_OPEN=new RegExp(U,"i"),ee.RE_SPACING_CLOSE=new RegExp(j,"i"),ee.RE_IMAGE_OPEN=new RegExp(X,"i"),ee.RE_IMAGE_CLOSE=new RegExp(Y,"i"),ee.RE_AREA_OPEN=new RegExp(V,"i"),ee.RE_AREA_CLOSE=new RegExp(J,"i"),ee.RE_URL_OPEN=new RegExp(q,"i"),ee.RE_URL_CLOSE=new RegExp(Z,"i"),ee.RE_ALIGN_OPEN=new RegExp(tt,"i"),ee.RE_ALIGN_CLOSE=new RegExp(et,"i"),ee.RE_ID_OPEN=new RegExp(it,"i"),ee.RE_ID_CLOSE=new RegExp(st,"i"),ee.RE_SPLITTEXT=new RegExp([a,h,r,n,o,l,u,d,c,p,v,x,w,S,O,R,T,m,k,_,P,C,M,L,A,N,F,W,$,B,G,z,U,j,X,Y,V,J,q,Z,tt,et,it,st].join("|"),"ig"),!0},he=function(t,e){return void 0!==t&&ae(t,e),Object.assign({},ee)};const oe=Phaser.Utils.Objects.GetValue;class le{constructor(t){var e=oe(t,"delimiters","[]");this.tagRegex=he(e),this.delimiters=e}getStrokeThinkness(t,e){return e.hasOwnProperty("stroke")?t.strokeThickness:0}getLetterSpacing(t,e){return e.hasOwnProperty("spacing")?e.spacing:t.letterSpacing}setDelimiters(t,e){return ae(t,e)&&(this.tagRegex=he()),this}}var ue={splitText:function(t,e){for(var i=this.tagRegex,s=[],r=0,n=!1,a=!1;;){var h=i.RE_SPLITTEXT.exec(t);if(!h)break;var o=h[0];if(a){if(!i.RE_ESC_CLOSE.test(o))continue;a=!1}else if(n){if(!i.RE_RAW_CLOSE.test(o))continue;n=!1}else i.RE_ESC_OPEN.test(o)?a=!0:i.RE_RAW_OPEN.test(o)&&(n=!0);var l=i.RE_SPLITTEXT.lastIndex,u=l-o.length;if(r<u){var d=t.substring(r,u);s.push(d)}void 0===e&&s.push(o),r=l}var g=t.length;return r<g&&s.push(t.substring(r,g)),s},tagTextToProp:function(t,e){var i=this.tagRegex;null==e&&(e={});var s="";if(e.img&&Kt(e,Dt,"img"),e.esc)i.RE_ESC_CLOSE.test(t)?Kt(e,Dt,"esc"):s=t;else if(e.raw)i.RE_RAW_CLOSE.test(t)?Kt(e,Dt,"raw"):s=t;else if(i.RE_ESC_OPEN.test(t))Kt(e,Ut,"esc",!0);else if(i.RE_ESC_CLOSE.test(t))Kt(e,Dt,"esc");else if(i.RE_RAW_OPEN.test(t))Kt(e,Ut,"raw",!0);else if(i.RE_RAW_CLOSE.test(t))Kt(e,Dt,"raw");else if(i.RE_BLOD_OPEN.test(t))Kt(e,Ut,"b",!0);else if(i.RE_BLOD_CLOSE.test(t))Kt(e,Dt,"b");else if(i.RE_ITALICS_OPEN.test(t))Kt(e,Ut,"i",!0);else if(i.RE_ITALICS_CLOSE.test(t))Kt(e,Dt,"i");else if(i.RE_WEIGHT_OPEN.test(t)){var r=t.match(i.RE_WEIGHT_OPEN);Kt(e,Ut,"weight",r[1])}else i.RE_WEIGHT_CLOSE.test(t)?Kt(e,Dt,"weight"):i.RE_SIZE_OPEN.test(t)?(r=t.match(i.RE_SIZE_OPEN),Kt(e,Ut,"size",`${r[1]}px`)):i.RE_SIZE_CLOSE.test(t)?Kt(e,Dt,"size"):i.RE_FAMILY_OPEN.test(t)?(r=t.match(i.RE_FAMILY_OPEN),Kt(e,Ut,"family",r[1])):i.RE_FAMILY_CLOSE.test(t)?Kt(e,Dt,"family"):i.RE_COLOR_OPEN.test(t)?(r=t.match(i.RE_COLOR_OPEN),Kt(e,Ut,"color",r[1])):i.RE_COLOR_CLOSE.test(t)?Kt(e,Dt,"color"):i.RE_UNDERLINE_OPEN.test(t)?Kt(e,Ut,"u",!0):i.RE_UNDERLINE_OPENC.test(t)?(r=t.match(i.RE_UNDERLINE_OPENC),Kt(e,Ut,"u",r[1])):i.RE_UNDERLINE_CLOSE.test(t)?Kt(e,Dt,"u"):i.RE_STRIKETHROUGH_OPEN.test(t)?Kt(e,Ut,"s",!0):i.RE_STRIKETHROUGH_OPENC.test(t)?(r=t.match(i.RE_STRIKETHROUGH_OPENC),Kt(e,Ut,"s",r[1])):i.RE_STRIKETHROUGH_CLOSE.test(t)?Kt(e,Dt,"s"):i.RE_SHADOW_OPEN.test(t)?Kt(e,Ut,"shadow",!0):i.RE_SHADOW_OPENC.test(t)?(r=t.match(i.RE_SHADOW_OPENC),Kt(e,Ut,"shadow",r[1])):i.RE_SHADOW_CLOSE.test(t)?Kt(e,Dt,"shadow"):i.RE_STROKE_OPEN.test(t)?Kt(e,Ut,"stroke",!0):i.RE_STROKE_OPENC.test(t)?(r=t.match(i.RE_STROKE_OPENC),Kt(e,Ut,"stroke",r[1])):i.RE_STROKE_CLOSE.test(t)?Kt(e,Dt,"stroke"):i.RE_BGCOLOR_OPEN.test(t)?(r=t.match(i.RE_BGCOLOR_OPEN),Kt(e,Ut,"bgcolor",r[1])):i.RE_BGCOLOR_CLOSE.test(t)?Kt(e,Dt,"bgcolor"):i.RE_OFFSETY_OPEN.test(t)?(r=t.match(i.RE_OFFSETY_OPEN),Kt(e,Ut,"y",parseFloat(r[1]))):i.RE_OFFSETY_CLOSE.test(t)?Kt(e,Dt,"y"):i.RE_SPACING_OPEN.test(t)?(r=t.match(i.RE_SPACING_OPEN),Kt(e,Ut,"spacing",parseFloat(r[1]))):i.RE_SPACING_CLOSE.test(t)?Kt(e,Dt,"spacing"):i.RE_IMAGE_OPEN.test(t)?(r=t.match(i.RE_IMAGE_OPEN),Kt(e,Ut,"img",r[1])):i.RE_IMAGE_CLOSE.test(t)?Kt(e,Dt,"img"):i.RE_AREA_OPEN.test(t)?(r=t.match(i.RE_AREA_OPEN),Kt(e,Ut,"area",r[1])):i.RE_AREA_CLOSE.test(t)?Kt(e,Dt,"area"):i.RE_URL_OPEN.test(t)?(r=t.match(i.RE_URL_OPEN),Kt(e,Ut,"url",r[1])):i.RE_URL_CLOSE.test(t)?Kt(e,Dt,"url"):i.RE_ALIGN_OPEN.test(t)?(r=t.match(i.RE_ALIGN_OPEN),Kt(e,Ut,"align",r[1])):i.RE_ALIGN_CLOSE.test(t)?Kt(e,Dt,"align"):i.RE_ID_OPEN.test(t)?(r=t.match(i.RE_ID_OPEN),Kt(e,Ut,"id",r[1])):i.RE_ID_CLOSE.test(t)?Kt(e,Dt,"id"):s=t;var n=Yt;return n.plainText=s,n.prop=e,n},propToContextStyle:function(t,e){var i=Jt;if(e.hasOwnProperty("img"))i.image=e.img;el