@babylonjs/gui 9.14.0 → 9.16.0

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.
Files changed (106) hide show
  1. package/2D/advancedDynamicTexture.d.ts +2 -2
  2. package/2D/advancedDynamicTexture.js +2 -2
  3. package/2D/advancedDynamicTexture.js.map +1 -1
  4. package/2D/controls/checkbox.pure.js +164 -153
  5. package/2D/controls/checkbox.pure.js.map +1 -1
  6. package/2D/controls/colorpicker.pure.js +1300 -1289
  7. package/2D/controls/colorpicker.pure.js.map +1 -1
  8. package/2D/controls/container.pure.js +597 -582
  9. package/2D/controls/container.pure.js.map +1 -1
  10. package/2D/controls/control.pure.js +2474 -2434
  11. package/2D/controls/control.pure.js.map +1 -1
  12. package/2D/controls/displayGrid.pure.js +201 -190
  13. package/2D/controls/displayGrid.pure.js.map +1 -1
  14. package/2D/controls/ellipse.pure.js +96 -85
  15. package/2D/controls/ellipse.pure.js.map +1 -1
  16. package/2D/controls/grid.pure.js +511 -500
  17. package/2D/controls/grid.pure.js.map +1 -1
  18. package/2D/controls/image.pure.js +888 -877
  19. package/2D/controls/image.pure.js.map +1 -1
  20. package/2D/controls/inputText.pure.js +988 -973
  21. package/2D/controls/inputText.pure.js.map +1 -1
  22. package/2D/controls/inputTextArea.pure.js +955 -944
  23. package/2D/controls/inputTextArea.pure.js.map +1 -1
  24. package/2D/controls/line.pure.js +237 -226
  25. package/2D/controls/line.pure.js.map +1 -1
  26. package/2D/controls/multiLine.pure.js +233 -222
  27. package/2D/controls/multiLine.pure.js.map +1 -1
  28. package/2D/controls/radioButton.pure.js +182 -169
  29. package/2D/controls/radioButton.pure.js.map +1 -1
  30. package/2D/controls/rectangle.pure.js +211 -200
  31. package/2D/controls/rectangle.pure.js.map +1 -1
  32. package/2D/controls/scrollViewers/scrollViewer.pure.js +579 -567
  33. package/2D/controls/scrollViewers/scrollViewer.pure.js.map +1 -1
  34. package/2D/controls/scrollViewers/scrollViewerWindow.d.ts +1 -1
  35. package/2D/controls/scrollViewers/scrollViewerWindow.js +2 -2
  36. package/2D/controls/scrollViewers/scrollViewerWindow.js.map +1 -1
  37. package/2D/controls/selector.d.ts +2 -2
  38. package/2D/controls/selector.js +8 -8
  39. package/2D/controls/selector.js.map +1 -1
  40. package/2D/controls/sliders/baseSlider.d.ts +1 -1
  41. package/2D/controls/sliders/baseSlider.js +292 -281
  42. package/2D/controls/sliders/baseSlider.js.map +1 -1
  43. package/2D/controls/sliders/imageBasedSlider.pure.js +158 -147
  44. package/2D/controls/sliders/imageBasedSlider.pure.js.map +1 -1
  45. package/2D/controls/sliders/imageScrollBar.js +237 -223
  46. package/2D/controls/sliders/imageScrollBar.js.map +1 -1
  47. package/2D/controls/sliders/scrollBar.pure.js +169 -158
  48. package/2D/controls/sliders/scrollBar.pure.js.map +1 -1
  49. package/2D/controls/sliders/slider.pure.js +251 -240
  50. package/2D/controls/sliders/slider.pure.js.map +1 -1
  51. package/2D/controls/stackPanel.pure.js +236 -221
  52. package/2D/controls/stackPanel.pure.js.map +1 -1
  53. package/2D/controls/textBlock.pure.js +637 -626
  54. package/2D/controls/textBlock.pure.js.map +1 -1
  55. package/2D/math2D.d.ts +1 -1
  56. package/2D/math2D.js +1 -1
  57. package/2D/math2D.js.map +1 -1
  58. package/2D/measure.js +1 -1
  59. package/2D/measure.js.map +1 -1
  60. package/3D/controls/MRTK3/touchHolographicButton.d.ts +4 -4
  61. package/3D/controls/MRTK3/touchHolographicButton.js +10 -10
  62. package/3D/controls/MRTK3/touchHolographicButton.js.map +1 -1
  63. package/3D/controls/holographicBackplate.d.ts +1 -1
  64. package/3D/controls/holographicBackplate.js +1 -1
  65. package/3D/controls/holographicBackplate.js.map +1 -1
  66. package/3D/controls/holographicButton.d.ts +1 -1
  67. package/3D/controls/holographicButton.js +4 -4
  68. package/3D/controls/holographicButton.js.map +1 -1
  69. package/3D/controls/holographicSlate.js +4 -4
  70. package/3D/controls/holographicSlate.js.map +1 -1
  71. package/3D/controls/slider3D.d.ts +3 -3
  72. package/3D/controls/slider3D.js +3 -3
  73. package/3D/controls/slider3D.js.map +1 -1
  74. package/3D/controls/touchHolographicButton.d.ts +2 -2
  75. package/3D/controls/touchHolographicButton.js +5 -5
  76. package/3D/controls/touchHolographicButton.js.map +1 -1
  77. package/3D/controls/touchHolographicMenu.js +1 -1
  78. package/3D/controls/touchHolographicMenu.js.map +1 -1
  79. package/3D/gizmos/gizmoHandle.d.ts +1 -1
  80. package/3D/gizmos/gizmoHandle.js +1 -1
  81. package/3D/gizmos/gizmoHandle.js.map +1 -1
  82. package/3D/materials/fluent/fluentMaterial.pure.d.ts +4 -4
  83. package/3D/materials/fluent/fluentMaterial.pure.js +322 -270
  84. package/3D/materials/fluent/fluentMaterial.pure.js.map +1 -1
  85. package/3D/materials/fluentBackplate/fluentBackplateMaterial.pure.js +510 -451
  86. package/3D/materials/fluentBackplate/fluentBackplateMaterial.pure.js.map +1 -1
  87. package/3D/materials/fluentButton/fluentButtonMaterial.pure.js +612 -526
  88. package/3D/materials/fluentButton/fluentButtonMaterial.pure.js.map +1 -1
  89. package/3D/materials/fluentMaterial.d.ts +1 -1
  90. package/3D/materials/fluentMaterial.js +1 -1
  91. package/3D/materials/fluentMaterial.js.map +1 -1
  92. package/3D/materials/handle/handleMaterial.pure.js +3 -1
  93. package/3D/materials/handle/handleMaterial.pure.js.map +1 -1
  94. package/3D/materials/mrdl/mrdlBackglowMaterial.pure.js +313 -271
  95. package/3D/materials/mrdl/mrdlBackglowMaterial.pure.js.map +1 -1
  96. package/3D/materials/mrdl/mrdlBackplateMaterial.pure.js +462 -402
  97. package/3D/materials/mrdl/mrdlBackplateMaterial.pure.js.map +1 -1
  98. package/3D/materials/mrdl/mrdlFrontplateMaterial.pure.js +583 -498
  99. package/3D/materials/mrdl/mrdlFrontplateMaterial.pure.js.map +1 -1
  100. package/3D/materials/mrdl/mrdlInnerquadMaterial.pure.js +226 -200
  101. package/3D/materials/mrdl/mrdlInnerquadMaterial.pure.js.map +1 -1
  102. package/3D/materials/mrdl/mrdlSliderBarMaterial.pure.js +961 -822
  103. package/3D/materials/mrdl/mrdlSliderBarMaterial.pure.js.map +1 -1
  104. package/3D/materials/mrdl/mrdlSliderThumbMaterial.pure.js +961 -822
  105. package/3D/materials/mrdl/mrdlSliderThumbMaterial.pure.js.map +1 -1
  106. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"baseSlider.js","sourceRoot":"","sources":["../../../../../../dev/gui/src/2D/controls/sliders/baseSlider.ts"],"names":[],"mappings":"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","sourcesContent":["import { Observable } from \"core/Misc/observable\";\r\nimport { type Vector2 } from \"core/Maths/math.vector\";\r\n\r\nimport { Control } from \"../control\";\r\nimport { ValueAndUnit } from \"../../valueAndUnit\";\r\nimport { type PointerInfoBase } from \"core/Events/pointerEvents\";\r\nimport { serialize } from \"core/Misc/decorators\";\r\nimport { Logger } from \"core/Misc/logger\";\r\n\r\n/**\r\n * Class used to create slider controls\r\n */\r\nexport class BaseSlider extends Control {\r\n protected _thumbWidth = new ValueAndUnit(20, ValueAndUnit.UNITMODE_PIXEL, false);\r\n private _minimum = 0;\r\n private _maximum = 100;\r\n private _value = 50;\r\n private _isVertical = false;\r\n protected _barOffset = new ValueAndUnit(5, ValueAndUnit.UNITMODE_PIXEL, false);\r\n private _isThumbClamped = false;\r\n protected _displayThumb = true;\r\n private _step = 0;\r\n\r\n private _lastPointerDownId = -1;\r\n\r\n // Shared rendering info\r\n protected _effectiveBarOffset = 0;\r\n protected _renderLeft: number;\r\n protected _renderTop: number;\r\n protected _renderWidth: number;\r\n protected _renderHeight: number;\r\n protected _backgroundBoxLength: number;\r\n protected _backgroundBoxThickness: number;\r\n protected _effectiveThumbThickness: number;\r\n\r\n /** Observable raised when the slider value changes */\r\n public onValueChangedObservable = new Observable<number>();\r\n\r\n /** Gets or sets a boolean indicating if the thumb must be rendered */\r\n @serialize()\r\n public get displayThumb(): boolean {\r\n return this._displayThumb;\r\n }\r\n\r\n public set displayThumb(value: boolean) {\r\n if (this._displayThumb === value) {\r\n return;\r\n }\r\n\r\n this._displayThumb = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets a step to apply to values (0 by default) */\r\n @serialize()\r\n public get step(): number {\r\n return this._step;\r\n }\r\n\r\n public set step(value: number) {\r\n if (this._step === value) {\r\n return;\r\n }\r\n\r\n this._step = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets main bar offset (ie. the margin applied to the value bar) */\r\n @serialize()\r\n public get barOffset(): string | number {\r\n return this._barOffset.toString(this._host);\r\n }\r\n\r\n /** Gets main bar offset in pixels*/\r\n public get barOffsetInPixels(): number {\r\n return this._barOffset.getValueInPixel(this._host, this._cachedParentMeasure.width);\r\n }\r\n\r\n public set barOffset(value: string | number) {\r\n if (this._barOffset.toString(this._host) === value) {\r\n return;\r\n }\r\n\r\n if (this._barOffset.fromString(value)) {\r\n this._markAsDirty();\r\n }\r\n }\r\n\r\n /** Gets or sets thumb width */\r\n @serialize()\r\n public get thumbWidth(): string | number {\r\n return this._thumbWidth.toString(this._host);\r\n }\r\n\r\n /** Gets thumb width in pixels */\r\n public get thumbWidthInPixels(): number {\r\n return this._thumbWidth.getValueInPixel(this._host, this._cachedParentMeasure.width);\r\n }\r\n\r\n public set thumbWidth(value: string | number) {\r\n if (this._thumbWidth.toString(this._host) === value) {\r\n return;\r\n }\r\n\r\n if (this._thumbWidth.fromString(value)) {\r\n this._markAsDirty();\r\n }\r\n }\r\n\r\n /** Gets or sets minimum value */\r\n @serialize()\r\n public get minimum(): number {\r\n return this._minimum;\r\n }\r\n\r\n public set minimum(value: number) {\r\n if (this._minimum === value) {\r\n return;\r\n }\r\n\r\n this._minimum = value;\r\n this._markAsDirty();\r\n\r\n this.value = Math.max(Math.min(this.value, this._maximum), this._minimum);\r\n }\r\n\r\n /** Gets or sets maximum value */\r\n @serialize()\r\n public get maximum(): number {\r\n return this._maximum;\r\n }\r\n\r\n public set maximum(value: number) {\r\n if (this._maximum === value) {\r\n return;\r\n }\r\n\r\n this._maximum = value;\r\n this._markAsDirty();\r\n\r\n this.value = Math.max(Math.min(this.value, this._maximum), this._minimum);\r\n }\r\n\r\n /** Gets or sets current value */\r\n @serialize()\r\n public get value(): number {\r\n return this._value;\r\n }\r\n\r\n public set value(value: number) {\r\n value = Math.max(Math.min(value, this._maximum), this._minimum);\r\n\r\n if (this._value === value) {\r\n return;\r\n }\r\n\r\n this._value = value;\r\n this._markAsDirty();\r\n this.onValueChangedObservable.notifyObservers(this._value, undefined, this, this);\r\n }\r\n\r\n /**Gets or sets a boolean indicating if the slider should be vertical or horizontal */\r\n @serialize()\r\n public get isVertical(): boolean {\r\n return this._isVertical;\r\n }\r\n\r\n public set isVertical(value: boolean) {\r\n if (this._isVertical === value) {\r\n return;\r\n }\r\n\r\n this._isVertical = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets a value indicating if the thumb can go over main bar extends */\r\n @serialize()\r\n public get isThumbClamped(): boolean {\r\n return this._isThumbClamped;\r\n }\r\n\r\n public set isThumbClamped(value: boolean) {\r\n if (this._isThumbClamped === value) {\r\n return;\r\n }\r\n\r\n this._isThumbClamped = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /**\r\n * Creates a new BaseSlider\r\n * @param name defines the control name\r\n */\r\n constructor(public override name?: string) {\r\n super(name);\r\n\r\n this.isPointerBlocker = true;\r\n }\r\n\r\n protected override _getTypeName(): string {\r\n return \"BaseSlider\";\r\n }\r\n\r\n protected _getThumbPosition() {\r\n if (this.isVertical) {\r\n return ((this.maximum - this.value) / (this.maximum - this.minimum)) * this._backgroundBoxLength;\r\n }\r\n\r\n return ((this.value - this.minimum) / (this.maximum - this.minimum)) * this._backgroundBoxLength;\r\n }\r\n\r\n protected _getThumbThickness(type: string): number {\r\n let thumbThickness = 0;\r\n switch (type) {\r\n case \"circle\":\r\n if (this._thumbWidth.isPixel) {\r\n thumbThickness = Math.max(this._thumbWidth.getValue(this._host), this._backgroundBoxThickness);\r\n } else {\r\n thumbThickness = this._backgroundBoxThickness * this._thumbWidth.getValue(this._host);\r\n }\r\n break;\r\n case \"rectangle\":\r\n if (this._thumbWidth.isPixel) {\r\n thumbThickness = Math.min(this._thumbWidth.getValue(this._host), this._backgroundBoxThickness);\r\n } else {\r\n thumbThickness = this._backgroundBoxThickness * this._thumbWidth.getValue(this._host);\r\n }\r\n }\r\n return thumbThickness;\r\n }\r\n\r\n protected _prepareRenderingData(type: string) {\r\n // Main bar\r\n this._effectiveBarOffset = 0;\r\n this._renderLeft = this._currentMeasure.left;\r\n this._renderTop = this._currentMeasure.top;\r\n this._renderWidth = this._currentMeasure.width;\r\n this._renderHeight = this._currentMeasure.height;\r\n\r\n this._backgroundBoxLength = Math.max(this._currentMeasure.width, this._currentMeasure.height);\r\n this._backgroundBoxThickness = Math.min(this._currentMeasure.width, this._currentMeasure.height);\r\n this._effectiveThumbThickness = this._getThumbThickness(type);\r\n\r\n if (this.displayThumb) {\r\n this._backgroundBoxLength -= this._effectiveThumbThickness;\r\n }\r\n //throw error when height is less than width for vertical slider\r\n if (this.isVertical && this._currentMeasure.height < this._currentMeasure.width) {\r\n Logger.Error(\"Height should be greater than width\");\r\n return;\r\n }\r\n if (this._barOffset.isPixel) {\r\n this._effectiveBarOffset = Math.min(this._barOffset.getValue(this._host), this._backgroundBoxThickness);\r\n } else {\r\n this._effectiveBarOffset = this._backgroundBoxThickness * this._barOffset.getValue(this._host);\r\n }\r\n\r\n this._backgroundBoxThickness -= this._effectiveBarOffset * 2;\r\n\r\n if (this.isVertical) {\r\n this._renderLeft += this._effectiveBarOffset;\r\n if (!this.isThumbClamped && this.displayThumb) {\r\n this._renderTop += this._effectiveThumbThickness / 2;\r\n }\r\n\r\n this._renderHeight = this._backgroundBoxLength;\r\n this._renderWidth = this._backgroundBoxThickness;\r\n } else {\r\n this._renderTop += this._effectiveBarOffset;\r\n if (!this.isThumbClamped && this.displayThumb) {\r\n this._renderLeft += this._effectiveThumbThickness / 2;\r\n }\r\n this._renderHeight = this._backgroundBoxThickness;\r\n this._renderWidth = this._backgroundBoxLength;\r\n }\r\n }\r\n\r\n // Events\r\n private _pointerIsDown = false;\r\n\r\n /**\r\n * @internal\r\n */\r\n protected _updateValueFromPointer(x: number, y: number): void {\r\n this._invertTransformMatrix.transformCoordinates(x, y, this._transformedPosition);\r\n x = this._transformedPosition.x;\r\n y = this._transformedPosition.y;\r\n\r\n let value: number;\r\n if (this._isVertical) {\r\n value = this._minimum + (1 - (y - this._currentMeasure.top) / this._currentMeasure.height) * (this._maximum - this._minimum);\r\n } else {\r\n value = this._minimum + ((x - this._currentMeasure.left) / this._currentMeasure.width) * (this._maximum - this._minimum);\r\n }\r\n this.value = this._step ? Math.round(value / this._step) * this._step : value;\r\n }\r\n\r\n public override _onPointerDown(target: Control, coordinates: Vector2, pointerId: number, buttonIndex: number, pi: PointerInfoBase): boolean {\r\n if (!super._onPointerDown(target, coordinates, pointerId, buttonIndex, pi)) {\r\n return false;\r\n }\r\n\r\n if (this.isReadOnly) {\r\n return true;\r\n }\r\n\r\n this._pointerIsDown = true;\r\n\r\n this._updateValueFromPointer(coordinates.x, coordinates.y);\r\n this._host._capturingControl[pointerId] = this;\r\n this._lastPointerDownId = pointerId;\r\n return true;\r\n }\r\n\r\n public override _onPointerMove(target: Control, coordinates: Vector2, pointerId: number, pi: PointerInfoBase): void {\r\n // Only listen to pointer move events coming from the last pointer to click on the element (To support dual vr controller interaction)\r\n if (pointerId != this._lastPointerDownId) {\r\n return;\r\n }\r\n\r\n if (this._pointerIsDown && !this.isReadOnly) {\r\n this._updateValueFromPointer(coordinates.x, coordinates.y);\r\n }\r\n super._onPointerMove(target, coordinates, pointerId, pi);\r\n }\r\n\r\n public override _onPointerUp(target: Control, coordinates: Vector2, pointerId: number, buttonIndex: number, notifyClick: boolean): void {\r\n this._pointerIsDown = false;\r\n\r\n delete this._host._capturingControl[pointerId];\r\n super._onPointerUp(target, coordinates, pointerId, buttonIndex, notifyClick);\r\n }\r\n\r\n public override _onCanvasBlur(): void {\r\n this._forcePointerUp();\r\n super._onCanvasBlur();\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"baseSlider.js","sourceRoot":"","sources":["../../../../../../dev/gui/src/2D/controls/sliders/baseSlider.ts"],"names":[],"mappings":"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","sourcesContent":["import { Observable } from \"core/Misc/observable\";\r\nimport { type Vector2 } from \"core/Maths/math.vector\";\r\n\r\nimport { Control } from \"../control.pure\";\r\nimport { ValueAndUnit } from \"../../valueAndUnit\";\r\nimport { type PointerInfoBase } from \"core/Events/pointerEvents\";\r\nimport { serialize } from \"core/Misc/decorators\";\r\nimport { Logger } from \"core/Misc/logger\";\r\n\r\n/**\r\n * Class used to create slider controls\r\n */\r\nexport class BaseSlider extends Control {\r\n protected _thumbWidth = new ValueAndUnit(20, ValueAndUnit.UNITMODE_PIXEL, false);\r\n private _minimum = 0;\r\n private _maximum = 100;\r\n private _value = 50;\r\n private _isVertical = false;\r\n protected _barOffset = new ValueAndUnit(5, ValueAndUnit.UNITMODE_PIXEL, false);\r\n private _isThumbClamped = false;\r\n protected _displayThumb = true;\r\n private _step = 0;\r\n\r\n private _lastPointerDownId = -1;\r\n\r\n // Shared rendering info\r\n protected _effectiveBarOffset = 0;\r\n protected _renderLeft: number;\r\n protected _renderTop: number;\r\n protected _renderWidth: number;\r\n protected _renderHeight: number;\r\n protected _backgroundBoxLength: number;\r\n protected _backgroundBoxThickness: number;\r\n protected _effectiveThumbThickness: number;\r\n\r\n /** Observable raised when the slider value changes */\r\n public onValueChangedObservable = new Observable<number>();\r\n\r\n /** Gets or sets a boolean indicating if the thumb must be rendered */\r\n @serialize()\r\n public get displayThumb(): boolean {\r\n return this._displayThumb;\r\n }\r\n\r\n public set displayThumb(value: boolean) {\r\n if (this._displayThumb === value) {\r\n return;\r\n }\r\n\r\n this._displayThumb = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets a step to apply to values (0 by default) */\r\n @serialize()\r\n public get step(): number {\r\n return this._step;\r\n }\r\n\r\n public set step(value: number) {\r\n if (this._step === value) {\r\n return;\r\n }\r\n\r\n this._step = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets main bar offset (ie. the margin applied to the value bar) */\r\n @serialize()\r\n public get barOffset(): string | number {\r\n return this._barOffset.toString(this._host);\r\n }\r\n\r\n /** Gets main bar offset in pixels*/\r\n public get barOffsetInPixels(): number {\r\n return this._barOffset.getValueInPixel(this._host, this._cachedParentMeasure.width);\r\n }\r\n\r\n public set barOffset(value: string | number) {\r\n if (this._barOffset.toString(this._host) === value) {\r\n return;\r\n }\r\n\r\n if (this._barOffset.fromString(value)) {\r\n this._markAsDirty();\r\n }\r\n }\r\n\r\n /** Gets or sets thumb width */\r\n @serialize()\r\n public get thumbWidth(): string | number {\r\n return this._thumbWidth.toString(this._host);\r\n }\r\n\r\n /** Gets thumb width in pixels */\r\n public get thumbWidthInPixels(): number {\r\n return this._thumbWidth.getValueInPixel(this._host, this._cachedParentMeasure.width);\r\n }\r\n\r\n public set thumbWidth(value: string | number) {\r\n if (this._thumbWidth.toString(this._host) === value) {\r\n return;\r\n }\r\n\r\n if (this._thumbWidth.fromString(value)) {\r\n this._markAsDirty();\r\n }\r\n }\r\n\r\n /** Gets or sets minimum value */\r\n @serialize()\r\n public get minimum(): number {\r\n return this._minimum;\r\n }\r\n\r\n public set minimum(value: number) {\r\n if (this._minimum === value) {\r\n return;\r\n }\r\n\r\n this._minimum = value;\r\n this._markAsDirty();\r\n\r\n this.value = Math.max(Math.min(this.value, this._maximum), this._minimum);\r\n }\r\n\r\n /** Gets or sets maximum value */\r\n @serialize()\r\n public get maximum(): number {\r\n return this._maximum;\r\n }\r\n\r\n public set maximum(value: number) {\r\n if (this._maximum === value) {\r\n return;\r\n }\r\n\r\n this._maximum = value;\r\n this._markAsDirty();\r\n\r\n this.value = Math.max(Math.min(this.value, this._maximum), this._minimum);\r\n }\r\n\r\n /** Gets or sets current value */\r\n @serialize()\r\n public get value(): number {\r\n return this._value;\r\n }\r\n\r\n public set value(value: number) {\r\n value = Math.max(Math.min(value, this._maximum), this._minimum);\r\n\r\n if (this._value === value) {\r\n return;\r\n }\r\n\r\n this._value = value;\r\n this._markAsDirty();\r\n this.onValueChangedObservable.notifyObservers(this._value, undefined, this, this);\r\n }\r\n\r\n /**Gets or sets a boolean indicating if the slider should be vertical or horizontal */\r\n @serialize()\r\n public get isVertical(): boolean {\r\n return this._isVertical;\r\n }\r\n\r\n public set isVertical(value: boolean) {\r\n if (this._isVertical === value) {\r\n return;\r\n }\r\n\r\n this._isVertical = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets a value indicating if the thumb can go over main bar extends */\r\n @serialize()\r\n public get isThumbClamped(): boolean {\r\n return this._isThumbClamped;\r\n }\r\n\r\n public set isThumbClamped(value: boolean) {\r\n if (this._isThumbClamped === value) {\r\n return;\r\n }\r\n\r\n this._isThumbClamped = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /**\r\n * Creates a new BaseSlider\r\n * @param name defines the control name\r\n */\r\n constructor(public override name?: string) {\r\n super(name);\r\n\r\n this.isPointerBlocker = true;\r\n }\r\n\r\n protected override _getTypeName(): string {\r\n return \"BaseSlider\";\r\n }\r\n\r\n protected _getThumbPosition() {\r\n if (this.isVertical) {\r\n return ((this.maximum - this.value) / (this.maximum - this.minimum)) * this._backgroundBoxLength;\r\n }\r\n\r\n return ((this.value - this.minimum) / (this.maximum - this.minimum)) * this._backgroundBoxLength;\r\n }\r\n\r\n protected _getThumbThickness(type: string): number {\r\n let thumbThickness = 0;\r\n switch (type) {\r\n case \"circle\":\r\n if (this._thumbWidth.isPixel) {\r\n thumbThickness = Math.max(this._thumbWidth.getValue(this._host), this._backgroundBoxThickness);\r\n } else {\r\n thumbThickness = this._backgroundBoxThickness * this._thumbWidth.getValue(this._host);\r\n }\r\n break;\r\n case \"rectangle\":\r\n if (this._thumbWidth.isPixel) {\r\n thumbThickness = Math.min(this._thumbWidth.getValue(this._host), this._backgroundBoxThickness);\r\n } else {\r\n thumbThickness = this._backgroundBoxThickness * this._thumbWidth.getValue(this._host);\r\n }\r\n }\r\n return thumbThickness;\r\n }\r\n\r\n protected _prepareRenderingData(type: string) {\r\n // Main bar\r\n this._effectiveBarOffset = 0;\r\n this._renderLeft = this._currentMeasure.left;\r\n this._renderTop = this._currentMeasure.top;\r\n this._renderWidth = this._currentMeasure.width;\r\n this._renderHeight = this._currentMeasure.height;\r\n\r\n this._backgroundBoxLength = Math.max(this._currentMeasure.width, this._currentMeasure.height);\r\n this._backgroundBoxThickness = Math.min(this._currentMeasure.width, this._currentMeasure.height);\r\n this._effectiveThumbThickness = this._getThumbThickness(type);\r\n\r\n if (this.displayThumb) {\r\n this._backgroundBoxLength -= this._effectiveThumbThickness;\r\n }\r\n //throw error when height is less than width for vertical slider\r\n if (this.isVertical && this._currentMeasure.height < this._currentMeasure.width) {\r\n Logger.Error(\"Height should be greater than width\");\r\n return;\r\n }\r\n if (this._barOffset.isPixel) {\r\n this._effectiveBarOffset = Math.min(this._barOffset.getValue(this._host), this._backgroundBoxThickness);\r\n } else {\r\n this._effectiveBarOffset = this._backgroundBoxThickness * this._barOffset.getValue(this._host);\r\n }\r\n\r\n this._backgroundBoxThickness -= this._effectiveBarOffset * 2;\r\n\r\n if (this.isVertical) {\r\n this._renderLeft += this._effectiveBarOffset;\r\n if (!this.isThumbClamped && this.displayThumb) {\r\n this._renderTop += this._effectiveThumbThickness / 2;\r\n }\r\n\r\n this._renderHeight = this._backgroundBoxLength;\r\n this._renderWidth = this._backgroundBoxThickness;\r\n } else {\r\n this._renderTop += this._effectiveBarOffset;\r\n if (!this.isThumbClamped && this.displayThumb) {\r\n this._renderLeft += this._effectiveThumbThickness / 2;\r\n }\r\n this._renderHeight = this._backgroundBoxThickness;\r\n this._renderWidth = this._backgroundBoxLength;\r\n }\r\n }\r\n\r\n // Events\r\n private _pointerIsDown = false;\r\n\r\n /**\r\n * @internal\r\n */\r\n protected _updateValueFromPointer(x: number, y: number): void {\r\n this._invertTransformMatrix.transformCoordinates(x, y, this._transformedPosition);\r\n x = this._transformedPosition.x;\r\n y = this._transformedPosition.y;\r\n\r\n let value: number;\r\n if (this._isVertical) {\r\n value = this._minimum + (1 - (y - this._currentMeasure.top) / this._currentMeasure.height) * (this._maximum - this._minimum);\r\n } else {\r\n value = this._minimum + ((x - this._currentMeasure.left) / this._currentMeasure.width) * (this._maximum - this._minimum);\r\n }\r\n this.value = this._step ? Math.round(value / this._step) * this._step : value;\r\n }\r\n\r\n public override _onPointerDown(target: Control, coordinates: Vector2, pointerId: number, buttonIndex: number, pi: PointerInfoBase): boolean {\r\n if (!super._onPointerDown(target, coordinates, pointerId, buttonIndex, pi)) {\r\n return false;\r\n }\r\n\r\n if (this.isReadOnly) {\r\n return true;\r\n }\r\n\r\n this._pointerIsDown = true;\r\n\r\n this._updateValueFromPointer(coordinates.x, coordinates.y);\r\n this._host._capturingControl[pointerId] = this;\r\n this._lastPointerDownId = pointerId;\r\n return true;\r\n }\r\n\r\n public override _onPointerMove(target: Control, coordinates: Vector2, pointerId: number, pi: PointerInfoBase): void {\r\n // Only listen to pointer move events coming from the last pointer to click on the element (To support dual vr controller interaction)\r\n if (pointerId != this._lastPointerDownId) {\r\n return;\r\n }\r\n\r\n if (this._pointerIsDown && !this.isReadOnly) {\r\n this._updateValueFromPointer(coordinates.x, coordinates.y);\r\n }\r\n super._onPointerMove(target, coordinates, pointerId, pi);\r\n }\r\n\r\n public override _onPointerUp(target: Control, coordinates: Vector2, pointerId: number, buttonIndex: number, notifyClick: boolean): void {\r\n this._pointerIsDown = false;\r\n\r\n delete this._host._capturingControl[pointerId];\r\n super._onPointerUp(target, coordinates, pointerId, buttonIndex, notifyClick);\r\n }\r\n\r\n public override _onCanvasBlur(): void {\r\n this._forcePointerUp();\r\n super._onCanvasBlur();\r\n }\r\n}\r\n"]}
