@onepercentio/one-ui 0.21.1 → 0.21.4
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/.prod.babelrc +2 -1
- package/ai/components/UncontrolledTransition/UncontrolledTransition.ai.d.ts +15 -0
- package/ai/components/UncontrolledTransition/UncontrolledTransition.ai.js +37 -0
- package/ai/components/UncontrolledTransition/UncontrolledTransition.ai.js.map +1 -0
- package/ai/hooks/ui/useAlternating.ai.d.ts +9 -0
- package/ai/hooks/ui/useAlternating.ai.js +17 -0
- package/ai/hooks/ui/useAlternating.ai.js.map +1 -0
- package/ai/hooks/useHero.ai.d.ts +9 -0
- package/ai/hooks/useHero.ai.js +21 -0
- package/ai/hooks/useHero.ai.js.map +1 -0
- package/ai/types.d.ts +9 -0
- package/ai/types.js +3 -0
- package/ai/types.js.map +1 -0
- package/dist/assets/styles/variables.scss +0 -5
- package/dist/components/AdaptiveButton/AdaptiveButton.d.ts +2 -2
- package/dist/components/AdaptiveButton/AdaptiveButton.js +2 -1
- package/dist/components/AdaptiveButton/index.js +2 -1
- package/dist/components/AdaptiveContainer/AdaptiveContainer.d.ts +2 -2
- package/dist/components/AdaptiveContainer/AdaptiveContainer.js +2 -1
- package/dist/components/AdaptiveContainer/index.js +2 -1
- package/dist/components/AdaptiveDialog/AdaptiveDialog.d.ts +4 -3
- package/dist/components/AdaptiveDialog/AdaptiveDialog.js +7 -3
- package/dist/components/AdaptiveDialog/index.js +2 -1
- package/dist/components/AdaptiveSidebar/AdaptiveSidebar.d.ts +3 -0
- package/dist/components/AdaptiveSidebar/AdaptiveSidebar.js +8 -6
- package/dist/components/AdaptiveSidebar/AdaptiveSidebar.sample.d.ts +2 -0
- package/dist/components/AdaptiveSidebar/AdaptiveSidebar.sample.js +13 -0
- package/dist/components/AdaptiveSidebar/index.js +2 -1
- package/dist/components/AnchoredTooltip/AnchoredTooltip.d.ts +3 -0
- package/dist/components/AnchoredTooltip/AnchoredTooltip.js +11 -6
- package/dist/components/AnchoredTooltip/index.js +2 -1
- package/dist/components/AnimatedEntrance/AnimatedEntrance.d.ts +3 -3
- package/dist/components/AnimatedEntrance/AnimatedEntrance.js +2 -1
- package/dist/components/AnimatedEntrance/index.js +2 -1
- package/dist/components/AsyncWrapper/AsyncWrapper.d.ts +2 -2
- package/dist/components/AsyncWrapper/AsyncWrapper.js +2 -1
- package/dist/components/AsyncWrapper/index.js +2 -1
- package/dist/components/Avatar/Avatar.d.ts +2 -1
- package/dist/components/Avatar/Avatar.js +2 -1
- package/dist/components/Avatar/index.js +2 -1
- package/dist/components/BucketFill/BucketFill.d.ts +3 -3
- package/dist/components/BucketFill/BucketFill.js +2 -1
- package/dist/components/BucketFill/index.js +2 -1
- package/dist/components/Button/Button.d.ts +2 -2
- package/dist/components/Button/Button.js +6 -4
- package/dist/components/Button/Button.module.scss +5 -2
- package/dist/components/Button/index.js +2 -1
- package/dist/components/Card/Card.d.ts +2 -2
- package/dist/components/Card/Card.js +2 -1
- package/dist/components/Card/index.js +2 -1
- package/dist/components/Chart/Chart.logic.d.ts +3 -1
- package/dist/components/Chart/Chart.logic.js +3 -1
- package/dist/components/Chart/Chart.types.js +2 -1
- package/dist/components/Chart/Chart.view.d.ts +2 -1
- package/dist/components/Chart/Chart.view.js +2 -1
- package/dist/components/Chart/index.js +2 -1
- package/dist/components/CheckBox/CheckBox.d.ts +1 -1
- package/dist/components/CheckBox/CheckBox.js +2 -1
- package/dist/components/CheckBox/index.js +2 -1
- package/dist/components/CodeInput/CodeInput.d.ts +9 -0
- package/dist/components/CodeInput/CodeInput.js +85 -0
- package/dist/components/CodeInput/CodeInput.module.scss +5 -0
- package/dist/components/CodeInput/index.d.ts +1 -0
- package/dist/components/CodeInput/index.js +14 -0
- package/dist/components/Collapsable/Collapsable.d.ts +5 -2
- package/dist/components/Collapsable/Collapsable.js +23 -7
- package/dist/components/Collapsable/index.js +2 -1
- package/dist/components/Countdown/Countdown.d.ts +2 -1
- package/dist/components/Countdown/Countdown.js +2 -1
- package/dist/components/Countdown/index.js +2 -1
- package/dist/components/Divider/Divider.d.ts +2 -1
- package/dist/components/Divider/Divider.js +2 -1
- package/dist/components/Divider/index.js +2 -1
- package/dist/components/EmailInput/EmailInput.d.ts +3 -0
- package/dist/components/EmailInput/EmailInput.js +6 -5
- package/dist/components/EmailInput/index.js +2 -1
- package/dist/components/FadeIn/FadeIn.d.ts +3 -0
- package/dist/components/FadeIn/FadeIn.js +9 -5
- package/dist/components/FadeIn/FadeIn.module.scss +0 -9
- package/dist/components/FadeIn/index.js +2 -1
- package/dist/components/FileInput/FileInput.d.ts +1 -1
- package/dist/components/FileInput/FileInput.js +2 -1
- package/dist/components/FileInput/View/BigFactory/BigFactory.d.ts +2 -2
- package/dist/components/FileInput/View/BigFactory/BigFactory.js +2 -1
- package/dist/components/FileInput/View/BigFactory/index.js +2 -1
- package/dist/components/FileInput/View/Compact/Compact.d.ts +2 -1
- package/dist/components/FileInput/View/Compact/Compact.js +2 -1
- package/dist/components/FileInput/View/Compact/index.js +2 -1
- package/dist/components/FileInput/View/View.types.js +2 -1
- package/dist/components/FileInput/index.js +2 -1
- package/dist/components/FlowController/FlowController.d.ts +2 -2
- package/dist/components/FlowController/FlowController.js +2 -1
- package/dist/components/FlowController/index.js +2 -1
- package/dist/components/Form/Form.js +2 -1
- package/dist/components/Form/index.js +2 -1
- package/dist/components/Form/v2/Form.d.ts +18 -0
- package/dist/components/Form/v2/Form.hook.d.ts +21 -0
- package/dist/components/Form/v2/Form.hook.js +214 -0
- package/dist/components/Form/v2/Form.js +69 -0
- package/dist/components/Form/v2/Form.module.scss +0 -0
- package/dist/components/Form/v2/Form.types.d.ts +97 -0
- package/dist/components/Form/v2/Form.types.js +45 -0
- package/dist/components/Form/v2/FormField/Extensions/DateField/DateField.d.ts +12 -0
- package/dist/components/Form/v2/FormField/Extensions/DateField/DateField.js +74 -0
- package/dist/components/Form/v2/FormField/Extensions/DateField/DateField.module.scss +0 -0
- package/dist/components/Form/v2/FormField/Extensions/DateField/index.d.ts +1 -0
- package/dist/components/Form/v2/FormField/Extensions/DateField/index.js +14 -0
- package/dist/components/Form/v2/FormField/Extensions/PhoneField/PhoneField.d.ts +10 -0
- package/dist/components/Form/v2/FormField/Extensions/PhoneField/PhoneField.js +92 -0
- package/dist/components/Form/v2/FormField/Extensions/PhoneField/PhoneField.module.scss +0 -0
- package/dist/components/Form/v2/FormField/Extensions/PhoneField/index.d.ts +1 -0
- package/dist/components/Form/v2/FormField/Extensions/PhoneField/index.js +14 -0
- package/dist/components/Form/v2/FormField/FormField.d.ts +6 -0
- package/dist/components/Form/v2/FormField/FormField.js +309 -0
- package/dist/components/Form/v2/FormField/FormField.module.scss +0 -0
- package/dist/components/Form/v2/FormField/FormField.types.d.ts +83 -0
- package/dist/components/Form/v2/FormField/FormField.types.js +13 -0
- package/dist/components/Form/v2/FormField/index.d.ts +1 -0
- package/dist/components/Form/v2/FormField/index.js +14 -0
- package/dist/components/Form/v2/index.d.ts +1 -0
- package/dist/components/Form/v2/index.js +14 -0
- package/dist/components/Freeze/Freeze.js +2 -1
- package/dist/components/Freeze/index.js +2 -1
- package/dist/components/HSForms/HSForms.d.ts +2 -1
- package/dist/components/HSForms/HSForms.js +2 -1
- package/dist/components/HSForms/index.js +2 -1
- package/dist/components/Header/Header.d.ts +2 -2
- package/dist/components/Header/Header.js +2 -1
- package/dist/components/Header/index.js +2 -1
- package/dist/components/HeaderCloseBtn/HeaderCloseBtn.d.ts +2 -1
- package/dist/components/HeaderCloseBtn/HeaderCloseBtn.js +2 -1
- package/dist/components/HeaderCloseBtn/index.js +2 -1
- package/dist/components/InfinityScroll/InfinityScroll.d.ts +3 -0
- package/dist/components/InfinityScroll/InfinityScroll.js +6 -5
- package/dist/components/InfinityScroll/index.js +2 -1
- package/dist/components/Input/Input.d.ts +3 -0
- package/dist/components/Input/Input.js +5 -4
- package/dist/components/Input/index.js +2 -1
- package/dist/components/InstantCounter/InstantCounter.d.ts +3 -0
- package/dist/components/InstantCounter/InstantCounter.js +6 -4
- package/dist/components/InstantCounter/index.js +2 -1
- package/dist/components/LavaLamp/LavaLamp.d.ts +2 -2
- package/dist/components/LavaLamp/LavaLamp.data.js +2 -1
- package/dist/components/LavaLamp/LavaLamp.js +2 -1
- package/dist/components/LavaLamp/index.js +2 -1
- package/dist/components/LavaLamp/v2/LavaLamp.d.ts +2 -2
- package/dist/components/LavaLamp/v2/LavaLamp.js +2 -1
- package/dist/components/LinkToId/LinkToId.d.ts +2 -2
- package/dist/components/LinkToId/LinkToId.js +2 -1
- package/dist/components/LinkToId/index.js +2 -1
- package/dist/components/Loader/Loader.d.ts +1 -1
- package/dist/components/Loader/Loader.js +2 -1
- package/dist/components/Loader/index.js +2 -1
- package/dist/components/LoaderDotsIndicator/LoaderDotsIndicator.d.ts +2 -1
- package/dist/components/LoaderDotsIndicator/LoaderDotsIndicator.js +2 -1
- package/dist/components/LoaderDotsIndicator/index.js +2 -1
- package/dist/components/LoopableVideo/LoopableVideo.d.ts +2 -2
- package/dist/components/LoopableVideo/LoopableVideo.js +2 -1
- package/dist/components/LoopableVideo/index.js +2 -1
- package/dist/components/MainGrid/MainGrid.d.ts +3 -0
- package/dist/components/MainGrid/MainGrid.js +6 -4
- package/dist/components/MainGrid/index.js +2 -1
- package/dist/components/MutableHamburgerButton/MutableHamburgerButton.d.ts +1 -1
- package/dist/components/MutableHamburgerButton/MutableHamburgerButton.js +2 -1
- package/dist/components/MutableHamburgerButton/index.js +2 -1
- package/dist/components/Notification/Notification.d.ts +2 -2
- package/dist/components/Notification/Notification.js +2 -1
- package/dist/components/Notification/index.js +2 -1
- package/dist/components/OrderableList/OrderableList.d.ts +1 -1
- package/dist/components/OrderableList/OrderableList.js +2 -1
- package/dist/components/OrderableList/index.js +2 -1
- package/dist/components/PaginationIndicator/PaginationIndicator.d.ts +9 -6
- package/dist/components/PaginationIndicator/PaginationIndicator.js +50 -11
- package/dist/components/PaginationIndicator/index.js +2 -1
- package/dist/components/Parallax/Parallax.d.ts +3 -0
- package/dist/components/Parallax/Parallax.js +6 -4
- package/dist/components/Parallax/index.js +2 -1
- package/dist/components/Parallax/math/helpers.js +2 -1
- package/dist/components/PasswordInput/PasswordInput.d.ts +3 -0
- package/dist/components/PasswordInput/PasswordInput.js +6 -5
- package/dist/components/PasswordInput/index.js +2 -1
- package/dist/components/PingPongText/PingPongText.d.ts +2 -2
- package/dist/components/PingPongText/PingPongText.js +2 -1
- package/dist/components/PingPongText/index.js +2 -1
- package/dist/components/PixelatedScan/PixelatedScan.d.ts +2 -1
- package/dist/components/PixelatedScan/PixelatedScan.js +2 -1
- package/dist/components/PixelatedScan/index.js +2 -1
- package/dist/components/Portal/Portal.d.ts +1 -1
- package/dist/components/Portal/Portal.js +2 -1
- package/dist/components/Portal/index.js +2 -1
- package/dist/components/ProgressBar/ProgressBar.d.ts +3 -3
- package/dist/components/ProgressBar/ProgressBar.js +2 -1
- package/dist/components/ProgressBar/index.js +2 -1
- package/dist/components/ProgressTexts/ProgressTexts.d.ts +1 -1
- package/dist/components/ProgressTexts/ProgressTexts.js +2 -1
- package/dist/components/ProgressTexts/index.js +2 -1
- package/dist/components/Radio/Radio.d.ts +1 -1
- package/dist/components/Radio/Radio.js +2 -1
- package/dist/components/Radio/index.js +2 -1
- package/dist/components/SectionContainer/SectionContainer.d.ts +3 -0
- package/dist/components/SectionContainer/SectionContainer.js +6 -4
- package/dist/components/SectionContainer/index.js +2 -1
- package/dist/components/Select/Select.d.ts +3 -3
- package/dist/components/Select/Select.js +2 -1
- package/dist/components/Select/index.js +2 -1
- package/dist/components/Skeleton/Skeleton.d.ts +2 -1
- package/dist/components/Skeleton/Skeleton.js +2 -1
- package/dist/components/Skeleton/index.js +2 -1
- package/dist/components/Spacing/Spacing.d.ts +2 -1
- package/dist/components/Spacing/Spacing.js +2 -1
- package/dist/components/Spacing/index.js +2 -1
- package/dist/components/StaticScroller/StaticScroller.d.ts +3 -0
- package/dist/components/StaticScroller/StaticScroller.js +6 -4
- package/dist/components/StaticScroller/index.js +2 -1
- package/dist/components/Switch/Switch.d.ts +2 -2
- package/dist/components/Switch/Switch.js +2 -1
- package/dist/components/Switch/index.js +2 -1
- package/dist/components/Table/Table.d.ts +2 -1
- package/dist/components/Table/Table.js +2 -1
- package/dist/components/Table/index.js +2 -1
- package/dist/components/Tabs/Tabs.d.ts +2 -2
- package/dist/components/Tabs/Tabs.js +2 -1
- package/dist/components/Tabs/index.js +2 -1
- package/dist/components/Text/Text.d.ts +7 -5
- package/dist/components/Text/Text.js +6 -4
- package/dist/components/Text/Text.module.scss +4 -0
- package/dist/components/Text/index.js +2 -1
- package/dist/components/Transition/MasksFactory/DiagonalReveal.js +2 -1
- package/dist/components/Transition/MasksFactory/DiagonalSquareToBalls.js +2 -1
- package/dist/components/Transition/MasksFactory/PhysicsSquares.js +2 -1
- package/dist/components/Transition/MasksFactory/SquareToBalls.js +2 -1
- package/dist/components/Transition/MasksFactory/utils.js +2 -1
- package/dist/components/Transition/Transition.d.ts +8 -5
- package/dist/components/Transition/Transition.js +19 -16
- package/dist/components/Transition/Transition.module.scss +1 -1
- package/dist/components/Transition/index.js +2 -1
- package/dist/components/UncontrolledTransition/UncontrolledTransition.d.ts +3 -0
- package/dist/components/UncontrolledTransition/UncontrolledTransition.js +26 -13
- package/dist/components/UncontrolledTransition/UncontrolledTransition.sample.d.ts +2 -0
- package/dist/components/UncontrolledTransition/UncontrolledTransition.sample.js +44 -0
- package/dist/components/UncontrolledTransition/index.js +2 -1
- package/dist/components/WalletConnectionWrapper/WalletConnectionWrapper.d.ts +4 -1
- package/dist/components/WalletConnectionWrapper/WalletConnectionWrapper.js +7 -5
- package/dist/components/WalletConnectionWrapper/index.js +2 -1
- package/dist/components/utilitary/ScrollAndFocusLock/ScrollAndFocusLock.d.ts +2 -2
- package/dist/components/utilitary/ScrollAndFocusLock/ScrollAndFocusLock.js +2 -1
- package/dist/components/utilitary/ScrollAndFocusLock/index.js +2 -1
- package/dist/context/AsyncProcess.d.ts +2 -1
- package/dist/context/AsyncProcess.js +2 -1
- package/dist/context/ContextAsyncControl.d.ts +24 -0
- package/dist/context/ContextAsyncControl.js +101 -0
- package/dist/context/CustomBrowserRouter.d.ts +2 -2
- package/dist/context/CustomBrowserRouter.js +2 -1
- package/dist/context/OneUIProvider.d.ts +29 -1
- package/dist/context/OneUIProvider.js +2 -1
- package/dist/hooks/logs/useDependencyChangeDetection.js +2 -1
- package/dist/hooks/logs/useIsMounting.js +2 -1
- package/dist/hooks/persistence/useLocalStorage.d.ts +1 -1
- package/dist/hooks/persistence/useLocalStorage.js +6 -1
- package/dist/hooks/shims/ObjectWatchShim.js +2 -1
- package/dist/hooks/ui/useAdaptiveImage.js +2 -1
- package/dist/hooks/ui/useAlternating.d.ts +4 -0
- package/dist/hooks/ui/useAlternating.js +34 -0
- package/dist/hooks/ui/useBreakpoint.js +2 -1
- package/dist/hooks/ui/useCustomScrollbar.js +2 -1
- package/dist/hooks/ui/useMouseHover.d.ts +2 -2
- package/dist/hooks/ui/useMouseHover.js +8 -5
- package/dist/hooks/ui/usePaginationControls.d.ts +2 -2
- package/dist/hooks/ui/usePaginationControls.js +2 -1
- package/dist/hooks/ui/useSnapToViewport.js +2 -1
- package/dist/hooks/ui/useTilt.js +2 -1
- package/dist/hooks/ui/useZoomable.js +2 -1
- package/dist/hooks/useAsyncControl.d.ts +15 -3
- package/dist/hooks/useAsyncControl.js +25 -20
- package/dist/hooks/useContainedRepositioning.js +2 -1
- package/dist/hooks/useCustomHistory.js +2 -1
- package/dist/hooks/useElementFit.js +2 -1
- package/dist/hooks/useFirestoreWatch.js +2 -1
- package/dist/hooks/useForm.js +2 -1
- package/dist/hooks/useFreeze.js +2 -1
- package/dist/hooks/useHero.d.ts +4 -2
- package/dist/hooks/useHero.js +40 -15
- package/dist/hooks/useHero.module.scss +1 -1
- package/dist/hooks/useIntersection.js +2 -1
- package/dist/hooks/useMergeRefs.js +2 -1
- package/dist/hooks/useObserve.js +2 -1
- package/dist/hooks/usePagination.js +2 -1
- package/dist/hooks/usePooledOperation.js +2 -1
- package/dist/hooks/usePooling.js +2 -1
- package/dist/hooks/useRebound.js +2 -1
- package/dist/hooks/useShortIntl.d.ts +1 -1
- package/dist/hooks/useShortIntl.js +2 -1
- package/dist/hooks/utility/useEvents.js +2 -1
- package/dist/hooks/utility/useModule.js +2 -1
- package/dist/hooks/utility/useQuery.js +2 -1
- package/dist/models/DebugLogger.js +2 -1
- package/dist/models/GenericContract.d.ts +3 -3
- package/dist/models/GenericContract.js +5 -2
- package/dist/reac-app-env.d.js +2 -1
- package/dist/storybookUtils/index.d.ts +2 -2
- package/dist/storybookUtils/index.js +2 -1
- package/dist/type-utils.d.ts +5 -0
- package/dist/type-utils.js +2 -1
- package/dist/types.js +2 -1
- package/dist/utility.d.js +2 -1
- package/dist/utils/blockchain.js +2 -1
- package/dist/utils/flatten.js +2 -1
- package/dist/utils/html.utils.js +2 -1
- package/dist/utils/ownEvent.js +2 -1
- package/package.json +16 -4
- package/src_ai/components/UncontrolledTransition/UncontrolledTransition.ai.ts +35 -0
- package/src_ai/hooks/ui/useAlternating.ai.ts +15 -0
- package/src_ai/hooks/useHero.ai.ts +18 -0
- package/src_ai/types.ts +10 -0
- package/tsconfig-ai.json +9 -0
|
@@ -62,4 +62,5 @@ function HeadingImage(_ref2) {
|
|
|
62
62
|
src: src,
|
|
63
63
|
className: _FlowControllerModule.default.headingImg
|
|
64
64
|
});
|
|
65
|
-
}
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9CdXR0b24iLCJfSGVhZGVyQ2xvc2VCdG4iLCJfVHJhbnNpdGlvbiIsIl9GbG93Q29udHJvbGxlck1vZHVsZSIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiRmxvd0NvbnRyb2xsZXIiLCJfcmVmIiwiY2hpbGRyZW4iLCJidXR0b25zIiwic3RlcCIsIm9uQ2xvc2UiLCJvbkJhY2siLCJmdWxsUGFnZSIsIl9yZWYkZmlyc3RTdGVwIiwiZmlyc3RTdGVwIiwic3R5bGUiLCJfcmVmJHdyYXBwZXIiLCJ3cmFwcGVyIiwiV3JhcHBlciIsIl9oYW5kbGVCYWNrUHJlc3MiLCJpc0F0Rmlyc3RTdGVwIiwic2hvdWxkRGlzcGxheUhlYWRlckJ1dHRvbiIsImNyZWF0ZUVsZW1lbnQiLCJvbkNsaWNrIiwiZSIsInN0b3BQcm9wYWdhdGlvbiIsImNsYXNzTmFtZSIsIlN0eWxlcyIsImNvbnRhaW5lciIsIm1vZGUiLCJoaWRkZW4iLCJ0cmFuc2l0aW9uIiwiY29udGVudENsYXNzTmFtZSIsImNvbmNhdCIsImZ1bGxIZWlnaHQiLCJjb250ZW50IiwiZmluZCIsImIiLCJzdGF0ZSIsInVuZGVmaW5lZCIsIm1hcCIsImRpc2FibGVkIiwibGFiZWwiLCJIZWFkaW5nSW1hZ2UiLCJfcmVmMiIsInNyYyIsImhlYWRpbmdJbWciXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9GbG93Q29udHJvbGxlci9GbG93Q29udHJvbGxlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IE1vdXNlRXZlbnQsIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IEJ1dHRvbiBmcm9tIFwiLi4vQnV0dG9uXCI7XG5pbXBvcnQgSGVhZGVyQ2xvc2VCdG4gZnJvbSBcIi4uL0hlYWRlckNsb3NlQnRuXCI7XG5pbXBvcnQgVHJhbnNpdGlvbiBmcm9tIFwiLi4vVHJhbnNpdGlvblwiO1xuaW1wb3J0IFN0eWxlcyBmcm9tIFwiLi9GbG93Q29udHJvbGxlci5tb2R1bGUuc2Nzc1wiO1xuXG5leHBvcnQgdHlwZSBGbG93Q29udHJvbFN0YXRlID0gXCJkaXNhYmxlZFwiIHwgXCJlbmFibGVkXCIgfCBcImhpZGRlblwiO1xuLyoqXG4gKiBDb250YWluZXIgZm9yIGEgZmxvdywgbWFuYWdpbmcgdGhlIGdvIGJhY2sgYW5kIGNsb3NlIGNvbnRyb2xsZXJcbiAqKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEZsb3dDb250cm9sbGVyPFxuICBFIGV4dGVuZHMgUGljazxKU1guSW50cmluc2ljRWxlbWVudHMsIFwiZGl2XCIgfCBcImZvcm1cIj4sXG4gIFcgZXh0ZW5kcyBrZXlvZiBFXG4+KHtcbiAgY2hpbGRyZW4sXG4gIGJ1dHRvbnMsXG4gIHN0ZXAsXG4gIG9uQ2xvc2UsXG4gIG9uQmFjayxcbiAgZnVsbFBhZ2UsXG4gIGZpcnN0U3RlcCA9IDAsXG4gIHN0eWxlLFxuICB3cmFwcGVyOiBXcmFwcGVyID0gXCJkaXZcIiBhcyBhbnksXG59OiB7XG4gIG9uQ2xvc2U/OiAoKSA9PiB2b2lkO1xuICBvbkJhY2s/OiAoKSA9PiB2b2lkO1xuICBzdGVwOiBudW1iZXI7XG4gIGZpcnN0U3RlcD86IG51bWJlcjtcbiAgYnV0dG9uczoge1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgb25DbGljazogKCkgPT4gdm9pZDtcbiAgICBzdGF0ZTogRmxvd0NvbnRyb2xTdGF0ZTtcbiAgfVtdO1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3RFbGVtZW50W107XG4gIGZ1bGxQYWdlPzogYm9vbGVhbjtcbiAgc3R5bGU/OiBSZWFjdC5DU1NQcm9wZXJ0aWVzO1xuICB3cmFwcGVyPzogUmVhY3QuRWxlbWVudFR5cGU7XG59ICYgRVtXXSkge1xuICBmdW5jdGlvbiBfaGFuZGxlQmFja1ByZXNzKCkge1xuICAgIGlmIChpc0F0Rmlyc3RTdGVwKSBvbkNsb3NlICYmIG9uQ2xvc2UoKTtcbiAgICBlbHNlIGlmIChvbkJhY2spIG9uQmFjaygpO1xuICB9XG5cbiAgY29uc3QgaXNBdEZpcnN0U3RlcCA9IHN0ZXAgPT09IGZpcnN0U3RlcDtcblxuICBjb25zdCBzaG91bGREaXNwbGF5SGVhZGVyQnV0dG9uID1cbiAgICAoaXNBdEZpcnN0U3RlcCAmJiBvbkNsb3NlKSB8fCAoIWlzQXRGaXJzdFN0ZXAgJiYgb25CYWNrKTtcblxuICByZXR1cm4gKFxuICAgIDxXcmFwcGVyXG4gICAgICBvbkNsaWNrPXsoZTogTW91c2VFdmVudCkgPT4gZS5zdG9wUHJvcGFnYXRpb24oKX1cbiAgICAgIGNsYXNzTmFtZT17U3R5bGVzLmNvbnRhaW5lcn1cbiAgICAgIHN0eWxlPXtzdHlsZX1cbiAgICA+XG4gICAgICA8aGVhZGVyPlxuICAgICAgICB7c2hvdWxkRGlzcGxheUhlYWRlckJ1dHRvbiAmJiAoXG4gICAgICAgICAgPEhlYWRlckNsb3NlQnRuXG4gICAgICAgICAgICBtb2RlPXtpc0F0Rmlyc3RTdGVwID8gXCJjbG9zZVwiIDogXCJiYWNrXCJ9XG4gICAgICAgICAgICBoaWRkZW49eyFvbkJhY2t9XG4gICAgICAgICAgICBvbkNsaWNrPXtfaGFuZGxlQmFja1ByZXNzfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L2hlYWRlcj5cbiAgICAgIDxUcmFuc2l0aW9uXG4gICAgICAgIHN0ZXA9e3N0ZXB9XG4gICAgICAgIGNsYXNzTmFtZT17U3R5bGVzLnRyYW5zaXRpb259XG4gICAgICAgIGNvbnRlbnRDbGFzc05hbWU9e2Ake2Z1bGxQYWdlID8gU3R5bGVzLmZ1bGxIZWlnaHQgOiBcIlwifSAke1xuICAgICAgICAgIFN0eWxlcy5jb250ZW50XG4gICAgICAgIH1gfVxuICAgICAgPlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L1RyYW5zaXRpb24+XG4gICAgICA8Zm9vdGVyXG4gICAgICAgIGNsYXNzTmFtZT17XG4gICAgICAgICAgYnV0dG9ucy5maW5kKChiKSA9PiBiLnN0YXRlID09PSBcImhpZGRlblwiKSA/IFN0eWxlcy5oaWRkZW4gOiB1bmRlZmluZWRcbiAgICAgICAgfVxuICAgICAgPlxuICAgICAgICB7YnV0dG9ucy5tYXAoKGIpID0+IChcbiAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICBvbkNsaWNrPXtiLm9uQ2xpY2t9XG4gICAgICAgICAgICBkaXNhYmxlZD17Yi5zdGF0ZSA9PT0gXCJoaWRkZW5cIiB8fCBiLnN0YXRlID09PSBcImRpc2FibGVkXCJ9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2IubGFiZWx9XG4gICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICkpfVxuICAgICAgPC9mb290ZXI+XG4gICAgPC9XcmFwcGVyPlxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gSGVhZGluZ0ltYWdlKHsgc3JjIH06IHsgc3JjOiBzdHJpbmcgfSkge1xuICByZXR1cm4gPGltZyBzcmM9e3NyY30gY2xhc3NOYW1lPXtTdHlsZXMuaGVhZGluZ0ltZ30gLz47XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxlQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxXQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSSxxQkFBQSxHQUFBTCxzQkFBQSxDQUFBQyxPQUFBO0FBQWtELFNBQUFELHVCQUFBTSxHQUFBLFdBQUFBLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLEdBQUFELEdBQUEsS0FBQUUsT0FBQSxFQUFBRixHQUFBO0FBR2xEO0FBQ0E7QUFDQTtBQUNlLFNBQVNHLGNBQWNBLENBQUFDLElBQUEsRUEyQjVCO0VBQUEsSUF2QlJDLFFBQVEsR0FBQUQsSUFBQSxDQUFSQyxRQUFRO0lBQ1JDLE9BQU8sR0FBQUYsSUFBQSxD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
|
|
@@ -10,4 +10,5 @@ Object.defineProperty(exports, "default", {
|
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
12
|
var _FlowController = _interopRequireDefault(require("./FlowController"));
|
|
13
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
14
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfRmxvd0NvbnRyb2xsZXIiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRmxvd0NvbnRyb2xsZXIvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tICcuL0Zsb3dDb250cm9sbGVyJztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxlQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFBMkMsU0FBQUQsdUJBQUFFLEdBQUEsV0FBQUEsR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsR0FBQUQsR0FBQSxLQUFBRSxPQUFBLEVBQUFGLEdBQUEifQ==
|
|
@@ -161,4 +161,5 @@ function _FirebaseForm(_ref4, ref) {
|
|
|
161
161
|
}
|
|
162
162
|
const FirebaseForm = /*#__PURE__*/(0, _react.forwardRef)(_FirebaseForm);
|
|
163
163
|
var _default = FirebaseForm;
|
|
164
|
-
exports.default = _default;
|
|
164
|
+
exports.default = _default;
|
|
165
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfSW5wdXQiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX0J1dHRvbiIsIl9Mb2FkZXIiLCJfRW1haWxJbnB1dCIsIl9BZGFwdGl2ZUJ1dHRvbiIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwiX3R5cGVvZiIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0Iiwib3duS2V5cyIsIm9iamVjdCIsImVudW1lcmFibGVPbmx5Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsInN5bWJvbHMiLCJmaWx0ZXIiLCJzeW0iLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsInRhcmdldCIsImkiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJzb3VyY2UiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJ2YWx1ZSIsIl90b1Byb3BlcnR5S2V5IiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJhcmciLCJfdG9QcmltaXRpdmUiLCJTdHJpbmciLCJpbnB1dCIsImhpbnQiLCJwcmltIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJ1bmRlZmluZWQiLCJyZXMiLCJUeXBlRXJyb3IiLCJOdW1iZXIiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJnZW4iLCJyZXNvbHZlIiwicmVqZWN0IiwiX25leHQiLCJfdGhyb3ciLCJpbmZvIiwiZXJyb3IiLCJkb25lIiwiUHJvbWlzZSIsInRoZW4iLCJfYXN5bmNUb0dlbmVyYXRvciIsImZuIiwic2VsZiIsImFyZ3MiLCJlcnIiLCJfZXh0ZW5kcyIsImFzc2lnbiIsImJpbmQiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJhcnIiLCJfYXJyYXlXaXRob3V0SG9sZXMiLCJfaXRlcmFibGVUb0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlU3ByZWFkIiwiaXRlciIsIml0ZXJhdG9yIiwiQXJyYXkiLCJmcm9tIiwiaXNBcnJheSIsIl9hcnJheUxpa2VUb0FycmF5IiwiX3NsaWNlZFRvQXJyYXkiLCJfYXJyYXlXaXRoSG9sZXMiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJfbm9uSXRlcmFibGVSZXN0IiwibyIsIm1pbkxlbiIsIm4iLCJ0b1N0cmluZyIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwidGVzdCIsImxlbiIsImFycjIiLCJfaSIsIl9zIiwiX2UiLCJfeCIsIl9yIiwiX2FyciIsIl9uIiwiX2QiLCJuZXh0IiwicmV0dXJuIiwiQWR2YW5jZWRBY3Rpb24iLCJfcmVmIiwiY29uZmlnIiwic3VibWl0ZWQiLCJzdWJtaXR0aW5nIiwiaXNWYWxpZCIsIm9uQ2xpY2siLCJidG5Qcm9wcyIsIl9yZWYyIiwiY29uY2F0Iiwic3VjY2VzcyIsImxvYWRpbmciLCJsYWJlbCIsIl9yZWYzIiwiRWxlbWVudCIsImNsYXNzTmFtZSIsInNhbHQiLCJ1c2VNZW1vIiwiRGF0ZSIsIm5vdyIsImNyZWF0ZUVsZW1lbnQiLCJ2YXJpYW50IiwiZGlzYWJsZWQiLCJfRmlyZWJhc2VGb3JtIiwiX3JlZjQiLCJyZWYiLCJvblN1Ym1pdCIsInN1Ym1pdEJ0biIsIl9yZWY0JGJ0blByb3BzIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiZm9ybSIsInNldGZvcm0iLCJzb21lIiwiYSIsInZhbGlkYXRvciIsInNlbmRDb250YWN0IiwiX3gyIiwiX3NlbmRDb250YWN0IiwiX2Zvcm0iLCJ1c2VJbXBlcmF0aXZlSGFuZGxlIiwiY2xlYXIiLCJGcmFnbWVudCIsIm1hcCIsImMiLCJmaWVsZENvbmZpZyIsImludmFsaWRNZXNzYWdlIiwidHlwZSIsImlzTnVtYmVyIiwiaW5wdXRQcm9wcyIsInBsYWNlaG9sZGVyIiwiaGlkZUVycm9yIiwib25DaGFuZ2UiLCJfcmVmNSIsIl92YWx1ZSIsImlzTmFOIiwiZW1haWwiLCJfcmVmNiIsIm11bHRpbGluZSIsImxpbmVzIiwiRmlyZWJhc2VGb3JtIiwiZm9yd2FyZFJlZiIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0Zvcm0vRm9ybS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7XG4gIENvbXBvbmVudFByb3BzLFxuICBGb3J3YXJkZWRSZWYsXG4gIGZvcndhcmRSZWYsXG4gIEZ1bmN0aW9uQ29tcG9uZW50LFxuICBSZWZPYmplY3QsXG4gIHVzZUltcGVyYXRpdmVIYW5kbGUsXG4gIHVzZU1lbW8sXG4gIHVzZVN0YXRlLFxufSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBJbnB1dCBmcm9tIFwiLi4vSW5wdXRcIjtcbmltcG9ydCBCdXR0b24gZnJvbSBcIi4uL0J1dHRvblwiO1xuaW1wb3J0IExvYWRlciBmcm9tIFwiLi4vTG9hZGVyXCI7XG5pbXBvcnQgRW1haWxJbnB1dCBmcm9tIFwiLi4vRW1haWxJbnB1dFwiO1xuaW1wb3J0IEFkYXB0aXZlQnV0dG9uIGZyb20gXCIuLi9BZGFwdGl2ZUJ1dHRvblwiO1xuXG5leHBvcnQgdHlwZSBCYXNlRm9ybSA9IHsgW2s6IHN0cmluZ106IHN0cmluZyB8IG51bWJlciB8IGFueSB9O1xuZXhwb3J0IHR5cGUgRm9ybUZvcm0gPSB7IFtrOiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfTtcblxuZXhwb3J0IHR5cGUgRmllbGRUeXBlcyA9IFwiZW1haWxcIiB8IFwidGV4dFwiIHwgXCJ0ZXh0YXJlYVwiIHwgXCJzZWxlY3RcIiB8IFwibnVtYmVyXCI7XG5cbmV4cG9ydCB0eXBlIEZpZWxkRGVmaW5pdGlvbjxcbiAgTSBleHRlbmRzIEJhc2VGb3JtLFxuICBGIGV4dGVuZHMga2V5b2YgTSxcbiAgVCBleHRlbmRzIEZpZWxkVHlwZXNcbj4gPSB7XG4gIHZhbGlkYXRvcjogKHY6IE1bRl0gfCB1bmRlZmluZWQsIGY6IFBhcnRpYWw8TT4pID0+IHN0cmluZyB8IHRydWU7XG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xufSAmIChUIGV4dGVuZHMgXCJzZWxlY3RcIlxuICA/IHtcbiAgICAgIHR5cGU6IFwic2VsZWN0XCI7XG4gICAgICBjaG9pY2VzOiBDb21wb25lbnRQcm9wczx0eXBlb2YgaW1wb3J0KFwiLi4vU2VsZWN0XCIpW1wiZGVmYXVsdFwiXT5bXCJpdGVtc1wiXTtcbiAgICB9XG4gIDogVCBleHRlbmRzIFwiZW1haWxcIlxuICA/IHsgdHlwZTogXCJlbWFpbFwiOyBtZXNzYWdlczogQ29tcG9uZW50UHJvcHM8dHlwZW9mIEVtYWlsSW5wdXQ+W1wibWVzc2FnZXNcIl0gfVxuICA6IFQgZXh0ZW5kcyBcInRleHRhcmVhXCJcbiAgPyB7XG4gICAgICB0eXBlOiBcInRleHRhcmVhXCI7XG4gICAgICBsaW5lczogbnVtYmVyO1xuICAgIH1cbiAgOiB7XG4gICAgICB0eXBlOiBcInRleHRcIiB8IFwibnVtYmVyXCI7XG4gICAgICBpbnB1dFByb3BzPzogQ29tcG9uZW50UHJvcHM8dHlwZW9mIElucHV0PjtcbiAgICB9KTtcblxuZXhwb3J0IHR5cGUgQ2xhc3NOYW1lID0gc3RyaW5nO1xuXG5mdW5jdGlvbiBBZHZhbmNlZEFjdGlvbih7XG4gIGNvbmZpZyxcbiAgc3VibWl0ZWQsXG4gIHN1Ym1pdHRpbmcsXG4gIGlzVmFsaWQsXG4gIG9uQ2xpY2ssXG4gIGJ0blByb3BzLFxufTogUGljazxGaXJlYmFzZUZvcm1Qcm9wczx7fT4sIFwic3VibWl0ZWRcIiB8IFwic3VibWl0dGluZ1wiPiAmIHtcbiAgY29uZmlnOiBFeGNsdWRlPEZpcmViYXNlRm9ybVByb3BzPHt9PltcInN1Ym1pdEJ0blwiXSwgc3RyaW5nPjtcbiAgaXNWYWxpZDogYm9vbGVhbjtcbiAgb25DbGljazogKCkgPT4gdm9pZDtcbiAgYnRuUHJvcHM6IENvbXBvbmVudFByb3BzPHR5cGVvZiBCdXR0b24+O1xufSkge1xuICBjb25zdCBba2V5LCBFbGVtZW50LCBjbGFzc05hbWVdID1cbiAgICBzdWJtaXRlZCA9PT0gZmFsc2VcbiAgICAgID8gW1wiZXJyb3JcIiwgLi4uY29uZmlnLmVycm9yXVxuICAgICAgOiBzdWJtaXRlZCA9PT0gdHJ1ZVxuICAgICAgPyBbXCJzdWNjZXNzXCIsIC4uLmNvbmZpZy5zdWNjZXNzXVxuICAgICAgOiBzdWJtaXR0aW5nXG4gICAgICA/IFtcImxvYWRpbmdcIiwgLi4uY29uZmlnLmxvYWRpbmddXG4gICAgICA6IFtcImRlZmF1bHRcIiwgLi4uY29uZmlnLmxhYmVsXTtcblxuICBjb25zdCBzYWx0ID0gdXNlTWVtbygoKSA9PiBEYXRlLm5vdygpLCBba2V5XSk7XG5cbiAgcmV0dXJuIChcbiAgICA8QWRhcHRpdmVCdXR0b25cbiAgICAgIHZhcmlhbnQ9XCJmaWxsZWRcIlxuICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgICBkaXNhYmxlZD17IWlzVmFsaWR9XG4gICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgey4uLmJ0blByb3BzfVxuICAgID5cbiAgICAgIDxFbGVtZW50IGtleT17a2V5ICsgc2FsdH0gLz5cbiAgICA8L0FkYXB0aXZlQnV0dG9uPlxuICApO1xufVxuXG5leHBvcnQgdHlwZSBGb3JtSW50ZXJmYWNlID0ge1xuICBjbGVhcjogKCkgPT4gdm9pZDtcbn07XG5cbmV4cG9ydCB0eXBlIEZpcmViYXNlRm9ybVByb3BzPE0gZXh0ZW5kcyBGb3JtRm9ybT4gPSB7XG4gIHJlZj86IFJlZk9iamVjdDxGb3JtSW50ZXJmYWNlPjtcbiAgc3VibWl0dGluZzogYm9vbGVhbjtcbiAgb25TdWJtaXQ6IChkYXRhOiBNKSA9PiB2b2lkO1xuICBzdWJtaXRlZD86IGJvb2xlYW47XG4gIGNvbmZpZzogeyBbayBpbiBrZXlvZiBNXTogRmllbGREZWZpbml0aW9uPE0sIGssIEZpZWxkVHlwZXM+IH07XG4gIHN1Ym1pdEJ0bjpcbiAgICB8IHN0cmluZ1xuICAgIHwge1xuICAgICAgICBsYWJlbDogW0Z1bmN0aW9uQ29tcG9uZW50XSB8IFtGdW5jdGlvbkNvbXBvbmVudCwgQ2xhc3NOYW1lXTtcbiAgICAgICAgbG9hZGluZzogW0Z1bmN0aW9uQ29tcG9uZW50XSB8IFtGdW5jdGlvbkNvbXBvbmVudCwgQ2xhc3NOYW1lXTtcbiAgICAgICAgZXJyb3I6IFtGdW5jdGlvbkNvbXBvbmVudF0gfCBbRnVuY3Rpb25Db21wb25lbnQsIENsYXNzTmFtZV07XG4gICAgICAgIHN1Y2Nlc3M6IFtGdW5jdGlvbkNvbXBvbmVudF0gfCBbRnVuY3Rpb25Db21wb25lbnQsIENsYXNzTmFtZV07XG4gICAgICB9O1xuICBidG5Qcm9wcz86IENvbXBvbmVudFByb3BzPHR5cGVvZiBCdXR0b24+O1xufTtcbmZ1bmN0aW9uIF9GaXJlYmFzZUZvcm08TSBleHRlbmRzIEJhc2VGb3JtPihcbiAge1xuICAgIHN1Ym1pdHRpbmcsXG4gICAgb25TdWJtaXQsXG4gICAgc3VibWl0ZWQsXG4gICAgY29uZmlnLFxuICAgIHN1Ym1pdEJ0bixcbiAgICBidG5Qcm9wcyA9IHt9LFxuICB9OiBGaXJlYmFzZUZvcm1Qcm9wczxNPixcbiAgcmVmOiBGb3J3YXJkZWRSZWY8Rm9ybUludGVyZmFjZT5cbikge1xuICBjb25zdCBbZm9ybSwgc2V0Zm9ybV0gPSB1c2VTdGF0ZTxQYXJ0aWFsPE0+Pih7fSk7XG4gIGNvbnN0IGlzVmFsaWQgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICAhT2JqZWN0LmtleXMoY29uZmlnKS5zb21lKFxuICAgICAgICAoYSkgPT4gdHlwZW9mIGNvbmZpZ1thXS52YWxpZGF0b3IoZm9ybVthXSwgZm9ybSkgPT09IFwic3RyaW5nXCJcbiAgICAgICksXG4gICAgW2Zvcm1dXG4gICk7XG5cbiAgYXN5bmMgZnVuY3Rpb24gc2VuZENvbnRhY3QoX2Zvcm06IHR5cGVvZiBmb3JtKSB7XG4gICAgb25TdWJtaXQoX2Zvcm0gYXMgTSk7XG4gIH1cblxuICB1c2VJbXBlcmF0aXZlSGFuZGxlKFxuICAgIHJlZixcbiAgICAoKSA9PiAoe1xuICAgICAgY2xlYXI6ICgpID0+IHNldGZvcm0oe30pLFxuICAgIH0pLFxuICAgIFtyZWZdXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAge09iamVjdC5rZXlzKGNvbmZpZykubWFwKChjKSA9PiB7XG4gICAgICAgIGNvbnN0IGZpZWxkQ29uZmlnID0gY29uZmlnW2NdO1xuICAgICAgICBjb25zdCBpbnZhbGlkTWVzc2FnZSA9IGZpZWxkQ29uZmlnLnZhbGlkYXRvcihmb3JtW2NdLCBmb3JtKTtcbiAgICAgICAgc3dpdGNoIChmaWVsZENvbmZpZy50eXBlKSB7XG4gICAgICAgICAgY2FzZSBcInNlbGVjdFwiOlxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgY2FzZSBcInRleHRcIjpcbiAgICAgICAgICBjYXNlIFwibnVtYmVyXCI6XG4gICAgICAgICAgICBjb25zdCBpc051bWJlciA9IGZpZWxkQ29uZmlnLnR5cGUgPT09IFwibnVtYmVyXCI7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICA8SW5wdXRcbiAgICAgICAgICAgICAgICB7Li4uZmllbGRDb25maWcuaW5wdXRQcm9wc31cbiAgICAgICAgICAgICAgICBrZXk9e2N9XG4gICAgICAgICAgICAgICAgbmFtZT17Y31cbiAgICAgICAgICAgICAgICBlcnJvcj17XG4gICAgICAgICAgICAgICAgICBmb3JtW2NdICYmIGludmFsaWRNZXNzYWdlICE9PSB0cnVlXG4gICAgICAgICAgICAgICAgICAgID8gaW52YWxpZE1lc3NhZ2VcbiAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e2NvbmZpZ1tjXS5wbGFjZWhvbGRlcn1cbiAgICAgICAgICAgICAgICB2YWx1ZT17IWlzTnVtYmVyID8gZm9ybVtjXSB8fCBcIlwiIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgIGhpZGVFcnJvcj17XCJvbmZvY3VzXCJ9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyh7IHRhcmdldDogeyB2YWx1ZSB9IH06IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgbGV0IF92YWx1ZSA9IGlzTnVtYmVyID8gTnVtYmVyKHZhbHVlKSA6IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgaWYgKGlzTnVtYmVyICYmIE51bWJlci5pc05hTihfdmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIF92YWx1ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHNldGZvcm0oe1xuICAgICAgICAgICAgICAgICAgICAuLi5mb3JtLFxuICAgICAgICAgICAgICAgICAgICBbY106IF92YWx1ZSxcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApO1xuICAgICAgICAgIGNhc2UgXCJlbWFpbFwiOlxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgPEVtYWlsSW5wdXRcbiAgICAgICAgICAgICAgICBrZXk9e2N9XG4gICAgICAgICAgICAgICAgey4uLmZpZWxkQ29uZmlnfVxuICAgICAgICAgICAgICAgIG5hbWU9e2N9XG4gICAgICAgICAgICAgICAgaGlkZUVycm9yPXtcIm9uZm9jdXNcIn1cbiAgICAgICAgICAgICAgICBlcnJvcj17XG4gICAgICAgICAgICAgICAgICBmb3JtW2NdICYmIGludmFsaWRNZXNzYWdlICE9PSB0cnVlXG4gICAgICAgICAgICAgICAgICAgID8gaW52YWxpZE1lc3NhZ2VcbiAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e2NvbmZpZ1tjXS5wbGFjZWhvbGRlcn1cbiAgICAgICAgICAgICAgICB2YWx1ZT17KGZvcm1bY10gYXMgc3RyaW5nKSB8fCBcIlwifVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZW1haWwpID0+XG4gICAgICAgICAgICAgICAgICBzZXRmb3JtKHtcbiAgICAgICAgICAgICAgICAgICAgLi4uZm9ybSxcbiAgICAgICAgICAgICAgICAgICAgW2NdOiBlbWFpbCxcbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBjYXNlIFwidGV4dGFyZWFcIjpcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIDxJbnB1dFxuICAgICAgICAgICAgICAgIGtleT17Y31cbiAgICAgICAgICAgICAgICBuYW1lPXtjfVxuICAgICAgICAgICAgICAgIGhpZGVFcnJvcj17XCJvbmZvY3VzXCJ9XG4gICAgICAgICAgICAgICAgZXJyb3I9e1xuICAgICAgICAgICAgICAgICAgZm9ybVtjXSAmJiBpbnZhbGlkTWVzc2FnZSAhPT0gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICA/IGludmFsaWRNZXNzYWdlXG4gICAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtjb25maWdbY10ucGxhY2Vob2xkZXJ9XG4gICAgICAgICAgICAgICAgdmFsdWU9e2Zvcm1bY10gfHwgXCJcIn1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KHsgdGFyZ2V0OiB7IHZhbHVlIH0gfTogYW55KSA9PlxuICAgICAgICAgICAgICAgICAgc2V0Zm9ybSh7XG4gICAgICAgICAgICAgICAgICAgIC4uLmZvcm0sXG4gICAgICAgICAgICAgICAgICAgIFtjXTogdmFsdWUsXG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBtdWx0aWxpbmU9e2ZpZWxkQ29uZmlnLmxpbmVzfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSl9XG4gICAgICB7dHlwZW9mIHN1Ym1pdEJ0biA9PT0gXCJzdHJpbmdcIiA/IChcbiAgICAgICAgPEJ1dHRvblxuICAgICAgICAgIHZhcmlhbnQ9XCJmaWxsZWRcIlxuICAgICAgICAgIGRpc2FibGVkPXtzdWJtaXR0aW5nIHx8ICFpc1ZhbGlkIHx8IHN1Ym1pdGVkICE9PSB1bmRlZmluZWR9XG4gICAgICAgICAgb25DbGljaz17KCkgPT4gc2VuZENvbnRhY3QoZm9ybSBhcyBhbnkpfVxuICAgICAgICAgIHsuLi5idG5Qcm9wc31cbiAgICAgICAgPlxuICAgICAgICAgIHtzdWJtaXRCdG59Jm5ic3A7XG4gICAgICAgICAge3N1Ym1pdHRpbmcgJiYgPExvYWRlciAvPn1cbiAgICAgICAgPC9CdXR0b24+XG4gICAgICApIDogKFxuICAgICAgICA8QWR2YW5jZWRBY3Rpb25cbiAgICAgICAgICBjb25maWc9e3N1Ym1pdEJ0bn1cbiAgICAgICAgICBpc1ZhbGlkPXtpc1ZhbGlkfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNlbmRDb250YWN0KGZvcm0gYXMgYW55KX1cbiAgICAgICAgICBzdWJtaXR0aW5nPXtzdWJtaXR0aW5nfVxuICAgICAgICAgIHN1Ym1pdGVkPXtzdWJtaXRlZH1cbiAgICAgICAgICBidG5Qcm9wcz17YnRuUHJvcHN9XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgIDwvPlxuICApO1xufVxuY29uc3QgRmlyZWJhc2VGb3JtID0gZm9yd2FyZFJlZihfRmlyZWJhc2VG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
|
|
@@ -10,4 +10,5 @@ Object.defineProperty(exports, "default", {
|
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
12
|
var _Form = _interopRequireDefault(require("./Form"));
|
|
13
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
14
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfRm9ybSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9Gb3JtL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLi9Gb3JtXCI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsS0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQWlDLFNBQUFELHVCQUFBRSxHQUFBLFdBQUFBLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLEdBQUFELEdBQUEsS0FBQUUsT0FBQSxFQUFBRixHQUFBIn0=
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { FormViewProps } from "./Form.types";
|
|
3
|
+
import { AnswerByField, FormFieldView } from "./FormField/FormField.types";
|
|
4
|
+
export declare type FormRef<Q extends FormFieldView[]> = {
|
|
5
|
+
setAnswer<I extends Q[number]["id"]>(questionId: I, ans: AnswerByField<Q[number] & {
|
|
6
|
+
id: I;
|
|
7
|
+
}>): void;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Brainstorm:
|
|
11
|
+
* The answers must be externalized in some way because those answers will be manipulated
|
|
12
|
+
* There must be a way to disable non validation related errors
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* A new and improved version of the one-ui design form
|
|
16
|
+
**/
|
|
17
|
+
declare const _default: React.ForwardRefExoticComponent<FormViewProps<FormFieldView[]> & React.RefAttributes<FormRef<FormFieldView[]>>>;
|
|
18
|
+
export default _default;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { AnswerAction, FormField, FormFieldView, FormMode } from "./FormField/FormField.types";
|
|
2
|
+
import { AnswersMap } from "./Form.types";
|
|
3
|
+
export declare function useForm(currentQuestions: FormFieldView[], defaultAnswers: AnswersMap, mode: FormMode): {
|
|
4
|
+
answers: Partial<{
|
|
5
|
+
[x: string]: string;
|
|
6
|
+
}>;
|
|
7
|
+
isQuestionsAnswered: boolean;
|
|
8
|
+
isFilesUploaded: boolean;
|
|
9
|
+
onAnswerAction: <T extends "number" | "radio" | "text" | "date" | "select" | "accept" | "file" | "phone" | "check" | "rawcheck">(questionType: T, id: string, answer: AnswerAction<{
|
|
10
|
+
type: T;
|
|
11
|
+
}> | undefined) => void;
|
|
12
|
+
questions: FormFieldView[];
|
|
13
|
+
};
|
|
14
|
+
export declare function useFieldErrors<Q extends Readonly<Pick<FormField, "type" | "id" | "optional" | "validator">[]>>(currentQuestions: Q, answers: AnswersMap, showAllErrors: boolean): { [k in Q[number]["id"]]: string; };
|
|
15
|
+
export declare function areAllQuestionsAnswered(currentQuestions: FormField[], answers: AnswersMap, requiredLabel: string): {
|
|
16
|
+
isValid: boolean;
|
|
17
|
+
};
|
|
18
|
+
export declare const isValidated: (_answer: string | [val: string, isValid: boolean, error?: string], isOptional: boolean, validator: ((val: any) => string | boolean) | undefined, requiredFieldLabel: string) => {
|
|
19
|
+
isValid: boolean;
|
|
20
|
+
error: string | undefined;
|
|
21
|
+
};
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.areAllQuestionsAnswered = areAllQuestionsAnswered;
|
|
8
|
+
exports.isValidated = void 0;
|
|
9
|
+
exports.useFieldErrors = useFieldErrors;
|
|
10
|
+
exports.useForm = useForm;
|
|
11
|
+
var _react = require("react");
|
|
12
|
+
var _OneUIProvider = require("../../../context/OneUIProvider");
|
|
13
|
+
var _FormField = require("./FormField/FormField.types");
|
|
14
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
15
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
16
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
17
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
18
|
+
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
19
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
20
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
21
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
22
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
23
|
+
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
|
24
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
25
|
+
function useForm(currentQuestions, defaultAnswers, mode) {
|
|
26
|
+
const formConfig = (0, _OneUIProvider.useOneUIConfig)("component.form");
|
|
27
|
+
const _useState = (0, _react.useState)(function () {
|
|
28
|
+
const clone = _objectSpread({}, defaultAnswers);
|
|
29
|
+
if (mode === _FormField.FormMode.READ_ONLY) return clone;
|
|
30
|
+
return clone;
|
|
31
|
+
}),
|
|
32
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
33
|
+
answers = _useState2[0],
|
|
34
|
+
setAnswers = _useState2[1];
|
|
35
|
+
const _useMemo = (0, _react.useMemo)(function () {
|
|
36
|
+
return areAllQuestionsAnswered(currentQuestions, answers, formConfig.requiredLabel);
|
|
37
|
+
}, [answers, currentQuestions]),
|
|
38
|
+
isQuestionsAnswered = _useMemo.isValid;
|
|
39
|
+
const onAnswerAction = function onAnswerAction(questionType, id, answer) {
|
|
40
|
+
switch (questionType) {
|
|
41
|
+
case "file":
|
|
42
|
+
const onFileUpload = formConfig.onFileUpload;
|
|
43
|
+
setAnswers(function (prev) {
|
|
44
|
+
const file = answer;
|
|
45
|
+
if (file) return _objectSpread(_objectSpread({}, prev), {}, _defineProperty({}, id, onFileUpload(id, file)));
|
|
46
|
+
delete prev[id];
|
|
47
|
+
return _objectSpread({}, prev);
|
|
48
|
+
});
|
|
49
|
+
break;
|
|
50
|
+
default:
|
|
51
|
+
setAnswers(function (prev) {
|
|
52
|
+
return _objectSpread(_objectSpread({}, prev), {}, _defineProperty({}, id, answer));
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
const isFilesUploaded = useFileUploads(currentQuestions, answers);
|
|
57
|
+
return {
|
|
58
|
+
answers: answers,
|
|
59
|
+
isQuestionsAnswered: isQuestionsAnswered,
|
|
60
|
+
isFilesUploaded: isFilesUploaded,
|
|
61
|
+
onAnswerAction: onAnswerAction,
|
|
62
|
+
questions: currentQuestions
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
function useFileUploads(questions, answers) {
|
|
66
|
+
const fileUploadQuestions = (0, _react.useMemo)(function () {
|
|
67
|
+
return questions.filter(function (a) {
|
|
68
|
+
return a.type === "file";
|
|
69
|
+
});
|
|
70
|
+
}, [questions]);
|
|
71
|
+
const _useState3 = (0, _react.useState)({}),
|
|
72
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
73
|
+
fileUploadStatus = _useState4[0],
|
|
74
|
+
setFileUploadStatus = _useState4[1];
|
|
75
|
+
(0, _react.useLayoutEffect)(function () {
|
|
76
|
+
const unsubs = [];
|
|
77
|
+
for (let fileQuestion of fileUploadQuestions) {
|
|
78
|
+
const uploadTask = answers[fileQuestion.id];
|
|
79
|
+
if (!uploadTask) setFileUploadStatus(function (prev) {
|
|
80
|
+
return _objectSpread(_objectSpread({}, prev), {}, _defineProperty({}, fileQuestion.id, "running"));
|
|
81
|
+
});else if (typeof uploadTask === "boolean") {
|
|
82
|
+
setFileUploadStatus(function (prev) {
|
|
83
|
+
return _objectSpread(_objectSpread({}, prev), {}, _defineProperty({}, fileQuestion.id, "success"));
|
|
84
|
+
});
|
|
85
|
+
} else unsubs.push(uploadTask.on("state_changed", function (r) {
|
|
86
|
+
setFileUploadStatus(function (prev) {
|
|
87
|
+
return _objectSpread(_objectSpread({}, prev), {}, _defineProperty({}, fileQuestion.id, r.totalBytes === r.bytesTransferred ? "success" : "running"));
|
|
88
|
+
});
|
|
89
|
+
}));
|
|
90
|
+
}
|
|
91
|
+
return function () {
|
|
92
|
+
unsubs.forEach(function (unsub) {
|
|
93
|
+
return unsub();
|
|
94
|
+
});
|
|
95
|
+
};
|
|
96
|
+
}, [answers, fileUploadQuestions]);
|
|
97
|
+
const areAllFileUploaded = (0, _react.useMemo)(function () {
|
|
98
|
+
return fileUploadQuestions.reduce(function (r, question) {
|
|
99
|
+
const uploadStatus = fileUploadStatus[question.id];
|
|
100
|
+
return r && uploadStatus === "success";
|
|
101
|
+
}, true);
|
|
102
|
+
}, [fileUploadStatus, fileUploadQuestions]);
|
|
103
|
+
return areAllFileUploaded;
|
|
104
|
+
}
|
|
105
|
+
function useFieldErrors(currentQuestions, answers, showAllErrors) {
|
|
106
|
+
const _useOneUIConfig = (0, _OneUIProvider.useOneUIConfig)("component.form"),
|
|
107
|
+
requiredLabel = _useOneUIConfig.requiredLabel;
|
|
108
|
+
const errorMap = (0, _react.useMemo)(function () {
|
|
109
|
+
const ans = function ans(question) {
|
|
110
|
+
return answers[question.id];
|
|
111
|
+
};
|
|
112
|
+
const errorsMap = {};
|
|
113
|
+
for (let question of currentQuestions) {
|
|
114
|
+
const _isValidated = function _isValidated() {
|
|
115
|
+
return isValidated(ans(question), !!question.optional, question.validator, requiredLabel);
|
|
116
|
+
};
|
|
117
|
+
const validation = _isValidated();
|
|
118
|
+
errorsMap[question.id] = validation.error;
|
|
119
|
+
switch (question.type) {
|
|
120
|
+
case "check":
|
|
121
|
+
case "rawcheck":
|
|
122
|
+
if (question.validator) errorsMap[question.id] = question.validator(ans(question));
|
|
123
|
+
break;
|
|
124
|
+
case "number":
|
|
125
|
+
case "text":
|
|
126
|
+
case "select":
|
|
127
|
+
case "radio":
|
|
128
|
+
case "file":
|
|
129
|
+
const validationResult = _isValidated();
|
|
130
|
+
if (validationResult.error) errorsMap[question.id] = validationResult.error;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
return errorsMap;
|
|
134
|
+
}, [currentQuestions, answers]);
|
|
135
|
+
const currentErrors = (0, _react.useMemo)(function () {
|
|
136
|
+
return Object.entries(errorMap).reduce(function (r, _ref) {
|
|
137
|
+
let _ref2 = _slicedToArray(_ref, 2),
|
|
138
|
+
k = _ref2[0],
|
|
139
|
+
v = _ref2[1];
|
|
140
|
+
return _objectSpread(_objectSpread({}, r), {}, _defineProperty({}, k, showAllErrors ? v : v !== requiredLabel ? v : undefined));
|
|
141
|
+
}, {});
|
|
142
|
+
}, [showAllErrors, errorMap]);
|
|
143
|
+
return currentErrors;
|
|
144
|
+
}
|
|
145
|
+
function areAllQuestionsAnswered(currentQuestions, answers, requiredLabel) {
|
|
146
|
+
const isValid = currentQuestions.reduce(function (answeredAll, question) {
|
|
147
|
+
const ans = function ans(question) {
|
|
148
|
+
return answers[question.id];
|
|
149
|
+
};
|
|
150
|
+
const result = answeredAll && function () {
|
|
151
|
+
switch (question.type) {
|
|
152
|
+
case "accept":
|
|
153
|
+
const checks = ans(question) || [];
|
|
154
|
+
return question.accept.reduce(function (r, _ref3, idx) {
|
|
155
|
+
let optional = _ref3.optional;
|
|
156
|
+
return r && (optional ? true : checks[idx]);
|
|
157
|
+
}, true);
|
|
158
|
+
case "check":
|
|
159
|
+
case "rawcheck":
|
|
160
|
+
if (question.optional) return true;
|
|
161
|
+
if (question.validator) return question.validator(ans(question));
|
|
162
|
+
const checkmarks = ans(question) || [];
|
|
163
|
+
return checkmarks.includes(true);
|
|
164
|
+
case "number":
|
|
165
|
+
case "text":
|
|
166
|
+
case "select":
|
|
167
|
+
case "radio":
|
|
168
|
+
case "file":
|
|
169
|
+
if (!answers[question.id]) return false;
|
|
170
|
+
const validationResult = isValidated(ans(question), !!question.optional, question.validator, requiredLabel);
|
|
171
|
+
return validationResult.isValid && answeredAll;
|
|
172
|
+
default:
|
|
173
|
+
return question.validator ? !!question.validator(ans(question)) : !!ans(question);
|
|
174
|
+
}
|
|
175
|
+
}();
|
|
176
|
+
return result;
|
|
177
|
+
}, true);
|
|
178
|
+
return {
|
|
179
|
+
isValid: !!isValid
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
const isValidated = function isValidated(_answer, isOptional, validator, requiredFieldLabel) {
|
|
183
|
+
const answer = Array.isArray(_answer) ? _answer[0] : _answer;
|
|
184
|
+
if (!answer && !isOptional) return {
|
|
185
|
+
isValid: false,
|
|
186
|
+
error: requiredFieldLabel
|
|
187
|
+
};
|
|
188
|
+
if (!validator) if (Array.isArray(_answer)) {
|
|
189
|
+
const _answer2 = _slicedToArray(_answer, 3),
|
|
190
|
+
_ = _answer2[0],
|
|
191
|
+
isValid = _answer2[1],
|
|
192
|
+
error = _answer2[2];
|
|
193
|
+
return {
|
|
194
|
+
isValid: isValid,
|
|
195
|
+
error: error
|
|
196
|
+
};
|
|
197
|
+
} else {
|
|
198
|
+
return {
|
|
199
|
+
isValid: true,
|
|
200
|
+
error: ""
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
const validationResult = validator(answer);
|
|
204
|
+
if (typeof validationResult === "string") return {
|
|
205
|
+
isValid: false,
|
|
206
|
+
error: validationResult
|
|
207
|
+
};
|
|
208
|
+
return {
|
|
209
|
+
isValid: validationResult,
|
|
210
|
+
error: ""
|
|
211
|
+
};
|
|
212
|
+
};
|
|
213
|
+
exports.isValidated = isValidated;
|
|
214
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX09uZVVJUHJvdmlkZXIiLCJfRm9ybUZpZWxkIiwib3duS2V5cyIsIm9iamVjdCIsImVudW1lcmFibGVPbmx5Iiwia2V5cyIsIk9iamVjdCIsImdldE93blByb3BlcnR5U3ltYm9scyIsInN5bWJvbHMiLCJmaWx0ZXIiLCJzeW0iLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsInRhcmdldCIsImkiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJzb3VyY2UiLCJmb3JFYWNoIiwia2V5IiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIm9iaiIsInZhbHVlIiwiX3RvUHJvcGVydHlLZXkiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImFyZyIsIl90b1ByaW1pdGl2ZSIsIl90eXBlb2YiLCJTdHJpbmciLCJpbnB1dCIsImhpbnQiLCJwcmltIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJ1bmRlZmluZWQiLCJyZXMiLCJjYWxsIiwiVHlwZUVycm9yIiwiTnVtYmVyIiwiX3NsaWNlZFRvQXJyYXkiLCJhcnIiLCJfYXJyYXlXaXRoSG9sZXMiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVSZXN0IiwibyIsIm1pbkxlbiIsIl9hcnJheUxpa2VUb0FycmF5IiwibiIsInByb3RvdHlwZSIsInRvU3RyaW5nIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJBcnJheSIsImZyb20iLCJ0ZXN0IiwibGVuIiwiYXJyMiIsIl9pIiwiaXRlcmF0b3IiLCJfcyIsIl9lIiwiX3giLCJfciIsIl9hcnIiLCJfbiIsIl9kIiwibmV4dCIsImRvbmUiLCJlcnIiLCJyZXR1cm4iLCJpc0FycmF5IiwidXNlRm9ybSIsImN1cnJlbnRRdWVzdGlvbnMiLCJkZWZhdWx0QW5zd2VycyIsIm1vZGUiLCJmb3JtQ29uZmlnIiwidXNlT25lVUlDb25maWciLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsImNsb25lIiwiRm9ybU1vZGUiLCJSRUFEX09OTFkiLCJfdXNlU3RhdGUyIiwiYW5zd2VycyIsInNldEFuc3dlcnMiLCJfdXNlTWVtbyIsInVzZU1lbW8iLCJhcmVBbGxRdWVzdGlvbnNBbnN3ZXJlZCIsInJlcXVpcmVkTGFiZWwiLCJpc1F1ZXN0aW9uc0Fuc3dlcmVkIiwiaXNWYWxpZCIsIm9uQW5zd2VyQWN0aW9uIiwicXVlc3Rpb25UeXBlIiwiaWQiLCJhbnN3ZXIiLCJvbkZpbGVVcGxvYWQiLCJwcmV2IiwiZmlsZSIsImlzRmlsZXNVcGxvYWRlZCIsInVzZUZpbGVVcGxvYWRzIiwicXVlc3Rpb25zIiwiZmlsZVVwbG9hZFF1ZXN0aW9ucyIsImEiLCJ0eXBlIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJmaWxlVXBsb2FkU3RhdHVzIiwic2V0RmlsZVVwbG9hZFN0YXR1cyIsInVzZUxheW91dEVmZmVjdCIsInVuc3VicyIsImZpbGVRdWVzdGlvbiIsInVwbG9hZFRhc2siLCJvbiIsInIiLCJ0b3RhbEJ5dGVzIiwiYnl0ZXNUcmFuc2ZlcnJlZCIsInVuc3ViIiwiYXJlQWxsRmlsZVVwbG9hZGVkIiwicmVkdWNlIiwicXVlc3Rpb24iLCJ1cGxvYWRTdGF0dXMiLCJ1c2VGaWVsZEVycm9ycyIsInNob3dBbGxFcnJvcnMiLCJfdXNlT25lVUlDb25maWciLCJlcnJvck1hcCIsImFucyIsImVycm9yc01hcCIsIl9pc1ZhbGlkYXRlZCIsImlzVmFsaWRhdGVkIiwib3B0aW9uYWwiLCJ2YWxpZGF0b3IiLCJ2YWxpZGF0aW9uIiwiZXJyb3IiLCJ2YWxpZGF0aW9uUmVzdWx0IiwiY3VycmVudEVycm9ycyIsImVudHJpZXMiLCJfcmVmIiwiX3JlZjIiLCJrIiwidiIsImFuc3dlcmVkQWxsIiwicmVzdWx0IiwiY2hlY2tzIiwiYWNjZXB0IiwiX3JlZjMiLCJpZHgiLCJjaGVja21hcmtzIiwiaW5jbHVkZXMiLCJfYW5zd2VyIiwiaXNPcHRpb25hbCIsInJlcXVpcmVkRmllbGRMYWJlbCIsIl9hbnN3ZXIyIiwiXyIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9Gb3JtL3YyL0Zvcm0uaG9vay50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VMYXlvdXRFZmZlY3QsIHVzZU1lbW8sIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VPbmVVSUNvbmZpZyB9IGZyb20gXCIuLi8uLi8uLi9jb250ZXh0L09uZVVJUHJvdmlkZXJcIjtcbmltcG9ydCB7XG4gIEFuc3dlckFjdGlvbixcbiAgQW5zd2VyQnlGaWVsZCxcbiAgRm9ybUZpZWxkLFxuICBGb3JtRmllbGRWaWV3LFxuICBGb3JtTW9kZSxcbn0gZnJvbSBcIi4vRm9ybUZpZWxkL0Zvcm1GaWVsZC50eXBlc1wiO1xuaW1wb3J0IHsgQW5zd2Vyc01hcCB9IGZyb20gXCIuL0Zvcm0udHlwZXNcIjtcbmltcG9ydCB7IFVwbG9hZFRhc2ssIFVwbG9hZFRhc2tTbmFwc2hvdCB9IGZyb20gXCJmaXJlYmFzZS9zdG9yYWdlXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VGb3JtKFxuICBjdXJyZW50UXVlc3Rpb25zOiBGb3JtRmllbGRWaWV3W10sXG4gIGRlZmF1bHRBbnN3ZXJzOiBBbnN3ZXJzTWFwLFxuICBtb2RlOiBGb3JtTW9kZVxuKSB7XG4gIGNvbnN0IGZvcm1Db25maWcgPSB1c2VPbmVVSUNvbmZpZyhcImNvbXBvbmVudC5mb3JtXCIpO1xuICBjb25zdCBbYW5zd2Vycywgc2V0QW5zd2Vyc10gPSB1c2VTdGF0ZTxBbnN3ZXJzTWFwPigoKSA9PiB7XG4gICAgY29uc3QgY2xvbmUgPSB7XG4gICAgICAuLi5kZWZhdWx0QW5zd2VycyxcbiAgICB9O1xuICAgIGlmIChtb2RlID09PSBGb3JtTW9kZS5SRUFEX09OTFkpIHJldHVybiBjbG9uZTtcbiAgICByZXR1cm4gY2xvbmU7XG4gIH0pO1xuXG4gIGNvbnN0IHsgaXNWYWxpZDogaXNRdWVzdGlvbnNBbnN3ZXJlZCB9ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIGFyZUFsbFF1ZXN0aW9uc0Fuc3dlcmVkKFxuICAgICAgY3VycmVudFF1ZXN0aW9ucyxcbiAgICAgIGFuc3dlcnMsXG4gICAgICBmb3JtQ29uZmlnLnJlcXVpcmVkTGFiZWxcbiAgICApO1xuICB9LCBbYW5zd2VycywgY3VycmVudFF1ZXN0aW9uc10pO1xuXG4gIGNvbnN0IG9uQW5zd2VyQWN0aW9uID0gPFQgZXh0ZW5kcyBGb3JtRmllbGRbXCJ0eXBlXCJdPihcbiAgICBxdWVzdGlvblR5cGU6IFQsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBhbnN3ZXI6XG4gICAgICB8IEFuc3dlckFjdGlvbjx7XG4gICAgICAgICAgdHlwZTogVDtcbiAgICAgICAgfT5cbiAgICAgIHwgdW5kZWZpbmVkXG4gICkgPT4ge1xuICAgIHN3aXRjaCAocXVlc3Rpb25UeXBlKSB7XG4gICAgICBjYXNlIFwiZmlsZVwiOlxuICAgICAgICBjb25zdCB7IG9uRmlsZVVwbG9hZCB9ID0gZm9ybUNvbmZpZztcbiAgICAgICAgc2V0QW5zd2VycygocHJldjogYW55KSA9PiB7XG4gICAgICAgICAgY29uc3QgZmlsZSA9IGFuc3dlciBhcyBGaWxlIHwgdW5kZWZpbmVkO1xuICAgICAgICAgIGlmIChmaWxlKVxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgLi4ucHJldixcbiAgICAgICAgICAgICAgW2lkXTogb25GaWxlVXBsb2FkKGlkLCBmaWxlKSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgZGVsZXRlIHByZXZbaWRdO1xuICAgICAgICAgIHJldHVybiB7IC4uLnByZXYgfTtcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgc2V0QW5zd2VycygocHJldikgPT4gKHtcbiAgICAgICAgICAuLi5wcmV2LFxuICAgICAgICAgIFtpZF06IGFuc3dlciBhcyBzdHJpbmcsXG4gICAgICAgIH0pKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgaXNGaWxlc1VwbG9hZGVkID0gdXNlRmlsZVVwbG9hZHMoY3VycmVudFF1ZXN0aW9ucywgYW5zd2Vycyk7XG5cbiAgcmV0dXJuIHtcbiAgICBhbnN3ZXJzLFxuICAgIGlzUXVlc3Rpb25zQW5zd2VyZWQsXG4gICAgaXNGaWxlc1VwbG9hZGVkLFxuICAgIG9uQW5zd2VyQWN0aW9uLFxuICAgIHF1ZXN0aW9uczogY3VycmVudFF1ZXN0aW9ucyxcbiAgfTtcbn1cblxuZnVuY3Rpb24gdXNlRmlsZVVwbG9hZHMocXVlc3Rpb25zOiBGb3JtRmllbGRbXSwgYW5zd2VyczogQW5zd2Vyc01hcCkge1xuICBjb25zdCBmaWxlVXBsb2FkUXVlc3Rpb25zID0gdXNlTWVtbyhcbiAgICAoKSA9PiBxdWVzdGlvbnMuZmlsdGVyKChhKSA9PiBhLnR5cGUgPT09IFwiZmlsZVwiKSxcbiAgICBbcXVlc3Rpb25zXVxuICApO1xuICBjb25zdCBbZmlsZVVwbG9hZFN0YXR1cywgc2V0RmlsZVVwbG9hZFN0YXR1c10gPSB1c2VTdGF0ZTx7XG4gICAgW3F1ZXN0aW9uSUQ6IHN0cmluZ106IFVwbG9hZFRhc2tTbmFwc2hvdFtcInN0YXRlXCJdO1xuICB9Pih7fSk7XG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgdW5zdWJzOiBSZXR1cm5UeXBlPFVwbG9hZFRhc2tbXCJvblwiXT5bXSA9IFtdO1xuICAgIGZvciAobGV0IGZpbGVRdWVzdGlvbiBvZiBmaWxlVXBsb2FkUXVlc3Rpb25zKSB7XG4gICAgICBjb25zdCB1cGxvYWRUYXNrID0gYW5zd2Vyc1tmaWxlUXVlc3Rpb24uaWRdIGFzXG4gICAgICAgIHwgQW5zd2VyQnlGaWVsZDx7XG4gICAgICAgICAgICB0eXBlOiBcImZpbGVcIjtcbiAgICAgICAgICB9PlxuICAgICAgICB8IHVuZGVmaW5lZDtcblxuICAgICAgaWYgKCF1cGxvYWRUYXNrKVxuICAgICAgICBzZXRGaWxlVXBsb2FkU3RhdHVzKChwcmV2KSA9PiAoe1xuICAgICAgICAgIC4uLnByZXYsXG4gICAgICAgICAgW2ZpbGVRdWVzdGlvbi5pZF06IFwicnVubmluZ1wiLFxuICAgICAgICB9KSk7XG4gICAgICBlbHNlIGlmICh0eXBlb2YgdXBsb2FkVGFzayA9PT0gXCJib29sZWFuXCIpIHtcbiAgICAgICAgc2V0RmlsZVVwbG9hZFN0YXR1cygocHJldikgPT4gKHtcbiAgICAgICAgICAuLi5wcmV2LFxuICAgICAgICAgIFtmaWxlUXVlc3Rpb24uaWRdOiBcInN1Y2Nlc3NcIixcbiAgICAgICAgfSkpO1xuICAgICAgfSBlbHNlXG4gICAgICAgIHVuc3Vicy5wdXNoKFxuICAgICAgICAgIHVwbG9hZFRhc2sub24oXCJzdGF0ZV9jaGFuZ2VkXCIsIChyKSA9PiB7XG4gICAgICAgICAgICBzZXRGaWxlVXBsb2FkU3RhdHVzKChwcmV2KSA9PiAoe1xuICAgICAgICAgICAgICAuLi5wcmV2LFxuICAgICAgICAgICAgICBbZmlsZVF1ZXN0aW9uLmlkXTpcbiAgICAgICAgICAgICAgICByLnRvdGFsQnl0ZXMgPT09IHIuYnl0ZXNUcmFuc2ZlcnJlZCA/IFwic3VjY2Vzc1wiIDogXCJydW5uaW5nXCIsXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgdW5zdWJzLmZvckVhY2goKHVuc3ViKSA9PiB1bnN1YigpKTtcbiAgICB9O1xuICB9LCBbYW5zd2VycywgZmlsZVVwbG9hZFF1ZXN0aW9uc10pO1xuXG4gIGNvbnN0IGFyZUFsbEZpbGVVcGxvYWRlZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBmaWxlVXBsb2FkUXVlc3Rpb25zLnJlZHVjZSgociwgcXVlc3Rpb24pID0+IHtcbiAgICAgIGNvbnN0IHVwbG9hZFN0YXR1cyA9IGZpbGVVcGxvYWRTdGF0dXNbcXVlc3Rpb24uaWRdO1xuICAgICAgcmV0dXJuIHIgJiYgdXBsb2FkU3RhdHVzID09PSBcInN1Y2Nlc3NcIjtcbiAgICB9LCB0cnVlKTtcbiAgfSwgW2ZpbGVVcGxvYWRTdGF0dXMsIGZpbGVVcGxvYWRRdWVzdGlvbnNdKTtcblxuICByZXR1cm4gYXJlQWxsRmlsZVVwbG9hZGVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlRmllbGRFcnJvcnM8XG4gIFEgZXh0ZW5kcyBSZWFkb25seTxcbiAgICBQaWNrPEZvcm1GaWVsZCwgXCJ0eXBlXCIgfCBcImlkXCIgfCBcIm9wdGlvbmFsXCIgfCBcInZhbGlkYXRvclwiPltdXG4gID5cbj4oY3VycmVudFF1ZXN0aW9uczogUSwgYW5zd2VyczogQW5zd2Vyc01hcCwgc2hvd0FsbEVycm9yczogYm9vbGVhbikge1xuICBjb25zdCB7IHJlcXVpcmVkTGFiZWwgfSA9IHVzZU9uZVVJQ29uZmlnKFwiY29tcG9uZW50LmZvcm1cIik7XG4gIGNvbnN0IGVycm9yTWFwID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgYW5zID0gPFQgZXh0ZW5kcyBGb3JtRmllbGRWaWV3W1widHlwZVwiXT4oXG4gICAgICBxdWVzdGlvbjogUGljazxGb3JtRmllbGQsIFwiaWRcIj4gJiB7XG4gICAgICAgIHR5cGU6IFQ7XG4gICAgICB9XG4gICAgKSA9PlxuICAgICAgYW5zd2Vyc1txdWVzdGlvbi5pZF0gYXMgQW5zd2VyQnlGaWVsZDx7XG4gICAgICAgIHR5cGU6IFQ7XG4gICAgICB9PjtcbiAgICBjb25zdCBlcnJvcnNNYXA6IHtcbiAgICAgIFtxdWVzdGlvbklkOiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgfSA9IHt9O1xuICAgIGZvciAobGV0IHF1ZXN0aW9uIG9mIGN1cnJlbnRRdWVzdGlvbnMpIHtcbiAgICAgIGNvbnN0IF9pc1ZhbGlkYXRlZCA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIGlzVmFsaWRhdGVkKFxuICAgICAgICAgIGFucyhxdWVzdGlvbiksXG4gICAgICAgICAgISFxdWVzdGlvbi5vcHRpb25hbCxcbiAgICAgICAgICBxdWVzdGlvbi52YWxpZGF0b3IsXG4gICAgICAgICAgcmVxdWlyZWRMYWJlbFxuICAgICAgICApO1xuICAgICAgfTtcblxuICAgICAgY29uc3QgdmFsaWRhdGlvbiA9IF9pc1ZhbGlkYXRlZCgpO1xuICAgICAgZXJyb3JzTWFwW3F1ZXN0aW9uLmlkXSA9IHZhbGlkYXRpb24uZXJyb3I7XG4gICAgICBzd2l0Y2ggKHF1ZXN0aW9uLnR5cGUpIHtcbiAgICAgICAgY2FzZSBcImNoZWNrXCI6XG4gICAgICAgIGNhc2UgXCJyYXdjaGVja1wiOlxuICAgICAgICAgIGlmIChxdWVzdGlvbi52YWxpZGF0b3IpXG4gICAgICAgICAgICBlcnJvcnNNYXBbcXVlc3Rpb24uaWRdID0gcXVlc3Rpb24udmFsaWRhdG9yKFxuICAgICAgICAgICAgICBhbnMocXVlc3Rpb24pIGFzIGFueVxuICAgICAgICAgICAgKSBhcyBzdHJpbmc7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJudW1iZXJcIjpcbiAgICAgICAgY2FzZSBcInRleHRcIjpcbiAgICAgICAgY2FzZSBcInNlbGVjdFwiOlxuICAgICAgICBjYXNlIFwicmFkaW9cIjpcbiAgICAgICAgY2FzZSBcImZpbGVcIjpcbiAgICAgICAgICBjb25zdCB2YWxpZGF0aW9uUmVzdWx0ID0gX2lzVmFsaWRhdGVkKCk7XG4gICAgICAgICAgaWYgKHZhbGlkYXRpb25SZXN1bHQuZXJyb3IpXG4gICAgICAgICAgICBlcnJvcnNNYXBbcXVlc3Rpb24uaWRdID0gdmFsaWRhdGlvblJlc3VsdC5lcnJvcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZXJyb3JzTWFwO1xuICB9LCBbY3VycmVudFF1ZXN0aW9ucywgYW5zd2Vyc10pO1xuXG4gIGNvbnN0IGN1cnJlbnRFcnJvcnMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMoZXJyb3JNYXApLnJlZHVjZShcbiAgICAgIChyLCBbaywgdl0pID0+ICh7XG4gICAgICAgIC4uLnIsXG4gICAgICAgIFtrXTogc2hvd0FsbEVycm9ycyA/IHYgOiB2ICE9PSByZXF1aXJlZExhYmVsID8gdiA6IHVuZGVmaW5lZCxcbiAgICAgIH0pLFxuICAgICAge31cbiAgICApO1xuICB9LCBbc2hvd0FsbEVycm9ycywgZXJyb3JNYXBdKTtcblxuICByZXR1cm4gY3VycmVudEVycm9ycyBhcyB7IFtrIGluIFFbbnVtYmVyXVtcImlkXCJdXTogc3RyaW5nIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcmVBbGxRdWVzdGlvbnNBbnN3ZXJlZChcbiAgY3VycmVudFF1ZXN0aW9uczogRm9ybUZpZWxkW10sXG4gIGFuc3dlcnM6IEFuc3dlcnNNYXAsXG4gIHJlcXVpcmVkTGFiZWw6IHN0cmluZ1xuKSB7XG4gIGNvbnN0IGlzVmFsaWQgPSBjdXJyZW50UXVlc3Rpb25zLnJlZHVjZSgoYW5zd2VyZWRBbGwsIHF1ZXN0aW9uKSA9PiB7XG4gICAgY29uc3QgYW5zID0gPFQgZXh0ZW5kcyBGb3JtRmllbGRWaWV3W1widHlwZVwiXT4oXG4gICAgICBxdWVzdGlvbjogRm9ybUZpZWxkICYge1xuICAgICAgICB0eXBlOiBUO1xuICAgICAgfVxuICAgICkgPT5cbiAgICAgIGFuc3dlcnNbcXVlc3Rpb24uaWRdIGFzIHVua25vd24gYXMgQW5zd2VyQnlGaWVsZDx7XG4gICAgICAgIHR5cGU6IFQ7XG4gICAgICB9PjtcblxuICAgIGNvbnN0IHJlc3VsdCA9XG4gICAgICBhbnN3ZXJlZEFsbCAmJlxuICAgICAgKCgpID0+IHtcbiAgICAgICAgc3dpdGNoIChxdWVzdGlvbi50eXBlKSB7XG4gICAgICAgICAgY2FzZSBcImFjY2VwdFwiOlxuICAgICAgICAgICAgY29uc3QgY2hlY2tzID0gYW5zKHF1ZXN0aW9uKSB8fCBbXTtcbiAgICAgICAgICAgIHJldHVybiBxdWVzdGlvbi5hY2NlcHQucmVkdWNlKFxuICAgICAgICAgICAgICAociwgeyBvcHRpb25hbCB9LCBpZHgpID0+IHIgJiYgKG9wdGlvbmFsID8gdHJ1ZSA6IGNoZWNrc1tpZHhdKSxcbiAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBjYXNlIFwiY2hlY2tcIjpcbiAgICAgICAgICBjYXNlIFwicmF3Y2hlY2tcIjpcbiAgICAgICAgICAgIGlmIChxdWVzdGlvbi5vcHRpb25hbCkgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICBpZiAocXVlc3Rpb24udmFsaWRhdG9yKVxuICAgICAgICAgICAgICByZXR1cm4gcXVlc3Rpb24udmFsaWRhdG9yKGFucyhxdWVzdGlvbikgYXMgYW55KSBhcyBib29sZWFuO1xuICAgICAgICAgICAgY29uc3QgY2hlY2ttYXJrcyA9IGFucyhxdWVzdGlvbikgfHwgW107XG4gICAgICAgICAgICByZXR1cm4gY2hlY2ttYXJrcy5pbmNsdWRlcyh0cnVlKTtcbiAgICAgICAgICBjYXNlIFwibnVtYmVyXCI6XG4gICAgICAgICAgY2FzZSBcInRleHRcIjpcbiAgICAgICAgICBjYXNlIFwic2VsZWN0XCI6XG4gICAgICAgICAgY2FzZSBcInJhZGlvXCI6XG4gICAgICAgICAgY2FzZSBcImZpbGVcIjpcbiAgICAgICAgICAgIGlmICghYW5zd2Vyc1txdWVzdGlvbi5pZF0pIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSBpc1ZhbGlkYXRlZChcbiAgICAgICAgICAgICAgYW5zKHF1ZXN0aW9uKSxcbiAgICAgICAgICAgICAgISFxdWVzdGlvbi5vcHRpb25hbCxcbiAgICAgICAgICAgICAgcXVlc3Rpb24udmFsaWRhdG9yLFxuICAgICAgICAgICAgICByZXF1aXJlZExhYmVsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuIHZhbGlkYXRpb25SZXN1bHQuaXNWYWxpZCAmJiBhbnN3ZXJlZEFsbDtcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIHF1ZXN0aW9uLnZhbGlkYXRvclxuICAgICAgICAgICAgICA/ICEhcXVlc3Rpb24udmFsaWRhdG9yKGFucyhxdWVzdGlvbikpXG4gICAgICAgICAgICAgIDogISFhbnMocXVlc3Rpb24pO1xuICAgICAgICB9XG4gICAgICB9KSgpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH0sIHRydWUpO1xuXG4gIHJldHVybiB7IGlzVmFsaWQ6ICEhaXNWYWxpZCB9O1xufVxuXG5leHBvcnQgY29uc3QgaXNWYWxpZGF0ZWQgPSAoXG4gIF9hbnN3ZXI6IHN0cmluZyB8IFt2YWw6IHN0cmluZywgaXNWYWxpZDogYm9vbGVhbiwgZXJyb3I/OiBzdHJpbmddLFxuICBpc09wdGlvbmFsOiBib29sZWFuLFxuICB2YWxpZGF0b3I6ICgodmFsOiBhbnkpID0+IHN0cmluZyB8IGJvb2xlYW4pIHwgdW5kZWZpbmVkLFxuICByZXF1aXJlZEZpZWxkTGFiZWw6IHN0cmluZ1xuKSA9PiB7XG4gIGNvbnN0IGFuc3dlciA9IEFycmF5LmlzQXJyYXkoX2Fuc3dlcikgPyBfYW5zd2VyWzBdIDogX2Fuc3dlcjtcbiAgaWYgKCFhbnN3ZXIgJiYgIWlzT3B0aW9uYWwpXG4gICAgcmV0dXJuIHtcbiAgICAgIGlzVmFsaWQ6IGZhbHNlLFxuICAgICAgZXJyb3I6IHJlcXVpcmVkRmllbGRMYWJlbCxcbiAgICB9O1xuICBpZiAoIXZhbGlkYXRvcilcbiAgICBpZiAoQXJyYXkuaXNBcnJheShfYW5zd2VyKSkge1xuICAgICAgY29uc3QgW18sIGlzVmFsaWQsIGVycm9yXSA9IF9hbnN3ZXI7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpc1ZhbGlkLFxuICAgICAgICBlcnJvcixcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGlzVmFsaWQ6IHRydWUsXG4gICAgICAgIGVycm9yOiBcIlwiLFxuICAgICAgfTtcbiAgICB9XG4gIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSB2YWxpZGF0b3IoYW5zd2VyKTtcbiAgaWYgKHR5cGVvZiB2YWxpZGF0aW9uUmVzdWx0ID09PSBcInN0cmluZ1wiKVxuICAgIHJldHVybiB7XG4gICAgICBpc1ZhbGlkOiBmYWxzZSxcbiAgICAgIGVycm9yOiB2YWxpZGF0aW9uUmVzdWx0LFxuICAgIH07XG4gIHJldHVybiB7XG4gICAgaXNWYWxpZDogdmFsaWRhdGlvblJlc3VsdCxcbiAgICBlcnJvcjogXCJcIixcbiAgfTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxjQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxVQUFBLEdBQUFGLE9BQUE7QUFNcUMsU0FBQUcsUUFBQUMsTUFBQSxFQUFBQyxjQUFBLFFBQUFDLElBQUEsR0FBQUMsTUFBQSxDQUFBRCxJQUFBLENBQUFGLE1BQUEsT0FBQUcsTUFBQSxDQUFBQyxxQkFBQSxRQUFBQyxPQUFBLEdBQUFGLE1BQUEsQ0FBQUMscUJBQUEsQ0FBQUosTUFBQSxHQUFBQyxjQUFBLEtBQUFJLE9BQUEsR0FBQUEsT0FBQSxDQUFBQyxNQUFBLFdBQUFDLEdBQUEsV0FBQUosTUFBQSxDQUFBSyx3QkFBQSxDQUFBUixNQUFBLEVBQUFPLEdBQUEsRUFBQUUsVUFBQSxPQUFBUCxJQUFBLENBQUFRLElBQUEsQ0FBQUMsS0FBQSxDQUFBVCxJQUFBLEVBQUFHLE9BQUEsWUFBQUgsSUFBQTtBQUFBLFNBQUFVLGNBQUFDLE1BQUEsYUFBQUMsQ0FBQSxNQUFBQSxDQUFBLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxFQUFBRixDQUFBLFVBQUFHLE1BQUEsV0FBQUYsU0FBQSxDQUFBRCxDQUFBLElBQUFDLFNBQUEsQ0FBQUQsQ0FBQSxRQUFBQSxDQUFBLE9BQUFmLE9BQUEsQ0FBQUksTUFBQSxDQUFBYyxNQUFBLE9BQUFDLE9BQUEsV0FBQUMsR0FBQSxJQUFBQyxlQUFBLENBQUFQLE1BQUEsRUFBQU0sR0FBQSxFQUFBRixNQUFBLENBQUFF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
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _Form = require("./Form.types");
|
|
10
|
+
var _Form2 = require("./Form.hook");
|
|
11
|
+
var _FormField = _interopRequireDefault(require("./FormField"));
|
|
12
|
+
const _excluded = ["questions", "initialAnswers"];
|
|
13
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
14
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
15
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
16
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
17
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
18
|
+
function Form(_ref, ref) {
|
|
19
|
+
let questions = _ref.questions,
|
|
20
|
+
_ref$initialAnswers = _ref.initialAnswers,
|
|
21
|
+
initialAnswers = _ref$initialAnswers === void 0 ? {} : _ref$initialAnswers,
|
|
22
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
|
23
|
+
const _props$mode = props.mode,
|
|
24
|
+
mode = _props$mode === void 0 ? _Form.FormMode.WRITE : _props$mode;
|
|
25
|
+
const _ref2 = props,
|
|
26
|
+
_ref2$showAllErrors = _ref2.showAllErrors,
|
|
27
|
+
showAllErrors = _ref2$showAllErrors === void 0 ? false : _ref2$showAllErrors;
|
|
28
|
+
const _useForm = (0, _Form2.useForm)(questions, initialAnswers, mode),
|
|
29
|
+
answers = _useForm.answers,
|
|
30
|
+
onAnswerAction = _useForm.onAnswerAction,
|
|
31
|
+
isQuestionsAnswered = _useForm.isQuestionsAnswered,
|
|
32
|
+
isFilesUploaded = _useForm.isFilesUploaded;
|
|
33
|
+
const errors = (0, _Form2.useFieldErrors)(questions, answers, showAllErrors);
|
|
34
|
+
(0, _react.useEffect)(function () {
|
|
35
|
+
if (props.mode !== _Form.FormMode.READ_ONLY) props.onFormUpdate(answers, isQuestionsAnswered && isFilesUploaded);
|
|
36
|
+
}, [answers, isQuestionsAnswered, isFilesUploaded]);
|
|
37
|
+
(0, _react.useImperativeHandle)(ref, function () {
|
|
38
|
+
return {
|
|
39
|
+
setAnswer: function setAnswer(id, val) {
|
|
40
|
+
onAnswerAction(questions.find(function (q) {
|
|
41
|
+
return q.id === id;
|
|
42
|
+
}).type, id, val);
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
}, []);
|
|
46
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, questions.map(function (q) {
|
|
47
|
+
return /*#__PURE__*/_react.default.createElement(_FormField.default, {
|
|
48
|
+
key: q.id,
|
|
49
|
+
config: q,
|
|
50
|
+
onAnswer: onAnswerAction,
|
|
51
|
+
value: answers[q.id],
|
|
52
|
+
error: errors[q.id],
|
|
53
|
+
mode: mode
|
|
54
|
+
});
|
|
55
|
+
}));
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Brainstorm:
|
|
60
|
+
* The answers must be externalized in some way because those answers will be manipulated
|
|
61
|
+
* There must be a way to disable non validation related errors
|
|
62
|
+
*/
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* A new and improved version of the one-ui design form
|
|
66
|
+
**/
|
|
67
|
+
var _default = /*#__PURE__*/(0, _react.forwardRef)(Form);
|
|
68
|
+
exports.default = _default;
|
|
69
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfRm9ybSIsIl9Gb3JtMiIsIl9Gb3JtRmllbGQiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2V4Y2x1ZGVkIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJfdHlwZW9mIiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMiLCJzb3VyY2UiLCJleGNsdWRlZCIsInRhcmdldCIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlIiwiaSIsImdldE93blByb3BlcnR5U3ltYm9scyIsInNvdXJjZVN5bWJvbEtleXMiLCJsZW5ndGgiLCJpbmRleE9mIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJzb3VyY2VLZXlzIiwia2V5cyIsIkZvcm0iLCJfcmVmIiwicmVmIiwicXVlc3Rpb25zIiwiX3JlZiRpbml0aWFsQW5zd2VycyIsImluaXRpYWxBbnN3ZXJzIiwicHJvcHMiLCJfcHJvcHMkbW9kZSIsIm1vZGUiLCJGb3JtTW9kZSIsIldSSVRFIiwiX3JlZjIiLCJfcmVmMiRzaG93QWxsRXJyb3JzIiwic2hvd0FsbEVycm9ycyIsIl91c2VGb3JtIiwidXNlRm9ybSIsImFuc3dlcnMiLCJvbkFuc3dlckFjdGlvbiIsImlzUXVlc3Rpb25zQW5zd2VyZWQiLCJpc0ZpbGVzVXBsb2FkZWQiLCJlcnJvcnMiLCJ1c2VGaWVsZEVycm9ycyIsInVzZUVmZmVjdCIsIlJFQURfT05MWSIsIm9uRm9ybVVwZGF0ZSIsInVzZUltcGVyYXRpdmVIYW5kbGUiLCJzZXRBbnN3ZXIiLCJpZCIsInZhbCIsImZpbmQiLCJxIiwidHlwZSIsImNyZWF0ZUVsZW1lbnQiLCJGcmFnbWVudCIsIm1hcCIsImNvbmZpZyIsIm9uQW5zd2VyIiwidmFsdWUiLCJlcnJvciIsIl9kZWZhdWx0IiwiZm9yd2FyZFJlZiIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9Gb3JtL3YyL0Zvcm0udHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge1xuICBGb3J3YXJkZWRSZWYsXG4gIGZvcndhcmRSZWYsXG4gIHVzZUVmZmVjdCxcbiAgdXNlSW1wZXJhdGl2ZUhhbmRsZSxcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBCYXNlUXVlc3Rpb24sIEZvcm1Nb2RlLCBGb3JtVmlld1Byb3BzIH0gZnJvbSBcIi4vRm9ybS50eXBlc1wiO1xuaW1wb3J0IHsgdXNlRmllbGRFcnJvcnMsIHVzZUZvcm0gfSBmcm9tIFwiLi9Gb3JtLmhvb2tcIjtcbmltcG9ydCBGb3JtRmllbGQgZnJvbSBcIi4vRm9ybUZpZWxkXCI7XG5pbXBvcnQgeyBBbnN3ZXJCeUZpZWxkLCBGb3JtRmllbGRWaWV3IH0gZnJvbSBcIi4vRm9ybUZpZWxkL0Zvcm1GaWVsZC50eXBlc1wiO1xuXG5leHBvcnQgdHlwZSBGb3JtUmVmPFEgZXh0ZW5kcyBGb3JtRmllbGRWaWV3W10+ID0ge1xuICBzZXRBbnN3ZXI8SSBleHRlbmRzIFFbbnVtYmVyXVtcImlkXCJdPihcbiAgICBxdWVzdGlvbklkOiBJLFxuICAgIGFuczogQW5zd2VyQnlGaWVsZDxRW251bWJlcl0gJiB7IGlkOiBJIH0+XG4gICk6IHZvaWQ7XG59O1xuXG5mdW5jdGlvbiBGb3JtPFEgZXh0ZW5kcyBGb3JtRmllbGRWaWV3W10+KFxuICB7IHF1ZXN0aW9ucywgaW5pdGlhbEFuc3dlcnMgPSB7fSwgLi4ucHJvcHMgfTogRm9ybVZpZXdQcm9wczxRPixcbiAgcmVmOiBGb3J3YXJkZWRSZWY8Rm9ybVJlZjxRPj5cbikge1xuICBjb25zdCB7IG1vZGUgPSBGb3JtTW9kZS5XUklURSB9ID0gcHJvcHM7XG4gIGNvbnN0IHsgc2hvd0FsbEVycm9ycyA9IGZhbHNlIH0gPSBwcm9wcyBhcyBGb3JtVmlld1Byb3BzPFE+ICYge1xuICAgIG1vZGU6IEZvcm1Nb2RlLldSSVRFO1xuICB9O1xuICBjb25zdCB7IGFuc3dlcnMsIG9uQW5zd2VyQWN0aW9uLCBpc1F1ZXN0aW9uc0Fuc3dlcmVkLCBpc0ZpbGVzVXBsb2FkZWQgfSA9XG4gICAgdXNlRm9ybShxdWVzdGlvbnMsIGluaXRpYWxBbnN3ZXJzLCBtb2RlKTtcbiAgY29uc3QgZXJyb3JzID0gdXNlRmllbGRFcnJvcnMocXVlc3Rpb25zLCBhbnN3ZXJzLCBzaG93QWxsRXJyb3JzKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChwcm9wcy5tb2RlICE9PSBGb3JtTW9kZS5SRUFEX09OTFkpXG4gICAgICBwcm9wcy5vbkZvcm1VcGRhdGUoXG4gICAgICAgIGFuc3dlcnMgYXMgYW55LFxuICAgICAgICBpc1F1ZXN0aW9uc0Fuc3dlcmVkICYmIGlzRmlsZXNVcGxvYWRlZFxuICAgICAgKTtcbiAgfSwgW2Fuc3dlcnMsIGlzUXVlc3Rpb25zQW5zd2VyZWQsIGlzRmlsZXNVcGxvYWRlZF0pO1xuXG4gIHVzZUltcGVyYXRpdmVIYW5kbGUoXG4gICAgcmVmLFxuICAgICgpID0+ICh7XG4gICAgICBzZXRBbnN3ZXIoaWQsIHZhbCkge1xuICAgICAgICBvbkFuc3dlckFjdGlvbihcbiAgICAgICAgICBxdWVzdGlvbnMuZmluZCgocSkgPT4gcS5pZCA9PT0gaWQpIS50eXBlLFxuICAgICAgICAgIGlkLFxuICAgICAgICAgIHZhbCBhcyBhbnlcbiAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgfSksXG4gICAgW11cbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICB7cXVlc3Rpb25zLm1hcCgocSkgPT4gKFxuICAgICAgICA8Rm9ybUZpZWxkXG4gICAgICAgICAga2V5PXtxLmlkfVxuICAgICAgICAgIGNvbmZpZz17cX1cbiAgICAgICAgICBvbkFuc3dlcj17b25BbnN3ZXJBY3Rpb259XG4gICAgICAgICAgdmFsdWU9e2Fuc3dlcnNbcS5pZF0gYXMgYW55fVxuICAgICAgICAgIGVycm9yPXsoZXJyb3JzIGFzIGFueSlbcS5pZF19XG4gICAgICAgICAgbW9kZT17bW9kZX1cbiAgICAgICAgLz5cbiAgICAgICkpfVxuICAgIDwvPlxuICApO1xufVxuXG4vKipcbiAqIEJyYWluc3Rvcm06XG4gKiBUaGUgYW5zd2VycyBtdXN0IGJlIGV4dGVybmFsaXplZCBpbiBzb21lIHdheSBiZWNhdXNlIHRob3NlIGFuc3dlcnMgd2lsbCBiZSBtYW5pcHVsYXRlZFxuICogVGhlcmUgbXVzdCBiZSBhIHdheSB0byBkaXNhYmxlIG5vbiB2YWxpZGF0aW9uIHJlbGF0ZWQgZXJyb3JzXG4gKi9cblxuLyoqXG4gKiBBIG5ldyBhbmQgaW1wcm92ZWQgdmVyc2lvbiBvZiB0aGUgb25lLXVpIGRlc2lnbiBmb3JtXG4gKiovXG5leHBvcnQgZGVmYXVsdCBmb3J3YXJkUmVmKEZvcm0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBTUEsSUFBQUMsS0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsTUFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsVUFBQSxHQUFBQyxzQkFBQSxDQUFBSixPQUFBO0FBQW9DLE1BQUFLLFNBQUE7QUFBQSxTQUFBRCx1QkFBQUUsR0FBQSxXQUFBQSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxHQUFBRCxHQUFBLEtBQUFFLE9BQUEsRUFBQUYsR0FBQTtBQUFBLFNBQUFHLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYs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
|
|
File without changes
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { AnswerByField, FormField } from "./FormField/FormField.types";
|
|
2
|
+
export declare type BaseQuestion = {
|
|
3
|
+
id: string;
|
|
4
|
+
type: FormField["type"];
|
|
5
|
+
};
|
|
6
|
+
export declare type FormState<Q extends BaseQuestion[] = []> = [
|
|
7
|
+
answers: AnswersMap<Q>,
|
|
8
|
+
isValid: boolean
|
|
9
|
+
];
|
|
10
|
+
export declare enum DataStatus {
|
|
11
|
+
/** Form is empty */
|
|
12
|
+
PENDING = 0,
|
|
13
|
+
/** Form is partially filled */
|
|
14
|
+
INCOMPLETE = 1,
|
|
15
|
+
/** Form is completed */
|
|
16
|
+
COMPLETE = 2,
|
|
17
|
+
/** Form has error */
|
|
18
|
+
ERROR = 3
|
|
19
|
+
}
|
|
20
|
+
export declare enum StepStatus {
|
|
21
|
+
/** When the data is empty and needs to be filled */
|
|
22
|
+
INCOMPLETE = 0,
|
|
23
|
+
/** When data has already been filled */
|
|
24
|
+
COMPLETED = 1,
|
|
25
|
+
/** When the step is the current selected */
|
|
26
|
+
CURRENT = 2,
|
|
27
|
+
/** When the step has error */
|
|
28
|
+
ERROR = 3
|
|
29
|
+
}
|
|
30
|
+
export declare enum FormStep {
|
|
31
|
+
PERSONAL_DATA = 0,
|
|
32
|
+
ADDITIONAL_DATA = 1,
|
|
33
|
+
DOCUMENTS = 2,
|
|
34
|
+
INVEST_PROFILE = 3,
|
|
35
|
+
CONTRACTS = 4
|
|
36
|
+
}
|
|
37
|
+
export declare enum FormMode {
|
|
38
|
+
READ_ONLY = 0,
|
|
39
|
+
WRITE = 1
|
|
40
|
+
}
|
|
41
|
+
export declare type FormFieldView = FormField & {
|
|
42
|
+
title: string;
|
|
43
|
+
};
|
|
44
|
+
export declare type FormProps = {
|
|
45
|
+
onFormSubmitted: () => void;
|
|
46
|
+
savedAnswers: Partial<{
|
|
47
|
+
[questionId: string]: AnswerByField<FormField>;
|
|
48
|
+
}>;
|
|
49
|
+
startAt: FormStep;
|
|
50
|
+
onGoBack: () => void;
|
|
51
|
+
};
|
|
52
|
+
export declare type StepFormProps = Pick<FormProps, "savedAnswers"> & {
|
|
53
|
+
step: FormStep;
|
|
54
|
+
} & ModeProps;
|
|
55
|
+
export declare type ModeProps = {
|
|
56
|
+
mode: FormMode.READ_ONLY;
|
|
57
|
+
} | {
|
|
58
|
+
mode: FormMode.WRITE;
|
|
59
|
+
onFinish: () => void;
|
|
60
|
+
onCancel: () => void;
|
|
61
|
+
};
|
|
62
|
+
export declare type FormViewProps<Q extends BaseQuestion[]> = {
|
|
63
|
+
questions: Q;
|
|
64
|
+
} & ({
|
|
65
|
+
mode?: FormMode.WRITE;
|
|
66
|
+
initialAnswers?: AnswersMap;
|
|
67
|
+
onFormUpdate: (...args: FormState<Q>) => void;
|
|
68
|
+
/** When provided (true) show all current errors that are blocking the completion of the form */
|
|
69
|
+
showAllErrors?: boolean;
|
|
70
|
+
} | {
|
|
71
|
+
initialAnswers: AnswersMap;
|
|
72
|
+
mode: FormMode.READ_ONLY;
|
|
73
|
+
});
|
|
74
|
+
export declare type AnswersMap<Q extends Readonly<BaseQuestion[]> = [
|
|
75
|
+
{
|
|
76
|
+
type: BaseQuestion["type"];
|
|
77
|
+
id: string;
|
|
78
|
+
}
|
|
79
|
+
]> = Partial<{
|
|
80
|
+
[questionId in Q[number]["id"]]: AnswerByField<Q[number] & {
|
|
81
|
+
id: questionId;
|
|
82
|
+
}>;
|
|
83
|
+
}>;
|
|
84
|
+
export declare enum INVESTOR_PROFILE {
|
|
85
|
+
/**
|
|
86
|
+
* User can only spend up to 20k
|
|
87
|
+
*/
|
|
88
|
+
RESTRICTED = 0,
|
|
89
|
+
/**
|
|
90
|
+
* User can only spend up to 10% of it's income
|
|
91
|
+
*/
|
|
92
|
+
LIMITED = 1,
|
|
93
|
+
/**
|
|
94
|
+
* User doesn't have restrictions
|
|
95
|
+
*/
|
|
96
|
+
UNLIMITED = 2
|
|
97
|
+
}
|