@babylonjs/gui 5.24.0 → 5.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/2D/advancedDynamicTexture.d.ts +28 -28
- package/2D/advancedDynamicTexture.js +36 -33
- package/2D/advancedDynamicTexture.js.map +1 -1
- package/2D/controls/button.d.ts +6 -32
- package/2D/controls/button.js +6 -32
- package/2D/controls/button.js.map +1 -1
- package/2D/controls/checkbox.d.ts +2 -8
- package/2D/controls/checkbox.js +2 -8
- package/2D/controls/checkbox.js.map +1 -1
- package/2D/controls/colorpicker.d.ts +2 -4
- package/2D/controls/colorpicker.js +2 -4
- package/2D/controls/colorpicker.js.map +1 -1
- package/2D/controls/container.d.ts +20 -43
- package/2D/controls/container.js +20 -43
- package/2D/controls/container.js.map +1 -1
- package/2D/controls/control.d.ts +71 -144
- package/2D/controls/control.js +67 -140
- package/2D/controls/control.js.map +1 -1
- package/2D/controls/focusableButton.d.ts +4 -9
- package/2D/controls/focusableButton.js +4 -9
- package/2D/controls/focusableButton.js.map +1 -1
- package/2D/controls/grid.d.ts +1 -3
- package/2D/controls/grid.js +1 -3
- package/2D/controls/grid.js.map +1 -1
- package/2D/controls/image.d.ts +1 -3
- package/2D/controls/image.js +1 -3
- package/2D/controls/image.js.map +1 -1
- package/2D/controls/inputText.d.ts +10 -18
- package/2D/controls/inputText.js +9 -17
- package/2D/controls/inputText.js.map +1 -1
- package/2D/controls/inputTextArea.d.ts +10 -10
- package/2D/controls/inputTextArea.js +9 -9
- package/2D/controls/inputTextArea.js.map +1 -1
- package/2D/controls/rectangle.d.ts +2 -2
- package/2D/controls/rectangle.js +2 -2
- package/2D/controls/rectangle.js.map +1 -1
- package/2D/controls/scrollViewers/scrollViewer.d.ts +3 -7
- package/2D/controls/scrollViewers/scrollViewer.js +3 -7
- package/2D/controls/scrollViewers/scrollViewer.js.map +1 -1
- package/2D/controls/scrollViewers/scrollViewerWindow.d.ts +4 -10
- package/2D/controls/scrollViewers/scrollViewerWindow.js +4 -10
- package/2D/controls/scrollViewers/scrollViewerWindow.js.map +1 -1
- package/2D/controls/selector.d.ts +14 -40
- package/2D/controls/selector.js +14 -40
- package/2D/controls/selector.js.map +1 -1
- package/2D/controls/sliders/baseSlider.d.ts +1 -3
- package/2D/controls/sliders/baseSlider.js +1 -3
- package/2D/controls/sliders/baseSlider.js.map +1 -1
- package/2D/controls/sliders/imageBasedSlider.d.ts +1 -3
- package/2D/controls/sliders/imageBasedSlider.js +1 -3
- package/2D/controls/sliders/imageBasedSlider.js.map +1 -1
- package/2D/controls/sliders/imageScrollBar.d.ts +1 -3
- package/2D/controls/sliders/imageScrollBar.js +1 -3
- package/2D/controls/sliders/imageScrollBar.js.map +1 -1
- package/2D/controls/sliders/scrollBar.d.ts +1 -3
- package/2D/controls/sliders/scrollBar.js +1 -3
- package/2D/controls/sliders/scrollBar.js.map +1 -1
- package/2D/controls/stackPanel.d.ts +2 -6
- package/2D/controls/stackPanel.js +2 -6
- package/2D/controls/stackPanel.js.map +1 -1
- package/2D/controls/statics.d.ts +1 -1
- package/2D/controls/statics.js +1 -1
- package/2D/controls/statics.js.map +1 -1
- package/2D/controls/textBlock.d.ts +1 -2
- package/2D/controls/textBlock.js +1 -2
- package/2D/controls/textBlock.js.map +1 -1
- package/2D/controls/textWrapper.d.ts +1 -1
- package/2D/controls/textWrapper.js +1 -1
- package/2D/controls/textWrapper.js.map +1 -1
- package/2D/controls/toggleButton.d.ts +5 -29
- package/2D/controls/toggleButton.js +5 -29
- package/2D/controls/toggleButton.js.map +1 -1
- package/2D/controls/virtualKeyboard.d.ts +1 -3
- package/2D/controls/virtualKeyboard.js +1 -3
- package/2D/controls/virtualKeyboard.js.map +1 -1
- package/2D/multiLinePoint.d.ts +1 -1
- package/2D/multiLinePoint.js.map +1 -1
- package/2D/style.d.ts +2 -2
- package/2D/style.js +1 -1
- package/2D/style.js.map +1 -1
- package/3D/controls/button3D.d.ts +1 -1
- package/3D/controls/button3D.js.map +1 -1
- package/3D/controls/control3D.d.ts +11 -31
- package/3D/controls/control3D.js +10 -30
- package/3D/controls/control3D.js.map +1 -1
- package/3D/controls/holographicSlate.d.ts +5 -6
- package/3D/controls/holographicSlate.js +3 -4
- package/3D/controls/holographicSlate.js.map +1 -1
- package/3D/controls/meshButton3D.d.ts +1 -1
- package/3D/controls/meshButton3D.js.map +1 -1
- package/3D/controls/touchButton3D.d.ts +1 -4
- package/3D/controls/touchButton3D.js +1 -4
- package/3D/controls/touchButton3D.js.map +1 -1
- package/3D/controls/touchMeshButton3D.d.ts +1 -1
- package/3D/controls/touchMeshButton3D.js.map +1 -1
- package/3D/gizmos/gizmoHandle.d.ts +1 -1
- package/3D/gizmos/gizmoHandle.js.map +1 -1
- package/3D/gui3DManager.d.ts +5 -5
- package/3D/gui3DManager.js +4 -4
- package/3D/gui3DManager.js.map +1 -1
- package/3D/materials/fluent/fluentMaterial.d.ts +1 -1
- package/3D/materials/fluent/fluentMaterial.js +1 -1
- package/3D/materials/fluent/fluentMaterial.js.map +1 -1
- package/3D/materials/fluent/shaders/fluent.fragment.d.ts +1 -1
- package/3D/materials/fluent/shaders/fluent.fragment.js +1 -1
- package/3D/materials/fluent/shaders/fluent.fragment.js.map +1 -1
- package/3D/materials/fluent/shaders/fluent.vertex.d.ts +1 -1
- package/3D/materials/fluent/shaders/fluent.vertex.js +1 -1
- package/3D/materials/fluent/shaders/fluent.vertex.js.map +1 -1
- package/3D/materials/fluentBackplate/fluentBackplateMaterial.d.ts +8 -8
- package/3D/materials/fluentBackplate/fluentBackplateMaterial.js +9 -9
- package/3D/materials/fluentBackplate/fluentBackplateMaterial.js.map +1 -1
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.d.ts +1 -1
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.js +1 -1
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.js.map +1 -1
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.d.ts +1 -1
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.js +1 -1
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.js.map +1 -1
- package/3D/materials/fluentButton/fluentButtonMaterial.js +1 -1
- package/3D/materials/fluentButton/fluentButtonMaterial.js.map +1 -1
- package/3D/materials/fluentButton/shaders/fluentButton.fragment.d.ts +1 -1
- package/3D/materials/fluentButton/shaders/fluentButton.fragment.js +1 -1
- package/3D/materials/fluentButton/shaders/fluentButton.fragment.js.map +1 -1
- package/3D/materials/fluentButton/shaders/fluentButton.vertex.d.ts +1 -1
- package/3D/materials/fluentButton/shaders/fluentButton.vertex.js +1 -1
- package/3D/materials/fluentButton/shaders/fluentButton.vertex.js.map +1 -1
- package/3D/materials/handle/handleMaterial.d.ts +1 -1
- package/3D/materials/handle/handleMaterial.js +1 -1
- package/3D/materials/handle/handleMaterial.js.map +1 -1
- package/3D/materials/handle/shaders/handle.fragment.d.ts +1 -1
- package/3D/materials/handle/shaders/handle.fragment.js +1 -1
- package/3D/materials/handle/shaders/handle.fragment.js.map +1 -1
- package/3D/materials/handle/shaders/handle.vertex.d.ts +1 -1
- package/3D/materials/handle/shaders/handle.vertex.js +1 -1
- package/3D/materials/handle/shaders/handle.vertex.js.map +1 -1
- package/3D/materials/mrdl/mrdlBackplateMaterial.d.ts +8 -8
- package/3D/materials/mrdl/mrdlBackplateMaterial.js +9 -9
- package/3D/materials/mrdl/mrdlBackplateMaterial.js.map +1 -1
- package/3D/materials/mrdl/mrdlSliderBarMaterial.d.ts +10 -10
- package/3D/materials/mrdl/mrdlSliderBarMaterial.js +11 -11
- package/3D/materials/mrdl/mrdlSliderBarMaterial.js.map +1 -1
- package/3D/materials/mrdl/mrdlSliderThumbMaterial.d.ts +10 -10
- package/3D/materials/mrdl/mrdlSliderThumbMaterial.js +11 -11
- package/3D/materials/mrdl/mrdlSliderThumbMaterial.js.map +1 -1
- package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.d.ts +1 -1
- package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.js +1 -1
- package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.js.map +1 -1
- package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.d.ts +1 -1
- package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.js +1 -1
- package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.js.map +1 -1
- package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.d.ts +1 -1
- package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.js +1 -1
- package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.js.map +1 -1
- package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.d.ts +1 -1
- package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.js +1 -1
- package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.js.map +1 -1
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.d.ts +1 -1
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.js +1 -1
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.js.map +1 -1
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.d.ts +1 -1
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.js +1 -1
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scrollViewer.js","sourceRoot":"","sources":["../../../../../../../lts/gui/generated/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,aAAa,EAAE,0CAA4B;AAEpD,OAAO,EAAE,SAAS,EAAE,2CAA6B;AAEjD;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,SAAS;IAoJvC;;;;OAIG;IACH,YAAY,IAAa,EAAE,YAAsB;QAC7C,KAAK,CAAC,IAAI,CAAC,CAAC;QA3IR,aAAQ,GAAW,EAAE,CAAC;QAEtB,mBAAc,GAAY,KAAK,CAAC;QAChC,oBAAe,GAAW,IAAI,CAAC;QAK/B,iBAAY,GAAW,GAAG,CAAC;QAC3B,iBAAY,GAAW,CAAC,CAAC;QACzB,oBAAe,GAAW,CAAC,CAAC;QAC5B,8BAAyB,GAAW,CAAC,CAAC;QACtC,4BAAuB,GAAW,CAAC,CAAC;QACpC,4BAAuB,GAAW,CAAC,CAAC;QACpC,6BAAwB,GAAW,CAAC,CAAC;QA0FrC,wBAAmB,GAAY,KAAK,CAAC;QACrC,sBAAiB,GAAY,KAAK,CAAC;QAoCvC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC;QAExD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE;YAC5B,IAAI,CAAC,mBAAmB,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YAC5C,IAAI,CAAC,iBAAiB,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YAC1C,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,GAAG,EAAE;YACnC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,GAAG,EAAE;YACjC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;YAC3C,IAAI,CAAC,YAAY,GAAG,IAAI,cAAc,EAAE,CAAC;SAC5C;aAAM;YACH,IAAI,CAAC,cAAc,GAAG,IAAI,SAAS,EAAE,CAAC;YACtC,IAAI,CAAC,YAAY,GAAG,IAAI,SAAS,EAAE,CAAC;SACvC;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,mBAAmB,CAAC,qBAAqB,CAAC,CAAC;QAC9D,IAAI,CAAC,OAAO,CAAC,mBAAmB,GAAG,OAAO,CAAC,yBAAyB,CAAC;QACrE,IAAI,CAAC,OAAO,CAAC,iBAAiB,GAAG,OAAO,CAAC,sBAAsB,CAAC;QAEhE,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAErC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAE1C,IAAI,CAAC,iBAAiB,GAAG,IAAI,SAAS,EAAE,CAAC;QACzC,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,GAAG,OAAO,CAAC,yBAAyB,CAAC;QAC/E,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,GAAG,OAAO,CAAC,sBAAsB,CAAC;QAC1E,IAAI,CAAC,iBAAiB,CAAC,SAAS,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAEvE,IAAI,CAAC,mBAAmB,GAAG,IAAI,SAAS,EAAE,CAAC;QAC3C,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,GAAG,OAAO,CAAC,yBAAyB,CAAC;QACjF,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,GAAG,OAAO,CAAC,sBAAsB,CAAC;QAC5E,IAAI,CAAC,mBAAmB,CAAC,SAAS,GAAG,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,mBAAmB,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAEtE,IAAI,CAAC,UAAU,GAAG,IAAI,SAAS,EAAE,CAAC;QAClC,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAE7C,SAAS;QACT,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACpB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;YACvB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;SACtC;IACL,CAAC;IAzLD;;OAEG;IACH,IAAW,aAAa;QACpB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,IAAW,WAAW;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACI,UAAU,CAAC,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,aAAa,CAAC,OAAgB;QACjC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,gCAAgC;IAChC,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;IACjC,CAAC;IAEM,6BAA6B;QAChC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE;YAChC,KAAK,CAAC,kBAAkB,EAAE,CAAC;SAC9B;IACL,CAAC;IAED;;;;OAIG;IACH,IAAW,cAAc;QACrB,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;IACvC,CAAC;IAED,IAAW,cAAc,CAAC,KAAc;QACpC,IAAI,CAAC,OAAO,CAAC,cAAc,GAAG,KAAK,CAAC;IACxC,CAAC;IAED,4BAA4B;IAC5B,IAAW,WAAW;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;IACpC,CAAC;IAED,6BAA6B;IAC7B,IAAW,YAAY;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;IACrC,CAAC;IAED;;;;;;;;;;OAUG;IACI,cAAc,CAAC,KAAa,EAAE,MAAc;QAC/C,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;IAKD;;OAEG;IACH,IAAW,kBAAkB;QACzB,OAAO,IAAI,CAAC,mBAAmB,CAAC;IACpC,CAAC;IAED,IAAW,kBAAkB,CAAC,KAAc;QACxC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAChE,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,KAAK,CAAC;QACtC,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,IAAW,gBAAgB;QACvB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IAED,IAAW,gBAAgB,CAAC,KAAc;QACtC,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACnE,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,KAAK,CAAC;QACpC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;IACnC,CAAC;IAwED,qDAAqD;IAC9C,WAAW;QACd,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC;QAC5B,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;IACjC,CAAC;IAES,YAAY;QAClB,OAAO,cAAc,CAAC;IAC1B,CAAC;IAEO,iBAAiB;QACrB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;QAEnC,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,qBAAqB,CAAC,aAAsB,EAAE,OAAgC;QACpF,KAAK,CAAC,qBAAqB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAEpD,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC7B,CAAC;IAES,YAAY;QAClB,KAAK,CAAC,YAAY,EAAE,CAAC;QAErB,IAAI,CAAC,eAAe,EAAE,CAAC;QAEvB,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAED;;;SAGK;IAEL,IAAW,cAAc;QACrB,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAED,IAAW,cAAc,CAAC,KAAa;QACnC,IAAI,IAAI,CAAC,eAAe,KAAK,KAAK,EAAE;YAChC,OAAO;SACV;QAED,IAAI,KAAK,GAAG,CAAC,EAAE;YACX,KAAK,GAAG,CAAC,CAAC;SACb;QAED,IAAI,KAAK,GAAG,CAAC,EAAE;YACX,KAAK,GAAG,CAAC,CAAC;SACb;QAED,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;IACjC,CAAC;IAED,6DAA6D;IAE7D,IAAW,gBAAgB;QACvB,OAAO,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC;IAC/C,CAAC;IAED,IAAW,gBAAgB,CAAC,KAAa;QACrC,IAAI,IAAI,CAAC,mBAAmB,CAAC,UAAU,KAAK,KAAK,EAAE;YAC/C,OAAO;SACV;QACD,IAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,KAAK,CAAC;QAC5C,IAAI,CAAC,iBAAiB,CAAC,UAAU,GAAG,KAAK,CAAC;IAC9C,CAAC;IAED,iCAAiC;IAEjC,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,IAAW,QAAQ,CAAC,KAAa;QAC7B,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,EAAE;YAC1B,OAAO;SACV;QAED,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,KAAK,CAAC;QAClC,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC;IACpC,CAAC;IAED,iCAAiC;IACjC,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,IAAW,UAAU,CAAC,KAAY;QAC9B,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,EAAE;YAC1B,OAAO;SACV;QAED,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,MAAM,EAAE,GAAmB,IAAI,CAAC,cAAc,CAAC;QAC/C,MAAM,EAAE,GAAmB,IAAI,CAAC,YAAY,CAAC;QAC7C,EAAE,CAAC,UAAU,GAAG,KAAK,CAAC;QACtB,EAAE,CAAC,UAAU,GAAG,KAAK,CAAC;IAC1B,CAAC;IAED,4CAA4C;IAC5C,IAAW,oBAAoB;QAC3B,OAAO,IAAI,CAAC,mBAAmB,CAAC;IACpC,CAAC;IAED,IAAW,oBAAoB,CAAC,KAAY;QACxC,IAAI,IAAI,CAAC,mBAAmB,KAAK,KAAK,EAAE;YACpC,OAAO;SACV;QAED,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;QACjC,MAAM,EAAE,GAAmB,IAAI,CAAC,cAAc,CAAC;QAC/C,EAAE,CAAC,UAAU,GAAG,KAAK,CAAC;IAC1B,CAAC;IAED,0CAA0C;IAC1C,IAAW,kBAAkB;QACzB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IAED,IAAW,kBAAkB,CAAC,KAAY;QACtC,IAAI,IAAI,CAAC,iBAAiB,KAAK,KAAK,EAAE;YAClC,OAAO;SACV;QAED,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAC/B,MAAM,EAAE,GAAmB,IAAI,CAAC,YAAY,CAAC;QAC7C,EAAE,CAAC,UAAU,GAAG,KAAK,CAAC;IAC1B,CAAC;IAED,uCAAuC;IAEvC,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,IAAW,OAAO,CAAC,KAAa;QAC5B,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;YACzB,OAAO;SACV;QAED,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpB,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE;YAC/B,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;SACvD;QACD,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE;YAC7B,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;SAC1D;IACL,CAAC;IAED,2CAA2C;IAC3C,IAAW,WAAW;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED,IAAW,WAAW,CAAC,KAAa;QAChC,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,EAAE;YAC7B,OAAO;SACV;QACD,IAAI,KAAK,IAAI,CAAC,EAAE;YACZ,KAAK,GAAG,GAAG,CAAC;SACf;QACD,IAAI,KAAK,GAAG,CAAC,EAAE;YACX,KAAK,GAAG,CAAC,CAAC;SACb;QACD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,MAAM,EAAE,GAAmB,IAAI,CAAC,cAAc,CAAC;QAC/C,MAAM,EAAE,GAAmB,IAAI,CAAC,YAAY,CAAC;QAC7C,EAAE,CAAC,WAAW,GAAG,KAAK,CAAC;QACvB,EAAE,CAAC,WAAW,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAED,2CAA2C;IAC3C,IAAW,WAAW;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED,IAAW,WAAW,CAAC,KAAa;QAChC,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,EAAE;YAC7B,OAAO;SACV;QACD,IAAI,KAAK,IAAI,CAAC,EAAE;YACZ,KAAK,GAAG,GAAG,CAAC;SACf;QACD,IAAI,KAAK,GAAG,CAAC,EAAE;YACX,KAAK,GAAG,CAAC,CAAC;SACb;QACD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,MAAM,EAAE,GAAmB,IAAI,CAAC,cAAc,CAAC;QAC/C,MAAM,EAAE,GAAmB,IAAI,CAAC,YAAY,CAAC;QAC7C,EAAE,CAAC,WAAW,GAAG,KAAK,CAAC;QACvB,EAAE,CAAC,WAAW,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAED,+CAA+C;IAC/C,IAAW,cAAc;QACrB,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAED,IAAW,cAAc,CAAC,KAAa;QACnC,IAAI,IAAI,CAAC,eAAe,KAAK,KAAK,EAAE;YAChC,OAAO;SACV;QACD,IAAI,KAAK,IAAI,CAAC,EAAE;YACZ,KAAK,GAAG,GAAG,CAAC;SACf;QACD,IAAI,KAAK,GAAG,CAAC,EAAE;YACX,KAAK,GAAG,CAAC,CAAC;SACb;QACD,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,MAAM,EAAE,GAAmB,IAAI,CAAC,cAAc,CAAC;QAC/C,MAAM,EAAE,GAAmB,IAAI,CAAC,YAAY,CAAC;QAC7C,EAAE,CAAC,cAAc,GAAG,KAAK,CAAC;QAC1B,EAAE,CAAC,cAAc,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAED,0DAA0D;IAC1D,IAAW,wBAAwB;QAC/B,OAAO,IAAI,CAAC,yBAAyB,CAAC;IAC1C,CAAC;IAED,IAAW,wBAAwB,CAAC,KAAa;QAC7C,IAAI,IAAI,CAAC,yBAAyB,KAAK,KAAK,EAAE;YAC1C,OAAO;SACV;QACD,IAAI,KAAK,IAAI,CAAC,EAAE;YACZ,KAAK,GAAG,GAAG,CAAC;SACf;QACD,IAAI,KAAK,GAAG,CAAC,EAAE;YACX,KAAK,GAAG,CAAC,CAAC;SACb;QACD,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;QACvC,MAAM,EAAE,GAAmB,IAAI,CAAC,cAAc,CAAC;QAC/C,EAAE,CAAC,cAAc,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAED,wDAAwD;IACxD,IAAW,sBAAsB;QAC7B,OAAO,IAAI,CAAC,uBAAuB,CAAC;IACxC,CAAC;IAED,IAAW,sBAAsB,CAAC,KAAa;QAC3C,IAAI,IAAI,CAAC,uBAAuB,KAAK,KAAK,EAAE;YACxC,OAAO;SACV;QACD,IAAI,KAAK,IAAI,CAAC,EAAE;YACZ,KAAK,GAAG,GAAG,CAAC;SACf;QACD,IAAI,KAAK,GAAG,CAAC,EAAE;YACX,KAAK,GAAG,CAAC,CAAC;SACb;QACD,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC;QACrC,MAAM,EAAE,GAAmB,IAAI,CAAC,YAAY,CAAC;QAC7C,EAAE,CAAC,cAAc,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAED,sCAAsC;IAEtC,IAAW,aAAa;QACpB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IAED,IAAW,aAAa,CAAC,KAAa;QAClC,IAAI,IAAI,CAAC,cAAc,KAAK,KAAK,EAAE;YAC/B,OAAO;SACV;QAED,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,MAAM,EAAE,GAAc,IAAI,CAAC,cAAc,CAAC;QAC1C,MAAM,EAAE,GAAc,IAAI,CAAC,YAAY,CAAC;QACxC,EAAE,CAAC,UAAU,GAAG,KAAK,CAAC;QACtB,EAAE,CAAC,UAAU,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,KAAK,CAAC;IACvC,CAAC;IAED,4CAA4C;IAC5C,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,mBAAmB,CAAC;IACpC,CAAC;IAED,IAAW,QAAQ,CAAC,KAAY;QAC5B,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;QACjC,MAAM,EAAE,GAAmB,IAAI,CAAC,cAAc,CAAC;QAC/C,MAAM,EAAE,GAAmB,IAAI,CAAC,YAAY,CAAC;QAC7C,EAAE,CAAC,eAAe,GAAG,KAAK,CAAC;QAC3B,EAAE,CAAC,eAAe,GAAG,KAAK,CAAC;IAC/B,CAAC;IAED,uDAAuD;IACvD,IAAW,kBAAkB;QACzB,OAAO,IAAI,CAAC,6BAA6B,CAAC;IAC9C,CAAC;IAED,IAAW,kBAAkB,CAAC,KAAY;QACtC,IAAI,CAAC,6BAA6B,GAAG,KAAK,CAAC;QAC3C,MAAM,EAAE,GAAmB,IAAI,CAAC,cAAc,CAAC;QAC/C,EAAE,CAAC,eAAe,GAAG,KAAK,CAAC;IAC/B,CAAC;IAED,qDAAqD;IACrD,IAAW,gBAAgB;QACvB,OAAO,IAAI,CAAC,2BAA2B,CAAC;IAC5C,CAAC;IAED,IAAW,gBAAgB,CAAC,KAAY;QACpC,IAAI,CAAC,2BAA2B,GAAG,KAAK,CAAC;QACzC,MAAM,EAAE,GAAmB,IAAI,CAAC,YAAY,CAAC;QAC7C,EAAE,CAAC,eAAe,GAAG,KAAK,CAAC;IAC/B,CAAC;IAEO,kBAAkB,CAAC,KAAK,GAAG,IAAI;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;QACnC,MAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC;QAC/D,MAAM,oBAAoB,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC;QAEjE,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,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,GAAG,mBAAmB,CAAC;QACzD,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,GAAG,oBAAoB,CAAC;QAE1D,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC;QACtE,MAAM,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,eAAe;QACnB,MAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC;QAC/D,MAAM,oBAAoB,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC;QAEjE,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;aAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,kBAAkB,CAAC,EAAE;YAC/G,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;aAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,gBAAgB,CAAC,EAAE;YAC7G,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,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;QAEnC,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,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC;IACjG,CAAC;IAEM,KAAK,CAAC,IAA4B;QACrC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAElB,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAED;;;;;;OAMG;IACK,OAAO,CAAC,UAAsC,EAAE,YAAuB,EAAE,UAAmB,EAAE,QAAgB;QAClH,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,GAAG,EAAE;YACzC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC9B,CAAC,CAAC,CAAC;IACP,CAAC;IAED,cAAc;IACN,YAAY;QAChB,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACtC,OAAO;SACV;QAED,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;YACtD,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,UAAU,EAAE;gBACzC,OAAO;aACV;YACD,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,IAAI,IAAI,EAAE;gBACrC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,CAAC,EAAE;oBACzC,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC;iBACnD;qBAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;oBACxE,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC;iBACnD;aACJ;YACD,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,IAAI,IAAI,EAAE;gBACvC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;oBACrE,IAAI,CAAC,cAAc,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC;iBACrD;qBAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,CAAC,EAAE;oBAClD,IAAI,CAAC,cAAc,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC;iBACrD;aACJ;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,wBAAwB,CAAC,OAAgC;QAC5D,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YACrB,OAAO;SACV;QAED,KAAK,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;QAExC,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;QAE7C,OAAO,CAAC,OAAO,EAAE,CAAC;IACtB,CAAC;IAED,oCAAoC;IAC7B,OAAO;QACV,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACrD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,KAAK,CAAC,OAAO,EAAE,CAAC;IACpB,CAAC;CACJ;AA9aG;IADC,SAAS,EAAE;kDAGX;AAoBD;IADC,SAAS,EAAE;oDAGX;AAYD;IADC,SAAS,EAAE;4CAGX;AA6DD;IADC,SAAS,EAAE;2CAGX;AAmID;IADC,SAAS,EAAE;iDAGX;AAqML,aAAa,CAAC,0BAA0B,EAAE,YAAY,CAAC,CAAC","sourcesContent":["import type { Nullable } from \"core/types\";\r\nimport type { Observer } from \"core/Misc/observable\";\r\nimport type { Vector2 } from \"core/Maths/math\";\r\nimport { Rectangle } from \"../rectangle\";\r\nimport { Grid } from \"../grid\";\r\nimport type { Image } from \"../image\";\r\nimport { Control } from \"../control\";\r\nimport type { Container } from \"../container\";\r\nimport type { Measure } from \"../../measure\";\r\nimport type { AdvancedDynamicTexture } from \"../../advancedDynamicTexture\";\r\nimport { _ScrollViewerWindow } from \"./scrollViewerWindow\";\r\nimport { ScrollBar } from \"../sliders/scrollBar\";\r\nimport { ImageScrollBar } from \"../sliders/imageScrollBar\";\r\nimport { RegisterClass } from \"core/Misc/typeStore\";\r\nimport type { ICanvasRenderingContext } from \"core/Engines/ICanvas\";\r\nimport { serialize } from \"core/Misc/decorators\";\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 (const 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 * @param isImageBased\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 } 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 const 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 @serialize()\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 @serialize()\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 @serialize()\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 const hb = <ImageScrollBar>this._horizontalBar;\r\n const 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 const 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 const 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 @serialize()\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 const hb = <ImageScrollBar>this._horizontalBar;\r\n const 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 const hb = <ImageScrollBar>this._horizontalBar;\r\n const 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 const hb = <ImageScrollBar>this._horizontalBar;\r\n const 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 const 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 const 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 @serialize()\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 const hb = <ScrollBar>this._horizontalBar;\r\n const 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 this._barBackgroundImage = value;\r\n const hb = <ImageScrollBar>this._horizontalBar;\r\n const 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 this._horizontalBarBackgroundImage = value;\r\n const 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 this._verticalBarBackgroundImage = value;\r\n const vb = <ImageScrollBar>this._verticalBar;\r\n vb.backgroundImage = value;\r\n }\r\n\r\n private _setWindowPosition(force = true): void {\r\n const ratio = this.host.idealRatio;\r\n const windowContentsWidth = this._window._currentMeasure.width;\r\n const 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 const windowContentsWidth = this._window._currentMeasure.width;\r\n const 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 } 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 } 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 const 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 /**\r\n * @param barControl\r\n * @param barContainer\r\n * @param isVertical\r\n * @param rotation\r\n * @hidden\r\n */\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(() => {\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);\r\n"]}
|
|
1
|
+
{"version":3,"file":"scrollViewer.js","sourceRoot":"","sources":["../../../../../../../lts/gui/generated/2D/controls/scrollViewers/scrollViewer.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Nullable } from \"core/types\";\r\nimport type { Observer } from \"core/Misc/observable\";\r\nimport type { Vector2 } from \"core/Maths/math\";\r\nimport { Rectangle } from \"../rectangle\";\r\nimport { Grid } from \"../grid\";\r\nimport type { Image } from \"../image\";\r\nimport { Control } from \"../control\";\r\nimport type { Container } from \"../container\";\r\nimport type { Measure } from \"../../measure\";\r\nimport type { AdvancedDynamicTexture } from \"../../advancedDynamicTexture\";\r\nimport { _ScrollViewerWindow } from \"./scrollViewerWindow\";\r\nimport { ScrollBar } from \"../sliders/scrollBar\";\r\nimport { ImageScrollBar } from \"../sliders/imageScrollBar\";\r\nimport { RegisterClass } from \"core/Misc/typeStore\";\r\nimport type { ICanvasRenderingContext } from \"core/Engines/ICanvas\";\r\nimport { serialize } from \"core/Misc/decorators\";\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 (const 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 * @param isImageBased\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 } 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 const 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 @serialize()\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 @serialize()\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 @serialize()\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 const hb = <ImageScrollBar>this._horizontalBar;\r\n const 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 const 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 const 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 @serialize()\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 const hb = <ImageScrollBar>this._horizontalBar;\r\n const 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 const hb = <ImageScrollBar>this._horizontalBar;\r\n const 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 const hb = <ImageScrollBar>this._horizontalBar;\r\n const 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 const 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 const 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 @serialize()\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 const hb = <ScrollBar>this._horizontalBar;\r\n const 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 this._barBackgroundImage = value;\r\n const hb = <ImageScrollBar>this._horizontalBar;\r\n const 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 this._horizontalBarBackgroundImage = value;\r\n const 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 this._verticalBarBackgroundImage = value;\r\n const vb = <ImageScrollBar>this._verticalBar;\r\n vb.backgroundImage = value;\r\n }\r\n\r\n private _setWindowPosition(force = true): void {\r\n const ratio = this.host.idealRatio;\r\n const windowContentsWidth = this._window._currentMeasure.width;\r\n const 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 /** @internal */\r\n private _updateScroller(): void {\r\n const windowContentsWidth = this._window._currentMeasure.width;\r\n const 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 } 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 } 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 const 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 /**\r\n * @internal\r\n */\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(() => {\r\n this._setWindowPosition();\r\n });\r\n }\r\n\r\n /** @internal */\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);\r\n"]}
|
|
@@ -3,7 +3,7 @@ import { Container } from "../container";
|
|
|
3
3
|
import type { ICanvasRenderingContext } from "@babylonjs/core/Engines/ICanvas.js";
|
|
4
4
|
/**
|
|
5
5
|
* Class used to hold a the container for ScrollViewer
|
|
6
|
-
* @
|
|
6
|
+
* @internal
|
|
7
7
|
*/
|
|
8
8
|
export declare class _ScrollViewerWindow extends Container {
|
|
9
9
|
parentClientWidth: number;
|
|
@@ -34,23 +34,17 @@ export declare class _ScrollViewerWindow extends Container {
|
|
|
34
34
|
constructor(name?: string);
|
|
35
35
|
protected _getTypeName(): string;
|
|
36
36
|
/**
|
|
37
|
-
* @
|
|
38
|
-
* @param context
|
|
39
|
-
* @hidden
|
|
37
|
+
* @internal
|
|
40
38
|
*/
|
|
41
39
|
protected _additionalProcessing(parentMeasure: Measure, context: ICanvasRenderingContext): void;
|
|
42
40
|
/**
|
|
43
|
-
* @
|
|
44
|
-
* @param context
|
|
45
|
-
* @hidden
|
|
41
|
+
* @internal
|
|
46
42
|
*/
|
|
47
43
|
_layout(parentMeasure: Measure, context: ICanvasRenderingContext): boolean;
|
|
48
44
|
private _scrollChildren;
|
|
49
45
|
private _scrollChildrenWithBuckets;
|
|
50
46
|
/**
|
|
51
|
-
* @
|
|
52
|
-
* @param invalidatedRectangle
|
|
53
|
-
* @hidden
|
|
47
|
+
* @internal
|
|
54
48
|
*/
|
|
55
49
|
_draw(context: ICanvasRenderingContext, invalidatedRectangle?: Measure): void;
|
|
56
50
|
protected _postMeasure(): void;
|
|
@@ -4,7 +4,7 @@ import { ValueAndUnit } from "../../valueAndUnit.js";
|
|
|
4
4
|
import { Control } from "../control.js";
|
|
5
5
|
/**
|
|
6
6
|
* Class used to hold a the container for ScrollViewer
|
|
7
|
-
* @
|
|
7
|
+
* @internal
|
|
8
8
|
*/
|
|
9
9
|
export class _ScrollViewerWindow extends Container {
|
|
10
10
|
/**
|
|
@@ -133,9 +133,7 @@ export class _ScrollViewerWindow extends Container {
|
|
|
133
133
|
return "ScrollViewerWindow";
|
|
134
134
|
}
|
|
135
135
|
/**
|
|
136
|
-
* @
|
|
137
|
-
* @param context
|
|
138
|
-
* @hidden
|
|
136
|
+
* @internal
|
|
139
137
|
*/
|
|
140
138
|
_additionalProcessing(parentMeasure, context) {
|
|
141
139
|
super._additionalProcessing(parentMeasure, context);
|
|
@@ -146,9 +144,7 @@ export class _ScrollViewerWindow extends Container {
|
|
|
146
144
|
this._measureForChildren.height = parentMeasure.height;
|
|
147
145
|
}
|
|
148
146
|
/**
|
|
149
|
-
* @
|
|
150
|
-
* @param context
|
|
151
|
-
* @hidden
|
|
147
|
+
* @internal
|
|
152
148
|
*/
|
|
153
149
|
_layout(parentMeasure, context) {
|
|
154
150
|
if (this._freezeControls) {
|
|
@@ -187,9 +183,7 @@ export class _ScrollViewerWindow extends Container {
|
|
|
187
183
|
}
|
|
188
184
|
}
|
|
189
185
|
/**
|
|
190
|
-
* @
|
|
191
|
-
* @param invalidatedRectangle
|
|
192
|
-
* @hidden
|
|
186
|
+
* @internal
|
|
193
187
|
*/
|
|
194
188
|
_draw(context, invalidatedRectangle) {
|
|
195
189
|
if (!this._freezeControls) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scrollViewerWindow.js","sourceRoot":"","sources":["../../../../../../../lts/gui/generated/2D/controls/scrollViewers/scrollViewerWindow.ts"],"names":[],"mappings":"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","sourcesContent":["import { Measure } from \"../../measure\";\r\nimport { Container } from \"../container\";\r\nimport { ValueAndUnit } from \"../../valueAndUnit\";\r\nimport { Control } from \"../control\";\r\nimport type { ICanvasRenderingContext } from \"core/Engines/ICanvas\";\r\n\r\n/**\r\n * Class used to hold a the container for ScrollViewer\r\n * @hidden\r\n */\r\nexport class _ScrollViewerWindow extends Container {\r\n public parentClientWidth: number;\r\n public parentClientHeight: number;\r\n\r\n private _freezeControls = false;\r\n private _parentMeasure: Measure;\r\n private _oldLeft: number | null;\r\n private _oldTop: number | null;\r\n\r\n public get freezeControls(): boolean {\r\n return this._freezeControls;\r\n }\r\n\r\n public set freezeControls(value: boolean) {\r\n if (this._freezeControls === value) {\r\n return;\r\n }\r\n\r\n if (!value) {\r\n this._restoreMeasures();\r\n }\r\n\r\n // trigger a full normal layout calculation to be sure all children have their measures up to date\r\n this._freezeControls = false;\r\n\r\n const textureSize = this.host.getSize();\r\n const renderWidth = textureSize.width;\r\n const renderHeight = textureSize.height;\r\n\r\n const context = this.host.getContext();\r\n\r\n const measure = new Measure(0, 0, renderWidth, renderHeight);\r\n\r\n this.host._numLayoutCalls = 0;\r\n\r\n this.host._rootContainer._layout(measure, context);\r\n\r\n // in freeze mode, prepare children measures accordingly\r\n if (value) {\r\n this._updateMeasures();\r\n if (this._useBuckets()) {\r\n this._makeBuckets();\r\n }\r\n }\r\n\r\n this._freezeControls = value;\r\n\r\n this.host.markAsDirty(); // redraw with the (new) current settings\r\n }\r\n\r\n private _bucketWidth: number = 0;\r\n private _bucketHeight: number = 0;\r\n private _buckets: { [key: number]: Array<Control> } = {};\r\n private _bucketLen: number;\r\n\r\n public get bucketWidth(): number {\r\n return this._bucketWidth;\r\n }\r\n\r\n public get bucketHeight(): number {\r\n return this._bucketHeight;\r\n }\r\n\r\n public setBucketSizes(width: number, height: number): void {\r\n this._bucketWidth = width;\r\n this._bucketHeight = height;\r\n\r\n if (this._useBuckets()) {\r\n if (this._freezeControls) {\r\n this._makeBuckets();\r\n }\r\n } else {\r\n this._buckets = {};\r\n }\r\n }\r\n\r\n private _useBuckets(): boolean {\r\n return this._bucketWidth > 0 && this._bucketHeight > 0;\r\n }\r\n\r\n private _makeBuckets(): void {\r\n this._buckets = {};\r\n this._bucketLen = Math.ceil(this.widthInPixels / this._bucketWidth);\r\n this._dispatchInBuckets(this._children);\r\n this._oldLeft = null;\r\n this._oldTop = null;\r\n }\r\n\r\n private _dispatchInBuckets(children: Control[]): void {\r\n for (let i = 0; i < children.length; ++i) {\r\n const child = children[i];\r\n\r\n const bStartX = Math.max(0, Math.floor((child._customData._origLeft - this._customData.origLeft) / this._bucketWidth)),\r\n bEndX = Math.floor((child._customData._origLeft - this._customData.origLeft + child._currentMeasure.width - 1) / this._bucketWidth),\r\n bEndY = Math.floor((child._customData._origTop - this._customData.origTop + child._currentMeasure.height - 1) / this._bucketHeight);\r\n let bStartY = Math.max(0, Math.floor((child._customData._origTop - this._customData.origTop) / this._bucketHeight));\r\n\r\n while (bStartY <= bEndY) {\r\n for (let x = bStartX; x <= bEndX; ++x) {\r\n const bucket = bStartY * this._bucketLen + x;\r\n let lstc = this._buckets[bucket];\r\n\r\n if (!lstc) {\r\n lstc = [];\r\n this._buckets[bucket] = lstc;\r\n }\r\n\r\n lstc.push(child);\r\n }\r\n bStartY++;\r\n }\r\n\r\n if (child instanceof Container && child._children.length > 0) {\r\n this._dispatchInBuckets(child._children);\r\n }\r\n }\r\n }\r\n\r\n // reset left and top measures for the window and all its children\r\n private _updateMeasures(): void {\r\n const left = this.leftInPixels | 0,\r\n top = this.topInPixels | 0;\r\n\r\n this._measureForChildren.left -= left;\r\n this._measureForChildren.top -= top;\r\n this._currentMeasure.left -= left;\r\n this._currentMeasure.top -= top;\r\n\r\n this._customData.origLeftForChildren = this._measureForChildren.left;\r\n this._customData.origTopForChildren = this._measureForChildren.top;\r\n this._customData.origLeft = this._currentMeasure.left;\r\n this._customData.origTop = this._currentMeasure.top;\r\n\r\n this._updateChildrenMeasures(this._children, left, top);\r\n }\r\n\r\n private _updateChildrenMeasures(children: Control[], left: number, top: number): void {\r\n for (let i = 0; i < children.length; ++i) {\r\n const child = children[i];\r\n\r\n child._currentMeasure.left -= left;\r\n child._currentMeasure.top -= top;\r\n\r\n child._customData._origLeft = child._currentMeasure.left; // save the original left and top values for each child\r\n child._customData._origTop = child._currentMeasure.top;\r\n\r\n if (child instanceof Container && child._children.length > 0) {\r\n this._updateChildrenMeasures(child._children, left, top);\r\n }\r\n }\r\n }\r\n\r\n private _restoreMeasures(): void {\r\n const left = this.leftInPixels | 0,\r\n top = this.topInPixels | 0;\r\n\r\n this._measureForChildren.left = this._customData.origLeftForChildren + left;\r\n this._measureForChildren.top = this._customData.origTopForChildren + top;\r\n this._currentMeasure.left = this._customData.origLeft + left;\r\n this._currentMeasure.top = this._customData.origTop + top;\r\n }\r\n\r\n /**\r\n * Creates a new ScrollViewerWindow\r\n * @param name of ScrollViewerWindow\r\n */\r\n constructor(name?: string) {\r\n super(name);\r\n }\r\n\r\n protected _getTypeName(): string {\r\n return \"ScrollViewerWindow\";\r\n }\r\n\r\n /**\r\n * @param parentMeasure\r\n * @param context\r\n * @hidden\r\n */\r\n protected _additionalProcessing(parentMeasure: Measure, context: ICanvasRenderingContext): void {\r\n super._additionalProcessing(parentMeasure, context);\r\n\r\n this._parentMeasure = parentMeasure;\r\n\r\n this._measureForChildren.left = this._currentMeasure.left;\r\n this._measureForChildren.top = this._currentMeasure.top;\r\n\r\n this._measureForChildren.width = parentMeasure.width;\r\n this._measureForChildren.height = parentMeasure.height;\r\n }\r\n\r\n /**\r\n * @param parentMeasure\r\n * @param context\r\n * @hidden\r\n */\r\n public _layout(parentMeasure: Measure, context: ICanvasRenderingContext): boolean {\r\n if (this._freezeControls) {\r\n this.invalidateRect(); // will trigger a redraw of the window\r\n return false;\r\n }\r\n\r\n return super._layout(parentMeasure, context);\r\n }\r\n\r\n private _scrollChildren(children: Control[], left: number, top: number): void {\r\n for (let i = 0; i < children.length; ++i) {\r\n const child = children[i];\r\n\r\n child._currentMeasure.left = child._customData._origLeft + left;\r\n child._currentMeasure.top = child._customData._origTop + top;\r\n child._isClipped = false; // clipping will be handled by _draw and the call to _intersectsRect()\r\n\r\n if (child instanceof Container && child._children.length > 0) {\r\n this._scrollChildren(child._children, left, top);\r\n }\r\n }\r\n }\r\n\r\n private _scrollChildrenWithBuckets(left: number, top: number, scrollLeft: number, scrollTop: number): void {\r\n const bStartX = Math.max(0, Math.floor(-left / this._bucketWidth)),\r\n bEndX = Math.floor((-left + this._parentMeasure.width - 1) / this._bucketWidth),\r\n bEndY = Math.floor((-top + this._parentMeasure.height - 1) / this._bucketHeight);\r\n let bStartY = Math.max(0, Math.floor(-top / this._bucketHeight));\r\n\r\n while (bStartY <= bEndY) {\r\n for (let x = bStartX; x <= bEndX; ++x) {\r\n const bucket = bStartY * this._bucketLen + x,\r\n lstc = this._buckets[bucket];\r\n\r\n if (lstc) {\r\n for (let i = 0; i < lstc.length; ++i) {\r\n const child = lstc[i];\r\n child._currentMeasure.left = child._customData._origLeft + scrollLeft;\r\n child._currentMeasure.top = child._customData._origTop + scrollTop;\r\n child._isClipped = false; // clipping will be handled by _draw and the call to _intersectsRect()\r\n }\r\n }\r\n }\r\n bStartY++;\r\n }\r\n }\r\n\r\n /**\r\n * @param context\r\n * @param invalidatedRectangle\r\n * @hidden\r\n */\r\n public _draw(context: ICanvasRenderingContext, invalidatedRectangle?: Measure): void {\r\n if (!this._freezeControls) {\r\n super._draw(context, invalidatedRectangle);\r\n return;\r\n }\r\n\r\n this._localDraw(context);\r\n\r\n if (this.clipChildren) {\r\n this._clipForChildren(context);\r\n }\r\n\r\n const left = this.leftInPixels | 0,\r\n top = this.topInPixels | 0;\r\n\r\n if (this._useBuckets()) {\r\n if (this._oldLeft !== null && this._oldTop !== null) {\r\n this._scrollChildrenWithBuckets(this._oldLeft, this._oldTop, left, top);\r\n this._scrollChildrenWithBuckets(left, top, left, top);\r\n } else {\r\n this._scrollChildren(this._children, left, top);\r\n }\r\n } else {\r\n this._scrollChildren(this._children, left, top);\r\n }\r\n\r\n this._oldLeft = left;\r\n this._oldTop = top;\r\n\r\n for (const child of this._children) {\r\n if (!child._intersectsRect(this._parentMeasure)) {\r\n continue;\r\n }\r\n child._render(context, this._parentMeasure);\r\n }\r\n }\r\n\r\n protected _postMeasure(): void {\r\n if (this._freezeControls) {\r\n super._postMeasure();\r\n return;\r\n }\r\n\r\n let maxWidth = this.parentClientWidth;\r\n let maxHeight = this.parentClientHeight;\r\n for (const child of this.children) {\r\n if (!child.isVisible || child.notRenderable) {\r\n continue;\r\n }\r\n\r\n if (child.horizontalAlignment === Control.HORIZONTAL_ALIGNMENT_CENTER) {\r\n child._offsetLeft(this._currentMeasure.left - child._currentMeasure.left);\r\n }\r\n\r\n if (child.verticalAlignment === Control.VERTICAL_ALIGNMENT_CENTER) {\r\n child._offsetTop(this._currentMeasure.top - child._currentMeasure.top);\r\n }\r\n\r\n maxWidth = Math.max(maxWidth, child._currentMeasure.left - this._currentMeasure.left + child._currentMeasure.width + child.paddingRightInPixels);\r\n maxHeight = Math.max(maxHeight, child._currentMeasure.top - this._currentMeasure.top + child._currentMeasure.height + child.paddingBottomInPixels);\r\n }\r\n\r\n if (this._currentMeasure.width !== maxWidth) {\r\n this._width.updateInPlace(maxWidth, ValueAndUnit.UNITMODE_PIXEL);\r\n this._currentMeasure.width = maxWidth;\r\n this._rebuildLayout = true;\r\n this._isDirty = true;\r\n }\r\n\r\n if (this._currentMeasure.height !== maxHeight) {\r\n this._height.updateInPlace(maxHeight, ValueAndUnit.UNITMODE_PIXEL);\r\n this._currentMeasure.height = maxHeight;\r\n this._rebuildLayout = true;\r\n this._isDirty = true;\r\n }\r\n\r\n super._postMeasure();\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"scrollViewerWindow.js","sourceRoot":"","sources":["../../../../../../../lts/gui/generated/2D/controls/scrollViewers/scrollViewerWindow.ts"],"names":[],"mappings":"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","sourcesContent":["import { Measure } from \"../../measure\";\r\nimport { Container } from \"../container\";\r\nimport { ValueAndUnit } from \"../../valueAndUnit\";\r\nimport { Control } from \"../control\";\r\nimport type { ICanvasRenderingContext } from \"core/Engines/ICanvas\";\r\n\r\n/**\r\n * Class used to hold a the container for ScrollViewer\r\n * @internal\r\n */\r\nexport class _ScrollViewerWindow extends Container {\r\n public parentClientWidth: number;\r\n public parentClientHeight: number;\r\n\r\n private _freezeControls = false;\r\n private _parentMeasure: Measure;\r\n private _oldLeft: number | null;\r\n private _oldTop: number | null;\r\n\r\n public get freezeControls(): boolean {\r\n return this._freezeControls;\r\n }\r\n\r\n public set freezeControls(value: boolean) {\r\n if (this._freezeControls === value) {\r\n return;\r\n }\r\n\r\n if (!value) {\r\n this._restoreMeasures();\r\n }\r\n\r\n // trigger a full normal layout calculation to be sure all children have their measures up to date\r\n this._freezeControls = false;\r\n\r\n const textureSize = this.host.getSize();\r\n const renderWidth = textureSize.width;\r\n const renderHeight = textureSize.height;\r\n\r\n const context = this.host.getContext();\r\n\r\n const measure = new Measure(0, 0, renderWidth, renderHeight);\r\n\r\n this.host._numLayoutCalls = 0;\r\n\r\n this.host._rootContainer._layout(measure, context);\r\n\r\n // in freeze mode, prepare children measures accordingly\r\n if (value) {\r\n this._updateMeasures();\r\n if (this._useBuckets()) {\r\n this._makeBuckets();\r\n }\r\n }\r\n\r\n this._freezeControls = value;\r\n\r\n this.host.markAsDirty(); // redraw with the (new) current settings\r\n }\r\n\r\n private _bucketWidth: number = 0;\r\n private _bucketHeight: number = 0;\r\n private _buckets: { [key: number]: Array<Control> } = {};\r\n private _bucketLen: number;\r\n\r\n public get bucketWidth(): number {\r\n return this._bucketWidth;\r\n }\r\n\r\n public get bucketHeight(): number {\r\n return this._bucketHeight;\r\n }\r\n\r\n public setBucketSizes(width: number, height: number): void {\r\n this._bucketWidth = width;\r\n this._bucketHeight = height;\r\n\r\n if (this._useBuckets()) {\r\n if (this._freezeControls) {\r\n this._makeBuckets();\r\n }\r\n } else {\r\n this._buckets = {};\r\n }\r\n }\r\n\r\n private _useBuckets(): boolean {\r\n return this._bucketWidth > 0 && this._bucketHeight > 0;\r\n }\r\n\r\n private _makeBuckets(): void {\r\n this._buckets = {};\r\n this._bucketLen = Math.ceil(this.widthInPixels / this._bucketWidth);\r\n this._dispatchInBuckets(this._children);\r\n this._oldLeft = null;\r\n this._oldTop = null;\r\n }\r\n\r\n private _dispatchInBuckets(children: Control[]): void {\r\n for (let i = 0; i < children.length; ++i) {\r\n const child = children[i];\r\n\r\n const bStartX = Math.max(0, Math.floor((child._customData._origLeft - this._customData.origLeft) / this._bucketWidth)),\r\n bEndX = Math.floor((child._customData._origLeft - this._customData.origLeft + child._currentMeasure.width - 1) / this._bucketWidth),\r\n bEndY = Math.floor((child._customData._origTop - this._customData.origTop + child._currentMeasure.height - 1) / this._bucketHeight);\r\n let bStartY = Math.max(0, Math.floor((child._customData._origTop - this._customData.origTop) / this._bucketHeight));\r\n\r\n while (bStartY <= bEndY) {\r\n for (let x = bStartX; x <= bEndX; ++x) {\r\n const bucket = bStartY * this._bucketLen + x;\r\n let lstc = this._buckets[bucket];\r\n\r\n if (!lstc) {\r\n lstc = [];\r\n this._buckets[bucket] = lstc;\r\n }\r\n\r\n lstc.push(child);\r\n }\r\n bStartY++;\r\n }\r\n\r\n if (child instanceof Container && child._children.length > 0) {\r\n this._dispatchInBuckets(child._children);\r\n }\r\n }\r\n }\r\n\r\n // reset left and top measures for the window and all its children\r\n private _updateMeasures(): void {\r\n const left = this.leftInPixels | 0,\r\n top = this.topInPixels | 0;\r\n\r\n this._measureForChildren.left -= left;\r\n this._measureForChildren.top -= top;\r\n this._currentMeasure.left -= left;\r\n this._currentMeasure.top -= top;\r\n\r\n this._customData.origLeftForChildren = this._measureForChildren.left;\r\n this._customData.origTopForChildren = this._measureForChildren.top;\r\n this._customData.origLeft = this._currentMeasure.left;\r\n this._customData.origTop = this._currentMeasure.top;\r\n\r\n this._updateChildrenMeasures(this._children, left, top);\r\n }\r\n\r\n private _updateChildrenMeasures(children: Control[], left: number, top: number): void {\r\n for (let i = 0; i < children.length; ++i) {\r\n const child = children[i];\r\n\r\n child._currentMeasure.left -= left;\r\n child._currentMeasure.top -= top;\r\n\r\n child._customData._origLeft = child._currentMeasure.left; // save the original left and top values for each child\r\n child._customData._origTop = child._currentMeasure.top;\r\n\r\n if (child instanceof Container && child._children.length > 0) {\r\n this._updateChildrenMeasures(child._children, left, top);\r\n }\r\n }\r\n }\r\n\r\n private _restoreMeasures(): void {\r\n const left = this.leftInPixels | 0,\r\n top = this.topInPixels | 0;\r\n\r\n this._measureForChildren.left = this._customData.origLeftForChildren + left;\r\n this._measureForChildren.top = this._customData.origTopForChildren + top;\r\n this._currentMeasure.left = this._customData.origLeft + left;\r\n this._currentMeasure.top = this._customData.origTop + top;\r\n }\r\n\r\n /**\r\n * Creates a new ScrollViewerWindow\r\n * @param name of ScrollViewerWindow\r\n */\r\n constructor(name?: string) {\r\n super(name);\r\n }\r\n\r\n protected _getTypeName(): string {\r\n return \"ScrollViewerWindow\";\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n protected _additionalProcessing(parentMeasure: Measure, context: ICanvasRenderingContext): void {\r\n super._additionalProcessing(parentMeasure, context);\r\n\r\n this._parentMeasure = parentMeasure;\r\n\r\n this._measureForChildren.left = this._currentMeasure.left;\r\n this._measureForChildren.top = this._currentMeasure.top;\r\n\r\n this._measureForChildren.width = parentMeasure.width;\r\n this._measureForChildren.height = parentMeasure.height;\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public _layout(parentMeasure: Measure, context: ICanvasRenderingContext): boolean {\r\n if (this._freezeControls) {\r\n this.invalidateRect(); // will trigger a redraw of the window\r\n return false;\r\n }\r\n\r\n return super._layout(parentMeasure, context);\r\n }\r\n\r\n private _scrollChildren(children: Control[], left: number, top: number): void {\r\n for (let i = 0; i < children.length; ++i) {\r\n const child = children[i];\r\n\r\n child._currentMeasure.left = child._customData._origLeft + left;\r\n child._currentMeasure.top = child._customData._origTop + top;\r\n child._isClipped = false; // clipping will be handled by _draw and the call to _intersectsRect()\r\n\r\n if (child instanceof Container && child._children.length > 0) {\r\n this._scrollChildren(child._children, left, top);\r\n }\r\n }\r\n }\r\n\r\n private _scrollChildrenWithBuckets(left: number, top: number, scrollLeft: number, scrollTop: number): void {\r\n const bStartX = Math.max(0, Math.floor(-left / this._bucketWidth)),\r\n bEndX = Math.floor((-left + this._parentMeasure.width - 1) / this._bucketWidth),\r\n bEndY = Math.floor((-top + this._parentMeasure.height - 1) / this._bucketHeight);\r\n let bStartY = Math.max(0, Math.floor(-top / this._bucketHeight));\r\n\r\n while (bStartY <= bEndY) {\r\n for (let x = bStartX; x <= bEndX; ++x) {\r\n const bucket = bStartY * this._bucketLen + x,\r\n lstc = this._buckets[bucket];\r\n\r\n if (lstc) {\r\n for (let i = 0; i < lstc.length; ++i) {\r\n const child = lstc[i];\r\n child._currentMeasure.left = child._customData._origLeft + scrollLeft;\r\n child._currentMeasure.top = child._customData._origTop + scrollTop;\r\n child._isClipped = false; // clipping will be handled by _draw and the call to _intersectsRect()\r\n }\r\n }\r\n }\r\n bStartY++;\r\n }\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public _draw(context: ICanvasRenderingContext, invalidatedRectangle?: Measure): void {\r\n if (!this._freezeControls) {\r\n super._draw(context, invalidatedRectangle);\r\n return;\r\n }\r\n\r\n this._localDraw(context);\r\n\r\n if (this.clipChildren) {\r\n this._clipForChildren(context);\r\n }\r\n\r\n const left = this.leftInPixels | 0,\r\n top = this.topInPixels | 0;\r\n\r\n if (this._useBuckets()) {\r\n if (this._oldLeft !== null && this._oldTop !== null) {\r\n this._scrollChildrenWithBuckets(this._oldLeft, this._oldTop, left, top);\r\n this._scrollChildrenWithBuckets(left, top, left, top);\r\n } else {\r\n this._scrollChildren(this._children, left, top);\r\n }\r\n } else {\r\n this._scrollChildren(this._children, left, top);\r\n }\r\n\r\n this._oldLeft = left;\r\n this._oldTop = top;\r\n\r\n for (const child of this._children) {\r\n if (!child._intersectsRect(this._parentMeasure)) {\r\n continue;\r\n }\r\n child._render(context, this._parentMeasure);\r\n }\r\n }\r\n\r\n protected _postMeasure(): void {\r\n if (this._freezeControls) {\r\n super._postMeasure();\r\n return;\r\n }\r\n\r\n let maxWidth = this.parentClientWidth;\r\n let maxHeight = this.parentClientHeight;\r\n for (const child of this.children) {\r\n if (!child.isVisible || child.notRenderable) {\r\n continue;\r\n }\r\n\r\n if (child.horizontalAlignment === Control.HORIZONTAL_ALIGNMENT_CENTER) {\r\n child._offsetLeft(this._currentMeasure.left - child._currentMeasure.left);\r\n }\r\n\r\n if (child.verticalAlignment === Control.VERTICAL_ALIGNMENT_CENTER) {\r\n child._offsetTop(this._currentMeasure.top - child._currentMeasure.top);\r\n }\r\n\r\n maxWidth = Math.max(maxWidth, child._currentMeasure.left - this._currentMeasure.left + child._currentMeasure.width + child.paddingRightInPixels);\r\n maxHeight = Math.max(maxHeight, child._currentMeasure.top - this._currentMeasure.top + child._currentMeasure.height + child.paddingBottomInPixels);\r\n }\r\n\r\n if (this._currentMeasure.width !== maxWidth) {\r\n this._width.updateInPlace(maxWidth, ValueAndUnit.UNITMODE_PIXEL);\r\n this._currentMeasure.width = maxWidth;\r\n this._rebuildLayout = true;\r\n this._isDirty = true;\r\n }\r\n\r\n if (this._currentMeasure.height !== maxHeight) {\r\n this._height.updateInPlace(maxHeight, ValueAndUnit.UNITMODE_PIXEL);\r\n this._currentMeasure.height = maxHeight;\r\n this._rebuildLayout = true;\r\n this._isDirty = true;\r\n }\r\n\r\n super._postMeasure();\r\n }\r\n}\r\n"]}
|
|
@@ -24,13 +24,11 @@ export declare class SelectorGroup {
|
|
|
24
24
|
get header(): string;
|
|
25
25
|
set header(label: string);
|
|
26
26
|
/**
|
|
27
|
-
* @
|
|
28
|
-
* @hidden
|
|
27
|
+
* @internal
|
|
29
28
|
*/
|
|
30
29
|
private _addGroupHeader;
|
|
31
30
|
/**
|
|
32
|
-
* @
|
|
33
|
-
* @hidden
|
|
31
|
+
* @internal
|
|
34
32
|
*/
|
|
35
33
|
_getSelector(selectorNb: number): StackPanel | undefined;
|
|
36
34
|
/** Removes the selector at the given position
|
|
@@ -49,27 +47,19 @@ export declare class CheckboxGroup extends SelectorGroup {
|
|
|
49
47
|
*/
|
|
50
48
|
addCheckbox(text: string, func?: (s: boolean) => void, checked?: boolean): void;
|
|
51
49
|
/**
|
|
52
|
-
* @
|
|
53
|
-
* @param label
|
|
54
|
-
* @hidden
|
|
50
|
+
* @internal
|
|
55
51
|
*/
|
|
56
52
|
_setSelectorLabel(selectorNb: number, label: string): void;
|
|
57
53
|
/**
|
|
58
|
-
* @
|
|
59
|
-
* @param color
|
|
60
|
-
* @hidden
|
|
54
|
+
* @internal
|
|
61
55
|
*/
|
|
62
56
|
_setSelectorLabelColor(selectorNb: number, color: string): void;
|
|
63
57
|
/**
|
|
64
|
-
* @
|
|
65
|
-
* @param color
|
|
66
|
-
* @hidden
|
|
58
|
+
* @internal
|
|
67
59
|
*/
|
|
68
60
|
_setSelectorButtonColor(selectorNb: number, color: string): void;
|
|
69
61
|
/**
|
|
70
|
-
* @
|
|
71
|
-
* @param color
|
|
72
|
-
* @hidden
|
|
62
|
+
* @internal
|
|
73
63
|
*/
|
|
74
64
|
_setSelectorButtonBackground(selectorNb: number, color: string): void;
|
|
75
65
|
}
|
|
@@ -85,27 +75,19 @@ export declare class RadioGroup extends SelectorGroup {
|
|
|
85
75
|
*/
|
|
86
76
|
addRadio(label: string, func?: (n: number) => void, checked?: boolean): void;
|
|
87
77
|
/**
|
|
88
|
-
* @
|
|
89
|
-
* @param label
|
|
90
|
-
* @hidden
|
|
78
|
+
* @internal
|
|
91
79
|
*/
|
|
92
80
|
_setSelectorLabel(selectorNb: number, label: string): void;
|
|
93
81
|
/**
|
|
94
|
-
* @
|
|
95
|
-
* @param color
|
|
96
|
-
* @hidden
|
|
82
|
+
* @internal
|
|
97
83
|
*/
|
|
98
84
|
_setSelectorLabelColor(selectorNb: number, color: string): void;
|
|
99
85
|
/**
|
|
100
|
-
* @
|
|
101
|
-
* @param color
|
|
102
|
-
* @hidden
|
|
86
|
+
* @internal
|
|
103
87
|
*/
|
|
104
88
|
_setSelectorButtonColor(selectorNb: number, color: string): void;
|
|
105
89
|
/**
|
|
106
|
-
* @
|
|
107
|
-
* @param color
|
|
108
|
-
* @hidden
|
|
90
|
+
* @internal
|
|
109
91
|
*/
|
|
110
92
|
_setSelectorButtonBackground(selectorNb: number, color: string): void;
|
|
111
93
|
}
|
|
@@ -125,27 +107,19 @@ export declare class SliderGroup extends SelectorGroup {
|
|
|
125
107
|
*/
|
|
126
108
|
addSlider(label: string, func?: (v: number) => void, unit?: string, min?: number, max?: number, value?: number, onValueChange?: (v: number) => number): void;
|
|
127
109
|
/**
|
|
128
|
-
* @
|
|
129
|
-
* @param label
|
|
130
|
-
* @hidden
|
|
110
|
+
* @internal
|
|
131
111
|
*/
|
|
132
112
|
_setSelectorLabel(selectorNb: number, label: string): void;
|
|
133
113
|
/**
|
|
134
|
-
* @
|
|
135
|
-
* @param color
|
|
136
|
-
* @hidden
|
|
114
|
+
* @internal
|
|
137
115
|
*/
|
|
138
116
|
_setSelectorLabelColor(selectorNb: number, color: string): void;
|
|
139
117
|
/**
|
|
140
|
-
* @
|
|
141
|
-
* @param color
|
|
142
|
-
* @hidden
|
|
118
|
+
* @internal
|
|
143
119
|
*/
|
|
144
120
|
_setSelectorButtonColor(selectorNb: number, color: string): void;
|
|
145
121
|
/**
|
|
146
|
-
* @
|
|
147
|
-
* @param color
|
|
148
|
-
* @hidden
|
|
122
|
+
* @internal
|
|
149
123
|
*/
|
|
150
124
|
_setSelectorButtonBackground(selectorNb: number, color: string): void;
|
|
151
125
|
}
|
package/2D/controls/selector.js
CHANGED
|
@@ -43,8 +43,7 @@ export class SelectorGroup {
|
|
|
43
43
|
this._groupHeader.text = label;
|
|
44
44
|
}
|
|
45
45
|
/**
|
|
46
|
-
* @
|
|
47
|
-
* @hidden
|
|
46
|
+
* @internal
|
|
48
47
|
*/
|
|
49
48
|
_addGroupHeader(text) {
|
|
50
49
|
const groupHeading = new TextBlock("groupHead", text);
|
|
@@ -59,8 +58,7 @@ export class SelectorGroup {
|
|
|
59
58
|
return groupHeading;
|
|
60
59
|
}
|
|
61
60
|
/**
|
|
62
|
-
* @
|
|
63
|
-
* @hidden
|
|
61
|
+
* @internal
|
|
64
62
|
*/
|
|
65
63
|
_getSelector(selectorNb) {
|
|
66
64
|
if (selectorNb < 0 || selectorNb >= this._selectors.length) {
|
|
@@ -113,33 +111,25 @@ export class CheckboxGroup extends SelectorGroup {
|
|
|
113
111
|
}
|
|
114
112
|
}
|
|
115
113
|
/**
|
|
116
|
-
* @
|
|
117
|
-
* @param label
|
|
118
|
-
* @hidden
|
|
114
|
+
* @internal
|
|
119
115
|
*/
|
|
120
116
|
_setSelectorLabel(selectorNb, label) {
|
|
121
117
|
this.selectors[selectorNb].children[1].text = label;
|
|
122
118
|
}
|
|
123
119
|
/**
|
|
124
|
-
* @
|
|
125
|
-
* @param color
|
|
126
|
-
* @hidden
|
|
120
|
+
* @internal
|
|
127
121
|
*/
|
|
128
122
|
_setSelectorLabelColor(selectorNb, color) {
|
|
129
123
|
this.selectors[selectorNb].children[1].color = color;
|
|
130
124
|
}
|
|
131
125
|
/**
|
|
132
|
-
* @
|
|
133
|
-
* @param color
|
|
134
|
-
* @hidden
|
|
126
|
+
* @internal
|
|
135
127
|
*/
|
|
136
128
|
_setSelectorButtonColor(selectorNb, color) {
|
|
137
129
|
this.selectors[selectorNb].children[0].color = color;
|
|
138
130
|
}
|
|
139
131
|
/**
|
|
140
|
-
* @
|
|
141
|
-
* @param color
|
|
142
|
-
* @hidden
|
|
132
|
+
* @internal
|
|
143
133
|
*/
|
|
144
134
|
_setSelectorButtonBackground(selectorNb, color) {
|
|
145
135
|
this.selectors[selectorNb].children[0].background = color;
|
|
@@ -187,33 +177,25 @@ export class RadioGroup extends SelectorGroup {
|
|
|
187
177
|
}
|
|
188
178
|
}
|
|
189
179
|
/**
|
|
190
|
-
* @
|
|
191
|
-
* @param label
|
|
192
|
-
* @hidden
|
|
180
|
+
* @internal
|
|
193
181
|
*/
|
|
194
182
|
_setSelectorLabel(selectorNb, label) {
|
|
195
183
|
this.selectors[selectorNb].children[1].text = label;
|
|
196
184
|
}
|
|
197
185
|
/**
|
|
198
|
-
* @
|
|
199
|
-
* @param color
|
|
200
|
-
* @hidden
|
|
186
|
+
* @internal
|
|
201
187
|
*/
|
|
202
188
|
_setSelectorLabelColor(selectorNb, color) {
|
|
203
189
|
this.selectors[selectorNb].children[1].color = color;
|
|
204
190
|
}
|
|
205
191
|
/**
|
|
206
|
-
* @
|
|
207
|
-
* @param color
|
|
208
|
-
* @hidden
|
|
192
|
+
* @internal
|
|
209
193
|
*/
|
|
210
194
|
_setSelectorButtonColor(selectorNb, color) {
|
|
211
195
|
this.selectors[selectorNb].children[0].color = color;
|
|
212
196
|
}
|
|
213
197
|
/**
|
|
214
|
-
* @
|
|
215
|
-
* @param color
|
|
216
|
-
* @hidden
|
|
198
|
+
* @internal
|
|
217
199
|
*/
|
|
218
200
|
_setSelectorButtonBackground(selectorNb, color) {
|
|
219
201
|
this.selectors[selectorNb].children[0].background = color;
|
|
@@ -268,9 +250,7 @@ export class SliderGroup extends SelectorGroup {
|
|
|
268
250
|
}
|
|
269
251
|
}
|
|
270
252
|
/**
|
|
271
|
-
* @
|
|
272
|
-
* @param label
|
|
273
|
-
* @hidden
|
|
253
|
+
* @internal
|
|
274
254
|
*/
|
|
275
255
|
_setSelectorLabel(selectorNb, label) {
|
|
276
256
|
this.selectors[selectorNb].children[0].name = label;
|
|
@@ -278,25 +258,19 @@ export class SliderGroup extends SelectorGroup {
|
|
|
278
258
|
label + ": " + this.selectors[selectorNb].children[1].value + " " + this.selectors[selectorNb].children[1].name;
|
|
279
259
|
}
|
|
280
260
|
/**
|
|
281
|
-
* @
|
|
282
|
-
* @param color
|
|
283
|
-
* @hidden
|
|
261
|
+
* @internal
|
|
284
262
|
*/
|
|
285
263
|
_setSelectorLabelColor(selectorNb, color) {
|
|
286
264
|
this.selectors[selectorNb].children[0].color = color;
|
|
287
265
|
}
|
|
288
266
|
/**
|
|
289
|
-
* @
|
|
290
|
-
* @param color
|
|
291
|
-
* @hidden
|
|
267
|
+
* @internal
|
|
292
268
|
*/
|
|
293
269
|
_setSelectorButtonColor(selectorNb, color) {
|
|
294
270
|
this.selectors[selectorNb].children[1].color = color;
|
|
295
271
|
}
|
|
296
272
|
/**
|
|
297
|
-
* @
|
|
298
|
-
* @param color
|
|
299
|
-
* @hidden
|
|
273
|
+
* @internal
|
|
300
274
|
*/
|
|
301
275
|
_setSelectorButtonBackground(selectorNb, color) {
|
|
302
276
|
this.selectors[selectorNb].children[1].background = color;
|