@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,24 @@
|
|
|
1
|
+
import { type Logger } from '../../../../services/Logger';
|
|
2
|
+
import { type SaveStrategy, type TourProgress } from '../../types';
|
|
3
|
+
/**
|
|
4
|
+
* Обёртка над переданной SaveStrategy, изолирующая тур от исключений хранилища
|
|
5
|
+
*
|
|
6
|
+
* Записи выполняются строго последовательно : при async-стратегии это
|
|
7
|
+
* не даёт конкурентным вызовам переставиться местами — быстрый next/next,
|
|
8
|
+
* save→reset или save→skip сохранят порядок.
|
|
9
|
+
* `load()` ждёт текущее сохранение, поэтому читает уже применённое состояние.
|
|
10
|
+
*/
|
|
11
|
+
export declare class ProgressStorage {
|
|
12
|
+
private readonly strategy;
|
|
13
|
+
private readonly logger;
|
|
14
|
+
private saving;
|
|
15
|
+
constructor(strategy: SaveStrategy, logger: Logger);
|
|
16
|
+
load(): Promise<TourProgress | null>;
|
|
17
|
+
save(state: TourProgress): Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* Полный сброс прогресса. Если стратегия умеет `remove` — запись удаляется;
|
|
20
|
+
* иначе поверх пишется пустое состояние.
|
|
21
|
+
*/
|
|
22
|
+
reset(): Promise<void>;
|
|
23
|
+
private enqueue;
|
|
24
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ProgressStorage = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* «Пустой» прогресс
|
|
6
|
+
*/
|
|
7
|
+
const CLEARED_STATE = {
|
|
8
|
+
lastStepName: '',
|
|
9
|
+
isCompleted: false,
|
|
10
|
+
isDismissed: false,
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Обёртка над переданной SaveStrategy, изолирующая тур от исключений хранилища
|
|
14
|
+
*
|
|
15
|
+
* Записи выполняются строго последовательно : при async-стратегии это
|
|
16
|
+
* не даёт конкурентным вызовам переставиться местами — быстрый next/next,
|
|
17
|
+
* save→reset или save→skip сохранят порядок.
|
|
18
|
+
* `load()` ждёт текущее сохранение, поэтому читает уже применённое состояние.
|
|
19
|
+
*/
|
|
20
|
+
class ProgressStorage {
|
|
21
|
+
constructor(strategy, logger) {
|
|
22
|
+
this.strategy = strategy;
|
|
23
|
+
this.logger = logger;
|
|
24
|
+
this.saving = Promise.resolve();
|
|
25
|
+
}
|
|
26
|
+
async load() {
|
|
27
|
+
// Дожидаемся текущего сохранения, чтобы не прочитать состояние до него.
|
|
28
|
+
await this.saving;
|
|
29
|
+
try {
|
|
30
|
+
return await this.strategy.load();
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
// Ошибка хранилища не должна ронять тур, но остаётся видимой в логах.
|
|
34
|
+
this.logger.warn('Ошибка чтения прогресса из хранилища', error);
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
save(state) {
|
|
39
|
+
return this.enqueue(() => this.strategy.save(state));
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Полный сброс прогресса. Если стратегия умеет `remove` — запись удаляется;
|
|
43
|
+
* иначе поверх пишется пустое состояние.
|
|
44
|
+
*/
|
|
45
|
+
reset() {
|
|
46
|
+
return this.enqueue(() => {
|
|
47
|
+
if (this.strategy.remove) {
|
|
48
|
+
return this.strategy.remove();
|
|
49
|
+
}
|
|
50
|
+
return this.strategy.save(CLEARED_STATE);
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
enqueue(write) {
|
|
54
|
+
this.saving = this.saving.then(async () => {
|
|
55
|
+
try {
|
|
56
|
+
await write();
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
// Ошибка хранилища не должна ронять тур, но остаётся видимой в логах.
|
|
60
|
+
this.logger.warn('Ошибка записи прогресса в хранилище', error);
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
return this.saving;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
exports.ProgressStorage = ProgressStorage;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './ProgressStorage';
|
|
@@ -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("./ProgressStorage"), exports);
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type Step } from '../../types';
|
|
2
|
+
/**
|
|
3
|
+
* Навигатор по шагам тура. Пропущенные шаги в навигации и в прогрессе не существуют.
|
|
4
|
+
*/
|
|
5
|
+
export declare class StepNavigator<TSteps extends readonly Step[] = readonly Step[]> {
|
|
6
|
+
private readonly steps;
|
|
7
|
+
/** Видимые шаги в порядке прохождения. */
|
|
8
|
+
private visibleSteps;
|
|
9
|
+
/** Текущая позиция среди видимых шагов */
|
|
10
|
+
private cursor;
|
|
11
|
+
constructor(steps: TSteps);
|
|
12
|
+
get current(): TSteps[number];
|
|
13
|
+
get position(): number;
|
|
14
|
+
get total(): number;
|
|
15
|
+
get hasNext(): boolean;
|
|
16
|
+
get hasPrev(): boolean;
|
|
17
|
+
next(): TSteps[number];
|
|
18
|
+
prev(): TSteps[number];
|
|
19
|
+
goToPosition(position: number): TSteps[number];
|
|
20
|
+
goToStep(stepName: string): TSteps[number];
|
|
21
|
+
/**
|
|
22
|
+
* Пересобирает список видимых шагов под актуальное состояние (здесь и только
|
|
23
|
+
* здесь вычисляются предикаты `shouldSkip`) и встаёт на первый шаг. Вызывается
|
|
24
|
+
* при (пере)запуске тура.
|
|
25
|
+
*/
|
|
26
|
+
reset(): TSteps[number];
|
|
27
|
+
private collectVisibleSteps;
|
|
28
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StepNavigator = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Нужно ли пропустить шаг.
|
|
6
|
+
*/
|
|
7
|
+
const isStepSkipped = (step) => {
|
|
8
|
+
const { shouldSkip } = step;
|
|
9
|
+
return typeof shouldSkip === 'function' ? shouldSkip() : Boolean(shouldSkip);
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Навигатор по шагам тура. Пропущенные шаги в навигации и в прогрессе не существуют.
|
|
13
|
+
*/
|
|
14
|
+
class StepNavigator {
|
|
15
|
+
constructor(steps) {
|
|
16
|
+
this.steps = steps;
|
|
17
|
+
/** Видимые шаги в порядке прохождения. */
|
|
18
|
+
this.visibleSteps = [];
|
|
19
|
+
/** Текущая позиция среди видимых шагов */
|
|
20
|
+
this.cursor = 0;
|
|
21
|
+
this.visibleSteps = this.collectVisibleSteps();
|
|
22
|
+
}
|
|
23
|
+
get current() {
|
|
24
|
+
return this.visibleSteps[this.cursor] ?? this.steps[0];
|
|
25
|
+
}
|
|
26
|
+
get position() {
|
|
27
|
+
return this.cursor;
|
|
28
|
+
}
|
|
29
|
+
get total() {
|
|
30
|
+
return this.visibleSteps.length;
|
|
31
|
+
}
|
|
32
|
+
get hasNext() {
|
|
33
|
+
return this.cursor < this.visibleSteps.length - 1;
|
|
34
|
+
}
|
|
35
|
+
get hasPrev() {
|
|
36
|
+
return this.cursor > 0;
|
|
37
|
+
}
|
|
38
|
+
next() {
|
|
39
|
+
if (this.hasNext) {
|
|
40
|
+
this.cursor += 1;
|
|
41
|
+
}
|
|
42
|
+
return this.current;
|
|
43
|
+
}
|
|
44
|
+
prev() {
|
|
45
|
+
if (this.hasPrev) {
|
|
46
|
+
this.cursor -= 1;
|
|
47
|
+
}
|
|
48
|
+
return this.current;
|
|
49
|
+
}
|
|
50
|
+
goToPosition(position) {
|
|
51
|
+
if (position >= 0 && position < this.visibleSteps.length) {
|
|
52
|
+
this.cursor = position;
|
|
53
|
+
}
|
|
54
|
+
return this.current;
|
|
55
|
+
}
|
|
56
|
+
goToStep(stepName) {
|
|
57
|
+
const position = this.visibleSteps.findIndex((step) => step.name === stepName);
|
|
58
|
+
if (position !== -1) {
|
|
59
|
+
this.cursor = position;
|
|
60
|
+
}
|
|
61
|
+
return this.current;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Пересобирает список видимых шагов под актуальное состояние (здесь и только
|
|
65
|
+
* здесь вычисляются предикаты `shouldSkip`) и встаёт на первый шаг. Вызывается
|
|
66
|
+
* при (пере)запуске тура.
|
|
67
|
+
*/
|
|
68
|
+
reset() {
|
|
69
|
+
this.visibleSteps = this.collectVisibleSteps();
|
|
70
|
+
this.cursor = 0;
|
|
71
|
+
return this.current;
|
|
72
|
+
}
|
|
73
|
+
collectVisibleSteps() {
|
|
74
|
+
return this.steps.filter((step) => !isStepSkipped(step));
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
exports.StepNavigator = StepNavigator;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './StepNavigator';
|
|
@@ -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("./StepNavigator"), exports);
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type OnboardingTourConfig, type ResolvedStep, type Step, type StepOverride, type TourPresentation } from '../../types';
|
|
2
|
+
/**
|
|
3
|
+
* Вычисляет итоговые значения по приоритету источников:
|
|
4
|
+
* - `title`/`content`: рантайм-override → значение шага;
|
|
5
|
+
* - `position`/`dialogSize`/видимость кнопок: шаг → значение по умолчанию;
|
|
6
|
+
* - `isInteractive`/`waitForTimeout`: шаг → конфигурация тура → значение по умолчанию;
|
|
7
|
+
* - презентация тура (`resolvePresentation`): конфигурация тура → значение по умолчанию.
|
|
8
|
+
*/
|
|
9
|
+
export declare class StepResolver {
|
|
10
|
+
private readonly config;
|
|
11
|
+
constructor(config: OnboardingTourConfig<readonly Step[]>);
|
|
12
|
+
resolve(step: Step, override?: StepOverride): ResolvedStep;
|
|
13
|
+
private resolveWaitForTimeout;
|
|
14
|
+
resolveIsInteractive(step: Step): boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Конфигурация тура с применёнными значениями по умолчанию.
|
|
17
|
+
*/
|
|
18
|
+
resolvePresentation(): TourPresentation;
|
|
19
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StepResolver = void 0;
|
|
4
|
+
const constants_1 = require("../../constants");
|
|
5
|
+
/**
|
|
6
|
+
* Вычисляет итоговые значения по приоритету источников:
|
|
7
|
+
* - `title`/`content`: рантайм-override → значение шага;
|
|
8
|
+
* - `position`/`dialogSize`/видимость кнопок: шаг → значение по умолчанию;
|
|
9
|
+
* - `isInteractive`/`waitForTimeout`: шаг → конфигурация тура → значение по умолчанию;
|
|
10
|
+
* - презентация тура (`resolvePresentation`): конфигурация тура → значение по умолчанию.
|
|
11
|
+
*/
|
|
12
|
+
class StepResolver {
|
|
13
|
+
constructor(config) {
|
|
14
|
+
this.config = config;
|
|
15
|
+
}
|
|
16
|
+
resolve(step, override) {
|
|
17
|
+
return {
|
|
18
|
+
...step,
|
|
19
|
+
title: override?.title ?? step.title,
|
|
20
|
+
content: override?.content ?? step.content,
|
|
21
|
+
position: step.position ?? 'bottom',
|
|
22
|
+
dialogSize: step.dialogSize ?? 'xs',
|
|
23
|
+
isNextButtonVisible: step.isNextButtonVisible ?? true,
|
|
24
|
+
isPrevButtonVisible: step.isPrevButtonVisible ?? true,
|
|
25
|
+
waitForTimeout: this.resolveWaitForTimeout(step),
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
resolveWaitForTimeout(step) {
|
|
29
|
+
return (step.waitForTimeout ??
|
|
30
|
+
this.config.waitForTimeout ??
|
|
31
|
+
constants_1.DEFAULT_WAIT_ELEMENT_TIMEOUT_MS);
|
|
32
|
+
}
|
|
33
|
+
resolveIsInteractive(step) {
|
|
34
|
+
return step.isInteractive ?? this.config.isInteractive ?? false;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Конфигурация тура с применёнными значениями по умолчанию.
|
|
38
|
+
*/
|
|
39
|
+
resolvePresentation() {
|
|
40
|
+
return {
|
|
41
|
+
isDotsVisible: this.config.isDotsVisible ?? true,
|
|
42
|
+
isCounterVisible: this.config.isCounterVisible ?? true,
|
|
43
|
+
confirmExit: this.config.confirmExit ?? {},
|
|
44
|
+
buttons: {
|
|
45
|
+
prevLabel: this.config.buttons?.prevLabel ?? 'Назад',
|
|
46
|
+
nextLabel: this.config.buttons?.nextLabel ?? 'Далее',
|
|
47
|
+
finishLabel: this.config.buttons?.finishLabel ?? 'Закрыть',
|
|
48
|
+
finishVariant: this.config.buttons?.finishVariant ?? 'contained',
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
exports.StepResolver = StepResolver;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './StepResolver';
|
|
@@ -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("./StepResolver"), exports);
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type Step, type StepHandles, type StepOverride } from '../../types';
|
|
2
|
+
/**
|
|
3
|
+
* Владеет рантайм-переопределениями содержимого шагов (через `tour.steps[name].setX`)
|
|
4
|
+
* и строит типобезопасную карту объектов управления `tour.steps`. О каждом изменении сообщает
|
|
5
|
+
* наружу через `onChange`, чтобы оркестратор перерисовал активный шаг, если он
|
|
6
|
+
* сейчас показан.
|
|
7
|
+
*/
|
|
8
|
+
export declare class StepsController<TSteps extends readonly Step[]> {
|
|
9
|
+
private readonly onChange;
|
|
10
|
+
private readonly overrides;
|
|
11
|
+
readonly handles: StepHandles<TSteps>;
|
|
12
|
+
constructor(steps: TSteps, onChange: (stepName: string) => void);
|
|
13
|
+
getOverride(stepName: string): StepOverride | undefined;
|
|
14
|
+
private patch;
|
|
15
|
+
private createHandles;
|
|
16
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StepsController = void 0;
|
|
4
|
+
const constants_1 = require("../../constants");
|
|
5
|
+
/**
|
|
6
|
+
* Владеет рантайм-переопределениями содержимого шагов (через `tour.steps[name].setX`)
|
|
7
|
+
* и строит типобезопасную карту объектов управления `tour.steps`. О каждом изменении сообщает
|
|
8
|
+
* наружу через `onChange`, чтобы оркестратор перерисовал активный шаг, если он
|
|
9
|
+
* сейчас показан.
|
|
10
|
+
*/
|
|
11
|
+
class StepsController {
|
|
12
|
+
constructor(steps, onChange) {
|
|
13
|
+
this.onChange = onChange;
|
|
14
|
+
this.overrides = new Map();
|
|
15
|
+
this.handles = this.createHandles(steps);
|
|
16
|
+
}
|
|
17
|
+
getOverride(stepName) {
|
|
18
|
+
return this.overrides.get(stepName);
|
|
19
|
+
}
|
|
20
|
+
patch(stepName, override) {
|
|
21
|
+
this.overrides.set(stepName, {
|
|
22
|
+
...this.overrides.get(stepName),
|
|
23
|
+
...override,
|
|
24
|
+
});
|
|
25
|
+
this.onChange(stepName);
|
|
26
|
+
}
|
|
27
|
+
createHandles(steps) {
|
|
28
|
+
const handles = {};
|
|
29
|
+
steps.forEach((step) => {
|
|
30
|
+
handles[step.name] = {
|
|
31
|
+
getHighlightProps: () => ({ [constants_1.TOUR_ID_ATTR]: step.name }),
|
|
32
|
+
setTitle: (title) => this.patch(step.name, { title }),
|
|
33
|
+
setContent: (content) => this.patch(step.name, { content }),
|
|
34
|
+
};
|
|
35
|
+
});
|
|
36
|
+
return handles;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.StepsController = StepsController;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './StepsController';
|
|
@@ -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("./StepsController"), exports);
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type ActiveStepState, type ResolvedStep, type SaveStrategy, type Step, type TourProgress } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Фабрика шага со значениями по умолчанию standalone-типа.
|
|
4
|
+
*/
|
|
5
|
+
export declare const makeStep: (data?: Partial<Step>) => Step;
|
|
6
|
+
/**
|
|
7
|
+
* Фабрика шага с уже применёнными значениями по умолчанию.
|
|
8
|
+
*/
|
|
9
|
+
export declare const makeResolvedStep: (data?: Partial<ResolvedStep>) => ResolvedStep;
|
|
10
|
+
/**
|
|
11
|
+
* Фабрика состояния активного шага, которое тур публикует в store.
|
|
12
|
+
*/
|
|
13
|
+
export declare const makeActiveStepState: (data?: Partial<ActiveStepState>) => ActiveStepState;
|
|
14
|
+
/**
|
|
15
|
+
* Список standalone-шагов по именам — частый кейс, когда важны только имена и
|
|
16
|
+
* порядок. `data` применяется к каждому шагу.
|
|
17
|
+
*/
|
|
18
|
+
export declare const makeSteps: (names: string[], data?: Partial<Step>) => Step[];
|
|
19
|
+
/**
|
|
20
|
+
* Фабрика прогресса тура со значениями по умолчанию «в процессе».
|
|
21
|
+
*/
|
|
22
|
+
export declare const makeTourProgress: (data?: Partial<TourProgress>) => TourProgress;
|
|
23
|
+
/**
|
|
24
|
+
* Стратегия хранения в памяти со шпионами: `save` пишет в замыкание, `load`
|
|
25
|
+
* читает оттуда же. Заменяет реальный localStorage/бэкенд в тестах.
|
|
26
|
+
*/
|
|
27
|
+
export declare const createMemoryStrategy: (initial?: TourProgress | null) => SaveStrategy;
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createMemoryStrategy = exports.makeTourProgress = exports.makeSteps = exports.makeActiveStepState = exports.makeResolvedStep = exports.makeStep = void 0;
|
|
4
|
+
const vitest_1 = require("vitest");
|
|
5
|
+
/**
|
|
6
|
+
* Фабрика шага со значениями по умолчанию standalone-типа.
|
|
7
|
+
*/
|
|
8
|
+
const makeStep = (data = {}) => ({
|
|
9
|
+
name: 'step',
|
|
10
|
+
type: 'standalone',
|
|
11
|
+
...data,
|
|
12
|
+
});
|
|
13
|
+
exports.makeStep = makeStep;
|
|
14
|
+
/**
|
|
15
|
+
* Фабрика шага с уже применёнными значениями по умолчанию.
|
|
16
|
+
*/
|
|
17
|
+
const makeResolvedStep = (data = {}) => ({
|
|
18
|
+
name: 'step',
|
|
19
|
+
type: 'standalone',
|
|
20
|
+
position: 'bottom',
|
|
21
|
+
dialogSize: 'xs',
|
|
22
|
+
isNextButtonVisible: true,
|
|
23
|
+
isPrevButtonVisible: true,
|
|
24
|
+
waitForTimeout: 0,
|
|
25
|
+
...data,
|
|
26
|
+
});
|
|
27
|
+
exports.makeResolvedStep = makeResolvedStep;
|
|
28
|
+
/**
|
|
29
|
+
* Фабрика состояния активного шага, которое тур публикует в store.
|
|
30
|
+
*/
|
|
31
|
+
const makeActiveStepState = (data = {}) => ({
|
|
32
|
+
tourName: 'tour',
|
|
33
|
+
step: (0, exports.makeResolvedStep)(),
|
|
34
|
+
position: 0,
|
|
35
|
+
total: 1,
|
|
36
|
+
hasNext: false,
|
|
37
|
+
hasPrev: false,
|
|
38
|
+
isInteractive: false,
|
|
39
|
+
isConfirming: false,
|
|
40
|
+
isDotsVisible: true,
|
|
41
|
+
isCounterVisible: true,
|
|
42
|
+
confirmExit: {},
|
|
43
|
+
buttons: {
|
|
44
|
+
prevLabel: 'Назад',
|
|
45
|
+
nextLabel: 'Далее',
|
|
46
|
+
finishLabel: 'Закрыть',
|
|
47
|
+
finishVariant: 'contained',
|
|
48
|
+
},
|
|
49
|
+
onNext: vitest_1.vi.fn(),
|
|
50
|
+
onPrev: vitest_1.vi.fn(),
|
|
51
|
+
onSelectStep: vitest_1.vi.fn(),
|
|
52
|
+
requestClose: vitest_1.vi.fn(),
|
|
53
|
+
onConfirmExit: vitest_1.vi.fn(),
|
|
54
|
+
onCancelExit: vitest_1.vi.fn(),
|
|
55
|
+
onError: vitest_1.vi.fn(),
|
|
56
|
+
...data,
|
|
57
|
+
});
|
|
58
|
+
exports.makeActiveStepState = makeActiveStepState;
|
|
59
|
+
/**
|
|
60
|
+
* Список standalone-шагов по именам — частый кейс, когда важны только имена и
|
|
61
|
+
* порядок. `data` применяется к каждому шагу.
|
|
62
|
+
*/
|
|
63
|
+
const makeSteps = (names, data = {}) => names.map((name) => (0, exports.makeStep)({ name, ...data }));
|
|
64
|
+
exports.makeSteps = makeSteps;
|
|
65
|
+
/**
|
|
66
|
+
* Фабрика прогресса тура со значениями по умолчанию «в процессе».
|
|
67
|
+
*/
|
|
68
|
+
const makeTourProgress = (data = {}) => ({
|
|
69
|
+
lastStepName: 'step',
|
|
70
|
+
isCompleted: false,
|
|
71
|
+
isDismissed: false,
|
|
72
|
+
...data,
|
|
73
|
+
});
|
|
74
|
+
exports.makeTourProgress = makeTourProgress;
|
|
75
|
+
/**
|
|
76
|
+
* Стратегия хранения в памяти со шпионами: `save` пишет в замыкание, `load`
|
|
77
|
+
* читает оттуда же. Заменяет реальный localStorage/бэкенд в тестах.
|
|
78
|
+
*/
|
|
79
|
+
const createMemoryStrategy = (initial = null) => {
|
|
80
|
+
let saved = initial;
|
|
81
|
+
return {
|
|
82
|
+
save: vitest_1.vi.fn((data) => {
|
|
83
|
+
saved = data;
|
|
84
|
+
}),
|
|
85
|
+
load: vitest_1.vi.fn(() => saved),
|
|
86
|
+
};
|
|
87
|
+
};
|
|
88
|
+
exports.createMemoryStrategy = createMemoryStrategy;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { createOnboarding, type Onboarding } from './Onboarding';
|
|
2
|
+
export { OnboardingContainer, type OnboardingContainerProps, } from './ui/OnboardingContainer';
|
|
3
|
+
export { LocalStorageSaveStrategy } from './services/LocalStorageSaveStrategy';
|
|
4
|
+
export type { OnboardingTour } from './core/OnboardingTour';
|
|
5
|
+
export type { OnboardingConfig, OnboardingTourConfig, SaveStrategy as OnboardingSaveStrategy, TourProgress as OnboardingTourProgress, } from './types';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LocalStorageSaveStrategy = exports.OnboardingContainer = exports.createOnboarding = void 0;
|
|
4
|
+
var Onboarding_1 = require("./Onboarding");
|
|
5
|
+
Object.defineProperty(exports, "createOnboarding", { enumerable: true, get: function () { return Onboarding_1.createOnboarding; } });
|
|
6
|
+
var OnboardingContainer_1 = require("./ui/OnboardingContainer");
|
|
7
|
+
Object.defineProperty(exports, "OnboardingContainer", { enumerable: true, get: function () { return OnboardingContainer_1.OnboardingContainer; } });
|
|
8
|
+
var LocalStorageSaveStrategy_1 = require("./services/LocalStorageSaveStrategy");
|
|
9
|
+
Object.defineProperty(exports, "LocalStorageSaveStrategy", { enumerable: true, get: function () { return LocalStorageSaveStrategy_1.LocalStorageSaveStrategy; } });
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export type { OnboardingTour } from './core/OnboardingTour';
|
|
2
|
+
export { createOnboarding, type Onboarding } from './Onboarding';
|
|
3
|
+
export { LocalStorageSaveStrategy } from './services/LocalStorageSaveStrategy';
|
|
4
|
+
export type { OnboardingConfig, OnboardingTourConfig, SaveStrategy as OnboardingSaveStrategy, TourProgress as OnboardingTourProgress, } from './types';
|
|
5
|
+
export { OnboardingContainer, type OnboardingContainerProps, } from './ui/OnboardingContainer';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OnboardingContainer = exports.LocalStorageSaveStrategy = exports.createOnboarding = void 0;
|
|
4
|
+
var Onboarding_1 = require("./Onboarding");
|
|
5
|
+
Object.defineProperty(exports, "createOnboarding", { enumerable: true, get: function () { return Onboarding_1.createOnboarding; } });
|
|
6
|
+
var LocalStorageSaveStrategy_1 = require("./services/LocalStorageSaveStrategy");
|
|
7
|
+
Object.defineProperty(exports, "LocalStorageSaveStrategy", { enumerable: true, get: function () { return LocalStorageSaveStrategy_1.LocalStorageSaveStrategy; } });
|
|
8
|
+
var OnboardingContainer_1 = require("./ui/OnboardingContainer");
|
|
9
|
+
Object.defineProperty(exports, "OnboardingContainer", { enumerable: true, get: function () { return OnboardingContainer_1.OnboardingContainer; } });
|
package/node/components/Onboarding/services/LocalStorageSaveStrategy/LocalStorageSaveStrategy.d.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type SaveStrategy, type SaveStrategyFactory, type TourProgress } from '../../types';
|
|
2
|
+
/**
|
|
3
|
+
* Префикс ключа `localStorage` для стратегии хранения прогресса по умолчанию.
|
|
4
|
+
* К нему добавляется имя тура.
|
|
5
|
+
*/
|
|
6
|
+
export declare const LOCAL_STORAGE_KEY_PREFIX = "astral-ui-onboarding:";
|
|
7
|
+
/**
|
|
8
|
+
* Реализация по умолчанию SaveStrategy: хранит прогресс тура в `localStorage`
|
|
9
|
+
*/
|
|
10
|
+
export declare class LocalStorageSaveStrategy implements SaveStrategy {
|
|
11
|
+
/**
|
|
12
|
+
* Ключ уникален на тур (префикс + имя), чтобы туры не перетирали друг друга.
|
|
13
|
+
*/
|
|
14
|
+
private readonly key;
|
|
15
|
+
constructor(tourName: string);
|
|
16
|
+
save: (data: TourProgress) => void;
|
|
17
|
+
load: () => TourProgress | null;
|
|
18
|
+
remove: () => void;
|
|
19
|
+
}
|
|
20
|
+
export declare const createLocalStorageSaveStrategy: SaveStrategyFactory;
|
package/node/components/Onboarding/services/LocalStorageSaveStrategy/LocalStorageSaveStrategy.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createLocalStorageSaveStrategy = exports.LocalStorageSaveStrategy = exports.LOCAL_STORAGE_KEY_PREFIX = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Префикс ключа `localStorage` для стратегии хранения прогресса по умолчанию.
|
|
6
|
+
* К нему добавляется имя тура.
|
|
7
|
+
*/
|
|
8
|
+
exports.LOCAL_STORAGE_KEY_PREFIX = 'astral-ui-onboarding:';
|
|
9
|
+
/**
|
|
10
|
+
* Реализация по умолчанию SaveStrategy: хранит прогресс тура в `localStorage`
|
|
11
|
+
*/
|
|
12
|
+
class LocalStorageSaveStrategy {
|
|
13
|
+
constructor(tourName) {
|
|
14
|
+
this.save = (data) => {
|
|
15
|
+
localStorage.setItem(this.key, JSON.stringify(data));
|
|
16
|
+
};
|
|
17
|
+
this.load = () => {
|
|
18
|
+
const raw = localStorage.getItem(this.key);
|
|
19
|
+
return raw ? JSON.parse(raw) : null;
|
|
20
|
+
};
|
|
21
|
+
this.remove = () => {
|
|
22
|
+
localStorage.removeItem(this.key);
|
|
23
|
+
};
|
|
24
|
+
this.key = `${exports.LOCAL_STORAGE_KEY_PREFIX}${tourName}`;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.LocalStorageSaveStrategy = LocalStorageSaveStrategy;
|
|
28
|
+
const createLocalStorageSaveStrategy = (tourName) => new LocalStorageSaveStrategy(tourName);
|
|
29
|
+
exports.createLocalStorageSaveStrategy = createLocalStorageSaveStrategy;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './LocalStorageSaveStrategy';
|
|
@@ -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("./LocalStorageSaveStrategy"), exports);
|