@babylonjs/gui 5.0.0-alpha.9 → 5.0.0-beta.4
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.
- package/2D/adtInstrumentation.js +1 -1
- package/2D/advancedDynamicTexture.d.ts +165 -125
- package/2D/advancedDynamicTexture.js +347 -183
- package/2D/advancedDynamicTexture.js.map +1 -1
- package/2D/controls/button.d.ts +8 -0
- package/2D/controls/button.js +33 -10
- package/2D/controls/button.js.map +1 -1
- package/2D/controls/checkbox.d.ts +2 -1
- package/2D/controls/checkbox.js +10 -8
- package/2D/controls/checkbox.js.map +1 -1
- package/2D/controls/colorpicker.d.ts +4 -3
- package/2D/controls/colorpicker.js +40 -23
- package/2D/controls/colorpicker.js.map +1 -1
- package/2D/controls/container.d.ts +16 -5
- package/2D/controls/container.js +91 -13
- package/2D/controls/container.js.map +1 -1
- package/2D/controls/control.d.ts +112 -44
- package/2D/controls/control.js +291 -129
- package/2D/controls/control.js.map +1 -1
- package/2D/controls/displayGrid.d.ts +2 -1
- package/2D/controls/displayGrid.js +6 -6
- package/2D/controls/displayGrid.js.map +1 -1
- package/2D/controls/ellipse.d.ts +5 -3
- package/2D/controls/ellipse.js +9 -5
- package/2D/controls/ellipse.js.map +1 -1
- package/2D/controls/focusableButton.d.ts +1 -0
- package/2D/controls/focusableButton.js +9 -6
- package/2D/controls/focusableButton.js.map +1 -1
- package/2D/controls/grid.d.ts +13 -2
- package/2D/controls/grid.js +108 -24
- package/2D/controls/grid.js.map +1 -1
- package/2D/controls/image.d.ts +5 -4
- package/2D/controls/image.js +52 -31
- package/2D/controls/image.js.map +1 -1
- package/2D/controls/index.js +29 -29
- package/2D/controls/inputPassword.js +4 -4
- package/2D/controls/inputPassword.js.map +1 -1
- package/2D/controls/inputText.d.ts +2 -1
- package/2D/controls/inputText.js +40 -14
- package/2D/controls/inputText.js.map +1 -1
- package/2D/controls/line.d.ts +3 -2
- package/2D/controls/line.js +8 -8
- package/2D/controls/line.js.map +1 -1
- package/2D/controls/multiLine.d.ts +4 -3
- package/2D/controls/multiLine.js +6 -6
- package/2D/controls/multiLine.js.map +1 -1
- package/2D/controls/radioButton.d.ts +2 -1
- package/2D/controls/radioButton.js +10 -7
- package/2D/controls/radioButton.js.map +1 -1
- package/2D/controls/rectangle.d.ts +8 -3
- package/2D/controls/rectangle.js +21 -5
- package/2D/controls/rectangle.js.map +1 -1
- package/2D/controls/scrollViewers/scrollViewer.d.ts +3 -2
- package/2D/controls/scrollViewers/scrollViewer.js +9 -9
- package/2D/controls/scrollViewers/scrollViewer.js.map +1 -1
- package/2D/controls/scrollViewers/scrollViewerWindow.d.ts +4 -3
- package/2D/controls/scrollViewers/scrollViewerWindow.js +4 -4
- package/2D/controls/scrollViewers/scrollViewerWindow.js.map +1 -1
- package/2D/controls/selector.js +8 -8
- package/2D/controls/selector.js.map +1 -1
- package/2D/controls/sliders/baseSlider.d.ts +1 -1
- package/2D/controls/sliders/baseSlider.js +12 -10
- package/2D/controls/sliders/baseSlider.js.map +1 -1
- package/2D/controls/sliders/imageBasedSlider.d.ts +10 -1
- package/2D/controls/sliders/imageBasedSlider.js +29 -5
- package/2D/controls/sliders/imageBasedSlider.js.map +1 -1
- package/2D/controls/sliders/imageScrollBar.d.ts +2 -1
- package/2D/controls/sliders/imageScrollBar.js +3 -3
- package/2D/controls/sliders/imageScrollBar.js.map +1 -1
- package/2D/controls/sliders/scrollBar.d.ts +2 -1
- package/2D/controls/sliders/scrollBar.js +3 -3
- package/2D/controls/sliders/scrollBar.js.map +1 -1
- package/2D/controls/sliders/slider.d.ts +2 -1
- package/2D/controls/sliders/slider.js +4 -4
- package/2D/controls/sliders/slider.js.map +1 -1
- package/2D/controls/stackPanel.d.ts +10 -3
- package/2D/controls/stackPanel.js +35 -13
- package/2D/controls/stackPanel.js.map +1 -1
- package/2D/controls/statics.js +3 -3
- package/2D/controls/statics.js.map +1 -1
- package/2D/controls/textBlock.d.ts +16 -9
- package/2D/controls/textBlock.js +75 -34
- package/2D/controls/textBlock.js.map +1 -1
- package/2D/controls/textWrapper.js +2 -2
- package/2D/controls/textWrapper.js.map +1 -1
- package/2D/controls/toggleButton.d.ts +1 -13
- package/2D/controls/toggleButton.js +29 -38
- package/2D/controls/toggleButton.js.map +1 -1
- package/2D/controls/virtualKeyboard.js +5 -5
- package/2D/controls/virtualKeyboard.js.map +1 -1
- package/2D/index.d.ts +1 -1
- package/2D/index.js +9 -9
- package/2D/index.js.map +1 -1
- package/2D/math2D.d.ts +5 -0
- package/2D/math2D.js +14 -2
- package/2D/math2D.js.map +1 -1
- package/2D/measure.js +1 -1
- package/2D/measure.js.map +1 -1
- package/2D/multiLinePoint.js +3 -3
- package/2D/style.js +2 -2
- package/2D/valueAndUnit.d.ts +21 -6
- package/2D/valueAndUnit.js +57 -13
- package/2D/valueAndUnit.js.map +1 -1
- package/2D/xmlLoader.d.ts +17 -3
- package/2D/xmlLoader.js +54 -15
- package/2D/xmlLoader.js.map +1 -1
- package/3D/behaviors/defaultBehavior.d.ts +73 -0
- package/3D/behaviors/defaultBehavior.js +122 -0
- package/3D/behaviors/defaultBehavior.js.map +1 -0
- package/3D/controls/abstractButton3D.d.ts +2 -2
- package/3D/controls/abstractButton3D.js +3 -3
- package/3D/controls/abstractButton3D.js.map +1 -1
- package/3D/controls/button3D.d.ts +0 -24
- package/3D/controls/button3D.js +15 -84
- package/3D/controls/button3D.js.map +1 -1
- package/3D/controls/container3D.js +2 -2
- package/3D/controls/contentDisplay3D.d.ts +30 -0
- package/3D/controls/contentDisplay3D.js +79 -0
- package/3D/controls/contentDisplay3D.js.map +1 -0
- package/3D/controls/control3D.d.ts +10 -7
- package/3D/controls/control3D.js +27 -19
- package/3D/controls/control3D.js.map +1 -1
- package/3D/controls/cylinderPanel.js +5 -5
- package/3D/controls/handMenu.d.ts +28 -0
- package/3D/controls/handMenu.js +48 -0
- package/3D/controls/handMenu.js.map +1 -0
- package/3D/controls/holographicBackplate.d.ts +48 -0
- package/3D/controls/holographicBackplate.js +121 -0
- package/3D/controls/holographicBackplate.js.map +1 -0
- package/3D/controls/holographicButton.d.ts +1 -1
- package/3D/controls/holographicButton.js +35 -31
- package/3D/controls/holographicButton.js.map +1 -1
- package/3D/controls/holographicSlate.d.ts +118 -0
- package/3D/controls/holographicSlate.js +366 -0
- package/3D/controls/holographicSlate.js.map +1 -0
- package/3D/controls/index.d.ts +6 -0
- package/3D/controls/index.js +21 -15
- package/3D/controls/index.js.map +1 -1
- package/3D/controls/meshButton3D.js +2 -2
- package/3D/controls/meshButton3D.js.map +1 -1
- package/3D/controls/nearMenu.d.ts +44 -0
- package/3D/controls/nearMenu.js +113 -0
- package/3D/controls/nearMenu.js.map +1 -0
- package/3D/controls/planePanel.js +3 -3
- package/3D/controls/scatterPanel.js +4 -4
- package/3D/controls/slider3D.d.ts +80 -0
- package/3D/controls/slider3D.js +268 -0
- package/3D/controls/slider3D.js.map +1 -0
- package/3D/controls/spherePanel.js +5 -5
- package/3D/controls/stackPanel3D.js +3 -3
- package/3D/controls/touchButton3D.d.ts +30 -21
- package/3D/controls/touchButton3D.js +109 -223
- package/3D/controls/touchButton3D.js.map +1 -1
- package/3D/controls/touchHolographicButton.d.ts +23 -2
- package/3D/controls/touchHolographicButton.js +162 -67
- package/3D/controls/touchHolographicButton.js.map +1 -1
- package/3D/controls/touchHolographicMenu.d.ts +61 -0
- package/3D/controls/touchHolographicMenu.js +149 -0
- package/3D/controls/touchHolographicMenu.js.map +1 -0
- package/3D/controls/touchMeshButton3D.d.ts +3 -6
- package/3D/controls/touchMeshButton3D.js +6 -14
- package/3D/controls/touchMeshButton3D.js.map +1 -1
- package/3D/controls/volumeBasedPanel.d.ts +1 -1
- package/3D/controls/volumeBasedPanel.js +5 -5
- package/3D/controls/volumeBasedPanel.js.map +1 -1
- package/3D/gizmos/gizmoHandle.d.ts +108 -0
- package/3D/gizmos/gizmoHandle.js +210 -0
- package/3D/gizmos/gizmoHandle.js.map +1 -0
- package/3D/gizmos/index.d.ts +2 -0
- package/3D/gizmos/index.js +3 -0
- package/3D/gizmos/index.js.map +1 -0
- package/3D/gizmos/slateGizmo.d.ts +59 -0
- package/3D/gizmos/slateGizmo.js +364 -0
- package/3D/gizmos/slateGizmo.js.map +1 -0
- package/3D/gui3DManager.d.ts +15 -2
- package/3D/gui3DManager.js +62 -41
- package/3D/gui3DManager.js.map +1 -1
- package/3D/index.d.ts +3 -2
- package/3D/index.js +5 -4
- package/3D/index.js.map +1 -1
- package/3D/materials/fluent/fluentMaterial.d.ts +90 -0
- package/3D/materials/fluent/fluentMaterial.js +282 -0
- package/3D/materials/fluent/fluentMaterial.js.map +1 -0
- package/3D/materials/fluent/index.d.ts +1 -0
- package/3D/materials/fluent/index.js +2 -0
- package/3D/materials/fluent/index.js.map +1 -0
- package/3D/materials/{shaders → fluent/shaders}/fluent.fragment.d.ts +0 -0
- package/3D/materials/fluent/shaders/fluent.fragment.js +7 -0
- package/3D/materials/fluent/shaders/fluent.fragment.js.map +1 -0
- package/3D/materials/{shaders → fluent/shaders}/fluent.vertex.d.ts +0 -0
- package/3D/materials/{shaders → fluent/shaders}/fluent.vertex.js +2 -2
- package/3D/materials/fluent/shaders/fluent.vertex.js.map +1 -0
- package/3D/materials/fluentBackplate/fluentBackplateMaterial.d.ts +154 -0
- package/3D/materials/fluentBackplate/fluentBackplateMaterial.js +435 -0
- package/3D/materials/fluentBackplate/fluentBackplateMaterial.js.map +1 -0
- package/3D/materials/fluentBackplate/index.d.ts +1 -0
- package/3D/materials/fluentBackplate/index.js +2 -0
- package/3D/materials/fluentBackplate/index.js.map +1 -0
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.d.ts +5 -0
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.js +7 -0
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.js.map +1 -0
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.d.ts +5 -0
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.js +7 -0
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.js.map +1 -0
- package/3D/materials/fluentButton/fluentButtonMaterial.d.ts +189 -0
- package/3D/materials/fluentButton/fluentButtonMaterial.js +538 -0
- package/3D/materials/fluentButton/fluentButtonMaterial.js.map +1 -0
- package/3D/materials/fluentButton/index.d.ts +1 -0
- package/3D/materials/fluentButton/index.js +2 -0
- package/3D/materials/fluentButton/index.js.map +1 -0
- package/3D/materials/fluentButton/shaders/fluentButton.fragment.d.ts +5 -0
- package/3D/materials/fluentButton/shaders/fluentButton.fragment.js +7 -0
- package/3D/materials/fluentButton/shaders/fluentButton.fragment.js.map +1 -0
- package/3D/materials/fluentButton/shaders/fluentButton.vertex.d.ts +5 -0
- package/3D/materials/fluentButton/shaders/fluentButton.vertex.js +7 -0
- package/3D/materials/fluentButton/shaders/fluentButton.vertex.js.map +1 -0
- package/3D/materials/fluentMaterial.d.ts +2 -88
- package/3D/materials/fluentMaterial.js +2 -277
- package/3D/materials/fluentMaterial.js.map +1 -1
- package/3D/materials/handle/handleMaterial.d.ts +68 -0
- package/3D/materials/handle/handleMaterial.js +127 -0
- package/3D/materials/handle/handleMaterial.js.map +1 -0
- package/3D/materials/handle/index.d.ts +1 -0
- package/3D/materials/handle/index.js +2 -0
- package/3D/materials/handle/index.js.map +1 -0
- package/3D/materials/handle/shaders/handle.fragment.d.ts +5 -0
- package/3D/materials/handle/shaders/handle.fragment.js +7 -0
- package/3D/materials/handle/shaders/handle.fragment.js.map +1 -0
- package/3D/materials/handle/shaders/handle.vertex.d.ts +5 -0
- package/3D/materials/handle/shaders/handle.vertex.js +7 -0
- package/3D/materials/handle/shaders/handle.vertex.js.map +1 -0
- package/3D/materials/index.d.ts +5 -1
- package/3D/materials/index.js +5 -1
- package/3D/materials/index.js.map +1 -1
- package/3D/materials/mrdl/index.d.ts +3 -0
- package/3D/materials/mrdl/index.js +4 -0
- package/3D/materials/mrdl/index.js.map +1 -0
- package/3D/materials/mrdl/mrdlBackplateMaterial.d.ts +147 -0
- package/3D/materials/mrdl/mrdlBackplateMaterial.js +410 -0
- package/3D/materials/mrdl/mrdlBackplateMaterial.js.map +1 -0
- package/3D/materials/mrdl/mrdlSliderBarMaterial.d.ts +333 -0
- package/3D/materials/mrdl/mrdlSliderBarMaterial.js +787 -0
- package/3D/materials/mrdl/mrdlSliderBarMaterial.js.map +1 -0
- package/3D/materials/mrdl/mrdlSliderThumbMaterial.d.ts +333 -0
- package/3D/materials/mrdl/mrdlSliderThumbMaterial.js +787 -0
- package/3D/materials/mrdl/mrdlSliderThumbMaterial.js.map +1 -0
- package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.d.ts +5 -0
- package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.js +7 -0
- package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.js.map +1 -0
- package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.d.ts +5 -0
- package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.js +7 -0
- package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.js.map +1 -0
- package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.d.ts +5 -0
- package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.js +7 -0
- package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.js.map +1 -0
- package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.d.ts +5 -0
- package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.js +7 -0
- package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.js.map +1 -0
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.d.ts +5 -0
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.js +7 -0
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.js.map +1 -0
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.d.ts +5 -0
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.js +7 -0
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.js.map +1 -0
- package/3D/vector3WithInfo.js +1 -1
- package/index.d.ts +2 -2
- package/index.js +2 -2
- package/index.js.map +1 -1
- package/legacy/legacy.js +2 -2
- package/package.json +114 -9
- package/3D/materials/shaders/fluent.fragment.js +0 -7
- package/3D/materials/shaders/fluent.fragment.js.map +0 -1
- package/3D/materials/shaders/fluent.vertex.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multiLine.js","sourceRoot":"","sources":["../../../../sourceES6/gui/src/2D/controls/multiLine.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAEnE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE5D,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAE5D;;GAEG;AACH;IAA+B,6BAAO;IAWlC;;;OAGG;IACH,mBAAmB,IAAa;QAAhC,YACI,kBAAM,IAAI,CAAC,SASd;QAVkB,UAAI,GAAJ,IAAI,CAAS;QAbxB,gBAAU,GAAW,CAAC,CAAC;QAqD/B,8CAA8C;QACvC,mBAAa,GAAG;YACnB,KAAI,CAAC,YAAY,EAAE,CAAC;QACxB,CAAC,CAAA;QAxCG,KAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,KAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,KAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,yBAAyB,CAAC;QAC9D,KAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,sBAAsB,CAAC;QAEzD,KAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,KAAI,CAAC,OAAO,GAAG,EAAE,CAAC;;IACtB,CAAC;IAID,sBAAW,2BAAI;QAFf,gCAAgC;aAEhC;YACI,OAAO,IAAI,CAAC,KAAK,CAAC;QACtB,CAAC;aAED,UAAgB,KAAoB;YAChC,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE;gBACtB,OAAO;aACV;YAED,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,YAAY,EAAE,CAAC;QACxB,CAAC;;;OATA;IAWD;;;;OAIG;IACI,yBAAK,GAAZ,UAAa,KAAa;QACtB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACtB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;SAClD;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAmB,CAAC;IACjD,CAAC;IAOD;;;;OAIG;IACI,uBAAG,GAAV;QAAA,iBAEC;QAFU,eAAiF;aAAjF,UAAiF,EAAjF,qBAAiF,EAAjF,IAAiF;YAAjF,0BAAiF;;QACxF,OAAO,KAAK,CAAC,GAAG,CAAC,UAAC,IAAI,IAAK,OAAA,KAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAf,CAAe,CAAC,CAAC;IAChD,CAAC;IAED;;;;OAIG;IACI,wBAAI,GAAX,UAAY,IAA4E;QACpF,IAAI,KAAK,GAAmB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAE5D,IAAI,IAAI,IAAI,IAAI,EAAE;YAAE,OAAO,KAAK,CAAC;SAAE;QAEnC,IAAI,IAAI,YAAY,YAAY,EAAE;YAC9B,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;SACrB;aACI,IAAI,IAAI,YAAY,OAAO,EAAE;YAC9B,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;SACxB;aACI,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE;YACvC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YACjB,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;SACpB;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;OAGG;IACI,0BAAM,GAAb,UAAc,KAA8B;QACxC,IAAI,KAAa,CAAC;QAElB,IAAI,KAAK,YAAY,cAAc,EAAE;YACjC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAEpC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;gBACd,OAAO;aACV;SACJ;aACI;YACD,KAAK,GAAG,KAAK,CAAC;SACjB;QAED,IAAI,KAAK,GAA6B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAE1D,IAAI,CAAC,KAAK,EAAE;YACR,OAAO;SACV;QAED,KAAK,CAAC,OAAO,EAAE,CAAC;QAEhB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACI,yBAAK,GAAZ;QACI,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;SACxC;IACL,CAAC;IAED;;OAEG;IACI,8BAAU,GAAjB;QACI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAC,KAAK;YACvB,IAAI,KAAK,IAAI,IAAI,EAAE;gBAAE,KAAK,CAAC,UAAU,EAAE,CAAC;aAAE;QAC9C,CAAC,CAAC,CAAC;IACP,CAAC;IAGD,sBAAW,gCAAS;QADpB,8BAA8B;aAC9B;YACI,OAAO,IAAI,CAAC,UAAU,CAAC;QAC3B,CAAC;aAED,UAAqB,KAAa;YAC9B,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,EAAE;gBAC3B,OAAO;aACV;YAED,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,YAAY,EAAE,CAAC;QACxB,CAAC;;;OATA;IAWD,sBAAW,0CAAmB;aAA9B,UAA+B,KAAa;YACxC,OAAO;QACX,CAAC;;;OAAA;IAED,sBAAW,wCAAiB;aAA5B,UAA6B,KAAa;YACtC,OAAO;QACX,CAAC;;;OAAA;IAES,gCAAY,GAAtB;QACI,OAAO,WAAW,CAAC;IACvB,CAAC;IAEM,yBAAK,GAAZ,UAAa,OAAiC,EAAE,oBAAwC;QACpF,OAAO,CAAC,IAAI,EAAE,CAAC;QAEf,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,EAAE;YAC7D,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YACvC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACrC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;YAC3C,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;SAC9C;QAED,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAE3B,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC;QACjC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;QACpC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEhC,OAAO,CAAC,SAAS,EAAE,CAAC;QAEpB,IAAI,KAAK,GAAY,IAAI,CAAC,CAAC,kCAAkC;QAC7D,IAAI,aAAsB,CAAC;QAE3B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAC,KAAK;YACvB,IAAI,CAAC,KAAK,EAAE;gBACR,OAAO;aACV;YAED,IAAI,KAAK,EAAE;gBACP,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAE/C,KAAK,GAAG,KAAK,CAAC;aACjB;iBACI;gBACD,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,CAAC,GAAG,CAAC,EAAE;oBAC3C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;iBAClD;qBAAM;oBACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;iBAClD;aACJ;YACD,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,MAAM,EAAE,CAAC;QAEjB,OAAO,CAAC,OAAO,EAAE,CAAC;IACtB,CAAC;IAES,yCAAqB,GAA/B,UAAgC,aAAsB,EAAE,OAAiC;QAAzF,iBAuBC;QAtBG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAElB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAC,KAAK,EAAE,KAAK;YAC9B,IAAI,CAAC,KAAK,EAAE;gBACR,OAAO;aACV;YAED,KAAK,CAAC,SAAS,EAAE,CAAC;YAElB,IAAI,KAAI,CAAC,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,KAAI,CAAC,KAAK,EAAE;gBAAE,KAAI,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;aAAE;YACvF,IAAI,KAAI,CAAC,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,KAAI,CAAC,KAAK,EAAE;gBAAE,KAAI,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;aAAE;YACvF,IAAI,KAAI,CAAC,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,KAAI,CAAC,KAAK,EAAE;gBAAE,KAAI,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;aAAE;YACvF,IAAI,KAAI,CAAC,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,KAAI,CAAC,KAAK,EAAE;gBAAE,KAAI,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;aAAE;QAC3F,CAAC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE;YAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;SAAE;QAC3C,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE;YAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;SAAE;QAC3C,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE;YAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;SAAE;QAC3C,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE;YAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;SAAE;IAC/C,CAAC;IAEM,4BAAQ,GAAf;QACI,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE;YACtF,OAAO;SACV;QAED,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QACjF,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;IACtF,CAAC;IAES,qCAAiB,GAA3B,UAA4B,aAAsB,EAAE,OAAiC;QACjF,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE;YAC1C,OAAO;SACV;QAED,IAAI,CAAC,eAAe,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QAC7D,IAAI,CAAC,eAAe,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;IAChE,CAAC;IAEM,2BAAO,GAAd;QACI,IAAI,CAAC,KAAK,EAAE,CAAC;QAEb,iBAAM,OAAO,WAAE,CAAC;IACpB,CAAC;IAtOD;QADC,SAAS,EAAE;yCAGX;IAqOL,gBAAC;CAAA,AApQD,CAA+B,OAAO,GAoQrC;SApQY,SAAS;AAqQtB,UAAU,CAAC,eAAe,CAAC,uBAAuB,CAAC,GAAG,SAAS,CAAC","sourcesContent":["import { Nullable } from \"@babylonjs/core/types\";\r\nimport { AbstractMesh } from \"@babylonjs/core/Meshes/abstractMesh\";\r\n\r\nimport { Control } from \"./control\";\r\nimport { MultiLinePoint } from \"../multiLinePoint\";\r\nimport { Measure } from \"../measure\";\r\nimport { _TypeStore } from '@babylonjs/core/Misc/typeStore';\r\nimport { Vector3 } from \"@babylonjs/core/Maths/math.vector\";\r\nimport { serialize } from '@babylonjs/core/Misc/decorators';\r\n\r\n/**\r\n * Class used to create multi line control\r\n */\r\nexport class MultiLine extends Control {\r\n\r\n private _lineWidth: number = 1;\r\n private _dash: number[];\r\n private _points: Nullable<MultiLinePoint>[];\r\n\r\n private _minX: Nullable<number>;\r\n private _minY: Nullable<number>;\r\n private _maxX: Nullable<number>;\r\n private _maxY: Nullable<number>;\r\n\r\n /**\r\n * Creates a new MultiLine\r\n * @param name defines the control name\r\n */\r\n constructor(public name?: string) {\r\n super(name);\r\n\r\n this._automaticSize = true;\r\n this.isHitTestVisible = false;\r\n this._horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n this._verticalAlignment = Control.VERTICAL_ALIGNMENT_TOP;\r\n\r\n this._dash = [];\r\n this._points = [];\r\n }\r\n\r\n /** Gets or sets dash pattern */\r\n @serialize()\r\n public get dash(): Array<number> {\r\n return this._dash;\r\n }\r\n\r\n public set dash(value: Array<number>) {\r\n if (this._dash === value) {\r\n return;\r\n }\r\n\r\n this._dash = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /**\r\n * Gets point stored at specified index\r\n * @param index defines the index to look for\r\n * @returns the requested point if found\r\n */\r\n public getAt(index: number): MultiLinePoint {\r\n if (!this._points[index]) {\r\n this._points[index] = new MultiLinePoint(this);\r\n }\r\n\r\n return this._points[index] as MultiLinePoint;\r\n }\r\n\r\n /** Function called when a point is updated */\r\n public onPointUpdate = (): void => {\r\n this._markAsDirty();\r\n }\r\n\r\n /**\r\n * Adds new points to the point collection\r\n * @param items defines the list of items (mesh, control or 2d coordiantes) to add\r\n * @returns the list of created MultiLinePoint\r\n */\r\n public add(...items: (AbstractMesh | Control | { x: string | number, y: string | number })[]): MultiLinePoint[] {\r\n return items.map((item) => this.push(item));\r\n }\r\n\r\n /**\r\n * Adds a new point to the point collection\r\n * @param item defines the item (mesh, control or 2d coordiantes) to add\r\n * @returns the created MultiLinePoint\r\n */\r\n public push(item?: (AbstractMesh | Control | { x: string | number, y: string | number })): MultiLinePoint {\r\n var point: MultiLinePoint = this.getAt(this._points.length);\r\n\r\n if (item == null) { return point; }\r\n\r\n if (item instanceof AbstractMesh) {\r\n point.mesh = item;\r\n }\r\n else if (item instanceof Control) {\r\n point.control = item;\r\n }\r\n else if (item.x != null && item.y != null) {\r\n point.x = item.x;\r\n point.y = item.y;\r\n }\r\n\r\n return point;\r\n }\r\n\r\n /**\r\n * Remove a specific value or point from the active point collection\r\n * @param value defines the value or point to remove\r\n */\r\n public remove(value: number | MultiLinePoint): void {\r\n var index: number;\r\n\r\n if (value instanceof MultiLinePoint) {\r\n index = this._points.indexOf(value);\r\n\r\n if (index === -1) {\r\n return;\r\n }\r\n }\r\n else {\r\n index = value;\r\n }\r\n\r\n var point: Nullable<MultiLinePoint> = this._points[index];\r\n\r\n if (!point) {\r\n return;\r\n }\r\n\r\n point.dispose();\r\n\r\n this._points.splice(index, 1);\r\n }\r\n\r\n /**\r\n * Resets this object to initial state (no point)\r\n */\r\n public reset(): void {\r\n while (this._points.length > 0) {\r\n this.remove(this._points.length - 1);\r\n }\r\n }\r\n\r\n /**\r\n * Resets all links\r\n */\r\n public resetLinks(): void {\r\n this._points.forEach((point) => {\r\n if (point != null) { point.resetLinks(); }\r\n });\r\n }\r\n\r\n /** Gets or sets line width */\r\n public get lineWidth(): number {\r\n return this._lineWidth;\r\n }\r\n\r\n public set lineWidth(value: number) {\r\n if (this._lineWidth === value) {\r\n return;\r\n }\r\n\r\n this._lineWidth = value;\r\n this._markAsDirty();\r\n }\r\n\r\n public set horizontalAlignment(value: number) {\r\n return;\r\n }\r\n\r\n public set verticalAlignment(value: number) {\r\n return;\r\n }\r\n\r\n protected _getTypeName(): string {\r\n return \"MultiLine\";\r\n }\r\n\r\n public _draw(context: CanvasRenderingContext2D, invalidatedRectangle?: Nullable<Measure>): void {\r\n context.save();\r\n\r\n if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {\r\n context.shadowColor = this.shadowColor;\r\n context.shadowBlur = this.shadowBlur;\r\n context.shadowOffsetX = this.shadowOffsetX;\r\n context.shadowOffsetY = this.shadowOffsetY;\r\n }\r\n\r\n this._applyStates(context);\r\n\r\n context.strokeStyle = this.color;\r\n context.lineWidth = this._lineWidth;\r\n context.setLineDash(this._dash);\r\n\r\n context.beginPath();\r\n\r\n var first: boolean = true; //first index is not necessarily 0\r\n var previousPoint: Vector3;\r\n\r\n this._points.forEach((point) => {\r\n if (!point) {\r\n return;\r\n }\r\n\r\n if (first) {\r\n context.moveTo(point._point.x, point._point.y);\r\n\r\n first = false;\r\n }\r\n else {\r\n if (point._point.z < 1 && previousPoint.z < 1) {\r\n context.lineTo(point._point.x, point._point.y);\r\n } else {\r\n context.moveTo(point._point.x, point._point.y);\r\n }\r\n }\r\n previousPoint = point._point;\r\n });\r\n\r\n context.stroke();\r\n\r\n context.restore();\r\n }\r\n\r\n protected _additionalProcessing(parentMeasure: Measure, context: CanvasRenderingContext2D): void {\r\n this._minX = null;\r\n this._minY = null;\r\n this._maxX = null;\r\n this._maxY = null;\r\n\r\n this._points.forEach((point, index) => {\r\n if (!point) {\r\n return;\r\n }\r\n\r\n point.translate();\r\n\r\n if (this._minX == null || point._point.x < this._minX) { this._minX = point._point.x; }\r\n if (this._minY == null || point._point.y < this._minY) { this._minY = point._point.y; }\r\n if (this._maxX == null || point._point.x > this._maxX) { this._maxX = point._point.x; }\r\n if (this._maxY == null || point._point.y > this._maxY) { this._maxY = point._point.y; }\r\n });\r\n\r\n if (this._minX == null) { this._minX = 0; }\r\n if (this._minY == null) { this._minY = 0; }\r\n if (this._maxX == null) { this._maxX = 0; }\r\n if (this._maxY == null) { this._maxY = 0; }\r\n }\r\n\r\n public _measure(): void {\r\n if (this._minX == null || this._maxX == null || this._minY == null || this._maxY == null) {\r\n return;\r\n }\r\n\r\n this._currentMeasure.width = Math.abs(this._maxX - this._minX) + this._lineWidth;\r\n this._currentMeasure.height = Math.abs(this._maxY - this._minY) + this._lineWidth;\r\n }\r\n\r\n protected _computeAlignment(parentMeasure: Measure, context: CanvasRenderingContext2D): void {\r\n if (this._minX == null || this._minY == null) {\r\n return;\r\n }\r\n\r\n this._currentMeasure.left = this._minX - this._lineWidth / 2;\r\n this._currentMeasure.top = this._minY - this._lineWidth / 2;\r\n }\r\n\r\n public dispose(): void {\r\n this.reset();\r\n\r\n super.dispose();\r\n }\r\n}\r\n_TypeStore.RegisteredTypes[\"BABYLON.GUI.MultiLine\"] = MultiLine;\r\n"]}
|
|
1
|
+
{"version":3,"file":"multiLine.js","sourceRoot":"","sources":["../../../../sourceES6/gui/src/2D/controls/multiLine.ts"],"names":[],"mappings":"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","sourcesContent":["import { Nullable } from \"@babylonjs/core/types\";\r\nimport { AbstractMesh } from \"@babylonjs/core/Meshes/abstractMesh\";\r\n\r\nimport { Control } from \"./control\";\r\nimport { MultiLinePoint } from \"../multiLinePoint\";\r\nimport { Measure } from \"../measure\";\r\nimport { RegisterClass } from '@babylonjs/core/Misc/typeStore';\r\nimport { Vector3 } from \"@babylonjs/core/Maths/math.vector\";\r\nimport { serialize } from '@babylonjs/core/Misc/decorators';\r\nimport { ICanvasRenderingContext } from \"@babylonjs/core/Engines/ICanvas\";\r\n\r\n/**\r\n * Class used to create multi line control\r\n */\r\nexport class MultiLine extends Control {\r\n\r\n private _lineWidth: number = 1;\r\n private _dash: number[];\r\n private _points: Nullable<MultiLinePoint>[];\r\n\r\n private _minX: Nullable<number>;\r\n private _minY: Nullable<number>;\r\n private _maxX: Nullable<number>;\r\n private _maxY: Nullable<number>;\r\n\r\n /**\r\n * Creates a new MultiLine\r\n * @param name defines the control name\r\n */\r\n constructor(public name?: string) {\r\n super(name);\r\n\r\n this._automaticSize = true;\r\n this.isHitTestVisible = false;\r\n this._horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n this._verticalAlignment = Control.VERTICAL_ALIGNMENT_TOP;\r\n\r\n this._dash = [];\r\n this._points = [];\r\n }\r\n\r\n /** Gets or sets dash pattern */\r\n @serialize()\r\n public get dash(): Array<number> {\r\n return this._dash;\r\n }\r\n\r\n public set dash(value: Array<number>) {\r\n if (this._dash === value) {\r\n return;\r\n }\r\n\r\n this._dash = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /**\r\n * Gets point stored at specified index\r\n * @param index defines the index to look for\r\n * @returns the requested point if found\r\n */\r\n public getAt(index: number): MultiLinePoint {\r\n if (!this._points[index]) {\r\n this._points[index] = new MultiLinePoint(this);\r\n }\r\n\r\n return this._points[index] as MultiLinePoint;\r\n }\r\n\r\n /** Function called when a point is updated */\r\n public onPointUpdate = (): void => {\r\n this._markAsDirty();\r\n }\r\n\r\n /**\r\n * Adds new points to the point collection\r\n * @param items defines the list of items (mesh, control or 2d coordiantes) to add\r\n * @returns the list of created MultiLinePoint\r\n */\r\n public add(...items: (AbstractMesh | Control | { x: string | number, y: string | number })[]): MultiLinePoint[] {\r\n return items.map((item) => this.push(item));\r\n }\r\n\r\n /**\r\n * Adds a new point to the point collection\r\n * @param item defines the item (mesh, control or 2d coordiantes) to add\r\n * @returns the created MultiLinePoint\r\n */\r\n public push(item?: (AbstractMesh | Control | { x: string | number, y: string | number })): MultiLinePoint {\r\n var point: MultiLinePoint = this.getAt(this._points.length);\r\n\r\n if (item == null) { return point; }\r\n\r\n if (item instanceof AbstractMesh) {\r\n point.mesh = item;\r\n }\r\n else if (item instanceof Control) {\r\n point.control = item;\r\n }\r\n else if (item.x != null && item.y != null) {\r\n point.x = item.x;\r\n point.y = item.y;\r\n }\r\n\r\n return point;\r\n }\r\n\r\n /**\r\n * Remove a specific value or point from the active point collection\r\n * @param value defines the value or point to remove\r\n */\r\n public remove(value: number | MultiLinePoint): void {\r\n var index: number;\r\n\r\n if (value instanceof MultiLinePoint) {\r\n index = this._points.indexOf(value);\r\n\r\n if (index === -1) {\r\n return;\r\n }\r\n }\r\n else {\r\n index = value;\r\n }\r\n\r\n var point: Nullable<MultiLinePoint> = this._points[index];\r\n\r\n if (!point) {\r\n return;\r\n }\r\n\r\n point.dispose();\r\n\r\n this._points.splice(index, 1);\r\n }\r\n\r\n /**\r\n * Resets this object to initial state (no point)\r\n */\r\n public reset(): void {\r\n while (this._points.length > 0) {\r\n this.remove(this._points.length - 1);\r\n }\r\n }\r\n\r\n /**\r\n * Resets all links\r\n */\r\n public resetLinks(): void {\r\n this._points.forEach((point) => {\r\n if (point != null) { point.resetLinks(); }\r\n });\r\n }\r\n\r\n /** Gets or sets line width */\r\n public get lineWidth(): number {\r\n return this._lineWidth;\r\n }\r\n\r\n public set lineWidth(value: number) {\r\n if (this._lineWidth === value) {\r\n return;\r\n }\r\n\r\n this._lineWidth = value;\r\n this._markAsDirty();\r\n }\r\n\r\n public set horizontalAlignment(value: number) {\r\n return;\r\n }\r\n\r\n public set verticalAlignment(value: number) {\r\n return;\r\n }\r\n\r\n protected _getTypeName(): string {\r\n return \"MultiLine\";\r\n }\r\n\r\n public _draw(context: ICanvasRenderingContext, invalidatedRectangle?: Nullable<Measure>): void {\r\n context.save();\r\n\r\n if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {\r\n context.shadowColor = this.shadowColor;\r\n context.shadowBlur = this.shadowBlur;\r\n context.shadowOffsetX = this.shadowOffsetX;\r\n context.shadowOffsetY = this.shadowOffsetY;\r\n }\r\n\r\n this._applyStates(context);\r\n\r\n context.strokeStyle = this.color;\r\n context.lineWidth = this._lineWidth;\r\n context.setLineDash(this._dash);\r\n\r\n context.beginPath();\r\n\r\n var first: boolean = true; //first index is not necessarily 0\r\n var previousPoint: Vector3;\r\n\r\n this._points.forEach((point) => {\r\n if (!point) {\r\n return;\r\n }\r\n\r\n if (first) {\r\n context.moveTo(point._point.x, point._point.y);\r\n\r\n first = false;\r\n }\r\n else {\r\n if (point._point.z < 1 && previousPoint.z < 1) {\r\n context.lineTo(point._point.x, point._point.y);\r\n } else {\r\n context.moveTo(point._point.x, point._point.y);\r\n }\r\n }\r\n previousPoint = point._point;\r\n });\r\n\r\n context.stroke();\r\n\r\n context.restore();\r\n }\r\n\r\n protected _additionalProcessing(parentMeasure: Measure, context: ICanvasRenderingContext): void {\r\n this._minX = null;\r\n this._minY = null;\r\n this._maxX = null;\r\n this._maxY = null;\r\n\r\n this._points.forEach((point, index) => {\r\n if (!point) {\r\n return;\r\n }\r\n\r\n point.translate();\r\n\r\n if (this._minX == null || point._point.x < this._minX) { this._minX = point._point.x; }\r\n if (this._minY == null || point._point.y < this._minY) { this._minY = point._point.y; }\r\n if (this._maxX == null || point._point.x > this._maxX) { this._maxX = point._point.x; }\r\n if (this._maxY == null || point._point.y > this._maxY) { this._maxY = point._point.y; }\r\n });\r\n\r\n if (this._minX == null) { this._minX = 0; }\r\n if (this._minY == null) { this._minY = 0; }\r\n if (this._maxX == null) { this._maxX = 0; }\r\n if (this._maxY == null) { this._maxY = 0; }\r\n }\r\n\r\n public _measure(): void {\r\n if (this._minX == null || this._maxX == null || this._minY == null || this._maxY == null) {\r\n return;\r\n }\r\n\r\n this._currentMeasure.width = Math.abs(this._maxX - this._minX) + this._lineWidth;\r\n this._currentMeasure.height = Math.abs(this._maxY - this._minY) + this._lineWidth;\r\n }\r\n\r\n protected _computeAlignment(parentMeasure: Measure, context: ICanvasRenderingContext): void {\r\n if (this._minX == null || this._minY == null) {\r\n return;\r\n }\r\n\r\n this._currentMeasure.left = this._minX - this._lineWidth / 2;\r\n this._currentMeasure.top = this._minY - this._lineWidth / 2;\r\n }\r\n\r\n public dispose(): void {\r\n this.reset();\r\n\r\n super.dispose();\r\n }\r\n}\r\nRegisterClass(\"BABYLON.GUI.MultiLine\", MultiLine);\r\n"]}
|
|
@@ -3,6 +3,7 @@ import { Vector2 } from "@babylonjs/core/Maths/math.vector";
|
|
|
3
3
|
import { Control } from "./control";
|
|
4
4
|
import { StackPanel } from "./stackPanel";
|
|
5
5
|
import { PointerInfoBase } from '@babylonjs/core/Events/pointerEvents';
|
|
6
|
+
import { ICanvasRenderingContext } from "@babylonjs/core/Engines/ICanvas";
|
|
6
7
|
/**
|
|
7
8
|
* Class used to create radio button controls
|
|
8
9
|
*/
|
|
@@ -34,7 +35,7 @@ export declare class RadioButton extends Control {
|
|
|
34
35
|
*/
|
|
35
36
|
constructor(name?: string | undefined);
|
|
36
37
|
protected _getTypeName(): string;
|
|
37
|
-
_draw(context:
|
|
38
|
+
_draw(context: ICanvasRenderingContext): void;
|
|
38
39
|
_onPointerDown(target: Control, coordinates: Vector2, pointerId: number, buttonIndex: number, pi: PointerInfoBase): boolean;
|
|
39
40
|
/**
|
|
40
41
|
* Utility function to easily create a radio button with a header
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { __decorate, __extends } from "tslib";
|
|
2
|
-
import { Observable } from "@babylonjs/core/Misc/observable";
|
|
3
|
-
import { Control } from "./control";
|
|
4
|
-
import { StackPanel } from "./stackPanel";
|
|
5
|
-
import { TextBlock } from "./textBlock";
|
|
6
|
-
import {
|
|
7
|
-
import { serialize } from '@babylonjs/core/Misc/decorators';
|
|
2
|
+
import { Observable } from "@babylonjs/core/Misc/observable.js";
|
|
3
|
+
import { Control } from "./control.js";
|
|
4
|
+
import { StackPanel } from "./stackPanel.js";
|
|
5
|
+
import { TextBlock } from "./textBlock.js";
|
|
6
|
+
import { RegisterClass } from '@babylonjs/core/Misc/typeStore.js';
|
|
7
|
+
import { serialize } from '@babylonjs/core/Misc/decorators.js';
|
|
8
8
|
/**
|
|
9
9
|
* Class used to create radio button controls
|
|
10
10
|
*/
|
|
@@ -147,6 +147,9 @@ var RadioButton = /** @class */ (function (_super) {
|
|
|
147
147
|
if (!_super.prototype._onPointerDown.call(this, target, coordinates, pointerId, buttonIndex, pi)) {
|
|
148
148
|
return false;
|
|
149
149
|
}
|
|
150
|
+
if (this.isReadOnly) {
|
|
151
|
+
return true;
|
|
152
|
+
}
|
|
150
153
|
if (!this.isChecked) {
|
|
151
154
|
this.isChecked = true;
|
|
152
155
|
}
|
|
@@ -199,5 +202,5 @@ var RadioButton = /** @class */ (function (_super) {
|
|
|
199
202
|
return RadioButton;
|
|
200
203
|
}(Control));
|
|
201
204
|
export { RadioButton };
|
|
202
|
-
|
|
205
|
+
RegisterClass("BABYLON.GUI.RadioButton", RadioButton);
|
|
203
206
|
//# sourceMappingURL=radioButton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radioButton.js","sourceRoot":"","sources":["../../../../sourceES6/gui/src/2D/controls/radioButton.ts"],"names":[],"mappings":"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","sourcesContent":["import { Observable } from \"@babylonjs/core/Misc/observable\";\r\nimport { Vector2 } from \"@babylonjs/core/Maths/math.vector\";\r\n\r\nimport { Control } from \"./control\";\r\nimport { StackPanel } from \"./stackPanel\";\r\nimport { TextBlock } from \"./textBlock\";\r\nimport { _TypeStore } from '@babylonjs/core/Misc/typeStore';\r\nimport { PointerInfoBase } from '@babylonjs/core/Events/pointerEvents';\r\nimport { serialize } from '@babylonjs/core/Misc/decorators';\r\n\r\n/**\r\n * Class used to create radio button controls\r\n */\r\nexport class RadioButton extends Control {\r\n private _isChecked = false;\r\n private _background = \"black\";\r\n private _checkSizeRatio = 0.8;\r\n private _thickness = 1;\r\n\r\n /** Gets or sets border thickness */\r\n @serialize()\r\n public get thickness(): number {\r\n return this._thickness;\r\n }\r\n\r\n public set thickness(value: number) {\r\n if (this._thickness === value) {\r\n return;\r\n }\r\n\r\n this._thickness = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets group name */\r\n @serialize()\r\n public group = \"\";\r\n\r\n /** Observable raised when isChecked is changed */\r\n public onIsCheckedChangedObservable = new Observable<boolean>();\r\n\r\n /** Gets or sets a value indicating the ratio between overall size and check size */\r\n @serialize()\r\n public get checkSizeRatio(): number {\r\n return this._checkSizeRatio;\r\n }\r\n\r\n public set checkSizeRatio(value: number) {\r\n value = Math.max(Math.min(1, value), 0);\r\n\r\n if (this._checkSizeRatio === value) {\r\n return;\r\n }\r\n\r\n this._checkSizeRatio = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets background color */\r\n @serialize()\r\n public get background(): string {\r\n return this._background;\r\n }\r\n\r\n public set background(value: string) {\r\n if (this._background === value) {\r\n return;\r\n }\r\n\r\n this._background = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets a boolean indicating if the checkbox is checked or not */\r\n @serialize()\r\n public get isChecked(): boolean {\r\n return this._isChecked;\r\n }\r\n\r\n public set isChecked(value: boolean) {\r\n if (this._isChecked === value) {\r\n return;\r\n }\r\n\r\n this._isChecked = value;\r\n this._markAsDirty();\r\n\r\n this.onIsCheckedChangedObservable.notifyObservers(value);\r\n\r\n if (this._isChecked && this._host) {\r\n // Update all controls from same group\r\n this._host.executeOnAllControls((control) => {\r\n if (control === this) {\r\n return;\r\n }\r\n\r\n if ((<any>control).group === undefined) {\r\n return;\r\n }\r\n var childRadio = (<RadioButton>control);\r\n if (childRadio.group === this.group) {\r\n childRadio.isChecked = false;\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Creates a new RadioButton\r\n * @param name defines the control name\r\n */\r\n constructor(public name?: string) {\r\n super(name);\r\n\r\n this.isPointerBlocker = true;\r\n }\r\n\r\n protected _getTypeName(): string {\r\n return \"RadioButton\";\r\n }\r\n\r\n public _draw(context: CanvasRenderingContext2D): void {\r\n context.save();\r\n\r\n this._applyStates(context);\r\n let actualWidth = this._currentMeasure.width - this._thickness;\r\n let actualHeight = this._currentMeasure.height - this._thickness;\r\n\r\n if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {\r\n context.shadowColor = this.shadowColor;\r\n context.shadowBlur = this.shadowBlur;\r\n context.shadowOffsetX = this.shadowOffsetX;\r\n context.shadowOffsetY = this.shadowOffsetY;\r\n }\r\n\r\n // Outer\r\n Control.drawEllipse(this._currentMeasure.left + this._currentMeasure.width / 2, this._currentMeasure.top + this._currentMeasure.height / 2,\r\n this._currentMeasure.width / 2 - this._thickness / 2, this._currentMeasure.height / 2 - this._thickness / 2, context);\r\n\r\n context.fillStyle = this._isEnabled ? this._background : this._disabledColor;\r\n context.fill();\r\n\r\n if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {\r\n context.shadowBlur = 0;\r\n context.shadowOffsetX = 0;\r\n context.shadowOffsetY = 0;\r\n }\r\n\r\n context.strokeStyle = this.color;\r\n context.lineWidth = this._thickness;\r\n\r\n context.stroke();\r\n\r\n // Inner\r\n if (this._isChecked) {\r\n context.fillStyle = this._isEnabled ? this.color : this._disabledColor;\r\n let offsetWidth = actualWidth * this._checkSizeRatio;\r\n let offseHeight = actualHeight * this._checkSizeRatio;\r\n\r\n Control.drawEllipse(this._currentMeasure.left + this._currentMeasure.width / 2, this._currentMeasure.top + this._currentMeasure.height / 2,\r\n offsetWidth / 2 - this._thickness / 2, offseHeight / 2 - this._thickness / 2, context);\r\n\r\n context.fill();\r\n }\r\n context.restore();\r\n }\r\n\r\n // Events\r\n public _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.isChecked) {\r\n this.isChecked = true;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * Utility function to easily create a radio button with a header\r\n * @param title defines the label to use for the header\r\n * @param group defines the group to use for the radio button\r\n * @param isChecked defines the initial state of the radio button\r\n * @param onValueChanged defines the callback to call when value changes\r\n * @returns a StackPanel containing the radio button and a textBlock\r\n */\r\n public static AddRadioButtonWithHeader(title: string, group: string, isChecked: boolean, onValueChanged: (button: RadioButton, value: boolean) => void): StackPanel {\r\n var panel = new StackPanel();\r\n panel.isVertical = false;\r\n panel.height = \"30px\";\r\n\r\n var radio = new RadioButton();\r\n radio.width = \"20px\";\r\n radio.height = \"20px\";\r\n radio.isChecked = isChecked;\r\n radio.color = \"green\";\r\n radio.group = group;\r\n radio.onIsCheckedChangedObservable.add((value) => onValueChanged(radio, value));\r\n panel.addControl(radio);\r\n\r\n var header = new TextBlock();\r\n header.text = title;\r\n header.width = \"180px\";\r\n header.paddingLeft = \"5px\";\r\n header.textHorizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n header.color = \"white\";\r\n panel.addControl(header);\r\n\r\n return panel;\r\n }\r\n}\r\n_TypeStore.RegisteredTypes[\"BABYLON.GUI.RadioButton\"] = RadioButton;"]}
|
|
1
|
+
{"version":3,"file":"radioButton.js","sourceRoot":"","sources":["../../../../sourceES6/gui/src/2D/controls/radioButton.ts"],"names":[],"mappings":"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","sourcesContent":["import { Observable } from \"@babylonjs/core/Misc/observable\";\r\nimport { Vector2 } from \"@babylonjs/core/Maths/math.vector\";\r\n\r\nimport { Control } from \"./control\";\r\nimport { StackPanel } from \"./stackPanel\";\r\nimport { TextBlock } from \"./textBlock\";\r\nimport { RegisterClass } from '@babylonjs/core/Misc/typeStore';\r\nimport { PointerInfoBase } from '@babylonjs/core/Events/pointerEvents';\r\nimport { serialize } from '@babylonjs/core/Misc/decorators';\r\nimport { ICanvasRenderingContext } from \"@babylonjs/core/Engines/ICanvas\";\r\n\r\n/**\r\n * Class used to create radio button controls\r\n */\r\nexport class RadioButton extends Control {\r\n private _isChecked = false;\r\n private _background = \"black\";\r\n private _checkSizeRatio = 0.8;\r\n private _thickness = 1;\r\n\r\n /** Gets or sets border thickness */\r\n @serialize()\r\n public get thickness(): number {\r\n return this._thickness;\r\n }\r\n\r\n public set thickness(value: number) {\r\n if (this._thickness === value) {\r\n return;\r\n }\r\n\r\n this._thickness = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets group name */\r\n @serialize()\r\n public group = \"\";\r\n\r\n /** Observable raised when isChecked is changed */\r\n public onIsCheckedChangedObservable = new Observable<boolean>();\r\n\r\n /** Gets or sets a value indicating the ratio between overall size and check size */\r\n @serialize()\r\n public get checkSizeRatio(): number {\r\n return this._checkSizeRatio;\r\n }\r\n\r\n public set checkSizeRatio(value: number) {\r\n value = Math.max(Math.min(1, value), 0);\r\n\r\n if (this._checkSizeRatio === value) {\r\n return;\r\n }\r\n\r\n this._checkSizeRatio = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets background color */\r\n @serialize()\r\n public get background(): string {\r\n return this._background;\r\n }\r\n\r\n public set background(value: string) {\r\n if (this._background === value) {\r\n return;\r\n }\r\n\r\n this._background = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets a boolean indicating if the checkbox is checked or not */\r\n @serialize()\r\n public get isChecked(): boolean {\r\n return this._isChecked;\r\n }\r\n\r\n public set isChecked(value: boolean) {\r\n if (this._isChecked === value) {\r\n return;\r\n }\r\n\r\n this._isChecked = value;\r\n this._markAsDirty();\r\n\r\n this.onIsCheckedChangedObservable.notifyObservers(value);\r\n\r\n if (this._isChecked && this._host) {\r\n // Update all controls from same group\r\n this._host.executeOnAllControls((control) => {\r\n if (control === this) {\r\n return;\r\n }\r\n\r\n if ((<any>control).group === undefined) {\r\n return;\r\n }\r\n var childRadio = (<RadioButton>control);\r\n if (childRadio.group === this.group) {\r\n childRadio.isChecked = false;\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Creates a new RadioButton\r\n * @param name defines the control name\r\n */\r\n constructor(public name?: string) {\r\n super(name);\r\n\r\n this.isPointerBlocker = true;\r\n }\r\n\r\n protected _getTypeName(): string {\r\n return \"RadioButton\";\r\n }\r\n\r\n public _draw(context: ICanvasRenderingContext): void {\r\n context.save();\r\n\r\n this._applyStates(context);\r\n let actualWidth = this._currentMeasure.width - this._thickness;\r\n let actualHeight = this._currentMeasure.height - this._thickness;\r\n\r\n if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {\r\n context.shadowColor = this.shadowColor;\r\n context.shadowBlur = this.shadowBlur;\r\n context.shadowOffsetX = this.shadowOffsetX;\r\n context.shadowOffsetY = this.shadowOffsetY;\r\n }\r\n\r\n // Outer\r\n Control.drawEllipse(this._currentMeasure.left + this._currentMeasure.width / 2, this._currentMeasure.top + this._currentMeasure.height / 2,\r\n this._currentMeasure.width / 2 - this._thickness / 2, this._currentMeasure.height / 2 - this._thickness / 2, context);\r\n\r\n context.fillStyle = this._isEnabled ? this._background : this._disabledColor;\r\n context.fill();\r\n\r\n if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {\r\n context.shadowBlur = 0;\r\n context.shadowOffsetX = 0;\r\n context.shadowOffsetY = 0;\r\n }\r\n\r\n context.strokeStyle = this.color;\r\n context.lineWidth = this._thickness;\r\n\r\n context.stroke();\r\n\r\n // Inner\r\n if (this._isChecked) {\r\n context.fillStyle = this._isEnabled ? this.color : this._disabledColor;\r\n let offsetWidth = actualWidth * this._checkSizeRatio;\r\n let offseHeight = actualHeight * this._checkSizeRatio;\r\n\r\n Control.drawEllipse(this._currentMeasure.left + this._currentMeasure.width / 2, this._currentMeasure.top + this._currentMeasure.height / 2,\r\n offsetWidth / 2 - this._thickness / 2, offseHeight / 2 - this._thickness / 2, context);\r\n\r\n context.fill();\r\n }\r\n context.restore();\r\n }\r\n\r\n // Events\r\n public _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 if (!this.isChecked) {\r\n this.isChecked = true;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * Utility function to easily create a radio button with a header\r\n * @param title defines the label to use for the header\r\n * @param group defines the group to use for the radio button\r\n * @param isChecked defines the initial state of the radio button\r\n * @param onValueChanged defines the callback to call when value changes\r\n * @returns a StackPanel containing the radio button and a textBlock\r\n */\r\n public static AddRadioButtonWithHeader(title: string, group: string, isChecked: boolean, onValueChanged: (button: RadioButton, value: boolean) => void): StackPanel {\r\n var panel = new StackPanel();\r\n panel.isVertical = false;\r\n panel.height = \"30px\";\r\n\r\n var radio = new RadioButton();\r\n radio.width = \"20px\";\r\n radio.height = \"20px\";\r\n radio.isChecked = isChecked;\r\n radio.color = \"green\";\r\n radio.group = group;\r\n radio.onIsCheckedChangedObservable.add((value) => onValueChanged(radio, value));\r\n panel.addControl(radio);\r\n\r\n var header = new TextBlock();\r\n header.text = title;\r\n header.width = \"180px\";\r\n header.paddingLeft = \"5px\";\r\n header.textHorizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n header.color = \"white\";\r\n panel.addControl(header);\r\n\r\n return panel;\r\n }\r\n}\r\nRegisterClass(\"BABYLON.GUI.RadioButton\", RadioButton);"]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Container } from "./container";
|
|
2
2
|
import { Measure } from "../measure";
|
|
3
|
+
import { ICanvasRenderingContext } from "@babylonjs/core/Engines/ICanvas";
|
|
3
4
|
/** Class used to create rectangle container */
|
|
4
5
|
export declare class Rectangle extends Container {
|
|
5
6
|
name?: string | undefined;
|
|
@@ -17,8 +18,12 @@ export declare class Rectangle extends Container {
|
|
|
17
18
|
*/
|
|
18
19
|
constructor(name?: string | undefined);
|
|
19
20
|
protected _getTypeName(): string;
|
|
20
|
-
|
|
21
|
-
protected
|
|
21
|
+
/** @hidden */
|
|
22
|
+
protected _computeAdditionnalOffsetX(): 1 | 0;
|
|
23
|
+
/** @hidden */
|
|
24
|
+
protected _computeAdditionnalOffsetY(): 1 | 0;
|
|
25
|
+
protected _localDraw(context: ICanvasRenderingContext): void;
|
|
26
|
+
protected _additionalProcessing(parentMeasure: Measure, context: ICanvasRenderingContext): void;
|
|
22
27
|
private _drawRoundedRect;
|
|
23
|
-
protected _clipForChildren(context:
|
|
28
|
+
protected _clipForChildren(context: ICanvasRenderingContext): void;
|
|
24
29
|
}
|
package/2D/controls/rectangle.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { __decorate, __extends } from "tslib";
|
|
2
|
-
import { Container } from "./container";
|
|
3
|
-
import {
|
|
4
|
-
import { serialize } from '@babylonjs/core/Misc/decorators';
|
|
2
|
+
import { Container } from "./container.js";
|
|
3
|
+
import { RegisterClass } from '@babylonjs/core/Misc/typeStore.js';
|
|
4
|
+
import { serialize } from '@babylonjs/core/Misc/decorators.js';
|
|
5
5
|
/** Class used to create rectangle container */
|
|
6
6
|
var Rectangle = /** @class */ (function (_super) {
|
|
7
7
|
__extends(Rectangle, _super);
|
|
@@ -52,6 +52,22 @@ var Rectangle = /** @class */ (function (_super) {
|
|
|
52
52
|
Rectangle.prototype._getTypeName = function () {
|
|
53
53
|
return "Rectangle";
|
|
54
54
|
};
|
|
55
|
+
/** @hidden */
|
|
56
|
+
Rectangle.prototype._computeAdditionnalOffsetX = function () {
|
|
57
|
+
if (this._cornerRadius) {
|
|
58
|
+
// Take in account the aliasing
|
|
59
|
+
return 1;
|
|
60
|
+
}
|
|
61
|
+
return 0;
|
|
62
|
+
};
|
|
63
|
+
/** @hidden */
|
|
64
|
+
Rectangle.prototype._computeAdditionnalOffsetY = function () {
|
|
65
|
+
if (this._cornerRadius) {
|
|
66
|
+
// Take in account the aliasing
|
|
67
|
+
return 1;
|
|
68
|
+
}
|
|
69
|
+
return 0;
|
|
70
|
+
};
|
|
55
71
|
Rectangle.prototype._localDraw = function (context) {
|
|
56
72
|
context.save();
|
|
57
73
|
if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {
|
|
@@ -61,7 +77,7 @@ var Rectangle = /** @class */ (function (_super) {
|
|
|
61
77
|
context.shadowOffsetY = this.shadowOffsetY;
|
|
62
78
|
}
|
|
63
79
|
if (this._background) {
|
|
64
|
-
context.fillStyle = this._background;
|
|
80
|
+
context.fillStyle = this.typeName === "Button" ? (this.isEnabled ? this._background : this.disabledColor) : this._background;
|
|
65
81
|
if (this._cornerRadius) {
|
|
66
82
|
this._drawRoundedRect(context, this._thickness / 2);
|
|
67
83
|
context.fill();
|
|
@@ -131,5 +147,5 @@ var Rectangle = /** @class */ (function (_super) {
|
|
|
131
147
|
return Rectangle;
|
|
132
148
|
}(Container));
|
|
133
149
|
export { Rectangle };
|
|
134
|
-
|
|
150
|
+
RegisterClass("BABYLON.GUI.Rectangle", Rectangle);
|
|
135
151
|
//# sourceMappingURL=rectangle.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rectangle.js","sourceRoot":"","sources":["../../../../sourceES6/gui/src/2D/controls/rectangle.ts"],"names":[],"mappings":"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","sourcesContent":["import { Container } from \"./container\";\r\nimport { Measure } from \"../measure\";\r\nimport { _TypeStore } from '@babylonjs/core/Misc/typeStore';\r\nimport { serialize } from '@babylonjs/core/Misc/decorators';\r\n\r\n/** Class used to create rectangle container */\r\nexport class Rectangle extends Container {\r\n private _thickness = 1;\r\n private _cornerRadius = 0;\r\n\r\n /** Gets or sets border thickness */\r\n @serialize()\r\n public get thickness(): number {\r\n return this._thickness;\r\n }\r\n\r\n public set thickness(value: number) {\r\n if (this._thickness === value) {\r\n return;\r\n }\r\n\r\n this._thickness = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the corner radius angle */\r\n @serialize()\r\n public get cornerRadius(): number {\r\n return this._cornerRadius;\r\n }\r\n\r\n public set cornerRadius(value: number) {\r\n if (value < 0) {\r\n value = 0;\r\n }\r\n\r\n if (this._cornerRadius === value) {\r\n return;\r\n }\r\n\r\n this._cornerRadius = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /**\r\n * Creates a new Rectangle\r\n * @param name defines the control name\r\n */\r\n constructor(public name?: string) {\r\n super(name);\r\n }\r\n\r\n protected _getTypeName(): string {\r\n return \"Rectangle\";\r\n }\r\n\r\n protected _localDraw(context: CanvasRenderingContext2D): void {\r\n context.save();\r\n\r\n if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {\r\n context.shadowColor = this.shadowColor;\r\n context.shadowBlur = this.shadowBlur;\r\n context.shadowOffsetX = this.shadowOffsetX;\r\n context.shadowOffsetY = this.shadowOffsetY;\r\n }\r\n\r\n if (this._background) {\r\n context.fillStyle = this._background;\r\n\r\n if (this._cornerRadius) {\r\n this._drawRoundedRect(context, this._thickness / 2);\r\n context.fill();\r\n } else {\r\n context.fillRect(this._currentMeasure.left, this._currentMeasure.top, this._currentMeasure.width, this._currentMeasure.height);\r\n }\r\n }\r\n\r\n if (this._thickness) {\r\n\r\n if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {\r\n context.shadowBlur = 0;\r\n context.shadowOffsetX = 0;\r\n context.shadowOffsetY = 0;\r\n }\r\n\r\n if (this.color) {\r\n context.strokeStyle = this.color;\r\n }\r\n context.lineWidth = this._thickness;\r\n\r\n if (this._cornerRadius) {\r\n this._drawRoundedRect(context, this._thickness / 2);\r\n context.stroke();\r\n } else {\r\n context.strokeRect(this._currentMeasure.left + this._thickness / 2, this._currentMeasure.top + this._thickness / 2,\r\n this._currentMeasure.width - this._thickness, this._currentMeasure.height - this._thickness);\r\n }\r\n }\r\n\r\n context.restore();\r\n }\r\n\r\n protected _additionalProcessing(parentMeasure: Measure, context: CanvasRenderingContext2D): void {\r\n super._additionalProcessing(parentMeasure, context);\r\n\r\n this._measureForChildren.width -= 2 * this._thickness;\r\n this._measureForChildren.height -= 2 * this._thickness;\r\n this._measureForChildren.left += this._thickness;\r\n this._measureForChildren.top += this._thickness;\r\n }\r\n\r\n private _drawRoundedRect(context: CanvasRenderingContext2D, offset: number = 0): void {\r\n var x = this._currentMeasure.left + offset;\r\n var y = this._currentMeasure.top + offset;\r\n var width = this._currentMeasure.width - offset * 2;\r\n var height = this._currentMeasure.height - offset * 2;\r\n\r\n var radius = Math.min(height / 2 - 2, Math.min(width / 2 - 2, this._cornerRadius));\r\n\r\n context.beginPath();\r\n context.moveTo(x + radius, y);\r\n context.lineTo(x + width - radius, y);\r\n context.quadraticCurveTo(x + width, y, x + width, y + radius);\r\n context.lineTo(x + width, y + height - radius);\r\n context.quadraticCurveTo(x + width, y + height, x + width - radius, y + height);\r\n context.lineTo(x + radius, y + height);\r\n context.quadraticCurveTo(x, y + height, x, y + height - radius);\r\n context.lineTo(x, y + radius);\r\n context.quadraticCurveTo(x, y, x + radius, y);\r\n context.closePath();\r\n }\r\n\r\n protected _clipForChildren(context: CanvasRenderingContext2D) {\r\n if (this._cornerRadius) {\r\n this._drawRoundedRect(context, this._thickness);\r\n context.clip();\r\n }\r\n }\r\n}\r\n_TypeStore.RegisteredTypes[\"BABYLON.GUI.Rectangle\"] = Rectangle;"]}
|
|
1
|
+
{"version":3,"file":"rectangle.js","sourceRoot":"","sources":["../../../../sourceES6/gui/src/2D/controls/rectangle.ts"],"names":[],"mappings":"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","sourcesContent":["import { Container } from \"./container\";\r\nimport { Measure } from \"../measure\";\r\nimport { RegisterClass } from '@babylonjs/core/Misc/typeStore';\r\nimport { serialize } from '@babylonjs/core/Misc/decorators';\r\nimport { ICanvasRenderingContext } from \"@babylonjs/core/Engines/ICanvas\";\r\n\r\n/** Class used to create rectangle container */\r\nexport class Rectangle extends Container {\r\n private _thickness = 1;\r\n private _cornerRadius = 0;\r\n\r\n /** Gets or sets border thickness */\r\n @serialize()\r\n public get thickness(): number {\r\n return this._thickness;\r\n }\r\n\r\n public set thickness(value: number) {\r\n if (this._thickness === value) {\r\n return;\r\n }\r\n\r\n this._thickness = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the corner radius angle */\r\n @serialize()\r\n public get cornerRadius(): number {\r\n return this._cornerRadius;\r\n }\r\n\r\n public set cornerRadius(value: number) {\r\n if (value < 0) {\r\n value = 0;\r\n }\r\n\r\n if (this._cornerRadius === value) {\r\n return;\r\n }\r\n\r\n this._cornerRadius = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /**\r\n * Creates a new Rectangle\r\n * @param name defines the control name\r\n */\r\n constructor(public name?: string) {\r\n super(name);\r\n }\r\n\r\n protected _getTypeName(): string {\r\n return \"Rectangle\";\r\n }\r\n\r\n /** @hidden */\r\n protected _computeAdditionnalOffsetX() {\r\n if (this._cornerRadius) {\r\n // Take in account the aliasing\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n\r\n /** @hidden */\r\n protected _computeAdditionnalOffsetY() {\r\n if (this._cornerRadius) {\r\n // Take in account the aliasing\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n\r\n protected _localDraw(context: ICanvasRenderingContext): void {\r\n context.save();\r\n\r\n if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {\r\n context.shadowColor = this.shadowColor;\r\n context.shadowBlur = this.shadowBlur;\r\n context.shadowOffsetX = this.shadowOffsetX;\r\n context.shadowOffsetY = this.shadowOffsetY;\r\n }\r\n\r\n if (this._background) {\r\n context.fillStyle = this.typeName === \"Button\" ? (this.isEnabled ? this._background : this.disabledColor) : this._background;\r\n\r\n if (this._cornerRadius) {\r\n this._drawRoundedRect(context, this._thickness / 2);\r\n context.fill();\r\n } else {\r\n context.fillRect(this._currentMeasure.left, this._currentMeasure.top, this._currentMeasure.width, this._currentMeasure.height);\r\n }\r\n }\r\n\r\n if (this._thickness) {\r\n\r\n if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {\r\n context.shadowBlur = 0;\r\n context.shadowOffsetX = 0;\r\n context.shadowOffsetY = 0;\r\n }\r\n\r\n if (this.color) {\r\n context.strokeStyle = this.color;\r\n }\r\n context.lineWidth = this._thickness;\r\n\r\n if (this._cornerRadius) {\r\n this._drawRoundedRect(context, this._thickness / 2);\r\n context.stroke();\r\n } else {\r\n context.strokeRect(this._currentMeasure.left + this._thickness / 2, this._currentMeasure.top + this._thickness / 2,\r\n this._currentMeasure.width - this._thickness, this._currentMeasure.height - this._thickness);\r\n }\r\n }\r\n\r\n context.restore();\r\n }\r\n\r\n protected _additionalProcessing(parentMeasure: Measure, context: ICanvasRenderingContext): void {\r\n super._additionalProcessing(parentMeasure, context);\r\n\r\n this._measureForChildren.width -= 2 * this._thickness;\r\n this._measureForChildren.height -= 2 * this._thickness;\r\n this._measureForChildren.left += this._thickness;\r\n this._measureForChildren.top += this._thickness;\r\n }\r\n\r\n private _drawRoundedRect(context: ICanvasRenderingContext, offset: number = 0): void {\r\n var x = this._currentMeasure.left + offset;\r\n var y = this._currentMeasure.top + offset;\r\n var width = this._currentMeasure.width - offset * 2;\r\n var height = this._currentMeasure.height - offset * 2;\r\n\r\n var radius = Math.min(height / 2 - 2, Math.min(width / 2 - 2, this._cornerRadius));\r\n\r\n context.beginPath();\r\n context.moveTo(x + radius, y);\r\n context.lineTo(x + width - radius, y);\r\n context.quadraticCurveTo(x + width, y, x + width, y + radius);\r\n context.lineTo(x + width, y + height - radius);\r\n context.quadraticCurveTo(x + width, y + height, x + width - radius, y + height);\r\n context.lineTo(x + radius, y + height);\r\n context.quadraticCurveTo(x, y + height, x, y + height - radius);\r\n context.lineTo(x, y + radius);\r\n context.quadraticCurveTo(x, y, x + radius, y);\r\n context.closePath();\r\n }\r\n\r\n protected _clipForChildren(context: ICanvasRenderingContext) {\r\n if (this._cornerRadius) {\r\n this._drawRoundedRect(context, this._thickness);\r\n context.clip();\r\n }\r\n }\r\n}\r\nRegisterClass(\"BABYLON.GUI.Rectangle\", Rectangle);"]}
|
|
@@ -7,6 +7,7 @@ import { Measure } from "../../measure";
|
|
|
7
7
|
import { AdvancedDynamicTexture } from "../../advancedDynamicTexture";
|
|
8
8
|
import { ScrollBar } from "../sliders/scrollBar";
|
|
9
9
|
import { ImageScrollBar } from "../sliders/imageScrollBar";
|
|
10
|
+
import { ICanvasRenderingContext } from "@babylonjs/core/Engines/ICanvas";
|
|
10
11
|
/**
|
|
11
12
|
* Class used to hold a viewer window and sliders in a grid
|
|
12
13
|
*/
|
|
@@ -107,7 +108,7 @@ export declare class ScrollViewer extends Rectangle {
|
|
|
107
108
|
resetWindow(): void;
|
|
108
109
|
protected _getTypeName(): string;
|
|
109
110
|
private _buildClientSizes;
|
|
110
|
-
protected _additionalProcessing(parentMeasure: Measure, context:
|
|
111
|
+
protected _additionalProcessing(parentMeasure: Measure, context: ICanvasRenderingContext): void;
|
|
111
112
|
protected _postMeasure(): void;
|
|
112
113
|
/**
|
|
113
114
|
* Gets or sets the mouse wheel precision
|
|
@@ -168,7 +169,7 @@ export declare class ScrollViewer extends Rectangle {
|
|
|
168
169
|
private _addBar;
|
|
169
170
|
/** @hidden */
|
|
170
171
|
private _attachWheel;
|
|
171
|
-
_renderHighlightSpecific(context:
|
|
172
|
+
_renderHighlightSpecific(context: ICanvasRenderingContext): void;
|
|
172
173
|
/** Releases associated resources */
|
|
173
174
|
dispose(): void;
|
|
174
175
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { __extends } from "tslib";
|
|
2
|
-
import { Rectangle } from "../rectangle";
|
|
3
|
-
import { Grid } from "../grid";
|
|
4
|
-
import { Control } from "../control";
|
|
5
|
-
import { _ScrollViewerWindow } from "./scrollViewerWindow";
|
|
6
|
-
import { ScrollBar } from "../sliders/scrollBar";
|
|
7
|
-
import { ImageScrollBar } from "../sliders/imageScrollBar";
|
|
8
|
-
import {
|
|
2
|
+
import { Rectangle } from "../rectangle.js";
|
|
3
|
+
import { Grid } from "../grid.js";
|
|
4
|
+
import { Control } from "../control.js";
|
|
5
|
+
import { _ScrollViewerWindow } from "./scrollViewerWindow.js";
|
|
6
|
+
import { ScrollBar } from "../sliders/scrollBar.js";
|
|
7
|
+
import { ImageScrollBar } from "../sliders/imageScrollBar.js";
|
|
8
|
+
import { RegisterClass } from '@babylonjs/core/Misc/typeStore.js';
|
|
9
9
|
/**
|
|
10
10
|
* Class used to hold a viewer window and sliders in a grid
|
|
11
11
|
*/
|
|
@@ -635,7 +635,7 @@ var ScrollViewer = /** @class */ (function (_super) {
|
|
|
635
635
|
return;
|
|
636
636
|
}
|
|
637
637
|
this._onWheelObserver = this.onWheelObservable.add(function (pi) {
|
|
638
|
-
if (!_this._pointerIsOver) {
|
|
638
|
+
if (!_this._pointerIsOver || _this.isReadOnly) {
|
|
639
639
|
return;
|
|
640
640
|
}
|
|
641
641
|
if (_this._verticalBar.isVisible == true) {
|
|
@@ -673,5 +673,5 @@ var ScrollViewer = /** @class */ (function (_super) {
|
|
|
673
673
|
return ScrollViewer;
|
|
674
674
|
}(Rectangle));
|
|
675
675
|
export { ScrollViewer };
|
|
676
|
-
|
|
676
|
+
RegisterClass("BABYLON.GUI.ScrollViewer", ScrollViewer);
|
|
677
677
|
//# sourceMappingURL=scrollViewer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scrollViewer.js","sourceRoot":"","sources":["../../../../../sourceES6/gui/src/2D/controls/scrollViewers/scrollViewer.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAIrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE5D;;EAEE;AACF;IAAkC,gCAAS;IAoJvC;;;MAGE;IACF,sBAAY,IAAa,EAAE,YAAsB;QAAjD,YACI,kBAAM,IAAI,CAAC,SA+Dd;QAzMO,cAAQ,GAAW,EAAE,CAAC;QAEtB,oBAAc,GAAY,KAAK,CAAC;QAChC,qBAAe,GAAW,IAAI,CAAC;QAK/B,kBAAY,GAAW,GAAG,CAAC;QAC3B,kBAAY,GAAW,CAAC,CAAC;QACzB,qBAAe,GAAW,CAAC,CAAC;QAC5B,+BAAyB,GAAW,CAAC,CAAC;QACtC,6BAAuB,GAAW,CAAC,CAAC;QACpC,6BAAuB,GAAW,CAAC,CAAC;QACpC,8BAAwB,GAAW,CAAC,CAAC;QA0FrC,yBAAmB,GAAY,KAAK,CAAC;QACrC,uBAAiB,GAAY,KAAK,CAAC;QAmCvC,KAAI,CAAC,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC;QAExD,KAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC;YACvB,KAAI,CAAC,mBAAmB,CAAC,KAAK,GAAG,KAAI,CAAC,KAAK,CAAC;YAC5C,KAAI,CAAC,iBAAiB,CAAC,KAAK,GAAG,KAAI,CAAC,KAAK,CAAC;YAC1C,KAAI,CAAC,UAAU,CAAC,KAAK,GAAG,KAAI,CAAC,KAAK,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,KAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC;YAC9B,KAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,KAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC;YAC5B,KAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,KAAI,CAAC,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,IAAI,KAAI,CAAC,YAAY,EAAE;YACnB,KAAI,CAAC,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;YAC3C,KAAI,CAAC,YAAY,GAAG,IAAI,cAAc,EAAE,CAAC;SAC5C;aACI;YACD,KAAI,CAAC,cAAc,GAAG,IAAI,SAAS,EAAE,CAAC;YACtC,KAAI,CAAC,YAAY,GAAG,IAAI,SAAS,EAAE,CAAC;SACvC;QAED,KAAI,CAAC,OAAO,GAAG,IAAI,mBAAmB,CAAC,qBAAqB,CAAC,CAAC;QAC9D,KAAI,CAAC,OAAO,CAAC,mBAAmB,GAAG,OAAO,CAAC,yBAAyB,CAAC;QACrE,KAAI,CAAC,OAAO,CAAC,iBAAiB,GAAG,OAAO,CAAC,sBAAsB,CAAC;QAEhE,KAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;QAClC,KAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACxC,KAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC/B,KAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAErC,iBAAM,UAAU,aAAC,KAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAE1C,KAAI,CAAC,iBAAiB,GAAG,IAAI,SAAS,EAAE,CAAC;QACzC,KAAI,CAAC,iBAAiB,CAAC,mBAAmB,GAAG,OAAO,CAAC,yBAAyB,CAAC;QAC/E,KAAI,CAAC,iBAAiB,CAAC,iBAAiB,GAAG,OAAO,CAAC,sBAAsB,CAAC;QAC1E,KAAI,CAAC,iBAAiB,CAAC,SAAS,GAAG,CAAC,CAAC;QACrC,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAI,CAAC,iBAAiB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACpD,KAAI,CAAC,OAAO,CAAC,KAAI,CAAC,YAAY,EAAE,KAAI,CAAC,iBAAiB,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAEvE,KAAI,CAAC,mBAAmB,GAAG,IAAI,SAAS,EAAE,CAAC;QAC3C,KAAI,CAAC,mBAAmB,CAAC,mBAAmB,GAAG,OAAO,CAAC,yBAAyB,CAAC;QACjF,KAAI,CAAC,mBAAmB,CAAC,iBAAiB,GAAG,OAAO,CAAC,sBAAsB,CAAC;QAC5E,KAAI,CAAC,mBAAmB,CAAC,SAAS,GAAG,CAAC,CAAC;QACvC,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAI,CAAC,mBAAmB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACtD,KAAI,CAAC,OAAO,CAAC,KAAI,CAAC,cAAc,EAAE,KAAI,CAAC,mBAAmB,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAEtE,KAAI,CAAC,UAAU,GAAG,IAAI,SAAS,EAAE,CAAC;QAClC,KAAI,CAAC,UAAU,CAAC,SAAS,GAAG,CAAC,CAAC;QAC9B,KAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAI,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAE7C,SAAS;QACT,IAAI,CAAC,KAAI,CAAC,YAAY,EAAE;YACpB,KAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;YACvB,KAAI,CAAC,aAAa,GAAG,aAAa,CAAC;SACtC;;IACL,CAAC;IAtLD,sBAAW,uCAAa;QAHxB;;WAEG;aACH;YACI,OAAO,IAAI,CAAC,cAAc,CAAC;QAC/B,CAAC;;;OAAA;IAKD,sBAAW,qCAAW;QAHtB;;WAEG;aACH;YACI,OAAO,IAAI,CAAC,YAAY,CAAC;QAC7B,CAAC;;;OAAA;IAED;;;;OAIG;IACI,iCAAU,GAAjB,UAAkB,OAA0B;QACxC,IAAI,CAAC,OAAO,EAAE;YACV,OAAO,IAAI,CAAC;SACf;QAED,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAEjC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACI,oCAAa,GAApB,UAAqB,OAAgB;QACjC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC;IAChB,CAAC;IAGD,sBAAW,kCAAQ;QADnB,gCAAgC;aAChC;YACI,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QACjC,CAAC;;;OAAA;IAEM,oDAA6B,GAApC;QACI,KAAkB,UAAc,EAAd,KAAA,IAAI,CAAC,SAAS,EAAd,cAAc,EAAd,IAAc,EAAE;YAA7B,IAAI,KAAK,SAAA;YACV,KAAK,CAAC,kBAAkB,EAAE,CAAC;SAC9B;IACL,CAAC;IAOD,sBAAW,wCAAc;QALzB;;;;WAIG;aACH;YACI,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;QACvC,CAAC;aAED,UAA0B,KAAc;YACpC,IAAI,CAAC,OAAO,CAAC,cAAc,GAAG,KAAK,CAAC;QACxC,CAAC;;;OAJA;IAOD,sBAAW,qCAAW;QADtB,4BAA4B;aAC5B;YACI,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;QACpC,CAAC;;;OAAA;IAGD,sBAAW,sCAAY;QADvB,6BAA6B;aAC7B;YACI,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;QACrC,CAAC;;;OAAA;IAED;;;;;;;;;;OAUG;IACI,qCAAc,GAArB,UAAsB,KAAa,EAAE,MAAc;QAC/C,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;IAQD,sBAAW,4CAAkB;QAH7B;;WAEG;aACH;YACI,OAAO,IAAI,CAAC,mBAAmB,CAAC;QACpC,CAAC;aAED,UAA8B,KAAc;YACxC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAChE,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,KAAK,CAAC;YACtC,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;QACrC,CAAC;;;OANA;IAWD,sBAAW,0CAAgB;QAH3B;;WAEG;aACH;YACI,OAAO,IAAI,CAAC,iBAAiB,CAAC;QAClC,CAAC;aAED,UAA4B,KAAc;YACtC,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YACnE,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,KAAK,CAAC;YACpC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QACnC,CAAC;;;OANA;IA8ED,qDAAqD;IAC9C,kCAAW,GAAlB;QACI,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC;QAC5B,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;IACjC,CAAC;IAES,mCAAY,GAAtB;QACI,OAAO,cAAc,CAAC;IAC1B,CAAC;IAEO,wCAAiB,GAAzB;QACI,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;QAEjC,IAAI,CAAC,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QACtK,IAAI,CAAC,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,IAAI,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QAE5K,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;QACnD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC;IACzD,CAAC;IAES,4CAAqB,GAA/B,UAAgC,aAAsB,EAAE,OAAiC;QACrF,iBAAM,qBAAqB,YAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAEpD,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC7B,CAAC;IAES,mCAAY,GAAtB;QACI,iBAAM,YAAY,WAAE,CAAC;QAErB,IAAI,CAAC,eAAe,EAAE,CAAC;QAEvB,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAMD,sBAAW,wCAAc;QAJzB;;;aAGK;aACL;YACI,OAAO,IAAI,CAAC,eAAe,CAAC;QAChC,CAAC;aAED,UAA0B,KAAa;YACnC,IAAI,IAAI,CAAC,eAAe,KAAK,KAAK,EAAE;gBAChC,OAAO;aACV;YAED,IAAI,KAAK,GAAG,CAAC,EAAE;gBACX,KAAK,GAAG,CAAC,CAAC;aACb;YAED,IAAI,KAAK,GAAG,CAAC,EAAE;gBACX,KAAK,GAAG,CAAC,CAAC;aACb;YAED,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QACjC,CAAC;;;OAhBA;IAmBD,sBAAW,0CAAgB;QAD3B,6DAA6D;aAC7D;YACI,OAAO,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC;QAC/C,CAAC;aAED,UAA4B,KAAa;YACrC,IAAI,IAAI,CAAC,mBAAmB,CAAC,UAAU,KAAK,KAAK,EAAE;gBAC/C,OAAO;aACV;YACD,IAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,KAAK,CAAC;YAC5C,IAAI,CAAC,iBAAiB,CAAC,UAAU,GAAG,KAAK,CAAC;QAC9C,CAAC;;;OARA;IAWD,sBAAW,kCAAQ;QADnB,iCAAiC;aACjC;YACI,OAAO,IAAI,CAAC,SAAS,CAAC;QAC1B,CAAC;aAED,UAAoB,KAAa;YAC7B,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,EAAE;gBAC1B,OAAO;aACV;YAED,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,KAAK,CAAC;YAClC,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC;QACpC,CAAC;;;OAVA;IAaD,sBAAW,oCAAU;QADrB,iCAAiC;aACjC;YACI,OAAO,IAAI,CAAC,SAAS,CAAC;QAC1B,CAAC;aAED,UAAsB,KAAY;YAC9B,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,EAAE;gBAC1B,OAAO;aACV;YAED,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,EAAE,GAAmB,IAAI,CAAC,cAAc,CAAC;YAC7C,IAAI,EAAE,GAAmB,IAAI,CAAC,YAAY,CAAC;YAC3C,EAAE,CAAC,UAAU,GAAG,KAAK,CAAC;YACtB,EAAE,CAAC,UAAU,GAAG,KAAK,CAAC;QAC1B,CAAC;;;OAZA;IAeD,sBAAW,8CAAoB;QAD/B,4CAA4C;aAC5C;YACI,OAAO,IAAI,CAAC,mBAAmB,CAAC;QACpC,CAAC;aAED,UAAgC,KAAY;YACxC,IAAI,IAAI,CAAC,mBAAmB,KAAK,KAAK,EAAE;gBACpC,OAAO;aACV;YAED,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;YACjC,IAAI,EAAE,GAAmB,IAAI,CAAC,cAAc,CAAC;YAC7C,EAAE,CAAC,UAAU,GAAG,KAAK,CAAC;QAC1B,CAAC;;;OAVA;IAaD,sBAAW,4CAAkB;QAD7B,0CAA0C;aAC1C;YACI,OAAO,IAAI,CAAC,iBAAiB,CAAC;QAClC,CAAC;aAED,UAA8B,KAAY;YACtC,IAAI,IAAI,CAAC,iBAAiB,KAAK,KAAK,EAAE;gBAClC,OAAO;aACV;YAED,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;YAC/B,IAAI,EAAE,GAAmB,IAAI,CAAC,YAAY,CAAC;YAC3C,EAAE,CAAC,UAAU,GAAG,KAAK,CAAC;QAC1B,CAAC;;;OAVA;IAaD,sBAAW,iCAAO;QADlB,uCAAuC;aACvC;YACI,OAAO,IAAI,CAAC,QAAQ,CAAC;QACzB,CAAC;aAED,UAAmB,KAAa;YAC5B,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;gBACzB,OAAO;aACV;YAED,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,YAAY,EAAE,CAAC;YAEpB,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE;gBAC/B,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;aACvD;YACD,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE;gBAC7B,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;aAC1D;QACL,CAAC;;;OAhBA;IAmBD,sBAAW,qCAAW;QADtB,2CAA2C;aAC3C;YACI,OAAO,IAAI,CAAC,YAAY,CAAC;QAC7B,CAAC;aAED,UAAuB,KAAa;YAChC,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,EAAE;gBAC7B,OAAO;aACV;YACD,IAAI,KAAK,IAAI,CAAC,EAAE;gBACZ,KAAK,GAAG,GAAG,CAAC;aACf;YACD,IAAI,KAAK,GAAG,CAAC,EAAE;gBACX,KAAK,GAAG,CAAC,CAAC;aACb;YACD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,EAAE,GAAmB,IAAI,CAAC,cAAc,CAAC;YAC7C,IAAI,EAAE,GAAmB,IAAI,CAAC,YAAY,CAAC;YAC3C,EAAE,CAAC,WAAW,GAAG,KAAK,CAAC;YACvB,EAAE,CAAC,WAAW,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,YAAY,EAAE,CAAC;QACxB,CAAC;;;OAlBA;IAqBD,sBAAW,qCAAW;QADtB,2CAA2C;aAC3C;YACI,OAAO,IAAI,CAAC,YAAY,CAAC;QAC7B,CAAC;aAED,UAAuB,KAAa;YAChC,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,EAAE;gBAC7B,OAAO;aACV;YACD,IAAI,KAAK,IAAI,CAAC,EAAE;gBACZ,KAAK,GAAG,GAAG,CAAC;aACf;YACD,IAAI,KAAK,GAAG,CAAC,EAAE;gBACX,KAAK,GAAG,CAAC,CAAC;aACb;YACD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,EAAE,GAAmB,IAAI,CAAC,cAAc,CAAC;YAC7C,IAAI,EAAE,GAAmB,IAAI,CAAC,YAAY,CAAC;YAC3C,EAAE,CAAC,WAAW,GAAG,KAAK,CAAC;YACvB,EAAE,CAAC,WAAW,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,YAAY,EAAE,CAAC;QACxB,CAAC;;;OAlBA;IAqBD,sBAAW,wCAAc;QADzB,+CAA+C;aAC/C;YACI,OAAO,IAAI,CAAC,eAAe,CAAC;QAChC,CAAC;aAED,UAA0B,KAAa;YACnC,IAAI,IAAI,CAAC,eAAe,KAAK,KAAK,EAAE;gBAChC,OAAO;aACV;YACD,IAAI,KAAK,IAAI,CAAC,EAAE;gBACZ,KAAK,GAAG,GAAG,CAAC;aACf;YACD,IAAI,KAAK,GAAG,CAAC,EAAE;gBACX,KAAK,GAAG,CAAC,CAAC;aACb;YACD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;YAC7B,IAAI,EAAE,GAAmB,IAAI,CAAC,cAAc,CAAC;YAC7C,IAAI,EAAE,GAAmB,IAAI,CAAC,YAAY,CAAC;YAC3C,EAAE,CAAC,cAAc,GAAG,KAAK,CAAC;YAC1B,EAAE,CAAC,cAAc,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,YAAY,EAAE,CAAC;QACxB,CAAC;;;OAlBA;IAqBD,sBAAW,kDAAwB;QADnC,0DAA0D;aAC1D;YACI,OAAO,IAAI,CAAC,yBAAyB,CAAC;QAC1C,CAAC;aAED,UAAoC,KAAa;YAC7C,IAAI,IAAI,CAAC,yBAAyB,KAAK,KAAK,EAAE;gBAC1C,OAAO;aACV;YACD,IAAI,KAAK,IAAI,CAAC,EAAE;gBACZ,KAAK,GAAG,GAAG,CAAC;aACf;YACD,IAAI,KAAK,GAAG,CAAC,EAAE;gBACX,KAAK,GAAG,CAAC,CAAC;aACb;YACD,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;YACvC,IAAI,EAAE,GAAmB,IAAI,CAAC,cAAc,CAAC;YAC7C,EAAE,CAAC,cAAc,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,YAAY,EAAE,CAAC;QACxB,CAAC;;;OAhBA;IAmBD,sBAAW,gDAAsB;QADjC,wDAAwD;aACxD;YACI,OAAO,IAAI,CAAC,uBAAuB,CAAC;QACxC,CAAC;aAED,UAAkC,KAAa;YAC3C,IAAI,IAAI,CAAC,uBAAuB,KAAK,KAAK,EAAE;gBACxC,OAAO;aACV;YACD,IAAI,KAAK,IAAI,CAAC,EAAE;gBACZ,KAAK,GAAG,GAAG,CAAC;aACf;YACD,IAAI,KAAK,GAAG,CAAC,EAAE;gBACX,KAAK,GAAG,CAAC,CAAC;aACb;YACD,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC;YACrC,IAAI,EAAE,GAAmB,IAAI,CAAC,YAAY,CAAC;YAC3C,EAAE,CAAC,cAAc,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,YAAY,EAAE,CAAC;QACxB,CAAC;;;OAhBA;IAmBD,sBAAW,uCAAa;QADxB,sCAAsC;aACtC;YACI,OAAO,IAAI,CAAC,cAAc,CAAC;QAC/B,CAAC;aAED,UAAyB,KAAa;YAClC,IAAI,IAAI,CAAC,cAAc,KAAK,KAAK,EAAE;gBAC/B,OAAO;aACV;YAED,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;YAC5B,IAAI,EAAE,GAAc,IAAI,CAAC,cAAc,CAAC;YACxC,IAAI,EAAE,GAAc,IAAI,CAAC,YAAY,CAAC;YACtC,EAAE,CAAC,UAAU,GAAG,KAAK,CAAC;YACtB,EAAE,CAAC,UAAU,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,KAAK,CAAC;QACvC,CAAC;;;OAbA;IAgBD,sBAAW,kCAAQ;QADnB,4CAA4C;aAC5C;YACI,OAAO,IAAI,CAAC,mBAAmB,CAAC;QACpC,CAAC;aAED,UAAoB,KAAY;YAC5B,IAAI,IAAI,CAAC,mBAAmB,KAAK,KAAK,EAAE;aACvC;YAED,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;YACjC,IAAI,EAAE,GAAmB,IAAI,CAAC,cAAc,CAAC;YAC7C,IAAI,EAAE,GAAmB,IAAI,CAAC,YAAY,CAAC;YAC3C,EAAE,CAAC,eAAe,GAAG,KAAK,CAAC;YAC3B,EAAE,CAAC,eAAe,GAAG,KAAK,CAAC;QAC/B,CAAC;;;OAXA;IAcD,sBAAW,4CAAkB;QAD7B,uDAAuD;aACvD;YACI,OAAO,IAAI,CAAC,6BAA6B,CAAC;QAC9C,CAAC;aAED,UAA8B,KAAY;YACtC,IAAI,IAAI,CAAC,6BAA6B,KAAK,KAAK,EAAE;aACjD;YAED,IAAI,CAAC,6BAA6B,GAAG,KAAK,CAAC;YAC3C,IAAI,EAAE,GAAmB,IAAI,CAAC,cAAc,CAAC;YAC7C,EAAE,CAAC,eAAe,GAAG,KAAK,CAAC;QAC/B,CAAC;;;OATA;IAYD,sBAAW,0CAAgB;QAD3B,qDAAqD;aACrD;YACI,OAAO,IAAI,CAAC,2BAA2B,CAAC;QAC5C,CAAC;aAED,UAA4B,KAAY;YACpC,IAAI,IAAI,CAAC,2BAA2B,KAAK,KAAK,EAAE;aAC/C;YAED,IAAI,CAAC,2BAA2B,GAAG,KAAK,CAAC;YACzC,IAAI,EAAE,GAAmB,IAAI,CAAC,YAAY,CAAC;YAC3C,EAAE,CAAC,eAAe,GAAG,KAAK,CAAC;QAC/B,CAAC;;;OATA;IAWO,yCAAkB,GAA1B,UAA2B,KAAY;QAAZ,sBAAA,EAAA,YAAY;QACnC,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;QACjC,IAAI,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC;QAC7D,IAAI,oBAAoB,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC;QAE/D,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,uBAAuB,KAAK,mBAAmB,IAAI,IAAI,CAAC,wBAAwB,KAAK,oBAAoB,EAAE;YAC1H,OAAO;SACV;QAED,IAAI,CAAC,uBAAuB,GAAG,mBAAmB,CAAC;QACnD,IAAI,CAAC,wBAAwB,GAAG,oBAAoB,CAAC;QAErD,IAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,GAAG,mBAAmB,CAAC;QACzD,IAAM,OAAO,GAAG,IAAI,CAAC,aAAa,GAAG,oBAAoB,CAAC;QAE1D,IAAM,OAAO,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC;QACtE,IAAM,MAAM,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC;QAElE,IAAI,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YAC/B,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC;YAC5B,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;gBACtB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;aAC9B;SACJ;QAED,IAAI,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;YAC7B,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,MAAM,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;gBACtB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;aAC9B;SACJ;IACL,CAAC;IAED,cAAc;IACN,sCAAe,GAAvB;QACI,IAAI,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC;QAC7D,IAAI,oBAAoB,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC;QAE/D,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,IAAI,mBAAmB,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YACvG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YACxC,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,KAAK,CAAC;YACtC,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,CAAC,CAAC;YAC9B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;SAC9B;aACI,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,kBAAkB,CAAC,EAAE;YAC7G,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YACpD,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,IAAI,CAAC;YACrC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;SAC9B;QAED,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,IAAI,oBAAoB,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;YACrG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YAC3C,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,KAAK,CAAC;YACpC,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,CAAC,CAAC;YAC5B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;SAC9B;aACI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,gBAAgB,CAAC,EAAE;YAC3G,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YACvD,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC;YACnC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;SAC9B;QAED,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;QAEjC,IAAI,CAAC,cAAc,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC;QAC9F,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,GAAI,GAAG,GAAG,CAAC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC;IAClG,CAAC;IAEM,4BAAK,GAAZ,UAAa,IAA4B;QACrC,iBAAM,KAAK,YAAC,IAAI,CAAC,CAAC;QAElB,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAED,cAAc;IACN,8BAAO,GAAf,UAAgB,UAAsC,EAAE,YAAuB,EAAE,UAAmB,EAAE,QAAgB;QAAtH,iBAkBC;QAjBG,UAAU,CAAC,WAAW,GAAG,CAAC,CAAC;QAC3B,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC;QAC1B,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;QAC3B,UAAU,CAAC,SAAS,GAAG,CAAC,CAAC;QACzB,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC;QACrB,UAAU,CAAC,OAAO,GAAG,CAAC,CAAC;QACvB,UAAU,CAAC,mBAAmB,GAAG,OAAO,CAAC,2BAA2B,CAAC;QACrE,UAAU,CAAC,iBAAiB,GAAG,OAAO,CAAC,yBAAyB,CAAC;QACjE,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC;QACnC,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC/B,UAAU,CAAC,SAAS,GAAG,KAAK,CAAC;QAE7B,YAAY,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAEpC,UAAU,CAAC,wBAAwB,CAAC,GAAG,CAAC,UAAC,KAAK;YAC1C,KAAI,CAAC,kBAAkB,EAAE,CAAC;QAC9B,CAAC,CAAC,CAAC;IACP,CAAC;IAED,cAAc;IACN,mCAAY,GAApB;QAAA,iBAwBC;QAvBG,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACtC,OAAO;SACV;QAED,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAC,EAAE;YAClD,IAAI,CAAC,KAAI,CAAC,cAAc,EAAE;gBACtB,OAAO;aACV;YACD,IAAI,KAAI,CAAC,YAAY,CAAC,SAAS,IAAI,IAAI,EAAE;gBACrC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,KAAI,CAAC,YAAY,CAAC,KAAK,GAAG,CAAC,EAAE;oBACzC,KAAI,CAAC,YAAY,CAAC,KAAK,IAAI,KAAI,CAAC,eAAe,CAAC;iBACnD;qBAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,KAAI,CAAC,YAAY,CAAC,KAAK,GAAG,KAAI,CAAC,YAAY,CAAC,OAAO,EAAE;oBACxE,KAAI,CAAC,YAAY,CAAC,KAAK,IAAI,KAAI,CAAC,eAAe,CAAC;iBACnD;aACJ;YACD,IAAI,KAAI,CAAC,cAAc,CAAC,SAAS,IAAI,IAAI,EAAE;gBACvC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,KAAI,CAAC,cAAc,CAAC,KAAK,GAAG,KAAI,CAAC,cAAc,CAAC,OAAO,EAAE;oBACrE,KAAI,CAAC,cAAc,CAAC,KAAK,IAAI,KAAI,CAAC,eAAe,CAAC;iBACrD;qBAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,KAAI,CAAC,cAAc,CAAC,KAAK,GAAG,CAAC,EAAE;oBAClD,KAAI,CAAC,cAAc,CAAC,KAAK,IAAI,KAAI,CAAC,eAAe,CAAC;iBACrD;aACJ;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,+CAAwB,GAA/B,UAAgC,OAAiC;QAC7D,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACrB,OAAO;SACV;QAED,iBAAM,wBAAwB,YAAC,OAAO,CAAC,CAAC;QAExC,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;QAE7C,OAAO,CAAC,OAAO,EAAE,CAAC;IACtB,CAAC;IAED,oCAAoC;IAC7B,8BAAO,GAAd;QACI,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACrD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,iBAAM,OAAO,WAAE,CAAC;IACpB,CAAC;IACL,mBAAC;AAAD,CAAC,AA/qBD,CAAkC,SAAS,GA+qB1C;;AACD,UAAU,CAAC,eAAe,CAAC,0BAA0B,CAAC,GAAG,YAAY,CAAC","sourcesContent":["import { Nullable } from \"@babylonjs/core/types\";\r\nimport { Observer } from \"@babylonjs/core/Misc/observable\";\r\nimport { Vector2 } from \"@babylonjs/core/Maths/math\";\r\nimport { Rectangle } from \"../rectangle\";\r\nimport { Grid } from \"../grid\";\r\nimport { Image } from \"../image\";\r\nimport { Control } from \"../control\";\r\nimport { Container } from \"../container\";\r\nimport { Measure } from \"../../measure\";\r\nimport { AdvancedDynamicTexture } from \"../../advancedDynamicTexture\";\r\nimport { _ScrollViewerWindow } from \"./scrollViewerWindow\";\r\nimport { ScrollBar } from \"../sliders/scrollBar\";\r\nimport { ImageScrollBar } from \"../sliders/imageScrollBar\";\r\nimport { _TypeStore } from '@babylonjs/core/Misc/typeStore';\r\n\r\n/**\r\n * Class used to hold a viewer window and sliders in a grid\r\n*/\r\nexport class ScrollViewer extends Rectangle {\r\n private _grid: Grid;\r\n private _horizontalBarSpace: Rectangle;\r\n private _verticalBarSpace: Rectangle;\r\n private _dragSpace: Rectangle;\r\n private _horizontalBar: ScrollBar | ImageScrollBar;\r\n private _verticalBar: ScrollBar | ImageScrollBar;\r\n private _barColor: string;\r\n private _barBackground: string;\r\n private _barImage: Image;\r\n private _horizontalBarImage: Image;\r\n private _verticalBarImage: Image;\r\n private _barBackgroundImage: Image;\r\n private _horizontalBarBackgroundImage: Image;\r\n private _verticalBarBackgroundImage: Image;\r\n private _barSize: number = 20;\r\n private _window: _ScrollViewerWindow;\r\n private _pointerIsOver: Boolean = false;\r\n private _wheelPrecision: number = 0.05;\r\n private _onWheelObserver: Nullable<Observer<Vector2>>;\r\n private _clientWidth: number;\r\n private _clientHeight: number;\r\n private _useImageBar: Boolean;\r\n private _thumbLength: number = 0.5;\r\n private _thumbHeight: number = 1;\r\n private _barImageHeight: number = 1;\r\n private _horizontalBarImageHeight: number = 1;\r\n private _verticalBarImageHeight: number = 1;\r\n private _oldWindowContentsWidth: number = 0;\r\n private _oldWindowContentsHeight: number = 0;\r\n\r\n /**\r\n * Gets the horizontal scrollbar\r\n */\r\n public get horizontalBar(): ScrollBar | ImageScrollBar {\r\n return this._horizontalBar;\r\n }\r\n\r\n /**\r\n * Gets the vertical scrollbar\r\n */\r\n public get verticalBar(): ScrollBar | ImageScrollBar {\r\n return this._verticalBar;\r\n }\r\n\r\n /**\r\n * Adds a new control to the current container\r\n * @param control defines the control to add\r\n * @returns the current container\r\n */\r\n public addControl(control: Nullable<Control>): Container {\r\n if (!control) {\r\n return this;\r\n }\r\n\r\n this._window.addControl(control);\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Removes a control from the current container\r\n * @param control defines the control to remove\r\n * @returns the current container\r\n */\r\n public removeControl(control: Control): Container {\r\n this._window.removeControl(control);\r\n return this;\r\n }\r\n\r\n /** Gets the list of children */\r\n public get children(): Control[] {\r\n return this._window.children;\r\n }\r\n\r\n public _flagDescendantsAsMatrixDirty(): void {\r\n for (var child of this._children) {\r\n child._markMatrixAsDirty();\r\n }\r\n }\r\n\r\n /**\r\n * Freezes or unfreezes the controls in the window.\r\n * When controls are frozen, the scroll viewer can render a lot more quickly but updates to positions/sizes of controls\r\n * are not taken into account. If you want to change positions/sizes, unfreeze, perform the changes then freeze again\r\n */\r\n public get freezeControls(): boolean {\r\n return this._window.freezeControls;\r\n }\r\n\r\n public set freezeControls(value: boolean) {\r\n this._window.freezeControls = value;\r\n }\r\n\r\n /** Gets the bucket width */\r\n public get bucketWidth(): number {\r\n return this._window.bucketWidth;\r\n }\r\n\r\n /** Gets the bucket height */\r\n public get bucketHeight(): number {\r\n return this._window.bucketHeight;\r\n }\r\n\r\n /**\r\n * Sets the bucket sizes.\r\n * When freezeControls is true, setting a non-zero bucket size will improve performances by updating only\r\n * controls that are visible. The bucket sizes is used to subdivide (internally) the window area to smaller areas into which\r\n * controls are dispatched. So, the size should be roughly equals to the mean size of all the controls of\r\n * the window. To disable the usage of buckets, sets either width or height (or both) to 0.\r\n * Please note that using this option will raise the memory usage (the higher the bucket sizes, the less memory\r\n * used), that's why it is not enabled by default.\r\n * @param width width of the bucket\r\n * @param height height of the bucket\r\n */\r\n public setBucketSizes(width: number, height: number): void {\r\n this._window.setBucketSizes(width, height);\r\n }\r\n\r\n private _forceHorizontalBar: boolean = false;\r\n private _forceVerticalBar: boolean = false;\r\n\r\n /**\r\n * Forces the horizontal scroll bar to be displayed\r\n */\r\n public get forceHorizontalBar(): boolean {\r\n return this._forceHorizontalBar;\r\n }\r\n\r\n public set forceHorizontalBar(value: boolean) {\r\n this._grid.setRowDefinition(1, value ? this._barSize : 0, true);\r\n this._horizontalBar.isVisible = value;\r\n this._forceHorizontalBar = value;\r\n }\r\n\r\n /**\r\n * Forces the vertical scroll bar to be displayed\r\n */\r\n public get forceVerticalBar(): boolean {\r\n return this._forceVerticalBar;\r\n }\r\n\r\n public set forceVerticalBar(value: boolean) {\r\n this._grid.setColumnDefinition(1, value ? this._barSize : 0, true);\r\n this._verticalBar.isVisible = value;\r\n this._forceVerticalBar = value;\r\n }\r\n\r\n /**\r\n * Creates a new ScrollViewer\r\n * @param name of ScrollViewer\r\n */\r\n constructor(name?: string, isImageBased?: boolean) {\r\n super(name);\r\n\r\n this._useImageBar = isImageBased ? isImageBased : false;\r\n\r\n this.onDirtyObservable.add(() => {\r\n this._horizontalBarSpace.color = this.color;\r\n this._verticalBarSpace.color = this.color;\r\n this._dragSpace.color = this.color;\r\n });\r\n\r\n this.onPointerEnterObservable.add(() => {\r\n this._pointerIsOver = true;\r\n });\r\n\r\n this.onPointerOutObservable.add(() => {\r\n this._pointerIsOver = false;\r\n });\r\n\r\n this._grid = new Grid();\r\n if (this._useImageBar) {\r\n this._horizontalBar = new ImageScrollBar();\r\n this._verticalBar = new ImageScrollBar();\r\n }\r\n else {\r\n this._horizontalBar = new ScrollBar();\r\n this._verticalBar = new ScrollBar();\r\n }\r\n\r\n this._window = new _ScrollViewerWindow(\"scrollViewer_window\");\r\n this._window.horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n this._window.verticalAlignment = Control.VERTICAL_ALIGNMENT_TOP;\r\n\r\n this._grid.addColumnDefinition(1);\r\n this._grid.addColumnDefinition(0, true);\r\n this._grid.addRowDefinition(1);\r\n this._grid.addRowDefinition(0, true);\r\n\r\n super.addControl(this._grid);\r\n this._grid.addControl(this._window, 0, 0);\r\n\r\n this._verticalBarSpace = new Rectangle();\r\n this._verticalBarSpace.horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n this._verticalBarSpace.verticalAlignment = Control.VERTICAL_ALIGNMENT_TOP;\r\n this._verticalBarSpace.thickness = 1;\r\n this._grid.addControl(this._verticalBarSpace, 0, 1);\r\n this._addBar(this._verticalBar, this._verticalBarSpace, true, Math.PI);\r\n\r\n this._horizontalBarSpace = new Rectangle();\r\n this._horizontalBarSpace.horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n this._horizontalBarSpace.verticalAlignment = Control.VERTICAL_ALIGNMENT_TOP;\r\n this._horizontalBarSpace.thickness = 1;\r\n this._grid.addControl(this._horizontalBarSpace, 1, 0);\r\n this._addBar(this._horizontalBar, this._horizontalBarSpace, false, 0);\r\n\r\n this._dragSpace = new Rectangle();\r\n this._dragSpace.thickness = 1;\r\n this._grid.addControl(this._dragSpace, 1, 1);\r\n\r\n // Colors\r\n if (!this._useImageBar) {\r\n this.barColor = \"grey\";\r\n this.barBackground = \"transparent\";\r\n }\r\n }\r\n\r\n /** Reset the scroll viewer window to initial size */\r\n public resetWindow() {\r\n this._window.width = \"100%\";\r\n this._window.height = \"100%\";\r\n }\r\n\r\n protected _getTypeName(): string {\r\n return \"ScrollViewer\";\r\n }\r\n\r\n private _buildClientSizes() {\r\n let ratio = this.host.idealRatio;\r\n\r\n this._window.parentClientWidth = this._currentMeasure.width - (this._verticalBar.isVisible || this.forceVerticalBar ? this._barSize * ratio : 0) - 2 * this.thickness;\r\n this._window.parentClientHeight = this._currentMeasure.height - (this._horizontalBar.isVisible || this.forceHorizontalBar ? this._barSize * ratio : 0) - 2 * this.thickness;\r\n\r\n this._clientWidth = this._window.parentClientWidth;\r\n this._clientHeight = this._window.parentClientHeight;\r\n }\r\n\r\n protected _additionalProcessing(parentMeasure: Measure, context: CanvasRenderingContext2D): void {\r\n super._additionalProcessing(parentMeasure, context);\r\n\r\n this._buildClientSizes();\r\n }\r\n\r\n protected _postMeasure(): void {\r\n super._postMeasure();\r\n\r\n this._updateScroller();\r\n\r\n this._setWindowPosition(false);\r\n }\r\n\r\n /**\r\n * Gets or sets the mouse wheel precision\r\n * from 0 to 1 with a default value of 0.05\r\n * */\r\n public get wheelPrecision(): number {\r\n return this._wheelPrecision;\r\n }\r\n\r\n public set wheelPrecision(value: number) {\r\n if (this._wheelPrecision === value) {\r\n return;\r\n }\r\n\r\n if (value < 0) {\r\n value = 0;\r\n }\r\n\r\n if (value > 1) {\r\n value = 1;\r\n }\r\n\r\n this._wheelPrecision = value;\r\n }\r\n\r\n /** Gets or sets the scroll bar container background color */\r\n public get scrollBackground(): string {\r\n return this._horizontalBarSpace.background;\r\n }\r\n\r\n public set scrollBackground(color: string) {\r\n if (this._horizontalBarSpace.background === color) {\r\n return;\r\n }\r\n this._horizontalBarSpace.background = color;\r\n this._verticalBarSpace.background = color;\r\n }\r\n\r\n /** Gets or sets the bar color */\r\n public get barColor(): string {\r\n return this._barColor;\r\n }\r\n\r\n public set barColor(color: string) {\r\n if (this._barColor === color) {\r\n return;\r\n }\r\n\r\n this._barColor = color;\r\n this._horizontalBar.color = color;\r\n this._verticalBar.color = color;\r\n }\r\n\r\n /** Gets or sets the bar image */\r\n public get thumbImage(): Image {\r\n return this._barImage;\r\n }\r\n\r\n public set thumbImage(value: Image) {\r\n if (this._barImage === value) {\r\n return;\r\n }\r\n\r\n this._barImage = value;\r\n let hb = <ImageScrollBar>this._horizontalBar;\r\n let vb = <ImageScrollBar>this._verticalBar;\r\n hb.thumbImage = value;\r\n vb.thumbImage = value;\r\n }\r\n\r\n /** Gets or sets the horizontal bar image */\r\n public get horizontalThumbImage(): Image {\r\n return this._horizontalBarImage;\r\n }\r\n\r\n public set horizontalThumbImage(value: Image) {\r\n if (this._horizontalBarImage === value) {\r\n return;\r\n }\r\n\r\n this._horizontalBarImage = value;\r\n let hb = <ImageScrollBar>this._horizontalBar;\r\n hb.thumbImage = value;\r\n }\r\n\r\n /** Gets or sets the vertical bar image */\r\n public get verticalThumbImage(): Image {\r\n return this._verticalBarImage;\r\n }\r\n\r\n public set verticalThumbImage(value: Image) {\r\n if (this._verticalBarImage === value) {\r\n return;\r\n }\r\n\r\n this._verticalBarImage = value;\r\n let vb = <ImageScrollBar>this._verticalBar;\r\n vb.thumbImage = value;\r\n }\r\n\r\n /** Gets or sets the size of the bar */\r\n public get barSize(): number {\r\n return this._barSize;\r\n }\r\n\r\n public set barSize(value: number) {\r\n if (this._barSize === value) {\r\n return;\r\n }\r\n\r\n this._barSize = value;\r\n this._markAsDirty();\r\n\r\n if (this._horizontalBar.isVisible) {\r\n this._grid.setRowDefinition(1, this._barSize, true);\r\n }\r\n if (this._verticalBar.isVisible) {\r\n this._grid.setColumnDefinition(1, this._barSize, true);\r\n }\r\n }\r\n\r\n /** Gets or sets the length of the thumb */\r\n public get thumbLength(): number {\r\n return this._thumbLength;\r\n }\r\n\r\n public set thumbLength(value: number) {\r\n if (this._thumbLength === value) {\r\n return;\r\n }\r\n if (value <= 0) {\r\n value = 0.1;\r\n }\r\n if (value > 1) {\r\n value = 1;\r\n }\r\n this._thumbLength = value;\r\n var hb = <ImageScrollBar>this._horizontalBar;\r\n var vb = <ImageScrollBar>this._verticalBar;\r\n hb.thumbLength = value;\r\n vb.thumbLength = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the height of the thumb */\r\n public get thumbHeight(): number {\r\n return this._thumbHeight;\r\n }\r\n\r\n public set thumbHeight(value: number) {\r\n if (this._thumbHeight === value) {\r\n return;\r\n }\r\n if (value <= 0) {\r\n value = 0.1;\r\n }\r\n if (value > 1) {\r\n value = 1;\r\n }\r\n this._thumbHeight = value;\r\n var hb = <ImageScrollBar>this._horizontalBar;\r\n var vb = <ImageScrollBar>this._verticalBar;\r\n hb.thumbHeight = value;\r\n vb.thumbHeight = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the height of the bar image */\r\n public get barImageHeight(): number {\r\n return this._barImageHeight;\r\n }\r\n\r\n public set barImageHeight(value: number) {\r\n if (this._barImageHeight === value) {\r\n return;\r\n }\r\n if (value <= 0) {\r\n value = 0.1;\r\n }\r\n if (value > 1) {\r\n value = 1;\r\n }\r\n this._barImageHeight = value;\r\n var hb = <ImageScrollBar>this._horizontalBar;\r\n var vb = <ImageScrollBar>this._verticalBar;\r\n hb.barImageHeight = value;\r\n vb.barImageHeight = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the height of the horizontal bar image */\r\n public get horizontalBarImageHeight(): number {\r\n return this._horizontalBarImageHeight;\r\n }\r\n\r\n public set horizontalBarImageHeight(value: number) {\r\n if (this._horizontalBarImageHeight === value) {\r\n return;\r\n }\r\n if (value <= 0) {\r\n value = 0.1;\r\n }\r\n if (value > 1) {\r\n value = 1;\r\n }\r\n this._horizontalBarImageHeight = value;\r\n var hb = <ImageScrollBar>this._horizontalBar;\r\n hb.barImageHeight = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the height of the vertical bar image */\r\n public get verticalBarImageHeight(): number {\r\n return this._verticalBarImageHeight;\r\n }\r\n\r\n public set verticalBarImageHeight(value: number) {\r\n if (this._verticalBarImageHeight === value) {\r\n return;\r\n }\r\n if (value <= 0) {\r\n value = 0.1;\r\n }\r\n if (value > 1) {\r\n value = 1;\r\n }\r\n this._verticalBarImageHeight = value;\r\n var vb = <ImageScrollBar>this._verticalBar;\r\n vb.barImageHeight = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the bar background */\r\n public get barBackground(): string {\r\n return this._barBackground;\r\n }\r\n\r\n public set barBackground(color: string) {\r\n if (this._barBackground === color) {\r\n return;\r\n }\r\n\r\n this._barBackground = color;\r\n let hb = <ScrollBar>this._horizontalBar;\r\n let vb = <ScrollBar>this._verticalBar;\r\n hb.background = color;\r\n vb.background = color;\r\n this._dragSpace.background = color;\r\n }\r\n\r\n /** Gets or sets the bar background image */\r\n public get barImage(): Image {\r\n return this._barBackgroundImage;\r\n }\r\n\r\n public set barImage(value: Image) {\r\n if (this._barBackgroundImage === value) {\r\n }\r\n\r\n this._barBackgroundImage = value;\r\n let hb = <ImageScrollBar>this._horizontalBar;\r\n let vb = <ImageScrollBar>this._verticalBar;\r\n hb.backgroundImage = value;\r\n vb.backgroundImage = value;\r\n }\r\n\r\n /** Gets or sets the horizontal bar background image */\r\n public get horizontalBarImage(): Image {\r\n return this._horizontalBarBackgroundImage;\r\n }\r\n\r\n public set horizontalBarImage(value: Image) {\r\n if (this._horizontalBarBackgroundImage === value) {\r\n }\r\n\r\n this._horizontalBarBackgroundImage = value;\r\n let hb = <ImageScrollBar>this._horizontalBar;\r\n hb.backgroundImage = value;\r\n }\r\n\r\n /** Gets or sets the vertical bar background image */\r\n public get verticalBarImage(): Image {\r\n return this._verticalBarBackgroundImage;\r\n }\r\n\r\n public set verticalBarImage(value: Image) {\r\n if (this._verticalBarBackgroundImage === value) {\r\n }\r\n\r\n this._verticalBarBackgroundImage = value;\r\n let vb = <ImageScrollBar>this._verticalBar;\r\n vb.backgroundImage = value;\r\n }\r\n\r\n private _setWindowPosition(force = true): void {\r\n let ratio = this.host.idealRatio;\r\n let windowContentsWidth = this._window._currentMeasure.width;\r\n let windowContentsHeight = this._window._currentMeasure.height;\r\n\r\n if (!force && this._oldWindowContentsWidth === windowContentsWidth && this._oldWindowContentsHeight === windowContentsHeight) {\r\n return;\r\n }\r\n\r\n this._oldWindowContentsWidth = windowContentsWidth;\r\n this._oldWindowContentsHeight = windowContentsHeight;\r\n\r\n const _endLeft = this._clientWidth - windowContentsWidth;\r\n const _endTop = this._clientHeight - windowContentsHeight;\r\n\r\n const newLeft = (this._horizontalBar.value / ratio) * _endLeft + \"px\";\r\n const newTop = (this._verticalBar.value / ratio) * _endTop + \"px\";\r\n\r\n if (newLeft !== this._window.left) {\r\n this._window.left = newLeft;\r\n if (!this.freezeControls) {\r\n this._rebuildLayout = true;\r\n }\r\n }\r\n\r\n if (newTop !== this._window.top) {\r\n this._window.top = newTop;\r\n if (!this.freezeControls) {\r\n this._rebuildLayout = true;\r\n }\r\n }\r\n }\r\n\r\n /** @hidden */\r\n private _updateScroller(): void {\r\n let windowContentsWidth = this._window._currentMeasure.width;\r\n let windowContentsHeight = this._window._currentMeasure.height;\r\n\r\n if (this._horizontalBar.isVisible && windowContentsWidth <= this._clientWidth && !this.forceHorizontalBar) {\r\n this._grid.setRowDefinition(1, 0, true);\r\n this._horizontalBar.isVisible = false;\r\n this._horizontalBar.value = 0;\r\n this._rebuildLayout = true;\r\n }\r\n else if (!this._horizontalBar.isVisible && (windowContentsWidth > this._clientWidth || this.forceHorizontalBar)) {\r\n this._grid.setRowDefinition(1, this._barSize, true);\r\n this._horizontalBar.isVisible = true;\r\n this._rebuildLayout = true;\r\n }\r\n\r\n if (this._verticalBar.isVisible && windowContentsHeight <= this._clientHeight && !this.forceVerticalBar) {\r\n this._grid.setColumnDefinition(1, 0, true);\r\n this._verticalBar.isVisible = false;\r\n this._verticalBar.value = 0;\r\n this._rebuildLayout = true;\r\n }\r\n else if (!this._verticalBar.isVisible && (windowContentsHeight > this._clientHeight || this.forceVerticalBar)) {\r\n this._grid.setColumnDefinition(1, this._barSize, true);\r\n this._verticalBar.isVisible = true;\r\n this._rebuildLayout = true;\r\n }\r\n\r\n this._buildClientSizes();\r\n\r\n let ratio = this.host.idealRatio;\r\n\r\n this._horizontalBar.thumbWidth = this._thumbLength * 0.9 * (this._clientWidth / ratio) + \"px\";\r\n this._verticalBar.thumbWidth = this._thumbLength * 0.9 * (this._clientHeight / ratio) + \"px\";\r\n }\r\n\r\n public _link(host: AdvancedDynamicTexture): void {\r\n super._link(host);\r\n\r\n this._attachWheel();\r\n }\r\n\r\n /** @hidden */\r\n private _addBar(barControl: ScrollBar | ImageScrollBar, barContainer: Rectangle, isVertical: boolean, rotation: number) {\r\n barControl.paddingLeft = 0;\r\n barControl.width = \"100%\";\r\n barControl.height = \"100%\";\r\n barControl.barOffset = 0;\r\n barControl.value = 0;\r\n barControl.maximum = 1;\r\n barControl.horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_CENTER;\r\n barControl.verticalAlignment = Control.VERTICAL_ALIGNMENT_CENTER;\r\n barControl.isVertical = isVertical;\r\n barControl.rotation = rotation;\r\n barControl.isVisible = false;\r\n\r\n barContainer.addControl(barControl);\r\n\r\n barControl.onValueChangedObservable.add((value) => {\r\n this._setWindowPosition();\r\n });\r\n }\r\n\r\n /** @hidden */\r\n private _attachWheel() {\r\n if (!this._host || this._onWheelObserver) {\r\n return;\r\n }\r\n\r\n this._onWheelObserver = this.onWheelObservable.add((pi) => {\r\n if (!this._pointerIsOver) {\r\n return;\r\n }\r\n if (this._verticalBar.isVisible == true) {\r\n if (pi.y < 0 && this._verticalBar.value > 0) {\r\n this._verticalBar.value -= this._wheelPrecision;\r\n } else if (pi.y > 0 && this._verticalBar.value < this._verticalBar.maximum) {\r\n this._verticalBar.value += this._wheelPrecision;\r\n }\r\n }\r\n if (this._horizontalBar.isVisible == true) {\r\n if (pi.x < 0 && this._horizontalBar.value < this._horizontalBar.maximum) {\r\n this._horizontalBar.value += this._wheelPrecision;\r\n } else if (pi.x > 0 && this._horizontalBar.value > 0) {\r\n this._horizontalBar.value -= this._wheelPrecision;\r\n }\r\n }\r\n });\r\n }\r\n\r\n public _renderHighlightSpecific(context: CanvasRenderingContext2D): void {\r\n if (!this.isHighlighted) {\r\n return;\r\n }\r\n\r\n super._renderHighlightSpecific(context);\r\n\r\n this._grid._renderHighlightSpecific(context);\r\n\r\n context.restore();\r\n }\r\n\r\n /** Releases associated resources */\r\n public dispose() {\r\n this.onWheelObservable.remove(this._onWheelObserver);\r\n this._onWheelObserver = null;\r\n super.dispose();\r\n }\r\n}\r\n_TypeStore.RegisteredTypes[\"BABYLON.GUI.ScrollViewer\"] = ScrollViewer;"]}
|
|
1
|
+
{"version":3,"file":"scrollViewer.js","sourceRoot":"","sources":["../../../../../sourceES6/gui/src/2D/controls/scrollViewers/scrollViewer.ts"],"names":[],"mappings":"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","sourcesContent":["import { Nullable } from \"@babylonjs/core/types\";\r\nimport { Observer } from \"@babylonjs/core/Misc/observable\";\r\nimport { Vector2 } from \"@babylonjs/core/Maths/math\";\r\nimport { Rectangle } from \"../rectangle\";\r\nimport { Grid } from \"../grid\";\r\nimport { Image } from \"../image\";\r\nimport { Control } from \"../control\";\r\nimport { Container } from \"../container\";\r\nimport { Measure } from \"../../measure\";\r\nimport { AdvancedDynamicTexture } from \"../../advancedDynamicTexture\";\r\nimport { _ScrollViewerWindow } from \"./scrollViewerWindow\";\r\nimport { ScrollBar } from \"../sliders/scrollBar\";\r\nimport { ImageScrollBar } from \"../sliders/imageScrollBar\";\r\nimport { RegisterClass } from '@babylonjs/core/Misc/typeStore';\r\nimport { ICanvasRenderingContext } from \"@babylonjs/core/Engines/ICanvas\";\r\n\r\n/**\r\n * Class used to hold a viewer window and sliders in a grid\r\n*/\r\nexport class ScrollViewer extends Rectangle {\r\n private _grid: Grid;\r\n private _horizontalBarSpace: Rectangle;\r\n private _verticalBarSpace: Rectangle;\r\n private _dragSpace: Rectangle;\r\n private _horizontalBar: ScrollBar | ImageScrollBar;\r\n private _verticalBar: ScrollBar | ImageScrollBar;\r\n private _barColor: string;\r\n private _barBackground: string;\r\n private _barImage: Image;\r\n private _horizontalBarImage: Image;\r\n private _verticalBarImage: Image;\r\n private _barBackgroundImage: Image;\r\n private _horizontalBarBackgroundImage: Image;\r\n private _verticalBarBackgroundImage: Image;\r\n private _barSize: number = 20;\r\n private _window: _ScrollViewerWindow;\r\n private _pointerIsOver: Boolean = false;\r\n private _wheelPrecision: number = 0.05;\r\n private _onWheelObserver: Nullable<Observer<Vector2>>;\r\n private _clientWidth: number;\r\n private _clientHeight: number;\r\n private _useImageBar: Boolean;\r\n private _thumbLength: number = 0.5;\r\n private _thumbHeight: number = 1;\r\n private _barImageHeight: number = 1;\r\n private _horizontalBarImageHeight: number = 1;\r\n private _verticalBarImageHeight: number = 1;\r\n private _oldWindowContentsWidth: number = 0;\r\n private _oldWindowContentsHeight: number = 0;\r\n\r\n /**\r\n * Gets the horizontal scrollbar\r\n */\r\n public get horizontalBar(): ScrollBar | ImageScrollBar {\r\n return this._horizontalBar;\r\n }\r\n\r\n /**\r\n * Gets the vertical scrollbar\r\n */\r\n public get verticalBar(): ScrollBar | ImageScrollBar {\r\n return this._verticalBar;\r\n }\r\n\r\n /**\r\n * Adds a new control to the current container\r\n * @param control defines the control to add\r\n * @returns the current container\r\n */\r\n public addControl(control: Nullable<Control>): Container {\r\n if (!control) {\r\n return this;\r\n }\r\n\r\n this._window.addControl(control);\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Removes a control from the current container\r\n * @param control defines the control to remove\r\n * @returns the current container\r\n */\r\n public removeControl(control: Control): Container {\r\n this._window.removeControl(control);\r\n return this;\r\n }\r\n\r\n /** Gets the list of children */\r\n public get children(): Control[] {\r\n return this._window.children;\r\n }\r\n\r\n public _flagDescendantsAsMatrixDirty(): void {\r\n for (var child of this._children) {\r\n child._markMatrixAsDirty();\r\n }\r\n }\r\n\r\n /**\r\n * Freezes or unfreezes the controls in the window.\r\n * When controls are frozen, the scroll viewer can render a lot more quickly but updates to positions/sizes of controls\r\n * are not taken into account. If you want to change positions/sizes, unfreeze, perform the changes then freeze again\r\n */\r\n public get freezeControls(): boolean {\r\n return this._window.freezeControls;\r\n }\r\n\r\n public set freezeControls(value: boolean) {\r\n this._window.freezeControls = value;\r\n }\r\n\r\n /** Gets the bucket width */\r\n public get bucketWidth(): number {\r\n return this._window.bucketWidth;\r\n }\r\n\r\n /** Gets the bucket height */\r\n public get bucketHeight(): number {\r\n return this._window.bucketHeight;\r\n }\r\n\r\n /**\r\n * Sets the bucket sizes.\r\n * When freezeControls is true, setting a non-zero bucket size will improve performances by updating only\r\n * controls that are visible. The bucket sizes is used to subdivide (internally) the window area to smaller areas into which\r\n * controls are dispatched. So, the size should be roughly equals to the mean size of all the controls of\r\n * the window. To disable the usage of buckets, sets either width or height (or both) to 0.\r\n * Please note that using this option will raise the memory usage (the higher the bucket sizes, the less memory\r\n * used), that's why it is not enabled by default.\r\n * @param width width of the bucket\r\n * @param height height of the bucket\r\n */\r\n public setBucketSizes(width: number, height: number): void {\r\n this._window.setBucketSizes(width, height);\r\n }\r\n\r\n private _forceHorizontalBar: boolean = false;\r\n private _forceVerticalBar: boolean = false;\r\n\r\n /**\r\n * Forces the horizontal scroll bar to be displayed\r\n */\r\n public get forceHorizontalBar(): boolean {\r\n return this._forceHorizontalBar;\r\n }\r\n\r\n public set forceHorizontalBar(value: boolean) {\r\n this._grid.setRowDefinition(1, value ? this._barSize : 0, true);\r\n this._horizontalBar.isVisible = value;\r\n this._forceHorizontalBar = value;\r\n }\r\n\r\n /**\r\n * Forces the vertical scroll bar to be displayed\r\n */\r\n public get forceVerticalBar(): boolean {\r\n return this._forceVerticalBar;\r\n }\r\n\r\n public set forceVerticalBar(value: boolean) {\r\n this._grid.setColumnDefinition(1, value ? this._barSize : 0, true);\r\n this._verticalBar.isVisible = value;\r\n this._forceVerticalBar = value;\r\n }\r\n\r\n /**\r\n * Creates a new ScrollViewer\r\n * @param name of ScrollViewer\r\n */\r\n constructor(name?: string, isImageBased?: boolean) {\r\n super(name);\r\n\r\n this._useImageBar = isImageBased ? isImageBased : false;\r\n\r\n this.onDirtyObservable.add(() => {\r\n this._horizontalBarSpace.color = this.color;\r\n this._verticalBarSpace.color = this.color;\r\n this._dragSpace.color = this.color;\r\n });\r\n\r\n this.onPointerEnterObservable.add(() => {\r\n this._pointerIsOver = true;\r\n });\r\n\r\n this.onPointerOutObservable.add(() => {\r\n this._pointerIsOver = false;\r\n });\r\n\r\n this._grid = new Grid();\r\n if (this._useImageBar) {\r\n this._horizontalBar = new ImageScrollBar();\r\n this._verticalBar = new ImageScrollBar();\r\n }\r\n else {\r\n this._horizontalBar = new ScrollBar();\r\n this._verticalBar = new ScrollBar();\r\n }\r\n\r\n this._window = new _ScrollViewerWindow(\"scrollViewer_window\");\r\n this._window.horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n this._window.verticalAlignment = Control.VERTICAL_ALIGNMENT_TOP;\r\n\r\n this._grid.addColumnDefinition(1);\r\n this._grid.addColumnDefinition(0, true);\r\n this._grid.addRowDefinition(1);\r\n this._grid.addRowDefinition(0, true);\r\n\r\n super.addControl(this._grid);\r\n this._grid.addControl(this._window, 0, 0);\r\n\r\n this._verticalBarSpace = new Rectangle();\r\n this._verticalBarSpace.horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n this._verticalBarSpace.verticalAlignment = Control.VERTICAL_ALIGNMENT_TOP;\r\n this._verticalBarSpace.thickness = 1;\r\n this._grid.addControl(this._verticalBarSpace, 0, 1);\r\n this._addBar(this._verticalBar, this._verticalBarSpace, true, Math.PI);\r\n\r\n this._horizontalBarSpace = new Rectangle();\r\n this._horizontalBarSpace.horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;\r\n this._horizontalBarSpace.verticalAlignment = Control.VERTICAL_ALIGNMENT_TOP;\r\n this._horizontalBarSpace.thickness = 1;\r\n this._grid.addControl(this._horizontalBarSpace, 1, 0);\r\n this._addBar(this._horizontalBar, this._horizontalBarSpace, false, 0);\r\n\r\n this._dragSpace = new Rectangle();\r\n this._dragSpace.thickness = 1;\r\n this._grid.addControl(this._dragSpace, 1, 1);\r\n\r\n // Colors\r\n if (!this._useImageBar) {\r\n this.barColor = \"grey\";\r\n this.barBackground = \"transparent\";\r\n }\r\n }\r\n\r\n /** Reset the scroll viewer window to initial size */\r\n public resetWindow() {\r\n this._window.width = \"100%\";\r\n this._window.height = \"100%\";\r\n }\r\n\r\n protected _getTypeName(): string {\r\n return \"ScrollViewer\";\r\n }\r\n\r\n private _buildClientSizes() {\r\n let ratio = this.host.idealRatio;\r\n\r\n this._window.parentClientWidth = this._currentMeasure.width - (this._verticalBar.isVisible || this.forceVerticalBar ? this._barSize * ratio : 0) - 2 * this.thickness;\r\n this._window.parentClientHeight = this._currentMeasure.height - (this._horizontalBar.isVisible || this.forceHorizontalBar ? this._barSize * ratio : 0) - 2 * this.thickness;\r\n\r\n this._clientWidth = this._window.parentClientWidth;\r\n this._clientHeight = this._window.parentClientHeight;\r\n }\r\n\r\n protected _additionalProcessing(parentMeasure: Measure, context: ICanvasRenderingContext): void {\r\n super._additionalProcessing(parentMeasure, context);\r\n\r\n this._buildClientSizes();\r\n }\r\n\r\n protected _postMeasure(): void {\r\n super._postMeasure();\r\n\r\n this._updateScroller();\r\n\r\n this._setWindowPosition(false);\r\n }\r\n\r\n /**\r\n * Gets or sets the mouse wheel precision\r\n * from 0 to 1 with a default value of 0.05\r\n * */\r\n public get wheelPrecision(): number {\r\n return this._wheelPrecision;\r\n }\r\n\r\n public set wheelPrecision(value: number) {\r\n if (this._wheelPrecision === value) {\r\n return;\r\n }\r\n\r\n if (value < 0) {\r\n value = 0;\r\n }\r\n\r\n if (value > 1) {\r\n value = 1;\r\n }\r\n\r\n this._wheelPrecision = value;\r\n }\r\n\r\n /** Gets or sets the scroll bar container background color */\r\n public get scrollBackground(): string {\r\n return this._horizontalBarSpace.background;\r\n }\r\n\r\n public set scrollBackground(color: string) {\r\n if (this._horizontalBarSpace.background === color) {\r\n return;\r\n }\r\n this._horizontalBarSpace.background = color;\r\n this._verticalBarSpace.background = color;\r\n }\r\n\r\n /** Gets or sets the bar color */\r\n public get barColor(): string {\r\n return this._barColor;\r\n }\r\n\r\n public set barColor(color: string) {\r\n if (this._barColor === color) {\r\n return;\r\n }\r\n\r\n this._barColor = color;\r\n this._horizontalBar.color = color;\r\n this._verticalBar.color = color;\r\n }\r\n\r\n /** Gets or sets the bar image */\r\n public get thumbImage(): Image {\r\n return this._barImage;\r\n }\r\n\r\n public set thumbImage(value: Image) {\r\n if (this._barImage === value) {\r\n return;\r\n }\r\n\r\n this._barImage = value;\r\n let hb = <ImageScrollBar>this._horizontalBar;\r\n let vb = <ImageScrollBar>this._verticalBar;\r\n hb.thumbImage = value;\r\n vb.thumbImage = value;\r\n }\r\n\r\n /** Gets or sets the horizontal bar image */\r\n public get horizontalThumbImage(): Image {\r\n return this._horizontalBarImage;\r\n }\r\n\r\n public set horizontalThumbImage(value: Image) {\r\n if (this._horizontalBarImage === value) {\r\n return;\r\n }\r\n\r\n this._horizontalBarImage = value;\r\n let hb = <ImageScrollBar>this._horizontalBar;\r\n hb.thumbImage = value;\r\n }\r\n\r\n /** Gets or sets the vertical bar image */\r\n public get verticalThumbImage(): Image {\r\n return this._verticalBarImage;\r\n }\r\n\r\n public set verticalThumbImage(value: Image) {\r\n if (this._verticalBarImage === value) {\r\n return;\r\n }\r\n\r\n this._verticalBarImage = value;\r\n let vb = <ImageScrollBar>this._verticalBar;\r\n vb.thumbImage = value;\r\n }\r\n\r\n /** Gets or sets the size of the bar */\r\n public get barSize(): number {\r\n return this._barSize;\r\n }\r\n\r\n public set barSize(value: number) {\r\n if (this._barSize === value) {\r\n return;\r\n }\r\n\r\n this._barSize = value;\r\n this._markAsDirty();\r\n\r\n if (this._horizontalBar.isVisible) {\r\n this._grid.setRowDefinition(1, this._barSize, true);\r\n }\r\n if (this._verticalBar.isVisible) {\r\n this._grid.setColumnDefinition(1, this._barSize, true);\r\n }\r\n }\r\n\r\n /** Gets or sets the length of the thumb */\r\n public get thumbLength(): number {\r\n return this._thumbLength;\r\n }\r\n\r\n public set thumbLength(value: number) {\r\n if (this._thumbLength === value) {\r\n return;\r\n }\r\n if (value <= 0) {\r\n value = 0.1;\r\n }\r\n if (value > 1) {\r\n value = 1;\r\n }\r\n this._thumbLength = value;\r\n var hb = <ImageScrollBar>this._horizontalBar;\r\n var vb = <ImageScrollBar>this._verticalBar;\r\n hb.thumbLength = value;\r\n vb.thumbLength = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the height of the thumb */\r\n public get thumbHeight(): number {\r\n return this._thumbHeight;\r\n }\r\n\r\n public set thumbHeight(value: number) {\r\n if (this._thumbHeight === value) {\r\n return;\r\n }\r\n if (value <= 0) {\r\n value = 0.1;\r\n }\r\n if (value > 1) {\r\n value = 1;\r\n }\r\n this._thumbHeight = value;\r\n var hb = <ImageScrollBar>this._horizontalBar;\r\n var vb = <ImageScrollBar>this._verticalBar;\r\n hb.thumbHeight = value;\r\n vb.thumbHeight = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the height of the bar image */\r\n public get barImageHeight(): number {\r\n return this._barImageHeight;\r\n }\r\n\r\n public set barImageHeight(value: number) {\r\n if (this._barImageHeight === value) {\r\n return;\r\n }\r\n if (value <= 0) {\r\n value = 0.1;\r\n }\r\n if (value > 1) {\r\n value = 1;\r\n }\r\n this._barImageHeight = value;\r\n var hb = <ImageScrollBar>this._horizontalBar;\r\n var vb = <ImageScrollBar>this._verticalBar;\r\n hb.barImageHeight = value;\r\n vb.barImageHeight = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the height of the horizontal bar image */\r\n public get horizontalBarImageHeight(): number {\r\n return this._horizontalBarImageHeight;\r\n }\r\n\r\n public set horizontalBarImageHeight(value: number) {\r\n if (this._horizontalBarImageHeight === value) {\r\n return;\r\n }\r\n if (value <= 0) {\r\n value = 0.1;\r\n }\r\n if (value > 1) {\r\n value = 1;\r\n }\r\n this._horizontalBarImageHeight = value;\r\n var hb = <ImageScrollBar>this._horizontalBar;\r\n hb.barImageHeight = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the height of the vertical bar image */\r\n public get verticalBarImageHeight(): number {\r\n return this._verticalBarImageHeight;\r\n }\r\n\r\n public set verticalBarImageHeight(value: number) {\r\n if (this._verticalBarImageHeight === value) {\r\n return;\r\n }\r\n if (value <= 0) {\r\n value = 0.1;\r\n }\r\n if (value > 1) {\r\n value = 1;\r\n }\r\n this._verticalBarImageHeight = value;\r\n var vb = <ImageScrollBar>this._verticalBar;\r\n vb.barImageHeight = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the bar background */\r\n public get barBackground(): string {\r\n return this._barBackground;\r\n }\r\n\r\n public set barBackground(color: string) {\r\n if (this._barBackground === color) {\r\n return;\r\n }\r\n\r\n this._barBackground = color;\r\n let hb = <ScrollBar>this._horizontalBar;\r\n let vb = <ScrollBar>this._verticalBar;\r\n hb.background = color;\r\n vb.background = color;\r\n this._dragSpace.background = color;\r\n }\r\n\r\n /** Gets or sets the bar background image */\r\n public get barImage(): Image {\r\n return this._barBackgroundImage;\r\n }\r\n\r\n public set barImage(value: Image) {\r\n if (this._barBackgroundImage === value) {\r\n }\r\n\r\n this._barBackgroundImage = value;\r\n let hb = <ImageScrollBar>this._horizontalBar;\r\n let vb = <ImageScrollBar>this._verticalBar;\r\n hb.backgroundImage = value;\r\n vb.backgroundImage = value;\r\n }\r\n\r\n /** Gets or sets the horizontal bar background image */\r\n public get horizontalBarImage(): Image {\r\n return this._horizontalBarBackgroundImage;\r\n }\r\n\r\n public set horizontalBarImage(value: Image) {\r\n if (this._horizontalBarBackgroundImage === value) {\r\n }\r\n\r\n this._horizontalBarBackgroundImage = value;\r\n let hb = <ImageScrollBar>this._horizontalBar;\r\n hb.backgroundImage = value;\r\n }\r\n\r\n /** Gets or sets the vertical bar background image */\r\n public get verticalBarImage(): Image {\r\n return this._verticalBarBackgroundImage;\r\n }\r\n\r\n public set verticalBarImage(value: Image) {\r\n if (this._verticalBarBackgroundImage === value) {\r\n }\r\n\r\n this._verticalBarBackgroundImage = value;\r\n let vb = <ImageScrollBar>this._verticalBar;\r\n vb.backgroundImage = value;\r\n }\r\n\r\n private _setWindowPosition(force = true): void {\r\n let ratio = this.host.idealRatio;\r\n let windowContentsWidth = this._window._currentMeasure.width;\r\n let windowContentsHeight = this._window._currentMeasure.height;\r\n\r\n if (!force && this._oldWindowContentsWidth === windowContentsWidth && this._oldWindowContentsHeight === windowContentsHeight) {\r\n return;\r\n }\r\n\r\n this._oldWindowContentsWidth = windowContentsWidth;\r\n this._oldWindowContentsHeight = windowContentsHeight;\r\n\r\n const _endLeft = this._clientWidth - windowContentsWidth;\r\n const _endTop = this._clientHeight - windowContentsHeight;\r\n\r\n const newLeft = (this._horizontalBar.value / ratio) * _endLeft + \"px\";\r\n const newTop = (this._verticalBar.value / ratio) * _endTop + \"px\";\r\n\r\n if (newLeft !== this._window.left) {\r\n this._window.left = newLeft;\r\n if (!this.freezeControls) {\r\n this._rebuildLayout = true;\r\n }\r\n }\r\n\r\n if (newTop !== this._window.top) {\r\n this._window.top = newTop;\r\n if (!this.freezeControls) {\r\n this._rebuildLayout = true;\r\n }\r\n }\r\n }\r\n\r\n /** @hidden */\r\n private _updateScroller(): void {\r\n let windowContentsWidth = this._window._currentMeasure.width;\r\n let windowContentsHeight = this._window._currentMeasure.height;\r\n\r\n if (this._horizontalBar.isVisible && windowContentsWidth <= this._clientWidth && !this.forceHorizontalBar) {\r\n this._grid.setRowDefinition(1, 0, true);\r\n this._horizontalBar.isVisible = false;\r\n this._horizontalBar.value = 0;\r\n this._rebuildLayout = true;\r\n }\r\n else if (!this._horizontalBar.isVisible && (windowContentsWidth > this._clientWidth || this.forceHorizontalBar)) {\r\n this._grid.setRowDefinition(1, this._barSize, true);\r\n this._horizontalBar.isVisible = true;\r\n this._rebuildLayout = true;\r\n }\r\n\r\n if (this._verticalBar.isVisible && windowContentsHeight <= this._clientHeight && !this.forceVerticalBar) {\r\n this._grid.setColumnDefinition(1, 0, true);\r\n this._verticalBar.isVisible = false;\r\n this._verticalBar.value = 0;\r\n this._rebuildLayout = true;\r\n }\r\n else if (!this._verticalBar.isVisible && (windowContentsHeight > this._clientHeight || this.forceVerticalBar)) {\r\n this._grid.setColumnDefinition(1, this._barSize, true);\r\n this._verticalBar.isVisible = true;\r\n this._rebuildLayout = true;\r\n }\r\n\r\n this._buildClientSizes();\r\n\r\n let ratio = this.host.idealRatio;\r\n\r\n this._horizontalBar.thumbWidth = this._thumbLength * 0.9 * (this._clientWidth / ratio) + \"px\";\r\n this._verticalBar.thumbWidth = this._thumbLength * 0.9 * (this._clientHeight / ratio) + \"px\";\r\n }\r\n\r\n public _link(host: AdvancedDynamicTexture): void {\r\n super._link(host);\r\n\r\n this._attachWheel();\r\n }\r\n\r\n /** @hidden */\r\n private _addBar(barControl: ScrollBar | ImageScrollBar, barContainer: Rectangle, isVertical: boolean, rotation: number) {\r\n barControl.paddingLeft = 0;\r\n barControl.width = \"100%\";\r\n barControl.height = \"100%\";\r\n barControl.barOffset = 0;\r\n barControl.value = 0;\r\n barControl.maximum = 1;\r\n barControl.horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_CENTER;\r\n barControl.verticalAlignment = Control.VERTICAL_ALIGNMENT_CENTER;\r\n barControl.isVertical = isVertical;\r\n barControl.rotation = rotation;\r\n barControl.isVisible = false;\r\n\r\n barContainer.addControl(barControl);\r\n\r\n barControl.onValueChangedObservable.add((value) => {\r\n this._setWindowPosition();\r\n });\r\n }\r\n\r\n /** @hidden */\r\n private _attachWheel() {\r\n if (!this._host || this._onWheelObserver) {\r\n return;\r\n }\r\n\r\n this._onWheelObserver = this.onWheelObservable.add((pi) => {\r\n if (!this._pointerIsOver || this.isReadOnly) {\r\n return;\r\n }\r\n if (this._verticalBar.isVisible == true) {\r\n if (pi.y < 0 && this._verticalBar.value > 0) {\r\n this._verticalBar.value -= this._wheelPrecision;\r\n } else if (pi.y > 0 && this._verticalBar.value < this._verticalBar.maximum) {\r\n this._verticalBar.value += this._wheelPrecision;\r\n }\r\n }\r\n if (this._horizontalBar.isVisible == true) {\r\n if (pi.x < 0 && this._horizontalBar.value < this._horizontalBar.maximum) {\r\n this._horizontalBar.value += this._wheelPrecision;\r\n } else if (pi.x > 0 && this._horizontalBar.value > 0) {\r\n this._horizontalBar.value -= this._wheelPrecision;\r\n }\r\n }\r\n });\r\n }\r\n\r\n public _renderHighlightSpecific(context: ICanvasRenderingContext): void {\r\n if (!this.isHighlighted) {\r\n return;\r\n }\r\n\r\n super._renderHighlightSpecific(context);\r\n\r\n this._grid._renderHighlightSpecific(context);\r\n\r\n context.restore();\r\n }\r\n\r\n /** Releases associated resources */\r\n public dispose() {\r\n this.onWheelObservable.remove(this._onWheelObserver);\r\n this._onWheelObserver = null;\r\n super.dispose();\r\n }\r\n}\r\nRegisterClass(\"BABYLON.GUI.ScrollViewer\", ScrollViewer);"]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Measure } from "../../measure";
|
|
2
2
|
import { Container } from "../container";
|
|
3
|
+
import { ICanvasRenderingContext } from '@babylonjs/core/Engines/ICanvas';
|
|
3
4
|
/**
|
|
4
5
|
* Class used to hold a the container for ScrollViewer
|
|
5
6
|
* @hidden
|
|
@@ -33,12 +34,12 @@ export declare class _ScrollViewerWindow extends Container {
|
|
|
33
34
|
constructor(name?: string);
|
|
34
35
|
protected _getTypeName(): string;
|
|
35
36
|
/** @hidden */
|
|
36
|
-
protected _additionalProcessing(parentMeasure: Measure, context:
|
|
37
|
+
protected _additionalProcessing(parentMeasure: Measure, context: ICanvasRenderingContext): void;
|
|
37
38
|
/** @hidden */
|
|
38
|
-
_layout(parentMeasure: Measure, context:
|
|
39
|
+
_layout(parentMeasure: Measure, context: ICanvasRenderingContext): boolean;
|
|
39
40
|
private _scrollChildren;
|
|
40
41
|
private _scrollChildrenWithBuckets;
|
|
41
42
|
/** @hidden */
|
|
42
|
-
_draw(context:
|
|
43
|
+
_draw(context: ICanvasRenderingContext, invalidatedRectangle?: Measure): void;
|
|
43
44
|
protected _postMeasure(): void;
|
|
44
45
|
}
|