gdcore-tools 2.0.0-gd-v5.5.221-autobuild → 2.0.0-gd-v5.5.222-autobuild

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- var gdjs;(function(a){const C={text:"text",email:"email",password:"password",number:"number","telephone number":"tel",url:"url",search:"search"},o=(u,t)=>"rgba("+u[0]+","+u[1]+","+u[2]+","+t/255+")";class r{constructor(t,e){this._input=null;this._object=t,this._instanceContainer=e,this._runtimeGame=this._instanceContainer.getGame(),this._createElement()}_createElement(){if(this._input)throw new Error("Tried to recreate an input while it already exists.");const t=this._object.getInputType()==="text area";this._input=document.createElement(t?"textarea":"input"),this._input.style.border="1px solid black",this._input.autocomplete="off",this._input.style.borderRadius="0px",this._input.style.backgroundColor="white",this._input.style.position="absolute",this._input.style.resize="none",this._input.style.outline="none",this._input.style.pointerEvents="auto",this._input.style.display="none",this._input.style.boxSizing="border-box",this._input.addEventListener("input",()=>{!this._input||this._object.onRendererInputValueChanged(this._input.value)}),this._input.addEventListener("touchstart",()=>{!this._input||document.activeElement!==this._input&&this._input.focus()}),this.updateString(),this.updateFont(),this.updatePlaceholder(),this.updateOpacity(),this.updateInputType(),this.updateTextColor(),this.updateFillColorAndOpacity(),this.updateBorderColorAndOpacity(),this.updateBorderWidth(),this.updateDisabled(),this.updateReadOnly(),this._runtimeGame.getRenderer().getDomElementContainer().appendChild(this._input)}_destroyElement(){!this._input||(this._input.remove(),this._input=null)}onScenePaused(){this._destroyElement()}onSceneResumed(){this._input||this._createElement()}onDestroy(){this._destroyElement()}updatePreRender(){if(!this._input)return;if(this._object.isHidden()){this._input.style.display="none";return}{let n=this._instanceContainer,s=this._object,b=!0;do{if(!n.getLayer(s.getLayer()).isVisible()||!s.isVisible()){this._input.style.display="none";return}n instanceof a.CustomRuntimeObjectInstanceContainer?(s=n.getOwner(),n=s.getInstanceContainer()):b=!1}while(b)}const t=a.staticArray(r.prototype.updatePreRender),e=this._instanceContainer.getGame(),i=e.getRenderer(),p=this._instanceContainer.getLayer(this._object.getLayer()),h=p.convertInverseCoords(this._object.x,this._object.y,0,t),l=h[0],c=h[1],d=p.convertInverseCoords(this._object.x+this._object.getWidth(),this._object.y+this._object.getHeight(),0,t),_=d[0],y=d[1];if(_<0||y<0||l>e.getGameResolutionWidth()||c>e.getGameResolutionHeight()){this._input.style.display="none";return}t[0]=l,t[1]=c,i.convertCanvasToDomElementContainerCoords(t,t);const m=t[0],g=t[1];t[0]=_,t[1]=y,i.convertCanvasToDomElementContainerCoords(t,t);const f=t[0],j=t[1],x=f-m,R=j-g;this._input.style.left=m+"px",this._input.style.top=g+"px",this._input.style.width=x+"px",this._input.style.height=R+"px",this._input.style.transform="rotate3d(0,0,1,"+this._object.getAngle()%360+"deg)",this._input.style.fontSize=this._object.getFontSize()*i.getCanvasToDomElementContainerHeightScale()+"px",this._input.style.display="initial"}updateString(){!this._input||(this._input.value=this._object.getString())}updatePlaceholder(){!this._input||(this._input.placeholder=this._object.getPlaceholder())}updateFont(){!this._input||(this._input.style.fontFamily=this._instanceContainer.getGame().getFontManager().getFontFamily(this._object.getFontResourceName()))}updateOpacity(){!this._input||(this._input.style.opacity=""+this._object.getOpacity()/255)}updateInputType(){if(!this._input)return;const t=this._input instanceof HTMLTextAreaElement,e=this._object.getInputType()==="text area";t!==e&&(this._destroyElement(),this._createElement());const i=C[this._object.getInputType()]||"text";this._input.setAttribute("type",i)}updateTextColor(){!this._input||(this._input.style.color=o(this._object._getRawTextColor(),255))}updateFillColorAndOpacity(){!this._input||(this._input.style.backgroundColor=o(this._object._getRawFillColor(),this._object.getFillOpacity()))}updateBorderColorAndOpacity(){!this._input||(this._input.style.borderColor=o(this._object._getRawBorderColor(),this._object.getBorderOpacity()))}updateBorderWidth(){!this._input||(this._input.style.borderWidth=this._object.getBorderWidth()+"px")}updateDisabled(){!this._input||(this._input.disabled=this._object.isDisabled())}updateReadOnly(){!this._input||(this._input.readOnly=this._object.isReadOnly())}isFocused(){return this._input===document.activeElement}focus(){!this._input||this._input.focus()}}a.TextInputRuntimeObjectRenderer=r})(gdjs||(gdjs={}));
1
+ var gdjs;(function(a){const f={text:"text",email:"email",password:"password",number:"number","telephone number":"tel",url:"url",search:"search"},o=(h,t)=>"rgba("+h[0]+","+h[1]+","+h[2]+","+t/255+")";class r{constructor(t,e){this._input=null;this._form=null;this._object=t,this._instanceContainer=e,this._runtimeGame=this._instanceContainer.getGame(),this._createElement()}_createElement(){if(this._input)throw new Error("Tried to recreate an input while it already exists.");this._form=document.createElement("form");const t=this._object.getInputType()==="text area";this._input=document.createElement(t?"textarea":"input"),this._form.style.border="0px",this._form.style.borderRadius="0px",this._form.style.backgroundColor="transparent",this._form.style.position="absolute",this._form.style.pointerEvents="auto",this._form.style.display="none",this._form.style.boxSizing="border-box",this._form.style.textAlign=this._object.getTextAlign(),this._input.autocomplete="off",this._input.style.backgroundColor="white",this._input.style.outline="none",this._input.style.resize="none",this._input.style.border="1px solid black",this._input.style.boxSizing="border-box",this._input.style.width="100%",this._input.style.height="100%",this._input.maxLength=this._object.getMaxLength(),this._input.style.padding=`${this._object.getPaddingY().toFixed(2)}px ${this._object.getPaddingX().toFixed(2)}px`,this._form.appendChild(this._input),this._input.addEventListener("input",()=>{!this._input||this._object.onRendererInputValueChanged(this._input.value)}),this._input.addEventListener("touchstart",()=>{!this._input||document.activeElement!==this._input&&this._input.focus()}),this._form.addEventListener("submit",e=>{e.preventDefault(),this._object.onRendererFormSubmitted()}),this.updateString(),this.updateFont(),this.updatePlaceholder(),this.updateOpacity(),this.updateInputType(),this.updateTextColor(),this.updateFillColorAndOpacity(),this.updateBorderColorAndOpacity(),this.updateBorderWidth(),this.updateDisabled(),this.updateReadOnly(),this.updateTextAlign(),this.updateMaxLength(),this.updatePadding(),this._runtimeGame.getRenderer().getDomElementContainer().appendChild(this._form)}_destroyElement(){!this._input||(this._input.remove(),this._input=null)}onScenePaused(){this._destroyElement()}onSceneResumed(){this._input||this._createElement()}onDestroy(){this._destroyElement()}updatePreRender(){if(!this._input||!this._form)return;if(this._object.isHidden()){this._form.style.display="none";return}{let n=this._instanceContainer,s=this._object,b=!0;do{if(!n.getLayer(s.getLayer()).isVisible()||!s.isVisible()){this._form.style.display="none";return}n instanceof a.CustomRuntimeObjectInstanceContainer?(s=n.getOwner(),n=s.getInstanceContainer()):b=!1}while(b)}const t=a.staticArray(r.prototype.updatePreRender),e=this._instanceContainer.getGame(),i=e.getRenderer(),u=this._instanceContainer.getLayer(this._object.getLayer()),p=u.convertInverseCoords(this._object.x,this._object.y,0,t),d=p[0],l=p[1],c=u.convertInverseCoords(this._object.x+this._object.getWidth(),this._object.y+this._object.getHeight(),0,t),_=c[0],m=c[1];if(_<0||m<0||d>e.getGameResolutionWidth()||l>e.getGameResolutionHeight()){this._form.style.display="none";return}t[0]=d,t[1]=l,i.convertCanvasToDomElementContainerCoords(t,t);const g=t[0],y=t[1];t[0]=_,t[1]=m,i.convertCanvasToDomElementContainerCoords(t,t);const x=t[0],j=t[1],C=x-g,T=j-y;this._form.style.left=g+"px",this._form.style.top=y+"px",this._form.style.width=C+"px",this._form.style.height=T+"px",this._form.style.transform="rotate3d(0,0,1,"+this._object.getAngle()%360+"deg)",this._form.style.textAlign=this._object.getTextAlign(),this._input.style.padding=`${this._object.getPaddingY().toFixed(2)}px ${this._object.getPaddingX().toFixed(2)}px`,this._input.style.fontSize=this._object.getFontSize()*i.getCanvasToDomElementContainerHeightScale()+"px",this._form.style.display="initial"}updateString(){!this._input||(this._input.value=this._object.getString())}updatePlaceholder(){!this._input||(this._input.placeholder=this._object.getPlaceholder())}updateFont(){!this._input||(this._input.style.fontFamily=this._instanceContainer.getGame().getFontManager().getFontFamily(this._object.getFontResourceName()))}updateOpacity(){!this._form||(this._form.style.opacity=(this._object.getOpacity()/255).toFixed(3))}updateInputType(){if(!this._input)return;const t=this._input instanceof HTMLTextAreaElement,e=this._object.getInputType()==="text area";t!==e&&(this._destroyElement(),this._createElement());const i=f[this._object.getInputType()]||"text";this._input.setAttribute("type",i)}updateTextColor(){!this._input||(this._input.style.color=o(this._object._getRawTextColor(),255))}updateFillColorAndOpacity(){!this._input||(this._input.style.backgroundColor=o(this._object._getRawFillColor(),this._object.getFillOpacity()))}updateBorderColorAndOpacity(){!this._input||(this._input.style.borderColor=o(this._object._getRawBorderColor(),this._object.getBorderOpacity()))}updateBorderWidth(){!this._input||(this._input.style.borderWidth=this._object.getBorderWidth()+"px")}updateDisabled(){!this._form||(this._form.disabled=this._object.isDisabled())}updateReadOnly(){!this._form||(this._form.readOnly=this._object.isReadOnly())}updateMaxLength(){const t=this._input;if(!!t){if(this._object.getMaxLength()<=0){t.removeAttribute("maxLength");return}t.maxLength=this._object.getMaxLength()}}updatePadding(){!this._input||(this._input.style.padding=`${this._object.getPaddingY().toFixed(2)}px ${this._object.getPaddingX().toFixed(2)}px`)}updateTextAlign(){if(!this._input)return;const t=this._object.getTextAlign();this._input.style.textAlign=t}isFocused(){return this._input===document.activeElement}focus(){!this._input||this._input.focus()}}a.TextInputRuntimeObjectRenderer=r})(gdjs||(gdjs={}));
2
2
  //# sourceMappingURL=textinputruntimeobject-pixi-renderer.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../GDevelop/Extensions/TextInput/textinputruntimeobject-pixi-renderer.ts"],
