@astral/ui 4.82.0 → 4.84.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/_mocks/LoggerMock/LoggerMock.d.ts +16 -0
- package/_mocks/LoggerMock/LoggerMock.js +18 -0
- package/_mocks/LoggerMock/index.d.ts +1 -0
- package/_mocks/LoggerMock/index.js +1 -0
- package/components/ConfigProvider/ConfigProvider.d.ts +7 -1
- package/components/ConfigProvider/ConfigProvider.js +14 -8
- 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/DashboardLayout/Header/useLogic/useLogic.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 +56 -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 +48 -0
- package/components/Onboarding/core/ExitController/ExitController.js +59 -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 +103 -0
- package/components/Onboarding/core/OnboardingTour/OnboardingTour.js +283 -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 +24 -0
- package/components/Onboarding/core/ProgressStorage/ProgressStorage.js +62 -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/node/_mocks/LoggerMock/LoggerMock.d.ts +16 -0
- package/node/_mocks/LoggerMock/LoggerMock.js +23 -0
- package/node/_mocks/LoggerMock/index.d.ts +1 -0
- package/node/_mocks/LoggerMock/index.js +17 -0
- package/node/components/ConfigProvider/ConfigProvider.d.ts +7 -1
- package/node/components/ConfigProvider/ConfigProvider.js +13 -7
- 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/DashboardLayout/Header/useLogic/useLogic.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 +61 -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 +48 -0
- package/node/components/Onboarding/core/ExitController/ExitController.js +63 -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 +103 -0
- package/node/components/Onboarding/core/OnboardingTour/OnboardingTour.js +287 -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 +24 -0
- package/node/components/Onboarding/core/ProgressStorage/ProgressStorage.js +66 -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/services/Logger/Logger.d.ts +45 -0
- package/node/services/Logger/Logger.js +72 -0
- package/node/services/Logger/index.d.ts +10 -0
- package/node/services/Logger/index.js +17 -0
- package/package.json +3 -2
- package/services/Logger/Logger.d.ts +45 -0
- package/services/Logger/Logger.js +68 -0
- package/services/Logger/index.d.ts +10 -0
- package/services/Logger/index.js +12 -0
|
@@ -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,48 @@
|
|
|
1
|
+
import { type Logger } from '../../../../services/Logger';
|
|
2
|
+
export type ExitControllerParams = {
|
|
3
|
+
/**
|
|
4
|
+
* Фактическое закрытие тура. Вызывается только после подтверждения в
|
|
5
|
+
* ConfirmExit, поэтому всегда означает пользовательский выход (тур помечается
|
|
6
|
+
* прерванным).
|
|
7
|
+
*/
|
|
8
|
+
close: () => void;
|
|
9
|
+
/**
|
|
10
|
+
* Уведомить о смене состояния (перерисовать активный шаг) — например, чтобы
|
|
11
|
+
* показать/скрыть ConfirmExit.
|
|
12
|
+
*/
|
|
13
|
+
onChange: () => void;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Единая точка выхода из тура.
|
|
17
|
+
*
|
|
18
|
+
* Все пути закрытия (Esc, клик по overlay, крестик, клик мимо) идут через
|
|
19
|
+
* requestClose и всегда требуют подтверждение
|
|
20
|
+
* (ConfirmExit); закрытие происходит только по confirm.
|
|
21
|
+
*/
|
|
22
|
+
export declare class ExitController {
|
|
23
|
+
private readonly params;
|
|
24
|
+
private readonly logger;
|
|
25
|
+
private confirming;
|
|
26
|
+
constructor(params: ExitControllerParams, logger: Logger);
|
|
27
|
+
/**
|
|
28
|
+
* Идёт ли запрос подтверждения выхода.
|
|
29
|
+
*/
|
|
30
|
+
get isConfirming(): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Запрос на закрытие — показывает ConfirmExit. Повторные вызовы во время
|
|
33
|
+
* подтверждения игнорируются.
|
|
34
|
+
*/
|
|
35
|
+
requestClose: () => void;
|
|
36
|
+
/**
|
|
37
|
+
* Подтверждение выхода из ConfirmExit.
|
|
38
|
+
*/
|
|
39
|
+
confirm: () => void;
|
|
40
|
+
/**
|
|
41
|
+
* Отмена выхода — продолжаем тур.
|
|
42
|
+
*/
|
|
43
|
+
cancel: () => void;
|
|
44
|
+
/**
|
|
45
|
+
* Сброс состояния (при старте/закрытии тура).
|
|
46
|
+
*/
|
|
47
|
+
reset: () => void;
|
|
48
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
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, logger) {
|
|
13
|
+
this.params = params;
|
|
14
|
+
this.logger = logger;
|
|
15
|
+
this.confirming = false;
|
|
16
|
+
/**
|
|
17
|
+
* Запрос на закрытие — показывает ConfirmExit. Повторные вызовы во время
|
|
18
|
+
* подтверждения игнорируются.
|
|
19
|
+
*/
|
|
20
|
+
this.requestClose = () => {
|
|
21
|
+
if (this.confirming) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
this.logger.debug('Запрошен выход из тура, показано подтверждение');
|
|
25
|
+
this.confirming = true;
|
|
26
|
+
this.params.onChange();
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Подтверждение выхода из ConfirmExit.
|
|
30
|
+
*/
|
|
31
|
+
this.confirm = () => {
|
|
32
|
+
if (!this.confirming) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
this.confirming = false;
|
|
36
|
+
this.params.close();
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Отмена выхода — продолжаем тур.
|
|
40
|
+
*/
|
|
41
|
+
this.cancel = () => {
|
|
42
|
+
if (!this.confirming) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
this.logger.debug('Выход из тура отменён');
|
|
46
|
+
this.confirming = false;
|
|
47
|
+
this.params.onChange();
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* Сброс состояния (при старте/закрытии тура).
|
|
51
|
+
*/
|
|
52
|
+
this.reset = () => {
|
|
53
|
+
this.confirming = false;
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Идёт ли запрос подтверждения выхода.
|
|
58
|
+
*/
|
|
59
|
+
get isConfirming() {
|
|
60
|
+
return this.confirming;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
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);
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { type Logger } from '../../../../services/Logger';
|
|
2
|
+
import { type ErrorService } from '../../../services/ErrorService';
|
|
3
|
+
import { type OnboardingTourConfig, type Step, type StepHandles, type TourProgress } from '../../types';
|
|
4
|
+
import { type ActiveStepStore } from '../ActiveStepStore';
|
|
5
|
+
import { type ProgressStorage } from '../ProgressStorage';
|
|
6
|
+
/**
|
|
7
|
+
* Управляющий объект одного тура: связывает навигацию (StepNavigator), разрешение
|
|
8
|
+
* значений шага (StepResolver), рантайм-переопределения (StepsController),
|
|
9
|
+
* выход (ExitController) и сохранение прогресса (ProgressStorage), публикуя
|
|
10
|
+
* состояние активного шага в store своего экземпляра онбординга.
|
|
11
|
+
*/
|
|
12
|
+
export declare class OnboardingTour<TSteps extends readonly Step[] = readonly Step[]> {
|
|
13
|
+
private readonly config;
|
|
14
|
+
private readonly progressStorage;
|
|
15
|
+
private readonly activeStepStore;
|
|
16
|
+
private readonly errorService;
|
|
17
|
+
private readonly logger;
|
|
18
|
+
private readonly navigator;
|
|
19
|
+
private readonly resolver;
|
|
20
|
+
private readonly stepsController;
|
|
21
|
+
private readonly exitController;
|
|
22
|
+
private status;
|
|
23
|
+
/**
|
|
24
|
+
* Типобезопасный доступ к шагам по их именам.
|
|
25
|
+
*/
|
|
26
|
+
readonly steps: StepHandles<TSteps>;
|
|
27
|
+
constructor(config: OnboardingTourConfig<TSteps>, progressStorage: ProgressStorage, activeStepStore: ActiveStepStore, errorService: ErrorService, logger: Logger);
|
|
28
|
+
/**
|
|
29
|
+
* Запуск тура с первого шага.
|
|
30
|
+
*/
|
|
31
|
+
start: () => Promise<void>;
|
|
32
|
+
/**
|
|
33
|
+
* Снимает паузу шага с `waitForResume`
|
|
34
|
+
*/
|
|
35
|
+
resume: () => void;
|
|
36
|
+
/**
|
|
37
|
+
* Показ тура из сохранённого прогресса по запросу пользователя
|
|
38
|
+
*/
|
|
39
|
+
restore: () => Promise<void>;
|
|
40
|
+
/**
|
|
41
|
+
* Переход к следующему шагу. На последнем шаге завершает тур.
|
|
42
|
+
*/
|
|
43
|
+
next: () => void;
|
|
44
|
+
/**
|
|
45
|
+
* Переход к предыдущему шагу.
|
|
46
|
+
*/
|
|
47
|
+
prev: () => void;
|
|
48
|
+
/**
|
|
49
|
+
* Переход к шагу по его позиции среди видимых шагов.
|
|
50
|
+
*/
|
|
51
|
+
goToPosition: (position: number) => void;
|
|
52
|
+
/**
|
|
53
|
+
* Завершение тура: помечаем пройденным (`isCompleted`) и закрываем.
|
|
54
|
+
*/
|
|
55
|
+
finish: () => void;
|
|
56
|
+
/**
|
|
57
|
+
* Программное закрытие тура.
|
|
58
|
+
* В отличие от навигации работает в любом состоянии: закрывает и тур,
|
|
59
|
+
* ожидающий `resume()`.
|
|
60
|
+
*/
|
|
61
|
+
close: () => void;
|
|
62
|
+
/**
|
|
63
|
+
* Запрос выхода.
|
|
64
|
+
*/
|
|
65
|
+
private requestClose;
|
|
66
|
+
/**
|
|
67
|
+
* Сбрасывает сохранённый прогресс тура
|
|
68
|
+
* После сброса `start()` снова покажет тур с первого шага.
|
|
69
|
+
*/
|
|
70
|
+
resetProgress: () => Promise<void>;
|
|
71
|
+
/**
|
|
72
|
+
* Возвращает сохранённый прогресс тура
|
|
73
|
+
*/
|
|
74
|
+
getState: () => Promise<TourProgress | null>;
|
|
75
|
+
/**
|
|
76
|
+
* Разрешена ли навигация сейчас: тур показан на экране и владеет активным
|
|
77
|
+
* шагом store
|
|
78
|
+
*/
|
|
79
|
+
private canNavigate;
|
|
80
|
+
/**
|
|
81
|
+
* Единая точка закрытия тура
|
|
82
|
+
*/
|
|
83
|
+
private exit;
|
|
84
|
+
/**
|
|
85
|
+
* Переход к текущему шагу. Шаг с `waitForResume` ставит тур в ожидание
|
|
86
|
+
* и не отрисовывается до явного `resume()`.
|
|
87
|
+
*/
|
|
88
|
+
private enterCurrentStep;
|
|
89
|
+
/**
|
|
90
|
+
* Очищает store, только если активный шаг принадлежит именно этому туру.
|
|
91
|
+
*/
|
|
92
|
+
private releaseStep;
|
|
93
|
+
private handleError;
|
|
94
|
+
/**
|
|
95
|
+
* Публикует состояние текущего шага в store.
|
|
96
|
+
*/
|
|
97
|
+
private publishStep;
|
|
98
|
+
private buildActiveStep;
|
|
99
|
+
/**
|
|
100
|
+
* Перерисовывает шаг после изменения его override-содержимого
|
|
101
|
+
*/
|
|
102
|
+
private refreshStep;
|
|
103
|
+
}
|
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OnboardingTour = void 0;
|
|
4
|
+
const ExitController_1 = require("../ExitController");
|
|
5
|
+
const StepNavigator_1 = require("../StepNavigator");
|
|
6
|
+
const StepResolver_1 = require("../StepResolver");
|
|
7
|
+
const StepsController_1 = require("../StepsController");
|
|
8
|
+
/**
|
|
9
|
+
* Управляющий объект одного тура: связывает навигацию (StepNavigator), разрешение
|
|
10
|
+
* значений шага (StepResolver), рантайм-переопределения (StepsController),
|
|
11
|
+
* выход (ExitController) и сохранение прогресса (ProgressStorage), публикуя
|
|
12
|
+
* состояние активного шага в store своего экземпляра онбординга.
|
|
13
|
+
*/
|
|
14
|
+
class OnboardingTour {
|
|
15
|
+
constructor(config, progressStorage, activeStepStore, errorService, logger) {
|
|
16
|
+
this.config = config;
|
|
17
|
+
this.progressStorage = progressStorage;
|
|
18
|
+
this.activeStepStore = activeStepStore;
|
|
19
|
+
this.errorService = errorService;
|
|
20
|
+
this.logger = logger;
|
|
21
|
+
this.status = 'idle';
|
|
22
|
+
/**
|
|
23
|
+
* Запуск тура с первого шага.
|
|
24
|
+
*/
|
|
25
|
+
this.start = async () => {
|
|
26
|
+
const persisted = await this.progressStorage.load();
|
|
27
|
+
if (persisted?.isDismissed) {
|
|
28
|
+
this.logger.info('Тур пропущен: ранее закрыт пользователем');
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
this.logger.info('Тур запущен');
|
|
32
|
+
this.exitController.reset();
|
|
33
|
+
this.navigator.reset();
|
|
34
|
+
this.enterCurrentStep();
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Снимает паузу шага с `waitForResume`
|
|
38
|
+
*/
|
|
39
|
+
this.resume = () => {
|
|
40
|
+
if (this.status !== 'waiting-resume') {
|
|
41
|
+
this.logger.debug('resume проигнорирован: тур не на паузе');
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
this.logger.debug('Тур возобновлён после паузы');
|
|
45
|
+
this.status = 'running';
|
|
46
|
+
this.publishStep();
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Показ тура из сохранённого прогресса по запросу пользователя
|
|
50
|
+
*/
|
|
51
|
+
this.restore = async () => {
|
|
52
|
+
const persisted = await this.progressStorage.load();
|
|
53
|
+
this.logger.info('Тур восстановлен');
|
|
54
|
+
this.exitController.reset();
|
|
55
|
+
this.navigator.reset();
|
|
56
|
+
// Пройденный тур переигрываем с начала; иначе продолжаем с сохранённого шага.
|
|
57
|
+
if (persisted && !persisted.isCompleted) {
|
|
58
|
+
this.navigator.goToStep(persisted.lastStepName);
|
|
59
|
+
}
|
|
60
|
+
this.enterCurrentStep();
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Переход к следующему шагу. На последнем шаге завершает тур.
|
|
64
|
+
*/
|
|
65
|
+
this.next = () => {
|
|
66
|
+
if (!this.canNavigate()) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
if (this.navigator.hasNext) {
|
|
70
|
+
// Обратный вызов шага — только при реальном переходе (на последнем next = finish).
|
|
71
|
+
this.navigator.current.onNextClick?.();
|
|
72
|
+
this.navigator.next();
|
|
73
|
+
this.progressStorage.save({
|
|
74
|
+
lastStepName: this.navigator.current.name,
|
|
75
|
+
isCompleted: false,
|
|
76
|
+
isDismissed: false,
|
|
77
|
+
});
|
|
78
|
+
this.enterCurrentStep();
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
this.finish();
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* Переход к предыдущему шагу.
|
|
86
|
+
*/
|
|
87
|
+
this.prev = () => {
|
|
88
|
+
if (!this.canNavigate()) {
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
if (this.navigator.hasPrev) {
|
|
92
|
+
// Обратный вызов шага — только при реальном переходе.
|
|
93
|
+
this.navigator.current.onPrevClick?.();
|
|
94
|
+
this.navigator.prev();
|
|
95
|
+
this.progressStorage.save({
|
|
96
|
+
lastStepName: this.navigator.current.name,
|
|
97
|
+
isCompleted: false,
|
|
98
|
+
isDismissed: false,
|
|
99
|
+
});
|
|
100
|
+
this.enterCurrentStep();
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
/**
|
|
104
|
+
* Переход к шагу по его позиции среди видимых шагов.
|
|
105
|
+
*/
|
|
106
|
+
this.goToPosition = (position) => {
|
|
107
|
+
if (!this.canNavigate()) {
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
const previous = this.navigator.position;
|
|
111
|
+
this.navigator.goToPosition(position);
|
|
112
|
+
if (this.navigator.position === previous) {
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
this.progressStorage.save({
|
|
116
|
+
lastStepName: this.navigator.current.name,
|
|
117
|
+
isCompleted: false,
|
|
118
|
+
isDismissed: false,
|
|
119
|
+
});
|
|
120
|
+
this.enterCurrentStep();
|
|
121
|
+
};
|
|
122
|
+
/**
|
|
123
|
+
* Завершение тура: помечаем пройденным (`isCompleted`) и закрываем.
|
|
124
|
+
*/
|
|
125
|
+
this.finish = () => {
|
|
126
|
+
if (!this.canNavigate()) {
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
this.progressStorage.save({
|
|
130
|
+
lastStepName: this.navigator.current.name,
|
|
131
|
+
isCompleted: true,
|
|
132
|
+
isDismissed: true,
|
|
133
|
+
});
|
|
134
|
+
this.exit('completed');
|
|
135
|
+
};
|
|
136
|
+
/**
|
|
137
|
+
* Программное закрытие тура.
|
|
138
|
+
* В отличие от навигации работает в любом состоянии: закрывает и тур,
|
|
139
|
+
* ожидающий `resume()`.
|
|
140
|
+
*/
|
|
141
|
+
this.close = () => {
|
|
142
|
+
this.exit('closed');
|
|
143
|
+
};
|
|
144
|
+
/**
|
|
145
|
+
* Запрос выхода.
|
|
146
|
+
*/
|
|
147
|
+
this.requestClose = () => {
|
|
148
|
+
if (!this.navigator.hasNext) {
|
|
149
|
+
this.finish();
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
this.exitController.requestClose();
|
|
153
|
+
};
|
|
154
|
+
/**
|
|
155
|
+
* Сбрасывает сохранённый прогресс тура
|
|
156
|
+
* После сброса `start()` снова покажет тур с первого шага.
|
|
157
|
+
*/
|
|
158
|
+
this.resetProgress = async () => {
|
|
159
|
+
await this.progressStorage.reset();
|
|
160
|
+
this.logger.debug('Прогресс тура сброшен');
|
|
161
|
+
};
|
|
162
|
+
/**
|
|
163
|
+
* Возвращает сохранённый прогресс тура
|
|
164
|
+
*/
|
|
165
|
+
this.getState = () => this.progressStorage.load();
|
|
166
|
+
/**
|
|
167
|
+
* Единая точка закрытия тура
|
|
168
|
+
*/
|
|
169
|
+
this.exit = (reason) => {
|
|
170
|
+
if (this.status === 'idle') {
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
if (reason === 'dismissed') {
|
|
174
|
+
this.progressStorage.save({
|
|
175
|
+
lastStepName: this.navigator.current.name,
|
|
176
|
+
isCompleted: false,
|
|
177
|
+
isDismissed: true,
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
this.logger.info('Тур закрыт', { reason });
|
|
181
|
+
this.status = 'idle';
|
|
182
|
+
this.exitController.reset();
|
|
183
|
+
this.releaseStep();
|
|
184
|
+
this.config.onClose?.(reason);
|
|
185
|
+
};
|
|
186
|
+
this.handleError = (error) => {
|
|
187
|
+
this.logger.error('Ошибка тура', error);
|
|
188
|
+
this.errorService.captureException(error, {
|
|
189
|
+
place: 'Onboarding',
|
|
190
|
+
tourName: this.config.name,
|
|
191
|
+
step: this.navigator.current?.name,
|
|
192
|
+
});
|
|
193
|
+
this.config.onError?.(error);
|
|
194
|
+
this.exit('closed');
|
|
195
|
+
};
|
|
196
|
+
this.navigator = new StepNavigator_1.StepNavigator(config.steps);
|
|
197
|
+
this.resolver = new StepResolver_1.StepResolver(config);
|
|
198
|
+
this.stepsController = new StepsController_1.StepsController(config.steps, (stepName) => this.refreshStep(stepName));
|
|
199
|
+
this.steps = this.stepsController.handles;
|
|
200
|
+
const exitParams = {
|
|
201
|
+
close: () => this.exit('dismissed'),
|
|
202
|
+
onChange: () => this.publishStep(),
|
|
203
|
+
};
|
|
204
|
+
this.exitController = new ExitController_1.ExitController(exitParams, this.logger);
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Разрешена ли навигация сейчас: тур показан на экране и владеет активным
|
|
208
|
+
* шагом store
|
|
209
|
+
*/
|
|
210
|
+
canNavigate() {
|
|
211
|
+
const isNavigable = this.status === 'running' && this.activeStepStore.isActiveTour(this);
|
|
212
|
+
if (!isNavigable) {
|
|
213
|
+
this.logger.debug('Навигация проигнорирована: тур неактивен');
|
|
214
|
+
}
|
|
215
|
+
return isNavigable;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Переход к текущему шагу. Шаг с `waitForResume` ставит тур в ожидание
|
|
219
|
+
* и не отрисовывается до явного `resume()`.
|
|
220
|
+
*/
|
|
221
|
+
enterCurrentStep() {
|
|
222
|
+
// Показывать нечего: у тура нет ни одного видимого (не-пропущенного) шага.
|
|
223
|
+
if (this.navigator.total === 0) {
|
|
224
|
+
this.logger.warn('Нет ни одного видимого шага, тур не показан');
|
|
225
|
+
this.status = 'idle';
|
|
226
|
+
this.releaseStep();
|
|
227
|
+
return;
|
|
228
|
+
}
|
|
229
|
+
const step = this.navigator.current;
|
|
230
|
+
if (step.waitForResume) {
|
|
231
|
+
this.logger.debug('Ожидание resume', { step: step.name });
|
|
232
|
+
this.status = 'waiting-resume';
|
|
233
|
+
this.releaseStep();
|
|
234
|
+
return;
|
|
235
|
+
}
|
|
236
|
+
this.logger.debug('Показан шаг', {
|
|
237
|
+
step: step.name,
|
|
238
|
+
position: this.navigator.position,
|
|
239
|
+
total: this.navigator.total,
|
|
240
|
+
});
|
|
241
|
+
this.status = 'running';
|
|
242
|
+
this.publishStep();
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Очищает store, только если активный шаг принадлежит именно этому туру.
|
|
246
|
+
*/
|
|
247
|
+
releaseStep() {
|
|
248
|
+
this.activeStepStore.release(this);
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Публикует состояние текущего шага в store.
|
|
252
|
+
*/
|
|
253
|
+
publishStep() {
|
|
254
|
+
const current = this.navigator.current;
|
|
255
|
+
const step = this.resolver.resolve(current, this.stepsController.getOverride(current.name));
|
|
256
|
+
this.activeStepStore.setActiveStep(this.buildActiveStep(step), this);
|
|
257
|
+
}
|
|
258
|
+
buildActiveStep(step) {
|
|
259
|
+
return {
|
|
260
|
+
...this.resolver.resolvePresentation(),
|
|
261
|
+
tourName: this.config.name,
|
|
262
|
+
step,
|
|
263
|
+
position: this.navigator.position,
|
|
264
|
+
total: this.navigator.total,
|
|
265
|
+
hasNext: this.navigator.hasNext,
|
|
266
|
+
hasPrev: this.navigator.hasPrev,
|
|
267
|
+
isInteractive: this.resolver.resolveIsInteractive(step),
|
|
268
|
+
isConfirming: this.exitController.isConfirming,
|
|
269
|
+
onNext: this.next,
|
|
270
|
+
onPrev: this.prev,
|
|
271
|
+
onSelectStep: this.goToPosition,
|
|
272
|
+
requestClose: this.requestClose,
|
|
273
|
+
onConfirmExit: this.exitController.confirm,
|
|
274
|
+
onCancelExit: this.exitController.cancel,
|
|
275
|
+
onError: this.handleError,
|
|
276
|
+
};
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Перерисовывает шаг после изменения его override-содержимого
|
|
280
|
+
*/
|
|
281
|
+
refreshStep(stepName) {
|
|
282
|
+
if (this.activeStepStore.isActiveStep(this, stepName)) {
|
|
283
|
+
this.publishStep();
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
exports.OnboardingTour = OnboardingTour;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { OnboardingTour } from './OnboardingTour';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OnboardingTour = void 0;
|
|
4
|
+
var OnboardingTour_1 = require("./OnboardingTour");
|
|
5
|
+
Object.defineProperty(exports, "OnboardingTour", { enumerable: true, get: function () { return OnboardingTour_1.OnboardingTour; } });
|