@itwin/appui-react 4.0.0 → 4.0.1
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/CHANGELOG.md +8 -1
- package/lib/cjs/appui-react/UiFramework.js +5 -9
- package/lib/cjs/appui-react/UiFramework.js.map +1 -1
- package/lib/cjs/appui-react/_variables.scss +11 -11
- package/lib/cjs/appui-react/accudraw/AccuDrawCommandItems.js.map +1 -1
- package/lib/cjs/appui-react/accudraw/AccuDrawDialog.js.map +1 -1
- package/lib/cjs/appui-react/accudraw/AccuDrawDialog.scss +14 -14
- package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
- package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.scss +27 -27
- package/lib/cjs/appui-react/accudraw/AccuDrawInputField.d.ts.map +1 -1
- package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js +4 -1
- package/lib/cjs/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
- package/lib/cjs/appui-react/accudraw/AccuDrawInputField.scss +55 -55
- package/lib/cjs/appui-react/accudraw/AccuDrawKeyboardShortcuts.js.map +1 -1
- package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.js.map +1 -1
- package/lib/cjs/appui-react/accudraw/AccuDrawUiSettings.js.map +1 -1
- package/lib/cjs/appui-react/accudraw/AccuDrawWidget.js.map +1 -1
- package/lib/cjs/appui-react/accudraw/Calculator.js.map +1 -1
- package/lib/cjs/appui-react/accudraw/Calculator.scss +84 -84
- package/lib/cjs/appui-react/accudraw/CalculatorEngine.js.map +1 -1
- package/lib/cjs/appui-react/accudraw/CalculatorPopup.js.map +1 -1
- package/lib/cjs/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
- package/lib/cjs/appui-react/accudraw/MenuButton.js.map +1 -1
- package/lib/cjs/appui-react/accudraw/MenuButton.scss +18 -18
- package/lib/cjs/appui-react/accudraw/MenuButtonPopup.js.map +1 -1
- package/lib/cjs/appui-react/accudraw/SquareButton.js.map +1 -1
- package/lib/cjs/appui-react/accudraw/SquareButton.scss +29 -29
- package/lib/cjs/appui-react/accudraw/backspace.svg +9 -9
- package/lib/cjs/appui-react/accudraw/constraint-2d.svg +11 -11
- package/lib/cjs/appui-react/accudraw/height-2.svg +10 -10
- package/lib/cjs/appui-react/accudraw/height.svg +11 -11
- package/lib/cjs/appui-react/backstage/BackstageComposer.js.map +1 -1
- package/lib/cjs/appui-react/backstage/BackstageComposerItem.js +1 -2
- package/lib/cjs/appui-react/backstage/BackstageComposerItem.js.map +1 -1
- package/lib/cjs/appui-react/backstage/BackstageItem.js.map +1 -1
- package/lib/cjs/appui-react/backstage/BackstageItemUtilities.js.map +1 -1
- package/lib/cjs/appui-react/backstage/BackstageItemsManager.js.map +1 -1
- package/lib/cjs/appui-react/backstage/BackstageManager.js.map +1 -1
- package/lib/cjs/appui-react/backstage/InternalBackstageManager.js.map +1 -1
- package/lib/cjs/appui-react/backstage/useDefaultBackstageItems.js.map +1 -1
- package/lib/cjs/appui-react/backstage/useUiItemsProviderBackstageItems.js.map +1 -1
- package/lib/cjs/appui-react/childwindow/CopyStyles.js.map +1 -1
- package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js +24 -25
- package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
- package/lib/cjs/appui-react/childwindow/InternalChildWindowManager.scss +14 -14
- package/lib/cjs/appui-react/childwindow/PopoutWidget.js.map +1 -1
- package/lib/cjs/appui-react/childwindow/PopoutWidget.scss +10 -10
- package/lib/cjs/appui-react/configurableui/ActivityTracker.js.map +1 -1
- package/lib/cjs/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
- package/lib/cjs/appui-react/configurableui/ConfigurableUiControl.js.map +1 -1
- package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js +1 -1
- package/lib/cjs/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
- package/lib/cjs/appui-react/configurableui/TimeTracker.js +1 -2
- package/lib/cjs/appui-react/configurableui/TimeTracker.js.map +1 -1
- package/lib/cjs/appui-react/configurableui/configurableui.scss +74 -74
- package/lib/cjs/appui-react/configurableui/state.js.map +1 -1
- package/lib/cjs/appui-react/content/ContentControl.js.map +1 -1
- package/lib/cjs/appui-react/content/ContentGroup.js.map +1 -1
- package/lib/cjs/appui-react/content/ContentLayout.js +6 -11
- package/lib/cjs/appui-react/content/ContentLayout.js.map +1 -1
- package/lib/cjs/appui-react/content/ContentLayout.scss +99 -99
- package/lib/cjs/appui-react/content/DefaultViewOverlay.js +3 -4
- package/lib/cjs/appui-react/content/DefaultViewOverlay.js.map +1 -1
- package/lib/cjs/appui-react/content/DefaultViewOverlay.scss +46 -46
- package/lib/cjs/appui-react/content/FloatingViewportContent.js +1 -2
- package/lib/cjs/appui-react/content/FloatingViewportContent.js.map +1 -1
- package/lib/cjs/appui-react/content/IModelViewport.js +3 -6
- package/lib/cjs/appui-react/content/IModelViewport.js.map +1 -1
- package/lib/cjs/appui-react/content/InternalContentLayoutManager.js +1 -2
- package/lib/cjs/appui-react/content/InternalContentLayoutManager.js.map +1 -1
- package/lib/cjs/appui-react/content/InternalContentViewManager.js +1 -1
- package/lib/cjs/appui-react/content/InternalContentViewManager.js.map +1 -1
- package/lib/cjs/appui-react/content/StageContentLayout.js.map +1 -1
- package/lib/cjs/appui-react/content/ViewStateHelper.js.map +1 -1
- package/lib/cjs/appui-react/content/ViewportContentControl.js.map +1 -1
- package/lib/cjs/appui-react/content/split-pane/Pane.js.map +1 -1
- package/lib/cjs/appui-react/content/split-pane/Resizer.js.map +1 -1
- package/lib/cjs/appui-react/content/split-pane/SplitPane.js +8 -12
- package/lib/cjs/appui-react/content/split-pane/SplitPane.js.map +1 -1
- package/lib/cjs/appui-react/cursor/CursorInformation.js.map +1 -1
- package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js +2 -3
- package/lib/cjs/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
- package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.js.map +1 -1
- package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopup.scss +34 -34
- package/lib/cjs/appui-react/cursor/cursorpopup/CursorPopupManager.js.map +1 -1
- package/lib/cjs/appui-react/cursor/cursorprompt/CursorPrompt.js.map +1 -1
- package/lib/cjs/appui-react/cursor/cursorprompt/CursorPrompt.scss +30 -30
- package/lib/cjs/appui-react/dialog/ContentDialog.js +3 -6
- package/lib/cjs/appui-react/dialog/ContentDialog.js.map +1 -1
- package/lib/cjs/appui-react/dialog/ContentDialog.scss +25 -25
- package/lib/cjs/appui-react/dialog/ContentDialogManager.js.map +1 -1
- package/lib/cjs/appui-react/dialog/DialogManagerBase.js +2 -3
- package/lib/cjs/appui-react/dialog/DialogManagerBase.js.map +1 -1
- package/lib/cjs/appui-react/dialog/InternalContentDialogManager.js.map +1 -1
- package/lib/cjs/appui-react/dialog/InternalModalDialogManager.js.map +1 -1
- package/lib/cjs/appui-react/dialog/InternalModelessDialogManager.js.map +1 -1
- package/lib/cjs/appui-react/dialog/ModalDialogManager.js.map +1 -1
- package/lib/cjs/appui-react/dialog/ModelessDialog.js.map +1 -1
- package/lib/cjs/appui-react/dialog/ModelessDialogManager.js.map +1 -1
- package/lib/cjs/appui-react/dialog/StandardMessageBox.js.map +1 -1
- package/lib/cjs/appui-react/dialog/UiDataProvidedDialog.js.map +1 -1
- package/lib/cjs/appui-react/feedback/ElementTooltip.js.map +1 -1
- package/lib/cjs/appui-react/feedback/ValidationTextbox.js.map +1 -1
- package/lib/cjs/appui-react/feedback/ValidationTextbox.scss +50 -50
- package/lib/cjs/appui-react/framework/FrameworkBackstage.js.map +1 -1
- package/lib/cjs/appui-react/framework/FrameworkChildWindows.js.map +1 -1
- package/lib/cjs/appui-react/framework/FrameworkContent.js.map +1 -1
- package/lib/cjs/appui-react/framework/FrameworkControls.js.map +1 -1
- package/lib/cjs/appui-react/framework/FrameworkDialogs.js.map +1 -1
- package/lib/cjs/appui-react/framework/FrameworkFrontstages.js.map +1 -1
- package/lib/cjs/appui-react/framework/FrameworkKeyboardShortcuts.js.map +1 -1
- package/lib/cjs/appui-react/framework/FrameworkToolSettings.js.map +1 -1
- package/lib/cjs/appui-react/framework/FrameworkVisibility.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageConfig.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageDef.js +3 -4
- package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageProvider.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/InternalFrontstageManager.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/ModalFrontstage.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/ModalFrontstage.scss +80 -80
- package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js +2 -3
- package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/ModalSettingsStage.scss +11 -11
- package/lib/cjs/appui-react/frontstage/NestedFrontstage.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/StageUsage.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js +1 -2
- package/lib/cjs/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
- package/lib/cjs/appui-react/hooks/useActiveIModelConnection.js.map +1 -1
- package/lib/cjs/appui-react/hooks/useActiveStageId.js.map +1 -1
- package/lib/cjs/appui-react/hooks/useActiveViewport.js.map +1 -1
- package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js +7 -11
- package/lib/cjs/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
- package/lib/cjs/appui-react/hooks/useAvailableUiItemsProviders.js.map +1 -1
- package/lib/cjs/appui-react/hooks/useEscapeSetFocusToHome.js.map +1 -1
- package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js +7 -11
- package/lib/cjs/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
- package/lib/cjs/appui-react/hooks/useSolarDataProvider.js +8 -13
- package/lib/cjs/appui-react/hooks/useSolarDataProvider.js.map +1 -1
- package/lib/cjs/appui-react/hooks/useUiVisibility.js.map +1 -1
- package/lib/cjs/appui-react/keyboardshortcut/InternalKeyboardShortcut.js.map +1 -1
- package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
- package/lib/cjs/appui-react/keyboardshortcut/KeyboardShortcutMenu.js.map +1 -1
- package/lib/cjs/appui-react/messages/ActivityMessage.js +5 -7
- package/lib/cjs/appui-react/messages/ActivityMessage.js.map +1 -1
- package/lib/cjs/appui-react/messages/AppNotificationManager.js.map +1 -1
- package/lib/cjs/appui-react/messages/HollowIcon.js.map +1 -1
- package/lib/cjs/appui-react/messages/InputField.js.map +1 -1
- package/lib/cjs/appui-react/messages/InputField.scss +82 -82
- package/lib/cjs/appui-react/messages/MessageLabel.js.map +1 -1
- package/lib/cjs/appui-react/messages/MessageManager.js.map +1 -1
- package/lib/cjs/appui-react/messages/MessageSpan.js.map +1 -1
- package/lib/cjs/appui-react/messages/Pointer.js.map +1 -1
- package/lib/cjs/appui-react/messages/Pointer.scss +42 -42
- package/lib/cjs/appui-react/messages/ReactNotifyMessageDetails.js.map +1 -1
- package/lib/cjs/appui-react/messages/StatusMessageManager.js.map +1 -1
- package/lib/cjs/appui-react/messages/getToastCategory.js.map +1 -1
- package/lib/cjs/appui-react/navigationaids/CubeNavigationAidControl.js.map +1 -1
- package/lib/cjs/appui-react/navigationaids/DrawingNavigationAidControl.js.map +1 -1
- package/lib/cjs/appui-react/navigationaids/NavigationAidControl.js.map +1 -1
- package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.js.map +1 -1
- package/lib/cjs/appui-react/navigationaids/SheetNavigationAid.scss +67 -67
- package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.js.map +1 -1
- package/lib/cjs/appui-react/navigationaids/SheetsModalFrontstage.scss +72 -72
- package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
- package/lib/cjs/appui-react/navigationaids/StandardRotationNavigationAid.scss +13 -13
- package/lib/cjs/appui-react/pickers/ListPicker.js.map +1 -1
- package/lib/cjs/appui-react/pickers/ListPicker.scss +305 -305
- package/lib/cjs/appui-react/pickers/ViewSelector.js +4 -4
- package/lib/cjs/appui-react/pickers/ViewSelector.js.map +1 -1
- package/lib/cjs/appui-react/popup/CardPopup.js.map +1 -1
- package/lib/cjs/appui-react/popup/CardPopup.scss +25 -25
- package/lib/cjs/appui-react/popup/HTMLElementPopup.js.map +1 -1
- package/lib/cjs/appui-react/popup/InputEditorPopup.js.map +1 -1
- package/lib/cjs/appui-react/popup/KeyinPalettePanel.js +1 -2
- package/lib/cjs/appui-react/popup/KeyinPalettePanel.js.map +1 -1
- package/lib/cjs/appui-react/popup/KeyinPalettePanel.scss +30 -30
- package/lib/cjs/appui-react/popup/KeyinPalettePopup.js.map +1 -1
- package/lib/cjs/appui-react/popup/PopupManager.js +1 -2
- package/lib/cjs/appui-react/popup/PopupManager.js.map +1 -1
- package/lib/cjs/appui-react/popup/PositionPopup.js.map +1 -1
- package/lib/cjs/appui-react/popup/PositionPopup.scss +28 -28
- package/lib/cjs/appui-react/popup/ToolSettingsPopup.js.map +1 -1
- package/lib/cjs/appui-react/popup/ToolbarPopup.js.map +1 -1
- package/lib/cjs/appui-react/redux/FrameworkState.js.map +1 -1
- package/lib/cjs/appui-react/redux/ReducerRegistry.js.map +1 -1
- package/lib/cjs/appui-react/redux/SessionState.js.map +1 -1
- package/lib/cjs/appui-react/redux/StateManager.js.map +1 -1
- package/lib/cjs/appui-react/redux/connectIModel.js.map +1 -1
- package/lib/cjs/appui-react/redux/redux-ts.js.map +1 -1
- package/lib/cjs/appui-react/safearea/SafeAreaContext.js.map +1 -1
- package/lib/cjs/appui-react/safearea/SafeAreaHelpers.js.map +1 -1
- package/lib/cjs/appui-react/safearea/SafeAreaInsets.js.map +1 -1
- package/lib/cjs/appui-react/selection/HideIsolateEmphasizeManager.js.map +1 -1
- package/lib/cjs/appui-react/selection/SelectionContextItemDef.js.map +1 -1
- package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js +1 -1
- package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
- package/lib/cjs/appui-react/settings/quantityformatting/QuantityFormat.scss +119 -119
- package/lib/cjs/appui-react/settings/quantityformatting/UnitSystemSelector.js.map +1 -1
- package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
- package/lib/cjs/appui-react/settings/ui/UiSettingsPage.scss +65 -65
- package/lib/cjs/appui-react/shared/ActionButtonItemDef.js.map +1 -1
- package/lib/cjs/appui-react/shared/AnyItemDef.js.map +1 -1
- package/lib/cjs/appui-react/shared/AnyToolbarItemDef.js.map +1 -1
- package/lib/cjs/appui-react/shared/CommandItemDef.js.map +1 -1
- package/lib/cjs/appui-react/shared/CustomItemDef.js.map +1 -1
- package/lib/cjs/appui-react/shared/CustomItemProps.js.map +1 -1
- package/lib/cjs/appui-react/shared/GroupItemProps.js.map +1 -1
- package/lib/cjs/appui-react/shared/ItemDefBase.js.map +1 -1
- package/lib/cjs/appui-react/shared/ItemMap.js.map +1 -1
- package/lib/cjs/appui-react/shared/ItemProps.js.map +1 -1
- package/lib/cjs/appui-react/shared/MenuItem.js.map +1 -1
- package/lib/cjs/appui-react/shared/SelectionScope.js.map +1 -1
- package/lib/cjs/appui-react/shared/ToolItemDef.js.map +1 -1
- package/lib/cjs/appui-react/stagepanels/StagePanelConfig.js.map +1 -1
- package/lib/cjs/appui-react/stagepanels/StagePanelDef.js +5 -7
- package/lib/cjs/appui-react/stagepanels/StagePanelDef.js.map +1 -1
- package/lib/cjs/appui-react/stagepanels/StagePanelLocation.js.map +1 -1
- package/lib/cjs/appui-react/stagepanels/StagePanelSection.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/Field.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/Field.scss +109 -109
- package/lib/cjs/appui-react/statusbar/Indicator.js +1 -2
- package/lib/cjs/appui-react/statusbar/Indicator.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/LabelIndicator.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/LabelIndicator.scss +43 -43
- package/lib/cjs/appui-react/statusbar/Overflow.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/Overflow.scss +27 -27
- package/lib/cjs/appui-react/statusbar/OverflowPanel.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/OverflowPanel.scss +22 -22
- package/lib/cjs/appui-react/statusbar/Popup.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/Separator.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/Separator.scss +12 -12
- package/lib/cjs/appui-react/statusbar/StatusBar.js +3 -5
- package/lib/cjs/appui-react/statusbar/StatusBar.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBar.scss +41 -41
- package/lib/cjs/appui-react/statusbar/StatusBarComposer.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBarItem.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBarItemUtilities.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBarItemsManager.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBarWidgetControl.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/dialog/Button.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/dialog/Dialog.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/dialog/TitleBar.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/useDefaultStatusBarItems.js.map +1 -1
- package/lib/cjs/appui-react/statusbar/useUiItemsProviderStatusBarItems.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/ActivityCenter.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/MessageCenter.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/SectionsField.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/SectionsField.scss +35 -35
- package/lib/cjs/appui-react/statusfields/SelectionInfo.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/SelectionInfo.scss +14 -14
- package/lib/cjs/appui-react/statusfields/SelectionScope.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/SelectionScope.scss +46 -46
- package/lib/cjs/appui-react/statusfields/SnapMode.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/ViewAttributes.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/ViewAttributes.scss +10 -10
- package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.scss +45 -45
- package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +1 -1
- package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +194 -194
- package/lib/cjs/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
- package/lib/cjs/appui-react/theme/ThemeManager.js +1 -2
- package/lib/cjs/appui-react/theme/ThemeManager.js.map +1 -1
- package/lib/cjs/appui-react/timeline/AnalysisAnimationProvider.js.map +1 -1
- package/lib/cjs/appui-react/timeline/ScheduleAnimationProvider.js.map +1 -1
- package/lib/cjs/appui-react/timeline/SolarTimelineDataProvider.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/DragInteraction.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/GroupItem.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/Toolbar.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/ToolbarComposer.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/ToolbarHelper.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/ToolbarItem.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/ToolbarItemUtilities.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/ToolbarItemsManager.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/ToolbarWithOverflow.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/toUIAToolbarItem.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/useDefaultToolbarItems.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
- package/lib/cjs/appui-react/tools/CoreToolDefinitions.js +7 -14
- package/lib/cjs/appui-react/tools/CoreToolDefinitions.js.map +1 -1
- package/lib/cjs/appui-react/tools/FrameworkToolAdmin.js.map +1 -1
- package/lib/cjs/appui-react/tools/KeyinPaletteTools.js.map +1 -1
- package/lib/cjs/appui-react/tools/OpenSettingsTool.js.map +1 -1
- package/lib/cjs/appui-react/tools/RestoreLayoutTool.js.map +1 -1
- package/lib/cjs/appui-react/tools/ToolSettingsTools.js.map +1 -1
- package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js +1 -2
- package/lib/cjs/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
- package/lib/cjs/appui-react/toolsettings/InternalToolSettingsManager.js.map +1 -1
- package/lib/cjs/appui-react/toolsettings/ToolInformation.js.map +1 -1
- package/lib/cjs/appui-react/toolsettings/ToolUiProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js +25 -18
- package/lib/cjs/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/BaseUiItemsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/ProviderItem.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +8 -10
- package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +1 -2
- package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js +8 -14
- package/lib/cjs/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/UiItemsProvider.js.map +1 -1
- package/lib/cjs/appui-react/ui-items-provider/isProviderItem.js.map +1 -1
- package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js +1 -1
- package/lib/cjs/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
- package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js +1 -1
- package/lib/cjs/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
- package/lib/cjs/appui-react/uiprovider/DefaultDialogGridContainer.js.map +1 -1
- package/lib/cjs/appui-react/uiprovider/DefaultDialogGridContainer.scss +212 -212
- package/lib/cjs/appui-react/uistate/AppUiSettings.js.map +1 -1
- package/lib/cjs/appui-react/uistate/useUiStateStorage.js.map +1 -1
- package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js +3 -3
- package/lib/cjs/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
- package/lib/cjs/appui-react/utils/PropsHelper.d.ts.map +1 -1
- package/lib/cjs/appui-react/utils/PropsHelper.js +2 -1
- package/lib/cjs/appui-react/utils/PropsHelper.js.map +1 -1
- package/lib/cjs/appui-react/utils/ToolbarButtonHelper.js.map +1 -1
- package/lib/cjs/appui-react/utils/ViewUtilities.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Content.js +7 -8
- package/lib/cjs/appui-react/widget-panels/Content.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/FloatingWidget.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Frontstage.js +30 -39
- package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Frontstage.scss +19 -19
- package/lib/cjs/appui-react/widget-panels/FrontstageContent.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/ModalFrontstageComposer.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/StatusBar.js +1 -1
- package/lib/cjs/appui-react/widget-panels/StatusBar.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/StatusBar.scss +10 -10
- package/lib/cjs/appui-react/widget-panels/Tab.js +1 -1
- package/lib/cjs/appui-react/widget-panels/Tab.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Tab.scss +14 -14
- package/lib/cjs/appui-react/widget-panels/ToolSettings.js +9 -17
- package/lib/cjs/appui-react/widget-panels/ToolSettings.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/ToolSettings.scss +41 -41
- package/lib/cjs/appui-react/widget-panels/Toolbars.js +2 -3
- package/lib/cjs/appui-react/widget-panels/Toolbars.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/Toolbars.scss +20 -20
- package/lib/cjs/appui-react/widget-panels/useTransientState.js.map +1 -1
- package/lib/cjs/appui-react/widget-panels/useWidgetDirection.js.map +1 -1
- package/lib/cjs/appui-react/widgets/BackstageAppButton.js.map +1 -1
- package/lib/cjs/appui-react/widgets/BasicNavigationWidget.js.map +1 -1
- package/lib/cjs/appui-react/widgets/BasicToolWidget.js.map +1 -1
- package/lib/cjs/appui-react/widgets/ContentToolWidgetComposer.js.map +1 -1
- package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js +2 -2
- package/lib/cjs/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
- package/lib/cjs/appui-react/widgets/StableWidgetDef.js.map +1 -1
- package/lib/cjs/appui-react/widgets/StatusBarWidgetComposerControl.js.map +1 -1
- package/lib/cjs/appui-react/widgets/ToolSettingsContent.js.map +1 -1
- package/lib/cjs/appui-react/widgets/ToolWidgetComposer.js.map +1 -1
- package/lib/cjs/appui-react/widgets/ViewToolWidgetComposer.js.map +1 -1
- package/lib/cjs/appui-react/widgets/Widget.js.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetConfig.js.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetControl.js.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetDef.js +1 -1
- package/lib/cjs/appui-react/widgets/WidgetDef.js.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetHost.js +2 -3
- package/lib/cjs/appui-react/widgets/WidgetHost.js.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetManager.js.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetState.js.map +1 -1
- package/lib/cjs/appui-react.js.map +1 -1
- package/lib/esm/appui-react/UiFramework.js +5 -9
- package/lib/esm/appui-react/UiFramework.js.map +1 -1
- package/lib/esm/appui-react/_variables.scss +11 -11
- package/lib/esm/appui-react/accudraw/AccuDrawCommandItems.js.map +1 -1
- package/lib/esm/appui-react/accudraw/AccuDrawDialog.js.map +1 -1
- package/lib/esm/appui-react/accudraw/AccuDrawDialog.scss +14 -14
- package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
- package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.scss +27 -27
- package/lib/esm/appui-react/accudraw/AccuDrawInputField.d.ts.map +1 -1
- package/lib/esm/appui-react/accudraw/AccuDrawInputField.js +4 -1
- package/lib/esm/appui-react/accudraw/AccuDrawInputField.js.map +1 -1
- package/lib/esm/appui-react/accudraw/AccuDrawInputField.scss +55 -55
- package/lib/esm/appui-react/accudraw/AccuDrawKeyboardShortcuts.js.map +1 -1
- package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.js.map +1 -1
- package/lib/esm/appui-react/accudraw/AccuDrawUiSettings.js.map +1 -1
- package/lib/esm/appui-react/accudraw/AccuDrawWidget.js.map +1 -1
- package/lib/esm/appui-react/accudraw/Calculator.js.map +1 -1
- package/lib/esm/appui-react/accudraw/Calculator.scss +84 -84
- package/lib/esm/appui-react/accudraw/CalculatorEngine.js.map +1 -1
- package/lib/esm/appui-react/accudraw/CalculatorPopup.js.map +1 -1
- package/lib/esm/appui-react/accudraw/FrameworkAccuDraw.js.map +1 -1
- package/lib/esm/appui-react/accudraw/MenuButton.js.map +1 -1
- package/lib/esm/appui-react/accudraw/MenuButton.scss +18 -18
- package/lib/esm/appui-react/accudraw/MenuButtonPopup.js.map +1 -1
- package/lib/esm/appui-react/accudraw/SquareButton.js.map +1 -1
- package/lib/esm/appui-react/accudraw/SquareButton.scss +29 -29
- package/lib/esm/appui-react/accudraw/backspace.svg +9 -9
- package/lib/esm/appui-react/accudraw/constraint-2d.svg +11 -11
- package/lib/esm/appui-react/accudraw/height-2.svg +10 -10
- package/lib/esm/appui-react/accudraw/height.svg +11 -11
- package/lib/esm/appui-react/backstage/BackstageComposer.js.map +1 -1
- package/lib/esm/appui-react/backstage/BackstageComposerItem.js +1 -2
- package/lib/esm/appui-react/backstage/BackstageComposerItem.js.map +1 -1
- package/lib/esm/appui-react/backstage/BackstageItem.js.map +1 -1
- package/lib/esm/appui-react/backstage/BackstageItemUtilities.js.map +1 -1
- package/lib/esm/appui-react/backstage/BackstageItemsManager.js.map +1 -1
- package/lib/esm/appui-react/backstage/BackstageManager.js.map +1 -1
- package/lib/esm/appui-react/backstage/InternalBackstageManager.js.map +1 -1
- package/lib/esm/appui-react/backstage/useDefaultBackstageItems.js.map +1 -1
- package/lib/esm/appui-react/backstage/useUiItemsProviderBackstageItems.js.map +1 -1
- package/lib/esm/appui-react/childwindow/CopyStyles.js.map +1 -1
- package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js +24 -25
- package/lib/esm/appui-react/childwindow/InternalChildWindowManager.js.map +1 -1
- package/lib/esm/appui-react/childwindow/InternalChildWindowManager.scss +14 -14
- package/lib/esm/appui-react/childwindow/PopoutWidget.js.map +1 -1
- package/lib/esm/appui-react/childwindow/PopoutWidget.scss +10 -10
- package/lib/esm/appui-react/configurableui/ActivityTracker.js.map +1 -1
- package/lib/esm/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
- package/lib/esm/appui-react/configurableui/ConfigurableUiControl.js.map +1 -1
- package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js +1 -1
- package/lib/esm/appui-react/configurableui/InternalConfigurableUiManager.js.map +1 -1
- package/lib/esm/appui-react/configurableui/TimeTracker.js +1 -2
- package/lib/esm/appui-react/configurableui/TimeTracker.js.map +1 -1
- package/lib/esm/appui-react/configurableui/configurableui.scss +74 -74
- package/lib/esm/appui-react/configurableui/state.js.map +1 -1
- package/lib/esm/appui-react/content/ContentControl.js.map +1 -1
- package/lib/esm/appui-react/content/ContentGroup.js.map +1 -1
- package/lib/esm/appui-react/content/ContentLayout.js +6 -11
- package/lib/esm/appui-react/content/ContentLayout.js.map +1 -1
- package/lib/esm/appui-react/content/ContentLayout.scss +99 -99
- package/lib/esm/appui-react/content/DefaultViewOverlay.js +3 -4
- package/lib/esm/appui-react/content/DefaultViewOverlay.js.map +1 -1
- package/lib/esm/appui-react/content/DefaultViewOverlay.scss +46 -46
- package/lib/esm/appui-react/content/FloatingViewportContent.js +1 -2
- package/lib/esm/appui-react/content/FloatingViewportContent.js.map +1 -1
- package/lib/esm/appui-react/content/IModelViewport.js +3 -6
- package/lib/esm/appui-react/content/IModelViewport.js.map +1 -1
- package/lib/esm/appui-react/content/InternalContentLayoutManager.js +1 -2
- package/lib/esm/appui-react/content/InternalContentLayoutManager.js.map +1 -1
- package/lib/esm/appui-react/content/InternalContentViewManager.js +1 -1
- package/lib/esm/appui-react/content/InternalContentViewManager.js.map +1 -1
- package/lib/esm/appui-react/content/StageContentLayout.js.map +1 -1
- package/lib/esm/appui-react/content/ViewStateHelper.js.map +1 -1
- package/lib/esm/appui-react/content/ViewportContentControl.js.map +1 -1
- package/lib/esm/appui-react/content/split-pane/Pane.js.map +1 -1
- package/lib/esm/appui-react/content/split-pane/Resizer.js.map +1 -1
- package/lib/esm/appui-react/content/split-pane/SplitPane.js +8 -12
- package/lib/esm/appui-react/content/split-pane/SplitPane.js.map +1 -1
- package/lib/esm/appui-react/cursor/CursorInformation.js.map +1 -1
- package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js +2 -3
- package/lib/esm/appui-react/cursor/cursormenu/CursorMenu.js.map +1 -1
- package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.js.map +1 -1
- package/lib/esm/appui-react/cursor/cursorpopup/CursorPopup.scss +34 -34
- package/lib/esm/appui-react/cursor/cursorpopup/CursorPopupManager.js.map +1 -1
- package/lib/esm/appui-react/cursor/cursorprompt/CursorPrompt.js.map +1 -1
- package/lib/esm/appui-react/cursor/cursorprompt/CursorPrompt.scss +30 -30
- package/lib/esm/appui-react/dialog/ContentDialog.js +3 -6
- package/lib/esm/appui-react/dialog/ContentDialog.js.map +1 -1
- package/lib/esm/appui-react/dialog/ContentDialog.scss +25 -25
- package/lib/esm/appui-react/dialog/ContentDialogManager.js.map +1 -1
- package/lib/esm/appui-react/dialog/DialogManagerBase.js +2 -3
- package/lib/esm/appui-react/dialog/DialogManagerBase.js.map +1 -1
- package/lib/esm/appui-react/dialog/InternalContentDialogManager.js.map +1 -1
- package/lib/esm/appui-react/dialog/InternalModalDialogManager.js.map +1 -1
- package/lib/esm/appui-react/dialog/InternalModelessDialogManager.js.map +1 -1
- package/lib/esm/appui-react/dialog/ModalDialogManager.js.map +1 -1
- package/lib/esm/appui-react/dialog/ModelessDialog.js.map +1 -1
- package/lib/esm/appui-react/dialog/ModelessDialogManager.js.map +1 -1
- package/lib/esm/appui-react/dialog/StandardMessageBox.js.map +1 -1
- package/lib/esm/appui-react/dialog/UiDataProvidedDialog.js.map +1 -1
- package/lib/esm/appui-react/feedback/ElementTooltip.js.map +1 -1
- package/lib/esm/appui-react/feedback/ValidationTextbox.js.map +1 -1
- package/lib/esm/appui-react/feedback/ValidationTextbox.scss +50 -50
- package/lib/esm/appui-react/framework/FrameworkBackstage.js.map +1 -1
- package/lib/esm/appui-react/framework/FrameworkChildWindows.js.map +1 -1
- package/lib/esm/appui-react/framework/FrameworkContent.js.map +1 -1
- package/lib/esm/appui-react/framework/FrameworkControls.js.map +1 -1
- package/lib/esm/appui-react/framework/FrameworkDialogs.js.map +1 -1
- package/lib/esm/appui-react/framework/FrameworkFrontstages.js.map +1 -1
- package/lib/esm/appui-react/framework/FrameworkKeyboardShortcuts.js.map +1 -1
- package/lib/esm/appui-react/framework/FrameworkToolSettings.js.map +1 -1
- package/lib/esm/appui-react/framework/FrameworkVisibility.js.map +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageConfig.js.map +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageDef.js +3 -4
- package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageProvider.js.map +1 -1
- package/lib/esm/appui-react/frontstage/InternalFrontstageManager.js.map +1 -1
- package/lib/esm/appui-react/frontstage/ModalFrontstage.js.map +1 -1
- package/lib/esm/appui-react/frontstage/ModalFrontstage.scss +80 -80
- package/lib/esm/appui-react/frontstage/ModalSettingsStage.js +2 -3
- package/lib/esm/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
- package/lib/esm/appui-react/frontstage/ModalSettingsStage.scss +11 -11
- package/lib/esm/appui-react/frontstage/NestedFrontstage.js.map +1 -1
- package/lib/esm/appui-react/frontstage/StageUsage.js.map +1 -1
- package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js +1 -2
- package/lib/esm/appui-react/frontstage/StandardFrontstageProvider.js.map +1 -1
- package/lib/esm/appui-react/hooks/useActiveIModelConnection.js.map +1 -1
- package/lib/esm/appui-react/hooks/useActiveStageId.js.map +1 -1
- package/lib/esm/appui-react/hooks/useActiveViewport.js.map +1 -1
- package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js +7 -11
- package/lib/esm/appui-react/hooks/useAnalysisAnimationDataProvider.js.map +1 -1
- package/lib/esm/appui-react/hooks/useAvailableUiItemsProviders.js.map +1 -1
- package/lib/esm/appui-react/hooks/useEscapeSetFocusToHome.js.map +1 -1
- package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js +7 -11
- package/lib/esm/appui-react/hooks/useScheduleAnimationDataProvider.js.map +1 -1
- package/lib/esm/appui-react/hooks/useSolarDataProvider.js +8 -13
- package/lib/esm/appui-react/hooks/useSolarDataProvider.js.map +1 -1
- package/lib/esm/appui-react/hooks/useUiVisibility.js.map +1 -1
- package/lib/esm/appui-react/keyboardshortcut/InternalKeyboardShortcut.js.map +1 -1
- package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcut.js.map +1 -1
- package/lib/esm/appui-react/keyboardshortcut/KeyboardShortcutMenu.js.map +1 -1
- package/lib/esm/appui-react/messages/ActivityMessage.js +5 -7
- package/lib/esm/appui-react/messages/ActivityMessage.js.map +1 -1
- package/lib/esm/appui-react/messages/AppNotificationManager.js.map +1 -1
- package/lib/esm/appui-react/messages/HollowIcon.js.map +1 -1
- package/lib/esm/appui-react/messages/InputField.js.map +1 -1
- package/lib/esm/appui-react/messages/InputField.scss +82 -82
- package/lib/esm/appui-react/messages/MessageLabel.js.map +1 -1
- package/lib/esm/appui-react/messages/MessageManager.js.map +1 -1
- package/lib/esm/appui-react/messages/MessageSpan.js.map +1 -1
- package/lib/esm/appui-react/messages/Pointer.js.map +1 -1
- package/lib/esm/appui-react/messages/Pointer.scss +42 -42
- package/lib/esm/appui-react/messages/ReactNotifyMessageDetails.js.map +1 -1
- package/lib/esm/appui-react/messages/StatusMessageManager.js.map +1 -1
- package/lib/esm/appui-react/messages/getToastCategory.js.map +1 -1
- package/lib/esm/appui-react/navigationaids/CubeNavigationAidControl.js.map +1 -1
- package/lib/esm/appui-react/navigationaids/DrawingNavigationAidControl.js.map +1 -1
- package/lib/esm/appui-react/navigationaids/NavigationAidControl.js.map +1 -1
- package/lib/esm/appui-react/navigationaids/SheetNavigationAid.js.map +1 -1
- package/lib/esm/appui-react/navigationaids/SheetNavigationAid.scss +67 -67
- package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.js.map +1 -1
- package/lib/esm/appui-react/navigationaids/SheetsModalFrontstage.scss +72 -72
- package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.js.map +1 -1
- package/lib/esm/appui-react/navigationaids/StandardRotationNavigationAid.scss +13 -13
- package/lib/esm/appui-react/pickers/ListPicker.js.map +1 -1
- package/lib/esm/appui-react/pickers/ListPicker.scss +305 -305
- package/lib/esm/appui-react/pickers/ViewSelector.js +4 -4
- package/lib/esm/appui-react/pickers/ViewSelector.js.map +1 -1
- package/lib/esm/appui-react/popup/CardPopup.js.map +1 -1
- package/lib/esm/appui-react/popup/CardPopup.scss +25 -25
- package/lib/esm/appui-react/popup/HTMLElementPopup.js.map +1 -1
- package/lib/esm/appui-react/popup/InputEditorPopup.js.map +1 -1
- package/lib/esm/appui-react/popup/KeyinPalettePanel.js +1 -2
- package/lib/esm/appui-react/popup/KeyinPalettePanel.js.map +1 -1
- package/lib/esm/appui-react/popup/KeyinPalettePanel.scss +30 -30
- package/lib/esm/appui-react/popup/KeyinPalettePopup.js.map +1 -1
- package/lib/esm/appui-react/popup/PopupManager.js +1 -2
- package/lib/esm/appui-react/popup/PopupManager.js.map +1 -1
- package/lib/esm/appui-react/popup/PositionPopup.js.map +1 -1
- package/lib/esm/appui-react/popup/PositionPopup.scss +28 -28
- package/lib/esm/appui-react/popup/ToolSettingsPopup.js.map +1 -1
- package/lib/esm/appui-react/popup/ToolbarPopup.js.map +1 -1
- package/lib/esm/appui-react/redux/FrameworkState.js.map +1 -1
- package/lib/esm/appui-react/redux/ReducerRegistry.js.map +1 -1
- package/lib/esm/appui-react/redux/SessionState.js.map +1 -1
- package/lib/esm/appui-react/redux/StateManager.js.map +1 -1
- package/lib/esm/appui-react/redux/connectIModel.js.map +1 -1
- package/lib/esm/appui-react/redux/redux-ts.js.map +1 -1
- package/lib/esm/appui-react/safearea/SafeAreaContext.js.map +1 -1
- package/lib/esm/appui-react/safearea/SafeAreaHelpers.js.map +1 -1
- package/lib/esm/appui-react/safearea/SafeAreaInsets.js.map +1 -1
- package/lib/esm/appui-react/selection/HideIsolateEmphasizeManager.js.map +1 -1
- package/lib/esm/appui-react/selection/SelectionContextItemDef.js.map +1 -1
- package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js +1 -1
- package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.js.map +1 -1
- package/lib/esm/appui-react/settings/quantityformatting/QuantityFormat.scss +119 -119
- package/lib/esm/appui-react/settings/quantityformatting/UnitSystemSelector.js.map +1 -1
- package/lib/esm/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
- package/lib/esm/appui-react/settings/ui/UiSettingsPage.scss +65 -65
- package/lib/esm/appui-react/shared/ActionButtonItemDef.js.map +1 -1
- package/lib/esm/appui-react/shared/AnyItemDef.js.map +1 -1
- package/lib/esm/appui-react/shared/AnyToolbarItemDef.js.map +1 -1
- package/lib/esm/appui-react/shared/CommandItemDef.js.map +1 -1
- package/lib/esm/appui-react/shared/CustomItemDef.js.map +1 -1
- package/lib/esm/appui-react/shared/CustomItemProps.js.map +1 -1
- package/lib/esm/appui-react/shared/GroupItemProps.js.map +1 -1
- package/lib/esm/appui-react/shared/ItemDefBase.js.map +1 -1
- package/lib/esm/appui-react/shared/ItemMap.js.map +1 -1
- package/lib/esm/appui-react/shared/ItemProps.js.map +1 -1
- package/lib/esm/appui-react/shared/MenuItem.js.map +1 -1
- package/lib/esm/appui-react/shared/SelectionScope.js.map +1 -1
- package/lib/esm/appui-react/shared/ToolItemDef.js.map +1 -1
- package/lib/esm/appui-react/stagepanels/StagePanelConfig.js.map +1 -1
- package/lib/esm/appui-react/stagepanels/StagePanelDef.js +5 -7
- package/lib/esm/appui-react/stagepanels/StagePanelDef.js.map +1 -1
- package/lib/esm/appui-react/stagepanels/StagePanelLocation.js.map +1 -1
- package/lib/esm/appui-react/stagepanels/StagePanelSection.js.map +1 -1
- package/lib/esm/appui-react/statusbar/Field.js.map +1 -1
- package/lib/esm/appui-react/statusbar/Field.scss +109 -109
- package/lib/esm/appui-react/statusbar/Indicator.js +1 -2
- package/lib/esm/appui-react/statusbar/Indicator.js.map +1 -1
- package/lib/esm/appui-react/statusbar/LabelIndicator.js.map +1 -1
- package/lib/esm/appui-react/statusbar/LabelIndicator.scss +43 -43
- package/lib/esm/appui-react/statusbar/Overflow.js.map +1 -1
- package/lib/esm/appui-react/statusbar/Overflow.scss +27 -27
- package/lib/esm/appui-react/statusbar/OverflowPanel.js.map +1 -1
- package/lib/esm/appui-react/statusbar/OverflowPanel.scss +22 -22
- package/lib/esm/appui-react/statusbar/Popup.js.map +1 -1
- package/lib/esm/appui-react/statusbar/Separator.js.map +1 -1
- package/lib/esm/appui-react/statusbar/Separator.scss +12 -12
- package/lib/esm/appui-react/statusbar/StatusBar.js +3 -5
- package/lib/esm/appui-react/statusbar/StatusBar.js.map +1 -1
- package/lib/esm/appui-react/statusbar/StatusBar.scss +41 -41
- package/lib/esm/appui-react/statusbar/StatusBarComposer.js.map +1 -1
- package/lib/esm/appui-react/statusbar/StatusBarItem.js.map +1 -1
- package/lib/esm/appui-react/statusbar/StatusBarItemUtilities.js.map +1 -1
- package/lib/esm/appui-react/statusbar/StatusBarItemsManager.js.map +1 -1
- package/lib/esm/appui-react/statusbar/StatusBarWidgetControl.js.map +1 -1
- package/lib/esm/appui-react/statusbar/dialog/Button.js.map +1 -1
- package/lib/esm/appui-react/statusbar/dialog/Dialog.js.map +1 -1
- package/lib/esm/appui-react/statusbar/dialog/TitleBar.js.map +1 -1
- package/lib/esm/appui-react/statusbar/useDefaultStatusBarItems.js.map +1 -1
- package/lib/esm/appui-react/statusbar/useUiItemsProviderStatusBarItems.js.map +1 -1
- package/lib/esm/appui-react/statusfields/ActivityCenter.js.map +1 -1
- package/lib/esm/appui-react/statusfields/MessageCenter.js.map +1 -1
- package/lib/esm/appui-react/statusfields/SectionsField.js.map +1 -1
- package/lib/esm/appui-react/statusfields/SectionsField.scss +35 -35
- package/lib/esm/appui-react/statusfields/SelectionInfo.js.map +1 -1
- package/lib/esm/appui-react/statusfields/SelectionInfo.scss +14 -14
- package/lib/esm/appui-react/statusfields/SelectionScope.js.map +1 -1
- package/lib/esm/appui-react/statusfields/SelectionScope.scss +46 -46
- package/lib/esm/appui-react/statusfields/SnapMode.js.map +1 -1
- package/lib/esm/appui-react/statusfields/ViewAttributes.js.map +1 -1
- package/lib/esm/appui-react/statusfields/ViewAttributes.scss +10 -10
- package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.js.map +1 -1
- package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.scss +45 -45
- package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js +1 -1
- package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
- package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.scss +194 -194
- package/lib/esm/appui-react/syncui/SyncUiEventDispatcher.js.map +1 -1
- package/lib/esm/appui-react/theme/ThemeManager.js +1 -2
- package/lib/esm/appui-react/theme/ThemeManager.js.map +1 -1
- package/lib/esm/appui-react/timeline/AnalysisAnimationProvider.js.map +1 -1
- package/lib/esm/appui-react/timeline/ScheduleAnimationProvider.js.map +1 -1
- package/lib/esm/appui-react/timeline/SolarTimelineDataProvider.js.map +1 -1
- package/lib/esm/appui-react/toolbar/DragInteraction.js.map +1 -1
- package/lib/esm/appui-react/toolbar/GroupItem.js.map +1 -1
- package/lib/esm/appui-react/toolbar/Toolbar.js.map +1 -1
- package/lib/esm/appui-react/toolbar/ToolbarComposer.js.map +1 -1
- package/lib/esm/appui-react/toolbar/ToolbarHelper.js.map +1 -1
- package/lib/esm/appui-react/toolbar/ToolbarItem.js.map +1 -1
- package/lib/esm/appui-react/toolbar/ToolbarItemUtilities.js.map +1 -1
- package/lib/esm/appui-react/toolbar/ToolbarItemsManager.js.map +1 -1
- package/lib/esm/appui-react/toolbar/ToolbarWithOverflow.js.map +1 -1
- package/lib/esm/appui-react/toolbar/toUIAToolbarItem.js.map +1 -1
- package/lib/esm/appui-react/toolbar/useDefaultToolbarItems.js.map +1 -1
- package/lib/esm/appui-react/toolbar/useUiItemsProviderToolbarItems.js.map +1 -1
- package/lib/esm/appui-react/tools/CoreToolDefinitions.js +7 -14
- package/lib/esm/appui-react/tools/CoreToolDefinitions.js.map +1 -1
- package/lib/esm/appui-react/tools/FrameworkToolAdmin.js.map +1 -1
- package/lib/esm/appui-react/tools/KeyinPaletteTools.js.map +1 -1
- package/lib/esm/appui-react/tools/OpenSettingsTool.js.map +1 -1
- package/lib/esm/appui-react/tools/RestoreLayoutTool.js.map +1 -1
- package/lib/esm/appui-react/tools/ToolSettingsTools.js.map +1 -1
- package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js +1 -2
- package/lib/esm/appui-react/toolsettings/DefaultToolSettingsProvider.js.map +1 -1
- package/lib/esm/appui-react/toolsettings/InternalToolSettingsManager.js.map +1 -1
- package/lib/esm/appui-react/toolsettings/ToolInformation.js.map +1 -1
- package/lib/esm/appui-react/toolsettings/ToolUiProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.d.ts.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js +25 -18
- package/lib/esm/appui-react/ui-items-provider/AbstractUiItemsManager.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/BaseUiItemsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/ProviderItem.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +8 -10
- package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardNavigationToolsUiItemsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +1 -2
- package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js +8 -14
- package/lib/esm/appui-react/ui-items-provider/UiItemsManager.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/UiItemsProvider.js.map +1 -1
- package/lib/esm/appui-react/ui-items-provider/isProviderItem.js.map +1 -1
- package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js +1 -1
- package/lib/esm/appui-react/uiadmin/FrameworkUiAdmin.js.map +1 -1
- package/lib/esm/appui-react/uiprovider/ComponentGenerator.js +1 -1
- package/lib/esm/appui-react/uiprovider/ComponentGenerator.js.map +1 -1
- package/lib/esm/appui-react/uiprovider/DefaultDialogGridContainer.js.map +1 -1
- package/lib/esm/appui-react/uiprovider/DefaultDialogGridContainer.scss +212 -212
- package/lib/esm/appui-react/uistate/AppUiSettings.js.map +1 -1
- package/lib/esm/appui-react/uistate/useUiStateStorage.js.map +1 -1
- package/lib/esm/appui-react/utils/InternalUiShowHideManager.js +3 -3
- package/lib/esm/appui-react/utils/InternalUiShowHideManager.js.map +1 -1
- package/lib/esm/appui-react/utils/PropsHelper.d.ts.map +1 -1
- package/lib/esm/appui-react/utils/PropsHelper.js +2 -1
- package/lib/esm/appui-react/utils/PropsHelper.js.map +1 -1
- package/lib/esm/appui-react/utils/ToolbarButtonHelper.js.map +1 -1
- package/lib/esm/appui-react/utils/ViewUtilities.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/Content.js +7 -8
- package/lib/esm/appui-react/widget-panels/Content.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/FloatingWidget.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/Frontstage.js +30 -39
- package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/Frontstage.scss +19 -19
- package/lib/esm/appui-react/widget-panels/FrontstageContent.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/ModalFrontstageComposer.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/StatusBar.js +1 -1
- package/lib/esm/appui-react/widget-panels/StatusBar.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/StatusBar.scss +10 -10
- package/lib/esm/appui-react/widget-panels/Tab.js +1 -1
- package/lib/esm/appui-react/widget-panels/Tab.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/Tab.scss +14 -14
- package/lib/esm/appui-react/widget-panels/ToolSettings.js +9 -17
- package/lib/esm/appui-react/widget-panels/ToolSettings.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/ToolSettings.scss +41 -41
- package/lib/esm/appui-react/widget-panels/Toolbars.js +2 -3
- package/lib/esm/appui-react/widget-panels/Toolbars.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/Toolbars.scss +20 -20
- package/lib/esm/appui-react/widget-panels/useTransientState.js.map +1 -1
- package/lib/esm/appui-react/widget-panels/useWidgetDirection.js.map +1 -1
- package/lib/esm/appui-react/widgets/BackstageAppButton.js.map +1 -1
- package/lib/esm/appui-react/widgets/BasicNavigationWidget.js.map +1 -1
- package/lib/esm/appui-react/widgets/BasicToolWidget.js.map +1 -1
- package/lib/esm/appui-react/widgets/ContentToolWidgetComposer.js.map +1 -1
- package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js +2 -2
- package/lib/esm/appui-react/widgets/NavigationWidgetComposer.js.map +1 -1
- package/lib/esm/appui-react/widgets/StableWidgetDef.js.map +1 -1
- package/lib/esm/appui-react/widgets/StatusBarWidgetComposerControl.js.map +1 -1
- package/lib/esm/appui-react/widgets/ToolSettingsContent.js.map +1 -1
- package/lib/esm/appui-react/widgets/ToolWidgetComposer.js.map +1 -1
- package/lib/esm/appui-react/widgets/ViewToolWidgetComposer.js.map +1 -1
- package/lib/esm/appui-react/widgets/Widget.js.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetConfig.js.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetControl.js.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetDef.js +1 -1
- package/lib/esm/appui-react/widgets/WidgetDef.js.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetHost.js +2 -3
- package/lib/esm/appui-react/widgets/WidgetHost.js.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetManager.js.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetState.js.map +1 -1
- package/lib/esm/appui-react.js.map +1 -1
- package/lib/public/locales/en/UiFramework.json +331 -331
- package/package.json +16 -16
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccuDrawInputField.js","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/AccuDrawInputField.tsx"],"names":[],"mappings":"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","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 AccuDraw\r\n */\r\n\r\nimport \"./AccuDrawInputField.scss\";\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport { ItemField } from \"@itwin/core-frontend\";\r\nimport { CommonProps, Icon, IconSpec, useRefs } from \"@itwin/core-react\";\r\nimport { isLetter, SpecialKey } from \"@itwin/appui-abstract\";\r\nimport { Input } from \"@itwin/itwinui-react\";\r\nimport { AccuDrawSetFieldFocusEventArgs, AccuDrawSetFieldValueToUiEventArgs, FrameworkAccuDraw } from \"./FrameworkAccuDraw\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { SvgLock } from \"@itwin/itwinui-icons-react\";\r\n/** Properties for [[AccuDrawInputField]] component\r\n * @beta\r\n */\r\nexport interface AccuDrawInputFieldProps extends CommonProps {\r\n /** Which AccuDraw field this represents */\r\n field: ItemField;\r\n /** id for the input element */\r\n id: string;\r\n /** Indicates whether field is locked */\r\n isLocked?: boolean;\r\n /** label for the input element */\r\n label?: string;\r\n /** icon for the input element */\r\n iconSpec?: IconSpec;\r\n /** Custom CSS class name for the label */\r\n labelClassName?: string;\r\n /** Custom CSS Style for the label */\r\n labelStyle?: React.CSSProperties;\r\n /** Center justified label */\r\n labelCentered?: boolean;\r\n /** Triggered when the content is changed */\r\n onValueChanged: (stringValue: string) => void;\r\n /** Frequency to poll for changes in value, in milliseconds */\r\n valueChangedDelay?: number;\r\n /** Listens for <Enter> keypress */\r\n onEnterPressed?: () => void;\r\n /** Listens for <Esc> keypress */\r\n onEscPressed?: () => void;\r\n /** Provides ability to return reference to HTMLInputElement */\r\n ref?: React.Ref<HTMLInputElement>;\r\n}\r\n\r\nconst ForwardRefAccuDrawInput = React.forwardRef<HTMLInputElement, AccuDrawInputFieldProps>(\r\n function ForwardRefAccuDrawInputField(props: AccuDrawInputFieldProps, ref) {\r\n const { className, style, id, label, iconSpec, labelClassName, labelStyle, labelCentered, field, isLocked,\r\n onValueChanged, valueChangedDelay, onEnterPressed, onEscPressed, ...inputProps } = props;\r\n const [stringValue, setStringValue] = React.useState(\"\");\r\n const timeoutId = React.useRef(0);\r\n const [needValueChanged, setNeedValueChanged] = React.useState(false);\r\n const [needSelection, setNeedSelection] = React.useState(false);\r\n const [isFocusField, setIsFocusField] = React.useState(false);\r\n const inputElementRef = React.useRef<HTMLInputElement>(null);\r\n const refs = useRefs(inputElementRef, ref); // combine ref needed for target with the forwardRef needed by the Parent when parent is a Type Editor.\r\n\r\n React.useEffect(() => {\r\n const formattedValue = FrameworkAccuDraw.getFieldDisplayValue(field);\r\n setStringValue(formattedValue);\r\n }, [field]);\r\n\r\n const handleChange = React.useCallback((event: React.ChangeEvent<HTMLInputElement>): void => {\r\n const value = event.currentTarget.value;\r\n\r\n // istanbul ignore next\r\n if (value === undefined)\r\n return;\r\n\r\n // istanbul ignore else\r\n if (stringValue !== value) {\r\n setStringValue(value);\r\n setNeedValueChanged(true);\r\n }\r\n }, [stringValue]);\r\n\r\n const unsetTimeout = (): void => {\r\n // istanbul ignore else\r\n if (timeoutId) {\r\n window.clearTimeout(timeoutId.current);\r\n timeoutId.current = 0;\r\n }\r\n };\r\n\r\n React.useEffect(() => {\r\n // After setStringValue & re-render\r\n // istanbul ignore else\r\n if (needValueChanged) {\r\n if (valueChangedDelay) {\r\n unsetTimeout();\r\n timeoutId.current = window.setTimeout(() => {\r\n onValueChanged(stringValue);\r\n }, valueChangedDelay);\r\n } else {\r\n onValueChanged(stringValue);\r\n }\r\n setNeedValueChanged(false);\r\n }\r\n }, [onValueChanged, valueChangedDelay, stringValue, needValueChanged]);\r\n\r\n React.useEffect(() => {\r\n // On unmount\r\n return () => unsetTimeout();\r\n }, []);\r\n\r\n const handleKeyDown = React.useCallback((e: React.KeyboardEvent) => {\r\n switch (e.key) {\r\n case SpecialKey.Escape:\r\n onEscPressed && onEscPressed();\r\n return;\r\n case SpecialKey.Enter:\r\n onEnterPressed && onEnterPressed();\r\n return;\r\n }\r\n\r\n if (isLetter(e.key)) {\r\n e.preventDefault();\r\n UiFramework.keyboardShortcuts.processKey(e.key);\r\n return;\r\n }\r\n }, [onEscPressed, onEnterPressed]);\r\n\r\n React.useEffect(() => {\r\n const handleSetFieldValueToUi = (args: AccuDrawSetFieldValueToUiEventArgs) => {\r\n if (args.field === field && stringValue !== args.formattedValue) {\r\n setStringValue(args.formattedValue);\r\n // istanbul ignore else\r\n if (isFocusField)\r\n setNeedSelection(true);\r\n }\r\n };\r\n return FrameworkAccuDraw.onAccuDrawSetFieldValueToUiEvent.addListener(handleSetFieldValueToUi);\r\n }, [field, isFocusField, stringValue]);\r\n\r\n React.useEffect(() => {\r\n if (needSelection) {\r\n // istanbul ignore else\r\n if (inputElementRef.current)\r\n inputElementRef.current.select();\r\n setNeedSelection(false);\r\n }\r\n }, [needSelection]);\r\n\r\n React.useEffect(() => {\r\n const handleSetFieldFocus = (args: AccuDrawSetFieldFocusEventArgs) => {\r\n setIsFocusField(args.field === field);\r\n };\r\n return FrameworkAccuDraw.onAccuDrawSetFieldFocusEvent.addListener(handleSetFieldFocus);\r\n }, [field]);\r\n\r\n const inputClassNames = classnames(\"uifw-accudraw-input-field\", className);\r\n const labelClassNames = classnames(\"uifw-accudraw-input-label\",\r\n labelCentered && \"uifw-label-centered\",\r\n labelClassName\r\n );\r\n\r\n return (\r\n <>\r\n <label htmlFor={id} className={labelClassNames} style={labelStyle}>\r\n {label}\r\n {iconSpec && <Icon iconSpec={iconSpec} />}\r\n </label>\r\n <Input {...inputProps} ref={refs} id={id} value={stringValue}\r\n className={inputClassNames} style={style} autoComplete=\"off\"\r\n onChange={handleChange} onKeyDown={handleKeyDown} size=\"small\" />\r\n <span className=\"uifw-accudraw-lock\" >\r\n {isLocked && <Icon iconSpec={<SvgLock />} />}\r\n </span>\r\n </>\r\n );\r\n }\r\n);\r\n\r\n/** Input field for AccuDraw Ui\r\n * @beta\r\n */\r\nexport const AccuDrawInputField: (props: AccuDrawInputFieldProps) => JSX.Element | null = ForwardRefAccuDrawInput;\r\n"]}
|
|
1
|
+
{"version":3,"file":"AccuDrawInputField.js","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/AccuDrawInputField.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,2BAA2B,CAAC;AACnC,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAe,IAAI,EAAY,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAsE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC5H,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAErD,SAAS,QAAQ,CAAC,IAAY;IAC5B,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;AACxE,CAAC;AAkCD,MAAM,uBAAuB,GAAG,KAAK,CAAC,UAAU,CAC9C,SAAS,4BAA4B,CAAC,KAA8B,EAAE,GAAG;IACvE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EACvG,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,YAAY,EAAE,GAAG,UAAU,EAAE,GAAG,KAAK,CAAC;IAC3F,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACzD,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9D,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAmB,IAAI,CAAC,CAAC;IAC7D,MAAM,IAAI,GAAG,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,CAAE,uGAAuG;IAEpJ,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,cAAc,GAAG,iBAAiB,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACrE,cAAc,CAAC,cAAc,CAAC,CAAC;IACjC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,KAA0C,EAAQ,EAAE;QAC1F,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC;QAExC,uBAAuB;QACvB,IAAI,KAAK,KAAK,SAAS;YACrB,OAAO;QAET,uBAAuB;QACvB,IAAI,WAAW,KAAK,KAAK,EAAE;YACzB,cAAc,CAAC,KAAK,CAAC,CAAC;YACtB,mBAAmB,CAAC,IAAI,CAAC,CAAC;SAC3B;IACH,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,MAAM,YAAY,GAAG,GAAS,EAAE;QAC9B,uBAAuB;QACvB,IAAI,SAAS,EAAE;YACb,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACvC,SAAS,CAAC,OAAO,GAAG,CAAC,CAAC;SACvB;IACH,CAAC,CAAC;IAEF,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,mCAAmC;QACnC,uBAAuB;QACvB,IAAI,gBAAgB,EAAE;YACpB,IAAI,iBAAiB,EAAE;gBACrB,YAAY,EAAE,CAAC;gBACf,SAAS,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;oBACzC,cAAc,CAAC,WAAW,CAAC,CAAC;gBAC9B,CAAC,EAAE,iBAAiB,CAAC,CAAC;aACvB;iBAAM;gBACL,cAAc,CAAC,WAAW,CAAC,CAAC;aAC7B;YACD,mBAAmB,CAAC,KAAK,CAAC,CAAC;SAC5B;IACH,CAAC,EAAE,CAAC,cAAc,EAAE,iBAAiB,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAEvE,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,aAAa;QACb,OAAO,GAAG,EAAE,CAAC,YAAY,EAAE,CAAC;IAC9B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAsB,EAAE,EAAE;QACjE,QAAQ,CAAC,CAAC,GAAG,EAAE;YACb,KAAK,UAAU,CAAC,MAAM;gBACpB,YAAY,IAAI,YAAY,EAAE,CAAC;gBAC/B,OAAO;YACT,KAAK,UAAU,CAAC,KAAK;gBACnB,cAAc,IAAI,cAAc,EAAE,CAAC;gBACnC,OAAO;SACV;QAED,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;YACnB,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,WAAW,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAChD,OAAO;SACR;IACH,CAAC,EAAE,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC,CAAC;IAEnC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,uBAAuB,GAAG,CAAC,IAAwC,EAAE,EAAE;YAC3E,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,IAAI,WAAW,KAAK,IAAI,CAAC,cAAc,EAAE;gBAC/D,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBACpC,uBAAuB;gBACvB,IAAI,YAAY;oBACd,gBAAgB,CAAC,IAAI,CAAC,CAAC;aAC1B;QACH,CAAC,CAAC;QACF,OAAO,iBAAiB,CAAC,gCAAgC,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC;IACjG,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC;IAEvC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,aAAa,EAAE;YACjB,uBAAuB;YACvB,IAAI,eAAe,CAAC,OAAO;gBACzB,eAAe,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACnC,gBAAgB,CAAC,KAAK,CAAC,CAAC;SACzB;IACH,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,mBAAmB,GAAG,CAAC,IAAoC,EAAE,EAAE;YACnE,eAAe,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;QACxC,CAAC,CAAC;QACF,OAAO,iBAAiB,CAAC,4BAA4B,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;IACzF,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,MAAM,eAAe,GAAG,UAAU,CAAC,2BAA2B,EAAE,SAAS,CAAC,CAAC;IAC3E,MAAM,eAAe,GAAG,UAAU,CAAC,2BAA2B,EAC5D,aAAa,IAAI,qBAAqB,EACtC,cAAc,CACf,CAAC;IAEF,OAAO,CACL;QACE,+BAAO,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU;YAC9D,KAAK;YACL,QAAQ,IAAI,oBAAC,IAAI,IAAC,QAAQ,EAAE,QAAQ,GAAI,CACnC;QACR,oBAAC,KAAK,OAAK,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,WAAW,EAC1D,SAAS,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAC,KAAK,EAC5D,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,EAAC,OAAO,GAAG;QACnE,8BAAM,SAAS,EAAC,oBAAoB,IACjC,QAAQ,IAAI,oBAAC,IAAI,IAAC,QAAQ,EAAE,oBAAC,OAAO,OAAG,GAAI,CACvC,CACN,CACJ,CAAC;AACJ,CAAC,CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAA2D,uBAAuB,CAAC","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 AccuDraw\n */\n\nimport \"./AccuDrawInputField.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { ItemField } from \"@itwin/core-frontend\";\nimport { CommonProps, Icon, IconSpec, useRefs } from \"@itwin/core-react\";\nimport { SpecialKey } from \"@itwin/appui-abstract\";\nimport { Input } from \"@itwin/itwinui-react\";\nimport { AccuDrawSetFieldFocusEventArgs, AccuDrawSetFieldValueToUiEventArgs, FrameworkAccuDraw } from \"./FrameworkAccuDraw\";\nimport { UiFramework } from \"../UiFramework\";\nimport { SvgLock } from \"@itwin/itwinui-icons-react\";\n\nfunction isLetter(char: string): boolean {\n return char.length === 1 && char.toLowerCase() !== char.toUpperCase();\n}\n\n/** Properties for [[AccuDrawInputField]] component\n * @beta\n */\nexport interface AccuDrawInputFieldProps extends CommonProps {\n /** Which AccuDraw field this represents */\n field: ItemField;\n /** id for the input element */\n id: string;\n /** Indicates whether field is locked */\n isLocked?: boolean;\n /** label for the input element */\n label?: string;\n /** icon for the input element */\n iconSpec?: IconSpec;\n /** Custom CSS class name for the label */\n labelClassName?: string;\n /** Custom CSS Style for the label */\n labelStyle?: React.CSSProperties;\n /** Center justified label */\n labelCentered?: boolean;\n /** Triggered when the content is changed */\n onValueChanged: (stringValue: string) => void;\n /** Frequency to poll for changes in value, in milliseconds */\n valueChangedDelay?: number;\n /** Listens for <Enter> keypress */\n onEnterPressed?: () => void;\n /** Listens for <Esc> keypress */\n onEscPressed?: () => void;\n /** Provides ability to return reference to HTMLInputElement */\n ref?: React.Ref<HTMLInputElement>;\n}\n\nconst ForwardRefAccuDrawInput = React.forwardRef<HTMLInputElement, AccuDrawInputFieldProps>(\n function ForwardRefAccuDrawInputField(props: AccuDrawInputFieldProps, ref) {\n const { className, style, id, label, iconSpec, labelClassName, labelStyle, labelCentered, field, isLocked,\n onValueChanged, valueChangedDelay, onEnterPressed, onEscPressed, ...inputProps } = props;\n const [stringValue, setStringValue] = React.useState(\"\");\n const timeoutId = React.useRef(0);\n const [needValueChanged, setNeedValueChanged] = React.useState(false);\n const [needSelection, setNeedSelection] = React.useState(false);\n const [isFocusField, setIsFocusField] = React.useState(false);\n const inputElementRef = React.useRef<HTMLInputElement>(null);\n const refs = useRefs(inputElementRef, ref); // combine ref needed for target with the forwardRef needed by the Parent when parent is a Type Editor.\n\n React.useEffect(() => {\n const formattedValue = FrameworkAccuDraw.getFieldDisplayValue(field);\n setStringValue(formattedValue);\n }, [field]);\n\n const handleChange = React.useCallback((event: React.ChangeEvent<HTMLInputElement>): void => {\n const value = event.currentTarget.value;\n\n // istanbul ignore next\n if (value === undefined)\n return;\n\n // istanbul ignore else\n if (stringValue !== value) {\n setStringValue(value);\n setNeedValueChanged(true);\n }\n }, [stringValue]);\n\n const unsetTimeout = (): void => {\n // istanbul ignore else\n if (timeoutId) {\n window.clearTimeout(timeoutId.current);\n timeoutId.current = 0;\n }\n };\n\n React.useEffect(() => {\n // After setStringValue & re-render\n // istanbul ignore else\n if (needValueChanged) {\n if (valueChangedDelay) {\n unsetTimeout();\n timeoutId.current = window.setTimeout(() => {\n onValueChanged(stringValue);\n }, valueChangedDelay);\n } else {\n onValueChanged(stringValue);\n }\n setNeedValueChanged(false);\n }\n }, [onValueChanged, valueChangedDelay, stringValue, needValueChanged]);\n\n React.useEffect(() => {\n // On unmount\n return () => unsetTimeout();\n }, []);\n\n const handleKeyDown = React.useCallback((e: React.KeyboardEvent) => {\n switch (e.key) {\n case SpecialKey.Escape:\n onEscPressed && onEscPressed();\n return;\n case SpecialKey.Enter:\n onEnterPressed && onEnterPressed();\n return;\n }\n\n if (isLetter(e.key)) {\n e.preventDefault();\n UiFramework.keyboardShortcuts.processKey(e.key);\n return;\n }\n }, [onEscPressed, onEnterPressed]);\n\n React.useEffect(() => {\n const handleSetFieldValueToUi = (args: AccuDrawSetFieldValueToUiEventArgs) => {\n if (args.field === field && stringValue !== args.formattedValue) {\n setStringValue(args.formattedValue);\n // istanbul ignore else\n if (isFocusField)\n setNeedSelection(true);\n }\n };\n return FrameworkAccuDraw.onAccuDrawSetFieldValueToUiEvent.addListener(handleSetFieldValueToUi);\n }, [field, isFocusField, stringValue]);\n\n React.useEffect(() => {\n if (needSelection) {\n // istanbul ignore else\n if (inputElementRef.current)\n inputElementRef.current.select();\n setNeedSelection(false);\n }\n }, [needSelection]);\n\n React.useEffect(() => {\n const handleSetFieldFocus = (args: AccuDrawSetFieldFocusEventArgs) => {\n setIsFocusField(args.field === field);\n };\n return FrameworkAccuDraw.onAccuDrawSetFieldFocusEvent.addListener(handleSetFieldFocus);\n }, [field]);\n\n const inputClassNames = classnames(\"uifw-accudraw-input-field\", className);\n const labelClassNames = classnames(\"uifw-accudraw-input-label\",\n labelCentered && \"uifw-label-centered\",\n labelClassName\n );\n\n return (\n <>\n <label htmlFor={id} className={labelClassNames} style={labelStyle}>\n {label}\n {iconSpec && <Icon iconSpec={iconSpec} />}\n </label>\n <Input {...inputProps} ref={refs} id={id} value={stringValue}\n className={inputClassNames} style={style} autoComplete=\"off\"\n onChange={handleChange} onKeyDown={handleKeyDown} size=\"small\" />\n <span className=\"uifw-accudraw-lock\" >\n {isLocked && <Icon iconSpec={<SvgLock />} />}\n </span>\n </>\n );\n }\n);\n\n/** Input field for AccuDraw Ui\n * @beta\n */\nexport const AccuDrawInputField: (props: AccuDrawInputFieldProps) => JSX.Element | null = ForwardRefAccuDrawInput;\n"]}
|
|
@@ -1,55 +1,55 @@
|
|
|
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/base/base";
|
|
6
|
-
@import "~@itwin/core-react/lib/cjs/core-react/style/themecolors";
|
|
7
|
-
|
|
8
|
-
.uifw-accudraw-input-label {
|
|
9
|
-
min-width: 16px;
|
|
10
|
-
margin-right: 4px;
|
|
11
|
-
|
|
12
|
-
display: flex;
|
|
13
|
-
align-items: center;
|
|
14
|
-
|
|
15
|
-
font-size: var(--iui-font-size-2);
|
|
16
|
-
font-weight: var(--iui-font-weight-bold);
|
|
17
|
-
line-height: var(--iui-size-l);
|
|
18
|
-
color: var(--iui-color-text);
|
|
19
|
-
|
|
20
|
-
&.uifw-label-centered {
|
|
21
|
-
justify-content: center;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
.icon {
|
|
25
|
-
width: 16px;
|
|
26
|
-
height: 16px;
|
|
27
|
-
|
|
28
|
-
margin-top: 2px;
|
|
29
|
-
@include uicore-centered;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
.uifw-accudraw-input-field {
|
|
34
|
-
flex: 1;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
.uifw-accudraw-lock {
|
|
38
|
-
width: 22px;
|
|
39
|
-
@include uicore-centered;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
.uifw-accudraw-x-value {
|
|
43
|
-
background-color: $buic-accessory-alert;
|
|
44
|
-
color: var(--iui-color-white);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
.uifw-accudraw-y-value {
|
|
48
|
-
background-color: $buic-accessory-success;
|
|
49
|
-
color: var(--iui-color-white);
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
.uifw-accudraw-z-value {
|
|
53
|
-
background-color: $buic-accessory-primary;
|
|
54
|
-
color: var(--iui-color-white);
|
|
55
|
-
}
|
|
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/base/base";
|
|
6
|
+
@import "~@itwin/core-react/lib/cjs/core-react/style/themecolors";
|
|
7
|
+
|
|
8
|
+
.uifw-accudraw-input-label {
|
|
9
|
+
min-width: 16px;
|
|
10
|
+
margin-right: 4px;
|
|
11
|
+
|
|
12
|
+
display: flex;
|
|
13
|
+
align-items: center;
|
|
14
|
+
|
|
15
|
+
font-size: var(--iui-font-size-2);
|
|
16
|
+
font-weight: var(--iui-font-weight-bold);
|
|
17
|
+
line-height: var(--iui-size-l);
|
|
18
|
+
color: var(--iui-color-text);
|
|
19
|
+
|
|
20
|
+
&.uifw-label-centered {
|
|
21
|
+
justify-content: center;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.icon {
|
|
25
|
+
width: 16px;
|
|
26
|
+
height: 16px;
|
|
27
|
+
|
|
28
|
+
margin-top: 2px;
|
|
29
|
+
@include uicore-centered;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.uifw-accudraw-input-field {
|
|
34
|
+
flex: 1;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.uifw-accudraw-lock {
|
|
38
|
+
width: 22px;
|
|
39
|
+
@include uicore-centered;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.uifw-accudraw-x-value {
|
|
43
|
+
background-color: $buic-accessory-alert;
|
|
44
|
+
color: var(--iui-color-white);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.uifw-accudraw-y-value {
|
|
48
|
+
background-color: $buic-accessory-success;
|
|
49
|
+
color: var(--iui-color-white);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.uifw-accudraw-z-value {
|
|
53
|
+
background-color: $buic-accessory-primary;
|
|
54
|
+
color: var(--iui-color-white);
|
|
55
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccuDrawKeyboardShortcuts.js","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/AccuDrawKeyboardShortcuts.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAGH,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD;;GAEG;AACH,MAAM,OAAO,yBAAyB;IACpC;OACG;IACI,MAAM,CAAC,mBAAmB;QAC/B,MAAM,oBAAoB,GAA4B;YACpD;gBACE,GAAG,EAAE,GAAG;gBACR,QAAQ,EAAE,8BAA8B;gBACxC,SAAS,EAAE;oBACT;wBACE,GAAG,EAAE,GAAG;wBACR,IAAI,EAAE,oBAAoB,CAAC,SAAS;qBACrC;oBACD;wBACE,GAAG,EAAE,GAAG;wBACR,IAAI,EAAE,oBAAoB,CAAC,SAAS;qBACrC;oBACD;wBACE,GAAG,EAAE,GAAG;wBACR,IAAI,EAAE,oBAAoB,CAAC,iBAAiB;qBAC7C;oBACD;wBACE,GAAG,EAAE,GAAG;wBACR,IAAI,EAAE,oBAAoB,CAAC,KAAK;wBAChC,QAAQ,EAAE,iBAAiB,CAAC,sBAAsB;qBACnD;oBACD;wBACE,GAAG,EAAE,GAAG;wBACR,IAAI,EAAE,oBAAoB,CAAC,KAAK;wBAChC,QAAQ,EAAE,iBAAiB,CAAC,sBAAsB;qBACnD;oBACD;wBACE,GAAG,EAAE,GAAG;wBACR,IAAI,EAAE,oBAAoB,CAAC,KAAK;wBAChC,QAAQ,EAAE,iBAAiB,CAAC,sBAAsB;qBACnD;oBACD;wBACE,GAAG,EAAE,GAAG;wBACR,IAAI,EAAE,oBAAoB,CAAC,SAAS;wBACpC,QAAQ,EAAE,iBAAiB,CAAC,4BAA4B;qBACzD;oBACD;wBACE,GAAG,EAAE,GAAG;wBACR,IAAI,EAAE,oBAAoB,CAAC,YAAY;wBACvC,QAAQ,EAAE,iBAAiB,CAAC,4BAA4B;qBACzD;oBACD;wBACE,GAAG,EAAE,GAAG;wBACR,IAAI,EAAE,oBAAoB,CAAC,eAAe;qBAC3C;iBACF;aACF;YACD;gBACE,GAAG,EAAE,GAAG;gBACR,QAAQ,EAAE,oCAAoC;gBAC9C,SAAS,EAAE;oBACT;wBACE,GAAG,EAAE,GAAG;wBACR,IAAI,EAAE,oBAAoB,CAAC,SAAS;wBACpC,UAAU,EAAE,iBAAiB,CAAC,wBAAwB;qBACvD;oBACD;wBACE,GAAG,EAAE,GAAG;wBACR,IAAI,EAAE,oBAAoB,CAAC,UAAU;wBACrC,UAAU,EAAE,iBAAiB,CAAC,yBAAyB;qBACxD;oBACD;wBACE,GAAG,EAAE,GAAG;wBACR,IAAI,EAAE,oBAAoB,CAAC,WAAW;wBACtC,UAAU,EAAE,iBAAiB,CAAC,0BAA0B;qBACzD;oBACD;wBACE,GAAG,EAAE,GAAG;wBACR,IAAI,EAAE,oBAAoB,CAAC,UAAU;wBACrC,UAAU,EAAE,iBAAiB,CAAC,yBAAyB;qBACxD;oBACD;wBACE,GAAG,EAAE,GAAG;wBACR,IAAI,EAAE,oBAAoB,CAAC,WAAW;qBACvC;oBACD;wBACE,GAAG,EAAE,GAAG;wBACR,IAAI,EAAE,oBAAoB,CAAC,UAAU;qBACtC;oBACD;wBACE,GAAG,EAAE,GAAG;wBACR,IAAI,EAAE,oBAAoB,CAAC,eAAe;qBAC3C;iBACF;aACF;SACF,CAAC;QAEF,OAAO,oBAAoB,CAAC;IAC9B,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\
|
|
1
|
+
{"version":3,"file":"AccuDrawKeyboardShortcuts.js","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/AccuDrawKeyboardShortcuts.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAGH,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD;;GAEG;AACH,MAAM,OAAO,yBAAyB;IACpC;OACG;IACI,MAAM,CAAC,mBAAmB;QAC/B,MAAM,oBAAoB,GAA4B;YACpD;gBACE,GAAG,EAAE,GAAG;gBACR,QAAQ,EAAE,8BAA8B;gBACxC,SAAS,EAAE;oBACT;wBACE,GAAG,EAAE,GAAG;wBACR,IAAI,EAAE,oBAAoB,CAAC,SAAS;qBACrC;oBACD;wBACE,GAAG,EAAE,GAAG;wBACR,IAAI,EAAE,oBAAoB,CAAC,SAAS;qBACrC;oBACD;wBACE,GAAG,EAAE,GAAG;wBACR,IAAI,EAAE,oBAAoB,CAAC,iBAAiB;qBAC7C;oBACD;wBACE,GAAG,EAAE,GAAG;wBACR,IAAI,EAAE,oBAAoB,CAAC,KAAK;wBAChC,QAAQ,EAAE,iBAAiB,CAAC,sBAAsB;qBACnD;oBACD;wBACE,GAAG,EAAE,GAAG;wBACR,IAAI,EAAE,oBAAoB,CAAC,KAAK;wBAChC,QAAQ,EAAE,iBAAiB,CAAC,sBAAsB;qBACnD;oBACD;wBACE,GAAG,EAAE,GAAG;wBACR,IAAI,EAAE,oBAAoB,CAAC,KAAK;wBAChC,QAAQ,EAAE,iBAAiB,CAAC,sBAAsB;qBACnD;oBACD;wBACE,GAAG,EAAE,GAAG;wBACR,IAAI,EAAE,oBAAoB,CAAC,SAAS;wBACpC,QAAQ,EAAE,iBAAiB,CAAC,4BAA4B;qBACzD;oBACD;wBACE,GAAG,EAAE,GAAG;wBACR,IAAI,EAAE,oBAAoB,CAAC,YAAY;wBACvC,QAAQ,EAAE,iBAAiB,CAAC,4BAA4B;qBACzD;oBACD;wBACE,GAAG,EAAE,GAAG;wBACR,IAAI,EAAE,oBAAoB,CAAC,eAAe;qBAC3C;iBACF;aACF;YACD;gBACE,GAAG,EAAE,GAAG;gBACR,QAAQ,EAAE,oCAAoC;gBAC9C,SAAS,EAAE;oBACT;wBACE,GAAG,EAAE,GAAG;wBACR,IAAI,EAAE,oBAAoB,CAAC,SAAS;wBACpC,UAAU,EAAE,iBAAiB,CAAC,wBAAwB;qBACvD;oBACD;wBACE,GAAG,EAAE,GAAG;wBACR,IAAI,EAAE,oBAAoB,CAAC,UAAU;wBACrC,UAAU,EAAE,iBAAiB,CAAC,yBAAyB;qBACxD;oBACD;wBACE,GAAG,EAAE,GAAG;wBACR,IAAI,EAAE,oBAAoB,CAAC,WAAW;wBACtC,UAAU,EAAE,iBAAiB,CAAC,0BAA0B;qBACzD;oBACD;wBACE,GAAG,EAAE,GAAG;wBACR,IAAI,EAAE,oBAAoB,CAAC,UAAU;wBACrC,UAAU,EAAE,iBAAiB,CAAC,yBAAyB;qBACxD;oBACD;wBACE,GAAG,EAAE,GAAG;wBACR,IAAI,EAAE,oBAAoB,CAAC,WAAW;qBACvC;oBACD;wBACE,GAAG,EAAE,GAAG;wBACR,IAAI,EAAE,oBAAoB,CAAC,UAAU;qBACtC;oBACD;wBACE,GAAG,EAAE,GAAG;wBACR,IAAI,EAAE,oBAAoB,CAAC,eAAe;qBAC3C;iBACF;aACF;SACF,CAAC;QAEF,OAAO,oBAAoB,CAAC;IAC9B,CAAC;CACF","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 AccuDraw\n */\n\nimport { KeyboardShortcutProps } from \"../framework/FrameworkKeyboardShortcuts\";\nimport { AccuDrawCommandItems } from \"./AccuDrawCommandItems\";\nimport { FrameworkAccuDraw } from \"./FrameworkAccuDraw\";\n\n/** Default AccuDraw Keyboard Shortcuts\n * @beta\n */\nexport class AccuDrawKeyboardShortcuts {\n /** Get default AccuDraw Keyboard Shortcuts list.\n */\n public static getDefaultShortcuts(): KeyboardShortcutProps[] {\n const keyboardShortcutList: KeyboardShortcutProps[] = [\n {\n key: \"a\",\n labelKey: \"UiFramework:accuDraw.subMenu\",\n shortcuts: [\n {\n key: \"s\",\n item: AccuDrawCommandItems.lockSmart,\n },\n {\n key: \"r\",\n item: AccuDrawCommandItems.setOrigin,\n },\n {\n key: \"t\",\n item: AccuDrawCommandItems.changeCompassMode,\n },\n {\n key: \"x\",\n item: AccuDrawCommandItems.lockX,\n isHidden: FrameworkAccuDraw.isPolarModeConditional,\n },\n {\n key: \"y\",\n item: AccuDrawCommandItems.lockY,\n isHidden: FrameworkAccuDraw.isPolarModeConditional,\n },\n {\n key: \"z\",\n item: AccuDrawCommandItems.lockZ,\n isHidden: FrameworkAccuDraw.isPolarModeConditional,\n },\n {\n key: \"a\",\n item: AccuDrawCommandItems.lockAngle,\n isHidden: FrameworkAccuDraw.isRectangularModeConditional,\n },\n {\n key: \"d\",\n item: AccuDrawCommandItems.lockDistance,\n isHidden: FrameworkAccuDraw.isRectangularModeConditional,\n },\n {\n key: \"b\",\n item: AccuDrawCommandItems.bumpToolSetting,\n },\n ],\n },\n {\n key: \"r\",\n labelKey: \"UiFramework:accuDraw.rotateSubMenu\",\n shortcuts: [\n {\n key: \"t\",\n item: AccuDrawCommandItems.rotateTop,\n isDisabled: FrameworkAccuDraw.isTopRotationConditional,\n },\n {\n key: \"s\",\n item: AccuDrawCommandItems.rotateSide,\n isDisabled: FrameworkAccuDraw.isSideRotationConditional,\n },\n {\n key: \"f\",\n item: AccuDrawCommandItems.rotateFront,\n isDisabled: FrameworkAccuDraw.isFrontRotationConditional,\n },\n {\n key: \"v\",\n item: AccuDrawCommandItems.rotateView,\n isDisabled: FrameworkAccuDraw.isViewRotationConditional,\n },\n {\n key: \"c\",\n item: AccuDrawCommandItems.rotateCycle,\n },\n {\n key: \"a\",\n item: AccuDrawCommandItems.rotateAxes,\n },\n {\n key: \"e\",\n item: AccuDrawCommandItems.rotateToElement,\n },\n ],\n },\n ];\n\n return keyboardShortcutList;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccuDrawPopupManager.js","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/AccuDrawPopupManager.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\
|
|
1
|
+
{"version":3,"file":"AccuDrawPopupManager.js","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/AccuDrawPopupManager.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 AccuDraw\n */\n\nimport * as React from \"react\";\nimport { XAndY } from \"@itwin/core-geometry\";\nimport { AngleDescription, LengthDescription } from \"@itwin/core-frontend\";\nimport { AbstractMenuItemProps, IconSpecUtilities, OnCancelFunc, OnNumberCommitFunc, OnValueCommitFunc } from \"@itwin/appui-abstract\";\n\nimport { PopupInfo, PopupManager } from \"../popup/PopupManager\";\nimport { MenuItemHelpers } from \"../shared/MenuItem\";\nimport { CalculatorPopup } from \"./CalculatorPopup\";\nimport { MenuButtonPopup } from \"./MenuButtonPopup\";\n\nimport angleIcon from \"./angle.svg\";\nimport lengthIcon from \"./distance.svg\";\nimport heightIcon from \"./height-2.svg\";\n\n/** AccuDraw Popup Manager class\n * @alpha\n */\nexport class AccuDrawPopupManager {\n private static _calculatorId = \"Calculator\";\n\n public static showMenuButton(id: string, el: HTMLElement, pt: XAndY, menuItemsProps: AbstractMenuItemProps[]): boolean {\n const menuItems = MenuItemHelpers.createMenuItems(menuItemsProps);\n const menuContent = MenuItemHelpers.createMenuItemNodes(menuItems);\n\n const component = (\n <MenuButtonPopup id={id} el={el} pt={pt} offset={PopupManager.defaultOffset}\n content={menuContent} />\n );\n\n const popupInfo: PopupInfo = {\n id, pt, component, parentDocument: el.ownerDocument,\n };\n PopupManager.addOrUpdatePopup(popupInfo);\n\n return true;\n }\n\n public static hideMenuButton(id: string): boolean {\n return PopupManager.removePopup(id);\n }\n\n public static showCalculator(el: HTMLElement, pt: XAndY, initialValue: number, resultIcon: string, onOk: OnNumberCommitFunc, onCancel: OnCancelFunc): boolean {\n const id = AccuDrawPopupManager._calculatorId;\n const component = (\n <CalculatorPopup id={id} el={el} pt={pt} offset={PopupManager.defaultOffset}\n initialValue={initialValue} resultIcon={resultIcon} onOk={onOk} onCancel={onCancel} />\n );\n\n const popupInfo: PopupInfo = {\n id, pt, component, parentDocument: el.ownerDocument,\n };\n PopupManager.addOrUpdatePopup(popupInfo);\n\n return true;\n }\n\n public static hideCalculator(): boolean {\n return PopupManager.removePopup(AccuDrawPopupManager._calculatorId);\n }\n\n public static showAngleEditor(el: HTMLElement, pt: XAndY, value: number, onCommit: OnNumberCommitFunc, onCancel: OnCancelFunc): boolean {\n const propertyDescription = new AngleDescription(undefined, undefined, IconSpecUtilities.createWebComponentIconSpec(angleIcon));\n return PopupManager.showInputEditor(el, pt, value, propertyDescription, onCommit as OnValueCommitFunc, onCancel);\n }\n\n public static showLengthEditor(el: HTMLElement, pt: XAndY, value: number, onCommit: OnNumberCommitFunc, onCancel: OnCancelFunc): boolean {\n const propertyDescription = new LengthDescription(undefined, undefined, IconSpecUtilities.createWebComponentIconSpec(lengthIcon));\n return PopupManager.showInputEditor(el, pt, value, propertyDescription, onCommit as OnValueCommitFunc, onCancel);\n }\n\n public static showHeightEditor(el: HTMLElement, pt: XAndY, value: number, onCommit: OnNumberCommitFunc, onCancel: OnCancelFunc): boolean {\n const propertyDescription = new LengthDescription(undefined, undefined, IconSpecUtilities.createWebComponentIconSpec(heightIcon));\n return PopupManager.showInputEditor(el, pt, value, propertyDescription, onCommit as OnValueCommitFunc, onCancel);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccuDrawUiSettings.js","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/AccuDrawUiSettings.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG","sourcesContent":["/*---------------------------------------------------------------------------------------------\
|
|
1
|
+
{"version":3,"file":"AccuDrawUiSettings.js","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/AccuDrawUiSettings.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG","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 AccuDraw\n */\n\nimport { ColorDef } from \"@itwin/core-common\";\nimport { IconSpec } from \"@itwin/core-react\";\n\n/** AccuDraw User Interface Settings\n * @beta\n */\nexport interface AccuDrawUiSettings {\n /** X field style */\n xStyle?: React.CSSProperties;\n /** Y field style */\n yStyle?: React.CSSProperties;\n /** Z field style */\n zStyle?: React.CSSProperties;\n /** Angle field style */\n angleStyle?: React.CSSProperties;\n /** Distance field style */\n distanceStyle?: React.CSSProperties;\n\n /** X field background color */\n xBackgroundColor?: ColorDef | string;\n /** Y field background color */\n yBackgroundColor?: ColorDef | string;\n /** Z field background color */\n zBackgroundColor?: ColorDef | string;\n /** Angle field background color */\n angleBackgroundColor?: ColorDef | string;\n /** Distance field background color */\n distanceBackgroundColor?: ColorDef | string;\n\n /** X field foreground color */\n xForegroundColor?: ColorDef | string;\n /** Y field foreground color */\n yForegroundColor?: ColorDef | string;\n /** Z field foreground color */\n zForegroundColor?: ColorDef | string;\n /** Angle field foreground color */\n angleForegroundColor?: ColorDef | string;\n /** Distance field foreground color */\n distanceForegroundColor?: ColorDef | string;\n\n /** X field label */\n xLabel?: string;\n /** Y field label */\n yLabel?: string;\n /** Z field label */\n zLabel?: string;\n /** Angle field label */\n angleLabel?: string;\n /** Distance field label */\n distanceLabel?: string;\n\n /** X field icon */\n xIcon?: IconSpec;\n /** Y field icon */\n yIcon?: IconSpec;\n /** Z field icon */\n zIcon?: IconSpec;\n /** Angle field icon */\n angleIcon?: IconSpec;\n /** Distance field icon */\n distanceIcon?: IconSpec;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccuDrawWidget.js","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/AccuDrawWidget.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C;;GAEG;AACH,MAAa,qBAAsB,SAAQ,aAAa;IAI/C,MAAM,KAAK,KAAK;QACrB,OAAO,WAAW,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;IACvD,CAAC;IAED,YAAY,IAA4B,EAAE,OAAY;QACpD,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAErB,IAAI,CAAC,SAAS,GAAG,oBAAC,cAAc,OAAG,CAAC;IACtC,CAAC;;AAVa,wBAAE,GAAG,gBAAgB,CAAC;SAFzB,qBAAqB;AAelC;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC3E,MAAM,UAAU,GAAG,GAAG,CAAC;IAEvB,6EAA6E;IAC7E,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAS,EAAE,EAAU,EAAE,EAAE;QAC/D,cAAc,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAClF,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,GAAG,GAAG,iBAAiB,CAAiB,YAAY,CAAC,CAAC;IAE5D,OAAO,CACL,6BAAK,GAAG,EAAE,GAAG;QACX,oBAAC,sBAAsB,IAAC,WAAW,EAAE,WAAW,GAAI,CAChD,CACP,CAAC;AACJ,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\
|
|
1
|
+
{"version":3,"file":"AccuDrawWidget.js","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/AccuDrawWidget.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C;;GAEG;AACH,MAAa,qBAAsB,SAAQ,aAAa;IAI/C,MAAM,KAAK,KAAK;QACrB,OAAO,WAAW,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;IACvD,CAAC;IAED,YAAY,IAA4B,EAAE,OAAY;QACpD,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAErB,IAAI,CAAC,SAAS,GAAG,oBAAC,cAAc,OAAG,CAAC;IACtC,CAAC;;AAVa,wBAAE,GAAG,gBAAgB,CAAC;SAFzB,qBAAqB;AAelC;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC3E,MAAM,UAAU,GAAG,GAAG,CAAC;IAEvB,6EAA6E;IAC7E,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAS,EAAE,EAAU,EAAE,EAAE;QAC/D,cAAc,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAClF,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,GAAG,GAAG,iBAAiB,CAAiB,YAAY,CAAC,CAAC;IAE5D,OAAO,CACL,6BAAK,GAAG,EAAE,GAAG;QACX,oBAAC,sBAAsB,IAAC,WAAW,EAAE,WAAW,GAAI,CAChD,CACP,CAAC;AACJ,CAAC","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 AccuDraw\n */\n\nimport * as React from \"react\";\nimport { Orientation, useResizeObserver } from \"@itwin/core-react\";\n\nimport { AccuDrawFieldContainer } from \"./AccuDrawFieldContainer\";\nimport { ConfigurableCreateInfo } from \"../configurableui/ConfigurableUiControl\";\nimport { WidgetControl } from \"../widgets/WidgetControl\";\nimport { UiFramework } from \"../UiFramework\";\n\n/** AccuDraw Widget Control\n * @beta\n */\nexport class AccuDrawWidgetControl extends WidgetControl {\n\n public static id = \"AccuDrawWidget\";\n\n public static get label(): string {\n return UiFramework.translate(\"accuDraw.dialogTitle\");\n }\n\n constructor(info: ConfigurableCreateInfo, options: any) {\n super(info, options);\n\n this.reactNode = <AccuDrawWidget />;\n }\n}\n\n/** AccuDraw Widget displays [[AccuDrawFieldContainer]] for AccuDraw Ui\n * @beta\n */\nexport function AccuDrawWidget() {\n const [orientation, setOrientation] = React.useState(Orientation.Vertical);\n const breakpoint = 400;\n\n // istanbul ignore next - currently unable to replicate resizing in unit test\n const handleResize = React.useCallback((w: number, _h: number) => {\n setOrientation(w <= breakpoint ? Orientation.Vertical : Orientation.Horizontal);\n }, []);\n\n const ref = useResizeObserver<HTMLDivElement>(handleResize);\n\n return (\n <div ref={ref}>\n <AccuDrawFieldContainer orientation={orientation} />\n </div>\n );\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Calculator.js","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/Calculator.tsx"],"names":[],"mappings":"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","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 AccuDraw\r\n */\r\n\r\nimport \"./Calculator.scss\";\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport { IconSpecUtilities, OnCancelFunc, OnNumberCommitFunc, SpecialKey } from \"@itwin/appui-abstract\";\r\nimport { CommonProps, Icon, IconInput, Omit } from \"@itwin/core-react\";\r\nimport { Button, Input } from \"@itwin/itwinui-react\";\r\nimport { CalculatorEngine, CalculatorOperator } from \"./CalculatorEngine\";\r\nimport { SquareButton, SquareButtonProps } from \"./SquareButton\";\r\nimport { SvgCheckmark, SvgRemove } from \"@itwin/itwinui-icons-react\";\r\n\r\nimport backspaceIcon from \"./backspace.svg\";\r\n\r\n// cSpell:ignore plusmn\r\n\r\n/** @alpha */\r\nexport interface CalculatorProps extends CommonProps {\r\n /** Initial value */\r\n initialValue?: number;\r\n /** Icon to display beside the calculated result */\r\n resultIcon?: React.ReactNode;\r\n /** A function to be run when the OK button is clicked */\r\n onOk?: OnNumberCommitFunc;\r\n /** A function to be run when the Cancel button is clicked */\r\n onCancel?: OnCancelFunc;\r\n\r\n /** @internal Calculator state machine. */\r\n engine: CalculatorEngine;\r\n}\r\n\r\ninterface CalculatorState {\r\n displayValue: string;\r\n}\r\n\r\n/** @internal */\r\nexport type CalculatorPropsProps = Pick<CalculatorProps, \"engine\">;\r\n\r\n/** @alpha */\r\nexport class Calculator extends React.PureComponent<CalculatorProps, CalculatorState> {\r\n private _mainDiv = React.createRef<HTMLDivElement>();\r\n private _equalsClicked = false;\r\n\r\n /** @internal */\r\n public static readonly defaultProps: CalculatorPropsProps = {\r\n engine: new CalculatorEngine(),\r\n };\r\n\r\n constructor(props: CalculatorProps) {\r\n super(props);\r\n\r\n let displayValue = \"0\";\r\n if (this.props.initialValue)\r\n displayValue = this.props.engine.processValue(this.props.initialValue.toString());\r\n\r\n this.state = {\r\n displayValue,\r\n };\r\n }\r\n\r\n private _onValueButtonClick = (keyChar: string) => {\r\n const displayValue = this.props.engine.processValue(keyChar);\r\n this._mainDivFocus();\r\n this.setState({ displayValue });\r\n };\r\n\r\n private _onOperatorButtonClick = (operator: CalculatorOperator) => {\r\n if (operator === CalculatorOperator.Clear && this._equalsClicked)\r\n operator = CalculatorOperator.ClearAll;\r\n\r\n const displayValue = this.props.engine.processOperator(operator);\r\n this._mainDivFocus();\r\n this.setState({ displayValue });\r\n\r\n if (operator === CalculatorOperator.Equals)\r\n this._equalsClicked = true;\r\n else if (operator === CalculatorOperator.ClearAll)\r\n this._equalsClicked = false;\r\n };\r\n\r\n private _handleOk = (_event: React.MouseEvent): void => {\r\n this._ok();\r\n };\r\n\r\n private _ok() {\r\n // istanbul ignore else\r\n if (this.props.onOk) {\r\n this.props.onOk(this.props.engine.result);\r\n }\r\n this._clearAll();\r\n }\r\n\r\n private _handleCancel = (_event: React.MouseEvent): void => {\r\n this._cancel();\r\n };\r\n\r\n private _cancel() {\r\n // istanbul ignore else\r\n if (this.props.onCancel) {\r\n this.props.onCancel();\r\n }\r\n this._clearAll();\r\n }\r\n\r\n private _clearAll() {\r\n this.props.engine.clearAll();\r\n this._equalsClicked = false;\r\n }\r\n\r\n public override componentDidMount() {\r\n this._mainDivFocus();\r\n }\r\n\r\n private _mainDivFocus() {\r\n if (this._mainDiv.current)\r\n this._mainDiv.current.focus();\r\n }\r\n\r\n public override render() {\r\n const { className, resultIcon, onOk, onCancel, initialValue, ...props } = this.props; // eslint-disable-line @typescript-eslint/no-unused-vars\r\n\r\n const classNames = classnames(\r\n \"uifw-calculator\",\r\n className,\r\n );\r\n\r\n const topSection = this.props.resultIcon ?\r\n <IconInput containerClassName=\"uifw-calculator-top-input\"\r\n value={this.state.displayValue} readOnly={true} icon={this.props.resultIcon} /> :\r\n <Input value={this.state.displayValue} readOnly={true} size=\"small\" />;\r\n\r\n return (\r\n // The event handler is only being used to capture bubbled events\r\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\r\n <div {...props} ref={this._mainDiv} tabIndex={-1} className={classNames} onKeyDown={this._handleKeyDown}>\r\n <div className=\"uifw-calculator-top\">\r\n {topSection}\r\n </div>\r\n <CalculatorKeyPad onValueClick={this._onValueButtonClick} onOperatorClick={this._onOperatorButtonClick} />\r\n <div className=\"uifw-calculator-bottom-buttons\">\r\n <Button\r\n className={classnames(\"uifw-calculator-large-button\", \"uifw-calculator-ok-button\")}\r\n styleType=\"cta\"\r\n onClick={this._handleOk}\r\n >\r\n <Icon iconSpec={<SvgCheckmark />} />\r\n </Button>\r\n <Button\r\n className={classnames(\"uifw-calculator-large-button\", \"uifw-calculator-cancel-button\")}\r\n onClick={this._handleCancel}\r\n >\r\n <Icon iconSpec={<SvgRemove />} />\r\n </Button>\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n private _handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>): void => {\r\n switch (event.key) {\r\n case \"0\":\r\n case \"1\":\r\n case \"2\":\r\n case \"3\":\r\n case \"4\":\r\n case \"5\":\r\n case \"6\":\r\n case \"7\":\r\n case \"8\":\r\n case \"9\":\r\n this._onValueButtonClick(event.key);\r\n break;\r\n case \"a\":\r\n case \"A\":\r\n this._onOperatorButtonClick(CalculatorOperator.ClearAll);\r\n break;\r\n case \"c\":\r\n case \"C\":\r\n case SpecialKey.Clear:\r\n this._onOperatorButtonClick(CalculatorOperator.Clear);\r\n break;\r\n case SpecialKey.Escape:\r\n this._cancel();\r\n break;\r\n case SpecialKey.Backspace:\r\n this._onOperatorButtonClick(CalculatorOperator.Backspace);\r\n break;\r\n case \"/\":\r\n case SpecialKey.Divide:\r\n this._onOperatorButtonClick(CalculatorOperator.Divide);\r\n break;\r\n case \"*\":\r\n case SpecialKey.Multiply:\r\n this._onOperatorButtonClick(CalculatorOperator.Multiply);\r\n break;\r\n case \"-\":\r\n case SpecialKey.Subtract:\r\n this._onOperatorButtonClick(CalculatorOperator.Subtract);\r\n break;\r\n case \"+\":\r\n case SpecialKey.Add:\r\n this._onOperatorButtonClick(CalculatorOperator.Add);\r\n break;\r\n case \".\":\r\n case SpecialKey.Decimal:\r\n this._onOperatorButtonClick(CalculatorOperator.Decimal);\r\n break;\r\n case \"=\":\r\n this._onOperatorButtonClick(CalculatorOperator.Equals);\r\n break;\r\n case SpecialKey.Enter:\r\n if (!this._equalsClicked)\r\n this._onOperatorButtonClick(CalculatorOperator.Equals);\r\n this._ok();\r\n break;\r\n }\r\n };\r\n\r\n}\r\n\r\ninterface CalculatorKeyPadProps extends CommonProps {\r\n /** A function to be run when a value is clicked */\r\n onValueClick: (key: string) => void;\r\n /** A function to be run when a value is clicked */\r\n onOperatorClick: (operator: CalculatorOperator) => void;\r\n}\r\n\r\nclass CalculatorKeyPad extends React.PureComponent<CalculatorKeyPadProps> {\r\n public override render() {\r\n const iconSpec = IconSpecUtilities.createWebComponentIconSpec(backspaceIcon);\r\n\r\n return (\r\n <div className={classnames(\"uifw-calculator-button-grid\")}>\r\n <OperatorButton operator={CalculatorOperator.ClearAll} onClick={this.props.onOperatorClick}>AC</OperatorButton>\r\n <OperatorButton operator={CalculatorOperator.Clear} onClick={this.props.onOperatorClick}>C</OperatorButton>\r\n <OperatorButton operator={CalculatorOperator.Backspace} onClick={this.props.onOperatorClick}>\r\n <div className=\"uifw-calculator-button-svg\">\r\n <Icon iconSpec={iconSpec} />\r\n </div>\r\n </OperatorButton>\r\n <OperatorButton operator={CalculatorOperator.Divide} onClick={this.props.onOperatorClick}\r\n className=\"uifw-calculator-large-font\">÷</OperatorButton>\r\n\r\n <ValueButton keyChar=\"7\" onClick={this.props.onValueClick} />\r\n <ValueButton keyChar=\"8\" onClick={this.props.onValueClick} />\r\n <ValueButton keyChar=\"9\" onClick={this.props.onValueClick} />\r\n <OperatorButton operator={CalculatorOperator.Multiply} onClick={this.props.onOperatorClick}\r\n className=\"uifw-calculator-large-font\">×</OperatorButton>\r\n\r\n <ValueButton keyChar=\"4\" onClick={this.props.onValueClick} />\r\n <ValueButton keyChar=\"5\" onClick={this.props.onValueClick} />\r\n <ValueButton keyChar=\"6\" onClick={this.props.onValueClick} />\r\n <OperatorButton operator={CalculatorOperator.Subtract} onClick={this.props.onOperatorClick}\r\n className=\"uifw-calculator-large-font\">−</OperatorButton>\r\n\r\n <ValueButton keyChar=\"1\" onClick={this.props.onValueClick} />\r\n <ValueButton keyChar=\"2\" onClick={this.props.onValueClick} />\r\n <ValueButton keyChar=\"3\" onClick={this.props.onValueClick} />\r\n <OperatorButton operator={CalculatorOperator.Add} onClick={this.props.onOperatorClick}\r\n className=\"uifw-calculator-large-font\">+</OperatorButton>\r\n\r\n <ValueButton keyChar=\"0\" onClick={this.props.onValueClick} />\r\n <OperatorButton operator={CalculatorOperator.NegPos} onClick={this.props.onOperatorClick}\r\n className=\"uifw-calculator-large-font\">±</OperatorButton>\r\n <OperatorButton operator={CalculatorOperator.Decimal} onClick={this.props.onOperatorClick}\r\n className=\"uifw-calculator-large-font\">.</OperatorButton>\r\n <OperatorButton operator={CalculatorOperator.Equals} onClick={this.props.onOperatorClick}\r\n className=\"uifw-calculator-large-font\">=</OperatorButton>\r\n <span />\r\n </div>\r\n );\r\n }\r\n}\r\n\r\ninterface ValueButtonProps extends Omit<SquareButtonProps, \"onClick\"> {\r\n /** Key to display */\r\n keyChar: string;\r\n /** A function to be run when the element is clicked */\r\n onClick: (key: string) => void;\r\n}\r\n\r\nclass ValueButton extends React.PureComponent<ValueButtonProps> {\r\n\r\n private _handleOnClick = (_event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\r\n this.props.onClick(this.props.keyChar);\r\n };\r\n\r\n public override render() {\r\n const { className, keyChar, onClick, ...props } = this.props; // eslint-disable-line @typescript-eslint/no-unused-vars\r\n\r\n const itemClassNames = classnames(\r\n \"uifw-calculator-item\",\r\n className,\r\n );\r\n\r\n return (\r\n <SquareButton {...props} className={itemClassNames} onClick={this._handleOnClick} >\r\n {keyChar}\r\n </SquareButton >\r\n );\r\n }\r\n}\r\n\r\ninterface OperatorButtonProps extends Omit<SquareButtonProps, \"onClick\"> {\r\n /** Key to display */\r\n operator: CalculatorOperator;\r\n /** A function to be run when the element is clicked */\r\n onClick: (operator: CalculatorOperator) => void;\r\n}\r\n\r\nclass OperatorButton extends React.PureComponent<OperatorButtonProps> {\r\n\r\n private _handleOnClick = (_event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\r\n this.props.onClick(this.props.operator);\r\n };\r\n\r\n public override render() {\r\n const { className, children, operator, onClick, ...props } = this.props; // eslint-disable-line @typescript-eslint/no-unused-vars\r\n\r\n const itemClassNames = classnames(\r\n \"uifw-calculator-item\",\r\n className,\r\n );\r\n\r\n return (\r\n <SquareButton {...props} className={itemClassNames} onClick={this._handleOnClick}>\r\n {children}\r\n </SquareButton>\r\n );\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"Calculator.js","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/Calculator.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 AccuDraw\n */\n\nimport \"./Calculator.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { IconSpecUtilities, OnCancelFunc, OnNumberCommitFunc, SpecialKey } from \"@itwin/appui-abstract\";\nimport { CommonProps, Icon, IconInput, Omit } from \"@itwin/core-react\";\nimport { Button, Input } from \"@itwin/itwinui-react\";\nimport { CalculatorEngine, CalculatorOperator } from \"./CalculatorEngine\";\nimport { SquareButton, SquareButtonProps } from \"./SquareButton\";\nimport { SvgCheckmark, SvgRemove } from \"@itwin/itwinui-icons-react\";\n\nimport backspaceIcon from \"./backspace.svg\";\n\n// cSpell:ignore plusmn\n\n/** @alpha */\nexport interface CalculatorProps extends CommonProps {\n /** Initial value */\n initialValue?: number;\n /** Icon to display beside the calculated result */\n resultIcon?: React.ReactNode;\n /** A function to be run when the OK button is clicked */\n onOk?: OnNumberCommitFunc;\n /** A function to be run when the Cancel button is clicked */\n onCancel?: OnCancelFunc;\n\n /** @internal Calculator state machine. */\n engine: CalculatorEngine;\n}\n\ninterface CalculatorState {\n displayValue: string;\n}\n\n/** @internal */\nexport type CalculatorPropsProps = Pick<CalculatorProps, \"engine\">;\n\n/** @alpha */\nexport class Calculator extends React.PureComponent<CalculatorProps, CalculatorState> {\n private _mainDiv = React.createRef<HTMLDivElement>();\n private _equalsClicked = false;\n\n /** @internal */\n public static readonly defaultProps: CalculatorPropsProps = {\n engine: new CalculatorEngine(),\n };\n\n constructor(props: CalculatorProps) {\n super(props);\n\n let displayValue = \"0\";\n if (this.props.initialValue)\n displayValue = this.props.engine.processValue(this.props.initialValue.toString());\n\n this.state = {\n displayValue,\n };\n }\n\n private _onValueButtonClick = (keyChar: string) => {\n const displayValue = this.props.engine.processValue(keyChar);\n this._mainDivFocus();\n this.setState({ displayValue });\n };\n\n private _onOperatorButtonClick = (operator: CalculatorOperator) => {\n if (operator === CalculatorOperator.Clear && this._equalsClicked)\n operator = CalculatorOperator.ClearAll;\n\n const displayValue = this.props.engine.processOperator(operator);\n this._mainDivFocus();\n this.setState({ displayValue });\n\n if (operator === CalculatorOperator.Equals)\n this._equalsClicked = true;\n else if (operator === CalculatorOperator.ClearAll)\n this._equalsClicked = false;\n };\n\n private _handleOk = (_event: React.MouseEvent): void => {\n this._ok();\n };\n\n private _ok() {\n // istanbul ignore else\n if (this.props.onOk) {\n this.props.onOk(this.props.engine.result);\n }\n this._clearAll();\n }\n\n private _handleCancel = (_event: React.MouseEvent): void => {\n this._cancel();\n };\n\n private _cancel() {\n // istanbul ignore else\n if (this.props.onCancel) {\n this.props.onCancel();\n }\n this._clearAll();\n }\n\n private _clearAll() {\n this.props.engine.clearAll();\n this._equalsClicked = false;\n }\n\n public override componentDidMount() {\n this._mainDivFocus();\n }\n\n private _mainDivFocus() {\n if (this._mainDiv.current)\n this._mainDiv.current.focus();\n }\n\n public override render() {\n const { className, resultIcon, onOk, onCancel, initialValue, ...props } = this.props; // eslint-disable-line @typescript-eslint/no-unused-vars\n\n const classNames = classnames(\n \"uifw-calculator\",\n className,\n );\n\n const topSection = this.props.resultIcon ?\n <IconInput containerClassName=\"uifw-calculator-top-input\"\n value={this.state.displayValue} readOnly={true} icon={this.props.resultIcon} /> :\n <Input value={this.state.displayValue} readOnly={true} size=\"small\" />;\n\n return (\n // The event handler is only being used to capture bubbled events\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <div {...props} ref={this._mainDiv} tabIndex={-1} className={classNames} onKeyDown={this._handleKeyDown}>\n <div className=\"uifw-calculator-top\">\n {topSection}\n </div>\n <CalculatorKeyPad onValueClick={this._onValueButtonClick} onOperatorClick={this._onOperatorButtonClick} />\n <div className=\"uifw-calculator-bottom-buttons\">\n <Button\n className={classnames(\"uifw-calculator-large-button\", \"uifw-calculator-ok-button\")}\n styleType=\"cta\"\n onClick={this._handleOk}\n >\n <Icon iconSpec={<SvgCheckmark />} />\n </Button>\n <Button\n className={classnames(\"uifw-calculator-large-button\", \"uifw-calculator-cancel-button\")}\n onClick={this._handleCancel}\n >\n <Icon iconSpec={<SvgRemove />} />\n </Button>\n </div>\n </div>\n );\n }\n\n private _handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>): void => {\n switch (event.key) {\n case \"0\":\n case \"1\":\n case \"2\":\n case \"3\":\n case \"4\":\n case \"5\":\n case \"6\":\n case \"7\":\n case \"8\":\n case \"9\":\n this._onValueButtonClick(event.key);\n break;\n case \"a\":\n case \"A\":\n this._onOperatorButtonClick(CalculatorOperator.ClearAll);\n break;\n case \"c\":\n case \"C\":\n case SpecialKey.Clear:\n this._onOperatorButtonClick(CalculatorOperator.Clear);\n break;\n case SpecialKey.Escape:\n this._cancel();\n break;\n case SpecialKey.Backspace:\n this._onOperatorButtonClick(CalculatorOperator.Backspace);\n break;\n case \"/\":\n case SpecialKey.Divide:\n this._onOperatorButtonClick(CalculatorOperator.Divide);\n break;\n case \"*\":\n case SpecialKey.Multiply:\n this._onOperatorButtonClick(CalculatorOperator.Multiply);\n break;\n case \"-\":\n case SpecialKey.Subtract:\n this._onOperatorButtonClick(CalculatorOperator.Subtract);\n break;\n case \"+\":\n case SpecialKey.Add:\n this._onOperatorButtonClick(CalculatorOperator.Add);\n break;\n case \".\":\n case SpecialKey.Decimal:\n this._onOperatorButtonClick(CalculatorOperator.Decimal);\n break;\n case \"=\":\n this._onOperatorButtonClick(CalculatorOperator.Equals);\n break;\n case SpecialKey.Enter:\n if (!this._equalsClicked)\n this._onOperatorButtonClick(CalculatorOperator.Equals);\n this._ok();\n break;\n }\n };\n\n}\n\ninterface CalculatorKeyPadProps extends CommonProps {\n /** A function to be run when a value is clicked */\n onValueClick: (key: string) => void;\n /** A function to be run when a value is clicked */\n onOperatorClick: (operator: CalculatorOperator) => void;\n}\n\nclass CalculatorKeyPad extends React.PureComponent<CalculatorKeyPadProps> {\n public override render() {\n const iconSpec = IconSpecUtilities.createWebComponentIconSpec(backspaceIcon);\n\n return (\n <div className={classnames(\"uifw-calculator-button-grid\")}>\n <OperatorButton operator={CalculatorOperator.ClearAll} onClick={this.props.onOperatorClick}>AC</OperatorButton>\n <OperatorButton operator={CalculatorOperator.Clear} onClick={this.props.onOperatorClick}>C</OperatorButton>\n <OperatorButton operator={CalculatorOperator.Backspace} onClick={this.props.onOperatorClick}>\n <div className=\"uifw-calculator-button-svg\">\n <Icon iconSpec={iconSpec} />\n </div>\n </OperatorButton>\n <OperatorButton operator={CalculatorOperator.Divide} onClick={this.props.onOperatorClick}\n className=\"uifw-calculator-large-font\">÷</OperatorButton>\n\n <ValueButton keyChar=\"7\" onClick={this.props.onValueClick} />\n <ValueButton keyChar=\"8\" onClick={this.props.onValueClick} />\n <ValueButton keyChar=\"9\" onClick={this.props.onValueClick} />\n <OperatorButton operator={CalculatorOperator.Multiply} onClick={this.props.onOperatorClick}\n className=\"uifw-calculator-large-font\">×</OperatorButton>\n\n <ValueButton keyChar=\"4\" onClick={this.props.onValueClick} />\n <ValueButton keyChar=\"5\" onClick={this.props.onValueClick} />\n <ValueButton keyChar=\"6\" onClick={this.props.onValueClick} />\n <OperatorButton operator={CalculatorOperator.Subtract} onClick={this.props.onOperatorClick}\n className=\"uifw-calculator-large-font\">−</OperatorButton>\n\n <ValueButton keyChar=\"1\" onClick={this.props.onValueClick} />\n <ValueButton keyChar=\"2\" onClick={this.props.onValueClick} />\n <ValueButton keyChar=\"3\" onClick={this.props.onValueClick} />\n <OperatorButton operator={CalculatorOperator.Add} onClick={this.props.onOperatorClick}\n className=\"uifw-calculator-large-font\">+</OperatorButton>\n\n <ValueButton keyChar=\"0\" onClick={this.props.onValueClick} />\n <OperatorButton operator={CalculatorOperator.NegPos} onClick={this.props.onOperatorClick}\n className=\"uifw-calculator-large-font\">±</OperatorButton>\n <OperatorButton operator={CalculatorOperator.Decimal} onClick={this.props.onOperatorClick}\n className=\"uifw-calculator-large-font\">.</OperatorButton>\n <OperatorButton operator={CalculatorOperator.Equals} onClick={this.props.onOperatorClick}\n className=\"uifw-calculator-large-font\">=</OperatorButton>\n <span />\n </div>\n );\n }\n}\n\ninterface ValueButtonProps extends Omit<SquareButtonProps, \"onClick\"> {\n /** Key to display */\n keyChar: string;\n /** A function to be run when the element is clicked */\n onClick: (key: string) => void;\n}\n\nclass ValueButton extends React.PureComponent<ValueButtonProps> {\n\n private _handleOnClick = (_event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\n this.props.onClick(this.props.keyChar);\n };\n\n public override render() {\n const { className, keyChar, onClick, ...props } = this.props; // eslint-disable-line @typescript-eslint/no-unused-vars\n\n const itemClassNames = classnames(\n \"uifw-calculator-item\",\n className,\n );\n\n return (\n <SquareButton {...props} className={itemClassNames} onClick={this._handleOnClick} >\n {keyChar}\n </SquareButton >\n );\n }\n}\n\ninterface OperatorButtonProps extends Omit<SquareButtonProps, \"onClick\"> {\n /** Key to display */\n operator: CalculatorOperator;\n /** A function to be run when the element is clicked */\n onClick: (operator: CalculatorOperator) => void;\n}\n\nclass OperatorButton extends React.PureComponent<OperatorButtonProps> {\n\n private _handleOnClick = (_event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\n this.props.onClick(this.props.operator);\n };\n\n public override render() {\n const { className, children, operator, onClick, ...props } = this.props; // eslint-disable-line @typescript-eslint/no-unused-vars\n\n const itemClassNames = classnames(\n \"uifw-calculator-item\",\n className,\n );\n\n return (\n <SquareButton {...props} className={itemClassNames} onClick={this._handleOnClick}>\n {children}\n </SquareButton>\n );\n }\n}\n"]}
|
|
@@ -1,85 +1,85 @@
|
|
|
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/style/index";
|
|
6
|
-
|
|
7
|
-
$button-size: 36px;
|
|
8
|
-
$button-operator-size: $button-size + 10px;
|
|
9
|
-
|
|
10
|
-
.uifw-position-popup.uifw-calculator-host {
|
|
11
|
-
background-color: $buic-background-window;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
.uifw-calculator {
|
|
15
|
-
max-width: 173px;
|
|
16
|
-
|
|
17
|
-
&:focus {
|
|
18
|
-
border-color: transparent;
|
|
19
|
-
outline: 0px;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
> .uifw-calculator-top {
|
|
23
|
-
margin-bottom: 8px;
|
|
24
|
-
|
|
25
|
-
> .uifw-calculator-top-input {
|
|
26
|
-
width: 100%;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
input {
|
|
30
|
-
text-align: right;
|
|
31
|
-
color: var(--iui-color-text);
|
|
32
|
-
background-color: $buic-background-control;
|
|
33
|
-
cursor: default;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
> .uifw-calculator-button-grid {
|
|
38
|
-
display: grid;
|
|
39
|
-
grid-template-columns: $button-size $button-size $button-size $button-operator-size;
|
|
40
|
-
grid-gap: 6px;
|
|
41
|
-
gap: 6px;
|
|
42
|
-
justify-items: end;
|
|
43
|
-
|
|
44
|
-
.uifw-calculator-item {
|
|
45
|
-
width: $button-size;
|
|
46
|
-
height: $button-size;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
> .uifw-calculator-bottom-buttons {
|
|
51
|
-
display: flex;
|
|
52
|
-
justify-content: space-between;
|
|
53
|
-
margin-top: 0;
|
|
54
|
-
|
|
55
|
-
> .uifw-calculator-large-button {
|
|
56
|
-
width: 70px;
|
|
57
|
-
font-size: 20px;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
> .uifw-calculator-cancel-button {
|
|
61
|
-
&,
|
|
62
|
-
&:active,
|
|
63
|
-
&:focus {
|
|
64
|
-
border: none;
|
|
65
|
-
background-color: var(--iui-color-background-negative);
|
|
66
|
-
color: var(--iui-color-white);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
&:hover {
|
|
70
|
-
background-color: var(--iui-color-background-negative-hover);
|
|
71
|
-
color: var(--iui-color-white);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
.uifw-calculator-button-svg {
|
|
77
|
-
width: 100%;
|
|
78
|
-
height: 18px;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
.uifw-calculator-large-font {
|
|
82
|
-
font-size: 22px;
|
|
83
|
-
}
|
|
84
|
-
|
|
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/style/index";
|
|
6
|
+
|
|
7
|
+
$button-size: 36px;
|
|
8
|
+
$button-operator-size: $button-size + 10px;
|
|
9
|
+
|
|
10
|
+
.uifw-position-popup.uifw-calculator-host {
|
|
11
|
+
background-color: $buic-background-window;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.uifw-calculator {
|
|
15
|
+
max-width: 173px;
|
|
16
|
+
|
|
17
|
+
&:focus {
|
|
18
|
+
border-color: transparent;
|
|
19
|
+
outline: 0px;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
> .uifw-calculator-top {
|
|
23
|
+
margin-bottom: 8px;
|
|
24
|
+
|
|
25
|
+
> .uifw-calculator-top-input {
|
|
26
|
+
width: 100%;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
input {
|
|
30
|
+
text-align: right;
|
|
31
|
+
color: var(--iui-color-text);
|
|
32
|
+
background-color: $buic-background-control;
|
|
33
|
+
cursor: default;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
> .uifw-calculator-button-grid {
|
|
38
|
+
display: grid;
|
|
39
|
+
grid-template-columns: $button-size $button-size $button-size $button-operator-size;
|
|
40
|
+
grid-gap: 6px;
|
|
41
|
+
gap: 6px;
|
|
42
|
+
justify-items: end;
|
|
43
|
+
|
|
44
|
+
.uifw-calculator-item {
|
|
45
|
+
width: $button-size;
|
|
46
|
+
height: $button-size;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
> .uifw-calculator-bottom-buttons {
|
|
51
|
+
display: flex;
|
|
52
|
+
justify-content: space-between;
|
|
53
|
+
margin-top: 0;
|
|
54
|
+
|
|
55
|
+
> .uifw-calculator-large-button {
|
|
56
|
+
width: 70px;
|
|
57
|
+
font-size: 20px;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
> .uifw-calculator-cancel-button {
|
|
61
|
+
&,
|
|
62
|
+
&:active,
|
|
63
|
+
&:focus {
|
|
64
|
+
border: none;
|
|
65
|
+
background-color: var(--iui-color-background-negative);
|
|
66
|
+
color: var(--iui-color-white);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
&:hover {
|
|
70
|
+
background-color: var(--iui-color-background-negative-hover);
|
|
71
|
+
color: var(--iui-color-white);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.uifw-calculator-button-svg {
|
|
77
|
+
width: 100%;
|
|
78
|
+
height: 18px;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.uifw-calculator-large-font {
|
|
82
|
+
font-size: 22px;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
85
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CalculatorEngine.js","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/CalculatorEngine.ts"],"names":[],"mappings":"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","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 AccuDraw\r\n */\r\n\r\n/** @internal */\r\nexport enum CalculatorOperator { // eslint-disable-line: completed-docs\r\n None,\r\n Clear,\r\n ClearAll,\r\n Backspace,\r\n Add,\r\n Subtract,\r\n Multiply,\r\n Divide,\r\n NegPos,\r\n Decimal,\r\n Equals,\r\n}\r\n\r\n/** @internal */\r\nexport enum CalculatorKeyType {\r\n None,\r\n Operator,\r\n Equals,\r\n}\r\n\r\n/** @internal */\r\nexport class CalculatorEngine {\r\n private _displayValue: string = \"0\";\r\n private _operator?: CalculatorOperator;\r\n private _previousKeyType: CalculatorKeyType = CalculatorKeyType.None;\r\n private _firstValue: string = \"\";\r\n private _modValue: string = \"\";\r\n\r\n constructor() {\r\n this.clearAll();\r\n }\r\n\r\n public clearAll(): void {\r\n this._displayValue = \"0\";\r\n this._previousKeyType = CalculatorKeyType.None;\r\n this._firstValue = \"\";\r\n this._modValue = \"\";\r\n this._operator = undefined;\r\n }\r\n\r\n public get result(): number {\r\n return parseFloat(this._displayValue);\r\n }\r\n\r\n public get displayValue(): string {\r\n return this._displayValue;\r\n }\r\n\r\n public processValue(value: string): string {\r\n let resultString: string;\r\n\r\n if (\r\n this._displayValue === \"0\" ||\r\n this._previousKeyType === CalculatorKeyType.Operator ||\r\n this._previousKeyType === CalculatorKeyType.Equals\r\n ) {\r\n resultString = value;\r\n } else {\r\n resultString = this._displayValue + value;\r\n }\r\n\r\n this._displayValue = resultString;\r\n this._previousKeyType = CalculatorKeyType.None;\r\n\r\n return resultString;\r\n }\r\n\r\n public processOperator(operator: CalculatorOperator): string {\r\n const displayedNum = this._displayValue;\r\n const resultString = this._createResultString(operator, displayedNum);\r\n\r\n this._displayValue = resultString;\r\n\r\n this._updateCalculatorState(operator, resultString, displayedNum);\r\n\r\n return resultString;\r\n }\r\n\r\n private _createResultString = (operator: CalculatorOperator, displayedNum: string) => {\r\n let resultString = displayedNum;\r\n\r\n if (this._isMathOperator(operator)) {\r\n const firstValue = this._firstValue;\r\n const savedOperator = this._operator;\r\n\r\n resultString = (firstValue && savedOperator &&\r\n this._previousKeyType !== CalculatorKeyType.Operator && this._previousKeyType !== CalculatorKeyType.Equals)\r\n ? this._calculate(firstValue, savedOperator, displayedNum)\r\n : displayedNum;\r\n\r\n } else {\r\n switch (operator) {\r\n case CalculatorOperator.Clear:\r\n resultString = \"0\";\r\n break;\r\n\r\n case CalculatorOperator.ClearAll:\r\n resultString = \"0\";\r\n break;\r\n\r\n case CalculatorOperator.Backspace:\r\n resultString = resultString.slice(0, -1);\r\n if (resultString.length === 0)\r\n resultString = \"0\";\r\n break;\r\n\r\n case CalculatorOperator.Decimal:\r\n if (!resultString.includes(\".\"))\r\n resultString = `${displayedNum}.`;\r\n else if (this._previousKeyType === CalculatorKeyType.Operator || this._previousKeyType === CalculatorKeyType.Equals)\r\n resultString = \"0.\";\r\n break;\r\n\r\n case CalculatorOperator.NegPos:\r\n if (displayedNum.length > 0 && displayedNum[0] === \"-\")\r\n resultString = displayedNum.substring(1);\r\n else\r\n resultString = `-${displayedNum}`;\r\n break;\r\n\r\n case CalculatorOperator.Equals: {\r\n const firstValue = this._firstValue;\r\n const savedOperator = this._operator;\r\n const modValue = this._modValue;\r\n\r\n if (firstValue && savedOperator) {\r\n resultString = this._previousKeyType === CalculatorKeyType.Equals\r\n ? this._calculate(displayedNum, savedOperator, modValue)\r\n : this._calculate(firstValue, savedOperator, displayedNum);\r\n } else {\r\n resultString = displayedNum;\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return resultString;\r\n };\r\n\r\n private _isMathOperator = (operator: CalculatorOperator): boolean => {\r\n switch (operator) {\r\n case CalculatorOperator.Add:\r\n case CalculatorOperator.Subtract:\r\n case CalculatorOperator.Multiply:\r\n case CalculatorOperator.Divide:\r\n return true;\r\n }\r\n return false;\r\n };\r\n\r\n private _calculate = (n1Str: string, operator: CalculatorOperator, n2Str: string): string => {\r\n let result = 0;\r\n const n1 = parseFloat(n1Str);\r\n const n2 = parseFloat(n2Str);\r\n\r\n switch (operator) {\r\n case CalculatorOperator.Add:\r\n result = n1 + n2;\r\n break;\r\n case CalculatorOperator.Subtract:\r\n result = n1 - n2;\r\n break;\r\n case CalculatorOperator.Multiply:\r\n result = n1 * n2;\r\n break;\r\n case CalculatorOperator.Divide:\r\n const displayValue = n2;\r\n if (displayValue !== 0)\r\n result = n1 / displayValue;\r\n else\r\n result = 0;\r\n break;\r\n }\r\n\r\n return result.toString();\r\n };\r\n\r\n private _updateCalculatorState = (operator: CalculatorOperator, resultString: string, displayedNum: string): void => {\r\n let keyType = CalculatorKeyType.None;\r\n\r\n if (this._isMathOperator(operator)) {\r\n if (this._firstValue && this._operator && this._previousKeyType === CalculatorKeyType.None) {\r\n this._firstValue = resultString;\r\n } else {\r\n this._firstValue = displayedNum;\r\n }\r\n\r\n this._operator = operator;\r\n keyType = CalculatorKeyType.Operator;\r\n\r\n } else {\r\n switch (operator) {\r\n case CalculatorOperator.ClearAll:\r\n this.clearAll();\r\n break;\r\n\r\n case CalculatorOperator.Equals: {\r\n let secondValue = displayedNum;\r\n\r\n if (this._firstValue) {\r\n if (this._previousKeyType === CalculatorKeyType.Equals) {\r\n secondValue = this._modValue;\r\n }\r\n }\r\n\r\n this._modValue = secondValue;\r\n\r\n keyType = CalculatorKeyType.Equals;\r\n }\r\n }\r\n }\r\n\r\n this._previousKeyType = keyType;\r\n };\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"CalculatorEngine.js","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/CalculatorEngine.ts"],"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 AccuDraw\n */\n\n/** @internal */\nexport enum CalculatorOperator { // eslint-disable-line: completed-docs\n None,\n Clear,\n ClearAll,\n Backspace,\n Add,\n Subtract,\n Multiply,\n Divide,\n NegPos,\n Decimal,\n Equals,\n}\n\n/** @internal */\nexport enum CalculatorKeyType {\n None,\n Operator,\n Equals,\n}\n\n/** @internal */\nexport class CalculatorEngine {\n private _displayValue: string = \"0\";\n private _operator?: CalculatorOperator;\n private _previousKeyType: CalculatorKeyType = CalculatorKeyType.None;\n private _firstValue: string = \"\";\n private _modValue: string = \"\";\n\n constructor() {\n this.clearAll();\n }\n\n public clearAll(): void {\n this._displayValue = \"0\";\n this._previousKeyType = CalculatorKeyType.None;\n this._firstValue = \"\";\n this._modValue = \"\";\n this._operator = undefined;\n }\n\n public get result(): number {\n return parseFloat(this._displayValue);\n }\n\n public get displayValue(): string {\n return this._displayValue;\n }\n\n public processValue(value: string): string {\n let resultString: string;\n\n if (\n this._displayValue === \"0\" ||\n this._previousKeyType === CalculatorKeyType.Operator ||\n this._previousKeyType === CalculatorKeyType.Equals\n ) {\n resultString = value;\n } else {\n resultString = this._displayValue + value;\n }\n\n this._displayValue = resultString;\n this._previousKeyType = CalculatorKeyType.None;\n\n return resultString;\n }\n\n public processOperator(operator: CalculatorOperator): string {\n const displayedNum = this._displayValue;\n const resultString = this._createResultString(operator, displayedNum);\n\n this._displayValue = resultString;\n\n this._updateCalculatorState(operator, resultString, displayedNum);\n\n return resultString;\n }\n\n private _createResultString = (operator: CalculatorOperator, displayedNum: string) => {\n let resultString = displayedNum;\n\n if (this._isMathOperator(operator)) {\n const firstValue = this._firstValue;\n const savedOperator = this._operator;\n\n resultString = (firstValue && savedOperator &&\n this._previousKeyType !== CalculatorKeyType.Operator && this._previousKeyType !== CalculatorKeyType.Equals)\n ? this._calculate(firstValue, savedOperator, displayedNum)\n : displayedNum;\n\n } else {\n switch (operator) {\n case CalculatorOperator.Clear:\n resultString = \"0\";\n break;\n\n case CalculatorOperator.ClearAll:\n resultString = \"0\";\n break;\n\n case CalculatorOperator.Backspace:\n resultString = resultString.slice(0, -1);\n if (resultString.length === 0)\n resultString = \"0\";\n break;\n\n case CalculatorOperator.Decimal:\n if (!resultString.includes(\".\"))\n resultString = `${displayedNum}.`;\n else if (this._previousKeyType === CalculatorKeyType.Operator || this._previousKeyType === CalculatorKeyType.Equals)\n resultString = \"0.\";\n break;\n\n case CalculatorOperator.NegPos:\n if (displayedNum.length > 0 && displayedNum[0] === \"-\")\n resultString = displayedNum.substring(1);\n else\n resultString = `-${displayedNum}`;\n break;\n\n case CalculatorOperator.Equals: {\n const firstValue = this._firstValue;\n const savedOperator = this._operator;\n const modValue = this._modValue;\n\n if (firstValue && savedOperator) {\n resultString = this._previousKeyType === CalculatorKeyType.Equals\n ? this._calculate(displayedNum, savedOperator, modValue)\n : this._calculate(firstValue, savedOperator, displayedNum);\n } else {\n resultString = displayedNum;\n }\n break;\n }\n }\n }\n\n return resultString;\n };\n\n private _isMathOperator = (operator: CalculatorOperator): boolean => {\n switch (operator) {\n case CalculatorOperator.Add:\n case CalculatorOperator.Subtract:\n case CalculatorOperator.Multiply:\n case CalculatorOperator.Divide:\n return true;\n }\n return false;\n };\n\n private _calculate = (n1Str: string, operator: CalculatorOperator, n2Str: string): string => {\n let result = 0;\n const n1 = parseFloat(n1Str);\n const n2 = parseFloat(n2Str);\n\n switch (operator) {\n case CalculatorOperator.Add:\n result = n1 + n2;\n break;\n case CalculatorOperator.Subtract:\n result = n1 - n2;\n break;\n case CalculatorOperator.Multiply:\n result = n1 * n2;\n break;\n case CalculatorOperator.Divide:\n const displayValue = n2;\n if (displayValue !== 0)\n result = n1 / displayValue;\n else\n result = 0;\n break;\n }\n\n return result.toString();\n };\n\n private _updateCalculatorState = (operator: CalculatorOperator, resultString: string, displayedNum: string): void => {\n let keyType = CalculatorKeyType.None;\n\n if (this._isMathOperator(operator)) {\n if (this._firstValue && this._operator && this._previousKeyType === CalculatorKeyType.None) {\n this._firstValue = resultString;\n } else {\n this._firstValue = displayedNum;\n }\n\n this._operator = operator;\n keyType = CalculatorKeyType.Operator;\n\n } else {\n switch (operator) {\n case CalculatorOperator.ClearAll:\n this.clearAll();\n break;\n\n case CalculatorOperator.Equals: {\n let secondValue = displayedNum;\n\n if (this._firstValue) {\n if (this._previousKeyType === CalculatorKeyType.Equals) {\n secondValue = this._modValue;\n }\n }\n\n this._modValue = secondValue;\n\n keyType = CalculatorKeyType.Equals;\n }\n }\n }\n\n this._previousKeyType = keyType;\n };\n}\n"]}
|