@astral/ui 4.81.0 → 4.83.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/ConfirmDialog/ConfirmDialog.js +3 -1
- package/components/ConfirmDialog/constants.d.ts +4 -0
- package/components/ConfirmDialog/constants.js +5 -0
- package/components/ConfirmDialog/index.d.ts +1 -0
- package/components/ConfirmDialog/index.js +1 -0
- package/components/ConfirmDialog/public.d.ts +1 -0
- package/components/ConfirmDialog/public.js +1 -0
- package/components/ConfirmDialog/types.d.ts +1 -1
- package/components/NewPopover/NewPopover.d.ts +1 -1
- package/components/NewPopover/NewPopover.js +14 -5
- package/components/NewPopover/constants.d.ts +7 -0
- package/components/NewPopover/constants.js +11 -0
- package/components/NewPopover/styles.d.ts +4 -0
- package/components/NewPopover/styles.js +100 -4
- package/components/NewPopover/types.d.ts +13 -0
- package/components/NewPopover/useLogic/useLogic.d.ts +7 -3
- package/components/NewPopover/useLogic/useLogic.js +15 -1
- package/components/Onboarding/Onboarding.d.ts +35 -0
- package/components/Onboarding/Onboarding.js +46 -0
- package/components/Onboarding/constants.d.ts +34 -0
- package/components/Onboarding/constants.js +34 -0
- package/components/Onboarding/core/ActiveStepStore/ActiveStepStore.d.ts +50 -0
- package/components/Onboarding/core/ActiveStepStore/ActiveStepStore.js +63 -0
- package/components/Onboarding/core/ActiveStepStore/index.d.ts +1 -0
- package/components/Onboarding/core/ActiveStepStore/index.js +1 -0
- package/components/Onboarding/core/ExitController/ExitController.d.ts +46 -0
- package/components/Onboarding/core/ExitController/ExitController.js +56 -0
- package/components/Onboarding/core/ExitController/index.d.ts +1 -0
- package/components/Onboarding/core/ExitController/index.js +1 -0
- package/components/Onboarding/core/OnboardingTour/OnboardingTour.d.ts +101 -0
- package/components/Onboarding/core/OnboardingTour/OnboardingTour.js +262 -0
- package/components/Onboarding/core/OnboardingTour/index.d.ts +1 -0
- package/components/Onboarding/core/OnboardingTour/index.js +1 -0
- package/components/Onboarding/core/ProgressStorage/ProgressStorage.d.ts +22 -0
- package/components/Onboarding/core/ProgressStorage/ProgressStorage.js +58 -0
- package/components/Onboarding/core/ProgressStorage/index.d.ts +1 -0
- package/components/Onboarding/core/ProgressStorage/index.js +1 -0
- package/components/Onboarding/core/StepNavigator/StepNavigator.d.ts +28 -0
- package/components/Onboarding/core/StepNavigator/StepNavigator.js +73 -0
- package/components/Onboarding/core/StepNavigator/index.d.ts +1 -0
- package/components/Onboarding/core/StepNavigator/index.js +1 -0
- package/components/Onboarding/core/StepResolver/StepResolver.d.ts +19 -0
- package/components/Onboarding/core/StepResolver/StepResolver.js +49 -0
- package/components/Onboarding/core/StepResolver/index.d.ts +1 -0
- package/components/Onboarding/core/StepResolver/index.js +1 -0
- package/components/Onboarding/core/StepsController/StepsController.d.ts +16 -0
- package/components/Onboarding/core/StepsController/StepsController.js +35 -0
- package/components/Onboarding/core/StepsController/index.d.ts +1 -0
- package/components/Onboarding/core/StepsController/index.js +1 -0
- package/components/Onboarding/faker.d.ts +27 -0
- package/components/Onboarding/faker.js +79 -0
- package/components/Onboarding/index.d.ts +5 -0
- package/components/Onboarding/index.js +3 -0
- package/components/Onboarding/public.d.ts +5 -0
- package/components/Onboarding/public.js +3 -0
- package/components/Onboarding/services/LocalStorageSaveStrategy/LocalStorageSaveStrategy.d.ts +20 -0
- package/components/Onboarding/services/LocalStorageSaveStrategy/LocalStorageSaveStrategy.js +24 -0
- package/components/Onboarding/services/LocalStorageSaveStrategy/index.d.ts +1 -0
- package/components/Onboarding/services/LocalStorageSaveStrategy/index.js +1 -0
- package/components/Onboarding/types/config.d.ts +18 -0
- package/components/Onboarding/types/config.js +1 -0
- package/components/Onboarding/types/index.d.ts +4 -0
- package/components/Onboarding/types/index.js +4 -0
- package/components/Onboarding/types/progress.d.ts +28 -0
- package/components/Onboarding/types/progress.js +1 -0
- package/components/Onboarding/types/step.d.ts +144 -0
- package/components/Onboarding/types/step.js +1 -0
- package/components/Onboarding/types/tour.d.ts +168 -0
- package/components/Onboarding/types/tour.js +1 -0
- package/components/Onboarding/ui/ConfirmExit/ConfirmExit.d.ts +10 -0
- package/components/Onboarding/ui/ConfirmExit/ConfirmExit.js +6 -0
- package/components/Onboarding/ui/ConfirmExit/index.d.ts +2 -0
- package/components/Onboarding/ui/ConfirmExit/index.js +1 -0
- package/components/Onboarding/ui/ConfirmExit/styles.d.ts +30 -0
- package/components/Onboarding/ui/ConfirmExit/styles.js +11 -0
- package/components/Onboarding/ui/OnboardingContainer/OnboardingContainer.d.ts +12 -0
- package/components/Onboarding/ui/OnboardingContainer/OnboardingContainer.js +15 -0
- package/components/Onboarding/ui/OnboardingContainer/OnboardingErrorBoundary/OnboardingErrorBoundary.d.ts +22 -0
- package/components/Onboarding/ui/OnboardingContainer/OnboardingErrorBoundary/OnboardingErrorBoundary.js +20 -0
- package/components/Onboarding/ui/OnboardingContainer/OnboardingErrorBoundary/index.d.ts +2 -0
- package/components/Onboarding/ui/OnboardingContainer/OnboardingErrorBoundary/index.js +1 -0
- package/components/Onboarding/ui/OnboardingContainer/index.d.ts +1 -0
- package/components/Onboarding/ui/OnboardingContainer/index.js +1 -0
- package/components/Onboarding/ui/OnboardingContainer/useLogic/index.d.ts +1 -0
- package/components/Onboarding/ui/OnboardingContainer/useLogic/index.js +1 -0
- package/components/Onboarding/ui/OnboardingContainer/useLogic/useLogic.d.ts +10 -0
- package/components/Onboarding/ui/OnboardingContainer/useLogic/useLogic.js +14 -0
- package/components/Onboarding/ui/Overlay/Overlay.d.ts +29 -0
- package/components/Onboarding/ui/Overlay/Overlay.js +24 -0
- package/components/Onboarding/ui/Overlay/constants.d.ts +7 -0
- package/components/Onboarding/ui/Overlay/constants.js +8 -0
- package/components/Onboarding/ui/Overlay/index.d.ts +2 -0
- package/components/Onboarding/ui/Overlay/index.js +1 -0
- package/components/Onboarding/ui/Overlay/styles.d.ts +22 -0
- package/components/Onboarding/ui/Overlay/styles.js +57 -0
- package/components/Onboarding/ui/Overlay/useLogic/index.d.ts +1 -0
- package/components/Onboarding/ui/Overlay/useLogic/index.js +1 -0
- package/components/Onboarding/ui/Overlay/useLogic/useLogic.d.ts +13 -0
- package/components/Onboarding/ui/Overlay/useLogic/useLogic.js +10 -0
- package/components/Onboarding/ui/StepStrategy/StepStrategy.d.ts +6 -0
- package/components/Onboarding/ui/StepStrategy/StepStrategy.js +17 -0
- package/components/Onboarding/ui/StepStrategy/index.d.ts +1 -0
- package/components/Onboarding/ui/StepStrategy/index.js +1 -0
- package/components/Onboarding/ui/StepStrategy/steps/HighlightStep/HighlightStep.d.ts +6 -0
- package/components/Onboarding/ui/StepStrategy/steps/HighlightStep/HighlightStep.js +19 -0
- package/components/Onboarding/ui/StepStrategy/steps/HighlightStep/index.d.ts +2 -0
- package/components/Onboarding/ui/StepStrategy/steps/HighlightStep/index.js +1 -0
- package/components/Onboarding/ui/StepStrategy/steps/HighlightStep/styles.d.ts +25 -0
- package/components/Onboarding/ui/StepStrategy/steps/HighlightStep/styles.js +56 -0
- package/components/Onboarding/ui/StepStrategy/steps/HighlightStep/useLogic/index.d.ts +1 -0
- package/components/Onboarding/ui/StepStrategy/steps/HighlightStep/useLogic/index.js +1 -0
- package/components/Onboarding/ui/StepStrategy/steps/HighlightStep/useLogic/useLogic.d.ts +12 -0
- package/components/Onboarding/ui/StepStrategy/steps/HighlightStep/useLogic/useLogic.js +37 -0
- package/components/Onboarding/ui/StepStrategy/steps/StandaloneStep/StandaloneStep.d.ts +6 -0
- package/components/Onboarding/ui/StepStrategy/steps/StandaloneStep/StandaloneStep.js +11 -0
- package/components/Onboarding/ui/StepStrategy/steps/StandaloneStep/index.d.ts +2 -0
- package/components/Onboarding/ui/StepStrategy/steps/StandaloneStep/index.js +1 -0
- package/components/Onboarding/ui/StepStrategy/steps/StandaloneStep/styles.d.ts +13 -0
- package/components/Onboarding/ui/StepStrategy/steps/StandaloneStep/styles.js +9 -0
- package/components/Onboarding/ui/StepStrategy/steps/StepFooter/ProgressDots/ProgressDots.d.ts +6 -0
- package/components/Onboarding/ui/StepStrategy/steps/StepFooter/ProgressDots/ProgressDots.js +15 -0
- package/components/Onboarding/ui/StepStrategy/steps/StepFooter/ProgressDots/constants.d.ts +4 -0
- package/components/Onboarding/ui/StepStrategy/steps/StepFooter/ProgressDots/constants.js +5 -0
- package/components/Onboarding/ui/StepStrategy/steps/StepFooter/ProgressDots/index.d.ts +2 -0
- package/components/Onboarding/ui/StepStrategy/steps/StepFooter/ProgressDots/index.js +1 -0
- package/components/Onboarding/ui/StepStrategy/steps/StepFooter/ProgressDots/styles.d.ts +9 -0
- package/components/Onboarding/ui/StepStrategy/steps/StepFooter/ProgressDots/styles.js +34 -0
- package/components/Onboarding/ui/StepStrategy/steps/StepFooter/StepFooter.d.ts +9 -0
- package/components/Onboarding/ui/StepStrategy/steps/StepFooter/StepFooter.js +18 -0
- package/components/Onboarding/ui/StepStrategy/steps/StepFooter/constants.d.ts +4 -0
- package/components/Onboarding/ui/StepStrategy/steps/StepFooter/constants.js +4 -0
- package/components/Onboarding/ui/StepStrategy/steps/StepFooter/index.d.ts +2 -0
- package/components/Onboarding/ui/StepStrategy/steps/StepFooter/index.js +1 -0
- package/components/Onboarding/ui/StepStrategy/steps/StepFooter/styles.d.ts +21 -0
- package/components/Onboarding/ui/StepStrategy/steps/StepFooter/styles.js +28 -0
- package/components/Onboarding/ui/StepStrategy/steps/StepFooter/useLogic/index.d.ts +1 -0
- package/components/Onboarding/ui/StepStrategy/steps/StepFooter/useLogic/index.js +1 -0
- package/components/Onboarding/ui/StepStrategy/steps/StepFooter/useLogic/useLogic.d.ts +16 -0
- package/components/Onboarding/ui/StepStrategy/steps/StepFooter/useLogic/useLogic.js +22 -0
- package/components/Onboarding/ui/StepStrategy/steps/types.d.ts +16 -0
- package/components/Onboarding/ui/StepStrategy/steps/types.js +1 -0
- package/components/Onboarding/ui/StepStrategy/useLogic/index.d.ts +1 -0
- package/components/Onboarding/ui/StepStrategy/useLogic/index.js +1 -0
- package/components/Onboarding/ui/StepStrategy/useLogic/useLogic.d.ts +47 -0
- package/components/Onboarding/ui/StepStrategy/useLogic/useLogic.js +51 -0
- package/components/Onboarding/ui/hooks/useActiveStep/index.d.ts +1 -0
- package/components/Onboarding/ui/hooks/useActiveStep/index.js +1 -0
- package/components/Onboarding/ui/hooks/useActiveStep/useActiveStep.d.ts +6 -0
- package/components/Onboarding/ui/hooks/useActiveStep/useActiveStep.js +7 -0
- package/components/Onboarding/ui/hooks/useDelayedActiveStep/index.d.ts +1 -0
- package/components/Onboarding/ui/hooks/useDelayedActiveStep/index.js +1 -0
- package/components/Onboarding/ui/hooks/useDelayedActiveStep/useDelayedActiveStep.d.ts +15 -0
- package/components/Onboarding/ui/hooks/useDelayedActiveStep/useDelayedActiveStep.js +19 -0
- package/components/Onboarding/ui/hooks/useFocusTrap/index.d.ts +1 -0
- package/components/Onboarding/ui/hooks/useFocusTrap/index.js +1 -0
- package/components/Onboarding/ui/hooks/useFocusTrap/useFocusTrap.d.ts +6 -0
- package/components/Onboarding/ui/hooks/useFocusTrap/useFocusTrap.js +33 -0
- package/components/Onboarding/ui/hooks/useKeyboardNav/index.d.ts +1 -0
- package/components/Onboarding/ui/hooks/useKeyboardNav/index.js +1 -0
- package/components/Onboarding/ui/hooks/useKeyboardNav/useKeyboardNav.d.ts +11 -0
- package/components/Onboarding/ui/hooks/useKeyboardNav/useKeyboardNav.js +62 -0
- package/components/Onboarding/ui/hooks/useStepTransition/index.d.ts +1 -0
- package/components/Onboarding/ui/hooks/useStepTransition/index.js +1 -0
- package/components/Onboarding/ui/hooks/useStepTransition/useStepTransition.d.ts +30 -0
- package/components/Onboarding/ui/hooks/useStepTransition/useStepTransition.js +46 -0
- package/components/Onboarding/ui/hooks/useTargetAnchor/index.d.ts +1 -0
- package/components/Onboarding/ui/hooks/useTargetAnchor/index.js +1 -0
- package/components/Onboarding/ui/hooks/useTargetAnchor/useTargetAnchor.d.ts +37 -0
- package/components/Onboarding/ui/hooks/useTargetAnchor/useTargetAnchor.js +56 -0
- package/components/Onboarding/ui/hooks/useTrackedRect/index.d.ts +1 -0
- package/components/Onboarding/ui/hooks/useTrackedRect/index.js +1 -0
- package/components/Onboarding/ui/hooks/useTrackedRect/useTrackedRect.d.ts +5 -0
- package/components/Onboarding/ui/hooks/useTrackedRect/useTrackedRect.js +43 -0
- package/components/Onboarding/ui/hooks/useViewportSize/index.d.ts +1 -0
- package/components/Onboarding/ui/hooks/useViewportSize/index.js +1 -0
- package/components/Onboarding/ui/hooks/useViewportSize/useViewportSize.d.ts +5 -0
- package/components/Onboarding/ui/hooks/useViewportSize/useViewportSize.js +14 -0
- package/components/Onboarding/ui/styles.d.ts +5 -0
- package/components/Onboarding/ui/styles.js +15 -0
- package/components/Onboarding/utils/createVirtualAnchor/createVirtualAnchor.d.ts +12 -0
- package/components/Onboarding/utils/createVirtualAnchor/createVirtualAnchor.js +6 -0
- package/components/Onboarding/utils/createVirtualAnchor/index.d.ts +1 -0
- package/components/Onboarding/utils/createVirtualAnchor/index.js +1 -0
- package/components/Onboarding/utils/geometry/index.d.ts +4 -0
- package/components/Onboarding/utils/geometry/index.js +4 -0
- package/components/Onboarding/utils/geometry/overlayPath/index.d.ts +1 -0
- package/components/Onboarding/utils/geometry/overlayPath/index.js +1 -0
- package/components/Onboarding/utils/geometry/overlayPath/overlayPath.d.ts +6 -0
- package/components/Onboarding/utils/geometry/overlayPath/overlayPath.js +29 -0
- package/components/Onboarding/utils/geometry/parseOffset/index.d.ts +1 -0
- package/components/Onboarding/utils/geometry/parseOffset/index.js +1 -0
- package/components/Onboarding/utils/geometry/parseOffset/parseOffset.d.ts +4 -0
- package/components/Onboarding/utils/geometry/parseOffset/parseOffset.js +5 -0
- package/components/Onboarding/utils/geometry/rect/index.d.ts +2 -0
- package/components/Onboarding/utils/geometry/rect/index.js +1 -0
- package/components/Onboarding/utils/geometry/rect/rect.d.ts +34 -0
- package/components/Onboarding/utils/geometry/rect/rect.js +60 -0
- package/components/Onboarding/utils/geometry/viewport/index.d.ts +2 -0
- package/components/Onboarding/utils/geometry/viewport/index.js +1 -0
- package/components/Onboarding/utils/geometry/viewport/viewport.d.ts +14 -0
- package/components/Onboarding/utils/geometry/viewport/viewport.js +10 -0
- package/components/Onboarding/utils/getScrollParents/getScrollParents.d.ts +7 -0
- package/components/Onboarding/utils/getScrollParents/getScrollParents.js +24 -0
- package/components/Onboarding/utils/getScrollParents/index.d.ts +1 -0
- package/components/Onboarding/utils/getScrollParents/index.js +1 -0
- package/components/Onboarding/utils/getTargetElement/getTargetElement.d.ts +4 -0
- package/components/Onboarding/utils/getTargetElement/getTargetElement.js +9 -0
- package/components/Onboarding/utils/getTargetElement/index.d.ts +1 -0
- package/components/Onboarding/utils/getTargetElement/index.js +1 -0
- package/components/Onboarding/utils/observeRemoval/index.d.ts +1 -0
- package/components/Onboarding/utils/observeRemoval/index.js +1 -0
- package/components/Onboarding/utils/observeRemoval/observeRemoval.d.ts +4 -0
- package/components/Onboarding/utils/observeRemoval/observeRemoval.js +13 -0
- package/components/Onboarding/utils/scrollIntoView/index.d.ts +1 -0
- package/components/Onboarding/utils/scrollIntoView/index.js +1 -0
- package/components/Onboarding/utils/scrollIntoView/scrollIntoView.d.ts +13 -0
- package/components/Onboarding/utils/scrollIntoView/scrollIntoView.js +85 -0
- package/components/Onboarding/utils/waitForElement/index.d.ts +2 -0
- package/components/Onboarding/utils/waitForElement/index.js +1 -0
- package/components/Onboarding/utils/waitForElement/waitForElement.d.ts +21 -0
- package/components/Onboarding/utils/waitForElement/waitForElement.js +45 -0
- package/components/Onboarding/validation/index.d.ts +1 -0
- package/components/Onboarding/validation/index.js +1 -0
- package/components/Onboarding/validation/validateTourConfig/index.d.ts +1 -0
- package/components/Onboarding/validation/validateTourConfig/index.js +1 -0
- package/components/Onboarding/validation/validateTourConfig/validateTourConfig.d.ts +12 -0
- package/components/Onboarding/validation/validateTourConfig/validateTourConfig.js +52 -0
- package/components/TagsList/Tag/Tag.js +3 -2
- package/node/components/ConfirmDialog/ConfirmDialog.js +3 -1
- package/node/components/ConfirmDialog/constants.d.ts +4 -0
- package/node/components/ConfirmDialog/constants.js +8 -0
- package/node/components/ConfirmDialog/index.d.ts +1 -0
- package/node/components/ConfirmDialog/index.js +3 -0
- package/node/components/ConfirmDialog/public.d.ts +1 -0
- package/node/components/ConfirmDialog/public.js +3 -0
- package/node/components/ConfirmDialog/types.d.ts +1 -1
- package/node/components/NewPopover/NewPopover.d.ts +1 -1
- package/node/components/NewPopover/NewPopover.js +12 -3
- package/node/components/NewPopover/constants.d.ts +7 -0
- package/node/components/NewPopover/constants.js +12 -1
- package/node/components/NewPopover/styles.d.ts +4 -0
- package/node/components/NewPopover/styles.js +101 -5
- package/node/components/NewPopover/types.d.ts +13 -0
- package/node/components/NewPopover/useLogic/useLogic.d.ts +7 -3
- package/node/components/NewPopover/useLogic/useLogic.js +15 -1
- package/node/components/Onboarding/Onboarding.d.ts +35 -0
- package/node/components/Onboarding/Onboarding.js +51 -0
- package/node/components/Onboarding/constants.d.ts +34 -0
- package/node/components/Onboarding/constants.js +37 -0
- package/node/components/Onboarding/core/ActiveStepStore/ActiveStepStore.d.ts +50 -0
- package/node/components/Onboarding/core/ActiveStepStore/ActiveStepStore.js +67 -0
- package/node/components/Onboarding/core/ActiveStepStore/index.d.ts +1 -0
- package/node/components/Onboarding/core/ActiveStepStore/index.js +17 -0
- package/node/components/Onboarding/core/ExitController/ExitController.d.ts +46 -0
- package/node/components/Onboarding/core/ExitController/ExitController.js +60 -0
- package/node/components/Onboarding/core/ExitController/index.d.ts +1 -0
- package/node/components/Onboarding/core/ExitController/index.js +17 -0
- package/node/components/Onboarding/core/OnboardingTour/OnboardingTour.d.ts +101 -0
- package/node/components/Onboarding/core/OnboardingTour/OnboardingTour.js +266 -0
- package/node/components/Onboarding/core/OnboardingTour/index.d.ts +1 -0
- package/node/components/Onboarding/core/OnboardingTour/index.js +5 -0
- package/node/components/Onboarding/core/ProgressStorage/ProgressStorage.d.ts +22 -0
- package/node/components/Onboarding/core/ProgressStorage/ProgressStorage.js +62 -0
- package/node/components/Onboarding/core/ProgressStorage/index.d.ts +1 -0
- package/node/components/Onboarding/core/ProgressStorage/index.js +17 -0
- package/node/components/Onboarding/core/StepNavigator/StepNavigator.d.ts +28 -0
- package/node/components/Onboarding/core/StepNavigator/StepNavigator.js +77 -0
- package/node/components/Onboarding/core/StepNavigator/index.d.ts +1 -0
- package/node/components/Onboarding/core/StepNavigator/index.js +17 -0
- package/node/components/Onboarding/core/StepResolver/StepResolver.d.ts +19 -0
- package/node/components/Onboarding/core/StepResolver/StepResolver.js +53 -0
- package/node/components/Onboarding/core/StepResolver/index.d.ts +1 -0
- package/node/components/Onboarding/core/StepResolver/index.js +17 -0
- package/node/components/Onboarding/core/StepsController/StepsController.d.ts +16 -0
- package/node/components/Onboarding/core/StepsController/StepsController.js +39 -0
- package/node/components/Onboarding/core/StepsController/index.d.ts +1 -0
- package/node/components/Onboarding/core/StepsController/index.js +17 -0
- package/node/components/Onboarding/faker.d.ts +27 -0
- package/node/components/Onboarding/faker.js +88 -0
- package/node/components/Onboarding/index.d.ts +5 -0
- package/node/components/Onboarding/index.js +9 -0
- package/node/components/Onboarding/public.d.ts +5 -0
- package/node/components/Onboarding/public.js +9 -0
- package/node/components/Onboarding/services/LocalStorageSaveStrategy/LocalStorageSaveStrategy.d.ts +20 -0
- package/node/components/Onboarding/services/LocalStorageSaveStrategy/LocalStorageSaveStrategy.js +29 -0
- package/node/components/Onboarding/services/LocalStorageSaveStrategy/index.d.ts +1 -0
- package/node/components/Onboarding/services/LocalStorageSaveStrategy/index.js +17 -0
- package/node/components/Onboarding/types/config.d.ts +18 -0
- package/node/components/Onboarding/types/config.js +2 -0
- package/node/components/Onboarding/types/index.d.ts +4 -0
- package/node/components/Onboarding/types/index.js +20 -0
- package/node/components/Onboarding/types/progress.d.ts +28 -0
- package/node/components/Onboarding/types/progress.js +2 -0
- package/node/components/Onboarding/types/step.d.ts +144 -0
- package/node/components/Onboarding/types/step.js +2 -0
- package/node/components/Onboarding/types/tour.d.ts +168 -0
- package/node/components/Onboarding/types/tour.js +2 -0
- package/node/components/Onboarding/ui/ConfirmExit/ConfirmExit.d.ts +10 -0
- package/node/components/Onboarding/ui/ConfirmExit/ConfirmExit.js +10 -0
- package/node/components/Onboarding/ui/ConfirmExit/index.d.ts +2 -0
- package/node/components/Onboarding/ui/ConfirmExit/index.js +5 -0
- package/node/components/Onboarding/ui/ConfirmExit/styles.d.ts +30 -0
- package/node/components/Onboarding/ui/ConfirmExit/styles.js +14 -0
- package/node/components/Onboarding/ui/OnboardingContainer/OnboardingContainer.d.ts +12 -0
- package/node/components/Onboarding/ui/OnboardingContainer/OnboardingContainer.js +19 -0
- package/node/components/Onboarding/ui/OnboardingContainer/OnboardingErrorBoundary/OnboardingErrorBoundary.d.ts +22 -0
- package/node/components/Onboarding/ui/OnboardingContainer/OnboardingErrorBoundary/OnboardingErrorBoundary.js +24 -0
- package/node/components/Onboarding/ui/OnboardingContainer/OnboardingErrorBoundary/index.d.ts +2 -0
- package/node/components/Onboarding/ui/OnboardingContainer/OnboardingErrorBoundary/index.js +5 -0
- package/node/components/Onboarding/ui/OnboardingContainer/index.d.ts +1 -0
- package/node/components/Onboarding/ui/OnboardingContainer/index.js +5 -0
- package/node/components/Onboarding/ui/OnboardingContainer/useLogic/index.d.ts +1 -0
- package/node/components/Onboarding/ui/OnboardingContainer/useLogic/index.js +5 -0
- package/node/components/Onboarding/ui/OnboardingContainer/useLogic/useLogic.d.ts +10 -0
- package/node/components/Onboarding/ui/OnboardingContainer/useLogic/useLogic.js +18 -0
- package/node/components/Onboarding/ui/Overlay/Overlay.d.ts +29 -0
- package/node/components/Onboarding/ui/Overlay/Overlay.js +28 -0
- package/node/components/Onboarding/ui/Overlay/constants.d.ts +7 -0
- package/node/components/Onboarding/ui/Overlay/constants.js +11 -0
- package/node/components/Onboarding/ui/Overlay/index.d.ts +2 -0
- package/node/components/Onboarding/ui/Overlay/index.js +5 -0
- package/node/components/Onboarding/ui/Overlay/styles.d.ts +22 -0
- package/node/components/Onboarding/ui/Overlay/styles.js +60 -0
- package/node/components/Onboarding/ui/Overlay/useLogic/index.d.ts +1 -0
- package/node/components/Onboarding/ui/Overlay/useLogic/index.js +5 -0
- package/node/components/Onboarding/ui/Overlay/useLogic/useLogic.d.ts +13 -0
- package/node/components/Onboarding/ui/Overlay/useLogic/useLogic.js +14 -0
- package/node/components/Onboarding/ui/StepStrategy/StepStrategy.d.ts +6 -0
- package/node/components/Onboarding/ui/StepStrategy/StepStrategy.js +21 -0
- package/node/components/Onboarding/ui/StepStrategy/index.d.ts +1 -0
- package/node/components/Onboarding/ui/StepStrategy/index.js +17 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/HighlightStep/HighlightStep.d.ts +6 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/HighlightStep/HighlightStep.js +23 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/HighlightStep/index.d.ts +2 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/HighlightStep/index.js +5 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/HighlightStep/styles.d.ts +25 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/HighlightStep/styles.js +59 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/HighlightStep/useLogic/index.d.ts +1 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/HighlightStep/useLogic/index.js +5 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/HighlightStep/useLogic/useLogic.d.ts +12 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/HighlightStep/useLogic/useLogic.js +41 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/StandaloneStep/StandaloneStep.d.ts +6 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/StandaloneStep/StandaloneStep.js +15 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/StandaloneStep/index.d.ts +2 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/StandaloneStep/index.js +5 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/StandaloneStep/styles.d.ts +13 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/StandaloneStep/styles.js +12 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/ProgressDots/ProgressDots.d.ts +6 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/ProgressDots/ProgressDots.js +19 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/ProgressDots/constants.d.ts +4 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/ProgressDots/constants.js +8 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/ProgressDots/index.d.ts +2 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/ProgressDots/index.js +5 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/ProgressDots/styles.d.ts +9 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/ProgressDots/styles.js +37 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/StepFooter.d.ts +9 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/StepFooter.js +22 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/constants.d.ts +4 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/constants.js +7 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/index.d.ts +2 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/index.js +5 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/styles.d.ts +21 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/styles.js +31 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/useLogic/index.d.ts +1 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/useLogic/index.js +5 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/useLogic/useLogic.d.ts +16 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/StepFooter/useLogic/useLogic.js +26 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/types.d.ts +16 -0
- package/node/components/Onboarding/ui/StepStrategy/steps/types.js +2 -0
- package/node/components/Onboarding/ui/StepStrategy/useLogic/index.d.ts +1 -0
- package/node/components/Onboarding/ui/StepStrategy/useLogic/index.js +5 -0
- package/node/components/Onboarding/ui/StepStrategy/useLogic/useLogic.d.ts +47 -0
- package/node/components/Onboarding/ui/StepStrategy/useLogic/useLogic.js +55 -0
- package/node/components/Onboarding/ui/hooks/useActiveStep/index.d.ts +1 -0
- package/node/components/Onboarding/ui/hooks/useActiveStep/index.js +5 -0
- package/node/components/Onboarding/ui/hooks/useActiveStep/useActiveStep.d.ts +6 -0
- package/node/components/Onboarding/ui/hooks/useActiveStep/useActiveStep.js +11 -0
- package/node/components/Onboarding/ui/hooks/useDelayedActiveStep/index.d.ts +1 -0
- package/node/components/Onboarding/ui/hooks/useDelayedActiveStep/index.js +17 -0
- package/node/components/Onboarding/ui/hooks/useDelayedActiveStep/useDelayedActiveStep.d.ts +15 -0
- package/node/components/Onboarding/ui/hooks/useDelayedActiveStep/useDelayedActiveStep.js +23 -0
- package/node/components/Onboarding/ui/hooks/useFocusTrap/index.d.ts +1 -0
- package/node/components/Onboarding/ui/hooks/useFocusTrap/index.js +5 -0
- package/node/components/Onboarding/ui/hooks/useFocusTrap/useFocusTrap.d.ts +6 -0
- package/node/components/Onboarding/ui/hooks/useFocusTrap/useFocusTrap.js +37 -0
- package/node/components/Onboarding/ui/hooks/useKeyboardNav/index.d.ts +1 -0
- package/node/components/Onboarding/ui/hooks/useKeyboardNav/index.js +5 -0
- package/node/components/Onboarding/ui/hooks/useKeyboardNav/useKeyboardNav.d.ts +11 -0
- package/node/components/Onboarding/ui/hooks/useKeyboardNav/useKeyboardNav.js +66 -0
- package/node/components/Onboarding/ui/hooks/useStepTransition/index.d.ts +1 -0
- package/node/components/Onboarding/ui/hooks/useStepTransition/index.js +5 -0
- package/node/components/Onboarding/ui/hooks/useStepTransition/useStepTransition.d.ts +30 -0
- package/node/components/Onboarding/ui/hooks/useStepTransition/useStepTransition.js +50 -0
- package/node/components/Onboarding/ui/hooks/useTargetAnchor/index.d.ts +1 -0
- package/node/components/Onboarding/ui/hooks/useTargetAnchor/index.js +17 -0
- package/node/components/Onboarding/ui/hooks/useTargetAnchor/useTargetAnchor.d.ts +37 -0
- package/node/components/Onboarding/ui/hooks/useTargetAnchor/useTargetAnchor.js +60 -0
- package/node/components/Onboarding/ui/hooks/useTrackedRect/index.d.ts +1 -0
- package/node/components/Onboarding/ui/hooks/useTrackedRect/index.js +5 -0
- package/node/components/Onboarding/ui/hooks/useTrackedRect/useTrackedRect.d.ts +5 -0
- package/node/components/Onboarding/ui/hooks/useTrackedRect/useTrackedRect.js +47 -0
- package/node/components/Onboarding/ui/hooks/useViewportSize/index.d.ts +1 -0
- package/node/components/Onboarding/ui/hooks/useViewportSize/index.js +5 -0
- package/node/components/Onboarding/ui/hooks/useViewportSize/useViewportSize.d.ts +5 -0
- package/node/components/Onboarding/ui/hooks/useViewportSize/useViewportSize.js +18 -0
- package/node/components/Onboarding/ui/styles.d.ts +5 -0
- package/node/components/Onboarding/ui/styles.js +19 -0
- package/node/components/Onboarding/utils/createVirtualAnchor/createVirtualAnchor.d.ts +12 -0
- package/node/components/Onboarding/utils/createVirtualAnchor/createVirtualAnchor.js +10 -0
- package/node/components/Onboarding/utils/createVirtualAnchor/index.d.ts +1 -0
- package/node/components/Onboarding/utils/createVirtualAnchor/index.js +17 -0
- package/node/components/Onboarding/utils/geometry/index.d.ts +4 -0
- package/node/components/Onboarding/utils/geometry/index.js +20 -0
- package/node/components/Onboarding/utils/geometry/overlayPath/index.d.ts +1 -0
- package/node/components/Onboarding/utils/geometry/overlayPath/index.js +5 -0
- package/node/components/Onboarding/utils/geometry/overlayPath/overlayPath.d.ts +6 -0
- package/node/components/Onboarding/utils/geometry/overlayPath/overlayPath.js +33 -0
- package/node/components/Onboarding/utils/geometry/parseOffset/index.d.ts +1 -0
- package/node/components/Onboarding/utils/geometry/parseOffset/index.js +5 -0
- package/node/components/Onboarding/utils/geometry/parseOffset/parseOffset.d.ts +4 -0
- package/node/components/Onboarding/utils/geometry/parseOffset/parseOffset.js +9 -0
- package/node/components/Onboarding/utils/geometry/rect/index.d.ts +2 -0
- package/node/components/Onboarding/utils/geometry/rect/index.js +9 -0
- package/node/components/Onboarding/utils/geometry/rect/rect.d.ts +34 -0
- package/node/components/Onboarding/utils/geometry/rect/rect.js +69 -0
- package/node/components/Onboarding/utils/geometry/viewport/index.d.ts +2 -0
- package/node/components/Onboarding/utils/geometry/viewport/index.js +5 -0
- package/node/components/Onboarding/utils/geometry/viewport/viewport.d.ts +14 -0
- package/node/components/Onboarding/utils/geometry/viewport/viewport.js +14 -0
- package/node/components/Onboarding/utils/getScrollParents/getScrollParents.d.ts +7 -0
- package/node/components/Onboarding/utils/getScrollParents/getScrollParents.js +28 -0
- package/node/components/Onboarding/utils/getScrollParents/index.d.ts +1 -0
- package/node/components/Onboarding/utils/getScrollParents/index.js +5 -0
- package/node/components/Onboarding/utils/getTargetElement/getTargetElement.d.ts +4 -0
- package/node/components/Onboarding/utils/getTargetElement/getTargetElement.js +13 -0
- package/node/components/Onboarding/utils/getTargetElement/index.d.ts +1 -0
- package/node/components/Onboarding/utils/getTargetElement/index.js +5 -0
- package/node/components/Onboarding/utils/observeRemoval/index.d.ts +1 -0
- package/node/components/Onboarding/utils/observeRemoval/index.js +17 -0
- package/node/components/Onboarding/utils/observeRemoval/observeRemoval.d.ts +4 -0
- package/node/components/Onboarding/utils/observeRemoval/observeRemoval.js +17 -0
- package/node/components/Onboarding/utils/scrollIntoView/index.d.ts +1 -0
- package/node/components/Onboarding/utils/scrollIntoView/index.js +5 -0
- package/node/components/Onboarding/utils/scrollIntoView/scrollIntoView.d.ts +13 -0
- package/node/components/Onboarding/utils/scrollIntoView/scrollIntoView.js +89 -0
- package/node/components/Onboarding/utils/waitForElement/index.d.ts +2 -0
- package/node/components/Onboarding/utils/waitForElement/index.js +5 -0
- package/node/components/Onboarding/utils/waitForElement/waitForElement.d.ts +21 -0
- package/node/components/Onboarding/utils/waitForElement/waitForElement.js +49 -0
- package/node/components/Onboarding/validation/index.d.ts +1 -0
- package/node/components/Onboarding/validation/index.js +6 -0
- package/node/components/Onboarding/validation/validateTourConfig/index.d.ts +1 -0
- package/node/components/Onboarding/validation/validateTourConfig/index.js +6 -0
- package/node/components/Onboarding/validation/validateTourConfig/validateTourConfig.d.ts +12 -0
- package/node/components/Onboarding/validation/validateTourConfig/validateTourConfig.js +80 -0
- package/node/components/TagsList/Tag/Tag.js +3 -2
- package/package.json +3 -2
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.InnerContainer = exports.AnimatedWrapper = exports.StyledMuiPopper = void 0;
|
|
6
|
+
exports.InnerContainer = exports.AnimatedWrapper = exports.PopoverArrow = exports.StyledMuiPopper = void 0;
|
|
7
7
|
const Popper_1 = __importDefault(require("@mui/material/Popper"));
|
|
8
8
|
const styled_1 = require("../styled");
|
|
9
9
|
const constants_1 = require("./constants");
|
|
@@ -12,6 +12,12 @@ exports.StyledMuiPopper = (0, styled_1.styled)(Popper_1.default) `
|
|
|
12
12
|
z-index: ${({ theme }) => theme.zIndex.tooltip};
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
+
/* Anchor ушёл за скролл/вьюпорт — popper вешает reference-hidden.
|
|
16
|
+
Стрелка иначе тянется к пропавшему anchor и торчит криво — прячем её. */
|
|
17
|
+
&[data-popper-reference-hidden] .${constants_1.popoverClassnames.arrow} {
|
|
18
|
+
visibility: hidden;
|
|
19
|
+
}
|
|
20
|
+
|
|
15
21
|
&&[data-popper-placement*='top'] .${constants_1.popoverClassnames.animatedWrapper} {
|
|
16
22
|
transform-origin: bottom center;
|
|
17
23
|
|
|
@@ -35,16 +41,106 @@ exports.StyledMuiPopper = (0, styled_1.styled)(Popper_1.default) `
|
|
|
35
41
|
|
|
36
42
|
margin-left: ${({ theme }) => theme.spacing(2)};
|
|
37
43
|
}
|
|
44
|
+
|
|
45
|
+
/* Со стрелкой отступ больше */
|
|
46
|
+
&&[data-popper-placement*='top']
|
|
47
|
+
.${constants_1.popoverClassnames.animatedWrapperHasArrow} {
|
|
48
|
+
margin-bottom: ${({ theme }) => theme.spacing(4)};
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
&&[data-popper-placement*='bottom']
|
|
52
|
+
.${constants_1.popoverClassnames.animatedWrapperHasArrow} {
|
|
53
|
+
margin-top: ${({ theme }) => theme.spacing(4)};
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
&&[data-popper-placement*='left']
|
|
57
|
+
.${constants_1.popoverClassnames.animatedWrapperHasArrow} {
|
|
58
|
+
margin-right: ${({ theme }) => theme.spacing(4)};
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
&&[data-popper-placement*='right']
|
|
62
|
+
.${constants_1.popoverClassnames.animatedWrapperHasArrow} {
|
|
63
|
+
margin-left: ${({ theme }) => theme.spacing(4)};
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
&&[data-popper-placement*='bottom'] .${constants_1.popoverClassnames.arrow} {
|
|
67
|
+
top: -16px;
|
|
68
|
+
|
|
69
|
+
width: 23px;
|
|
70
|
+
height: 16px;
|
|
71
|
+
|
|
72
|
+
&::before {
|
|
73
|
+
border-color: transparent transparent
|
|
74
|
+
${({ theme }) => theme.palette.background.paper};
|
|
75
|
+
border-width: 0 11.5px 16px;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
&&[data-popper-placement*='top'] .${constants_1.popoverClassnames.arrow} {
|
|
80
|
+
bottom: -16px;
|
|
81
|
+
|
|
82
|
+
width: 23px;
|
|
83
|
+
height: 16px;
|
|
84
|
+
|
|
85
|
+
&::before {
|
|
86
|
+
border-color: ${({ theme }) => theme.palette.background.paper} transparent
|
|
87
|
+
transparent;
|
|
88
|
+
border-width: 16px 11.5px 0;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
&&[data-popper-placement*='right'] .${constants_1.popoverClassnames.arrow} {
|
|
93
|
+
left: -16px;
|
|
94
|
+
|
|
95
|
+
width: 16px;
|
|
96
|
+
height: 23px;
|
|
97
|
+
|
|
98
|
+
&::before {
|
|
99
|
+
border-color: transparent ${({ theme }) => theme.palette.background.paper}
|
|
100
|
+
transparent transparent;
|
|
101
|
+
border-width: 11.5px 16px 11.5px 0;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
&&[data-popper-placement*='left'] .${constants_1.popoverClassnames.arrow} {
|
|
106
|
+
right: -16px;
|
|
107
|
+
|
|
108
|
+
width: 16px;
|
|
109
|
+
height: 23px;
|
|
110
|
+
|
|
111
|
+
&::before {
|
|
112
|
+
border-color: transparent transparent transparent
|
|
113
|
+
${({ theme }) => theme.palette.background.paper};
|
|
114
|
+
border-width: 11.5px 0 11.5px 16px;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
`;
|
|
118
|
+
exports.PopoverArrow = styled_1.styled.span `
|
|
119
|
+
position: absolute;
|
|
120
|
+
|
|
121
|
+
&::before {
|
|
122
|
+
content: '';
|
|
123
|
+
|
|
124
|
+
display: block;
|
|
125
|
+
|
|
126
|
+
width: 0;
|
|
127
|
+
height: 0;
|
|
128
|
+
margin: auto;
|
|
129
|
+
|
|
130
|
+
border-style: solid;
|
|
131
|
+
}
|
|
38
132
|
`;
|
|
39
133
|
exports.AnimatedWrapper = styled_1.styled.div `
|
|
134
|
+
position: relative;
|
|
135
|
+
|
|
40
136
|
animation: popover-grow-out
|
|
41
|
-
${({ theme }) => theme.transitions.duration.
|
|
42
|
-
${({ theme }) => theme.transitions.easing.
|
|
137
|
+
${({ theme }) => theme.transitions.duration.leavingScreen}ms
|
|
138
|
+
${({ theme }) => theme.transitions.easing.easeIn} forwards;
|
|
43
139
|
|
|
44
140
|
&.${constants_1.popoverClassnames.animatedWrapperOpen} {
|
|
45
141
|
animation: popover-grow-in
|
|
46
|
-
${({ theme }) => theme.transitions.duration.
|
|
47
|
-
${({ theme }) => theme.transitions.easing.
|
|
142
|
+
${({ theme }) => theme.transitions.duration.standard}ms
|
|
143
|
+
${({ theme }) => theme.transitions.easing.easeOut} forwards;
|
|
48
144
|
}
|
|
49
145
|
|
|
50
146
|
@keyframes popover-grow-in {
|
|
@@ -5,6 +5,14 @@ type NewPopoverVirtualElement = {
|
|
|
5
5
|
getBoundingClientRect: () => DOMRect;
|
|
6
6
|
};
|
|
7
7
|
export type NewPopoverAnchorEl = null | NewPopoverVirtualElement | HTMLElement | (() => HTMLElement) | (() => NewPopoverVirtualElement);
|
|
8
|
+
/**
|
|
9
|
+
* Модификатор Popper.js.
|
|
10
|
+
*/
|
|
11
|
+
export type NewPopoverModifier = {
|
|
12
|
+
name: string;
|
|
13
|
+
enabled?: boolean;
|
|
14
|
+
options?: Record<string, unknown>;
|
|
15
|
+
};
|
|
8
16
|
export type NewPopoverProps = {
|
|
9
17
|
/**
|
|
10
18
|
* Якорь позиционирования
|
|
@@ -49,5 +57,10 @@ export type NewPopoverProps = {
|
|
|
49
57
|
* @default false
|
|
50
58
|
*/
|
|
51
59
|
disableAutoFocus?: boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Показывать стрелку, указывающую на anchorEl
|
|
62
|
+
* @default false
|
|
63
|
+
*/
|
|
64
|
+
hasArrow?: boolean;
|
|
52
65
|
};
|
|
53
66
|
export {};
|
|
@@ -1,11 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { type NewPopoverModifier, type NewPopoverProps } from '../types';
|
|
3
|
+
type UseLogicParams = Pick<NewPopoverProps, 'isOpen' | 'anchorEl' | 'onClose' | 'disableAutoFocus' | 'hasArrow'>;
|
|
4
|
+
export declare const useLogic: ({ isOpen, anchorEl, onClose, disableAutoFocus, hasArrow, }: UseLogicParams) => {
|
|
4
5
|
isMobile: boolean;
|
|
5
6
|
isOpened: boolean;
|
|
6
7
|
shouldRender: boolean;
|
|
7
8
|
handleAnimationEnd: () => void;
|
|
8
9
|
handleClose: (event: Event) => void;
|
|
9
10
|
setContainerRef: (node: HTMLDivElement | null) => void;
|
|
11
|
+
arrowElement: HTMLSpanElement | null;
|
|
12
|
+
setArrowElement: import("react").Dispatch<import("react").SetStateAction<HTMLSpanElement | null>>;
|
|
13
|
+
mergedModifiers: NewPopoverModifier[];
|
|
10
14
|
};
|
|
11
15
|
export {};
|
|
@@ -7,10 +7,12 @@ const useEscapeClickEffect_1 = require("../../useEscapeClickEffect");
|
|
|
7
7
|
const useFocusTrapEffect_1 = require("../../useFocusTrapEffect");
|
|
8
8
|
const usePopoverAnimation_1 = require("../../usePopoverAnimation");
|
|
9
9
|
const useViewportType_1 = require("../../useViewportType");
|
|
10
|
+
const constants_1 = require("../constants");
|
|
10
11
|
const utils_1 = require("../utils");
|
|
11
|
-
const useLogic = ({ isOpen, anchorEl, onClose, disableAutoFocus, }) => {
|
|
12
|
+
const useLogic = ({ isOpen, anchorEl, onClose, disableAutoFocus, hasArrow, }) => {
|
|
12
13
|
const containerRef = (0, react_1.useRef)(null);
|
|
13
14
|
const [isContainerMounted, setIsContainerMounted] = (0, react_1.useState)(false);
|
|
15
|
+
const [arrowElement, setArrowElement] = (0, react_1.useState)(null);
|
|
14
16
|
const setContainerRef = (0, react_1.useCallback)((node) => {
|
|
15
17
|
containerRef.current = node;
|
|
16
18
|
setIsContainerMounted(Boolean(node));
|
|
@@ -46,6 +48,15 @@ const useLogic = ({ isOpen, anchorEl, onClose, disableAutoFocus, }) => {
|
|
|
46
48
|
allowOutsideClick: true,
|
|
47
49
|
fallbackFocus: () => containerRef.current || document.body,
|
|
48
50
|
});
|
|
51
|
+
const mergedModifiers = (0, react_1.useMemo)(() => {
|
|
52
|
+
if (!hasArrow) {
|
|
53
|
+
return constants_1.DEFAULT_MODIFIERS;
|
|
54
|
+
}
|
|
55
|
+
return [
|
|
56
|
+
...constants_1.DEFAULT_MODIFIERS,
|
|
57
|
+
{ name: 'arrow', enabled: true, options: { element: arrowElement } },
|
|
58
|
+
];
|
|
59
|
+
}, [hasArrow, arrowElement]);
|
|
49
60
|
return {
|
|
50
61
|
isMobile,
|
|
51
62
|
isOpened,
|
|
@@ -53,6 +64,9 @@ const useLogic = ({ isOpen, anchorEl, onClose, disableAutoFocus, }) => {
|
|
|
53
64
|
handleAnimationEnd,
|
|
54
65
|
handleClose,
|
|
55
66
|
setContainerRef,
|
|
67
|
+
arrowElement,
|
|
68
|
+
setArrowElement,
|
|
69
|
+
mergedModifiers,
|
|
56
70
|
};
|
|
57
71
|
};
|
|
58
72
|
exports.useLogic = useLogic;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { ErrorService } from '../services/ErrorService';
|
|
2
|
+
import { ActiveStepStore } from './core/ActiveStepStore';
|
|
3
|
+
import { OnboardingTour } from './core/OnboardingTour';
|
|
4
|
+
import { type OnboardingConfig, type OnboardingTourConfig, type SaveStrategyFactory, type Step } from './types';
|
|
5
|
+
/**
|
|
6
|
+
* Фасад Onboarding, который собирает туры.
|
|
7
|
+
*
|
|
8
|
+
* Создаётся через createOnboarding.
|
|
9
|
+
*/
|
|
10
|
+
export declare class Onboarding {
|
|
11
|
+
private readonly saveStrategyFactory;
|
|
12
|
+
private readonly errorService;
|
|
13
|
+
readonly activeStepStore: ActiveStepStore;
|
|
14
|
+
constructor(saveStrategyFactory: SaveStrategyFactory, errorService: ErrorService);
|
|
15
|
+
/**
|
|
16
|
+
* Создаёт тур.
|
|
17
|
+
*/
|
|
18
|
+
createTour: <const TSteps extends readonly Step[]>(tourConfig: OnboardingTourConfig<TSteps>) => OnboardingTour<TSteps>;
|
|
19
|
+
/**
|
|
20
|
+
* Закрывает показанный сейчас тур.
|
|
21
|
+
*/
|
|
22
|
+
closeActiveTour: () => void;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Создаёт экземпляр онбординга.
|
|
26
|
+
*
|
|
27
|
+
* Экземпляр передаётся контейнеру явно: `<OnboardingContainer onboarding={...}/>`.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* const onboarding = createOnboarding({ saveStrategy });
|
|
31
|
+
* const tour = onboarding.createTour({ name: 'intro', steps: [...] });
|
|
32
|
+
* <OnboardingContainer onboarding={onboarding} />
|
|
33
|
+
* tour.start();
|
|
34
|
+
*/
|
|
35
|
+
export declare const createOnboarding: (config?: OnboardingConfig) => Onboarding;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createOnboarding = exports.Onboarding = void 0;
|
|
4
|
+
const ErrorService_1 = require("../services/ErrorService");
|
|
5
|
+
const ActiveStepStore_1 = require("./core/ActiveStepStore");
|
|
6
|
+
const OnboardingTour_1 = require("./core/OnboardingTour");
|
|
7
|
+
const ProgressStorage_1 = require("./core/ProgressStorage");
|
|
8
|
+
const LocalStorageSaveStrategy_1 = require("./services/LocalStorageSaveStrategy");
|
|
9
|
+
const validation_1 = require("./validation");
|
|
10
|
+
/**
|
|
11
|
+
* Фасад Onboarding, который собирает туры.
|
|
12
|
+
*
|
|
13
|
+
* Создаётся через createOnboarding.
|
|
14
|
+
*/
|
|
15
|
+
class Onboarding {
|
|
16
|
+
constructor(saveStrategyFactory, errorService) {
|
|
17
|
+
this.saveStrategyFactory = saveStrategyFactory;
|
|
18
|
+
this.errorService = errorService;
|
|
19
|
+
this.activeStepStore = new ActiveStepStore_1.ActiveStepStore();
|
|
20
|
+
/**
|
|
21
|
+
* Создаёт тур.
|
|
22
|
+
*/
|
|
23
|
+
this.createTour = (tourConfig) => {
|
|
24
|
+
// Fail-fast на некорректной конфигурации до сборки тура.
|
|
25
|
+
(0, validation_1.validateTourConfig)(tourConfig);
|
|
26
|
+
// Ключ хранилища уникален на тур, поэтому стратегия строится на createTour.
|
|
27
|
+
const progressStorage = new ProgressStorage_1.ProgressStorage(this.saveStrategyFactory(tourConfig.name));
|
|
28
|
+
return new OnboardingTour_1.OnboardingTour(tourConfig, progressStorage, this.activeStepStore, this.errorService);
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Закрывает показанный сейчас тур.
|
|
32
|
+
*/
|
|
33
|
+
this.closeActiveTour = () => {
|
|
34
|
+
this.activeStepStore.closeActiveTour();
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.Onboarding = Onboarding;
|
|
39
|
+
/**
|
|
40
|
+
* Создаёт экземпляр онбординга.
|
|
41
|
+
*
|
|
42
|
+
* Экземпляр передаётся контейнеру явно: `<OnboardingContainer onboarding={...}/>`.
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* const onboarding = createOnboarding({ saveStrategy });
|
|
46
|
+
* const tour = onboarding.createTour({ name: 'intro', steps: [...] });
|
|
47
|
+
* <OnboardingContainer onboarding={onboarding} />
|
|
48
|
+
* tour.start();
|
|
49
|
+
*/
|
|
50
|
+
const createOnboarding = (config = {}) => new Onboarding(config.saveStrategy ?? LocalStorageSaveStrategy_1.createLocalStorageSaveStrategy, ErrorService_1.ErrorService.getInstance());
|
|
51
|
+
exports.createOnboarding = createOnboarding;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* data-атрибут, по которому highlight-шаг находит свой элемент.
|
|
3
|
+
*/
|
|
4
|
+
export declare const TOUR_ID_ATTR = "data-tour-id";
|
|
5
|
+
/**
|
|
6
|
+
* Тайм-аут по умолчанию ожидания элемента highlight-шага в DOM (мс).
|
|
7
|
+
* `0` — элемент ищется синхронно. Ожидание включается только при заданном
|
|
8
|
+
* `waitForTimeout`.
|
|
9
|
+
*/
|
|
10
|
+
export declare const DEFAULT_WAIT_ELEMENT_TIMEOUT_MS = 0;
|
|
11
|
+
/**
|
|
12
|
+
* Базовый отступ hole overlay вокруг подсвечиваемого элемента (px).
|
|
13
|
+
* Применяется, когда у шага не задан `highlightOffset`.
|
|
14
|
+
*/
|
|
15
|
+
export declare const DEFAULT_HIGHLIGHT_PADDING = 8;
|
|
16
|
+
/**
|
|
17
|
+
* Скругление углов hole overlay (px).
|
|
18
|
+
*/
|
|
19
|
+
export declare const DEFAULT_HIGHLIGHT_RADIUS = 8;
|
|
20
|
+
/**
|
|
21
|
+
* Поведение автоскролла к элементу highlight-шага.
|
|
22
|
+
*/
|
|
23
|
+
export declare const SCROLL_BEHAVIOR: ScrollBehavior;
|
|
24
|
+
/**
|
|
25
|
+
* Надбавки к z-index собственных поверхностей онбординга поверх
|
|
26
|
+
* `theme.zIndex.tooltip`, чтобы они перекрывали
|
|
27
|
+
* обычные UIKit-модалки/подсказки.
|
|
28
|
+
*/
|
|
29
|
+
export declare const ONBOARDING_Z_INDEX_OFFSET: {
|
|
30
|
+
/** Overlay-backdrop и диалоги (standalone-шаг, confirm-exit). */
|
|
31
|
+
readonly base: 10;
|
|
32
|
+
/** Highlight-popover — всплывает над базовым слоем. */
|
|
33
|
+
readonly popover: 30;
|
|
34
|
+
};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ONBOARDING_Z_INDEX_OFFSET = exports.SCROLL_BEHAVIOR = exports.DEFAULT_HIGHLIGHT_RADIUS = exports.DEFAULT_HIGHLIGHT_PADDING = exports.DEFAULT_WAIT_ELEMENT_TIMEOUT_MS = exports.TOUR_ID_ATTR = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* data-атрибут, по которому highlight-шаг находит свой элемент.
|
|
6
|
+
*/
|
|
7
|
+
exports.TOUR_ID_ATTR = 'data-tour-id';
|
|
8
|
+
/**
|
|
9
|
+
* Тайм-аут по умолчанию ожидания элемента highlight-шага в DOM (мс).
|
|
10
|
+
* `0` — элемент ищется синхронно. Ожидание включается только при заданном
|
|
11
|
+
* `waitForTimeout`.
|
|
12
|
+
*/
|
|
13
|
+
exports.DEFAULT_WAIT_ELEMENT_TIMEOUT_MS = 0;
|
|
14
|
+
/**
|
|
15
|
+
* Базовый отступ hole overlay вокруг подсвечиваемого элемента (px).
|
|
16
|
+
* Применяется, когда у шага не задан `highlightOffset`.
|
|
17
|
+
*/
|
|
18
|
+
exports.DEFAULT_HIGHLIGHT_PADDING = 8;
|
|
19
|
+
/**
|
|
20
|
+
* Скругление углов hole overlay (px).
|
|
21
|
+
*/
|
|
22
|
+
exports.DEFAULT_HIGHLIGHT_RADIUS = 8;
|
|
23
|
+
/**
|
|
24
|
+
* Поведение автоскролла к элементу highlight-шага.
|
|
25
|
+
*/
|
|
26
|
+
exports.SCROLL_BEHAVIOR = 'smooth';
|
|
27
|
+
/**
|
|
28
|
+
* Надбавки к z-index собственных поверхностей онбординга поверх
|
|
29
|
+
* `theme.zIndex.tooltip`, чтобы они перекрывали
|
|
30
|
+
* обычные UIKit-модалки/подсказки.
|
|
31
|
+
*/
|
|
32
|
+
exports.ONBOARDING_Z_INDEX_OFFSET = {
|
|
33
|
+
/** Overlay-backdrop и диалоги (standalone-шаг, confirm-exit). */
|
|
34
|
+
base: 10,
|
|
35
|
+
/** Highlight-popover — всплывает над базовым слоем. */
|
|
36
|
+
popover: 30,
|
|
37
|
+
};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { type ActiveStepState } from '../../types';
|
|
2
|
+
type Listener = VoidFunction;
|
|
3
|
+
/**
|
|
4
|
+
* Ссылка на тур, которую держит store: по ней он опознаёт владельца слота
|
|
5
|
+
* (сравнение по идентичности экземпляра, а не по имени) и может закрыть тур.
|
|
6
|
+
*/
|
|
7
|
+
export type TourHandle = {
|
|
8
|
+
/**
|
|
9
|
+
* Закрытие тура штатным путём (используется `Onboarding.closeActiveTour`).
|
|
10
|
+
*/
|
|
11
|
+
close: () => void;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Store активного шага, связывающий туры с `<OnboardingContainer/>`.
|
|
15
|
+
*/
|
|
16
|
+
export declare class ActiveStepStore {
|
|
17
|
+
private activeStep;
|
|
18
|
+
private activeTour;
|
|
19
|
+
private readonly listeners;
|
|
20
|
+
subscribe: (listener: Listener) => () => void;
|
|
21
|
+
/**
|
|
22
|
+
* Состояние активного шага (null — тур не показан).
|
|
23
|
+
*/
|
|
24
|
+
getActiveStep: () => ActiveStepState | null;
|
|
25
|
+
/**
|
|
26
|
+
* Публикует шаг тура и делает этот тур владельцем слота.
|
|
27
|
+
*/
|
|
28
|
+
setActiveStep: (step: ActiveStepState, tour: TourHandle) => void;
|
|
29
|
+
/**
|
|
30
|
+
* Владеет ли слотом сейчас именно тур (пустой store — `false`).
|
|
31
|
+
*/
|
|
32
|
+
isActiveTour: (tour: TourHandle) => boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Показан ли сейчас шаг тура. Имена шагов могут совпадать
|
|
35
|
+
* в разных турах, поэтому проверяется и тур, и имя.
|
|
36
|
+
*/
|
|
37
|
+
isActiveStep: (tour: TourHandle, stepName: string) => boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Освобождает слот, если тур сейчас его владелец.
|
|
40
|
+
*/
|
|
41
|
+
release: (tour: TourHandle) => void;
|
|
42
|
+
/**
|
|
43
|
+
* Закрытие активного тура обычным путём.
|
|
44
|
+
* Внешний триггер: размонтирование онбординга, смена юзера.
|
|
45
|
+
*/
|
|
46
|
+
closeActiveTour: () => void;
|
|
47
|
+
private clear;
|
|
48
|
+
private emit;
|
|
49
|
+
}
|
|
50
|
+
export {};
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ActiveStepStore = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Store активного шага, связывающий туры с `<OnboardingContainer/>`.
|
|
6
|
+
*/
|
|
7
|
+
class ActiveStepStore {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.activeStep = null;
|
|
10
|
+
this.activeTour = null;
|
|
11
|
+
this.listeners = new Set();
|
|
12
|
+
this.subscribe = (listener) => {
|
|
13
|
+
this.listeners.add(listener);
|
|
14
|
+
return () => {
|
|
15
|
+
this.listeners.delete(listener);
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Состояние активного шага (null — тур не показан).
|
|
20
|
+
*/
|
|
21
|
+
this.getActiveStep = () => this.activeStep;
|
|
22
|
+
/**
|
|
23
|
+
* Публикует шаг тура и делает этот тур владельцем слота.
|
|
24
|
+
*/
|
|
25
|
+
this.setActiveStep = (step, tour) => {
|
|
26
|
+
this.activeStep = step;
|
|
27
|
+
this.activeTour = tour;
|
|
28
|
+
this.emit();
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Владеет ли слотом сейчас именно тур (пустой store — `false`).
|
|
32
|
+
*/
|
|
33
|
+
this.isActiveTour = (tour) => this.activeTour === tour;
|
|
34
|
+
/**
|
|
35
|
+
* Показан ли сейчас шаг тура. Имена шагов могут совпадать
|
|
36
|
+
* в разных турах, поэтому проверяется и тур, и имя.
|
|
37
|
+
*/
|
|
38
|
+
this.isActiveStep = (tour, stepName) => this.isActiveTour(tour) && this.activeStep?.step.name === stepName;
|
|
39
|
+
/**
|
|
40
|
+
* Освобождает слот, если тур сейчас его владелец.
|
|
41
|
+
*/
|
|
42
|
+
this.release = (tour) => {
|
|
43
|
+
if (this.isActiveTour(tour)) {
|
|
44
|
+
this.clear();
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Закрытие активного тура обычным путём.
|
|
49
|
+
* Внешний триггер: размонтирование онбординга, смена юзера.
|
|
50
|
+
*/
|
|
51
|
+
this.closeActiveTour = () => {
|
|
52
|
+
this.activeTour?.close();
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
clear() {
|
|
56
|
+
if (this.activeStep === null) {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
this.activeStep = null;
|
|
60
|
+
this.activeTour = null;
|
|
61
|
+
this.emit();
|
|
62
|
+
}
|
|
63
|
+
emit() {
|
|
64
|
+
this.listeners.forEach((listener) => listener());
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
exports.ActiveStepStore = ActiveStepStore;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './ActiveStepStore';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./ActiveStepStore"), exports);
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
export type ExitControllerParams = {
|
|
2
|
+
/**
|
|
3
|
+
* Фактическое закрытие тура. Вызывается только после подтверждения в
|
|
4
|
+
* ConfirmExit, поэтому всегда означает пользовательский выход (тур помечается
|
|
5
|
+
* прерванным).
|
|
6
|
+
*/
|
|
7
|
+
close: () => void;
|
|
8
|
+
/**
|
|
9
|
+
* Уведомить о смене состояния (перерисовать активный шаг) — например, чтобы
|
|
10
|
+
* показать/скрыть ConfirmExit.
|
|
11
|
+
*/
|
|
12
|
+
onChange: () => void;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Единая точка выхода из тура.
|
|
16
|
+
*
|
|
17
|
+
* Все пути закрытия (Esc, клик по overlay, крестик, клик мимо) идут через
|
|
18
|
+
* requestClose и всегда требуют подтверждение
|
|
19
|
+
* (ConfirmExit); закрытие происходит только по confirm.
|
|
20
|
+
*/
|
|
21
|
+
export declare class ExitController {
|
|
22
|
+
private readonly params;
|
|
23
|
+
private confirming;
|
|
24
|
+
constructor(params: ExitControllerParams);
|
|
25
|
+
/**
|
|
26
|
+
* Идёт ли запрос подтверждения выхода.
|
|
27
|
+
*/
|
|
28
|
+
get isConfirming(): boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Запрос на закрытие — показывает ConfirmExit. Повторные вызовы во время
|
|
31
|
+
* подтверждения игнорируются.
|
|
32
|
+
*/
|
|
33
|
+
requestClose: () => void;
|
|
34
|
+
/**
|
|
35
|
+
* Подтверждение выхода из ConfirmExit.
|
|
36
|
+
*/
|
|
37
|
+
confirm: () => void;
|
|
38
|
+
/**
|
|
39
|
+
* Отмена выхода — продолжаем тур.
|
|
40
|
+
*/
|
|
41
|
+
cancel: () => void;
|
|
42
|
+
/**
|
|
43
|
+
* Сброс состояния (при старте/закрытии тура).
|
|
44
|
+
*/
|
|
45
|
+
reset: () => void;
|
|
46
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ExitController = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Единая точка выхода из тура.
|
|
6
|
+
*
|
|
7
|
+
* Все пути закрытия (Esc, клик по overlay, крестик, клик мимо) идут через
|
|
8
|
+
* requestClose и всегда требуют подтверждение
|
|
9
|
+
* (ConfirmExit); закрытие происходит только по confirm.
|
|
10
|
+
*/
|
|
11
|
+
class ExitController {
|
|
12
|
+
constructor(params) {
|
|
13
|
+
this.params = params;
|
|
14
|
+
this.confirming = false;
|
|
15
|
+
/**
|
|
16
|
+
* Запрос на закрытие — показывает ConfirmExit. Повторные вызовы во время
|
|
17
|
+
* подтверждения игнорируются.
|
|
18
|
+
*/
|
|
19
|
+
this.requestClose = () => {
|
|
20
|
+
if (this.confirming) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
this.confirming = true;
|
|
24
|
+
this.params.onChange();
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Подтверждение выхода из ConfirmExit.
|
|
28
|
+
*/
|
|
29
|
+
this.confirm = () => {
|
|
30
|
+
if (!this.confirming) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
this.confirming = false;
|
|
34
|
+
this.params.close();
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Отмена выхода — продолжаем тур.
|
|
38
|
+
*/
|
|
39
|
+
this.cancel = () => {
|
|
40
|
+
if (!this.confirming) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
this.confirming = false;
|
|
44
|
+
this.params.onChange();
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Сброс состояния (при старте/закрытии тура).
|
|
48
|
+
*/
|
|
49
|
+
this.reset = () => {
|
|
50
|
+
this.confirming = false;
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Идёт ли запрос подтверждения выхода.
|
|
55
|
+
*/
|
|
56
|
+
get isConfirming() {
|
|
57
|
+
return this.confirming;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
exports.ExitController = ExitController;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './ExitController';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./ExitController"), exports);
|