@itwin/imodel-components-react 3.7.0-dev.3 → 3.7.0-dev.5
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/lib/cjs/imodel-components-react/UiIModelComponents.d.ts +28 -28
- package/lib/cjs/imodel-components-react/UiIModelComponents.js +79 -79
- package/lib/cjs/imodel-components-react/UiIModelComponents.js.map +1 -1
- package/lib/cjs/imodel-components-react/color/AlphaSlider.d.ts +36 -36
- package/lib/cjs/imodel-components-react/color/AlphaSlider.js +186 -186
- package/lib/cjs/imodel-components-react/color/AlphaSlider.js.map +1 -1
- package/lib/cjs/imodel-components-react/color/AlphaSlider.scss +63 -63
- package/lib/cjs/imodel-components-react/color/ColorPickerButton.d.ts +37 -37
- package/lib/cjs/imodel-components-react/color/ColorPickerButton.js +107 -107
- package/lib/cjs/imodel-components-react/color/ColorPickerButton.js.map +1 -1
- package/lib/cjs/imodel-components-react/color/ColorPickerButton.scss +91 -91
- package/lib/cjs/imodel-components-react/color/ColorPickerDialog.d.ts +23 -23
- package/lib/cjs/imodel-components-react/color/ColorPickerDialog.js +74 -74
- package/lib/cjs/imodel-components-react/color/ColorPickerDialog.js.map +1 -1
- package/lib/cjs/imodel-components-react/color/ColorPickerPanel.d.ts +21 -21
- package/lib/cjs/imodel-components-react/color/ColorPickerPanel.js +145 -145
- package/lib/cjs/imodel-components-react/color/ColorPickerPanel.js.map +1 -1
- package/lib/cjs/imodel-components-react/color/ColorPickerPanel.scss +93 -93
- package/lib/cjs/imodel-components-react/color/ColorPickerPopup.d.ts +44 -44
- package/lib/cjs/imodel-components-react/color/ColorPickerPopup.js +137 -137
- package/lib/cjs/imodel-components-react/color/ColorPickerPopup.js.map +1 -1
- package/lib/cjs/imodel-components-react/color/ColorPickerPopup.scss +64 -64
- package/lib/cjs/imodel-components-react/color/HueSlider.d.ts +22 -22
- package/lib/cjs/imodel-components-react/color/HueSlider.js +199 -199
- package/lib/cjs/imodel-components-react/color/HueSlider.js.map +1 -1
- package/lib/cjs/imodel-components-react/color/HueSlider.scss +61 -61
- package/lib/cjs/imodel-components-react/color/SaturationPicker.d.ts +20 -20
- package/lib/cjs/imodel-components-react/color/SaturationPicker.js +213 -213
- package/lib/cjs/imodel-components-react/color/SaturationPicker.js.map +1 -1
- package/lib/cjs/imodel-components-react/color/SaturationPicker.scss +35 -35
- package/lib/cjs/imodel-components-react/color/Swatch.d.ts +22 -22
- package/lib/cjs/imodel-components-react/color/Swatch.js +60 -60
- package/lib/cjs/imodel-components-react/color/Swatch.js.map +1 -1
- package/lib/cjs/imodel-components-react/color/Swatch.scss +23 -23
- package/lib/cjs/imodel-components-react/color/getCSSColorFromDef.d.ts +6 -6
- package/lib/cjs/imodel-components-react/color/getCSSColorFromDef.js +23 -23
- package/lib/cjs/imodel-components-react/color/getCSSColorFromDef.js.map +1 -1
- package/lib/cjs/imodel-components-react/editors/ColorEditor.d.ts +44 -44
- package/lib/cjs/imodel-components-react/editors/ColorEditor.js +151 -151
- package/lib/cjs/imodel-components-react/editors/ColorEditor.js.map +1 -1
- package/lib/cjs/imodel-components-react/editors/ColorEditor.scss +18 -18
- package/lib/cjs/imodel-components-react/editors/WeightEditor.d.ts +47 -47
- package/lib/cjs/imodel-components-react/editors/WeightEditor.js +160 -160
- package/lib/cjs/imodel-components-react/editors/WeightEditor.js.map +1 -1
- package/lib/cjs/imodel-components-react/editors/WeightEditor.scss +16 -16
- package/lib/cjs/imodel-components-react/inputs/QuantityInput.d.ts +25 -25
- package/lib/cjs/imodel-components-react/inputs/QuantityInput.js +96 -96
- package/lib/cjs/imodel-components-react/inputs/QuantityInput.js.map +1 -1
- package/lib/cjs/imodel-components-react/inputs/QuantityNumberInput.d.ts +44 -44
- package/lib/cjs/imodel-components-react/inputs/QuantityNumberInput.js +265 -265
- package/lib/cjs/imodel-components-react/inputs/QuantityNumberInput.js.map +1 -1
- package/lib/cjs/imodel-components-react/inputs/QuantityNumberInput.scss +107 -107
- package/lib/cjs/imodel-components-react/lineweight/Swatch.d.ts +33 -33
- package/lib/cjs/imodel-components-react/lineweight/Swatch.js +85 -85
- package/lib/cjs/imodel-components-react/lineweight/Swatch.js.map +1 -1
- package/lib/cjs/imodel-components-react/lineweight/Swatch.scss +48 -48
- package/lib/cjs/imodel-components-react/lineweight/WeightPickerButton.d.ts +60 -60
- package/lib/cjs/imodel-components-react/lineweight/WeightPickerButton.js +159 -159
- package/lib/cjs/imodel-components-react/lineweight/WeightPickerButton.js.map +1 -1
- package/lib/cjs/imodel-components-react/lineweight/WeightPickerButton.scss +52 -52
- package/lib/cjs/imodel-components-react/navigationaids/Cube.d.ts +45 -45
- package/lib/cjs/imodel-components-react/navigationaids/Cube.js +127 -127
- package/lib/cjs/imodel-components-react/navigationaids/Cube.js.map +1 -1
- package/lib/cjs/imodel-components-react/navigationaids/Cube.scss +19 -19
- package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.d.ts +175 -175
- package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.js +647 -647
- package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.js.map +1 -1
- package/lib/cjs/imodel-components-react/navigationaids/CubeNavigationAid.scss +180 -180
- package/lib/cjs/imodel-components-react/navigationaids/DrawingNavigationAid.d.ts +145 -145
- package/lib/cjs/imodel-components-react/navigationaids/DrawingNavigationAid.js +647 -647
- package/lib/cjs/imodel-components-react/navigationaids/DrawingNavigationAid.js.map +1 -1
- package/lib/cjs/imodel-components-react/navigationaids/DrawingNavigationAid.scss +133 -133
- package/lib/cjs/imodel-components-react/quantityformat/FormatPanel.d.ts +26 -26
- package/lib/cjs/imodel-components-react/quantityformat/FormatPanel.js +99 -99
- package/lib/cjs/imodel-components-react/quantityformat/FormatPanel.js.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/FormatPanel.scss +64 -64
- package/lib/cjs/imodel-components-react/quantityformat/FormatPrecision.d.ts +17 -17
- package/lib/cjs/imodel-components-react/quantityformat/FormatPrecision.js +53 -53
- package/lib/cjs/imodel-components-react/quantityformat/FormatPrecision.js.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/FormatSample.d.ts +18 -18
- package/lib/cjs/imodel-components-react/quantityformat/FormatSample.js +83 -83
- package/lib/cjs/imodel-components-react/quantityformat/FormatSample.js.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/FormatType.d.ts +17 -17
- package/lib/cjs/imodel-components-react/quantityformat/FormatType.js +86 -86
- package/lib/cjs/imodel-components-react/quantityformat/FormatType.js.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/FormatUnitLabel.d.ts +17 -17
- package/lib/cjs/imodel-components-react/quantityformat/FormatUnitLabel.js +109 -109
- package/lib/cjs/imodel-components-react/quantityformat/FormatUnitLabel.js.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/FormatUnits.d.ts +19 -19
- package/lib/cjs/imodel-components-react/quantityformat/FormatUnits.js +133 -133
- package/lib/cjs/imodel-components-react/quantityformat/FormatUnits.js.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/MiscFormatOptions.d.ts +21 -21
- package/lib/cjs/imodel-components-react/quantityformat/MiscFormatOptions.js +184 -184
- package/lib/cjs/imodel-components-react/quantityformat/MiscFormatOptions.js.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/QuantityFormatPanel.d.ts +22 -22
- package/lib/cjs/imodel-components-react/quantityformat/QuantityFormatPanel.js +154 -154
- package/lib/cjs/imodel-components-react/quantityformat/QuantityFormatPanel.js.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalPrecision.d.ts +17 -17
- package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalPrecision.js +59 -59
- package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalPrecision.js.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalSeparator.d.ts +17 -17
- package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalSeparator.js +47 -47
- package/lib/cjs/imodel-components-react/quantityformat/misc/DecimalSeparator.js.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/FractionPrecision.d.ts +16 -16
- package/lib/cjs/imodel-components-react/quantityformat/misc/FractionPrecision.js +54 -54
- package/lib/cjs/imodel-components-react/quantityformat/misc/FractionPrecision.js.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/ScientificType.d.ts +18 -18
- package/lib/cjs/imodel-components-react/quantityformat/misc/ScientificType.js +48 -48
- package/lib/cjs/imodel-components-react/quantityformat/misc/ScientificType.js.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/SignOption.d.ts +17 -17
- package/lib/cjs/imodel-components-react/quantityformat/misc/SignOption.js +50 -50
- package/lib/cjs/imodel-components-react/quantityformat/misc/SignOption.js.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/StationSeparatorSelector.d.ts +17 -17
- package/lib/cjs/imodel-components-react/quantityformat/misc/StationSeparatorSelector.js +58 -58
- package/lib/cjs/imodel-components-react/quantityformat/misc/StationSeparatorSelector.js.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/StationSizeSelector.d.ts +17 -17
- package/lib/cjs/imodel-components-react/quantityformat/misc/StationSizeSelector.js +47 -47
- package/lib/cjs/imodel-components-react/quantityformat/misc/StationSizeSelector.js.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSelector.d.ts +17 -17
- package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSelector.js +56 -56
- package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSelector.js.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSeparator.d.ts +17 -17
- package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSeparator.js +95 -95
- package/lib/cjs/imodel-components-react/quantityformat/misc/ThousandsSeparator.js.map +1 -1
- package/lib/cjs/imodel-components-react/quantityformat/misc/UnitDescr.d.ts +23 -23
- package/lib/cjs/imodel-components-react/quantityformat/misc/UnitDescr.js +119 -119
- package/lib/cjs/imodel-components-react/quantityformat/misc/UnitDescr.js.map +1 -1
- package/lib/cjs/imodel-components-react/timeline/BaseSolarDataProvider.d.ts +52 -52
- package/lib/cjs/imodel-components-react/timeline/BaseSolarDataProvider.js +143 -143
- package/lib/cjs/imodel-components-react/timeline/BaseSolarDataProvider.js.map +1 -1
- package/lib/cjs/imodel-components-react/timeline/BaseTimelineDataProvider.d.ts +31 -31
- package/lib/cjs/imodel-components-react/timeline/BaseTimelineDataProvider.js +69 -69
- package/lib/cjs/imodel-components-react/timeline/BaseTimelineDataProvider.js.map +1 -1
- package/lib/cjs/imodel-components-react/timeline/InlineEdit.d.ts +27 -27
- package/lib/cjs/imodel-components-react/timeline/InlineEdit.js +81 -81
- package/lib/cjs/imodel-components-react/timeline/InlineEdit.js.map +1 -1
- package/lib/cjs/imodel-components-react/timeline/InlineEdit.scss +26 -26
- package/lib/cjs/imodel-components-react/timeline/PlayerButton.d.ts +33 -33
- package/lib/cjs/imodel-components-react/timeline/PlayerButton.js +91 -91
- package/lib/cjs/imodel-components-react/timeline/PlayerButton.js.map +1 -1
- package/lib/cjs/imodel-components-react/timeline/PlayerButton.scss +25 -25
- package/lib/cjs/imodel-components-react/timeline/Scrubber.d.ts +54 -54
- package/lib/cjs/imodel-components-react/timeline/Scrubber.js +191 -191
- package/lib/cjs/imodel-components-react/timeline/Scrubber.js.map +1 -1
- package/lib/cjs/imodel-components-react/timeline/Scrubber.scss +106 -106
- package/lib/cjs/imodel-components-react/timeline/SolarTimeline.d.ts +77 -77
- package/lib/cjs/imodel-components-react/timeline/SolarTimeline.js +424 -424
- package/lib/cjs/imodel-components-react/timeline/SolarTimeline.js.map +1 -1
- package/lib/cjs/imodel-components-react/timeline/SolarTimeline.scss +357 -357
- package/lib/cjs/imodel-components-react/timeline/SpeedTimeline.d.ts +15 -15
- package/lib/cjs/imodel-components-react/timeline/SpeedTimeline.js +54 -54
- package/lib/cjs/imodel-components-react/timeline/SpeedTimeline.js.map +1 -1
- package/lib/cjs/imodel-components-react/timeline/SpeedTimeline.scss +39 -39
- package/lib/cjs/imodel-components-react/timeline/Timeline.scss +164 -164
- package/lib/cjs/imodel-components-react/timeline/TimelineComponent.d.ts +133 -133
- package/lib/cjs/imodel-components-react/timeline/TimelineComponent.js +358 -358
- package/lib/cjs/imodel-components-react/timeline/TimelineComponent.js.map +1 -1
- package/lib/cjs/imodel-components-react/timeline/TimelineComponent.scss +163 -163
- package/lib/cjs/imodel-components-react/timeline/interfaces.d.ts +174 -174
- package/lib/cjs/imodel-components-react/timeline/interfaces.js +45 -45
- package/lib/cjs/imodel-components-react/timeline/interfaces.js.map +1 -1
- package/lib/cjs/imodel-components-react/viewport/ViewportComponent.d.ts +42 -42
- package/lib/cjs/imodel-components-react/viewport/ViewportComponent.js +274 -274
- package/lib/cjs/imodel-components-react/viewport/ViewportComponent.js.map +1 -1
- package/lib/cjs/imodel-components-react/viewport/ViewportComponentEvents.d.ts +106 -106
- package/lib/cjs/imodel-components-react/viewport/ViewportComponentEvents.js +105 -105
- package/lib/cjs/imodel-components-react/viewport/ViewportComponentEvents.js.map +1 -1
- package/lib/cjs/imodel-components-react.d.ts +82 -82
- package/lib/cjs/imodel-components-react.js +101 -101
- package/lib/cjs/imodel-components-react.js.map +1 -1
- package/lib/esm/imodel-components-react/UiIModelComponents.d.ts +28 -28
- package/lib/esm/imodel-components-react/UiIModelComponents.js +75 -75
- package/lib/esm/imodel-components-react/UiIModelComponents.js.map +1 -1
- package/lib/esm/imodel-components-react/color/AlphaSlider.d.ts +36 -36
- package/lib/esm/imodel-components-react/color/AlphaSlider.js +160 -160
- package/lib/esm/imodel-components-react/color/AlphaSlider.js.map +1 -1
- package/lib/esm/imodel-components-react/color/AlphaSlider.scss +63 -63
- package/lib/esm/imodel-components-react/color/ColorPickerButton.d.ts +37 -37
- package/lib/esm/imodel-components-react/color/ColorPickerButton.js +82 -82
- package/lib/esm/imodel-components-react/color/ColorPickerButton.js.map +1 -1
- package/lib/esm/imodel-components-react/color/ColorPickerButton.scss +91 -91
- package/lib/esm/imodel-components-react/color/ColorPickerDialog.d.ts +23 -23
- package/lib/esm/imodel-components-react/color/ColorPickerDialog.js +51 -51
- package/lib/esm/imodel-components-react/color/ColorPickerDialog.js.map +1 -1
- package/lib/esm/imodel-components-react/color/ColorPickerPanel.d.ts +21 -21
- package/lib/esm/imodel-components-react/color/ColorPickerPanel.js +122 -122
- package/lib/esm/imodel-components-react/color/ColorPickerPanel.js.map +1 -1
- package/lib/esm/imodel-components-react/color/ColorPickerPanel.scss +93 -93
- package/lib/esm/imodel-components-react/color/ColorPickerPopup.d.ts +44 -44
- package/lib/esm/imodel-components-react/color/ColorPickerPopup.js +112 -112
- package/lib/esm/imodel-components-react/color/ColorPickerPopup.js.map +1 -1
- package/lib/esm/imodel-components-react/color/ColorPickerPopup.scss +64 -64
- package/lib/esm/imodel-components-react/color/HueSlider.d.ts +22 -22
- package/lib/esm/imodel-components-react/color/HueSlider.js +173 -173
- package/lib/esm/imodel-components-react/color/HueSlider.js.map +1 -1
- package/lib/esm/imodel-components-react/color/HueSlider.scss +61 -61
- package/lib/esm/imodel-components-react/color/SaturationPicker.d.ts +20 -20
- package/lib/esm/imodel-components-react/color/SaturationPicker.js +187 -187
- package/lib/esm/imodel-components-react/color/SaturationPicker.js.map +1 -1
- package/lib/esm/imodel-components-react/color/SaturationPicker.scss +35 -35
- package/lib/esm/imodel-components-react/color/Swatch.d.ts +22 -22
- package/lib/esm/imodel-components-react/color/Swatch.js +34 -34
- package/lib/esm/imodel-components-react/color/Swatch.js.map +1 -1
- package/lib/esm/imodel-components-react/color/Swatch.scss +23 -23
- package/lib/esm/imodel-components-react/color/getCSSColorFromDef.d.ts +6 -6
- package/lib/esm/imodel-components-react/color/getCSSColorFromDef.js +19 -19
- package/lib/esm/imodel-components-react/color/getCSSColorFromDef.js.map +1 -1
- package/lib/esm/imodel-components-react/editors/ColorEditor.d.ts +44 -44
- package/lib/esm/imodel-components-react/editors/ColorEditor.js +124 -124
- package/lib/esm/imodel-components-react/editors/ColorEditor.js.map +1 -1
- package/lib/esm/imodel-components-react/editors/ColorEditor.scss +18 -18
- package/lib/esm/imodel-components-react/editors/WeightEditor.d.ts +47 -47
- package/lib/esm/imodel-components-react/editors/WeightEditor.js +133 -133
- package/lib/esm/imodel-components-react/editors/WeightEditor.js.map +1 -1
- package/lib/esm/imodel-components-react/editors/WeightEditor.scss +16 -16
- package/lib/esm/imodel-components-react/inputs/QuantityInput.d.ts +25 -25
- package/lib/esm/imodel-components-react/inputs/QuantityInput.js +70 -70
- package/lib/esm/imodel-components-react/inputs/QuantityInput.js.map +1 -1
- package/lib/esm/imodel-components-react/inputs/QuantityNumberInput.d.ts +44 -44
- package/lib/esm/imodel-components-react/inputs/QuantityNumberInput.js +240 -240
- package/lib/esm/imodel-components-react/inputs/QuantityNumberInput.js.map +1 -1
- package/lib/esm/imodel-components-react/inputs/QuantityNumberInput.scss +107 -107
- package/lib/esm/imodel-components-react/lineweight/Swatch.d.ts +33 -33
- package/lib/esm/imodel-components-react/lineweight/Swatch.js +59 -59
- package/lib/esm/imodel-components-react/lineweight/Swatch.js.map +1 -1
- package/lib/esm/imodel-components-react/lineweight/Swatch.scss +48 -48
- package/lib/esm/imodel-components-react/lineweight/WeightPickerButton.d.ts +60 -60
- package/lib/esm/imodel-components-react/lineweight/WeightPickerButton.js +133 -133
- package/lib/esm/imodel-components-react/lineweight/WeightPickerButton.js.map +1 -1
- package/lib/esm/imodel-components-react/lineweight/WeightPickerButton.scss +52 -52
- package/lib/esm/imodel-components-react/navigationaids/Cube.d.ts +45 -45
- package/lib/esm/imodel-components-react/navigationaids/Cube.js +100 -100
- package/lib/esm/imodel-components-react/navigationaids/Cube.js.map +1 -1
- package/lib/esm/imodel-components-react/navigationaids/Cube.scss +19 -19
- package/lib/esm/imodel-components-react/navigationaids/CubeNavigationAid.d.ts +175 -175
- package/lib/esm/imodel-components-react/navigationaids/CubeNavigationAid.js +619 -619
- package/lib/esm/imodel-components-react/navigationaids/CubeNavigationAid.js.map +1 -1
- package/lib/esm/imodel-components-react/navigationaids/CubeNavigationAid.scss +180 -180
- package/lib/esm/imodel-components-react/navigationaids/DrawingNavigationAid.d.ts +145 -145
- package/lib/esm/imodel-components-react/navigationaids/DrawingNavigationAid.js +620 -620
- package/lib/esm/imodel-components-react/navigationaids/DrawingNavigationAid.js.map +1 -1
- package/lib/esm/imodel-components-react/navigationaids/DrawingNavigationAid.scss +133 -133
- package/lib/esm/imodel-components-react/quantityformat/FormatPanel.d.ts +26 -26
- package/lib/esm/imodel-components-react/quantityformat/FormatPanel.js +76 -76
- package/lib/esm/imodel-components-react/quantityformat/FormatPanel.js.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/FormatPanel.scss +64 -64
- package/lib/esm/imodel-components-react/quantityformat/FormatPrecision.d.ts +17 -17
- package/lib/esm/imodel-components-react/quantityformat/FormatPrecision.js +30 -30
- package/lib/esm/imodel-components-react/quantityformat/FormatPrecision.js.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/FormatSample.d.ts +18 -18
- package/lib/esm/imodel-components-react/quantityformat/FormatSample.js +60 -60
- package/lib/esm/imodel-components-react/quantityformat/FormatSample.js.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/FormatType.d.ts +17 -17
- package/lib/esm/imodel-components-react/quantityformat/FormatType.js +63 -63
- package/lib/esm/imodel-components-react/quantityformat/FormatType.js.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/FormatUnitLabel.d.ts +17 -17
- package/lib/esm/imodel-components-react/quantityformat/FormatUnitLabel.js +83 -83
- package/lib/esm/imodel-components-react/quantityformat/FormatUnitLabel.js.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/FormatUnits.d.ts +19 -19
- package/lib/esm/imodel-components-react/quantityformat/FormatUnits.js +110 -110
- package/lib/esm/imodel-components-react/quantityformat/FormatUnits.js.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/MiscFormatOptions.d.ts +21 -21
- package/lib/esm/imodel-components-react/quantityformat/MiscFormatOptions.js +158 -158
- package/lib/esm/imodel-components-react/quantityformat/MiscFormatOptions.js.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/QuantityFormatPanel.d.ts +22 -22
- package/lib/esm/imodel-components-react/quantityformat/QuantityFormatPanel.js +131 -131
- package/lib/esm/imodel-components-react/quantityformat/QuantityFormatPanel.js.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/misc/DecimalPrecision.d.ts +17 -17
- package/lib/esm/imodel-components-react/quantityformat/misc/DecimalPrecision.js +36 -36
- package/lib/esm/imodel-components-react/quantityformat/misc/DecimalPrecision.js.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/misc/DecimalSeparator.d.ts +17 -17
- package/lib/esm/imodel-components-react/quantityformat/misc/DecimalSeparator.js +24 -24
- package/lib/esm/imodel-components-react/quantityformat/misc/DecimalSeparator.js.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/misc/FractionPrecision.d.ts +16 -16
- package/lib/esm/imodel-components-react/quantityformat/misc/FractionPrecision.js +31 -31
- package/lib/esm/imodel-components-react/quantityformat/misc/FractionPrecision.js.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/misc/ScientificType.d.ts +18 -18
- package/lib/esm/imodel-components-react/quantityformat/misc/ScientificType.js +25 -25
- package/lib/esm/imodel-components-react/quantityformat/misc/ScientificType.js.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/misc/SignOption.d.ts +17 -17
- package/lib/esm/imodel-components-react/quantityformat/misc/SignOption.js +27 -27
- package/lib/esm/imodel-components-react/quantityformat/misc/SignOption.js.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/misc/StationSeparatorSelector.d.ts +17 -17
- package/lib/esm/imodel-components-react/quantityformat/misc/StationSeparatorSelector.js +35 -35
- package/lib/esm/imodel-components-react/quantityformat/misc/StationSeparatorSelector.js.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/misc/StationSizeSelector.d.ts +17 -17
- package/lib/esm/imodel-components-react/quantityformat/misc/StationSizeSelector.js +24 -24
- package/lib/esm/imodel-components-react/quantityformat/misc/StationSizeSelector.js.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSelector.d.ts +17 -17
- package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSelector.js +33 -33
- package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSelector.js.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSeparator.d.ts +17 -17
- package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSeparator.js +69 -69
- package/lib/esm/imodel-components-react/quantityformat/misc/ThousandsSeparator.js.map +1 -1
- package/lib/esm/imodel-components-react/quantityformat/misc/UnitDescr.d.ts +23 -23
- package/lib/esm/imodel-components-react/quantityformat/misc/UnitDescr.js +96 -96
- package/lib/esm/imodel-components-react/quantityformat/misc/UnitDescr.js.map +1 -1
- package/lib/esm/imodel-components-react/timeline/BaseSolarDataProvider.d.ts +52 -52
- package/lib/esm/imodel-components-react/timeline/BaseSolarDataProvider.js +139 -139
- package/lib/esm/imodel-components-react/timeline/BaseSolarDataProvider.js.map +1 -1
- package/lib/esm/imodel-components-react/timeline/BaseTimelineDataProvider.d.ts +31 -31
- package/lib/esm/imodel-components-react/timeline/BaseTimelineDataProvider.js +65 -65
- package/lib/esm/imodel-components-react/timeline/BaseTimelineDataProvider.js.map +1 -1
- package/lib/esm/imodel-components-react/timeline/InlineEdit.d.ts +27 -27
- package/lib/esm/imodel-components-react/timeline/InlineEdit.js +55 -55
- package/lib/esm/imodel-components-react/timeline/InlineEdit.js.map +1 -1
- package/lib/esm/imodel-components-react/timeline/InlineEdit.scss +26 -26
- package/lib/esm/imodel-components-react/timeline/PlayerButton.d.ts +33 -33
- package/lib/esm/imodel-components-react/timeline/PlayerButton.js +64 -64
- package/lib/esm/imodel-components-react/timeline/PlayerButton.js.map +1 -1
- package/lib/esm/imodel-components-react/timeline/PlayerButton.scss +25 -25
- package/lib/esm/imodel-components-react/timeline/Scrubber.d.ts +54 -54
- package/lib/esm/imodel-components-react/timeline/Scrubber.js +164 -164
- package/lib/esm/imodel-components-react/timeline/Scrubber.js.map +1 -1
- package/lib/esm/imodel-components-react/timeline/Scrubber.scss +106 -106
- package/lib/esm/imodel-components-react/timeline/SolarTimeline.d.ts +77 -77
- package/lib/esm/imodel-components-react/timeline/SolarTimeline.js +398 -398
- package/lib/esm/imodel-components-react/timeline/SolarTimeline.js.map +1 -1
- package/lib/esm/imodel-components-react/timeline/SolarTimeline.scss +357 -357
- package/lib/esm/imodel-components-react/timeline/SpeedTimeline.d.ts +15 -15
- package/lib/esm/imodel-components-react/timeline/SpeedTimeline.js +28 -28
- package/lib/esm/imodel-components-react/timeline/SpeedTimeline.js.map +1 -1
- package/lib/esm/imodel-components-react/timeline/SpeedTimeline.scss +39 -39
- package/lib/esm/imodel-components-react/timeline/Timeline.scss +164 -164
- package/lib/esm/imodel-components-react/timeline/TimelineComponent.d.ts +133 -133
- package/lib/esm/imodel-components-react/timeline/TimelineComponent.js +332 -332
- package/lib/esm/imodel-components-react/timeline/TimelineComponent.js.map +1 -1
- package/lib/esm/imodel-components-react/timeline/TimelineComponent.scss +163 -163
- package/lib/esm/imodel-components-react/timeline/interfaces.d.ts +174 -174
- package/lib/esm/imodel-components-react/timeline/interfaces.js +42 -42
- package/lib/esm/imodel-components-react/timeline/interfaces.js.map +1 -1
- package/lib/esm/imodel-components-react/viewport/ViewportComponent.d.ts +42 -42
- package/lib/esm/imodel-components-react/viewport/ViewportComponent.js +251 -251
- package/lib/esm/imodel-components-react/viewport/ViewportComponent.js.map +1 -1
- package/lib/esm/imodel-components-react/viewport/ViewportComponentEvents.d.ts +106 -106
- package/lib/esm/imodel-components-react/viewport/ViewportComponentEvents.js +95 -95
- package/lib/esm/imodel-components-react/viewport/ViewportComponentEvents.js.map +1 -1
- package/lib/esm/imodel-components-react.d.ts +82 -82
- package/lib/esm/imodel-components-react.js +87 -87
- package/lib/esm/imodel-components-react.js.map +1 -1
- package/lib/public/locales/en/UiIModelComponents.json +139 -139
- package/package.json +19 -19
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DrawingNavigationAid.js","sourceRoot":"","sources":["../../../../src/imodel-components-react/navigationaids/DrawingNavigationAid.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,6BAA6B,CAAC;AACrC,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,QAAQ,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACzG,OAAO,EAAE,SAAS,EAAoB,cAAc,EAAoC,MAAM,sBAAsB,CAAC;AACrH,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAA+B,MAAM,qCAAqC,CAAC;AAE3G,gDAAgD;AAChD,0DAA0D;AAE1D;;;GAGG;AACH,MAAM,CAAN,IAAY,OAGX;AAHD,WAAY,OAAO;IACjB,gCAAqB,CAAA;IACrB,gCAAqB,CAAA;AACvB,CAAC,EAHW,OAAO,KAAP,OAAO,QAGlB;AA6DD;;;GAGG;AACH,MAAM,OAAO,oBAAqB,SAAQ,KAAK,CAAC,SAA+D;IAY7G,YAAY,KAAgC;QAC1C,KAAK,CAAC,KAAK,CAAC,CAAC;QAZP,iBAAY,GAAG,KAAK,CAAC,SAAS,EAAkB,CAAC;QACjD,0BAAqB,GAAG,KAAK,CAAC,SAAS,EAAkB,CAAC;QAC1D,iBAAY,GAAG,KAAK,CAAC,SAAS,EAAkB,CAAC;QACjD,gBAAW,GAAY,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QAG7E,aAAQ,GAAY,KAAK,CAAC;QA4J1B,kBAAa,GAAG,GAAG,EAAE;YAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACjE,CAAC,CAAC;QAMM,eAAU,GAAG,GAAG,EAAE;YACxB,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACrB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;YACvD,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;YACnB,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,CAAC,EAAE;gBAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;gBACzG,IAAI,CAAC,cAAc,EAAE,CAAC;gBAEtB,uBAAuB;gBACvB,IAAI,IAAI,CAAC,QAAQ,EAAE;oBACjB,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE;wBAChC,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;oBAC7D,CAAC,CAAC,CAAC;iBACJ;aACF;iBAAM;gBACL,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;gBAC3B,IAAI,CAAC,aAAa,EAAE,CAAC;aACtB;QACH,CAAC,CAAC;QAEM,kBAAa,GAAG,GAAG,EAAE;YAC3B,MAAM,gBAAgB,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;gBAC/E,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAC/D,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAChE,MAAM,eAAe,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACnE,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;YAChD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YACtC,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;YAC1C,uBAAuB;YACvB,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,IAAI,CAAC,QAAQ,CAAC,EAAE,cAAc,EAAE,gBAAgB,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,GAAG,EAAE;oBACpG,uBAAuB;oBACvB,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc;wBAC3B,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;oBAC9B,IAAI,gBAAgB;wBAClB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;gBAC9B,CAAC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC;QAIM,kBAAa,GAAG,GAAG,EAAE;YAC3B,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACrB,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS;gBACjC,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,MAAM,CAAC;YACjC,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;YACpC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;YACtB,uBAAuB;YACvB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;gBACpE,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;gBACxC,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBAC7E,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAEpD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC9C,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtB,uBAAuB;gBACvB,IAAI,IAAI,CAAC,QAAQ,EAAE;oBACjB,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,GAAG,EAAE;wBAC1D,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;oBAChE,CAAC,CAAC,CAAC;iBACJ;aACF;iBAAM;gBACL,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;gBAC9B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;aAC3B;QACH,CAAC,CAAC;QA4BF,qDAAqD;QAC7C,mCAA8B,GAAG,CAAC,IAAiC,EAAE,EAAE;YAC7E,uBAAuB;YACvB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,EAAE;gBAC1F,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC;gBACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,CAAC;gBAC1D,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACtC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;gBACtI,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC3D,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC5E,IAAI,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;gBAC3D,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACpD,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACvD,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC1F,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE;oBAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,oBAAoB,CAAC,2BAA2B,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;oBACtJ,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;oBAC5C,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;oBAChF,WAAW,GAAG,YAAY,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC;oBAC9C,SAAS,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;oBAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;oBAC/B,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;iBACpF;gBACD,uBAAuB;gBACvB,IAAI,IAAI,CAAC,QAAQ,EAAE;oBACjB,IAAI,CAAC,QAAQ,CAAC;wBACZ,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO;wBACpC,aAAa,EAAE,QAAQ,EAAE,QAAQ;wBACjC,cAAc,EAAE,SAAS,EAAE,SAAS;wBACpC,gBAAgB,EAAE,WAAW,EAAE,WAAW;qBAC3C,CAAC,CAAC;iBACJ;aACF;QACH,CAAC,CAAC;QAEM,mBAAc,GAAG,CAAC,WAAoB,KAAK,EAAE,EAAE;YACrD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACjD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;YACjJ,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC/C,uBAAuB,CAAC,uBAAuB,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACzF,CAAC,CAAC;QAEM,wBAAmB,GAAG,GAAG,EAAE;YACjC,MAAM,qBAAqB,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC;YAChE,IAAI,CAAC,QAAQ,CAAC,EAAE,qBAAqB,EAAE,EAAE,GAAG,EAAE;gBAC5C,IAAI,IAAI,CAAC,SAAS;oBAChB,IAAI,CAAC,8BAA8B,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YACtE,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEM,iBAAY,GAAG,CAAC,KAA0B,EAAE,EAAE;YACpD,uBAAuB;YACvB,IAAI,KAAK,CAAC,GAAG,KAAK,UAAU,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,MAAM,EAAE;gBACzE,IAAI,CAAC,cAAc,EAAE,CAAC;aACvB;QACH,CAAC,CAAC;QAEM,kBAAa,GAAY,OAAO,CAAC,UAAU,EAAE,CAAC;QAiC9C,qBAAgB,GAAG,CAAC,KAAuB,EAAE,EAAE;YACrD,0EAA0E;YAC1E,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAChE,IAAI,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;YAC9B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACpE,CAAC,CAAC;QAEM,4BAAuB,GAAG,CAAC,KAAuB,EAAE,EAAE;YAC5D,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,MAAM,EAAE;gBACtC,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;aACpC;QACH,CAAC,CAAC;QAEM,2BAAsB,GAAG,CAAC,KAAuB,EAAE,EAAE;YAC3D,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,IAAI,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACpC,CAAC,CAAC;QAEM,qBAAgB,GAAG,CAAC,KAAuB,EAAE,EAAE;YACrD,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAC3D,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACjD,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;gBACvB,4BAA4B;gBAC5B,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;aACnC;iBAAM;gBACL,uBAAuB;gBACvB,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,MAAM,EAAE;oBAC9D,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;oBAC3G,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;oBACnI,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBACrD,IAAI,CAAC,QAAQ,CAAC,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;iBACzD;aACF;YACD,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC7B,CAAC,CAAC;QAEM,wBAAmB,GAAG,CAAC,KAAuB,EAAE,EAAE;YACxD,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAC3D,IAAI,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;gBAC5C,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,MAAM;gBAClC,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,qBAAqB,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE;gBACrG,IAAI,CAAC,aAAa,EAAE,CAAC;aACtB;iBAAM,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;gBAC9B,IAAI,CAAC,qBAAqB,EAAE,CAAC;aAC9B;iBAAM,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;gBAC/B,uBAAuB;gBACvB,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,MAAM,EAAE;oBACtC,KAAK,CAAC,eAAe,EAAE,CAAC;oBACxB,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;iBACrC;aACF;iBAAM,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,YAAY,IAAI,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;gBAC5K,IAAI,CAAC,cAAc,EAAE,CAAC;aACvB;YACD,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACpE,CAAC,CAAC;QAEF,8CAA8C;QACtC,4BAAuB,GAAG,CAAC,KAAU,EAAE,EAAE;YAC/C,IAAI,CAAC,KAAK,KAAK,CAAC,aAAa,CAAC,MAAM;gBAClC,OAAO;YACT,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;YAC/D,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YAC7D,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAClG,IAAI,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;YAC9B,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC;YACxC,IAAI,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACpC,CAAC,CAAC;QAEF,8CAA8C;QACtC,iBAAY,GAAG,CAAC,KAAiB,EAAE,EAAE;YAC3C,IAAI,CAAC,KAAK,KAAK,CAAC,aAAa,CAAC,MAAM;gBAClC,OAAO;YACT,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC7F,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACjD,4BAA4B;YAC5B,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YAClC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC7B,CAAC,CAAC;QAEF,8CAA8C;QACtC,gBAAW,GAAG,CAAC,KAAiB,EAAE,EAAE;YAC1C,IAAI,CAAC,KAAK,KAAK,CAAC,aAAa,CAAC,MAAM;gBAClC,OAAO;YACT,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC7B,IAAI,CAAC,KAAK,KAAK,CAAC,cAAc,CAAC,MAAM;gBACnC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,8DAA8D;YACvK,MAAM,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAC3D,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3D,CAAC,CAAC;QAYM,sBAAiB,GAAG,GAAa,EAAE;YACzC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS;gBACpC,OAAO,oBAAoB,CAAC,uBAAuB,EAAE,CAAC;YACxD,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;QAC9B,CAAC,CAAC;QAEM,sBAAiB,GAAG,GAAa,EAAE;YACzC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS;gBACnC,OAAO,oBAAoB,CAAC,uBAAuB,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACpG,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC7B,CAAC,CAAC;QAEM,kBAAa,GAAG,GAAG,EAAE;YAC3B,uBAAuB;YACvB,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,GAAG,EAAE;gBACtE,uBAAuB;gBACvB,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;oBAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;oBAC/D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;iBACzB;gBACD,MAAM,eAAe,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBACnE,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC5C,IAAI,CAAC,QAAQ,CAAC;oBACZ,IAAI,EAAE,OAAO,CAAC,MAAM;oBACpB,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK;oBACjC,UAAU,EAAE,eAAe;oBAC3B,SAAS,EAAE,CAAC;iBACb,EAAE,GAAG,EAAE;oBACN,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACrD,CAAC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC;QAEM,mBAAc,GAAG,GAAG,EAAE;YAC5B,uBAAuB;YACvB,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,GAAG,EAAE;gBACtE,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;gBAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBAC5C,MAAM,eAAe,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBACnE,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,oBAAoB,CAAC,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACvL,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC5C,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;gBAC1D,MAAM,WAAW,GAAG,YAAY,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC;gBACpD,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;gBAChD,IAAI,CAAC,QAAQ,CAAC;oBACZ,IAAI,EAAE,OAAO,CAAC,MAAM;oBACpB,cAAc,EAAE,SAAS;oBACzB,gBAAgB,EAAE,WAAW;oBAC7B,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK;oBACjC,eAAe,EAAE,UAAU;oBAC3B,gBAAgB,EAAE,QAAQ,CAAC,UAAU,EAAE;oBACvC,SAAS,EAAE,CAAC;iBACb,EAAE,GAAG,EAAE;oBACN,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;gBAC7D,CAAC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC;QAEM,kBAAa,GAAG,GAAG,EAAE;YAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YAClC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,oBAAoB,CAAC,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAEvK,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAE3E,MAAM,YAAY,GAAG,EAAE,CAAC,CAAC,uBAAuB;YAChD,MAAM,eAAe,GAAG,EAAE,CAAC,CAAC,0EAA0E;YAEtG,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;YAChF,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAE9G,qBAAqB;YACrB,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CACrC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EACjE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAClE,CAAC;YACF,IAAI,eAAe,CAAC,YAAY;gBAC9B,OAAO,QAAQ,CAAC,UAAU,EAAE,CAAC;YAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,eAAe,CAAC,GAAG,eAAe,GAAG,YAAY,CAAC;YAEnI,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,0DAA0D;YAC3I,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAC9B,OAAO,IAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,4GAA4G;QAC7I,CAAC,CAAC;QAEM,iBAAY,GAAG,CAAC,KAAuB,EAAE,EAAE;YACjD,uBAAuB;YACvB,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,CAAC,EAAE;gBACpE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;gBAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAEzC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;gBACtE,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;gBACpE,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;gBAClC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;oBACpB,MAAM,IAAI,GAAG,WAAW,GAAG,GAAG,CAAC;oBAC/B,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,EAAE,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;oBAC3E,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;oBACnH,MAAM,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACjC,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;iBACpD;gBACD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;oBACpB,MAAM,IAAI,GAAG,WAAW,GAAG,GAAG,CAAC;oBAC/B,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,GAAG,WAAW,EAAE,CAAC,MAAM,GAAG,GAAG,GAAG,WAAW,EAAE,CAAC,CAAC,CAAC;oBACzF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;oBACnH,MAAM,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBAClC,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;iBACpD;aACF;QACH,CAAC,CAAC;QAEM,kBAAa,GAAG,GAAG,EAAE;YAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,GAAG,CAAC;YAC1C,IAAI,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QACvC,CAAC,CAAC;QAEM,mBAAc,GAAG,GAAG,EAAE;YAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,GAAG,CAAC;YAC1C,IAAI,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QACvC,CAAC,CAAC;QAEM,oBAAe,GAAG,GAAG,EAAE;YAC7B,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;YAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACjD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAC9K,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YACtC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC9C,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;YAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACpD,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,CAAC,cAAc,EAAE,EAAE,EAAE,GAAG,EAAE;gBACvI,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QA9jBA,MAAM,IAAI,GAAG,KAAK,CAAC,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;QACpD,MAAM,UAAU,GAAG,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACjG,MAAM,eAAe,GAAG,UAAU,CAAC;QAEnC,IAAI,CAAC,KAAK,GAAG;YACX,WAAW,EAAE,OAAO,CAAC,UAAU,EAAE;YACjC,MAAM,EAAE,OAAO,CAAC,UAAU,EAAE;YAC5B,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACjC,aAAa,EAAE,QAAQ,CAAC,cAAc,EAAE;YACxC,QAAQ,EAAE,QAAQ,CAAC,cAAc,EAAE;YAEnC,cAAc,EAAE,OAAO,CAAC,UAAU,EAAE;YACpC,SAAS,EAAE,OAAO,CAAC,UAAU,EAAE;YAC/B,eAAe;YACf,UAAU;YAEV,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE;YAChC,gBAAgB,EAAE,QAAQ,CAAC,UAAU,EAAE;YACvC,gBAAgB,EAAE,GAAG;YACrB,WAAW,EAAE,GAAG;YAEhB,IAAI;YACJ,SAAS,EAAE,GAAG;YAEd,MAAM,EAAE,KAAK,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;YACnE,IAAI,EAAE,KAAK,CAAC,WAAW;YAEvB,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,KAAK;YAChB,qBAAqB,EAAE,KAAK,CAAC,4BAA4B,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC,KAAK;SACrH,CAAC;IACJ,CAAC;IAED,gBAAgB;IACA,MAAM;QACpB,MAAM,EACJ,WAAW,EAAE,MAAM,EAAE,OAAO,EAC5B,aAAa,EAAE,QAAQ,EACvB,cAAc,EAAE,SAAS,EACzB,eAAe,EAAE,UAAU,EAC3B,gBAAgB,EAAE,WAAW,EAC7B,SAAS,EACT,MAAM,EACN,IAAI,EAAE,qBAAqB,GAC5B,GAAG,IAAI,CAAC,KAAK,CAAC;QAEf,MAAM,CAAC,GAAG,oBAAoB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QACvD,MAAM,GAAG,GAAG,QAAQ,CAAC,oBAAoB,CAAC,OAAO,CAAC,sBAAsB,CAAC,aAAa,CAAC,YAAY,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QACpI,MAAM,EAAE,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAC9C,MAAM,GAAG,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QACrD,MAAM,EAAE,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QACtD,MAAM,EAAE,GAAG,QAAQ,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC;QAElE,MAAM,SAAS,GAAwB;YACrC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;YACzB,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK;SACpB,CAAC;QACF,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAElC,MAAM,GAAG,GAAG,qBAAqB,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACvH,MAAM,IAAI,GAAG,qBAAqB,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAE1H,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;QAC/D,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;QAChE,MAAM,eAAe,GAAG;YACtB,SAAS,EAAE,aAAa,KAAK,OAAO,KAAK,KAAK;YAC9C,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,EAAE;YACtB,KAAK,EAAE,OAAO,CAAC,CAAC,GAAG,EAAE;SACtB,CAAC;QACF,IAAI,CAAC,qBAAqB,IAAI,CAAC,IAAI;YACjC,eAAe,CAAC,SAAS;gBACvB,WAAW;oBACX,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO;oBACxD,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO;oBACxD,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO;oBACxD,GAAG,KAAK,KAAK,KAAK,SAAS,CAAC;QAChC,MAAM,WAAW,GAAG,SAAS,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QACjF,IAAI,IAAI,KAAK,OAAO,CAAC,MAAM,IAAI,WAAW,EAAE;YAC1C,SAAS,CAAC,QAAQ,GAAG,OAAO,CAAC;YAC7B,SAAS,CAAC,KAAK,GAAG,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YAC7D,SAAS,CAAC,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;SACtC;QAED,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,qBAAqB,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAExI,MAAM,aAAa,GAAG,kBAAkB,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QACvE,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QAC3B,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACnC,MAAM,SAAS,GAAG,qBAAqB,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;QACpH,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,0BAA0B,CAAC,SAAS,CAAC,WAAW,CAAC;QACvI,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,0BAA0B,CAAC,cAAc,CAAC;QACzI,MAAM,KAAK,GAAG,CACZ,6BAAK,SAAS,EAAE,UAAU,CAAC,mCAAmC,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,iBACvE,mCAAmC,EAC/C,GAAG,EAAE,IAAI,CAAC,YAAY,EACtB,OAAO,EAAE,IAAI,CAAC,YAAY,EAC1B,WAAW,EAAE,IAAI,CAAC,uBAAuB,EACzC,KAAK,EAAE,SAAS,EAChB,IAAI,EAAC,cAAc;YACnB,oBAAC,uBAAuB,IAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,mBAAmB,EAAE,WAAW,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,qBAAqB,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,EAAE,GAAI;YAC7R,6BAAK,SAAS,EAAC,mBAAmB,iBACpB,mBAAmB,EAC/B,GAAG,EAAE,IAAI,CAAC,qBAAqB;gBAC/B,6BAAK,SAAS,EAAC,qBAAqB,iBACtB,qBAAqB,EACjC,WAAW,EAAE,IAAI,CAAC,sBAAsB,EACxC,YAAY,EAAE,IAAI,CAAC,uBAAuB,EAC1C,KAAK,EAAE,eAAe,EACtB,GAAG,EAAE,IAAI,CAAC,YAAY,EACtB,IAAI,EAAC,cAAc,GAAG;gBACvB,CAAC,IAAI;oBACJ,6BAAK,SAAS,EAAE,UAAU,CAAC,qBAAqB,EAAE,MAAM,EAAE,kBAAkB,EAAE,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC,iBAAc,qBAAqB,EAClJ,KAAK,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAC5E,KAAK,EAAE,kBAAkB,CAAC,SAAS,CAAC,qBAAqB,CAAC,EAC1D,OAAO,EAAE,IAAI,CAAC,mBAAmB,EACjC,IAAI,EAAC,cAAc,GAAG;gBACzB,CAAC,GAAG,CAAC,UAAU;oBACd,6BAAK,SAAS,EAAC,iBAAiB,iBAAa,yBAAyB,EAAC,KAAK,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,eAAe,EACpK,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,CAAC,IAEzB,aAAa,CACV;gBAEP,IAAI,KAAK,OAAO,CAAC,MAAM,IAAI,CAAC,WAAW,IAAI;oBAC1C,6BAAK,SAAS,EAAC,OAAO,iBAAa,sBAAsB,EAAC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,CAAC;wBAChH,6BAAK,SAAS,EAAC,8BAA8B,GAAG,CAC5C;oBACN,6BAAK,SAAS,EAAC,MAAM;wBACnB,6BAAK,SAAS,EAAC,2BAA2B,iBAAa,wBAAwB,EAAC,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,CAAC,GAAI;wBAC3I,6BAAK,SAAS,EAAC,gCAAgC,iBAAa,yBAAyB,EAAC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,CAAC,GAAI,CAC9I,CACL,CACC,CACF,CACP,CAAC;QACF,IAAI,IAAI,KAAK,OAAO,CAAC,MAAM,IAAI,CAAC,SAAS,KAAK,GAAG,IAAI,eAAe,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,EAAE;YAC9F,OAAO,KAAK,CAAC;SACd;aAAM;YACL,IAAI,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,4BAA4B,CAAC,CAAC;YACzE,IAAI,CAAC,aAAa,EAAE;gBAClB,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBAC9C,aAAa,CAAC,EAAE,GAAG,2BAA2B,CAAC;gBAC/C,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;aAC1C;YACD,OAAO,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;SACpD;IACH,CAAC;IA8Ee,iBAAiB;QAC/B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,uBAAuB,CAAC,yBAAyB,CAAC,WAAW,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QACnG,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,gBAAuB,CAAC,CAAC;QACnE,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,mBAA0B,CAAC,CAAC;QACpE,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,gBAAuB,CAAC,CAAC;QACnE,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,YAAmB,CAAC,CAAC;IAC7D,CAAC;IAEe,oBAAoB;QAClC,uBAAuB,CAAC,yBAAyB,CAAC,cAAc,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QACtG,MAAM,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,gBAAuB,CAAC,CAAC;QACtE,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,mBAA0B,CAAC,CAAC;QACvE,MAAM,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,gBAAuB,CAAC,CAAC;QACtE,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,YAAmB,CAAC,CAAC;QAC9D,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc;YAC3B,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;QAE9B,MAAM,EAAE,GAAG,QAAQ,CAAC,cAAc,CAAC,2BAA2B,CAAmB,CAAC;QAClF,IAAI,EAAE,IAAI,EAAE,CAAC,aAAa,KAAK,IAAI,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YAC/D,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;SAClC;QACD,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;IA6DO,kBAAkB,CAAC,QAAiB;QAC1C,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAC3G,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACnI,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAC9C,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,YAAY,CAAC;QAC/D,IAAI,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE;YACtF,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,IAAI,aAAa,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,YAAY,EAAE;gBAC9D,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;aAC/D;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,qBAAqB;QAC3B,IAAI,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QACnC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,MAAM,EAAE;YACtC,UAAU,CAAC,GAAG,EAAE;gBACd,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;gBAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBAC5C,uBAAuB;gBACvB,IAAI,IAAI,CAAC,QAAQ,EAAE;oBACjB,IAAI,CAAC,QAAQ,CAAC,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE;wBAC9D,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;oBAC7D,CAAC,CAAC,CAAC;iBACJ;YACH,CAAC,EAAE,CAAC,CAAC,CAAC;SACP;IACH,CAAC;;AAxLc,iCAAY,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAqRxF,gBAAgB;AACF,4CAAuB,GAAG,GAAa,EAAE;IACrD,OAAO,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AACjC,CAAC,CAAC;AAEF,gBAAgB;AACF,4CAAuB,GAAG,CAAC,WAAmB,CAAC,EAAE,WAAmB,CAAC,EAAY,EAAE;IAC/F,OAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC,EAAE,MAAM,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;AAC5H,CAAC,CAAC;AAwIF,gBAAgB;AACF,gDAA2B,GAAG,CAAC,OAAiB,EAAE,QAAkB,EAAE,EAAE;IACpF,MAAM,GAAG,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9B,MAAM,GAAG,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9B,mFAAmF;IACnF,MAAM,QAAQ,GAAG,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC;IACjC,MAAM,SAAS,GAAG,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC;IAElC,MAAM,QAAQ,GAAG,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC;IACjC,MAAM,SAAS,GAAG,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC;IAElC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAE/B,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE;QACjD,MAAM,EAAE,GAAG,CAAC,SAAS,GAAG,QAAQ,CAAC;QACjC,MAAM,EAAE,GAAG,QAAQ,GAAG,SAAS,CAAC;QAChC,MAAM,EAAE,GAAG,SAAS,GAAG,QAAQ,CAAC;QAChC,MAAM,EAAE,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC;QACjC,mCAAmC;QACnC,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KACtE;SAAM;QACL,MAAM,EAAE,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC;QACjC,MAAM,EAAE,GAAG,CAAC,SAAS,GAAG,QAAQ,CAAC;QACjC,MAAM,EAAE,GAAG,QAAQ,GAAG,SAAS,CAAC;QAChC,MAAM,EAAE,GAAG,SAAS,GAAG,QAAQ,CAAC;QAChC,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KACtE;AACH,CAAC,CAAC;AAgBJ,gBAAgB;AAChB,MAAM,OAAO,uBAAwB,SAAQ,KAAK,CAAC,SAAuC;IAA1F;;QACU,mBAAc,GAAG,KAAK,CAAC,SAAS,EAAkB,CAAC;QAoCnD,YAAO,GAAG,GAAG,EAAE;YACrB,uBAAuB;YACvB,IAAI,IAAI,CAAC,GAAG,EAAE;gBACZ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBACjE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,aAAa,EAAE,CAAC;gBAClE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC3C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAC/C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC7C,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aACxC;QACH,CAAC,CAAC;IAkCJ,CAAC;IA7EiB,MAAM;QACpB,OAAO,CACL,6BAAK,SAAS,EAAC,gBAAgB,iBACjB,gBAAgB,EAC5B,GAAG,EAAE,IAAI,CAAC,cAAc,GACpB,CACP,CAAC;IACJ,CAAC;IAEe,iBAAiB;QAC/B,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE;YAChE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,0BAA0B,CAAC,SAAS,CAAC,WAAW,CAAC;YACvI,0BAA0B;YAC1B,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,0BAA0B,CAAC,cAAc,CAAC;YACzI,MAAM,YAAY,GAAG,WAAW,CAAC,YAAY,CAAC;YAC9C,IAAI,CAAC,GAAG,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC/E,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClC,KAAK,WAAW,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC,8BAA8B;YAC9E,IAAI,CAAC,OAAO,EAAE,CAAC;SAChB;IACH,CAAC;IAEO,iBAAiB,CAAC,EAAkB;QAC1C,0BAA0B;QAC1B,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK;YACf,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;QAEjC,0BAA0B;QAC1B,IAAI,EAAE,CAAC,SAAS,CAAC,QAAQ;YACvB,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACxD,CAAC;IAce,kBAAkB,CAAC,QAAsC;QACvE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,0BAA0B,CAAC,SAAS,CAAC,WAAW,CAAC;QACvI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE;YACjC,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;gBACrC,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,0BAA0B,CAAC,cAAc,CAAC;gBACzI,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,KAAK,EAAE,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE;oBACzG,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;iBAC1C;gBACD,uBAAuB;gBACvB,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO;oBAC7B,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB;wBAC5B,EAAE,0BAA2B,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,WAAW,KAAK,CAAC,IAAI,0BAA0B,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,EAAE;oBAC7J,MAAM,YAAY,GAAG,WAAW,CAAC,YAAY,CAAC;oBAC9C,IAAI,CAAC,GAAG,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;oBACvF,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACjC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAClC,KAAK,WAAW,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC,8BAA8B;oBAC9E,IAAI,CAAC,OAAO,EAAE,CAAC;iBAChB;aACF;iBAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;gBAC9M,IAAI,CAAC,OAAO,EAAE,CAAC;aAChB;SACF;IACH,CAAC;IAEe,oBAAoB;QAClC,IAAI,IAAI,CAAC,GAAG,EAAE;YACZ,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,0BAA0B,CAAC,SAAS,CAAC,WAAW,CAAC;YACvI,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;SAC1C;IACH,CAAC;CAEF","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module NavigationAids\r\n */\r\n\r\nimport \"./DrawingNavigationAid.scss\";\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport { Constant, Geometry, Matrix3d, Point2d, Point3d, Point4d, Vector3d } from \"@itwin/core-geometry\";\r\nimport { IModelApp, IModelConnection, ScreenViewport, ViewManager, Viewport, ViewState } from \"@itwin/core-frontend\";\r\nimport { SpecialKey } from \"@itwin/appui-abstract\";\r\nimport { CommonProps } from \"@itwin/core-react\";\r\nimport { UiIModelComponents } from \"../UiIModelComponents\";\r\nimport { ViewportComponentEvents, ViewRotationChangeEventArgs } from \"../viewport/ViewportComponentEvents\";\r\n\r\n// cSpell:ignore Quaternion Quaternions unrotate\r\n/* eslint-disable jsx-a11y/click-events-have-key-events */\r\n\r\n/**\r\n * Enum for mode that minimap is currently in\r\n * @internal\r\n */\r\nexport enum MapMode {\r\n Opened = \"map-opened\",\r\n Closed = \"map-closed\",\r\n}\r\n\r\n/** Properties for the [[DrawingNavigationAid]] component\r\n * @public\r\n */\r\nexport interface DrawingNavigationAidProps extends CommonProps {\r\n iModelConnection: IModelConnection;\r\n viewport?: Viewport;\r\n\r\n // used only in testing\r\n\r\n /** @internal */\r\n animationTime?: number;\r\n /** @internal */\r\n openSize?: Vector3d;\r\n /** @internal */\r\n closeSize?: Vector3d;\r\n /** @internal */\r\n initialMapMode?: MapMode;\r\n /** @internal */\r\n onAnimationEnd?: () => void;\r\n /** @internal */\r\n initialRotateMinimapWithView?: boolean;\r\n /** @internal */\r\n initialView?: ViewState;\r\n /** @internal */\r\n viewManagerOverride?: ViewManager;\r\n /** @internal */\r\n screenViewportOverride?: typeof ScreenViewport;\r\n}\r\n\r\n/** @internal */\r\ninterface DrawingNavigationAidState {\r\n startOrigin: Point3d;\r\n origin: Point3d;\r\n extents: Vector3d;\r\n startRotation: Matrix3d;\r\n rotation: Matrix3d;\r\n\r\n startMapOrigin: Point3d;\r\n mapOrigin: Point3d;\r\n startMapExtents: Vector3d;\r\n mapExtents: Vector3d;\r\n\r\n mouseStart: Point2d;\r\n panningDirection: Vector3d;\r\n startDrawingZoom: number;\r\n drawingZoom: number;\r\n\r\n mode: MapMode;\r\n animation: number;\r\n\r\n isMoving: boolean;\r\n isPanning: boolean;\r\n\r\n viewId: string;\r\n view: ViewState | undefined;\r\n\r\n rotateMinimapWithView: boolean;\r\n}\r\n\r\n/**\r\n * A Drawing Navigation Aid.\r\n * @public\r\n */\r\nexport class DrawingNavigationAid extends React.Component<DrawingNavigationAidProps, DrawingNavigationAidState> {\r\n private _rootElement = React.createRef<HTMLDivElement>();\r\n private _viewContainerElement = React.createRef<HTMLDivElement>();\r\n private _viewElement = React.createRef<HTMLDivElement>();\r\n private _rootOffset: DOMRect = DOMRect.fromRect({ x: 0, y: 0, width: 0, height: 0 });\r\n private _viewport: Viewport | undefined;\r\n private _animationFrame: any;\r\n private _mounted: boolean = false;\r\n\r\n /** @internal */\r\n public override readonly state: Readonly<DrawingNavigationAidState>;\r\n\r\n constructor(props: DrawingNavigationAidProps) {\r\n super(props);\r\n const mode = props.initialMapMode || MapMode.Closed;\r\n const mapExtents = mode === MapMode.Closed ? this._getClosedMapSize() : this._getOpenedMapSize();\r\n const startMapExtents = mapExtents;\r\n\r\n this.state = {\r\n startOrigin: Point3d.createZero(),\r\n origin: Point3d.createZero(),\r\n extents: Vector3d.create(1, 1, 1),\r\n startRotation: Matrix3d.createIdentity(),\r\n rotation: Matrix3d.createIdentity(),\r\n\r\n startMapOrigin: Point3d.createZero(),\r\n mapOrigin: Point3d.createZero(),\r\n startMapExtents,\r\n mapExtents,\r\n\r\n mouseStart: Point2d.createZero(),\r\n panningDirection: Vector3d.createZero(),\r\n startDrawingZoom: 1.0,\r\n drawingZoom: 1.0,\r\n\r\n mode,\r\n animation: 1.0,\r\n\r\n viewId: props.initialView !== undefined ? props.initialView.id : \"\",\r\n view: props.initialView,\r\n\r\n isMoving: false,\r\n isPanning: false,\r\n rotateMinimapWithView: props.initialRotateMinimapWithView !== undefined ? props.initialRotateMinimapWithView : false,\r\n };\r\n }\r\n\r\n /** @internal */\r\n public override render(): React.ReactNode {\r\n const {\r\n startOrigin, origin, extents,\r\n startRotation, rotation,\r\n startMapOrigin, mapOrigin,\r\n startMapExtents, mapExtents,\r\n startDrawingZoom, drawingZoom,\r\n animation,\r\n viewId,\r\n mode, rotateMinimapWithView,\r\n } = this.state;\r\n\r\n const a = DrawingNavigationAid._animationFn(animation);\r\n const rot = Matrix3d.createFromQuaternion(Point4d.interpolateQuaternions(startRotation.toQuaternion(), a, rotation.toQuaternion()));\r\n const or = startOrigin.interpolate(a, origin);\r\n const map = startMapOrigin.interpolate(a, mapOrigin);\r\n const sz = startMapExtents.interpolate(a, mapExtents);\r\n const dz = Geometry.interpolate(startDrawingZoom, a, drawingZoom);\r\n\r\n const rootStyle: React.CSSProperties = {\r\n width: sz.x, height: sz.y,\r\n ...this.props.style,\r\n };\r\n const is3D = this._isViewport3D();\r\n\r\n const tOr = rotateMinimapWithView || is3D ? rotation.multiplyVector(Vector3d.createFrom(or)) : Vector3d.createFrom(or);\r\n const tMap = rotateMinimapWithView || is3D ? rotation.multiplyVector(Vector3d.createFrom(map)) : Vector3d.createFrom(map);\r\n\r\n const tPosX = (tOr.x - extents.x / 2 - tMap.x) * dz + sz.x / 2;\r\n const tPosY = (-tOr.y - extents.y / 2 + tMap.y) * dz + sz.y / 2;\r\n const viewWindowStyle = {\r\n transform: `translate(${tPosX}px, ${tPosY}px)`,\r\n height: extents.y * dz,\r\n width: extents.x * dz,\r\n };\r\n if (!rotateMinimapWithView && !is3D)\r\n viewWindowStyle.transform =\r\n \"matrix3d(\" +\r\n `${rot.at(0, 0)}, ${rot.at(1, 0)}, ${rot.at(2, 0)}, 0, ` +\r\n `${rot.at(0, 1)}, ${rot.at(1, 1)}, ${rot.at(2, 1)}, 0, ` +\r\n `${rot.at(0, 2)}, ${rot.at(1, 2)}, ${rot.at(2, 2)}, 0, ` +\r\n `${tPosX}, ${tPosY}, 0, 1)`;\r\n const isAnimating = animation !== 1 && !startMapExtents.isExactEqual(mapExtents);\r\n if (mode === MapMode.Opened || isAnimating) {\r\n rootStyle.position = \"fixed\";\r\n rootStyle.right = window.innerWidth - this._rootOffset.right;\r\n rootStyle.top = this._rootOffset.top;\r\n }\r\n\r\n const halfExtents = extents.scale(.5);\r\n const offset = rotateMinimapWithView || is3D ? Vector3d.createZero() : rotation.multiplyTransposeVector(halfExtents).minus(halfExtents);\r\n\r\n const unrotateLabel = UiIModelComponents.translate(\"drawing.unrotate\");\r\n const e = sz.scale(1 / dz);\r\n const halfMapExtents = e.scale(.5);\r\n const mapOffset = rotateMinimapWithView || is3D ? rotation.multiplyTransposeVector(halfMapExtents) : halfMapExtents;\r\n const viewManager = this.props.viewManagerOverride ? this.props.viewManagerOverride : /* istanbul ignore next */ IModelApp.viewManager;\r\n const screenViewport = this.props.screenViewportOverride ? this.props.screenViewportOverride : /* istanbul ignore next */ ScreenViewport;\r\n const nodes = (\r\n <div className={classnames(\"components-drawing-navigation-aid\", this.props.className)}\r\n data-testid=\"components-drawing-navigation-aid\"\r\n ref={this._rootElement}\r\n onWheel={this._handleWheel}\r\n onMouseDown={this._handleDrawingMouseDown}\r\n style={rootStyle}\r\n role=\"presentation\">\r\n <DrawingNavigationCanvas view={this.state.view} viewManagerOverride={viewManager} screenViewportOverride={screenViewport} viewId={viewId} origin={map.plus(offset).minus(mapOffset)} extents={e} zoom={dz} rotation={rotateMinimapWithView || is3D ? rotation : Matrix3d.createIdentity()} />\r\n <div className=\"drawing-container\"\r\n data-testid=\"drawing-container\"\r\n ref={this._viewContainerElement}>\r\n <div className=\"drawing-view-window\"\r\n data-testid=\"drawing-view-window\"\r\n onMouseDown={this._handleWindowMouseDown}\r\n onTouchStart={this._handleWindowTouchStart}\r\n style={viewWindowStyle}\r\n ref={this._viewElement}\r\n role=\"presentation\" />\r\n {!is3D &&\r\n <div className={classnames(\"toggle-rotate-style\", \"icon\", \"icon-rotate-left\", { checked: rotateMinimapWithView })} data-testid=\"toggle-rotate-style\"\r\n style={mode === MapMode.Closed && !isAnimating ? { bottom: 2, left: 2 } : {}}\r\n title={UiIModelComponents.translate(\"drawing.rotateStyle\")}\r\n onClick={this._toggleRotationMode}\r\n role=\"presentation\" />}\r\n {!rot.isIdentity &&\r\n <div className=\"unrotate-button\" data-testid=\"drawing-unrotate-button\" style={mode === MapMode.Closed && !isAnimating ? { top: 2 } : {}} onClick={this._handleUnrotate}\r\n role=\"button\" tabIndex={-1}\r\n >\r\n {unrotateLabel}\r\n </div>\r\n }\r\n {mode === MapMode.Opened && !isAnimating && <>\r\n <div className=\"close\" data-testid=\"drawing-close-button\" onClick={this._closeLargeMap} role=\"button\" tabIndex={-1}>\r\n <div className=\"close-icon icon icon-sort-up\" />\r\n </div>\r\n <div className=\"zoom\">\r\n <div className=\"zoom-button icon icon-add\" data-testid=\"drawing-zoom-in-button\" onClick={this._handleZoomIn} role=\"button\" tabIndex={-1} />\r\n <div className=\"zoom-button icon icon-remove-2\" data-testid=\"drawing-zoom-out-button\" onClick={this._handleZoomOut} role=\"button\" tabIndex={-1} />\r\n </div>\r\n </>}\r\n </div>\r\n </div>\r\n );\r\n if (mode === MapMode.Closed && (animation === 1.0 || startMapExtents.isExactEqual(mapExtents))) {\r\n return nodes;\r\n } else {\r\n let drawingPortal = document.querySelector(\"#components-drawing-portal\");\r\n if (!drawingPortal) {\r\n drawingPortal = document.createElement(\"div\");\r\n drawingPortal.id = \"components-drawing-portal\";\r\n document.body.appendChild(drawingPortal);\r\n }\r\n return ReactDOM.createPortal(nodes, drawingPortal);\r\n }\r\n }\r\n\r\n private _isViewport3D = () => {\r\n return this.state.view !== undefined && this.state.view.is3d();\r\n };\r\n\r\n private _lastTime: number | undefined;\r\n\r\n private static _animationFn = (t: number) => t < .5 ? 2 * t ** 2 : -1 + (4 - 2 * t) * t;\r\n\r\n private _animation = () => {\r\n const t = Date.now();\r\n const delta = this._lastTime ? t - this._lastTime : 16;\r\n this._lastTime = t;\r\n if (this.state.animation !== 1) {\r\n const animation = Math.min(1, this.state.animation + delta / (1000 * (this.props.animationTime || 0.4)));\r\n this._updateFrustum();\r\n\r\n // istanbul ignore next\r\n if (this._mounted) {\r\n this.setState({ animation }, () => {\r\n this._animationFrame = setTimeout(this._animation, 16.667);\r\n });\r\n }\r\n } else {\r\n this._lastTime = undefined;\r\n this._animationEnd();\r\n }\r\n };\r\n\r\n private _animationEnd = () => {\r\n const hasViewportMoved = !this.state.origin.isAlmostEqual(this.state.startOrigin) ||\r\n !this.state.rotation.isAlmostEqual(this.state.startRotation);\r\n const startMapOrigin = Point3d.createFrom(this.state.mapOrigin);\r\n const startMapExtents = Vector3d.createFrom(this.state.mapExtents);\r\n const startDrawingZoom = this.state.drawingZoom;\r\n const startOrigin = this.state.origin;\r\n const startRotation = this.state.rotation;\r\n // istanbul ignore next\r\n if (this._mounted) {\r\n this.setState({ startMapOrigin, startDrawingZoom, startOrigin, startRotation, startMapExtents }, () => {\r\n // istanbul ignore else\r\n if (this.props.onAnimationEnd)\r\n this.props.onAnimationEnd();\r\n if (hasViewportMoved)\r\n this._updateFrustum(true);\r\n });\r\n }\r\n };\r\n\r\n private _lastPanTime: number | undefined;\r\n\r\n private _panAnimation = () => {\r\n const t = Date.now();\r\n if (this._lastPanTime === undefined)\r\n this._lastPanTime = t - 16.667;\r\n const delta = t - this._lastPanTime;\r\n this._lastPanTime = t;\r\n // istanbul ignore else\r\n if (!this.state.panningDirection.isAlmostZero && this.state.isMoving) {\r\n const { panningDirection } = this.state;\r\n const offset = panningDirection.scale(delta / 1000 / this.state.drawingZoom);\r\n const mapOrigin = this.state.mapOrigin.plus(offset);\r\n\r\n const origin = this.state.origin.plus(offset);\r\n this._updateFrustum();\r\n // istanbul ignore next\r\n if (this._mounted) {\r\n this.setState({ mapOrigin, origin, panningDirection }, () => {\r\n this._animationFrame = setTimeout(this._panAnimation, 16.667);\r\n });\r\n }\r\n } else {\r\n this._lastPanTime = undefined;\r\n this._updateFrustum(true);\r\n }\r\n };\r\n\r\n public override componentDidMount() {\r\n this._mounted = true;\r\n ViewportComponentEvents.onViewRotationChangeEvent.addListener(this._handleViewRotationChangeEvent);\r\n window.addEventListener(\"mousedown\", this._handleMouseDown as any);\r\n window.addEventListener(\"mouseup\", this._handleMouseDragEnd as any);\r\n window.addEventListener(\"mousemove\", this._handleMouseDrag as any);\r\n window.addEventListener(\"keyup\", this._handleKeyUp as any);\r\n }\r\n\r\n public override componentWillUnmount() {\r\n ViewportComponentEvents.onViewRotationChangeEvent.removeListener(this._handleViewRotationChangeEvent);\r\n window.removeEventListener(\"mousedown\", this._handleMouseDown as any);\r\n window.removeEventListener(\"mouseup\", this._handleMouseDragEnd as any);\r\n window.removeEventListener(\"mousemove\", this._handleMouseDrag as any);\r\n window.removeEventListener(\"keyup\", this._handleKeyUp as any);\r\n clearTimeout(this._animationFrame);\r\n if (this.props.onAnimationEnd)\r\n this.props.onAnimationEnd();\r\n\r\n const rt = document.getElementById(\"components-drawing-portal\") as HTMLDivElement;\r\n if (rt && rt.parentElement !== null && rt.children.length === 0) {\r\n rt.parentElement.removeChild(rt);\r\n }\r\n this._mounted = false;\r\n }\r\n\r\n // Synchronize with rotation coming from the Viewport\r\n private _handleViewRotationChangeEvent = (args: ViewRotationChangeEventArgs) => {\r\n // istanbul ignore else\r\n if (!this.state.isMoving && !this.state.isPanning && this.props.viewport === args.viewport) {\r\n const extents = args.viewport.view.getExtents().clone();\r\n const rotation = args.viewport.view.getRotation().clone();\r\n const halfExtents = extents.scale(.5);\r\n const offset = this.state.rotateMinimapWithView || this._isViewport3D() ? rotation.multiplyTransposeVector(halfExtents) : halfExtents;\r\n const origin = args.viewport.view.getOrigin().plus(offset);\r\n const deltaZoom = (this.state.extents.x - extents.x) / this.state.extents.x;\r\n let drawingZoom = this.state.drawingZoom / (1 - deltaZoom);\r\n const deltaOrigin = origin.minus(this.state.origin);\r\n let mapOrigin = this.state.mapOrigin.plus(deltaOrigin);\r\n mapOrigin = mapOrigin.plus(Vector3d.createFrom(origin.minus(mapOrigin)).scale(deltaZoom));\r\n if (this.state.viewId !== args.viewport.view.id) {\r\n const rect = this.state.rotateMinimapWithView || this._isViewport3D() ? extents : DrawingNavigationAid.findRotatedWindowDimensions(extents, rotation);\r\n const maxRectDim = Math.max(rect.y, rect.x);\r\n const maxExtentDim = Math.max(this.state.mapExtents.x, this.state.mapExtents.y);\r\n drawingZoom = maxExtentDim / (3 * maxRectDim);\r\n mapOrigin = origin.clone();\r\n this._viewport = args.viewport;\r\n this.setState({ viewId: args.viewport.view.id, view: args.viewport.view.clone() });\r\n }\r\n // istanbul ignore next\r\n if (this._mounted) {\r\n this.setState({\r\n startOrigin: origin, origin, extents,\r\n startRotation: rotation, rotation,\r\n startMapOrigin: mapOrigin, mapOrigin,\r\n startDrawingZoom: drawingZoom, drawingZoom,\r\n });\r\n }\r\n }\r\n };\r\n\r\n private _updateFrustum = (complete: boolean = false) => {\r\n const halfExtents = this.state.extents.scale(.5);\r\n const offset = this.state.rotateMinimapWithView || this._isViewport3D() ? this.state.rotation.multiplyTransposeVector(halfExtents) : halfExtents;\r\n const origin = this.state.origin.minus(offset);\r\n ViewportComponentEvents.setDrawingViewportState(origin, this.state.rotation, complete);\r\n };\r\n\r\n private _toggleRotationMode = () => {\r\n const rotateMinimapWithView = !this.state.rotateMinimapWithView;\r\n this.setState({ rotateMinimapWithView }, () => {\r\n if (this._viewport)\r\n this._handleViewRotationChangeEvent({ viewport: this._viewport });\r\n });\r\n };\r\n\r\n private _handleKeyUp = (event: React.KeyboardEvent) => {\r\n // istanbul ignore else\r\n if (event.key === SpecialKey.Escape && this.state.mode === MapMode.Opened) {\r\n this._closeLargeMap();\r\n }\r\n };\r\n\r\n private _lastClientXY: Point2d = Point2d.createZero();\r\n\r\n private _processWindowDrag(movement: Point2d) {\r\n const vect = Vector3d.create(movement.x / this.state.drawingZoom, -movement.y / this.state.drawingZoom, 0);\r\n const offset = this.state.rotateMinimapWithView || this._isViewport3D() ? this.state.rotation.multiplyTransposeVector(vect) : vect;\r\n const origin = this.state.origin.plus(offset);\r\n const panningDirection = this._getPanVector();\r\n const wasAlmostZero = this.state.panningDirection.isAlmostZero;\r\n this.setState({ startOrigin: origin, origin, panningDirection, isPanning: false }, () => {\r\n this._updateFrustum();\r\n if (wasAlmostZero && !this.state.panningDirection.isAlmostZero) {\r\n this._animationFrame = setTimeout(this._panAnimation, 16.667);\r\n }\r\n });\r\n }\r\n\r\n private _processWindowEndDrag() {\r\n this.setState({ isMoving: false });\r\n this._updateFrustum(true);\r\n if (this.state.mode === MapMode.Closed) {\r\n setTimeout(() => {\r\n const startMapOrigin = this.state.mapOrigin;\r\n const mapOrigin = this.state.origin.clone();\r\n // istanbul ignore next\r\n if (this._mounted) {\r\n this.setState({ startMapOrigin, mapOrigin, animation: 0 }, () => {\r\n this._animationFrame = setTimeout(this._animation, 16.667);\r\n });\r\n }\r\n }, 0);\r\n }\r\n }\r\n\r\n private _handleMouseDown = (event: React.MouseEvent) => {\r\n // Used only to determine if mouse was moved between mousedown and mouseup\r\n const mouseStart = Point2d.create(event.clientX, event.clientY);\r\n this.setState({ mouseStart });\r\n this._lastClientXY = Point2d.create(event.clientX, event.clientY);\r\n };\r\n\r\n private _handleDrawingMouseDown = (event: React.MouseEvent) => {\r\n if (this.state.mode === MapMode.Opened) {\r\n event.preventDefault();\r\n this.setState({ isPanning: true });\r\n }\r\n };\r\n\r\n private _handleWindowMouseDown = (event: React.MouseEvent) => {\r\n event.preventDefault();\r\n this.setState({ isMoving: true });\r\n };\r\n\r\n private _handleMouseDrag = (event: React.MouseEvent) => {\r\n const mouse = Point2d.create(event.clientX, event.clientY);\r\n const movement = mouse.minus(this._lastClientXY);\r\n if (this.state.isMoving) {\r\n // add scaled mouse movement\r\n this._processWindowDrag(movement);\r\n } else {\r\n // istanbul ignore else\r\n if (this.state.isPanning && this.state.mode === MapMode.Opened) {\r\n const vect = Vector3d.create(movement.x / this.state.drawingZoom, -movement.y / this.state.drawingZoom, 0);\r\n const offset = this.state.rotateMinimapWithView || this._isViewport3D() ? this.state.rotation.multiplyTransposeVector(vect) : vect;\r\n const mapOrigin = this.state.mapOrigin.minus(offset);\r\n this.setState({ startMapOrigin: mapOrigin, mapOrigin });\r\n }\r\n }\r\n this._lastClientXY = mouse;\r\n };\r\n\r\n private _handleMouseDragEnd = (event: React.MouseEvent) => {\r\n const mouse = Point2d.create(event.clientX, event.clientY);\r\n if (mouse.isAlmostEqual(this.state.mouseStart) &&\r\n this.state.mode === MapMode.Closed &&\r\n (event.target === this._viewContainerElement.current || event.target === this._viewElement.current)) {\r\n this._openLargeMap();\r\n } else if (this.state.isMoving) {\r\n this._processWindowEndDrag();\r\n } else if (this.state.isPanning) {\r\n // istanbul ignore else\r\n if (this.state.mode === MapMode.Opened) {\r\n event.stopPropagation();\r\n this.setState({ isPanning: false });\r\n }\r\n } else if ((!(event.target instanceof Node) || this._rootElement.current && !this._rootElement.current.contains(event.target)) && mouse.isAlmostEqual(this.state.mouseStart)) {\r\n this._closeLargeMap();\r\n }\r\n this._lastClientXY = Point2d.create(event.clientX, event.clientY);\r\n };\r\n\r\n // istanbul ignore next - unable to test touch\r\n private _handleWindowTouchStart = (event: any) => {\r\n if (1 !== event.targetTouches.length)\r\n return;\r\n window.addEventListener(\"touchmove\", this._onTouchMove, false);\r\n window.addEventListener(\"touchend\", this._onTouchEnd, false);\r\n const mouseStart = Point2d.create(event.targetTouches[0].clientX, event.targetTouches[0].clientY);\r\n this.setState({ mouseStart });\r\n this._lastClientXY = mouseStart.clone();\r\n this.setState({ isMoving: true });\r\n };\r\n\r\n // istanbul ignore next - unable to test touch\r\n private _onTouchMove = (event: TouchEvent) => {\r\n if (1 !== event.targetTouches.length)\r\n return;\r\n const mouse = Point2d.create(event.targetTouches[0].clientX, event.targetTouches[0].clientY);\r\n const movement = mouse.minus(this._lastClientXY);\r\n // add scaled mouse movement\r\n this._processWindowDrag(movement);\r\n this._lastClientXY = mouse;\r\n };\r\n\r\n // istanbul ignore next - unable to test touch\r\n private _onTouchEnd = (event: TouchEvent) => {\r\n if (0 !== event.targetTouches.length)\r\n return;\r\n this._processWindowEndDrag();\r\n if (0 !== event.changedTouches.length)\r\n this._lastClientXY = Point2d.create(event.changedTouches[0].clientX, event.changedTouches[0].clientY); // Doesn't seem necessary...but _handleMouseDragEnd sets it...\r\n window.removeEventListener(\"touchmove\", this._onTouchMove);\r\n window.removeEventListener(\"touchend\", this._onTouchEnd);\r\n };\r\n\r\n /** @internal */\r\n public static getDefaultClosedMapSize = (): Vector3d => {\r\n return Vector3d.create(96, 96);\r\n };\r\n\r\n /** @internal */\r\n public static getDefaultOpenedMapSize = (paddingX: number = 0, paddingY: number = 0): Vector3d => {\r\n return Vector3d.create(window.innerWidth / 3 - 2 * (window.innerWidth - paddingX), window.innerHeight / 3 - 2 * paddingY);\r\n };\r\n\r\n private _getClosedMapSize = (): Vector3d => {\r\n if (this.props.closeSize === undefined)\r\n return DrawingNavigationAid.getDefaultClosedMapSize();\r\n return this.props.closeSize;\r\n };\r\n\r\n private _getOpenedMapSize = (): Vector3d => {\r\n if (this.props.openSize === undefined)\r\n return DrawingNavigationAid.getDefaultOpenedMapSize(this._rootOffset.right, this._rootOffset.top);\r\n return this.props.openSize;\r\n };\r\n\r\n private _openLargeMap = () => {\r\n // istanbul ignore else\r\n if (this.state.mode === MapMode.Closed && this.state.animation === 1.0) {\r\n // istanbul ignore else\r\n if (this._rootElement.current) {\r\n const rect = this._rootElement.current.getBoundingClientRect();\r\n this._rootOffset = rect;\r\n }\r\n const startMapExtents = Vector3d.createFrom(this.state.mapExtents);\r\n const mapExtents = this._getOpenedMapSize();\r\n this.setState({\r\n mode: MapMode.Opened,\r\n isMoving: false, isPanning: false,\r\n mapExtents, startMapExtents,\r\n animation: 0,\r\n }, () => {\r\n this._animationFrame = setTimeout(this._animation);\r\n });\r\n }\r\n };\r\n\r\n private _closeLargeMap = () => {\r\n // istanbul ignore else\r\n if (this.state.mode === MapMode.Opened && this.state.animation === 1.0) {\r\n const startMapOrigin = this.state.mapOrigin;\r\n const mapOrigin = this.state.origin.clone();\r\n const startMapExtents = Vector3d.createFrom(this.state.mapExtents);\r\n const mapExtents = this._getClosedMapSize();\r\n const rect = this.state.rotateMinimapWithView || this._isViewport3D() ? this.state.extents : DrawingNavigationAid.findRotatedWindowDimensions(this.state.extents, this.state.rotation);\r\n const maxRectDim = Math.max(rect.y, rect.x);\r\n const maxExtentDim = Math.max(mapExtents.x, mapExtents.y);\r\n const drawingZoom = maxExtentDim / (3 * maxRectDim);\r\n const startDrawingZoom = this.state.drawingZoom;\r\n this.setState({\r\n mode: MapMode.Closed,\r\n startMapOrigin, mapOrigin,\r\n startDrawingZoom, drawingZoom,\r\n isMoving: false, isPanning: false,\r\n startMapExtents, mapExtents,\r\n panningDirection: Vector3d.createZero(),\r\n animation: 0,\r\n }, () => {\r\n this._animationFrame = setTimeout(this._animation, 16.667);\r\n });\r\n }\r\n };\r\n\r\n private _getPanVector = () => {\r\n const is3D = this._isViewport3D();\r\n const rect = this.state.rotateMinimapWithView || is3D ? this.state.extents : DrawingNavigationAid.findRotatedWindowDimensions(this.state.extents, this.state.rotation);\r\n\r\n const mapExtents = this.state.mapExtents.scale(1 / this.state.drawingZoom);\r\n\r\n const maxMagnitude = 80; // maximum acceleration\r\n const magnitudeTravel = 30; // How far, in pixels, that magnitude increases from 0 to max acceleration\r\n\r\n const diff = Vector3d.createFrom(this.state.origin.minus(this.state.mapOrigin));\r\n const diffVector = this.state.rotateMinimapWithView || is3D ? this.state.rotation.multiplyVector(diff) : diff;\r\n\r\n // capture any values\r\n const magnitudeVector = Vector3d.create(\r\n Math.max(0, Math.abs(diffVector.x) - (mapExtents.x - rect.x) / 2),\r\n Math.max(0, Math.abs(diffVector.y) - (mapExtents.y - rect.y) / 2),\r\n );\r\n if (magnitudeVector.isAlmostZero)\r\n return Vector3d.createZero();\r\n const magnitude = Math.min(magnitudeVector.magnitude() * this.state.drawingZoom, magnitudeTravel) / magnitudeTravel * maxMagnitude;\r\n\r\n const vect = Vector3d.createFrom(this.state.origin.minus(this.state.mapOrigin)); // vect will never be zero or magnitude would also be zero\r\n const norm = vect.normalize();\r\n return norm!.scale(magnitude); // norm is only undefined when vect is zero, in which it would have returned at magnitudeVector.isAlmostZero\r\n };\r\n\r\n private _handleWheel = (event: React.WheelEvent) => {\r\n // istanbul ignore else\r\n if (this.state.mode === MapMode.Opened && this.state.animation === 1) {\r\n const { mapOrigin, drawingZoom } = this.state;\r\n const mapSize = this._getOpenedMapSize();\r\n\r\n const mouseX = event.clientX - this._rootOffset.right + mapSize.x / 2;\r\n const mouseY = event.clientY - this._rootOffset.top - mapSize.y / 2;\r\n const is3D = this._isViewport3D();\r\n if (event.deltaY < 0) {\r\n const zoom = drawingZoom * 1.1;\r\n const vect = Vector3d.create(mouseX * 0.1 / zoom, -mouseY * 0.1 / zoom, 0);\r\n const offset = this.state.rotateMinimapWithView || is3D ? this.state.rotation.multiplyTransposeVector(vect) : vect;\r\n const m = mapOrigin.plus(offset);\r\n this.setState({ mapOrigin: m, drawingZoom: zoom });\r\n }\r\n if (event.deltaY > 0) {\r\n const zoom = drawingZoom / 1.1;\r\n const vect = Vector3d.create(mouseX * 0.1 / drawingZoom, -mouseY * 0.1 / drawingZoom, 0);\r\n const offset = this.state.rotateMinimapWithView || is3D ? this.state.rotation.multiplyTransposeVector(vect) : vect;\r\n const m = mapOrigin.minus(offset);\r\n this.setState({ mapOrigin: m, drawingZoom: zoom });\r\n }\r\n }\r\n };\r\n\r\n private _handleZoomIn = () => {\r\n const zoom = this.state.drawingZoom * 1.4;\r\n this.setState({ drawingZoom: zoom });\r\n };\r\n\r\n private _handleZoomOut = () => {\r\n const zoom = this.state.drawingZoom / 1.4;\r\n this.setState({ drawingZoom: zoom });\r\n };\r\n\r\n private _handleUnrotate = () => {\r\n const startRotation = this.state.rotation;\r\n const halfExtents = this.state.extents.scale(.5);\r\n const offset = this.state.rotateMinimapWithView || this._isViewport3D() ? Vector3d.createZero() : this.state.rotation.multiplyTransposeVector(halfExtents).minus(halfExtents);\r\n const startOrigin = this.state.origin;\r\n const origin = this.state.origin.plus(offset);\r\n const startMapOrigin = this.state.mapOrigin;\r\n const mapOrigin = this.state.mapOrigin.plus(offset);\r\n this.setState({ animation: 0, startOrigin, origin, startMapOrigin, mapOrigin, startRotation, rotation: Matrix3d.createIdentity() }, () => {\r\n this._animationFrame = setTimeout(this._animation, 16.667);\r\n });\r\n };\r\n\r\n /** @internal */\r\n public static findRotatedWindowDimensions = (extents: Vector3d, rotation: Matrix3d) => {\r\n const cos = rotation.at(0, 0);\r\n const sin = rotation.at(1, 0);\r\n // extents.x/y should be divided in half, but we don't have to do that immediately.\r\n const cosWidth = cos * extents.x;\r\n const sinHeight = sin * extents.y;\r\n\r\n const sinWidth = cos * extents.x;\r\n const cosHeight = sin * extents.y;\r\n\r\n const a = Math.atan2(sin, cos);\r\n\r\n if (a % Math.PI >= 0 && a % Math.PI < Math.PI / 2) {\r\n const y1 = -cosHeight - sinWidth;\r\n const x2 = cosWidth + sinHeight;\r\n const y3 = cosHeight + sinWidth;\r\n const x4 = -cosWidth - sinHeight;\r\n // Instead, divide total difference\r\n return Vector3d.create(Math.abs(x2 - x4) / 2, Math.abs(y1 - y3) / 2);\r\n } else {\r\n const x1 = -cosWidth + sinHeight;\r\n const y2 = -cosHeight + sinWidth;\r\n const x3 = cosWidth - sinHeight;\r\n const y4 = cosHeight - sinWidth;\r\n return Vector3d.create(Math.abs(x1 - x3) / 2, Math.abs(y2 - y4) / 2);\r\n }\r\n };\r\n}\r\n\r\n/** @internal */\r\nexport interface DrawingNavigationCanvasProps {\r\n view: ViewState | undefined;\r\n viewId?: string;\r\n origin: Point3d;\r\n extents: Vector3d;\r\n zoom: number;\r\n rotation: Matrix3d;\r\n viewManagerOverride?: ViewManager;\r\n screenViewportOverride?: typeof ScreenViewport;\r\n canvasSizeOverride?: boolean;\r\n}\r\n\r\n/** @internal */\r\nexport class DrawingNavigationCanvas extends React.Component<DrawingNavigationCanvasProps> {\r\n private _canvasElement = React.createRef<HTMLDivElement>();\r\n private _vp?: ScreenViewport;\r\n\r\n public override render(): React.ReactNode {\r\n return (\r\n <div className=\"drawing-canvas\"\r\n data-testid=\"drawing-canvas\"\r\n ref={this._canvasElement}>\r\n </div>\r\n );\r\n }\r\n\r\n public override componentDidMount() {\r\n if (this._canvasElement.current && this.props.view !== undefined) {\r\n const viewManager = this.props.viewManagerOverride ? this.props.viewManagerOverride : /* istanbul ignore next */ IModelApp.viewManager;\r\n /* istanbul ignore next */\r\n const screenViewport = this.props.screenViewportOverride ? this.props.screenViewportOverride : /* istanbul ignore next */ ScreenViewport;\r\n const previousView = viewManager.selectedView;\r\n this._vp = screenViewport.create(this._canvasElement.current, this.props.view);\r\n this.customizeViewport(this._vp);\r\n viewManager.addViewport(this._vp);\r\n void viewManager.setSelectedView(previousView); // switch to original viewport\r\n this._update();\r\n }\r\n }\r\n\r\n private customizeViewport(vp: ScreenViewport): void {\r\n /* istanbul ignore next */\r\n if (vp.logo.style)\r\n vp.logo.style.display = \"none\";\r\n\r\n /* istanbul ignore next */\r\n if (vp.viewFlags.acsTriad)\r\n vp.viewFlags = vp.viewFlags.with(\"acsTriad\", false);\r\n }\r\n\r\n private _update = () => {\r\n // istanbul ignore else\r\n if (this._vp) {\r\n const max = Math.max(this.props.extents.x, this.props.extents.y);\r\n this._vp.view.extentLimits = { max, min: Constant.oneMillimeter };\r\n this._vp.view.setOrigin(this.props.origin);\r\n this._vp.view.setRotation(this.props.rotation);\r\n this._vp.view.setExtents(this.props.extents);\r\n this._vp.applyViewState(this._vp.view);\r\n }\r\n };\r\n\r\n public override componentDidUpdate(oldProps: DrawingNavigationCanvasProps) {\r\n const viewManager = this.props.viewManagerOverride ? this.props.viewManagerOverride : /* istanbul ignore next */ IModelApp.viewManager;\r\n if (this.props.view !== undefined) {\r\n if (oldProps.view !== this.props.view) {\r\n const screenViewport = this.props.screenViewportOverride ? this.props.screenViewportOverride : /* istanbul ignore next */ ScreenViewport;\r\n if (oldProps !== undefined && oldProps.viewId !== \"\" && oldProps.viewId !== this.props.viewId && this._vp) {\r\n viewManager.dropViewport(this._vp, true);\r\n }\r\n // istanbul ignore else\r\n if (this._canvasElement.current &&\r\n (this.props.canvasSizeOverride ||\r\n ( /* istanbul ignore next */ this._canvasElement.current.clientWidth !== 0 && /* istanbul ignore next */ this._canvasElement.current.clientHeight !== 0))) {\r\n const previousView = viewManager.selectedView;\r\n this._vp = screenViewport.create(this._canvasElement.current, this.props.view.clone());\r\n this.customizeViewport(this._vp);\r\n viewManager.addViewport(this._vp);\r\n void viewManager.setSelectedView(previousView); // switch to original viewport\r\n this._update();\r\n }\r\n } else if (!this.props.origin.isExactEqual(oldProps.origin) || !this.props.extents.isExactEqual(oldProps.extents) || this.props.zoom !== oldProps.zoom || !this.props.rotation.isExactEqual(oldProps.rotation)) {\r\n this._update();\r\n }\r\n }\r\n }\r\n\r\n public override componentWillUnmount() {\r\n if (this._vp) {\r\n const viewManager = this.props.viewManagerOverride ? this.props.viewManagerOverride : /* istanbul ignore next */ IModelApp.viewManager;\r\n viewManager.dropViewport(this._vp, true);\r\n }\r\n }\r\n\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"DrawingNavigationAid.js","sourceRoot":"","sources":["../../../../src/imodel-components-react/navigationaids/DrawingNavigationAid.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module NavigationAids\n */\n\nimport \"./DrawingNavigationAid.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { Constant, Geometry, Matrix3d, Point2d, Point3d, Point4d, Vector3d } from \"@itwin/core-geometry\";\nimport { IModelApp, IModelConnection, ScreenViewport, ViewManager, Viewport, ViewState } from \"@itwin/core-frontend\";\nimport { SpecialKey } from \"@itwin/appui-abstract\";\nimport { CommonProps } from \"@itwin/core-react\";\nimport { UiIModelComponents } from \"../UiIModelComponents\";\nimport { ViewportComponentEvents, ViewRotationChangeEventArgs } from \"../viewport/ViewportComponentEvents\";\n\n// cSpell:ignore Quaternion Quaternions unrotate\n/* eslint-disable jsx-a11y/click-events-have-key-events */\n\n/**\n * Enum for mode that minimap is currently in\n * @internal\n */\nexport enum MapMode {\n Opened = \"map-opened\",\n Closed = \"map-closed\",\n}\n\n/** Properties for the [[DrawingNavigationAid]] component\n * @public\n */\nexport interface DrawingNavigationAidProps extends CommonProps {\n iModelConnection: IModelConnection;\n viewport?: Viewport;\n\n // used only in testing\n\n /** @internal */\n animationTime?: number;\n /** @internal */\n openSize?: Vector3d;\n /** @internal */\n closeSize?: Vector3d;\n /** @internal */\n initialMapMode?: MapMode;\n /** @internal */\n onAnimationEnd?: () => void;\n /** @internal */\n initialRotateMinimapWithView?: boolean;\n /** @internal */\n initialView?: ViewState;\n /** @internal */\n viewManagerOverride?: ViewManager;\n /** @internal */\n screenViewportOverride?: typeof ScreenViewport;\n}\n\n/** @internal */\ninterface DrawingNavigationAidState {\n startOrigin: Point3d;\n origin: Point3d;\n extents: Vector3d;\n startRotation: Matrix3d;\n rotation: Matrix3d;\n\n startMapOrigin: Point3d;\n mapOrigin: Point3d;\n startMapExtents: Vector3d;\n mapExtents: Vector3d;\n\n mouseStart: Point2d;\n panningDirection: Vector3d;\n startDrawingZoom: number;\n drawingZoom: number;\n\n mode: MapMode;\n animation: number;\n\n isMoving: boolean;\n isPanning: boolean;\n\n viewId: string;\n view: ViewState | undefined;\n\n rotateMinimapWithView: boolean;\n}\n\n/**\n * A Drawing Navigation Aid.\n * @public\n */\nexport class DrawingNavigationAid extends React.Component<DrawingNavigationAidProps, DrawingNavigationAidState> {\n private _rootElement = React.createRef<HTMLDivElement>();\n private _viewContainerElement = React.createRef<HTMLDivElement>();\n private _viewElement = React.createRef<HTMLDivElement>();\n private _rootOffset: DOMRect = DOMRect.fromRect({ x: 0, y: 0, width: 0, height: 0 });\n private _viewport: Viewport | undefined;\n private _animationFrame: any;\n private _mounted: boolean = false;\n\n /** @internal */\n public override readonly state: Readonly<DrawingNavigationAidState>;\n\n constructor(props: DrawingNavigationAidProps) {\n super(props);\n const mode = props.initialMapMode || MapMode.Closed;\n const mapExtents = mode === MapMode.Closed ? this._getClosedMapSize() : this._getOpenedMapSize();\n const startMapExtents = mapExtents;\n\n this.state = {\n startOrigin: Point3d.createZero(),\n origin: Point3d.createZero(),\n extents: Vector3d.create(1, 1, 1),\n startRotation: Matrix3d.createIdentity(),\n rotation: Matrix3d.createIdentity(),\n\n startMapOrigin: Point3d.createZero(),\n mapOrigin: Point3d.createZero(),\n startMapExtents,\n mapExtents,\n\n mouseStart: Point2d.createZero(),\n panningDirection: Vector3d.createZero(),\n startDrawingZoom: 1.0,\n drawingZoom: 1.0,\n\n mode,\n animation: 1.0,\n\n viewId: props.initialView !== undefined ? props.initialView.id : \"\",\n view: props.initialView,\n\n isMoving: false,\n isPanning: false,\n rotateMinimapWithView: props.initialRotateMinimapWithView !== undefined ? props.initialRotateMinimapWithView : false,\n };\n }\n\n /** @internal */\n public override render(): React.ReactNode {\n const {\n startOrigin, origin, extents,\n startRotation, rotation,\n startMapOrigin, mapOrigin,\n startMapExtents, mapExtents,\n startDrawingZoom, drawingZoom,\n animation,\n viewId,\n mode, rotateMinimapWithView,\n } = this.state;\n\n const a = DrawingNavigationAid._animationFn(animation);\n const rot = Matrix3d.createFromQuaternion(Point4d.interpolateQuaternions(startRotation.toQuaternion(), a, rotation.toQuaternion()));\n const or = startOrigin.interpolate(a, origin);\n const map = startMapOrigin.interpolate(a, mapOrigin);\n const sz = startMapExtents.interpolate(a, mapExtents);\n const dz = Geometry.interpolate(startDrawingZoom, a, drawingZoom);\n\n const rootStyle: React.CSSProperties = {\n width: sz.x, height: sz.y,\n ...this.props.style,\n };\n const is3D = this._isViewport3D();\n\n const tOr = rotateMinimapWithView || is3D ? rotation.multiplyVector(Vector3d.createFrom(or)) : Vector3d.createFrom(or);\n const tMap = rotateMinimapWithView || is3D ? rotation.multiplyVector(Vector3d.createFrom(map)) : Vector3d.createFrom(map);\n\n const tPosX = (tOr.x - extents.x / 2 - tMap.x) * dz + sz.x / 2;\n const tPosY = (-tOr.y - extents.y / 2 + tMap.y) * dz + sz.y / 2;\n const viewWindowStyle = {\n transform: `translate(${tPosX}px, ${tPosY}px)`,\n height: extents.y * dz,\n width: extents.x * dz,\n };\n if (!rotateMinimapWithView && !is3D)\n viewWindowStyle.transform =\n \"matrix3d(\" +\n `${rot.at(0, 0)}, ${rot.at(1, 0)}, ${rot.at(2, 0)}, 0, ` +\n `${rot.at(0, 1)}, ${rot.at(1, 1)}, ${rot.at(2, 1)}, 0, ` +\n `${rot.at(0, 2)}, ${rot.at(1, 2)}, ${rot.at(2, 2)}, 0, ` +\n `${tPosX}, ${tPosY}, 0, 1)`;\n const isAnimating = animation !== 1 && !startMapExtents.isExactEqual(mapExtents);\n if (mode === MapMode.Opened || isAnimating) {\n rootStyle.position = \"fixed\";\n rootStyle.right = window.innerWidth - this._rootOffset.right;\n rootStyle.top = this._rootOffset.top;\n }\n\n const halfExtents = extents.scale(.5);\n const offset = rotateMinimapWithView || is3D ? Vector3d.createZero() : rotation.multiplyTransposeVector(halfExtents).minus(halfExtents);\n\n const unrotateLabel = UiIModelComponents.translate(\"drawing.unrotate\");\n const e = sz.scale(1 / dz);\n const halfMapExtents = e.scale(.5);\n const mapOffset = rotateMinimapWithView || is3D ? rotation.multiplyTransposeVector(halfMapExtents) : halfMapExtents;\n const viewManager = this.props.viewManagerOverride ? this.props.viewManagerOverride : /* istanbul ignore next */ IModelApp.viewManager;\n const screenViewport = this.props.screenViewportOverride ? this.props.screenViewportOverride : /* istanbul ignore next */ ScreenViewport;\n const nodes = (\n <div className={classnames(\"components-drawing-navigation-aid\", this.props.className)}\n data-testid=\"components-drawing-navigation-aid\"\n ref={this._rootElement}\n onWheel={this._handleWheel}\n onMouseDown={this._handleDrawingMouseDown}\n style={rootStyle}\n role=\"presentation\">\n <DrawingNavigationCanvas view={this.state.view} viewManagerOverride={viewManager} screenViewportOverride={screenViewport} viewId={viewId} origin={map.plus(offset).minus(mapOffset)} extents={e} zoom={dz} rotation={rotateMinimapWithView || is3D ? rotation : Matrix3d.createIdentity()} />\n <div className=\"drawing-container\"\n data-testid=\"drawing-container\"\n ref={this._viewContainerElement}>\n <div className=\"drawing-view-window\"\n data-testid=\"drawing-view-window\"\n onMouseDown={this._handleWindowMouseDown}\n onTouchStart={this._handleWindowTouchStart}\n style={viewWindowStyle}\n ref={this._viewElement}\n role=\"presentation\" />\n {!is3D &&\n <div className={classnames(\"toggle-rotate-style\", \"icon\", \"icon-rotate-left\", { checked: rotateMinimapWithView })} data-testid=\"toggle-rotate-style\"\n style={mode === MapMode.Closed && !isAnimating ? { bottom: 2, left: 2 } : {}}\n title={UiIModelComponents.translate(\"drawing.rotateStyle\")}\n onClick={this._toggleRotationMode}\n role=\"presentation\" />}\n {!rot.isIdentity &&\n <div className=\"unrotate-button\" data-testid=\"drawing-unrotate-button\" style={mode === MapMode.Closed && !isAnimating ? { top: 2 } : {}} onClick={this._handleUnrotate}\n role=\"button\" tabIndex={-1}\n >\n {unrotateLabel}\n </div>\n }\n {mode === MapMode.Opened && !isAnimating && <>\n <div className=\"close\" data-testid=\"drawing-close-button\" onClick={this._closeLargeMap} role=\"button\" tabIndex={-1}>\n <div className=\"close-icon icon icon-sort-up\" />\n </div>\n <div className=\"zoom\">\n <div className=\"zoom-button icon icon-add\" data-testid=\"drawing-zoom-in-button\" onClick={this._handleZoomIn} role=\"button\" tabIndex={-1} />\n <div className=\"zoom-button icon icon-remove-2\" data-testid=\"drawing-zoom-out-button\" onClick={this._handleZoomOut} role=\"button\" tabIndex={-1} />\n </div>\n </>}\n </div>\n </div>\n );\n if (mode === MapMode.Closed && (animation === 1.0 || startMapExtents.isExactEqual(mapExtents))) {\n return nodes;\n } else {\n let drawingPortal = document.querySelector(\"#components-drawing-portal\");\n if (!drawingPortal) {\n drawingPortal = document.createElement(\"div\");\n drawingPortal.id = \"components-drawing-portal\";\n document.body.appendChild(drawingPortal);\n }\n return ReactDOM.createPortal(nodes, drawingPortal);\n }\n }\n\n private _isViewport3D = () => {\n return this.state.view !== undefined && this.state.view.is3d();\n };\n\n private _lastTime: number | undefined;\n\n private static _animationFn = (t: number) => t < .5 ? 2 * t ** 2 : -1 + (4 - 2 * t) * t;\n\n private _animation = () => {\n const t = Date.now();\n const delta = this._lastTime ? t - this._lastTime : 16;\n this._lastTime = t;\n if (this.state.animation !== 1) {\n const animation = Math.min(1, this.state.animation + delta / (1000 * (this.props.animationTime || 0.4)));\n this._updateFrustum();\n\n // istanbul ignore next\n if (this._mounted) {\n this.setState({ animation }, () => {\n this._animationFrame = setTimeout(this._animation, 16.667);\n });\n }\n } else {\n this._lastTime = undefined;\n this._animationEnd();\n }\n };\n\n private _animationEnd = () => {\n const hasViewportMoved = !this.state.origin.isAlmostEqual(this.state.startOrigin) ||\n !this.state.rotation.isAlmostEqual(this.state.startRotation);\n const startMapOrigin = Point3d.createFrom(this.state.mapOrigin);\n const startMapExtents = Vector3d.createFrom(this.state.mapExtents);\n const startDrawingZoom = this.state.drawingZoom;\n const startOrigin = this.state.origin;\n const startRotation = this.state.rotation;\n // istanbul ignore next\n if (this._mounted) {\n this.setState({ startMapOrigin, startDrawingZoom, startOrigin, startRotation, startMapExtents }, () => {\n // istanbul ignore else\n if (this.props.onAnimationEnd)\n this.props.onAnimationEnd();\n if (hasViewportMoved)\n this._updateFrustum(true);\n });\n }\n };\n\n private _lastPanTime: number | undefined;\n\n private _panAnimation = () => {\n const t = Date.now();\n if (this._lastPanTime === undefined)\n this._lastPanTime = t - 16.667;\n const delta = t - this._lastPanTime;\n this._lastPanTime = t;\n // istanbul ignore else\n if (!this.state.panningDirection.isAlmostZero && this.state.isMoving) {\n const { panningDirection } = this.state;\n const offset = panningDirection.scale(delta / 1000 / this.state.drawingZoom);\n const mapOrigin = this.state.mapOrigin.plus(offset);\n\n const origin = this.state.origin.plus(offset);\n this._updateFrustum();\n // istanbul ignore next\n if (this._mounted) {\n this.setState({ mapOrigin, origin, panningDirection }, () => {\n this._animationFrame = setTimeout(this._panAnimation, 16.667);\n });\n }\n } else {\n this._lastPanTime = undefined;\n this._updateFrustum(true);\n }\n };\n\n public override componentDidMount() {\n this._mounted = true;\n ViewportComponentEvents.onViewRotationChangeEvent.addListener(this._handleViewRotationChangeEvent);\n window.addEventListener(\"mousedown\", this._handleMouseDown as any);\n window.addEventListener(\"mouseup\", this._handleMouseDragEnd as any);\n window.addEventListener(\"mousemove\", this._handleMouseDrag as any);\n window.addEventListener(\"keyup\", this._handleKeyUp as any);\n }\n\n public override componentWillUnmount() {\n ViewportComponentEvents.onViewRotationChangeEvent.removeListener(this._handleViewRotationChangeEvent);\n window.removeEventListener(\"mousedown\", this._handleMouseDown as any);\n window.removeEventListener(\"mouseup\", this._handleMouseDragEnd as any);\n window.removeEventListener(\"mousemove\", this._handleMouseDrag as any);\n window.removeEventListener(\"keyup\", this._handleKeyUp as any);\n clearTimeout(this._animationFrame);\n if (this.props.onAnimationEnd)\n this.props.onAnimationEnd();\n\n const rt = document.getElementById(\"components-drawing-portal\") as HTMLDivElement;\n if (rt && rt.parentElement !== null && rt.children.length === 0) {\n rt.parentElement.removeChild(rt);\n }\n this._mounted = false;\n }\n\n // Synchronize with rotation coming from the Viewport\n private _handleViewRotationChangeEvent = (args: ViewRotationChangeEventArgs) => {\n // istanbul ignore else\n if (!this.state.isMoving && !this.state.isPanning && this.props.viewport === args.viewport) {\n const extents = args.viewport.view.getExtents().clone();\n const rotation = args.viewport.view.getRotation().clone();\n const halfExtents = extents.scale(.5);\n const offset = this.state.rotateMinimapWithView || this._isViewport3D() ? rotation.multiplyTransposeVector(halfExtents) : halfExtents;\n const origin = args.viewport.view.getOrigin().plus(offset);\n const deltaZoom = (this.state.extents.x - extents.x) / this.state.extents.x;\n let drawingZoom = this.state.drawingZoom / (1 - deltaZoom);\n const deltaOrigin = origin.minus(this.state.origin);\n let mapOrigin = this.state.mapOrigin.plus(deltaOrigin);\n mapOrigin = mapOrigin.plus(Vector3d.createFrom(origin.minus(mapOrigin)).scale(deltaZoom));\n if (this.state.viewId !== args.viewport.view.id) {\n const rect = this.state.rotateMinimapWithView || this._isViewport3D() ? extents : DrawingNavigationAid.findRotatedWindowDimensions(extents, rotation);\n const maxRectDim = Math.max(rect.y, rect.x);\n const maxExtentDim = Math.max(this.state.mapExtents.x, this.state.mapExtents.y);\n drawingZoom = maxExtentDim / (3 * maxRectDim);\n mapOrigin = origin.clone();\n this._viewport = args.viewport;\n this.setState({ viewId: args.viewport.view.id, view: args.viewport.view.clone() });\n }\n // istanbul ignore next\n if (this._mounted) {\n this.setState({\n startOrigin: origin, origin, extents,\n startRotation: rotation, rotation,\n startMapOrigin: mapOrigin, mapOrigin,\n startDrawingZoom: drawingZoom, drawingZoom,\n });\n }\n }\n };\n\n private _updateFrustum = (complete: boolean = false) => {\n const halfExtents = this.state.extents.scale(.5);\n const offset = this.state.rotateMinimapWithView || this._isViewport3D() ? this.state.rotation.multiplyTransposeVector(halfExtents) : halfExtents;\n const origin = this.state.origin.minus(offset);\n ViewportComponentEvents.setDrawingViewportState(origin, this.state.rotation, complete);\n };\n\n private _toggleRotationMode = () => {\n const rotateMinimapWithView = !this.state.rotateMinimapWithView;\n this.setState({ rotateMinimapWithView }, () => {\n if (this._viewport)\n this._handleViewRotationChangeEvent({ viewport: this._viewport });\n });\n };\n\n private _handleKeyUp = (event: React.KeyboardEvent) => {\n // istanbul ignore else\n if (event.key === SpecialKey.Escape && this.state.mode === MapMode.Opened) {\n this._closeLargeMap();\n }\n };\n\n private _lastClientXY: Point2d = Point2d.createZero();\n\n private _processWindowDrag(movement: Point2d) {\n const vect = Vector3d.create(movement.x / this.state.drawingZoom, -movement.y / this.state.drawingZoom, 0);\n const offset = this.state.rotateMinimapWithView || this._isViewport3D() ? this.state.rotation.multiplyTransposeVector(vect) : vect;\n const origin = this.state.origin.plus(offset);\n const panningDirection = this._getPanVector();\n const wasAlmostZero = this.state.panningDirection.isAlmostZero;\n this.setState({ startOrigin: origin, origin, panningDirection, isPanning: false }, () => {\n this._updateFrustum();\n if (wasAlmostZero && !this.state.panningDirection.isAlmostZero) {\n this._animationFrame = setTimeout(this._panAnimation, 16.667);\n }\n });\n }\n\n private _processWindowEndDrag() {\n this.setState({ isMoving: false });\n this._updateFrustum(true);\n if (this.state.mode === MapMode.Closed) {\n setTimeout(() => {\n const startMapOrigin = this.state.mapOrigin;\n const mapOrigin = this.state.origin.clone();\n // istanbul ignore next\n if (this._mounted) {\n this.setState({ startMapOrigin, mapOrigin, animation: 0 }, () => {\n this._animationFrame = setTimeout(this._animation, 16.667);\n });\n }\n }, 0);\n }\n }\n\n private _handleMouseDown = (event: React.MouseEvent) => {\n // Used only to determine if mouse was moved between mousedown and mouseup\n const mouseStart = Point2d.create(event.clientX, event.clientY);\n this.setState({ mouseStart });\n this._lastClientXY = Point2d.create(event.clientX, event.clientY);\n };\n\n private _handleDrawingMouseDown = (event: React.MouseEvent) => {\n if (this.state.mode === MapMode.Opened) {\n event.preventDefault();\n this.setState({ isPanning: true });\n }\n };\n\n private _handleWindowMouseDown = (event: React.MouseEvent) => {\n event.preventDefault();\n this.setState({ isMoving: true });\n };\n\n private _handleMouseDrag = (event: React.MouseEvent) => {\n const mouse = Point2d.create(event.clientX, event.clientY);\n const movement = mouse.minus(this._lastClientXY);\n if (this.state.isMoving) {\n // add scaled mouse movement\n this._processWindowDrag(movement);\n } else {\n // istanbul ignore else\n if (this.state.isPanning && this.state.mode === MapMode.Opened) {\n const vect = Vector3d.create(movement.x / this.state.drawingZoom, -movement.y / this.state.drawingZoom, 0);\n const offset = this.state.rotateMinimapWithView || this._isViewport3D() ? this.state.rotation.multiplyTransposeVector(vect) : vect;\n const mapOrigin = this.state.mapOrigin.minus(offset);\n this.setState({ startMapOrigin: mapOrigin, mapOrigin });\n }\n }\n this._lastClientXY = mouse;\n };\n\n private _handleMouseDragEnd = (event: React.MouseEvent) => {\n const mouse = Point2d.create(event.clientX, event.clientY);\n if (mouse.isAlmostEqual(this.state.mouseStart) &&\n this.state.mode === MapMode.Closed &&\n (event.target === this._viewContainerElement.current || event.target === this._viewElement.current)) {\n this._openLargeMap();\n } else if (this.state.isMoving) {\n this._processWindowEndDrag();\n } else if (this.state.isPanning) {\n // istanbul ignore else\n if (this.state.mode === MapMode.Opened) {\n event.stopPropagation();\n this.setState({ isPanning: false });\n }\n } else if ((!(event.target instanceof Node) || this._rootElement.current && !this._rootElement.current.contains(event.target)) && mouse.isAlmostEqual(this.state.mouseStart)) {\n this._closeLargeMap();\n }\n this._lastClientXY = Point2d.create(event.clientX, event.clientY);\n };\n\n // istanbul ignore next - unable to test touch\n private _handleWindowTouchStart = (event: any) => {\n if (1 !== event.targetTouches.length)\n return;\n window.addEventListener(\"touchmove\", this._onTouchMove, false);\n window.addEventListener(\"touchend\", this._onTouchEnd, false);\n const mouseStart = Point2d.create(event.targetTouches[0].clientX, event.targetTouches[0].clientY);\n this.setState({ mouseStart });\n this._lastClientXY = mouseStart.clone();\n this.setState({ isMoving: true });\n };\n\n // istanbul ignore next - unable to test touch\n private _onTouchMove = (event: TouchEvent) => {\n if (1 !== event.targetTouches.length)\n return;\n const mouse = Point2d.create(event.targetTouches[0].clientX, event.targetTouches[0].clientY);\n const movement = mouse.minus(this._lastClientXY);\n // add scaled mouse movement\n this._processWindowDrag(movement);\n this._lastClientXY = mouse;\n };\n\n // istanbul ignore next - unable to test touch\n private _onTouchEnd = (event: TouchEvent) => {\n if (0 !== event.targetTouches.length)\n return;\n this._processWindowEndDrag();\n if (0 !== event.changedTouches.length)\n this._lastClientXY = Point2d.create(event.changedTouches[0].clientX, event.changedTouches[0].clientY); // Doesn't seem necessary...but _handleMouseDragEnd sets it...\n window.removeEventListener(\"touchmove\", this._onTouchMove);\n window.removeEventListener(\"touchend\", this._onTouchEnd);\n };\n\n /** @internal */\n public static getDefaultClosedMapSize = (): Vector3d => {\n return Vector3d.create(96, 96);\n };\n\n /** @internal */\n public static getDefaultOpenedMapSize = (paddingX: number = 0, paddingY: number = 0): Vector3d => {\n return Vector3d.create(window.innerWidth / 3 - 2 * (window.innerWidth - paddingX), window.innerHeight / 3 - 2 * paddingY);\n };\n\n private _getClosedMapSize = (): Vector3d => {\n if (this.props.closeSize === undefined)\n return DrawingNavigationAid.getDefaultClosedMapSize();\n return this.props.closeSize;\n };\n\n private _getOpenedMapSize = (): Vector3d => {\n if (this.props.openSize === undefined)\n return DrawingNavigationAid.getDefaultOpenedMapSize(this._rootOffset.right, this._rootOffset.top);\n return this.props.openSize;\n };\n\n private _openLargeMap = () => {\n // istanbul ignore else\n if (this.state.mode === MapMode.Closed && this.state.animation === 1.0) {\n // istanbul ignore else\n if (this._rootElement.current) {\n const rect = this._rootElement.current.getBoundingClientRect();\n this._rootOffset = rect;\n }\n const startMapExtents = Vector3d.createFrom(this.state.mapExtents);\n const mapExtents = this._getOpenedMapSize();\n this.setState({\n mode: MapMode.Opened,\n isMoving: false, isPanning: false,\n mapExtents, startMapExtents,\n animation: 0,\n }, () => {\n this._animationFrame = setTimeout(this._animation);\n });\n }\n };\n\n private _closeLargeMap = () => {\n // istanbul ignore else\n if (this.state.mode === MapMode.Opened && this.state.animation === 1.0) {\n const startMapOrigin = this.state.mapOrigin;\n const mapOrigin = this.state.origin.clone();\n const startMapExtents = Vector3d.createFrom(this.state.mapExtents);\n const mapExtents = this._getClosedMapSize();\n const rect = this.state.rotateMinimapWithView || this._isViewport3D() ? this.state.extents : DrawingNavigationAid.findRotatedWindowDimensions(this.state.extents, this.state.rotation);\n const maxRectDim = Math.max(rect.y, rect.x);\n const maxExtentDim = Math.max(mapExtents.x, mapExtents.y);\n const drawingZoom = maxExtentDim / (3 * maxRectDim);\n const startDrawingZoom = this.state.drawingZoom;\n this.setState({\n mode: MapMode.Closed,\n startMapOrigin, mapOrigin,\n startDrawingZoom, drawingZoom,\n isMoving: false, isPanning: false,\n startMapExtents, mapExtents,\n panningDirection: Vector3d.createZero(),\n animation: 0,\n }, () => {\n this._animationFrame = setTimeout(this._animation, 16.667);\n });\n }\n };\n\n private _getPanVector = () => {\n const is3D = this._isViewport3D();\n const rect = this.state.rotateMinimapWithView || is3D ? this.state.extents : DrawingNavigationAid.findRotatedWindowDimensions(this.state.extents, this.state.rotation);\n\n const mapExtents = this.state.mapExtents.scale(1 / this.state.drawingZoom);\n\n const maxMagnitude = 80; // maximum acceleration\n const magnitudeTravel = 30; // How far, in pixels, that magnitude increases from 0 to max acceleration\n\n const diff = Vector3d.createFrom(this.state.origin.minus(this.state.mapOrigin));\n const diffVector = this.state.rotateMinimapWithView || is3D ? this.state.rotation.multiplyVector(diff) : diff;\n\n // capture any values\n const magnitudeVector = Vector3d.create(\n Math.max(0, Math.abs(diffVector.x) - (mapExtents.x - rect.x) / 2),\n Math.max(0, Math.abs(diffVector.y) - (mapExtents.y - rect.y) / 2),\n );\n if (magnitudeVector.isAlmostZero)\n return Vector3d.createZero();\n const magnitude = Math.min(magnitudeVector.magnitude() * this.state.drawingZoom, magnitudeTravel) / magnitudeTravel * maxMagnitude;\n\n const vect = Vector3d.createFrom(this.state.origin.minus(this.state.mapOrigin)); // vect will never be zero or magnitude would also be zero\n const norm = vect.normalize();\n return norm!.scale(magnitude); // norm is only undefined when vect is zero, in which it would have returned at magnitudeVector.isAlmostZero\n };\n\n private _handleWheel = (event: React.WheelEvent) => {\n // istanbul ignore else\n if (this.state.mode === MapMode.Opened && this.state.animation === 1) {\n const { mapOrigin, drawingZoom } = this.state;\n const mapSize = this._getOpenedMapSize();\n\n const mouseX = event.clientX - this._rootOffset.right + mapSize.x / 2;\n const mouseY = event.clientY - this._rootOffset.top - mapSize.y / 2;\n const is3D = this._isViewport3D();\n if (event.deltaY < 0) {\n const zoom = drawingZoom * 1.1;\n const vect = Vector3d.create(mouseX * 0.1 / zoom, -mouseY * 0.1 / zoom, 0);\n const offset = this.state.rotateMinimapWithView || is3D ? this.state.rotation.multiplyTransposeVector(vect) : vect;\n const m = mapOrigin.plus(offset);\n this.setState({ mapOrigin: m, drawingZoom: zoom });\n }\n if (event.deltaY > 0) {\n const zoom = drawingZoom / 1.1;\n const vect = Vector3d.create(mouseX * 0.1 / drawingZoom, -mouseY * 0.1 / drawingZoom, 0);\n const offset = this.state.rotateMinimapWithView || is3D ? this.state.rotation.multiplyTransposeVector(vect) : vect;\n const m = mapOrigin.minus(offset);\n this.setState({ mapOrigin: m, drawingZoom: zoom });\n }\n }\n };\n\n private _handleZoomIn = () => {\n const zoom = this.state.drawingZoom * 1.4;\n this.setState({ drawingZoom: zoom });\n };\n\n private _handleZoomOut = () => {\n const zoom = this.state.drawingZoom / 1.4;\n this.setState({ drawingZoom: zoom });\n };\n\n private _handleUnrotate = () => {\n const startRotation = this.state.rotation;\n const halfExtents = this.state.extents.scale(.5);\n const offset = this.state.rotateMinimapWithView || this._isViewport3D() ? Vector3d.createZero() : this.state.rotation.multiplyTransposeVector(halfExtents).minus(halfExtents);\n const startOrigin = this.state.origin;\n const origin = this.state.origin.plus(offset);\n const startMapOrigin = this.state.mapOrigin;\n const mapOrigin = this.state.mapOrigin.plus(offset);\n this.setState({ animation: 0, startOrigin, origin, startMapOrigin, mapOrigin, startRotation, rotation: Matrix3d.createIdentity() }, () => {\n this._animationFrame = setTimeout(this._animation, 16.667);\n });\n };\n\n /** @internal */\n public static findRotatedWindowDimensions = (extents: Vector3d, rotation: Matrix3d) => {\n const cos = rotation.at(0, 0);\n const sin = rotation.at(1, 0);\n // extents.x/y should be divided in half, but we don't have to do that immediately.\n const cosWidth = cos * extents.x;\n const sinHeight = sin * extents.y;\n\n const sinWidth = cos * extents.x;\n const cosHeight = sin * extents.y;\n\n const a = Math.atan2(sin, cos);\n\n if (a % Math.PI >= 0 && a % Math.PI < Math.PI / 2) {\n const y1 = -cosHeight - sinWidth;\n const x2 = cosWidth + sinHeight;\n const y3 = cosHeight + sinWidth;\n const x4 = -cosWidth - sinHeight;\n // Instead, divide total difference\n return Vector3d.create(Math.abs(x2 - x4) / 2, Math.abs(y1 - y3) / 2);\n } else {\n const x1 = -cosWidth + sinHeight;\n const y2 = -cosHeight + sinWidth;\n const x3 = cosWidth - sinHeight;\n const y4 = cosHeight - sinWidth;\n return Vector3d.create(Math.abs(x1 - x3) / 2, Math.abs(y2 - y4) / 2);\n }\n };\n}\n\n/** @internal */\nexport interface DrawingNavigationCanvasProps {\n view: ViewState | undefined;\n viewId?: string;\n origin: Point3d;\n extents: Vector3d;\n zoom: number;\n rotation: Matrix3d;\n viewManagerOverride?: ViewManager;\n screenViewportOverride?: typeof ScreenViewport;\n canvasSizeOverride?: boolean;\n}\n\n/** @internal */\nexport class DrawingNavigationCanvas extends React.Component<DrawingNavigationCanvasProps> {\n private _canvasElement = React.createRef<HTMLDivElement>();\n private _vp?: ScreenViewport;\n\n public override render(): React.ReactNode {\n return (\n <div className=\"drawing-canvas\"\n data-testid=\"drawing-canvas\"\n ref={this._canvasElement}>\n </div>\n );\n }\n\n public override componentDidMount() {\n if (this._canvasElement.current && this.props.view !== undefined) {\n const viewManager = this.props.viewManagerOverride ? this.props.viewManagerOverride : /* istanbul ignore next */ IModelApp.viewManager;\n /* istanbul ignore next */\n const screenViewport = this.props.screenViewportOverride ? this.props.screenViewportOverride : /* istanbul ignore next */ ScreenViewport;\n const previousView = viewManager.selectedView;\n this._vp = screenViewport.create(this._canvasElement.current, this.props.view);\n this.customizeViewport(this._vp);\n viewManager.addViewport(this._vp);\n void viewManager.setSelectedView(previousView); // switch to original viewport\n this._update();\n }\n }\n\n private customizeViewport(vp: ScreenViewport): void {\n /* istanbul ignore next */\n if (vp.logo.style)\n vp.logo.style.display = \"none\";\n\n /* istanbul ignore next */\n if (vp.viewFlags.acsTriad)\n vp.viewFlags = vp.viewFlags.with(\"acsTriad\", false);\n }\n\n private _update = () => {\n // istanbul ignore else\n if (this._vp) {\n const max = Math.max(this.props.extents.x, this.props.extents.y);\n this._vp.view.extentLimits = { max, min: Constant.oneMillimeter };\n this._vp.view.setOrigin(this.props.origin);\n this._vp.view.setRotation(this.props.rotation);\n this._vp.view.setExtents(this.props.extents);\n this._vp.applyViewState(this._vp.view);\n }\n };\n\n public override componentDidUpdate(oldProps: DrawingNavigationCanvasProps) {\n const viewManager = this.props.viewManagerOverride ? this.props.viewManagerOverride : /* istanbul ignore next */ IModelApp.viewManager;\n if (this.props.view !== undefined) {\n if (oldProps.view !== this.props.view) {\n const screenViewport = this.props.screenViewportOverride ? this.props.screenViewportOverride : /* istanbul ignore next */ ScreenViewport;\n if (oldProps !== undefined && oldProps.viewId !== \"\" && oldProps.viewId !== this.props.viewId && this._vp) {\n viewManager.dropViewport(this._vp, true);\n }\n // istanbul ignore else\n if (this._canvasElement.current &&\n (this.props.canvasSizeOverride ||\n ( /* istanbul ignore next */ this._canvasElement.current.clientWidth !== 0 && /* istanbul ignore next */ this._canvasElement.current.clientHeight !== 0))) {\n const previousView = viewManager.selectedView;\n this._vp = screenViewport.create(this._canvasElement.current, this.props.view.clone());\n this.customizeViewport(this._vp);\n viewManager.addViewport(this._vp);\n void viewManager.setSelectedView(previousView); // switch to original viewport\n this._update();\n }\n } else if (!this.props.origin.isExactEqual(oldProps.origin) || !this.props.extents.isExactEqual(oldProps.extents) || this.props.zoom !== oldProps.zoom || !this.props.rotation.isExactEqual(oldProps.rotation)) {\n this._update();\n }\n }\n }\n\n public override componentWillUnmount() {\n if (this._vp) {\n const viewManager = this.props.viewManagerOverride ? this.props.viewManagerOverride : /* istanbul ignore next */ IModelApp.viewManager;\n viewManager.dropViewport(this._vp, true);\n }\n }\n\n}\n"]}
|
|
@@ -1,134 +1,134 @@
|
|
|
1
|
-
/*---------------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
-
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
@import "~@itwin/core-react/lib/cjs/core-react/z-index";
|
|
6
|
-
@import "~@itwin/core-react/lib/cjs/core-react/style/themecolors";
|
|
7
|
-
|
|
8
|
-
#components-drawing-portal {
|
|
9
|
-
@include uicore-z-index(dragged-widget);
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
.components-drawing-navigation-aid {
|
|
13
|
-
position: relative;
|
|
14
|
-
overflow: hidden;
|
|
15
|
-
box-shadow: 0 0 0 1px $buic-inputs-border, 0 0 0 2px $buic-text-color;
|
|
16
|
-
height: 96px;
|
|
17
|
-
width: 96px;
|
|
18
|
-
|
|
19
|
-
.drawing-canvas {
|
|
20
|
-
position: absolute;
|
|
21
|
-
left: 0px;
|
|
22
|
-
top: 0px;
|
|
23
|
-
width: 100%;
|
|
24
|
-
height: 100%;
|
|
25
|
-
min-width: 96px;
|
|
26
|
-
min-height: 96px;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
.drawing-container {
|
|
30
|
-
position: absolute;
|
|
31
|
-
left: 0px;
|
|
32
|
-
top: 0px;
|
|
33
|
-
width: 100%;
|
|
34
|
-
height: 100%;
|
|
35
|
-
|
|
36
|
-
.drawing-view-window {
|
|
37
|
-
position: absolute;
|
|
38
|
-
left: 0px;
|
|
39
|
-
top: 0px;
|
|
40
|
-
border: white 1px solid;
|
|
41
|
-
background-color: rgba(0, 0, 0, 0.5);
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
.unrotate-button {
|
|
45
|
-
position: absolute;
|
|
46
|
-
background-color: $buic-background-control;
|
|
47
|
-
border: 1px solid $buic-background-toolbutton-stroke;
|
|
48
|
-
cursor: pointer;
|
|
49
|
-
border-radius: 3px;
|
|
50
|
-
top: 10px;
|
|
51
|
-
left: 0px;
|
|
52
|
-
right: 0px;
|
|
53
|
-
margin: auto;
|
|
54
|
-
font-size: 13px;
|
|
55
|
-
height: 20px;
|
|
56
|
-
width: 64px;
|
|
57
|
-
line-height: 20px;
|
|
58
|
-
text-align: center;
|
|
59
|
-
|
|
60
|
-
&:focus {
|
|
61
|
-
outline: none;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
.close {
|
|
66
|
-
position: absolute;
|
|
67
|
-
cursor: pointer;
|
|
68
|
-
background-color: $buic-background-control;
|
|
69
|
-
border: 1px solid $buic-background-toolbutton-stroke;
|
|
70
|
-
border-radius: 3px;
|
|
71
|
-
right: 10px;
|
|
72
|
-
top: 10px;
|
|
73
|
-
|
|
74
|
-
.close-icon {
|
|
75
|
-
height: 32px;
|
|
76
|
-
width: 32px;
|
|
77
|
-
line-height: 32px;
|
|
78
|
-
text-align: center;
|
|
79
|
-
font-size: 18px;
|
|
80
|
-
transform: rotate(45deg);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
.toggle-rotate-style {
|
|
85
|
-
position: absolute;
|
|
86
|
-
cursor: pointer;
|
|
87
|
-
background-color: $buic-background-control;
|
|
88
|
-
opacity: 0.5;
|
|
89
|
-
color: $buic-foreground-body;
|
|
90
|
-
|
|
91
|
-
&.checked {
|
|
92
|
-
color: $buic-foreground-primary;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
&:hover {
|
|
96
|
-
opacity: 1;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
border-radius: 3px;
|
|
100
|
-
bottom: 10px;
|
|
101
|
-
left: 10px;
|
|
102
|
-
height: 16px;
|
|
103
|
-
width: 16px;
|
|
104
|
-
font-size: 12px;
|
|
105
|
-
line-height: 16px;
|
|
106
|
-
text-align: center;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
.zoom {
|
|
110
|
-
position: absolute;
|
|
111
|
-
border: 1px solid $buic-background-toolbutton-stroke;
|
|
112
|
-
border-radius: 3px;
|
|
113
|
-
right: 10px;
|
|
114
|
-
bottom: 10px;
|
|
115
|
-
|
|
116
|
-
.zoom-button {
|
|
117
|
-
cursor: pointer;
|
|
118
|
-
background-color: $buic-background-control;
|
|
119
|
-
height: 32px;
|
|
120
|
-
width: 32px;
|
|
121
|
-
line-height: 32px;
|
|
122
|
-
text-align: center;
|
|
123
|
-
|
|
124
|
-
&:first-child {
|
|
125
|
-
border-bottom: 1px solid $buic-background-toolbutton-stroke;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
&:focus {
|
|
129
|
-
outline: none;
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
}
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
@import "~@itwin/core-react/lib/cjs/core-react/z-index";
|
|
6
|
+
@import "~@itwin/core-react/lib/cjs/core-react/style/themecolors";
|
|
7
|
+
|
|
8
|
+
#components-drawing-portal {
|
|
9
|
+
@include uicore-z-index(dragged-widget);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.components-drawing-navigation-aid {
|
|
13
|
+
position: relative;
|
|
14
|
+
overflow: hidden;
|
|
15
|
+
box-shadow: 0 0 0 1px $buic-inputs-border, 0 0 0 2px $buic-text-color;
|
|
16
|
+
height: 96px;
|
|
17
|
+
width: 96px;
|
|
18
|
+
|
|
19
|
+
.drawing-canvas {
|
|
20
|
+
position: absolute;
|
|
21
|
+
left: 0px;
|
|
22
|
+
top: 0px;
|
|
23
|
+
width: 100%;
|
|
24
|
+
height: 100%;
|
|
25
|
+
min-width: 96px;
|
|
26
|
+
min-height: 96px;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.drawing-container {
|
|
30
|
+
position: absolute;
|
|
31
|
+
left: 0px;
|
|
32
|
+
top: 0px;
|
|
33
|
+
width: 100%;
|
|
34
|
+
height: 100%;
|
|
35
|
+
|
|
36
|
+
.drawing-view-window {
|
|
37
|
+
position: absolute;
|
|
38
|
+
left: 0px;
|
|
39
|
+
top: 0px;
|
|
40
|
+
border: white 1px solid;
|
|
41
|
+
background-color: rgba(0, 0, 0, 0.5);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.unrotate-button {
|
|
45
|
+
position: absolute;
|
|
46
|
+
background-color: $buic-background-control;
|
|
47
|
+
border: 1px solid $buic-background-toolbutton-stroke;
|
|
48
|
+
cursor: pointer;
|
|
49
|
+
border-radius: 3px;
|
|
50
|
+
top: 10px;
|
|
51
|
+
left: 0px;
|
|
52
|
+
right: 0px;
|
|
53
|
+
margin: auto;
|
|
54
|
+
font-size: 13px;
|
|
55
|
+
height: 20px;
|
|
56
|
+
width: 64px;
|
|
57
|
+
line-height: 20px;
|
|
58
|
+
text-align: center;
|
|
59
|
+
|
|
60
|
+
&:focus {
|
|
61
|
+
outline: none;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.close {
|
|
66
|
+
position: absolute;
|
|
67
|
+
cursor: pointer;
|
|
68
|
+
background-color: $buic-background-control;
|
|
69
|
+
border: 1px solid $buic-background-toolbutton-stroke;
|
|
70
|
+
border-radius: 3px;
|
|
71
|
+
right: 10px;
|
|
72
|
+
top: 10px;
|
|
73
|
+
|
|
74
|
+
.close-icon {
|
|
75
|
+
height: 32px;
|
|
76
|
+
width: 32px;
|
|
77
|
+
line-height: 32px;
|
|
78
|
+
text-align: center;
|
|
79
|
+
font-size: 18px;
|
|
80
|
+
transform: rotate(45deg);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.toggle-rotate-style {
|
|
85
|
+
position: absolute;
|
|
86
|
+
cursor: pointer;
|
|
87
|
+
background-color: $buic-background-control;
|
|
88
|
+
opacity: 0.5;
|
|
89
|
+
color: $buic-foreground-body;
|
|
90
|
+
|
|
91
|
+
&.checked {
|
|
92
|
+
color: $buic-foreground-primary;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
&:hover {
|
|
96
|
+
opacity: 1;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
border-radius: 3px;
|
|
100
|
+
bottom: 10px;
|
|
101
|
+
left: 10px;
|
|
102
|
+
height: 16px;
|
|
103
|
+
width: 16px;
|
|
104
|
+
font-size: 12px;
|
|
105
|
+
line-height: 16px;
|
|
106
|
+
text-align: center;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
.zoom {
|
|
110
|
+
position: absolute;
|
|
111
|
+
border: 1px solid $buic-background-toolbutton-stroke;
|
|
112
|
+
border-radius: 3px;
|
|
113
|
+
right: 10px;
|
|
114
|
+
bottom: 10px;
|
|
115
|
+
|
|
116
|
+
.zoom-button {
|
|
117
|
+
cursor: pointer;
|
|
118
|
+
background-color: $buic-background-control;
|
|
119
|
+
height: 32px;
|
|
120
|
+
width: 32px;
|
|
121
|
+
line-height: 32px;
|
|
122
|
+
text-align: center;
|
|
123
|
+
|
|
124
|
+
&:first-child {
|
|
125
|
+
border-bottom: 1px solid $buic-background-toolbutton-stroke;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
&:focus {
|
|
129
|
+
outline: none;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
134
|
}
|