4
- "sourcesContent": ["namespace gdjs {\n const userFriendlyToHtmlInputTypes = {\n text: 'text',\n email: 'email',\n password: 'password',\n number: 'number',\n 'telephone number': 'tel',\n url: 'url',\n search: 'search',\n };\n\n const formatRgbAndOpacityToCssRgba = (\n rgbColor: [float, float, float],\n opacity: float\n ) => {\n return (\n 'rgba(' +\n rgbColor[0] +\n ',' +\n rgbColor[1] +\n ',' +\n rgbColor[2] +\n ',' +\n opacity / 255 +\n ')'\n );\n };\n\n class TextInputRuntimeObjectPixiRenderer {\n private _object: gdjs.TextInputRuntimeObject;\n private _input: HTMLInputElement | HTMLTextAreaElement | null = null;\n private _instanceContainer: gdjs.RuntimeInstanceContainer;\n private _runtimeGame: gdjs.RuntimeGame;\n\n constructor(\n runtimeObject: gdjs.TextInputRuntimeObject,\n instanceContainer: gdjs.RuntimeInstanceContainer\n ) {\n this._object = runtimeObject;\n this._instanceContainer = instanceContainer;\n this._runtimeGame = this._instanceContainer.getGame();\n\n this._createElement();\n }\n\n _createElement() {\n if (!!this._input)\n throw new Error('Tried to recreate an input while it already exists.');\n\n const isTextArea = this._object.getInputType() === 'text area';\n this._input = document.createElement(isTextArea ? 'textarea' : 'input');\n this._input.style.border = '1px solid black';\n this._input.autocomplete = 'off';\n this._input.style.borderRadius = '0px';\n this._input.style.backgroundColor = 'white';\n this._input.style.position = 'absolute';\n this._input.style.resize = 'none';\n this._input.style.outline = 'none';\n this._input.style.pointerEvents = 'auto'; // Element can be clicked/touched.\n this._input.style.display = 'none'; // Hide while object is being set up.\n this._input.style.boxSizing = 'border-box'; // Important for iOS, because border is added to width/height.\n\n this._input.addEventListener('input', () => {\n if (!this._input) return;\n\n this._object.onRendererInputValueChanged(this._input.value);\n });\n this._input.addEventListener('touchstart', () => {\n if (!this._input) return;\n\n // Focus directly when touching the input on touchscreens.\n if (document.activeElement !== this._input) this._input.focus();\n });\n\n this.updateString();\n this.updateFont();\n this.updatePlaceholder();\n this.updateOpacity();\n this.updateInputType();\n this.updateTextColor();\n this.updateFillColorAndOpacity();\n this.updateBorderColorAndOpacity();\n this.updateBorderWidth();\n this.updateDisabled();\n this.updateReadOnly();\n\n this._runtimeGame\n .getRenderer()\n .getDomElementContainer()!\n .appendChild(this._input);\n }\n\n _destroyElement() {\n if (!this._input) return;\n this._input.remove();\n this._input = null;\n }\n\n onScenePaused() {\n // This is the only renderer that uses a DOM element. PixiJS renderers\n // usually don't need to know if a scene is paused/resumed,\n // because their renderers are then not used (not part of the other scene graphs).\n // For this object, we need to remove the DOM element whenever it must\n // be not rendered.\n this._destroyElement();\n }\n\n onSceneResumed() {\n // The input must have been destroyed when the scene was paused,\n // in case it still exists, skip recreation.\n if (!this._input) this._createElement();\n }\n\n onDestroy() {\n this._destroyElement();\n }\n\n updatePreRender() {\n if (!this._input) return;\n\n // Hide the input entirely if the object is hidden.\n // Because this object is rendered as a DOM element (and not part of the PixiJS\n // scene graph), we have to do this manually.\n if (this._object.isHidden()) {\n this._input.style.display = 'none';\n return;\n }\n\n // Hide the input entirely if the layer is not visible.\n // Because this object is rendered as a DOM element (and not part of the PixiJS\n // scene graph), we have to do this manually.\n {\n let instanceContainer = this._instanceContainer;\n let object: gdjs.RuntimeObject = this._object;\n let hasParent = true;\n do {\n const layer = instanceContainer.getLayer(object.getLayer());\n if (!layer.isVisible() || !object.isVisible()) {\n this._input.style.display = 'none';\n return;\n }\n // TODO Declare an interface to move up in the object tree.\n if (\n instanceContainer instanceof\n gdjs.CustomRuntimeObjectInstanceContainer\n ) {\n object = instanceContainer.getOwner();\n instanceContainer = object.getInstanceContainer();\n } else {\n hasParent = false;\n }\n } while (hasParent);\n }\n\n const workingPoint: FloatPoint = gdjs.staticArray(\n TextInputRuntimeObjectPixiRenderer.prototype.updatePreRender\n ) as FloatPoint;\n\n const runtimeGame = this._instanceContainer.getGame();\n const runtimeGameRenderer = runtimeGame.getRenderer();\n const layer = this._instanceContainer.getLayer(this._object.getLayer());\n const topLeftCanvasCoordinates = layer.convertInverseCoords(\n this._object.x,\n this._object.y,\n 0,\n workingPoint\n );\n const canvasLeft = topLeftCanvasCoordinates[0];\n const canvasTop = topLeftCanvasCoordinates[1];\n\n const bottomRightCanvasCoordinates = layer.convertInverseCoords(\n this._object.x + this._object.getWidth(),\n this._object.y + this._object.getHeight(),\n 0,\n workingPoint\n );\n const canvasRight = bottomRightCanvasCoordinates[0];\n const canvasBottom = bottomRightCanvasCoordinates[1];\n\n // Hide the input entirely if not visible at all.\n const isOutsideCanvas =\n canvasRight < 0 ||\n canvasBottom < 0 ||\n canvasLeft > runtimeGame.getGameResolutionWidth() ||\n canvasTop > runtimeGame.getGameResolutionHeight();\n if (isOutsideCanvas) {\n this._input.style.display = 'none';\n return;\n }\n\n // Position the input on the container on top of the canvas.\n workingPoint[0] = canvasLeft;\n workingPoint[1] = canvasTop;\n runtimeGameRenderer.convertCanvasToDomElementContainerCoords(\n workingPoint,\n workingPoint\n );\n const pageLeft = workingPoint[0];\n const pageTop = workingPoint[1];\n\n workingPoint[0] = canvasRight;\n workingPoint[1] = canvasBottom;\n runtimeGameRenderer.convertCanvasToDomElementContainerCoords(\n workingPoint,\n workingPoint\n );\n const pageRight = workingPoint[0];\n const pageBottom = workingPoint[1];\n\n const widthInContainer = pageRight - pageLeft;\n const heightInContainer = pageBottom - pageTop;\n\n this._input.style.left = pageLeft + 'px';\n this._input.style.top = pageTop + 'px';\n this._input.style.width = widthInContainer + 'px';\n this._input.style.height = heightInContainer + 'px';\n this._input.style.transform =\n 'rotate3d(0,0,1,' + (this._object.getAngle() % 360) + 'deg)';\n\n // Automatically adjust the font size to follow the game scale.\n this._input.style.fontSize =\n this._object.getFontSize() *\n runtimeGameRenderer.getCanvasToDomElementContainerHeightScale() +\n 'px';\n\n // Display after the object is positioned.\n this._input.style.display = 'initial';\n }\n\n updateString() {\n if (!this._input) return;\n this._input.value = this._object.getString();\n }\n\n updatePlaceholder() {\n if (!this._input) return;\n this._input.placeholder = this._object.getPlaceholder();\n }\n\n updateFont() {\n if (!this._input) return;\n this._input.style.fontFamily = this._instanceContainer\n .getGame()\n .getFontManager()\n .getFontFamily(this._object.getFontResourceName());\n }\n\n updateOpacity() {\n if (!this._input) return;\n this._input.style.opacity = '' + this._object.getOpacity() / 255;\n }\n\n updateInputType() {\n if (!this._input) return;\n\n const isTextArea = this._input instanceof HTMLTextAreaElement;\n const shouldBeTextArea = this._object.getInputType() === 'text area';\n if (isTextArea !== shouldBeTextArea) {\n this._destroyElement();\n this._createElement();\n }\n\n const newType =\n userFriendlyToHtmlInputTypes[this._object.getInputType()] || 'text';\n this._input.setAttribute('type', newType);\n }\n\n updateTextColor() {\n if (!this._input) return;\n\n this._input.style.color = formatRgbAndOpacityToCssRgba(\n this._object._getRawTextColor(),\n 255\n );\n }\n\n updateFillColorAndOpacity() {\n if (!this._input) return;\n\n this._input.style.backgroundColor = formatRgbAndOpacityToCssRgba(\n this._object._getRawFillColor(),\n this._object.getFillOpacity()\n );\n }\n\n updateBorderColorAndOpacity() {\n if (!this._input) return;\n\n this._input.style.borderColor = formatRgbAndOpacityToCssRgba(\n this._object._getRawBorderColor(),\n this._object.getBorderOpacity()\n );\n }\n updateBorderWidth() {\n if (!this._input) return;\n\n this._input.style.borderWidth = this._object.getBorderWidth() + 'px';\n }\n updateDisabled() {\n if (!this._input) return;\n\n this._input.disabled = this._object.isDisabled();\n }\n updateReadOnly() {\n if (!this._input) return;\n\n this._input.readOnly = this._object.isReadOnly();\n }\n\n isFocused() {\n return this._input === document.activeElement;\n }\n\n focus() {\n if (!this._input) return;\n\n this._input.focus();\n }\n }\n\n export const TextInputRuntimeObjectRenderer = TextInputRuntimeObjectPixiRenderer;\n export type TextInputRuntimeObjectRenderer = TextInputRuntimeObjectPixiRenderer;\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["namespace gdjs {\n const userFriendlyToHtmlInputTypes = {\n text: 'text',\n email: 'email',\n password: 'password',\n number: 'number',\n 'telephone number': 'tel',\n url: 'url',\n search: 'search',\n };\n\n const formatRgbAndOpacityToCssRgba = (\n rgbColor: [float, float, float],\n opacity: float\n ) => {\n return (\n 'rgba(' +\n rgbColor[0] +\n ',' +\n rgbColor[1] +\n ',' +\n rgbColor[2] +\n ',' +\n opacity / 255 +\n ')'\n );\n };\n\n class TextInputRuntimeObjectPixiRenderer {\n private _object: gdjs.TextInputRuntimeObject;\n private _input: HTMLInputElement | HTMLTextAreaElement | null = null;\n private _instanceContainer: gdjs.RuntimeInstanceContainer;\n private _runtimeGame: gdjs.RuntimeGame;\n private _form: HTMLFormElement | null = null;\n\n constructor(\n runtimeObject: gdjs.TextInputRuntimeObject,\n instanceContainer: gdjs.RuntimeInstanceContainer\n ) {\n this._object = runtimeObject;\n this._instanceContainer = instanceContainer;\n this._runtimeGame = this._instanceContainer.getGame();\n\n this._createElement();\n }\n\n _createElement() {\n if (!!this._input)\n throw new Error('Tried to recreate an input while it already exists.');\n\n this._form = document.createElement('form');\n\n const isTextArea = this._object.getInputType() === 'text area';\n this._input = document.createElement(isTextArea ? 'textarea' : 'input');\n\n this._form.style.border = '0px';\n this._form.style.borderRadius = '0px';\n this._form.style.backgroundColor = 'transparent';\n this._form.style.position = 'absolute';\n this._form.style.pointerEvents = 'auto'; // Element can be clicked/touched.\n this._form.style.display = 'none'; // Hide while object is being set up.\n this._form.style.boxSizing = 'border-box';\n this._form.style.textAlign = this._object.getTextAlign();\n\n this._input.autocomplete = 'off';\n this._input.style.backgroundColor = 'white';\n this._input.style.outline = 'none'; // Remove any style added by the browser to highlight the focused field in a form (:focus & :focus-visible modifiers).\n this._input.style.resize = 'none'; // Prevent user from resizing the input when it's a text area.\n this._input.style.border = '1px solid black';\n this._input.style.boxSizing = 'border-box';\n this._input.style.width = '100%';\n this._input.style.height = '100%';\n this._input.maxLength = this._object.getMaxLength();\n this._input.style.padding = `${this._object\n .getPaddingY()\n .toFixed(2)}px ${this._object.getPaddingX().toFixed(2)}px`;\n\n this._form.appendChild(this._input);\n\n this._input.addEventListener('input', () => {\n if (!this._input) return;\n\n this._object.onRendererInputValueChanged(this._input.value);\n });\n this._input.addEventListener('touchstart', () => {\n if (!this._input) return;\n\n // Focus directly when touching the input on touchscreens.\n if (document.activeElement !== this._input) this._input.focus();\n });\n\n this._form.addEventListener('submit', (event) => {\n event.preventDefault();\n this._object.onRendererFormSubmitted();\n });\n\n this.updateString();\n this.updateFont();\n this.updatePlaceholder();\n this.updateOpacity();\n this.updateInputType();\n this.updateTextColor();\n this.updateFillColorAndOpacity();\n this.updateBorderColorAndOpacity();\n this.updateBorderWidth();\n this.updateDisabled();\n this.updateReadOnly();\n this.updateTextAlign();\n this.updateMaxLength();\n this.updatePadding();\n\n this._runtimeGame\n .getRenderer()\n .getDomElementContainer()!\n .appendChild(this._form);\n }\n\n _destroyElement() {\n if (!this._input) return;\n this._input.remove();\n this._input = null;\n }\n\n onScenePaused() {\n // This is the only renderer that uses a DOM element. PixiJS renderers\n // usually don't need to know if a scene is paused/resumed,\n // because their renderers are then not used (not part of the other scene graphs).\n // For this object, we need to remove the DOM element whenever it must\n // be not rendered.\n this._destroyElement();\n }\n\n onSceneResumed() {\n // The input must have been destroyed when the scene was paused,\n // in case it still exists, skip recreation.\n if (!this._input) this._createElement();\n }\n\n onDestroy() {\n this._destroyElement();\n }\n\n updatePreRender() {\n if (!this._input || !this._form) return;\n // Hide the input entirely if the object is hidden.\n // Because this object is rendered as a DOM element (and not part of the PixiJS\n // scene graph), we have to do this manually.\n if (this._object.isHidden()) {\n this._form.style.display = 'none';\n return;\n }\n\n // Hide the input entirely if the layer is not visible.\n // Because this object is rendered as a DOM element (and not part of the PixiJS\n // scene graph), we have to do this manually.\n {\n let instanceContainer = this._instanceContainer;\n let object: gdjs.RuntimeObject = this._object;\n let hasParent = true;\n do {\n const layer = instanceContainer.getLayer(object.getLayer());\n if (!layer.isVisible() || !object.isVisible()) {\n this._form.style.display = 'none';\n return;\n }\n // TODO Declare an interface to move up in the object tree.\n if (\n instanceContainer instanceof\n gdjs.CustomRuntimeObjectInstanceContainer\n ) {\n object = instanceContainer.getOwner();\n instanceContainer = object.getInstanceContainer();\n } else {\n hasParent = false;\n }\n } while (hasParent);\n }\n\n const workingPoint: FloatPoint = gdjs.staticArray(\n TextInputRuntimeObjectPixiRenderer.prototype.updatePreRender\n ) as FloatPoint;\n\n const runtimeGame = this._instanceContainer.getGame();\n const runtimeGameRenderer = runtimeGame.getRenderer();\n const layer = this._instanceContainer.getLayer(this._object.getLayer());\n const topLeftCanvasCoordinates = layer.convertInverseCoords(\n this._object.x,\n this._object.y,\n 0,\n workingPoint\n );\n const canvasLeft = topLeftCanvasCoordinates[0];\n const canvasTop = topLeftCanvasCoordinates[1];\n\n const bottomRightCanvasCoordinates = layer.convertInverseCoords(\n this._object.x + this._object.getWidth(),\n this._object.y + this._object.getHeight(),\n 0,\n workingPoint\n );\n const canvasRight = bottomRightCanvasCoordinates[0];\n const canvasBottom = bottomRightCanvasCoordinates[1];\n\n // Hide the input entirely if not visible at all.\n const isOutsideCanvas =\n canvasRight < 0 ||\n canvasBottom < 0 ||\n canvasLeft > runtimeGame.getGameResolutionWidth() ||\n canvasTop > runtimeGame.getGameResolutionHeight();\n if (isOutsideCanvas) {\n this._form.style.display = 'none';\n return;\n }\n\n // Position the input on the container on top of the canvas.\n workingPoint[0] = canvasLeft;\n workingPoint[1] = canvasTop;\n runtimeGameRenderer.convertCanvasToDomElementContainerCoords(\n workingPoint,\n workingPoint\n );\n const pageLeft = workingPoint[0];\n const pageTop = workingPoint[1];\n\n workingPoint[0] = canvasRight;\n workingPoint[1] = canvasBottom;\n runtimeGameRenderer.convertCanvasToDomElementContainerCoords(\n workingPoint,\n workingPoint\n );\n const pageRight = workingPoint[0];\n const pageBottom = workingPoint[1];\n\n const widthInContainer = pageRight - pageLeft;\n const heightInContainer = pageBottom - pageTop;\n\n this._form.style.left = pageLeft + 'px';\n this._form.style.top = pageTop + 'px';\n this._form.style.width = widthInContainer + 'px';\n this._form.style.height = heightInContainer + 'px';\n this._form.style.transform =\n 'rotate3d(0,0,1,' + (this._object.getAngle() % 360) + 'deg)';\n this._form.style.textAlign = this._object.getTextAlign();\n\n this._input.style.padding = `${this._object\n .getPaddingY()\n .toFixed(2)}px ${this._object.getPaddingX().toFixed(2)}px`;\n\n // Automatically adjust the font size to follow the game scale.\n this._input.style.fontSize =\n this._object.getFontSize() *\n runtimeGameRenderer.getCanvasToDomElementContainerHeightScale() +\n 'px';\n\n // Display after the object is positioned.\n this._form.style.display = 'initial';\n }\n\n updateString() {\n if (!this._input) return;\n this._input.value = this._object.getString();\n }\n\n updatePlaceholder() {\n if (!this._input) return;\n this._input.placeholder = this._object.getPlaceholder();\n }\n\n updateFont() {\n if (!this._input) return;\n this._input.style.fontFamily = this._instanceContainer\n .getGame()\n .getFontManager()\n .getFontFamily(this._object.getFontResourceName());\n }\n\n updateOpacity() {\n if (!this._form) return;\n this._form.style.opacity = (this._object.getOpacity() / 255).toFixed(3);\n }\n\n updateInputType() {\n if (!this._input) return;\n\n const isTextArea = this._input instanceof HTMLTextAreaElement;\n const shouldBeTextArea = this._object.getInputType() === 'text area';\n if (isTextArea !== shouldBeTextArea) {\n this._destroyElement();\n this._createElement();\n }\n\n const newType =\n userFriendlyToHtmlInputTypes[this._object.getInputType()] || 'text';\n this._input.setAttribute('type', newType);\n }\n\n updateTextColor() {\n if (!this._input) return;\n\n this._input.style.color = formatRgbAndOpacityToCssRgba(\n this._object._getRawTextColor(),\n 255\n );\n }\n\n updateFillColorAndOpacity() {\n if (!this._input) return;\n\n this._input.style.backgroundColor = formatRgbAndOpacityToCssRgba(\n this._object._getRawFillColor(),\n this._object.getFillOpacity()\n );\n }\n\n updateBorderColorAndOpacity() {\n if (!this._input) return;\n\n this._input.style.borderColor = formatRgbAndOpacityToCssRgba(\n this._object._getRawBorderColor(),\n this._object.getBorderOpacity()\n );\n }\n updateBorderWidth() {\n if (!this._input) return;\n\n this._input.style.borderWidth = this._object.getBorderWidth() + 'px';\n }\n updateDisabled() {\n if (!this._form) return;\n\n this._form.disabled = this._object.isDisabled();\n }\n updateReadOnly() {\n if (!this._form) return;\n\n this._form.readOnly = this._object.isReadOnly();\n }\n\n updateMaxLength() {\n const input = this._input;\n if (!input) return;\n if (this._object.getMaxLength() <= 0) {\n input.removeAttribute('maxLength');\n return;\n }\n input.maxLength = this._object.getMaxLength();\n }\n\n updatePadding() {\n if (!this._input) return;\n\n this._input.style.padding = `${this._object\n .getPaddingY()\n .toFixed(2)}px ${this._object.getPaddingX().toFixed(2)}px`;\n }\n\n updateTextAlign() {\n if (!this._input) return;\n\n const newTextAlign = this._object.getTextAlign();\n this._input.style.textAlign = newTextAlign;\n }\n\n isFocused() {\n return this._input === document.activeElement;\n }\n\n focus() {\n if (!this._input) return;\n\n this._input.focus();\n }\n }\n export const TextInputRuntimeObjectRenderer = TextInputRuntimeObjectPixiRenderer;\n export type TextInputRuntimeObjectRenderer = TextInputRuntimeObjectPixiRenderer;\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,2 +1,2 @@
1
- var gdjs;(function(r){const n=["text","email","password","number","telephone number","url","search","text area"],o=i=>{const t=i.toLowerCase();return n.includes(t)?i:"text"},s=300,l=30;class d extends r.RuntimeObject{constructor(t,e){super(t,e);this.opacity=255;this._width=s;this._height=l;this._string=e.content.initialValue,this._placeholder=e.content.placeholder,this._fontResourceName=e.content.fontResourceName,this._fontSize=e.content.fontSize||20,this._inputType=o(e.content.inputType),this._textColor=r.rgbOrHexToRGBColor(e.content.textColor),this._fillColor=r.rgbOrHexToRGBColor(e.content.fillColor),this._fillOpacity=e.content.fillOpacity,this._borderColor=r.rgbOrHexToRGBColor(e.content.borderColor),this._borderOpacity=e.content.borderOpacity,this._borderWidth=e.content.borderWidth,this._disabled=e.content.disabled,this._readOnly=e.content.readOnly,this._renderer=new r.TextInputRuntimeObjectRenderer(this,t),this.onCreated()}getRendererObject(){return null}updateFromObjectData(t,e){return t.content.initialValue!==e.content.initialValue&&this._string===t.content.initialValue&&this.setString(e.content.initialValue),t.content.placeholder!==e.content.placeholder&&this.setPlaceholder(e.content.placeholder),t.content.fontResourceName!==e.content.fontResourceName&&this.setFontResourceName(e.content.fontResourceName),t.content.fontSize!==e.content.fontSize&&this.setFontSize(e.content.fontSize),t.content.inputType!==e.content.inputType&&this.setInputType(e.content.inputType),t.content.textColor!==e.content.textColor&&this.setTextColor(e.content.textColor),t.content.fillColor!==e.content.fillColor&&this.setFillColor(e.content.fillColor),t.content.fillOpacity!==e.content.fillOpacity&&this.setFillOpacity(e.content.fillOpacity),t.content.borderColor!==e.content.borderColor&&this.setBorderColor(e.content.borderColor),t.content.borderOpacity!==e.content.borderOpacity&&this.setBorderOpacity(e.content.borderOpacity),t.content.borderWidth!==e.content.borderWidth&&this.setBorderWidth(e.content.borderWidth),t.content.disabled!==e.content.disabled&&this.setDisabled(e.content.disabled),t.content.readOnly!==e.content.readOnly&&this.setReadOnly(e.content.readOnly),!0}getNetworkSyncData(){return{...super.getNetworkSyncData(),opa:this.getOpacity(),wid:this.getWidth(),hei:this.getHeight(),txt:this.getText(),frn:this.getFontResourceName(),fs:this.getFontSize(),place:this.getPlaceholder(),it:this.getInputType(),tc:this.getTextColor(),fc:this.getFillColor(),fo:this.getFillOpacity(),bc:this.getBorderColor(),bo:this.getBorderOpacity(),bw:this.getBorderWidth(),dis:this.isDisabled(),ro:this.isReadOnly()}}updateFromNetworkSyncData(t){super.updateFromNetworkSyncData(t),t.opa!==void 0&&this.setOpacity(t.opa),t.wid!==void 0&&this.setWidth(t.wid),t.hei!==void 0&&this.setHeight(t.hei),t.txt!==void 0&&this.setText(t.txt),t.frn!==void 0&&this.setFontResourceName(t.frn),t.fs!==void 0&&this.setFontSize(t.fs),t.place!==void 0&&this.setPlaceholder(t.place),t.it!==void 0&&this.setInputType(t.it),t.tc!==void 0&&this.setTextColor(t.tc),t.fc!==void 0&&this.setFillColor(t.fc),t.fo!==void 0&&this.setFillOpacity(t.fo),t.bc!==void 0&&this.setBorderColor(t.bc),t.bo!==void 0&&this.setBorderOpacity(t.bo),t.bw!==void 0&&this.setBorderWidth(t.bw),t.dis!==void 0&&this.setDisabled(t.dis),t.ro!==void 0&&this.setReadOnly(t.ro)}updatePreRender(t){this._renderer.updatePreRender()}extraInitializationFromInitialInstance(t){for(const e of t.stringProperties)e.name==="initialValue"?this.setString(e.value):e.name==="placeholder"&&this.setPlaceholder(e.value);t.customSize&&(this.setWidth(t.width),this.setHeight(t.height)),t.opacity!==void 0&&this.setOpacity(t.opacity)}onScenePaused(t){this._renderer.onScenePaused()}onSceneResumed(t){this._renderer.onSceneResumed()}onDestroyed(){super.onDestroyed(),this._renderer.onDestroy()}setOpacity(t){this.opacity=Math.max(0,Math.min(255,t)),this._renderer.updateOpacity()}getOpacity(){return this.opacity}setSize(t,e){this.setWidth(t),this.setHeight(e)}setWidth(t){this._width=t}setHeight(t){this._height=t}getWidth(){return this._width}getHeight(){return this._height}getString(){return this.getText()}setString(t){this.setText(t)}getText(){return this._string}setText(t){t!==this._string&&(this._string=t,this._renderer.updateString())}onRendererInputValueChanged(t){this._string=t}getFontResourceName(){return this._fontResourceName}setFontResourceName(t){this._fontResourceName!==t&&(this._fontResourceName=t,this._renderer.updateFont())}getFontSize(){return this._fontSize}setFontSize(t){this._fontSize=t}getPlaceholder(){return this._placeholder}setPlaceholder(t){t!==this._placeholder&&(this._placeholder=t,this._renderer.updatePlaceholder())}getInputType(){return this._inputType}setInputType(t){const e=t.toLowerCase();e!==this._inputType&&(this._inputType=o(e),this._renderer.updateInputType())}setTextColor(t){this._textColor=r.rgbOrHexToRGBColor(t),this._renderer.updateTextColor()}getTextColor(){return this._textColor[0]+";"+this._textColor[1]+";"+this._textColor[2]}_getRawTextColor(){return this._textColor}setFillColor(t){this._fillColor=r.rgbOrHexToRGBColor(t),this._renderer.updateFillColorAndOpacity()}getFillColor(){return this._fillColor[0]+";"+this._fillColor[1]+";"+this._fillColor[2]}_getRawFillColor(){return this._fillColor}setFillOpacity(t){this._fillOpacity=Math.max(0,Math.min(255,t)),this._renderer.updateFillColorAndOpacity()}getFillOpacity(){return this._fillOpacity}setBorderColor(t){this._borderColor=r.rgbOrHexToRGBColor(t),this._renderer.updateBorderColorAndOpacity()}getBorderColor(){return this._borderColor[0]+";"+this._borderColor[1]+";"+this._borderColor[2]}_getRawBorderColor(){return this._borderColor}setBorderOpacity(t){this._borderOpacity=Math.max(0,Math.min(255,t)),this._renderer.updateBorderColorAndOpacity()}getBorderOpacity(){return this._borderOpacity}setBorderWidth(t){this._borderWidth=Math.max(0,t),this._renderer.updateBorderWidth()}getBorderWidth(){return this._borderWidth}setDisabled(t){this._disabled=t,this._renderer.updateDisabled()}isDisabled(){return this._disabled}setReadOnly(t){this._readOnly=t,this._renderer.updateReadOnly()}isReadOnly(){return this._readOnly}isFocused(){return this._renderer.isFocused()}focus(){this.isFocused()||this.getInstanceContainer().getGame().getInputManager().clearAllPressedKeys(),this._renderer.focus()}}r.TextInputRuntimeObject=d,r.registerObject("TextInput::TextInputObject",r.TextInputRuntimeObject)})(gdjs||(gdjs={}));
1
+ var gdjs;(function(i){const s=["text","email","password","number","telephone number","url","search","text area"],l=["left","center","right"],n=r=>{const t=r.toLowerCase();return s.includes(t)?r:"text"},o=r=>{if(!r)return"left";const t=r.toLowerCase();return l.includes(t)?r:"left"},h=300,p=30,d=(r,t,e)=>Math.max(0,Math.min(t/2-e,r));class u extends i.RuntimeObject{constructor(t,e){super(t,e);this.opacity=255;this._width=h;this._height=p;this._string=e.content.initialValue,this._placeholder=e.content.placeholder,this._fontResourceName=e.content.fontResourceName,this._fontSize=e.content.fontSize||20,this._inputType=n(e.content.inputType),this._textColor=i.rgbOrHexToRGBColor(e.content.textColor),this._fillColor=i.rgbOrHexToRGBColor(e.content.fillColor),this._fillOpacity=e.content.fillOpacity,this._borderColor=i.rgbOrHexToRGBColor(e.content.borderColor),this._borderOpacity=e.content.borderOpacity,this._borderWidth=e.content.borderWidth,this._disabled=e.content.disabled,this._readOnly=e.content.readOnly,this._textAlign=o(e.content.textAlign),this._maxLength=e.content.maxLength||0,this._paddingX=e.content.paddingX!==void 0?e.content.paddingX:2,this._paddingY=e.content.paddingY!==void 0?e.content.paddingY:1,this._isSubmitted=!1,this._renderer=new i.TextInputRuntimeObjectRenderer(this,t),this.onCreated()}getRendererObject(){return null}updateFromObjectData(t,e){return t.content.initialValue!==e.content.initialValue&&this._string===t.content.initialValue&&this.setString(e.content.initialValue),t.content.placeholder!==e.content.placeholder&&this.setPlaceholder(e.content.placeholder),t.content.fontResourceName!==e.content.fontResourceName&&this.setFontResourceName(e.content.fontResourceName),t.content.fontSize!==e.content.fontSize&&this.setFontSize(e.content.fontSize),t.content.inputType!==e.content.inputType&&this.setInputType(e.content.inputType),t.content.textColor!==e.content.textColor&&this.setTextColor(e.content.textColor),t.content.fillColor!==e.content.fillColor&&this.setFillColor(e.content.fillColor),t.content.fillOpacity!==e.content.fillOpacity&&this.setFillOpacity(e.content.fillOpacity),t.content.borderColor!==e.content.borderColor&&this.setBorderColor(e.content.borderColor),t.content.borderOpacity!==e.content.borderOpacity&&this.setBorderOpacity(e.content.borderOpacity),t.content.borderWidth!==e.content.borderWidth&&this.setBorderWidth(e.content.borderWidth),t.content.disabled!==e.content.disabled&&this.setDisabled(e.content.disabled),t.content.readOnly!==e.content.readOnly&&this.setReadOnly(e.content.readOnly),e.content.maxLength!==void 0&&t.content.maxLength!==e.content.maxLength&&this.setMaxLength(e.content.maxLength),e.content.textAlign&&t.content.textAlign!==e.content.textAlign&&(this._textAlign=e.content.textAlign),e.content.paddingX!==void 0&&t.content.paddingX!==e.content.paddingX&&this.setPaddingX(e.content.paddingX),e.content.paddingY!==void 0&&t.content.paddingY!==e.content.paddingY&&this.setPaddingY(e.content.paddingY),!0}getNetworkSyncData(){return{...super.getNetworkSyncData(),opa:this.getOpacity(),wid:this.getWidth(),hei:this.getHeight(),txt:this.getText(),frn:this.getFontResourceName(),fs:this.getFontSize(),place:this.getPlaceholder(),it:this.getInputType(),tc:this.getTextColor(),fc:this.getFillColor(),fo:this.getFillOpacity(),bc:this.getBorderColor(),bo:this.getBorderOpacity(),bw:this.getBorderWidth(),dis:this.isDisabled(),ro:this.isReadOnly()}}updateFromNetworkSyncData(t){super.updateFromNetworkSyncData(t),t.opa!==void 0&&this.setOpacity(t.opa),t.wid!==void 0&&this.setWidth(t.wid),t.hei!==void 0&&this.setHeight(t.hei),t.txt!==void 0&&this.setText(t.txt),t.frn!==void 0&&this.setFontResourceName(t.frn),t.fs!==void 0&&this.setFontSize(t.fs),t.place!==void 0&&this.setPlaceholder(t.place),t.it!==void 0&&this.setInputType(t.it),t.tc!==void 0&&this.setTextColor(t.tc),t.fc!==void 0&&this.setFillColor(t.fc),t.fo!==void 0&&this.setFillOpacity(t.fo),t.bc!==void 0&&this.setBorderColor(t.bc),t.bo!==void 0&&this.setBorderOpacity(t.bo),t.bw!==void 0&&this.setBorderWidth(t.bw),t.dis!==void 0&&this.setDisabled(t.dis),t.ro!==void 0&&this.setReadOnly(t.ro)}updatePreRender(t){this._isSubmitted=!1,this._renderer.updatePreRender()}extraInitializationFromInitialInstance(t){for(const e of t.stringProperties)e.name==="initialValue"?this.setString(e.value):e.name==="placeholder"&&this.setPlaceholder(e.value);t.customSize&&(this.setWidth(t.width),this.setHeight(t.height),this._renderer.updatePadding()),t.opacity!==void 0&&this.setOpacity(t.opacity)}onScenePaused(t){this._renderer.onScenePaused()}onSceneResumed(t){this._renderer.onSceneResumed()}onDestroyed(){super.onDestroyed(),this._renderer.onDestroy()}setOpacity(t){this.opacity=Math.max(0,Math.min(255,t)),this._renderer.updateOpacity()}getOpacity(){return this.opacity}setSize(t,e){this.setWidth(t),this.setHeight(e)}setWidth(t){this._width=t,this._renderer.updatePadding()}setHeight(t){this._height=t,this._renderer.updatePadding()}getWidth(){return this._width}getHeight(){return this._height}getString(){return this.getText()}setString(t){this.setText(t)}getText(){return this._string}setText(t){t!==this._string&&(this._string=t,this._renderer.updateString())}onRendererInputValueChanged(t){this._string=t}onRendererFormSubmitted(){this._isSubmitted=!0}getFontResourceName(){return this._fontResourceName}setFontResourceName(t){this._fontResourceName!==t&&(this._fontResourceName=t,this._renderer.updateFont())}getFontSize(){return this._fontSize}setFontSize(t){this._fontSize=t}getPlaceholder(){return this._placeholder}setPlaceholder(t){t!==this._placeholder&&(this._placeholder=t,this._renderer.updatePlaceholder())}getInputType(){return this._inputType}setInputType(t){const e=t.toLowerCase();e!==this._inputType&&(this._inputType=n(e),this._renderer.updateInputType())}setTextColor(t){this._textColor=i.rgbOrHexToRGBColor(t),this._renderer.updateTextColor()}getTextColor(){return this._textColor[0]+";"+this._textColor[1]+";"+this._textColor[2]}_getRawTextColor(){return this._textColor}setFillColor(t){this._fillColor=i.rgbOrHexToRGBColor(t),this._renderer.updateFillColorAndOpacity()}getFillColor(){return this._fillColor[0]+";"+this._fillColor[1]+";"+this._fillColor[2]}_getRawFillColor(){return this._fillColor}setFillOpacity(t){this._fillOpacity=Math.max(0,Math.min(255,t)),this._renderer.updateFillColorAndOpacity()}getFillOpacity(){return this._fillOpacity}setBorderColor(t){this._borderColor=i.rgbOrHexToRGBColor(t),this._renderer.updateBorderColorAndOpacity()}getBorderColor(){return this._borderColor[0]+";"+this._borderColor[1]+";"+this._borderColor[2]}_getRawBorderColor(){return this._borderColor}setBorderOpacity(t){this._borderOpacity=Math.max(0,Math.min(255,t)),this._renderer.updateBorderColorAndOpacity()}getBorderOpacity(){return this._borderOpacity}setBorderWidth(t){this._borderWidth=Math.max(0,t),this._renderer.updateBorderWidth()}getBorderWidth(){return this._borderWidth}setDisabled(t){this._disabled=t,this._renderer.updateDisabled()}isDisabled(){return this._disabled}setReadOnly(t){this._readOnly=t,this._renderer.updateReadOnly()}isReadOnly(){return this._readOnly}isFocused(){return this._renderer.isFocused()}isSubmitted(){return this._isSubmitted}getMaxLength(){return this._maxLength}setMaxLength(t){this._maxLength!==t&&(this._maxLength=t,this._renderer.updateMaxLength())}getPaddingX(){return d(this._paddingX,this._width,this._borderWidth)}setPaddingX(t){if(this._paddingX!==t){if(t<0){this._paddingX=0;return}this._paddingX=t,this._renderer.updatePadding()}}getPaddingY(){return d(this._paddingY,this._height,this._borderWidth)}setPaddingY(t){if(this._paddingY!==t){if(t<0){this._paddingY=0;return}this._paddingY=t,this._renderer.updatePadding()}}getTextAlign(){return this._textAlign}setTextAlign(t){const e=o(t);e!==this._textAlign&&(this._textAlign=e,this._renderer.updateTextAlign())}focus(){this.isFocused()||this.getInstanceContainer().getGame().getInputManager().clearAllPressedKeys(),this._renderer.focus()}}i.TextInputRuntimeObject=u,i.registerObject("TextInput::TextInputObject",i.TextInputRuntimeObject)})(gdjs||(gdjs={}));
2
2
  //# sourceMappingURL=textinputruntimeobject.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../GDevelop/Extensions/TextInput/textinputruntimeobject.ts"],
4
- "sourcesContent": ["namespace gdjs {\n const supportedInputTypes = [\n 'text',\n 'email',\n 'password',\n 'number',\n 'telephone number',\n 'url',\n 'search',\n 'text area',\n ] as const;\n\n type SupportedInputType = typeof supportedInputTypes[number];\n\n const parseInputType = (potentialInputType: string): SupportedInputType => {\n const lowercasedNewInputType = potentialInputType.toLowerCase();\n\n // @ts-ignore - we're actually checking that this value is correct.\n if (supportedInputTypes.includes(lowercasedNewInputType))\n return potentialInputType as SupportedInputType;\n\n return 'text';\n };\n\n /** Base parameters for {@link gdjs.TextInputRuntimeObject} */\n export interface TextInputObjectData extends ObjectData {\n /** The base parameters of the TextInput */\n content: {\n initialValue: string;\n placeholder: string;\n fontResourceName: string;\n fontSize: float;\n inputType: SupportedInputType;\n textColor: string;\n fillColor: string;\n fillOpacity: float;\n borderColor: string;\n borderOpacity: float;\n borderWidth: float;\n disabled: boolean;\n readOnly: boolean;\n };\n }\n\n export type TextInputNetworkSyncDataType = {\n opa: float;\n wid: float;\n hei: float;\n txt: string;\n frn: string;\n fs: number;\n place: string;\n it: SupportedInputType;\n tc: string;\n fc: string;\n fo: float;\n bc: string;\n bo: float;\n bw: float;\n dis: boolean;\n ro: boolean;\n };\n\n export type TextInputNetworkSyncData = ObjectNetworkSyncData &\n TextInputNetworkSyncDataType;\n\n const DEFAULT_WIDTH = 300;\n const DEFAULT_HEIGHT = 30;\n\n /**\n * Shows a text input on the screen the player can type text into.\n */\n export class TextInputRuntimeObject\n extends gdjs.RuntimeObject\n implements gdjs.TextContainer, gdjs.Resizable, gdjs.OpacityHandler {\n private _string: string;\n private _placeholder: string;\n private opacity: float = 255;\n private _width: float = DEFAULT_WIDTH;\n private _height: float = DEFAULT_HEIGHT;\n private _fontResourceName: string;\n private _fontSize: float;\n private _inputType: SupportedInputType;\n private _textColor: [float, float, float];\n private _fillColor: [float, float, float];\n private _fillOpacity: float;\n private _borderColor: [float, float, float];\n private _borderOpacity: float;\n private _borderWidth: float;\n private _disabled: boolean;\n private _readOnly: boolean;\n\n _renderer: TextInputRuntimeObjectRenderer;\n\n constructor(\n instanceContainer: gdjs.RuntimeInstanceContainer,\n objectData: TextInputObjectData\n ) {\n super(instanceContainer, objectData);\n\n this._string = objectData.content.initialValue;\n this._placeholder = objectData.content.placeholder;\n this._fontResourceName = objectData.content.fontResourceName;\n this._fontSize = objectData.content.fontSize || 20;\n this._inputType = parseInputType(objectData.content.inputType);\n this._textColor = gdjs.rgbOrHexToRGBColor(objectData.content.textColor);\n this._fillColor = gdjs.rgbOrHexToRGBColor(objectData.content.fillColor);\n this._fillOpacity = objectData.content.fillOpacity;\n this._borderColor = gdjs.rgbOrHexToRGBColor(\n objectData.content.borderColor\n );\n this._borderOpacity = objectData.content.borderOpacity;\n this._borderWidth = objectData.content.borderWidth;\n this._disabled = objectData.content.disabled;\n this._readOnly = objectData.content.readOnly;\n\n this._renderer = new gdjs.TextInputRuntimeObjectRenderer(\n this,\n instanceContainer\n );\n\n // *ALWAYS* call `this.onCreated()` at the very end of your object constructor.\n this.onCreated();\n }\n\n getRendererObject() {\n return null;\n }\n\n updateFromObjectData(\n oldObjectData: TextInputObjectData,\n newObjectData: TextInputObjectData\n ): boolean {\n if (\n oldObjectData.content.initialValue !==\n newObjectData.content.initialValue\n ) {\n if (this._string === oldObjectData.content.initialValue) {\n this.setString(newObjectData.content.initialValue);\n }\n }\n if (\n oldObjectData.content.placeholder !== newObjectData.content.placeholder\n ) {\n this.setPlaceholder(newObjectData.content.placeholder);\n }\n if (\n oldObjectData.content.fontResourceName !==\n newObjectData.content.fontResourceName\n ) {\n this.setFontResourceName(newObjectData.content.fontResourceName);\n }\n if (oldObjectData.content.fontSize !== newObjectData.content.fontSize) {\n this.setFontSize(newObjectData.content.fontSize);\n }\n if (oldObjectData.content.inputType !== newObjectData.content.inputType) {\n this.setInputType(newObjectData.content.inputType);\n }\n if (oldObjectData.content.textColor !== newObjectData.content.textColor) {\n this.setTextColor(newObjectData.content.textColor);\n }\n if (oldObjectData.content.fillColor !== newObjectData.content.fillColor) {\n this.setFillColor(newObjectData.content.fillColor);\n }\n if (\n oldObjectData.content.fillOpacity !== newObjectData.content.fillOpacity\n ) {\n this.setFillOpacity(newObjectData.content.fillOpacity);\n }\n if (\n oldObjectData.content.borderColor !== newObjectData.content.borderColor\n ) {\n this.setBorderColor(newObjectData.content.borderColor);\n }\n if (\n oldObjectData.content.borderOpacity !==\n newObjectData.content.borderOpacity\n ) {\n this.setBorderOpacity(newObjectData.content.borderOpacity);\n }\n if (\n oldObjectData.content.borderWidth !== newObjectData.content.borderWidth\n ) {\n this.setBorderWidth(newObjectData.content.borderWidth);\n }\n if (oldObjectData.content.disabled !== newObjectData.content.disabled) {\n this.setDisabled(newObjectData.content.disabled);\n }\n if (oldObjectData.content.readOnly !== newObjectData.content.readOnly) {\n this.setReadOnly(newObjectData.content.readOnly);\n }\n return true;\n }\n\n getNetworkSyncData(): TextInputNetworkSyncData {\n return {\n ...super.getNetworkSyncData(),\n opa: this.getOpacity(),\n wid: this.getWidth(),\n hei: this.getHeight(),\n txt: this.getText(),\n frn: this.getFontResourceName(),\n fs: this.getFontSize(),\n place: this.getPlaceholder(),\n it: this.getInputType(),\n tc: this.getTextColor(),\n fc: this.getFillColor(),\n fo: this.getFillOpacity(),\n bc: this.getBorderColor(),\n bo: this.getBorderOpacity(),\n bw: this.getBorderWidth(),\n dis: this.isDisabled(),\n ro: this.isReadOnly(),\n };\n }\n\n updateFromNetworkSyncData(syncData: TextInputNetworkSyncData): void {\n super.updateFromNetworkSyncData(syncData);\n\n if (syncData.opa !== undefined) this.setOpacity(syncData.opa);\n if (syncData.wid !== undefined) this.setWidth(syncData.wid);\n if (syncData.hei !== undefined) this.setHeight(syncData.hei);\n if (syncData.txt !== undefined) this.setText(syncData.txt);\n if (syncData.frn !== undefined) this.setFontResourceName(syncData.frn);\n if (syncData.fs !== undefined) this.setFontSize(syncData.fs);\n if (syncData.place !== undefined) this.setPlaceholder(syncData.place);\n if (syncData.it !== undefined) this.setInputType(syncData.it);\n if (syncData.tc !== undefined) this.setTextColor(syncData.tc);\n if (syncData.fc !== undefined) this.setFillColor(syncData.fc);\n if (syncData.fo !== undefined) this.setFillOpacity(syncData.fo);\n if (syncData.bc !== undefined) this.setBorderColor(syncData.bc);\n if (syncData.bo !== undefined) this.setBorderOpacity(syncData.bo);\n if (syncData.bw !== undefined) this.setBorderWidth(syncData.bw);\n if (syncData.dis !== undefined) this.setDisabled(syncData.dis);\n if (syncData.ro !== undefined) this.setReadOnly(syncData.ro);\n }\n\n updatePreRender(instanceContainer: RuntimeInstanceContainer): void {\n this._renderer.updatePreRender();\n }\n\n /**\n * Initialize the extra parameters that could be set for an instance.\n */\n extraInitializationFromInitialInstance(initialInstanceData: InstanceData) {\n for (const property of initialInstanceData.stringProperties) {\n if (property.name === 'initialValue') {\n this.setString(property.value);\n } else if (property.name === 'placeholder') {\n this.setPlaceholder(property.value);\n }\n }\n if (initialInstanceData.customSize) {\n this.setWidth(initialInstanceData.width);\n this.setHeight(initialInstanceData.height);\n }\n if (initialInstanceData.opacity !== undefined) {\n this.setOpacity(initialInstanceData.opacity);\n }\n }\n\n onScenePaused(runtimeScene: gdjs.RuntimeScene): void {\n this._renderer.onScenePaused();\n }\n\n onSceneResumed(runtimeScene: gdjs.RuntimeScene): void {\n this._renderer.onSceneResumed();\n }\n\n onDestroyed(): void {\n super.onDestroyed();\n this._renderer.onDestroy();\n }\n\n setOpacity(opacity: float): void {\n this.opacity = Math.max(0, Math.min(255, opacity));\n this._renderer.updateOpacity();\n }\n\n getOpacity(): float {\n return this.opacity;\n }\n\n setSize(width: number, height: number): void {\n this.setWidth(width);\n this.setHeight(height);\n }\n\n setWidth(width: float): void {\n this._width = width;\n }\n\n setHeight(height: float): void {\n this._height = height;\n }\n\n /**\n * Return the width of the object.\n * @return The width of the object\n */\n getWidth(): float {\n return this._width;\n }\n\n /**\n * Return the width of the object.\n * @return The height of the object\n */\n getHeight(): float {\n return this._height;\n }\n\n /**\n * Get the text entered in the text input.\n * @deprecated use `getText` instead\n */\n getString() {\n return this.getText();\n }\n\n /**\n * Replace the text inside the text input.\n * @deprecated use `setText` instead\n */\n setString(text: string) {\n this.setText(text);\n }\n\n getText() {\n return this._string;\n }\n\n setText(newString: string) {\n if (newString === this._string) return;\n\n this._string = newString;\n this._renderer.updateString();\n }\n\n /**\n * Called by the renderer when the value of the input shown on the screen\n * was changed (because the user typed something).\n * This does not propagate back the value to the renderer, which would\n * result in the cursor being sent back to the end of the text.\n *\n * Do not use this if you are not inside the renderer - use `setString` instead.\n */\n onRendererInputValueChanged(inputValue: string) {\n this._string = inputValue;\n }\n\n getFontResourceName() {\n return this._fontResourceName;\n }\n\n setFontResourceName(resourceName: string) {\n if (this._fontResourceName === resourceName) return;\n\n this._fontResourceName = resourceName;\n this._renderer.updateFont();\n }\n\n getFontSize() {\n return this._fontSize;\n }\n\n setFontSize(newSize: number) {\n this._fontSize = newSize;\n }\n\n /**\n * Get the placeholder shown when no text is entered\n */\n getPlaceholder() {\n return this._placeholder;\n }\n\n /**\n * Replace the text inside the text input.\n */\n setPlaceholder(newPlaceholder: string) {\n if (newPlaceholder === this._placeholder) return;\n\n this._placeholder = newPlaceholder;\n this._renderer.updatePlaceholder();\n }\n\n /**\n * Get the type of the input.\n */\n getInputType() {\n return this._inputType;\n }\n\n /**\n * Set the type of the input.\n */\n setInputType(newInputType: string) {\n const lowercasedNewInputType = newInputType.toLowerCase();\n if (lowercasedNewInputType === this._inputType) return;\n\n this._inputType = parseInputType(lowercasedNewInputType);\n this._renderer.updateInputType();\n }\n\n setTextColor(newColor: string) {\n this._textColor = gdjs.rgbOrHexToRGBColor(newColor);\n this._renderer.updateTextColor();\n }\n\n getTextColor(): string {\n return (\n this._textColor[0] + ';' + this._textColor[1] + ';' + this._textColor[2]\n );\n }\n\n _getRawTextColor(): [float, float, float] {\n return this._textColor;\n }\n\n setFillColor(newColor: string) {\n this._fillColor = gdjs.rgbOrHexToRGBColor(newColor);\n this._renderer.updateFillColorAndOpacity();\n }\n\n getFillColor(): string {\n return (\n this._fillColor[0] + ';' + this._fillColor[1] + ';' + this._fillColor[2]\n );\n }\n\n _getRawFillColor(): [float, float, float] {\n return this._fillColor;\n }\n\n setFillOpacity(newOpacity: float) {\n this._fillOpacity = Math.max(0, Math.min(255, newOpacity));\n this._renderer.updateFillColorAndOpacity();\n }\n\n getFillOpacity(): float {\n return this._fillOpacity;\n }\n\n setBorderColor(newColor: string) {\n this._borderColor = gdjs.rgbOrHexToRGBColor(newColor);\n this._renderer.updateBorderColorAndOpacity();\n }\n\n getBorderColor(): string {\n return (\n this._borderColor[0] +\n ';' +\n this._borderColor[1] +\n ';' +\n this._borderColor[2]\n );\n }\n\n _getRawBorderColor(): [float, float, float] {\n return this._borderColor;\n }\n\n setBorderOpacity(newOpacity: float) {\n this._borderOpacity = Math.max(0, Math.min(255, newOpacity));\n this._renderer.updateBorderColorAndOpacity();\n }\n\n getBorderOpacity(): float {\n return this._borderOpacity;\n }\n\n setBorderWidth(width: float) {\n this._borderWidth = Math.max(0, width);\n this._renderer.updateBorderWidth();\n }\n\n getBorderWidth(): float {\n return this._borderWidth;\n }\n\n setDisabled(value: boolean) {\n this._disabled = value;\n this._renderer.updateDisabled();\n }\n\n isDisabled(): boolean {\n return this._disabled;\n }\n\n setReadOnly(value: boolean) {\n this._readOnly = value;\n this._renderer.updateReadOnly();\n }\n\n isReadOnly(): boolean {\n return this._readOnly;\n }\n\n isFocused(): boolean {\n return this._renderer.isFocused();\n }\n\n focus(): void {\n if (!this.isFocused()) {\n // If the input was not previously focused, reset input manager because there is\n // no reason to maintain its state. It avoids bugs where a key is pressed, the text\n // input is focused and then the input manager does not have access to the keyup event\n // and considers the key still pressed.\n this.getInstanceContainer()\n .getGame()\n .getInputManager()\n .clearAllPressedKeys();\n }\n this._renderer.focus();\n }\n }\n gdjs.registerObject(\n 'TextInput::TextInputObject',\n gdjs.TextInputRuntimeObject\n );\n}\n"],
5
- "mappings": "AAAA,GAAU,MAAV,UAAU,EAAV,CACE,KAAM,GAAsB,CAC1B,OACA,QACA,WACA,SACA,mBACA,MACA,SACA,aAKI,EAAiB,AAAC,GAAmD,CACzE,KAAM,GAAyB,EAAmB,cAGlD,MAAI,GAAoB,SAAS,GACxB,EAEF,QA6CH,EAAgB,IAChB,EAAiB,GAKhB,eACG,GAAK,aACsD,CAoBnE,YACE,EACA,EACA,CACA,MAAM,EAAmB,GArBnB,aAAiB,IACjB,YAAgB,EAChB,aAAiB,EAqBvB,KAAK,QAAU,EAAW,QAAQ,aAClC,KAAK,aAAe,EAAW,QAAQ,YACvC,KAAK,kBAAoB,EAAW,QAAQ,iBAC5C,KAAK,UAAY,EAAW,QAAQ,UAAY,GAChD,KAAK,WAAa,EAAe,EAAW,QAAQ,WACpD,KAAK,WAAa,EAAK,mBAAmB,EAAW,QAAQ,WAC7D,KAAK,WAAa,EAAK,mBAAmB,EAAW,QAAQ,WAC7D,KAAK,aAAe,EAAW,QAAQ,YACvC,KAAK,aAAe,EAAK,mBACvB,EAAW,QAAQ,aAErB,KAAK,eAAiB,EAAW,QAAQ,cACzC,KAAK,aAAe,EAAW,QAAQ,YACvC,KAAK,UAAY,EAAW,QAAQ,SACpC,KAAK,UAAY,EAAW,QAAQ,SAEpC,KAAK,UAAY,GAAI,GAAK,+BACxB,KACA,GAIF,KAAK,YAGP,mBAAoB,CAClB,MAAO,MAGT,qBACE,EACA,EACS,CACT,MACE,GAAc,QAAQ,eACtB,EAAc,QAAQ,cAElB,KAAK,UAAY,EAAc,QAAQ,cACzC,KAAK,UAAU,EAAc,QAAQ,cAIvC,EAAc,QAAQ,cAAgB,EAAc,QAAQ,aAE5D,KAAK,eAAe,EAAc,QAAQ,aAG1C,EAAc,QAAQ,mBACtB,EAAc,QAAQ,kBAEtB,KAAK,oBAAoB,EAAc,QAAQ,kBAE7C,EAAc,QAAQ,WAAa,EAAc,QAAQ,UAC3D,KAAK,YAAY,EAAc,QAAQ,UAErC,EAAc,QAAQ,YAAc,EAAc,QAAQ,WAC5D,KAAK,aAAa,EAAc,QAAQ,WAEtC,EAAc,QAAQ,YAAc,EAAc,QAAQ,WAC5D,KAAK,aAAa,EAAc,QAAQ,WAEtC,EAAc,QAAQ,YAAc,EAAc,QAAQ,WAC5D,KAAK,aAAa,EAAc,QAAQ,WAGxC,EAAc,QAAQ,cAAgB,EAAc,QAAQ,aAE5D,KAAK,eAAe,EAAc,QAAQ,aAG1C,EAAc,QAAQ,cAAgB,EAAc,QAAQ,aAE5D,KAAK,eAAe,EAAc,QAAQ,aAG1C,EAAc,QAAQ,gBACtB,EAAc,QAAQ,eAEtB,KAAK,iBAAiB,EAAc,QAAQ,eAG5C,EAAc,QAAQ,cAAgB,EAAc,QAAQ,aAE5D,KAAK,eAAe,EAAc,QAAQ,aAExC,EAAc,QAAQ,WAAa,EAAc,QAAQ,UAC3D,KAAK,YAAY,EAAc,QAAQ,UAErC,EAAc,QAAQ,WAAa,EAAc,QAAQ,UAC3D,KAAK,YAAY,EAAc,QAAQ,UAElC,GAGT,oBAA+C,CAC7C,MAAO,IACF,MAAM,qBACT,IAAK,KAAK,aACV,IAAK,KAAK,WACV,IAAK,KAAK,YACV,IAAK,KAAK,UACV,IAAK,KAAK,sBACV,GAAI,KAAK,cACT,MAAO,KAAK,iBACZ,GAAI,KAAK,eACT,GAAI,KAAK,eACT,GAAI,KAAK,eACT,GAAI,KAAK,iBACT,GAAI,KAAK,iBACT,GAAI,KAAK,mBACT,GAAI,KAAK,iBACT,IAAK,KAAK,aACV,GAAI,KAAK,cAIb,0BAA0B,EAA0C,CAClE,MAAM,0BAA0B,GAE5B,EAAS,MAAQ,QAAW,KAAK,WAAW,EAAS,KACrD,EAAS,MAAQ,QAAW,KAAK,SAAS,EAAS,KACnD,EAAS,MAAQ,QAAW,KAAK,UAAU,EAAS,KACpD,EAAS,MAAQ,QAAW,KAAK,QAAQ,EAAS,KAClD,EAAS,MAAQ,QAAW,KAAK,oBAAoB,EAAS,KAC9D,EAAS,KAAO,QAAW,KAAK,YAAY,EAAS,IACrD,EAAS,QAAU,QAAW,KAAK,eAAe,EAAS,OAC3D,EAAS,KAAO,QAAW,KAAK,aAAa,EAAS,IACtD,EAAS,KAAO,QAAW,KAAK,aAAa,EAAS,IACtD,EAAS,KAAO,QAAW,KAAK,aAAa,EAAS,IACtD,EAAS,KAAO,QAAW,KAAK,eAAe,EAAS,IACxD,EAAS,KAAO,QAAW,KAAK,eAAe,EAAS,IACxD,EAAS,KAAO,QAAW,KAAK,iBAAiB,EAAS,IAC1D,EAAS,KAAO,QAAW,KAAK,eAAe,EAAS,IACxD,EAAS,MAAQ,QAAW,KAAK,YAAY,EAAS,KACtD,EAAS,KAAO,QAAW,KAAK,YAAY,EAAS,IAG3D,gBAAgB,EAAmD,CACjE,KAAK,UAAU,kBAMjB,uCAAuC,EAAmC,CACxE,SAAW,KAAY,GAAoB,iBACzC,AAAI,EAAS,OAAS,eACpB,KAAK,UAAU,EAAS,OACf,EAAS,OAAS,eAC3B,KAAK,eAAe,EAAS,OAGjC,AAAI,EAAoB,YACtB,MAAK,SAAS,EAAoB,OAClC,KAAK,UAAU,EAAoB,SAEjC,EAAoB,UAAY,QAClC,KAAK,WAAW,EAAoB,SAIxC,cAAc,EAAuC,CACnD,KAAK,UAAU,gBAGjB,eAAe,EAAuC,CACpD,KAAK,UAAU,iBAGjB,aAAoB,CAClB,MAAM,cACN,KAAK,UAAU,YAGjB,WAAW,EAAsB,CAC/B,KAAK,QAAU,KAAK,IAAI,EAAG,KAAK,IAAI,IAAK,IACzC,KAAK,UAAU,gBAGjB,YAAoB,CAClB,MAAO,MAAK,QAGd,QAAQ,EAAe,EAAsB,CAC3C,KAAK,SAAS,GACd,KAAK,UAAU,GAGjB,SAAS,EAAoB,CAC3B,KAAK,OAAS,EAGhB,UAAU,EAAqB,CAC7B,KAAK,QAAU,EAOjB,UAAkB,CAChB,MAAO,MAAK,OAOd,WAAmB,CACjB,MAAO,MAAK,QAOd,WAAY,CACV,MAAO,MAAK,UAOd,UAAU,EAAc,CACtB,KAAK,QAAQ,GAGf,SAAU,CACR,MAAO,MAAK,QAGd,QAAQ,EAAmB,CACzB,AAAI,IAAc,KAAK,SAEvB,MAAK,QAAU,EACf,KAAK,UAAU,gBAWjB,4BAA4B,EAAoB,CAC9C,KAAK,QAAU,EAGjB,qBAAsB,CACpB,MAAO,MAAK,kBAGd,oBAAoB,EAAsB,CACxC,AAAI,KAAK,oBAAsB,GAE/B,MAAK,kBAAoB,EACzB,KAAK,UAAU,cAGjB,aAAc,CACZ,MAAO,MAAK,UAGd,YAAY,EAAiB,CAC3B,KAAK,UAAY,EAMnB,gBAAiB,CACf,MAAO,MAAK,aAMd,eAAe,EAAwB,CACrC,AAAI,IAAmB,KAAK,cAE5B,MAAK,aAAe,EACpB,KAAK,UAAU,qBAMjB,cAAe,CACb,MAAO,MAAK,WAMd,aAAa,EAAsB,CACjC,KAAM,GAAyB,EAAa,cAC5C,AAAI,IAA2B,KAAK,YAEpC,MAAK,WAAa,EAAe,GACjC,KAAK,UAAU,mBAGjB,aAAa,EAAkB,CAC7B,KAAK,WAAa,EAAK,mBAAmB,GAC1C,KAAK,UAAU,kBAGjB,cAAuB,CACrB,MACE,MAAK,WAAW,GAAK,IAAM,KAAK,WAAW,GAAK,IAAM,KAAK,WAAW,GAI1E,kBAA0C,CACxC,MAAO,MAAK,WAGd,aAAa,EAAkB,CAC7B,KAAK,WAAa,EAAK,mBAAmB,GAC1C,KAAK,UAAU,4BAGjB,cAAuB,CACrB,MACE,MAAK,WAAW,GAAK,IAAM,KAAK,WAAW,GAAK,IAAM,KAAK,WAAW,GAI1E,kBAA0C,CACxC,MAAO,MAAK,WAGd,eAAe,EAAmB,CAChC,KAAK,aAAe,KAAK,IAAI,EAAG,KAAK,IAAI,IAAK,IAC9C,KAAK,UAAU,4BAGjB,gBAAwB,CACtB,MAAO,MAAK,aAGd,eAAe,EAAkB,CAC/B,KAAK,aAAe,EAAK,mBAAmB,GAC5C,KAAK,UAAU,8BAGjB,gBAAyB,CACvB,MACE,MAAK,aAAa,GAClB,IACA,KAAK,aAAa,GAClB,IACA,KAAK,aAAa,GAItB,oBAA4C,CAC1C,MAAO,MAAK,aAGd,iBAAiB,EAAmB,CAClC,KAAK,eAAiB,KAAK,IAAI,EAAG,KAAK,IAAI,IAAK,IAChD,KAAK,UAAU,8BAGjB,kBAA0B,CACxB,MAAO,MAAK,eAGd,eAAe,EAAc,CAC3B,KAAK,aAAe,KAAK,IAAI,EAAG,GAChC,KAAK,UAAU,oBAGjB,gBAAwB,CACtB,MAAO,MAAK,aAGd,YAAY,EAAgB,CAC1B,KAAK,UAAY,EACjB,KAAK,UAAU,iBAGjB,YAAsB,CACpB,MAAO,MAAK,UAGd,YAAY,EAAgB,CAC1B,KAAK,UAAY,EACjB,KAAK,UAAU,iBAGjB,YAAsB,CACpB,MAAO,MAAK,UAGd,WAAqB,CACnB,MAAO,MAAK,UAAU,YAGxB,OAAc,CACZ,AAAK,KAAK,aAKR,KAAK,uBACF,UACA,kBACA,sBAEL,KAAK,UAAU,SA1bZ,EAAM,yBA6bb,EAAK,eACH,6BACA,EAAK,0BAvgBC",
4
+ "sourcesContent": ["namespace gdjs {\n const supportedInputTypes = [\n 'text',\n 'email',\n 'password',\n 'number',\n 'telephone number',\n 'url',\n 'search',\n 'text area',\n ] as const;\n const supportedTextAlign = ['left', 'center', 'right'] as const;\n\n type SupportedInputType = typeof supportedInputTypes[number];\n type SupportedTextAlign = typeof supportedTextAlign[number];\n const parseInputType = (potentialInputType: string): SupportedInputType => {\n const lowercasedNewInputType = potentialInputType.toLowerCase();\n\n // @ts-ignore - we're actually checking that this value is correct.\n if (supportedInputTypes.includes(lowercasedNewInputType))\n return potentialInputType as SupportedInputType;\n\n return 'text';\n };\n\n const parseTextAlign = (\n potentialTextAlign: string | undefined\n ): SupportedTextAlign => {\n if (!potentialTextAlign) return 'left';\n const lowercasedNewTextAlign = potentialTextAlign.toLowerCase();\n\n // @ts-ignore - we're actually checking that this value is correct.\n if (supportedTextAlign.includes(lowercasedNewTextAlign))\n return potentialTextAlign as SupportedTextAlign;\n\n return 'left';\n };\n\n /** Base parameters for {@link gdjs.TextInputRuntimeObject} */\n export interface TextInputObjectData extends ObjectData {\n /** The base parameters of the TextInput */\n content: {\n initialValue: string;\n placeholder: string;\n fontResourceName: string;\n fontSize: float;\n inputType: SupportedInputType;\n textColor: string;\n fillColor: string;\n fillOpacity: float;\n borderColor: string;\n borderOpacity: float;\n borderWidth: float;\n disabled: boolean;\n readOnly: boolean;\n // ---- Values can be undefined because of support for these feature was added in v5.5.222.\n paddingX?: float;\n paddingY?: float;\n textAlign?: SupportedTextAlign;\n maxLength?: integer;\n // ----\n };\n }\n\n export type TextInputNetworkSyncDataType = {\n opa: float;\n wid: float;\n hei: float;\n txt: string;\n frn: string;\n fs: number;\n place: string;\n it: SupportedInputType;\n tc: string;\n fc: string;\n fo: float;\n bc: string;\n bo: float;\n bw: float;\n dis: boolean;\n ro: boolean;\n };\n\n export type TextInputNetworkSyncData = ObjectNetworkSyncData &\n TextInputNetworkSyncDataType;\n\n const DEFAULT_WIDTH = 300;\n const DEFAULT_HEIGHT = 30;\n\n const clampPadding = (value: float, dimension: float, borderWidth: float) => {\n return Math.max(0, Math.min(dimension / 2 - borderWidth, value));\n };\n\n /**\n * Shows a text input on the screen the player can type text into.\n */\n export class TextInputRuntimeObject\n extends gdjs.RuntimeObject\n implements gdjs.TextContainer, gdjs.Resizable, gdjs.OpacityHandler {\n private _string: string;\n private _placeholder: string;\n private opacity: float = 255;\n private _width: float = DEFAULT_WIDTH;\n private _height: float = DEFAULT_HEIGHT;\n private _fontResourceName: string;\n private _fontSize: float;\n private _inputType: SupportedInputType;\n private _textColor: [float, float, float];\n private _fillColor: [float, float, float];\n private _fillOpacity: float;\n private _paddingX: integer;\n private _paddingY: integer;\n private _textAlign: SupportedTextAlign;\n private _maxLength: integer;\n private _borderColor: [float, float, float];\n private _borderOpacity: float;\n private _borderWidth: float;\n private _disabled: boolean;\n private _readOnly: boolean;\n private _isSubmitted: boolean;\n _renderer: TextInputRuntimeObjectRenderer;\n\n constructor(\n instanceContainer: gdjs.RuntimeInstanceContainer,\n objectData: TextInputObjectData\n ) {\n super(instanceContainer, objectData);\n\n this._string = objectData.content.initialValue;\n this._placeholder = objectData.content.placeholder;\n this._fontResourceName = objectData.content.fontResourceName;\n this._fontSize = objectData.content.fontSize || 20;\n this._inputType = parseInputType(objectData.content.inputType);\n this._textColor = gdjs.rgbOrHexToRGBColor(objectData.content.textColor);\n this._fillColor = gdjs.rgbOrHexToRGBColor(objectData.content.fillColor);\n this._fillOpacity = objectData.content.fillOpacity;\n this._borderColor = gdjs.rgbOrHexToRGBColor(\n objectData.content.borderColor\n );\n this._borderOpacity = objectData.content.borderOpacity;\n this._borderWidth = objectData.content.borderWidth;\n this._disabled = objectData.content.disabled;\n this._readOnly = objectData.content.readOnly;\n this._textAlign = parseTextAlign(objectData.content.textAlign);\n this._maxLength = objectData.content.maxLength || 0;\n this._paddingX =\n objectData.content.paddingX !== undefined\n ? objectData.content.paddingX\n : 2;\n this._paddingY =\n objectData.content.paddingY !== undefined\n ? objectData.content.paddingY\n : 1;\n this._isSubmitted = false;\n this._renderer = new gdjs.TextInputRuntimeObjectRenderer(\n this,\n instanceContainer\n );\n\n // *ALWAYS* call `this.onCreated()` at the very end of your object constructor.\n this.onCreated();\n }\n\n getRendererObject() {\n return null;\n }\n\n updateFromObjectData(\n oldObjectData: TextInputObjectData,\n newObjectData: TextInputObjectData\n ): boolean {\n if (\n oldObjectData.content.initialValue !==\n newObjectData.content.initialValue\n ) {\n if (this._string === oldObjectData.content.initialValue) {\n this.setString(newObjectData.content.initialValue);\n }\n }\n if (\n oldObjectData.content.placeholder !== newObjectData.content.placeholder\n ) {\n this.setPlaceholder(newObjectData.content.placeholder);\n }\n if (\n oldObjectData.content.fontResourceName !==\n newObjectData.content.fontResourceName\n ) {\n this.setFontResourceName(newObjectData.content.fontResourceName);\n }\n if (oldObjectData.content.fontSize !== newObjectData.content.fontSize) {\n this.setFontSize(newObjectData.content.fontSize);\n }\n if (oldObjectData.content.inputType !== newObjectData.content.inputType) {\n this.setInputType(newObjectData.content.inputType);\n }\n if (oldObjectData.content.textColor !== newObjectData.content.textColor) {\n this.setTextColor(newObjectData.content.textColor);\n }\n if (oldObjectData.content.fillColor !== newObjectData.content.fillColor) {\n this.setFillColor(newObjectData.content.fillColor);\n }\n if (\n oldObjectData.content.fillOpacity !== newObjectData.content.fillOpacity\n ) {\n this.setFillOpacity(newObjectData.content.fillOpacity);\n }\n if (\n oldObjectData.content.borderColor !== newObjectData.content.borderColor\n ) {\n this.setBorderColor(newObjectData.content.borderColor);\n }\n if (\n oldObjectData.content.borderOpacity !==\n newObjectData.content.borderOpacity\n ) {\n this.setBorderOpacity(newObjectData.content.borderOpacity);\n }\n if (\n oldObjectData.content.borderWidth !== newObjectData.content.borderWidth\n ) {\n this.setBorderWidth(newObjectData.content.borderWidth);\n }\n if (oldObjectData.content.disabled !== newObjectData.content.disabled) {\n this.setDisabled(newObjectData.content.disabled);\n }\n if (oldObjectData.content.readOnly !== newObjectData.content.readOnly) {\n this.setReadOnly(newObjectData.content.readOnly);\n }\n if (\n newObjectData.content.maxLength !== undefined &&\n oldObjectData.content.maxLength !== newObjectData.content.maxLength\n ) {\n this.setMaxLength(newObjectData.content.maxLength);\n }\n if (\n newObjectData.content.textAlign &&\n oldObjectData.content.textAlign !== newObjectData.content.textAlign\n ) {\n this._textAlign = newObjectData.content.textAlign;\n }\n if (\n newObjectData.content.paddingX !== undefined &&\n oldObjectData.content.paddingX !== newObjectData.content.paddingX\n ) {\n this.setPaddingX(newObjectData.content.paddingX);\n }\n if (\n newObjectData.content.paddingY !== undefined &&\n oldObjectData.content.paddingY !== newObjectData.content.paddingY\n ) {\n this.setPaddingY(newObjectData.content.paddingY);\n }\n\n return true;\n }\n\n getNetworkSyncData(): TextInputNetworkSyncData {\n return {\n ...super.getNetworkSyncData(),\n opa: this.getOpacity(),\n wid: this.getWidth(),\n hei: this.getHeight(),\n txt: this.getText(),\n frn: this.getFontResourceName(),\n fs: this.getFontSize(),\n place: this.getPlaceholder(),\n it: this.getInputType(),\n tc: this.getTextColor(),\n fc: this.getFillColor(),\n fo: this.getFillOpacity(),\n bc: this.getBorderColor(),\n bo: this.getBorderOpacity(),\n bw: this.getBorderWidth(),\n dis: this.isDisabled(),\n ro: this.isReadOnly(),\n };\n }\n\n updateFromNetworkSyncData(syncData: TextInputNetworkSyncData): void {\n super.updateFromNetworkSyncData(syncData);\n\n if (syncData.opa !== undefined) this.setOpacity(syncData.opa);\n if (syncData.wid !== undefined) this.setWidth(syncData.wid);\n if (syncData.hei !== undefined) this.setHeight(syncData.hei);\n if (syncData.txt !== undefined) this.setText(syncData.txt);\n if (syncData.frn !== undefined) this.setFontResourceName(syncData.frn);\n if (syncData.fs !== undefined) this.setFontSize(syncData.fs);\n if (syncData.place !== undefined) this.setPlaceholder(syncData.place);\n if (syncData.it !== undefined) this.setInputType(syncData.it);\n if (syncData.tc !== undefined) this.setTextColor(syncData.tc);\n if (syncData.fc !== undefined) this.setFillColor(syncData.fc);\n if (syncData.fo !== undefined) this.setFillOpacity(syncData.fo);\n if (syncData.bc !== undefined) this.setBorderColor(syncData.bc);\n if (syncData.bo !== undefined) this.setBorderOpacity(syncData.bo);\n if (syncData.bw !== undefined) this.setBorderWidth(syncData.bw);\n if (syncData.dis !== undefined) this.setDisabled(syncData.dis);\n if (syncData.ro !== undefined) this.setReadOnly(syncData.ro);\n }\n\n updatePreRender(instanceContainer: RuntimeInstanceContainer): void {\n this._isSubmitted = false;\n this._renderer.updatePreRender();\n }\n\n /**\n * Initialize the extra parameters that could be set for an instance.\n */\n extraInitializationFromInitialInstance(initialInstanceData: InstanceData) {\n for (const property of initialInstanceData.stringProperties) {\n if (property.name === 'initialValue') {\n this.setString(property.value);\n } else if (property.name === 'placeholder') {\n this.setPlaceholder(property.value);\n }\n }\n if (initialInstanceData.customSize) {\n this.setWidth(initialInstanceData.width);\n this.setHeight(initialInstanceData.height);\n this._renderer.updatePadding();\n }\n if (initialInstanceData.opacity !== undefined) {\n this.setOpacity(initialInstanceData.opacity);\n }\n }\n\n onScenePaused(runtimeScene: gdjs.RuntimeScene): void {\n this._renderer.onScenePaused();\n }\n\n onSceneResumed(runtimeScene: gdjs.RuntimeScene): void {\n this._renderer.onSceneResumed();\n }\n\n onDestroyed(): void {\n super.onDestroyed();\n this._renderer.onDestroy();\n }\n\n setOpacity(opacity: float): void {\n this.opacity = Math.max(0, Math.min(255, opacity));\n this._renderer.updateOpacity();\n }\n\n getOpacity(): float {\n return this.opacity;\n }\n\n setSize(width: number, height: number): void {\n this.setWidth(width);\n this.setHeight(height);\n }\n\n setWidth(width: float): void {\n this._width = width;\n this._renderer.updatePadding();\n }\n\n setHeight(height: float): void {\n this._height = height;\n this._renderer.updatePadding();\n }\n\n /**\n * Return the width of the object.\n * @return The width of the object\n */\n getWidth(): float {\n return this._width;\n }\n\n /**\n * Return the width of the object.\n * @return The height of the object\n */\n getHeight(): float {\n return this._height;\n }\n\n /**\n * Get the text entered in the text input.\n * @deprecated use `getText` instead\n */\n getString() {\n return this.getText();\n }\n\n /**\n * Replace the text inside the text input.\n * @deprecated use `setText` instead\n */\n setString(text: string) {\n this.setText(text);\n }\n\n getText() {\n return this._string;\n }\n\n setText(newString: string) {\n if (newString === this._string) return;\n\n this._string = newString;\n this._renderer.updateString();\n }\n\n /**\n * Called by the renderer when the value of the input shown on the screen\n * was changed (because the user typed something).\n * This does not propagate back the value to the renderer, which would\n * result in the cursor being sent back to the end of the text.\n *\n * Do not use this if you are not inside the renderer - use `setString` instead.\n */\n onRendererInputValueChanged(inputValue: string) {\n this._string = inputValue;\n }\n\n onRendererFormSubmitted() {\n this._isSubmitted = true;\n }\n\n getFontResourceName() {\n return this._fontResourceName;\n }\n\n setFontResourceName(resourceName: string) {\n if (this._fontResourceName === resourceName) return;\n\n this._fontResourceName = resourceName;\n this._renderer.updateFont();\n }\n\n getFontSize() {\n return this._fontSize;\n }\n\n setFontSize(newSize: number) {\n this._fontSize = newSize;\n }\n\n /**\n * Get the placeholder shown when no text is entered\n */\n getPlaceholder() {\n return this._placeholder;\n }\n\n /**\n * Replace the text inside the text input.\n */\n setPlaceholder(newPlaceholder: string) {\n if (newPlaceholder === this._placeholder) return;\n\n this._placeholder = newPlaceholder;\n this._renderer.updatePlaceholder();\n }\n\n /**\n * Get the type of the input.\n */\n getInputType() {\n return this._inputType;\n }\n\n /**\n * Set the type of the input.\n */\n setInputType(newInputType: string) {\n const lowercasedNewInputType = newInputType.toLowerCase();\n if (lowercasedNewInputType === this._inputType) return;\n\n this._inputType = parseInputType(lowercasedNewInputType);\n this._renderer.updateInputType();\n }\n\n setTextColor(newColor: string) {\n this._textColor = gdjs.rgbOrHexToRGBColor(newColor);\n this._renderer.updateTextColor();\n }\n\n getTextColor(): string {\n return (\n this._textColor[0] + ';' + this._textColor[1] + ';' + this._textColor[2]\n );\n }\n\n _getRawTextColor(): [float, float, float] {\n return this._textColor;\n }\n\n setFillColor(newColor: string) {\n this._fillColor = gdjs.rgbOrHexToRGBColor(newColor);\n this._renderer.updateFillColorAndOpacity();\n }\n\n getFillColor(): string {\n return (\n this._fillColor[0] + ';' + this._fillColor[1] + ';' + this._fillColor[2]\n );\n }\n\n _getRawFillColor(): [float, float, float] {\n return this._fillColor;\n }\n\n setFillOpacity(newOpacity: float) {\n this._fillOpacity = Math.max(0, Math.min(255, newOpacity));\n this._renderer.updateFillColorAndOpacity();\n }\n\n getFillOpacity(): float {\n return this._fillOpacity;\n }\n\n setBorderColor(newColor: string) {\n this._borderColor = gdjs.rgbOrHexToRGBColor(newColor);\n this._renderer.updateBorderColorAndOpacity();\n }\n\n getBorderColor(): string {\n return (\n this._borderColor[0] +\n ';' +\n this._borderColor[1] +\n ';' +\n this._borderColor[2]\n );\n }\n\n _getRawBorderColor(): [float, float, float] {\n return this._borderColor;\n }\n\n setBorderOpacity(newOpacity: float) {\n this._borderOpacity = Math.max(0, Math.min(255, newOpacity));\n this._renderer.updateBorderColorAndOpacity();\n }\n\n getBorderOpacity(): float {\n return this._borderOpacity;\n }\n\n setBorderWidth(width: float) {\n this._borderWidth = Math.max(0, width);\n this._renderer.updateBorderWidth();\n }\n\n getBorderWidth(): float {\n return this._borderWidth;\n }\n\n setDisabled(value: boolean) {\n this._disabled = value;\n this._renderer.updateDisabled();\n }\n\n isDisabled(): boolean {\n return this._disabled;\n }\n\n setReadOnly(value: boolean) {\n this._readOnly = value;\n this._renderer.updateReadOnly();\n }\n\n isReadOnly(): boolean {\n return this._readOnly;\n }\n\n isFocused(): boolean {\n return this._renderer.isFocused();\n }\n isSubmitted(): boolean {\n return this._isSubmitted;\n }\n\n getMaxLength(): integer {\n return this._maxLength;\n }\n setMaxLength(value: integer) {\n if (this._maxLength === value) return;\n\n this._maxLength = value;\n this._renderer.updateMaxLength();\n }\n\n getPaddingX(): integer {\n return clampPadding(this._paddingX, this._width, this._borderWidth);\n }\n setPaddingX(value: integer) {\n if (this._paddingX === value) return;\n if (value < 0) {\n this._paddingX = 0;\n return;\n }\n\n this._paddingX = value;\n this._renderer.updatePadding();\n }\n getPaddingY(): integer {\n return clampPadding(this._paddingY, this._height, this._borderWidth);\n }\n setPaddingY(value: integer) {\n if (this._paddingY === value) return;\n if (value < 0) {\n this._paddingY = 0;\n return;\n }\n\n this._paddingY = value;\n this._renderer.updatePadding();\n }\n\n getTextAlign(): SupportedTextAlign {\n return this._textAlign;\n }\n\n setTextAlign(newTextAlign: string) {\n const parsedTextAlign = parseTextAlign(newTextAlign);\n if (parsedTextAlign === this._textAlign) return;\n\n this._textAlign = parsedTextAlign;\n this._renderer.updateTextAlign();\n }\n\n focus(): void {\n if (!this.isFocused()) {\n // If the input was not previously focused, reset input manager because there is\n // no reason to maintain its state. It avoids bugs where a key is pressed, the text\n // input is focused and then the input manager does not have access to the keyup event\n // and considers the key still pressed.\n this.getInstanceContainer()\n .getGame()\n .getInputManager()\n .clearAllPressedKeys();\n }\n this._renderer.focus();\n }\n }\n gdjs.registerObject(\n 'TextInput::TextInputObject',\n gdjs.TextInputRuntimeObject\n );\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -340,7 +340,6 @@ declare interface ProjectPropertiesData {
340
340
  antialiasingMode: 'none' | 'MSAA';
341
341
  antialisingEnabledOnMobile: boolean;
342
342
  sizeOnStartupMode: string;
343
- useExternalSourceFiles: boolean;
344
343
  version: string;
345
344
  name: string;
346
345
  author: string;