@@ -1,4 +1,4 @@
1
- import { __decorate } from "@babylonjs/core/tslib.es6.js";
1
+ import { __esDecorate, __runInitializers } from "@babylonjs/core/tslib.es6.js";
2
2
  import { BaseSlider } from "./baseSlider.js";
3
3
  import { Measure } from "../../measure.js";
4
4
  import { Image } from "../image.pure.js";
@@ -7,163 +7,174 @@ import { serialize } from "@babylonjs/core/Misc/decorators.js";
7
7
  /**
8
8
  * Class used to create slider controls based on images
9
9
  */
10
- export class ImageBasedSlider extends BaseSlider {
11
- get displayThumb() {
12
- return this._displayThumb && this.thumbImage != null;
13
- }
14
- set displayThumb(value) {
15
- if (this._displayThumb === value) {
16
- return;
17
- }
18
- this._displayThumb = value;
19
- this._markAsDirty();
20
- }
21
- /**
22
- * Gets or sets the image used to render the background
23
- */
24
- get backgroundImage() {
25
- return this._backgroundImage;
26
- }
27
- set backgroundImage(value) {
28
- if (this._backgroundImage === value) {
29
- return;
30
- }
31
- this._backgroundImage = value;
32
- if (value && !value.isLoaded) {
33
- value.onImageLoadedObservable.addOnce(() => this._markAsDirty());
34
- }
35
- this._markAsDirty();
36
- }
37
- /**
38
- * Gets or sets the image used to render the value bar
39
- */
40
- get valueBarImage() {
41
- return this._valueBarImage;
42
- }
43
- set valueBarImage(value) {
44
- if (this._valueBarImage === value) {
45
- return;
46
- }
47
- this._valueBarImage = value;
48
- if (value && !value.isLoaded) {
49
- value.onImageLoadedObservable.addOnce(() => this._markAsDirty());
50
- }
51
- this._markAsDirty();
52
- }
53
- /**
54
- * Gets or sets the image used to render the thumb
55
- */
56
- get thumbImage() {
57
- return this._thumbImage;
58
- }
59
- set thumbImage(value) {
60
- if (this._thumbImage === value) {
61
- return;
62
- }
63
- this._thumbImage = value;
64
- if (value && !value.isLoaded) {
65
- value.onImageLoadedObservable.addOnce(() => this._markAsDirty());
66
- }
67
- this._markAsDirty();
68
- }
69
- /**
70
- * Creates a new ImageBasedSlider
71
- * @param name defines the control name
72
- */
73
- constructor(name) {
74
- super(name);
75
- this.name = name;
76
- this._tempMeasure = new Measure(0, 0, 0, 0);
77
- }
78
- _getTypeName() {
79
- return "ImageBasedSlider";
80
- }
81
- _draw(context) {
82
- context.save();
83
- this._applyStates(context);
84
- this._prepareRenderingData("rectangle");
85
- const thumbPosition = this._getThumbPosition();
86
- const left = this._renderLeft;
87
- const top = this._renderTop;
88
- const width = this._renderWidth;
89
- const height = this._renderHeight;
90
- // Background
91
- if (this._backgroundImage) {
92
- this._tempMeasure.copyFromFloats(left, top, width, height);
93
- if (this.isThumbClamped && this.displayThumb) {
94
- if (this.isVertical) {
95
- this._tempMeasure.height += this._effectiveThumbThickness;
10
+ let ImageBasedSlider = (() => {
11
+ var _a;
12
+ let _classSuper = BaseSlider;
13
+ let _instanceExtraInitializers = [];
14
+ let _get_displayThumb_decorators;
15
+ return _a = class ImageBasedSlider extends _classSuper {
16
+ get displayThumb() {
17
+ return this._displayThumb && this.thumbImage != null;
18
+ }
19
+ set displayThumb(value) {
20
+ if (this._displayThumb === value) {
21
+ return;
22
+ }
23
+ this._displayThumb = value;
24
+ this._markAsDirty();
25
+ }
26
+ /**
27
+ * Gets or sets the image used to render the background
28
+ */
29
+ get backgroundImage() {
30
+ return this._backgroundImage;
31
+ }
32
+ set backgroundImage(value) {
33
+ if (this._backgroundImage === value) {
34
+ return;
96
35
  }
97
- else {
98
- this._tempMeasure.width += this._effectiveThumbThickness;
36
+ this._backgroundImage = value;
37
+ if (value && !value.isLoaded) {
38
+ value.onImageLoadedObservable.addOnce(() => this._markAsDirty());
99
39
  }
40
+ this._markAsDirty();
41
+ }
42
+ /**
43
+ * Gets or sets the image used to render the value bar
44
+ */
45
+ get valueBarImage() {
46
+ return this._valueBarImage;
100
47
  }
101
- this._backgroundImage._currentMeasure.copyFrom(this._tempMeasure);
102
- this._backgroundImage._draw(context);
103
- }
104
- // Bar
105
- if (this._valueBarImage) {
106
- if (this.isVertical) {
107
- if (this.isThumbClamped && this.displayThumb) {
108
- this._tempMeasure.copyFromFloats(left, top + thumbPosition, width, height - thumbPosition + this._effectiveThumbThickness);
48
+ set valueBarImage(value) {
49
+ if (this._valueBarImage === value) {
50
+ return;
109
51
  }
110
- else {
111
- this._tempMeasure.copyFromFloats(left, top + thumbPosition, width, height - thumbPosition);
52
+ this._valueBarImage = value;
53
+ if (value && !value.isLoaded) {
54
+ value.onImageLoadedObservable.addOnce(() => this._markAsDirty());
112
55
  }
56
+ this._markAsDirty();
113
57
  }
114
- else {
115
- if (this.isThumbClamped && this.displayThumb) {
116
- this._tempMeasure.copyFromFloats(left, top, thumbPosition + this._effectiveThumbThickness / 2, height);
58
+ /**
59
+ * Gets or sets the image used to render the thumb
60
+ */
61
+ get thumbImage() {
62
+ return this._thumbImage;
63
+ }
64
+ set thumbImage(value) {
65
+ if (this._thumbImage === value) {
66
+ return;
117
67
  }
118
- else {
119
- this._tempMeasure.copyFromFloats(left, top, thumbPosition, height);
68
+ this._thumbImage = value;
69
+ if (value && !value.isLoaded) {
70
+ value.onImageLoadedObservable.addOnce(() => this._markAsDirty());
120
71
  }
72
+ this._markAsDirty();
121
73
  }
122
- this._valueBarImage._currentMeasure.copyFrom(this._tempMeasure);
123
- this._valueBarImage._draw(context);
124
- }
125
- // Thumb
126
- if (this.displayThumb) {
127
- if (this.isVertical) {
128
- this._tempMeasure.copyFromFloats(left - this._effectiveBarOffset, this._currentMeasure.top + thumbPosition, this._currentMeasure.width, this._effectiveThumbThickness);
74
+ /**
75
+ * Creates a new ImageBasedSlider
76
+ * @param name defines the control name
77
+ */
78
+ constructor(name) {
79
+ super(name);
80
+ this.name = (__runInitializers(this, _instanceExtraInitializers), name);
81
+ this._tempMeasure = new Measure(0, 0, 0, 0);
129
82
  }
130
- else {
131
- this._tempMeasure.copyFromFloats(this._currentMeasure.left + thumbPosition, this._currentMeasure.top, this._effectiveThumbThickness, this._currentMeasure.height);
83
+ _getTypeName() {
84
+ return "ImageBasedSlider";
132
85
  }
133
- this._thumbImage._currentMeasure.copyFrom(this._tempMeasure);
134
- this._thumbImage._draw(context);
135
- }
136
- context.restore();
137
- }
138
- /**
139
- * Serializes the current control
140
- * @param serializationObject defined the JSON serialized object
141
- */
142
- serialize(serializationObject) {
143
- super.serialize(serializationObject);
144
- const backgroundImage = {};
145
- const thumbImage = {};
146
- const valueBarImage = {};
147
- this.backgroundImage.serialize(backgroundImage);
148
- this.thumbImage.serialize(thumbImage);
149
- this.valueBarImage.serialize(valueBarImage);
150
- serializationObject.backgroundImage = backgroundImage;
151
- serializationObject.thumbImage = thumbImage;
152
- serializationObject.valueBarImage = valueBarImage;
153
- }
154
- /**
155
- * @internal
156
- */
157
- _parseFromContent(serializedObject, host) {
158
- super._parseFromContent(serializedObject, host);
159
- this.backgroundImage = Image.Parse(serializedObject.backgroundImage, host);
160
- this.thumbImage = Image.Parse(serializedObject.thumbImage, host);
161
- this.valueBarImage = Image.Parse(serializedObject.valueBarImage, host);
162
- }
163
- }
164
- __decorate([
165
- serialize()
166
- ], ImageBasedSlider.prototype, "displayThumb", null);
86
+ _draw(context) {
87
+ context.save();
88
+ this._applyStates(context);
89
+ this._prepareRenderingData("rectangle");
90
+ const thumbPosition = this._getThumbPosition();
91
+ const left = this._renderLeft;
92
+ const top = this._renderTop;
93
+ const width = this._renderWidth;
94
+ const height = this._renderHeight;
95
+ // Background
96
+ if (this._backgroundImage) {
97
+ this._tempMeasure.copyFromFloats(left, top, width, height);
98
+ if (this.isThumbClamped && this.displayThumb) {
99
+ if (this.isVertical) {
100
+ this._tempMeasure.height += this._effectiveThumbThickness;
101
+ }
102
+ else {
103
+ this._tempMeasure.width += this._effectiveThumbThickness;
104
+ }
105
+ }
106
+ this._backgroundImage._currentMeasure.copyFrom(this._tempMeasure);
107
+ this._backgroundImage._draw(context);
108
+ }
109
+ // Bar
110
+ if (this._valueBarImage) {
111
+ if (this.isVertical) {
112
+ if (this.isThumbClamped && this.displayThumb) {
113
+ this._tempMeasure.copyFromFloats(left, top + thumbPosition, width, height - thumbPosition + this._effectiveThumbThickness);
114
+ }
115
+ else {
116
+ this._tempMeasure.copyFromFloats(left, top + thumbPosition, width, height - thumbPosition);
117
+ }
118
+ }
119
+ else {
120
+ if (this.isThumbClamped && this.displayThumb) {
121
+ this._tempMeasure.copyFromFloats(left, top, thumbPosition + this._effectiveThumbThickness / 2, height);
122
+ }
123
+ else {
124
+ this._tempMeasure.copyFromFloats(left, top, thumbPosition, height);
125
+ }
126
+ }
127
+ this._valueBarImage._currentMeasure.copyFrom(this._tempMeasure);
128
+ this._valueBarImage._draw(context);
129
+ }
130
+ // Thumb
131
+ if (this.displayThumb) {
132
+ if (this.isVertical) {
133
+ this._tempMeasure.copyFromFloats(left - this._effectiveBarOffset, this._currentMeasure.top + thumbPosition, this._currentMeasure.width, this._effectiveThumbThickness);
134
+ }
135
+ else {
136
+ this._tempMeasure.copyFromFloats(this._currentMeasure.left + thumbPosition, this._currentMeasure.top, this._effectiveThumbThickness, this._currentMeasure.height);
137
+ }
138
+ this._thumbImage._currentMeasure.copyFrom(this._tempMeasure);
139
+ this._thumbImage._draw(context);
140
+ }
141
+ context.restore();
142
+ }
143
+ /**
144
+ * Serializes the current control
145
+ * @param serializationObject defined the JSON serialized object
146
+ */
147
+ serialize(serializationObject) {
148
+ super.serialize(serializationObject);
149
+ const backgroundImage = {};
150
+ const thumbImage = {};
151
+ const valueBarImage = {};
152
+ this.backgroundImage.serialize(backgroundImage);
153
+ this.thumbImage.serialize(thumbImage);
154
+ this.valueBarImage.serialize(valueBarImage);
155
+ serializationObject.backgroundImage = backgroundImage;
156
+ serializationObject.thumbImage = thumbImage;
157
+ serializationObject.valueBarImage = valueBarImage;
158
+ }
159
+ /**
160
+ * @internal
161
+ */
162
+ _parseFromContent(serializedObject, host) {
163
+ super._parseFromContent(serializedObject, host);
164
+ this.backgroundImage = Image.Parse(serializedObject.backgroundImage, host);
165
+ this.thumbImage = Image.Parse(serializedObject.thumbImage, host);
166
+ this.valueBarImage = Image.Parse(serializedObject.valueBarImage, host);
167
+ }
168
+ },
169
+ (() => {
170
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
171
+ _get_displayThumb_decorators = [serialize()];
172
+ __esDecorate(_a, null, _get_displayThumb_decorators, { kind: "getter", name: "displayThumb", static: false, private: false, access: { has: obj => "displayThumb" in obj, get: obj => obj.displayThumb }, metadata: _metadata }, null, _instanceExtraInitializers);
173
+ if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
174
+ })(),
175
+ _a;
176
+ })();
177
+ export { ImageBasedSlider };
167
178
  let _Registered = false;
168
179
  /**
169
180
  * Registers the ImageBasedSlider class with the type store for serialization support.
@@ -1 +1 @@
1
- {"version":3,"file":"imageBasedSlider.pure.js","sourceRoot":"","sources":["../../../../../../dev/gui/src/2D/controls/sliders/imageBasedSlider.pure.ts"],"names":[],"mappings":"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","sourcesContent":["import { BaseSlider } from \"./baseSlider\";\r\nimport { Measure } from \"../../measure\";\r\nimport { Image } from \"../image.pure\";\r\nimport { RegisterClass } from \"core/Misc/typeStore\";\r\nimport { serialize } from \"core/Misc/decorators\";\r\nimport { type ICanvasRenderingContext } from \"core/Engines/ICanvas\";\r\nimport { type AdvancedDynamicTexture } from \"../../advancedDynamicTexture\";\r\n\r\n/**\r\n * Class used to create slider controls based on images\r\n */\r\nexport class ImageBasedSlider extends BaseSlider {\r\n private _backgroundImage: Image;\r\n private _thumbImage: Image;\r\n private _valueBarImage: Image;\r\n private _tempMeasure = new Measure(0, 0, 0, 0);\r\n\r\n @serialize()\r\n public override get displayThumb(): boolean {\r\n return this._displayThumb && this.thumbImage != null;\r\n }\r\n\r\n public override set displayThumb(value: boolean) {\r\n if (this._displayThumb === value) {\r\n return;\r\n }\r\n\r\n this._displayThumb = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /**\r\n * Gets or sets the image used to render the background\r\n */\r\n public get backgroundImage(): Image {\r\n return this._backgroundImage;\r\n }\r\n\r\n public set backgroundImage(value: Image) {\r\n if (this._backgroundImage === value) {\r\n return;\r\n }\r\n\r\n this._backgroundImage = value;\r\n\r\n if (value && !value.isLoaded) {\r\n value.onImageLoadedObservable.addOnce(() => this._markAsDirty());\r\n }\r\n\r\n this._markAsDirty();\r\n }\r\n\r\n /**\r\n * Gets or sets the image used to render the value bar\r\n */\r\n public get valueBarImage(): Image {\r\n return this._valueBarImage;\r\n }\r\n\r\n public set valueBarImage(value: Image) {\r\n if (this._valueBarImage === value) {\r\n return;\r\n }\r\n\r\n this._valueBarImage = value;\r\n\r\n if (value && !value.isLoaded) {\r\n value.onImageLoadedObservable.addOnce(() => this._markAsDirty());\r\n }\r\n\r\n this._markAsDirty();\r\n }\r\n\r\n /**\r\n * Gets or sets the image used to render the thumb\r\n */\r\n public get thumbImage(): Image {\r\n return this._thumbImage;\r\n }\r\n\r\n public set thumbImage(value: Image) {\r\n if (this._thumbImage === value) {\r\n return;\r\n }\r\n\r\n this._thumbImage = value;\r\n\r\n if (value && !value.isLoaded) {\r\n value.onImageLoadedObservable.addOnce(() => this._markAsDirty());\r\n }\r\n\r\n this._markAsDirty();\r\n }\r\n\r\n /**\r\n * Creates a new ImageBasedSlider\r\n * @param name defines the control name\r\n */\r\n constructor(public override name?: string) {\r\n super(name);\r\n }\r\n\r\n protected override _getTypeName(): string {\r\n return \"ImageBasedSlider\";\r\n }\r\n\r\n public override _draw(context: ICanvasRenderingContext): void {\r\n context.save();\r\n\r\n this._applyStates(context);\r\n\r\n this._prepareRenderingData(\"rectangle\");\r\n const thumbPosition = this._getThumbPosition();\r\n const left = this._renderLeft;\r\n const top = this._renderTop;\r\n const width = this._renderWidth;\r\n const height = this._renderHeight;\r\n\r\n // Background\r\n if (this._backgroundImage) {\r\n this._tempMeasure.copyFromFloats(left, top, width, height);\r\n if (this.isThumbClamped && this.displayThumb) {\r\n if (this.isVertical) {\r\n this._tempMeasure.height += this._effectiveThumbThickness;\r\n } else {\r\n this._tempMeasure.width += this._effectiveThumbThickness;\r\n }\r\n }\r\n this._backgroundImage._currentMeasure.copyFrom(this._tempMeasure);\r\n this._backgroundImage._draw(context);\r\n }\r\n\r\n // Bar\r\n if (this._valueBarImage) {\r\n if (this.isVertical) {\r\n if (this.isThumbClamped && this.displayThumb) {\r\n this._tempMeasure.copyFromFloats(left, top + thumbPosition, width, height - thumbPosition + this._effectiveThumbThickness);\r\n } else {\r\n this._tempMeasure.copyFromFloats(left, top + thumbPosition, width, height - thumbPosition);\r\n }\r\n } else {\r\n if (this.isThumbClamped && this.displayThumb) {\r\n this._tempMeasure.copyFromFloats(left, top, thumbPosition + this._effectiveThumbThickness / 2, height);\r\n } else {\r\n this._tempMeasure.copyFromFloats(left, top, thumbPosition, height);\r\n }\r\n }\r\n this._valueBarImage._currentMeasure.copyFrom(this._tempMeasure);\r\n this._valueBarImage._draw(context);\r\n }\r\n\r\n // Thumb\r\n if (this.displayThumb) {\r\n if (this.isVertical) {\r\n this._tempMeasure.copyFromFloats(\r\n left - this._effectiveBarOffset,\r\n this._currentMeasure.top + thumbPosition,\r\n this._currentMeasure.width,\r\n this._effectiveThumbThickness\r\n );\r\n } else {\r\n this._tempMeasure.copyFromFloats(this._currentMeasure.left + thumbPosition, this._currentMeasure.top, this._effectiveThumbThickness, this._currentMeasure.height);\r\n }\r\n\r\n this._thumbImage._currentMeasure.copyFrom(this._tempMeasure);\r\n this._thumbImage._draw(context);\r\n }\r\n\r\n context.restore();\r\n }\r\n\r\n /**\r\n * Serializes the current control\r\n * @param serializationObject defined the JSON serialized object\r\n */\r\n public override serialize(serializationObject: any) {\r\n super.serialize(serializationObject);\r\n const backgroundImage = {};\r\n const thumbImage = {};\r\n const valueBarImage = {};\r\n this.backgroundImage.serialize(backgroundImage);\r\n this.thumbImage.serialize(thumbImage);\r\n this.valueBarImage.serialize(valueBarImage);\r\n serializationObject.backgroundImage = backgroundImage;\r\n serializationObject.thumbImage = thumbImage;\r\n serializationObject.valueBarImage = valueBarImage;\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public override _parseFromContent(serializedObject: any, host: AdvancedDynamicTexture) {\r\n super._parseFromContent(serializedObject, host);\r\n this.backgroundImage = Image.Parse(serializedObject.backgroundImage, host) as Image;\r\n this.thumbImage = Image.Parse(serializedObject.thumbImage, host) as Image;\r\n this.valueBarImage = Image.Parse(serializedObject.valueBarImage, host) as Image;\r\n }\r\n}\r\n\r\nlet _Registered = false;\r\n/**\r\n * Registers the ImageBasedSlider class with the type store for serialization support.\r\n * Safe to call multiple times; only the first call has an effect.\r\n */\r\nexport function RegisterImageBasedSlider(): void {\r\n if (_Registered) {\r\n return;\r\n }\r\n _Registered = true;\r\n\r\n RegisterClass(\"BABYLON.GUI.ImageBasedSlider\", ImageBasedSlider);\r\n}\r\n"]}
1
+ {"version":3,"file":"imageBasedSlider.pure.js","sourceRoot":"","sources":["../../../../../../dev/gui/src/2D/controls/sliders/imageBasedSlider.pure.ts"],"names":[],"mappings":"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","sourcesContent":["import { BaseSlider } from \"./baseSlider\";\r\nimport { Measure } from \"../../measure\";\r\nimport { Image } from \"../image.pure\";\r\nimport { RegisterClass } from \"core/Misc/typeStore\";\r\nimport { serialize } from \"core/Misc/decorators\";\r\nimport { type ICanvasRenderingContext } from \"core/Engines/ICanvas\";\r\nimport { type AdvancedDynamicTexture } from \"../../advancedDynamicTexture\";\r\n\r\n/**\r\n * Class used to create slider controls based on images\r\n */\r\nexport class ImageBasedSlider extends BaseSlider {\r\n private _backgroundImage: Image;\r\n private _thumbImage: Image;\r\n private _valueBarImage: Image;\r\n private _tempMeasure = new Measure(0, 0, 0, 0);\r\n\r\n @serialize()\r\n public override get displayThumb(): boolean {\r\n return this._displayThumb && this.thumbImage != null;\r\n }\r\n\r\n public override set displayThumb(value: boolean) {\r\n if (this._displayThumb === value) {\r\n return;\r\n }\r\n\r\n this._displayThumb = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /**\r\n * Gets or sets the image used to render the background\r\n */\r\n public get backgroundImage(): Image {\r\n return this._backgroundImage;\r\n }\r\n\r\n public set backgroundImage(value: Image) {\r\n if (this._backgroundImage === value) {\r\n return;\r\n }\r\n\r\n this._backgroundImage = value;\r\n\r\n if (value && !value.isLoaded) {\r\n value.onImageLoadedObservable.addOnce(() => this._markAsDirty());\r\n }\r\n\r\n this._markAsDirty();\r\n }\r\n\r\n /**\r\n * Gets or sets the image used to render the value bar\r\n */\r\n public get valueBarImage(): Image {\r\n return this._valueBarImage;\r\n }\r\n\r\n public set valueBarImage(value: Image) {\r\n if (this._valueBarImage === value) {\r\n return;\r\n }\r\n\r\n this._valueBarImage = value;\r\n\r\n if (value && !value.isLoaded) {\r\n value.onImageLoadedObservable.addOnce(() => this._markAsDirty());\r\n }\r\n\r\n this._markAsDirty();\r\n }\r\n\r\n /**\r\n * Gets or sets the image used to render the thumb\r\n */\r\n public get thumbImage(): Image {\r\n return this._thumbImage;\r\n }\r\n\r\n public set thumbImage(value: Image) {\r\n if (this._thumbImage === value) {\r\n return;\r\n }\r\n\r\n this._thumbImage = value;\r\n\r\n if (value && !value.isLoaded) {\r\n value.onImageLoadedObservable.addOnce(() => this._markAsDirty());\r\n }\r\n\r\n this._markAsDirty();\r\n }\r\n\r\n /**\r\n * Creates a new ImageBasedSlider\r\n * @param name defines the control name\r\n */\r\n constructor(public override name?: string) {\r\n super(name);\r\n }\r\n\r\n protected override _getTypeName(): string {\r\n return \"ImageBasedSlider\";\r\n }\r\n\r\n public override _draw(context: ICanvasRenderingContext): void {\r\n context.save();\r\n\r\n this._applyStates(context);\r\n\r\n this._prepareRenderingData(\"rectangle\");\r\n const thumbPosition = this._getThumbPosition();\r\n const left = this._renderLeft;\r\n const top = this._renderTop;\r\n const width = this._renderWidth;\r\n const height = this._renderHeight;\r\n\r\n // Background\r\n if (this._backgroundImage) {\r\n this._tempMeasure.copyFromFloats(left, top, width, height);\r\n if (this.isThumbClamped && this.displayThumb) {\r\n if (this.isVertical) {\r\n this._tempMeasure.height += this._effectiveThumbThickness;\r\n } else {\r\n this._tempMeasure.width += this._effectiveThumbThickness;\r\n }\r\n }\r\n this._backgroundImage._currentMeasure.copyFrom(this._tempMeasure);\r\n this._backgroundImage._draw(context);\r\n }\r\n\r\n // Bar\r\n if (this._valueBarImage) {\r\n if (this.isVertical) {\r\n if (this.isThumbClamped && this.displayThumb) {\r\n this._tempMeasure.copyFromFloats(left, top + thumbPosition, width, height - thumbPosition + this._effectiveThumbThickness);\r\n } else {\r\n this._tempMeasure.copyFromFloats(left, top + thumbPosition, width, height - thumbPosition);\r\n }\r\n } else {\r\n if (this.isThumbClamped && this.displayThumb) {\r\n this._tempMeasure.copyFromFloats(left, top, thumbPosition + this._effectiveThumbThickness / 2, height);\r\n } else {\r\n this._tempMeasure.copyFromFloats(left, top, thumbPosition, height);\r\n }\r\n }\r\n this._valueBarImage._currentMeasure.copyFrom(this._tempMeasure);\r\n this._valueBarImage._draw(context);\r\n }\r\n\r\n // Thumb\r\n if (this.displayThumb) {\r\n if (this.isVertical) {\r\n this._tempMeasure.copyFromFloats(\r\n left - this._effectiveBarOffset,\r\n this._currentMeasure.top + thumbPosition,\r\n this._currentMeasure.width,\r\n this._effectiveThumbThickness\r\n );\r\n } else {\r\n this._tempMeasure.copyFromFloats(this._currentMeasure.left + thumbPosition, this._currentMeasure.top, this._effectiveThumbThickness, this._currentMeasure.height);\r\n }\r\n\r\n this._thumbImage._currentMeasure.copyFrom(this._tempMeasure);\r\n this._thumbImage._draw(context);\r\n }\r\n\r\n context.restore();\r\n }\r\n\r\n /**\r\n * Serializes the current control\r\n * @param serializationObject defined the JSON serialized object\r\n */\r\n public override serialize(serializationObject: any) {\r\n super.serialize(serializationObject);\r\n const backgroundImage = {};\r\n const thumbImage = {};\r\n const valueBarImage = {};\r\n this.backgroundImage.serialize(backgroundImage);\r\n this.thumbImage.serialize(thumbImage);\r\n this.valueBarImage.serialize(valueBarImage);\r\n serializationObject.backgroundImage = backgroundImage;\r\n serializationObject.thumbImage = thumbImage;\r\n serializationObject.valueBarImage = valueBarImage;\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public override _parseFromContent(serializedObject: any, host: AdvancedDynamicTexture) {\r\n super._parseFromContent(serializedObject, host);\r\n this.backgroundImage = Image.Parse(serializedObject.backgroundImage, host) as Image;\r\n this.thumbImage = Image.Parse(serializedObject.thumbImage, host) as Image;\r\n this.valueBarImage = Image.Parse(serializedObject.valueBarImage, host) as Image;\r\n }\r\n}\r\n\r\nlet _Registered = false;\r\n/**\r\n * Registers the ImageBasedSlider class with the type store for serialization support.\r\n * Safe to call multiple times; only the first call has an effect.\r\n */\r\nexport function RegisterImageBasedSlider(): void {\r\n if (_Registered) {\r\n return;\r\n }\r\n _Registered = true;\r\n\r\n RegisterClass(\"BABYLON.GUI.ImageBasedSlider\", ImageBasedSlider);\r\n}\r\n"]}