@onepercentio/one-ui 1.3.2 → 1.3.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/.github/workflows/release-browser-bundle.yml +76 -0
- package/README.md +23 -0
- package/dist/assets/img/svg/checkbox.svg +3 -0
- package/dist/assets/styles/index.scss +2 -0
- package/dist/assets/styles/mixins.scss +15 -0
- package/dist/assets/styles/variables.scss +49 -0
- package/dist/components/AdaptiveButton/AdaptiveButton.js +32 -0
- package/dist/components/AdaptiveButton/AdaptiveButton.module.scss +7 -0
- package/dist/components/AdaptiveButton/index.js +27 -0
- package/dist/components/AdaptiveContainer/AdaptiveContainer.js +152 -0
- package/dist/components/AdaptiveContainer/AdaptiveContainer.module.scss +53 -0
- package/dist/components/AdaptiveContainer/index.js +27 -0
- package/dist/components/AdaptiveDialog/AdaptiveDialog.js +81 -0
- package/dist/components/AdaptiveDialog/AdaptiveDialog.module.scss +145 -0
- package/dist/components/AdaptiveDialog/index.js +27 -0
- package/dist/components/AdaptiveSidebar/AdaptiveSidebar.js +77 -0
- package/dist/components/AdaptiveSidebar/AdaptiveSidebar.module.scss +49 -0
- package/dist/components/AdaptiveSidebar/AdaptiveSidebar.sample.js +13 -0
- package/dist/components/AdaptiveSidebar/index.js +27 -0
- package/dist/components/AnchoredTooltip/AnchoredTooltip.js +168 -0
- package/dist/components/AnchoredTooltip/AnchoredTooltip.module.scss +64 -0
- package/dist/components/AnchoredTooltip/index.js +27 -0
- package/dist/components/AnimatedEntrance/AnimatedEntrance.js +166 -0
- package/dist/components/AnimatedEntrance/AnimatedEntrance.module.scss +108 -0
- package/dist/components/AnimatedEntrance/index.js +27 -0
- package/dist/components/AsyncTriggerContainer/AsyncTriggerContainer.js +95 -0
- package/dist/components/AsyncTriggerContainer/AsyncTriggerContainer.module.scss +22 -0
- package/dist/components/AsyncTriggerContainer/index.js +27 -0
- package/dist/components/AsyncWrapper/AsyncWrapper.js +42 -0
- package/dist/components/AsyncWrapper/index.js +27 -0
- package/dist/components/Avatar/Avatar.js +40 -0
- package/dist/components/Avatar/Avatar.module.scss +22 -0
- package/dist/components/Avatar/index.js +27 -0
- package/dist/components/BucketFill/BucketFill.js +56 -0
- package/dist/components/BucketFill/BucketFill.module.scss +36 -0
- package/dist/components/BucketFill/index.js +27 -0
- package/dist/components/Button/Button.js +39 -0
- package/dist/components/Button/Button.module.scss +45 -0
- package/dist/components/Button/index.js +27 -0
- package/dist/components/Card/Card.js +22 -0
- package/dist/components/Card/Card.module.scss +12 -0
- package/dist/components/Card/index.js +27 -0
- package/dist/components/Chart/Chart.js +27 -0
- package/dist/components/Chart/Chart.logic.js +14 -0
- package/dist/components/Chart/Chart.module.scss +58 -0
- package/dist/components/Chart/Chart.types.js +6 -0
- package/dist/components/Chart/Chart.view.js +184 -0
- package/dist/components/Chart/index.js +27 -0
- package/dist/components/CheckBox/CheckBox.js +52 -0
- package/dist/components/CheckBox/CheckBox.module.scss +36 -0
- package/dist/components/CheckBox/index.js +27 -0
- package/dist/components/CodeInput/CodeInput.js +84 -0
- package/dist/components/CodeInput/CodeInput.module.scss +5 -0
- package/dist/components/CodeInput/index.js +27 -0
- package/dist/components/Collapsable/Collapsable.js +186 -0
- package/dist/components/Collapsable/Collapsable.module.scss +42 -0
- package/dist/components/Collapsable/index.js +27 -0
- package/dist/components/Countdown/Countdown.js +83 -0
- package/dist/components/Countdown/index.js +27 -0
- package/dist/components/CurrencyInput/CurrencyInput.hook.js +28 -0
- package/dist/components/CurrencyInput/CurrencyInput.js +54 -0
- package/dist/components/CurrencyInput/index.js +27 -0
- package/dist/components/Divider/Divider.js +21 -0
- package/dist/components/Divider/Divider.module.scss +7 -0
- package/dist/components/Divider/index.js +27 -0
- package/dist/components/EmailInput/EmailInput.js +48 -0
- package/dist/components/EmailInput/EmailInput.module.scss +0 -0
- package/dist/components/EmailInput/index.js +27 -0
- package/dist/components/FadeIn/FadeIn.js +64 -0
- package/dist/components/FadeIn/FadeIn.module.scss +9 -0
- package/dist/components/FadeIn/index.js +27 -0
- package/dist/components/FileInput/FileInput.js +53 -0
- package/dist/components/FileInput/FileInput.module.scss +6 -0
- package/dist/components/FileInput/View/BigFactory/BigFactory.js +54 -0
- package/dist/components/FileInput/View/BigFactory/BigFactory.module.scss +20 -0
- package/dist/components/FileInput/View/BigFactory/index.js +27 -0
- package/dist/components/FileInput/View/Compact/Compact.js +120 -0
- package/dist/components/FileInput/View/Compact/Compact.module.scss +68 -0
- package/dist/components/FileInput/View/Compact/index.js +27 -0
- package/dist/components/FileInput/View/View.types.js +6 -0
- package/dist/components/FileInput/index.js +27 -0
- package/dist/components/FlowController/FlowController.js +66 -0
- package/dist/components/FlowController/FlowController.module.scss +47 -0
- package/dist/components/FlowController/index.js +27 -0
- package/dist/components/Form/Form.hook.js +234 -0
- package/dist/components/Form/Form.js +115 -0
- package/dist/components/Form/Form.module.scss +0 -0
- package/dist/components/Form/Form.types.js +40 -0
- package/dist/components/Form/FormField/Extensions/DateField/DateField.js +75 -0
- package/dist/components/Form/FormField/Extensions/DateField/DateField.module.scss +0 -0
- package/dist/components/Form/FormField/Extensions/DateField/index.js +27 -0
- package/dist/components/Form/FormField/Extensions/PhoneField/PhoneField.js +91 -0
- package/dist/components/Form/FormField/Extensions/PhoneField/PhoneField.module.scss +0 -0
- package/dist/components/Form/FormField/Extensions/PhoneField/index.js +27 -0
- package/dist/components/Form/FormField/FormField.js +296 -0
- package/dist/components/Form/FormField/FormField.types.js +12 -0
- package/dist/components/Form/FormField/index.js +27 -0
- package/dist/components/Form/index.js +27 -0
- package/dist/components/Freeze/Freeze.js +18 -0
- package/dist/components/Freeze/index.js +27 -0
- package/dist/components/HSForms/HSForms.js +55 -0
- package/dist/components/HSForms/index.js +27 -0
- package/dist/components/HeaderCloseBtn/HeaderCloseBtn.js +25 -0
- package/dist/components/HeaderCloseBtn/HeaderCloseBtn.module.scss +44 -0
- package/dist/components/HeaderCloseBtn/index.js +27 -0
- package/dist/components/InfinityScroll/InfinityScroll.js +128 -0
- package/dist/components/InfinityScroll/InfinityScroll.module.scss +30 -0
- package/dist/components/InfinityScroll/index.js +27 -0
- package/dist/components/Input/Input.js +110 -0
- package/dist/components/Input/Input.module.scss +31 -0
- package/dist/components/Input/index.js +27 -0
- package/dist/components/InstantCounter/InstantCounter.js +55 -0
- package/dist/components/InstantCounter/index.js +27 -0
- package/dist/components/LavaLamp/LavaLamp.data.js +89 -0
- package/dist/components/LavaLamp/LavaLamp.js +125 -0
- package/dist/components/LavaLamp/LavaLamp.module.scss +26 -0
- package/dist/components/LavaLamp/index.js +27 -0
- package/dist/components/LavaLamp/v2/LavaLamp.js +154 -0
- package/dist/components/LavaLamp/v2/LavaLamp.module.scss +23 -0
- package/dist/components/LinkToId/LinkToId.js +45 -0
- package/dist/components/LinkToId/LinkToId.module.scss +4 -0
- package/dist/components/LinkToId/index.js +27 -0
- package/dist/components/Loader/Loader.js +27 -0
- package/dist/components/Loader/Loader.module.scss +40 -0
- package/dist/components/Loader/index.js +27 -0
- package/dist/components/LoaderDotsIndicator/LoaderDotsIndicator.js +36 -0
- package/dist/components/LoaderDotsIndicator/index.js +27 -0
- package/dist/components/LoopableVideo/LoopableVideo.js +41 -0
- package/dist/components/LoopableVideo/index.js +27 -0
- package/dist/components/MainGrid/MainGrid.js +55 -0
- package/dist/components/MainGrid/MainGrid.module.scss +28 -0
- package/dist/components/MainGrid/index.js +27 -0
- package/dist/components/MutableHamburgerButton/MutableHamburgerButton.js +32 -0
- package/dist/components/MutableHamburgerButton/MutableHamburgerButton.module.scss +220 -0
- package/dist/components/MutableHamburgerButton/index.js +27 -0
- package/dist/components/Notification/Notification.js +24 -0
- package/dist/components/Notification/Notification.module.scss +25 -0
- package/dist/components/Notification/index.js +27 -0
- package/dist/components/NumberInput/NumberInput.js +50 -0
- package/dist/components/NumberInput/index.js +27 -0
- package/dist/components/OrderableList/OrderableList.js +439 -0
- package/dist/components/OrderableList/OrderableList.module.scss +98 -0
- package/dist/components/OrderableList/index.js +27 -0
- package/dist/components/PaginationIndicator/PaginationIndicator.js +261 -0
- package/dist/components/PaginationIndicator/index.js +27 -0
- package/dist/components/Parallax/Parallax.js +169 -0
- package/dist/components/Parallax/Parallax.module.scss +28 -0
- package/dist/components/Parallax/index.js +27 -0
- package/dist/components/Parallax/math/helpers.js +134 -0
- package/dist/components/PasswordInput/PasswordInput.js +97 -0
- package/dist/components/PasswordInput/PasswordInput.module.scss +17 -0
- package/dist/components/PasswordInput/index.js +27 -0
- package/dist/components/PingPongText/PingPongText.js +76 -0
- package/dist/components/PingPongText/PingPongText.module.scss +4 -0
- package/dist/components/PingPongText/index.js +27 -0
- package/dist/components/PixelatedScan/PixelatedScan.js +139 -0
- package/dist/components/PixelatedScan/PixelatedScan.module.scss +86 -0
- package/dist/components/PixelatedScan/index.js +27 -0
- package/dist/components/Portal/Portal.js +62 -0
- package/dist/components/Portal/Portal.module.scss +3 -0
- package/dist/components/Portal/index.js +27 -0
- package/dist/components/ProgressBar/ProgressBar.js +113 -0
- package/dist/components/ProgressBar/ProgressBar.module.scss +44 -0
- package/dist/components/ProgressBar/index.js +27 -0
- package/dist/components/ProgressTexts/ProgressTexts.js +52 -0
- package/dist/components/ProgressTexts/ProgressTexts.module.scss +37 -0
- package/dist/components/ProgressTexts/index.js +27 -0
- package/dist/components/Radio/Radio.js +53 -0
- package/dist/components/Radio/Radio.module.scss +20 -0
- package/dist/components/Radio/index.js +27 -0
- package/dist/components/Radio/variants/Checkmark/Checkmark.js +20 -0
- package/dist/components/Radio/variants/Checkmark/Checkmark.module.scss +24 -0
- package/dist/components/Radio/variants/Checkmark/index.js +27 -0
- package/dist/components/Radio/variants/Generic/Generic.js +22 -0
- package/dist/components/Radio/variants/Generic/Generic.module.scss +38 -0
- package/dist/components/Radio/variants/Generic/index.js +27 -0
- package/dist/components/SectionContainer/SectionContainer.js +49 -0
- package/dist/components/SectionContainer/SectionContainer.module.scss +30 -0
- package/dist/components/SectionContainer/index.js +27 -0
- package/dist/components/Select/Select.js +138 -0
- package/dist/components/Select/Select.module.scss +60 -0
- package/dist/components/Select/index.js +27 -0
- package/dist/components/Skeleton/Skeleton.js +30 -0
- package/dist/components/Skeleton/Skeleton.module.scss +21 -0
- package/dist/components/Skeleton/index.js +27 -0
- package/dist/components/Slider/Slider.js +70 -0
- package/dist/components/Slider/Slider.module.scss +7 -0
- package/dist/components/Slider/index.js +27 -0
- package/dist/components/Spacing/Spacing.js +34 -0
- package/dist/components/Spacing/Spacing.module.scss +13 -0
- package/dist/components/Spacing/index.js +27 -0
- package/dist/components/StaticScroller/StaticScroller.js +72 -0
- package/dist/components/StaticScroller/StaticScroller.module.scss +14 -0
- package/dist/components/StaticScroller/index.js +27 -0
- package/dist/components/Switch/Switch.js +47 -0
- package/dist/components/Switch/Switch.module.scss +46 -0
- package/dist/components/Switch/index.js +27 -0
- package/dist/components/Table/Table.js +115 -0
- package/dist/components/Table/Table.module.scss +74 -0
- package/dist/components/Table/index.js +27 -0
- package/dist/components/Tabs/Tabs.js +67 -0
- package/dist/components/Tabs/Tabs.module.scss +40 -0
- package/dist/components/Tabs/index.js +27 -0
- package/dist/components/Text/Text.js +44 -0
- package/dist/components/Text/Text.module.scss +13 -0
- package/dist/components/Text/index.js +27 -0
- package/dist/components/Transition/MasksFactory/DiagonalReveal.js +49 -0
- package/dist/components/Transition/MasksFactory/DiagonalSquareToBalls.js +78 -0
- package/dist/components/Transition/MasksFactory/PhysicsSquares.js +96 -0
- package/dist/components/Transition/MasksFactory/SquareToBalls.js +67 -0
- package/dist/components/Transition/MasksFactory/utils.js +30 -0
- package/dist/components/Transition/Transition.js +323 -0
- package/dist/components/Transition/Transition.module.scss +211 -0
- package/dist/components/Transition/index.js +27 -0
- package/dist/components/UncontrolledTransition/UncontrolledTransition.ai.md +9 -0
- package/dist/components/UncontrolledTransition/UncontrolledTransition.js +110 -0
- package/dist/components/UncontrolledTransition/UncontrolledTransition.sample.js +32 -0
- package/dist/components/UncontrolledTransition/index.js +27 -0
- package/dist/components/WalletConnectionWrapper/WalletConnectionWrapper.js +115 -0
- package/dist/components/WalletConnectionWrapper/index.js +27 -0
- package/dist/components/utilitary/ScrollAndFocusLock/ScrollAndFocusLock.js +59 -0
- package/dist/components/utilitary/ScrollAndFocusLock/ScrollAndFocusLock.module.scss +5 -0
- package/dist/components/utilitary/ScrollAndFocusLock/index.js +27 -0
- package/dist/context/AsyncProcess.js +74 -0
- package/dist/context/ContextAsyncControl.js +92 -0
- package/dist/context/CustomBrowserRouter.js +50 -0
- package/dist/context/OneUIProvider.js +129 -0
- package/dist/hooks/logs/useDependencyChangeDetection.js +20 -0
- package/dist/hooks/logs/useIsMounting.js +13 -0
- package/dist/hooks/persistence/useLocalStorage.js +48 -0
- package/dist/hooks/shims/ObjectWatchShim.js +54 -0
- package/dist/hooks/ui/useAdaptiveImage.js +36 -0
- package/dist/hooks/ui/useAlternating.js +24 -0
- package/dist/hooks/ui/useBreakpoint.js +26 -0
- package/dist/hooks/ui/useCustomScrollbar.js +28 -0
- package/dist/hooks/ui/useCustomScrollbar.module.scss +20 -0
- package/dist/hooks/ui/useEffectIf.js +14 -0
- package/dist/hooks/ui/useMouseHover.js +32 -0
- package/dist/hooks/ui/usePaginationControls.js +136 -0
- package/dist/hooks/ui/usePaginationControls.module.scss +16 -0
- package/dist/hooks/ui/useSnapToViewport.js +26 -0
- package/dist/hooks/ui/useSnapToViewport.module.scss +6 -0
- package/dist/hooks/ui/useTilt.js +161 -0
- package/dist/hooks/ui/useZoomable.js +135 -0
- package/dist/hooks/ui/useZoomable.module.scss +34 -0
- package/dist/hooks/useAsyncControl.ai.md +25 -0
- package/dist/hooks/useAsyncControl.js +79 -0
- package/dist/hooks/useContainedRepositioning.js +83 -0
- package/dist/hooks/useCustomHistory.js +24 -0
- package/dist/hooks/useElementFit.js +54 -0
- package/dist/hooks/useFirestoreWatch.js +45 -0
- package/dist/hooks/useFreeze.js +17 -0
- package/dist/hooks/useHero.js +273 -0
- package/dist/hooks/useHero.module.scss +41 -0
- package/dist/hooks/useIntersection.js +39 -0
- package/dist/hooks/useMergeRefs.js +36 -0
- package/dist/hooks/useObserve.js +25 -0
- package/dist/hooks/usePagination.js +163 -0
- package/dist/hooks/usePooledOperation.js +52 -0
- package/dist/hooks/usePooling.js +52 -0
- package/dist/hooks/useRebound.js +32 -0
- package/dist/hooks/useShortIntl.ai.md +5 -0
- package/dist/hooks/useShortIntl.js +82 -0
- package/dist/hooks/utility/useAsyncMemo.js +45 -0
- package/dist/hooks/utility/useDepChange.js +17 -0
- package/dist/hooks/utility/useEvents.js +33 -0
- package/dist/hooks/utility/useImmediate.js +14 -0
- package/dist/hooks/utility/useManualInit.js +25 -0
- package/dist/hooks/utility/useModule.js +18 -0
- package/dist/hooks/utility/useQuery.js +20 -0
- package/dist/hooks/utility/useUniqueEffect.js +20 -0
- package/dist/index.js +2149 -0
- package/dist/index.preprocess.js +42 -0
- package/dist/models/DebugLogger.js +16 -0
- package/dist/models/GenericContract.js +51 -0
- package/dist/models/Orbs.js +67 -0
- package/dist/reac-app-env.d.js +2 -0
- package/dist/storybook/assets/video/txt-reversed.mp4 +0 -0
- package/dist/storybookUtils/index.js +44 -0
- package/dist/type-utils.js +6 -0
- package/dist/types.js +6 -0
- package/dist/utility.d.js +2 -0
- package/dist/utils/blockchain.js +46 -0
- package/dist/utils/e2e.js +33 -0
- package/dist/utils/flatten.js +19 -0
- package/dist/utils/formatters.js +63 -0
- package/dist/utils/html.utils.js +15 -0
- package/dist/utils/ownEvent.js +16 -0
- package/dist/utils/test.js +19 -0
- package/dist-browser/bundle.js +83650 -0
- package/dist-browser/bundle.js.LICENSE.txt +94 -0
- package/dist-browser/bundle.js.map +1 -0
- package/dist-ts/components/AdaptiveContainer/AdaptiveContainer.js +2 -1
- package/dist-ts/components/AdaptiveContainer/AdaptiveContainer.js.map +1 -1
- package/dist-ts/components/AnchoredTooltip/AnchoredTooltip.module.scss +13 -10
- package/dist-ts/components/CheckBox/CheckBox.d.ts +3 -1
- package/dist-ts/components/CheckBox/CheckBox.js +7 -4
- package/dist-ts/components/CheckBox/CheckBox.js.map +1 -1
- package/dist-ts/components/CheckBox/CheckBox.module.scss +5 -0
- package/dist-ts/components/Input/Input.js +1 -1
- package/dist-ts/components/Input/Input.js.map +1 -1
- package/dist-ts/context/OneUIProvider.d.ts +3 -1
- package/dist-ts/context/OneUIProvider.js.map +1 -1
- package/dist-ts/hooks/ui/useAdaptiveImage.d.ts +1 -1
- package/dist-ts/hooks/ui/useAdaptiveImage.js +1 -1
- package/dist-ts/hooks/ui/useAdaptiveImage.js.map +1 -1
- package/dist-ts/hooks/ui/useMouseHover.d.ts +2 -2
- package/dist-ts/hooks/ui/useMouseHover.js +6 -5
- package/dist-ts/hooks/ui/useMouseHover.js.map +1 -1
- package/dist-ts/hooks/useObserve.d.ts +1 -1
- package/dist-ts/hooks/useObserve.js +1 -1
- package/dist-ts/hooks/useObserve.js.map +1 -1
- package/dist-ts/index.d.ts +1 -0
- package/dist-ts/index.js +1 -0
- package/dist-ts/index.js.map +1 -1
- package/dist-ts/models/ImageScales.d.ts +7 -0
- package/dist-ts/models/ImageScales.js +9 -0
- package/dist-ts/models/ImageScales.js.map +1 -0
- package/example.html +76 -0
- package/package.json +11 -4
- package/webpack.bundle.config.js +87 -0
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.areAllQuestionsAnswered = areAllQuestionsAnswered;
|
|
7
|
+
exports.isValidated = void 0;
|
|
8
|
+
exports.useFieldErrors = useFieldErrors;
|
|
9
|
+
exports.useForm = useForm;
|
|
10
|
+
exports.useFormAnswers = useFormAnswers;
|
|
11
|
+
exports.useFormState = useFormState;
|
|
12
|
+
var _react = require("react");
|
|
13
|
+
var _OneUIProvider = require("../../context/OneUIProvider");
|
|
14
|
+
var _FormField = require("./FormField/FormField.types");
|
|
15
|
+
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; }
|
|
16
|
+
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; }
|
|
17
|
+
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; }
|
|
18
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
19
|
+
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); }
|
|
20
|
+
function useFormAnswers(defaultAnswers, mode) {
|
|
21
|
+
const [answers, setAnswers] = (0, _react.useState)(() => {
|
|
22
|
+
const clone = _objectSpread({}, defaultAnswers);
|
|
23
|
+
if (mode === _FormField.FormMode.READ_ONLY) return clone;
|
|
24
|
+
return clone;
|
|
25
|
+
});
|
|
26
|
+
return {
|
|
27
|
+
answers,
|
|
28
|
+
setAnswers
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
function useFormState(currentQuestions, _ref) {
|
|
32
|
+
let {
|
|
33
|
+
answers,
|
|
34
|
+
setAnswers
|
|
35
|
+
} = _ref;
|
|
36
|
+
const formConfig = (0, _OneUIProvider.useOneUIConfig)("component.form");
|
|
37
|
+
const {
|
|
38
|
+
isValid: isQuestionsAnswered
|
|
39
|
+
} = (0, _react.useMemo)(() => {
|
|
40
|
+
return areAllQuestionsAnswered(currentQuestions, answers, formConfig.requiredLabel, formConfig.extensions);
|
|
41
|
+
}, [answers, currentQuestions]);
|
|
42
|
+
const onAnswerAction = (questionType, id, answer) => {
|
|
43
|
+
switch (questionType) {
|
|
44
|
+
case "file":
|
|
45
|
+
const {
|
|
46
|
+
onFileUpload
|
|
47
|
+
} = formConfig;
|
|
48
|
+
setAnswers(prev => {
|
|
49
|
+
const file = answer;
|
|
50
|
+
if (file) return _objectSpread(_objectSpread({}, prev), {}, {
|
|
51
|
+
[id]: onFileUpload(id, file)
|
|
52
|
+
});
|
|
53
|
+
delete prev[id];
|
|
54
|
+
return _objectSpread({}, prev);
|
|
55
|
+
});
|
|
56
|
+
break;
|
|
57
|
+
default:
|
|
58
|
+
setAnswers(prev => {
|
|
59
|
+
if (prev[id] === answer) return prev;
|
|
60
|
+
return _objectSpread(_objectSpread({}, prev), {}, {
|
|
61
|
+
[id]: answer
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
const isFilesUploaded = useFileUploads(currentQuestions, answers);
|
|
67
|
+
return {
|
|
68
|
+
answers,
|
|
69
|
+
isQuestionsAnswered,
|
|
70
|
+
isFilesUploaded,
|
|
71
|
+
onAnswerAction,
|
|
72
|
+
questions: currentQuestions
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
function useForm(currentQuestions, defaultAnswers, mode) {
|
|
76
|
+
const answers = useFormAnswers(defaultAnswers, mode);
|
|
77
|
+
return useFormState(currentQuestions, answers);
|
|
78
|
+
}
|
|
79
|
+
function useFileUploads(questions, answers) {
|
|
80
|
+
const fileUploadQuestions = (0, _react.useMemo)(() => questions.filter(a => a.type === "file"), [questions]);
|
|
81
|
+
const [fileUploadStatus, setFileUploadStatus] = (0, _react.useState)({});
|
|
82
|
+
(0, _react.useLayoutEffect)(() => {
|
|
83
|
+
const unsubs = [];
|
|
84
|
+
for (let fileQuestion of fileUploadQuestions) {
|
|
85
|
+
const uploadTask = answers[fileQuestion.id];
|
|
86
|
+
if (!uploadTask) setFileUploadStatus(prev => _objectSpread(_objectSpread({}, prev), {}, {
|
|
87
|
+
[fileQuestion.id]: "running"
|
|
88
|
+
}));else if (typeof uploadTask === "boolean") {
|
|
89
|
+
setFileUploadStatus(prev => _objectSpread(_objectSpread({}, prev), {}, {
|
|
90
|
+
[fileQuestion.id]: "success"
|
|
91
|
+
}));
|
|
92
|
+
} else unsubs.push(uploadTask.on("state_changed", r => {
|
|
93
|
+
setFileUploadStatus(prev => _objectSpread(_objectSpread({}, prev), {}, {
|
|
94
|
+
[fileQuestion.id]: r.totalBytes === r.bytesTransferred ? "success" : "running"
|
|
95
|
+
}));
|
|
96
|
+
}));
|
|
97
|
+
}
|
|
98
|
+
return () => {
|
|
99
|
+
unsubs.forEach(unsub => unsub());
|
|
100
|
+
};
|
|
101
|
+
}, [answers, fileUploadQuestions]);
|
|
102
|
+
const areAllFileUploaded = (0, _react.useMemo)(() => {
|
|
103
|
+
return fileUploadQuestions.reduce((r, question) => {
|
|
104
|
+
const uploadStatus = fileUploadStatus[question.id];
|
|
105
|
+
return r && uploadStatus === "success";
|
|
106
|
+
}, true);
|
|
107
|
+
}, [fileUploadStatus, fileUploadQuestions]);
|
|
108
|
+
return areAllFileUploaded;
|
|
109
|
+
}
|
|
110
|
+
function useFieldErrors(currentQuestions, answers, showAllErrors) {
|
|
111
|
+
const {
|
|
112
|
+
requiredLabel,
|
|
113
|
+
extensions
|
|
114
|
+
} = (0, _OneUIProvider.useOneUIConfig)("component.form");
|
|
115
|
+
const errorMap = (0, _react.useMemo)(() => {
|
|
116
|
+
const ans = question => answers[question.id];
|
|
117
|
+
const errorsMap = {};
|
|
118
|
+
for (let question of currentQuestions) {
|
|
119
|
+
const _isValidated = () => {
|
|
120
|
+
return isValidated(ans(question), !!question.optional, question.validator, requiredLabel);
|
|
121
|
+
};
|
|
122
|
+
const updateDefaultError = () => {
|
|
123
|
+
const validation = _isValidated();
|
|
124
|
+
errorsMap[question.id] = validation.error;
|
|
125
|
+
};
|
|
126
|
+
switch (question.type) {
|
|
127
|
+
case "check":
|
|
128
|
+
case "rawcheck":
|
|
129
|
+
updateDefaultError();
|
|
130
|
+
if (question.validator) errorsMap[question.id] = question.validator(ans(question));
|
|
131
|
+
break;
|
|
132
|
+
case "number":
|
|
133
|
+
case "text":
|
|
134
|
+
case "select":
|
|
135
|
+
case "radio":
|
|
136
|
+
case "file":
|
|
137
|
+
updateDefaultError();
|
|
138
|
+
const validationResult = _isValidated();
|
|
139
|
+
if (validationResult.error) errorsMap[question.id] = validationResult.error;
|
|
140
|
+
break;
|
|
141
|
+
default:
|
|
142
|
+
const extendedSupport = extensions === null || extensions === void 0 ? void 0 : extensions[question.type];
|
|
143
|
+
if (extendedSupport) {
|
|
144
|
+
const validationResultExtend = extendedSupport.validator ? extendedSupport.validator(ans(question), question) : _isValidated();
|
|
145
|
+
if (validationResultExtend.error) errorsMap[question.id] = validationResultExtend.error;
|
|
146
|
+
} else {
|
|
147
|
+
updateDefaultError();
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
return errorsMap;
|
|
152
|
+
}, [currentQuestions, answers]);
|
|
153
|
+
const currentErrors = (0, _react.useMemo)(() => {
|
|
154
|
+
return Object.entries(errorMap).reduce((r, _ref2) => {
|
|
155
|
+
let [k, v] = _ref2;
|
|
156
|
+
return _objectSpread(_objectSpread({}, r), {}, {
|
|
157
|
+
[k]: showAllErrors ? v : v !== requiredLabel ? v : undefined
|
|
158
|
+
});
|
|
159
|
+
}, {});
|
|
160
|
+
}, [showAllErrors, errorMap]);
|
|
161
|
+
return currentErrors;
|
|
162
|
+
}
|
|
163
|
+
function areAllQuestionsAnswered(currentQuestions, answers, requiredLabel, extensions) {
|
|
164
|
+
const isValid = currentQuestions.reduce((answeredAll, question) => {
|
|
165
|
+
const ans = question => answers[question.id];
|
|
166
|
+
const isFieldAnswered = (() => {
|
|
167
|
+
switch (question.type) {
|
|
168
|
+
case "accept":
|
|
169
|
+
const checks = ans(question) || [];
|
|
170
|
+
return question.accept.reduce((r, _ref3, idx) => {
|
|
171
|
+
let {
|
|
172
|
+
optional
|
|
173
|
+
} = _ref3;
|
|
174
|
+
return r && (optional ? true : checks[idx]);
|
|
175
|
+
}, true);
|
|
176
|
+
case "check":
|
|
177
|
+
case "rawcheck":
|
|
178
|
+
if (question.optional) return true;
|
|
179
|
+
if (question.validator) return question.validator(ans(question)) === true;
|
|
180
|
+
const checkmarks = ans(question) || [];
|
|
181
|
+
return checkmarks.includes(true);
|
|
182
|
+
case "number":
|
|
183
|
+
case "text":
|
|
184
|
+
case "select":
|
|
185
|
+
case "radio":
|
|
186
|
+
case "file":
|
|
187
|
+
if (!answers[question.id]) return !!question.optional;
|
|
188
|
+
const validationResult = isValidated(ans(question), !!question.optional, question.validator, requiredLabel);
|
|
189
|
+
return validationResult.isValid && answeredAll;
|
|
190
|
+
default:
|
|
191
|
+
const extendedSupport = extensions === null || extensions === void 0 ? void 0 : extensions[question.type];
|
|
192
|
+
if (extendedSupport) {
|
|
193
|
+
const validationResultExtend = extendedSupport.validator ? extendedSupport.validator(ans(question), question) : isValidated(ans(question), !!question.optional, question.validator, requiredLabel);
|
|
194
|
+
return validationResultExtend.isValid;
|
|
195
|
+
} else return question.validator ? !!question.validator(ans(question)) : !!ans(question);
|
|
196
|
+
}
|
|
197
|
+
})();
|
|
198
|
+
const result = answeredAll && isFieldAnswered;
|
|
199
|
+
return result;
|
|
200
|
+
}, true);
|
|
201
|
+
return {
|
|
202
|
+
isValid: !!isValid
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
const isValidated = (_answer, isOptional, validator, requiredFieldLabel) => {
|
|
206
|
+
const answer = Array.isArray(_answer) ? _answer[0] : _answer;
|
|
207
|
+
if (!answer && !isOptional) return {
|
|
208
|
+
isValid: false,
|
|
209
|
+
error: requiredFieldLabel
|
|
210
|
+
};
|
|
211
|
+
if (!validator) if (Array.isArray(_answer)) {
|
|
212
|
+
const [_, isValid, error] = _answer;
|
|
213
|
+
return {
|
|
214
|
+
isValid,
|
|
215
|
+
error
|
|
216
|
+
};
|
|
217
|
+
} else {
|
|
218
|
+
return {
|
|
219
|
+
isValid: true,
|
|
220
|
+
error: ""
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
const validationResult = validator(_answer);
|
|
224
|
+
if (typeof validationResult === "string") return {
|
|
225
|
+
isValid: false,
|
|
226
|
+
error: validationResult
|
|
227
|
+
};
|
|
228
|
+
return {
|
|
229
|
+
isValid: validationResult,
|
|
230
|
+
error: ""
|
|
231
|
+
};
|
|
232
|
+
};
|
|
233
|
+
exports.isValidated = isValidated;
|
|
234
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJyZXF1aXJlIiwiX09uZVVJUHJvdmlkZXIiLCJfRm9ybUZpZWxkIiwib3duS2V5cyIsIm9iamVjdCIsImVudW1lcmFibGVPbmx5Iiwia2V5cyIsIk9iamVjdCIsImdldE93blByb3BlcnR5U3ltYm9scyIsInN5bWJvbHMiLCJmaWx0ZXIiLCJzeW0iLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsInRhcmdldCIsImkiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJzb3VyY2UiLCJmb3JFYWNoIiwia2V5IiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIm9iaiIsInZhbHVlIiwiX3RvUHJvcGVydHlLZXkiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImFyZyIsIl90b1ByaW1pdGl2ZSIsIlN0cmluZyIsImlucHV0IiwiaGludCIsInByaW0iLCJTeW1ib2wiLCJ0b1ByaW1pdGl2ZSIsInVuZGVmaW5lZCIsInJlcyIsImNhbGwiLCJUeXBlRXJyb3IiLCJOdW1iZXIiLCJ1c2VGb3JtQW5zd2VycyIsImRlZmF1bHRBbnN3ZXJzIiwibW9kZSIsImFuc3dlcnMiLCJzZXRBbnN3ZXJzIiwidXNlU3RhdGUiLCJjbG9uZSIsIkZvcm1Nb2RlIiwiUkVBRF9PTkxZIiwidXNlRm9ybVN0YXRlIiwiY3VycmVudFF1ZXN0aW9ucyIsIl9yZWYiLCJmb3JtQ29uZmlnIiwidXNlT25lVUlDb25maWciLCJpc1ZhbGlkIiwiaXNRdWVzdGlvbnNBbnN3ZXJlZCIsInVzZU1lbW8iLCJhcmVBbGxRdWVzdGlvbnNBbnN3ZXJlZCIsInJlcXVpcmVkTGFiZWwiLCJleHRlbnNpb25zIiwib25BbnN3ZXJBY3Rpb24iLCJxdWVzdGlvblR5cGUiLCJpZCIsImFuc3dlciIsIm9uRmlsZVVwbG9hZCIsInByZXYiLCJmaWxlIiwiaXNGaWxlc1VwbG9hZGVkIiwidXNlRmlsZVVwbG9hZHMiLCJxdWVzdGlvbnMiLCJ1c2VGb3JtIiwiZmlsZVVwbG9hZFF1ZXN0aW9ucyIsImEiLCJ0eXBlIiwiZmlsZVVwbG9hZFN0YXR1cyIsInNldEZpbGVVcGxvYWRTdGF0dXMiLCJ1c2VMYXlvdXRFZmZlY3QiLCJ1bnN1YnMiLCJmaWxlUXVlc3Rpb24iLCJ1cGxvYWRUYXNrIiwib24iLCJyIiwidG90YWxCeXRlcyIsImJ5dGVzVHJhbnNmZXJyZWQiLCJ1bnN1YiIsImFyZUFsbEZpbGVVcGxvYWRlZCIsInJlZHVjZSIsInF1ZXN0aW9uIiwidXBsb2FkU3RhdHVzIiwidXNlRmllbGRFcnJvcnMiLCJzaG93QWxsRXJyb3JzIiwiZXJyb3JNYXAiLCJhbnMiLCJlcnJvcnNNYXAiLCJfaXNWYWxpZGF0ZWQiLCJpc1ZhbGlkYXRlZCIsIm9wdGlvbmFsIiwidmFsaWRhdG9yIiwidXBkYXRlRGVmYXVsdEVycm9yIiwidmFsaWRhdGlvbiIsImVycm9yIiwidmFsaWRhdGlvblJlc3VsdCIsImV4dGVuZGVkU3VwcG9ydCIsInZhbGlkYXRpb25SZXN1bHRFeHRlbmQiLCJjdXJyZW50RXJyb3JzIiwiZW50cmllcyIsIl9yZWYyIiwiayIsInYiLCJhbnN3ZXJlZEFsbCIsImlzRmllbGRBbnN3ZXJlZCIsImNoZWNrcyIsImFjY2VwdCIsIl9yZWYzIiwiaWR4IiwiY2hlY2ttYXJrcyIsImluY2x1ZGVzIiwicmVzdWx0IiwiX2Fuc3dlciIsImlzT3B0aW9uYWwiLCJyZXF1aXJlZEZpZWxkTGFiZWwiLCJBcnJheSIsImlzQXJyYXkiLCJfIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0Zvcm0vRm9ybS5ob29rLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUxheW91dEVmZmVjdCwgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IE9uZVVJQ29udGV4dFNwZWNzLCB1c2VPbmVVSUNvbmZpZyB9IGZyb20gXCIuLi8uLi9jb250ZXh0L09uZVVJUHJvdmlkZXJcIjtcbmltcG9ydCB7XG4gIEFuc3dlckFjdGlvbixcbiAgQW5zd2VyQnlGaWVsZCxcbiAgRm9ybUZpZWxkLFxuICBGb3JtRmllbGRUeXBlcyxcbiAgRm9ybUZpZWxkVmlldyxcbiAgRm9ybU1vZGUsXG59IGZyb20gXCIuL0Zvcm1GaWVsZC9Gb3JtRmllbGQudHlwZXNcIjtcbmltcG9ydCB7IEFuc3dlcnNNYXAgfSBmcm9tIFwiLi9Gb3JtLnR5cGVzXCI7XG5pbXBvcnQgeyBVcGxvYWRUYXNrLCBVcGxvYWRUYXNrU25hcHNob3QgfSBmcm9tIFwiZmlyZWJhc2Uvc3RvcmFnZVwiO1xuaW1wb3J0IHsgRnJvbU9uZVBlcmNlbnRVdGlsaXR5IH0gZnJvbSBcIi4uLy4uL3R5cGUtdXRpbHNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHVzZUZvcm1BbnN3ZXJzPEEgZXh0ZW5kcyBBbnN3ZXJzTWFwPGFueT4gPSBBbnN3ZXJzTWFwPihcbiAgZGVmYXVsdEFuc3dlcnM6IEEsXG4gIG1vZGU6IEZvcm1Nb2RlLFxuKSB7XG4gIGNvbnN0IFthbnN3ZXJzLCBzZXRBbnN3ZXJzXSA9IHVzZVN0YXRlPEE+KCgpID0+IHtcbiAgICBjb25zdCBjbG9uZSA9IHtcbiAgICAgIC4uLmRlZmF1bHRBbnN3ZXJzLFxuICAgIH07XG4gICAgaWYgKG1vZGUgPT09IEZvcm1Nb2RlLlJFQURfT05MWSkgcmV0dXJuIGNsb25lO1xuICAgIHJldHVybiBjbG9uZTtcbiAgfSk7XG4gIHJldHVybiB7XG4gICAgYW5zd2VycyxcbiAgICBzZXRBbnN3ZXJzLFxuICB9O1xufVxuZXhwb3J0IGZ1bmN0aW9uIHVzZUZvcm1TdGF0ZTxRIGV4dGVuZHMgRm9ybUZpZWxkVmlld1tdPihcbiAgY3VycmVudFF1ZXN0aW9uczogUSxcbiAgeyBhbnN3ZXJzLCBzZXRBbnN3ZXJzIH06IFJldHVyblR5cGU8dHlwZW9mIHVzZUZvcm1BbnN3ZXJzPEFuc3dlcnNNYXA8UT4+Pixcbikge1xuICBjb25zdCBmb3JtQ29uZmlnID0gdXNlT25lVUlDb25maWcoXCJjb21wb25lbnQuZm9ybVwiKTtcblxuICBjb25zdCB7IGlzVmFsaWQ6IGlzUXVlc3Rpb25zQW5zd2VyZWQgfSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBhcmVBbGxRdWVzdGlvbnNBbnN3ZXJlZChcbiAgICAgIGN1cnJlbnRRdWVzdGlvbnMsXG4gICAgICBhbnN3ZXJzLFxuICAgICAgZm9ybUNvbmZpZy5yZXF1aXJlZExhYmVsLFxuICAgICAgZm9ybUNvbmZpZy5leHRlbnNpb25zLFxuICAgICk7XG4gIH0sIFthbnN3ZXJzLCBjdXJyZW50UXVlc3Rpb25zXSk7XG5cbiAgY29uc3Qgb25BbnN3ZXJBY3Rpb24gPSA8VCBleHRlbmRzIEZvcm1GaWVsZFR5cGVzPihcbiAgICBxdWVzdGlvblR5cGU6IFQsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBhbnN3ZXI6XG4gICAgICB8IEFuc3dlckFjdGlvbjx7XG4gICAgICAgICAgdHlwZTogVDtcbiAgICAgICAgfT5cbiAgICAgIHwgdW5kZWZpbmVkLFxuICApID0+IHtcbiAgICBzd2l0Y2ggKHF1ZXN0aW9uVHlwZSkge1xuICAgICAgY2FzZSBcImZpbGVcIjpcbiAgICAgICAgY29uc3QgeyBvbkZpbGVVcGxvYWQgfSA9IGZvcm1Db25maWc7XG4gICAgICAgIHNldEFuc3dlcnMoKHByZXY6IGFueSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGZpbGUgPSBhbnN3ZXIgYXMgRmlsZSB8IHVuZGVmaW5lZDtcbiAgICAgICAgICBpZiAoZmlsZSlcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIC4uLnByZXYsXG4gICAgICAgICAgICAgIFtpZF06IG9uRmlsZVVwbG9hZChpZCwgZmlsZSksXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIGRlbGV0ZSBwcmV2W2lkXTtcbiAgICAgICAgICByZXR1cm4geyAuLi5wcmV2IH07XG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHNldEFuc3dlcnMoKHByZXYpID0+IHtcbiAgICAgICAgICBpZiAocHJldltpZCBhcyBrZXlvZiB0eXBlb2YgcHJldl0gPT09IGFuc3dlcikgcmV0dXJuIHByZXY7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLnByZXYsXG4gICAgICAgICAgICBbaWRdOiBhbnN3ZXIgYXMgc3RyaW5nLFxuICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBpc0ZpbGVzVXBsb2FkZWQgPSB1c2VGaWxlVXBsb2FkcyhjdXJyZW50UXVlc3Rpb25zLCBhbnN3ZXJzKTtcblxuICByZXR1cm4ge1xuICAgIGFuc3dlcnMsXG4gICAgaXNRdWVzdGlvbnNBbnN3ZXJlZCxcbiAgICBpc0ZpbGVzVXBsb2FkZWQsXG4gICAgb25BbnN3ZXJBY3Rpb24sXG4gICAgcXVlc3Rpb25zOiBjdXJyZW50UXVlc3Rpb25zLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlRm9ybTxRIGV4dGVuZHMgRm9ybUZpZWxkVmlld1tdPihcbiAgY3VycmVudFF1ZXN0aW9uczogUSxcbiAgZGVmYXVsdEFuc3dlcnM6IEFuc3dlcnNNYXAsXG4gIG1vZGU6IEZvcm1Nb2RlLFxuKSB7XG4gIGNvbnN0IGFuc3dlcnMgPSB1c2VGb3JtQW5zd2VycyhkZWZhdWx0QW5zd2VycywgbW9kZSk7XG4gIHJldHVybiB1c2VGb3JtU3RhdGUoY3VycmVudFF1ZXN0aW9ucywgYW5zd2VycyBhcyBhbnkpO1xufVxuXG5mdW5jdGlvbiB1c2VGaWxlVXBsb2FkcyhxdWVzdGlvbnM6IEZvcm1GaWVsZFtdLCBhbnN3ZXJzOiBBbnN3ZXJzTWFwKSB7XG4gIGNvbnN0IGZpbGVVcGxvYWRRdWVzdGlvbnMgPSB1c2VNZW1vKFxuICAgICgpID0+IHF1ZXN0aW9ucy5maWx0ZXIoKGEpID0+IGEudHlwZSA9PT0gXCJmaWxlXCIpLFxuICAgIFtxdWVzdGlvbnNdLFxuICApO1xuICBjb25zdCBbZmlsZVVwbG9hZFN0YXR1cywgc2V0RmlsZVVwbG9hZFN0YXR1c10gPSB1c2VTdGF0ZTx7XG4gICAgW3F1ZXN0aW9uSUQ6IHN0cmluZ106IFVwbG9hZFRhc2tTbmFwc2hvdFtcInN0YXRlXCJdO1xuICB9Pih7fSk7XG4gIHVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgdW5zdWJzOiBSZXR1cm5UeXBlPFVwbG9hZFRhc2tbXCJvblwiXT5bXSA9IFtdO1xuICAgIGZvciAobGV0IGZpbGVRdWVzdGlvbiBvZiBmaWxlVXBsb2FkUXVlc3Rpb25zKSB7XG4gICAgICBjb25zdCB1cGxvYWRUYXNrID0gYW5zd2Vyc1tmaWxlUXVlc3Rpb24uaWRdIGFzXG4gICAgICAgIHwgQW5zd2VyQnlGaWVsZDx7XG4gICAgICAgICAgICB0eXBlOiBcImZpbGVcIjtcbiAgICAgICAgICB9PlxuICAgICAgICB8IHVuZGVmaW5lZDtcblxuICAgICAgaWYgKCF1cGxvYWRUYXNrKVxuICAgICAgICBzZXRGaWxlVXBsb2FkU3RhdHVzKChwcmV2KSA9PiAoe1xuICAgICAgICAgIC4uLnByZXYsXG4gICAgICAgICAgW2ZpbGVRdWVzdGlvbi5pZF06IFwicnVubmluZ1wiLFxuICAgICAgICB9KSk7XG4gICAgICBlbHNlIGlmICh0eXBlb2YgdXBsb2FkVGFzayA9PT0gXCJib29sZWFuXCIpIHtcbiAgICAgICAgc2V0RmlsZVVwbG9hZFN0YXR1cygocHJldikgPT4gKHtcbiAgICAgICAgICAuLi5wcmV2LFxuICAgICAgICAgIFtmaWxlUXVlc3Rpb24uaWRdOiBcInN1Y2Nlc3NcIixcbiAgICAgICAgfSkpO1xuICAgICAgfSBlbHNlXG4gICAgICAgIHVuc3Vicy5wdXNoKFxuICAgICAgICAgIHVwbG9hZFRhc2sub24oXCJzdGF0ZV9jaGFuZ2VkXCIsIChyKSA9PiB7XG4gICAgICAgICAgICBzZXRGaWxlVXBsb2FkU3RhdHVzKChwcmV2KSA9PiAoe1xuICAgICAgICAgICAgICAuLi5wcmV2LFxuICAgICAgICAgICAgICBbZmlsZVF1ZXN0aW9uLmlkXTpcbiAgICAgICAgICAgICAgICByLnRvdGFsQnl0ZXMgPT09IHIuYnl0ZXNUcmFuc2ZlcnJlZCA/IFwic3VjY2Vzc1wiIDogXCJydW5uaW5nXCIsXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHVuc3Vicy5mb3JFYWNoKCh1bnN1YikgPT4gdW5zdWIoKSk7XG4gICAgfTtcbiAgfSwgW2Fuc3dlcnMsIGZpbGVVcGxvYWRRdWVzdGlvbnNdKTtcblxuICBjb25zdCBhcmVBbGxGaWxlVXBsb2FkZWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gZmlsZVVwbG9hZFF1ZXN0aW9ucy5yZWR1Y2UoKHIsIHF1ZXN0aW9uKSA9PiB7XG4gICAgICBjb25zdCB1cGxvYWRTdGF0dXMgPSBmaWxlVXBsb2FkU3RhdHVzW3F1ZXN0aW9uLmlkXTtcbiAgICAgIHJldHVybiByICYmIHVwbG9hZFN0YXR1cyA9PT0gXCJzdWNjZXNzXCI7XG4gICAgfSwgdHJ1ZSk7XG4gIH0sIFtmaWxlVXBsb2FkU3RhdHVzLCBmaWxlVXBsb2FkUXVlc3Rpb25zXSk7XG5cbiAgcmV0dXJuIGFyZUFsbEZpbGVVcGxvYWRlZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVzZUZpZWxkRXJyb3JzPFxuICBRIGV4dGVuZHMgUmVhZG9ubHk8XG4gICAgUGljazxGb3JtRmllbGQsIFwidHlwZVwiIHwgXCJpZFwiIHwgXCJvcHRpb25hbFwiIHwgXCJ2YWxpZGF0b3JcIj5bXVxuICA+LFxuPihjdXJyZW50UXVlc3Rpb25zOiBRLCBhbnN3ZXJzOiBBbnN3ZXJzTWFwLCBzaG93QWxsRXJyb3JzOiBib29sZWFuKSB7XG4gIGNvbnN0IHsgcmVxdWlyZWRMYWJlbCwgZXh0ZW5zaW9ucyB9ID0gdXNlT25lVUlDb25maWcoXCJjb21wb25lbnQuZm9ybVwiKTtcbiAgY29uc3QgZXJyb3JNYXAgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBhbnMgPSA8VCBleHRlbmRzIEZvcm1GaWVsZFZpZXdbXCJ0eXBlXCJdPihcbiAgICAgIHF1ZXN0aW9uOiBQaWNrPEZvcm1GaWVsZCwgXCJpZFwiPiAmIHtcbiAgICAgICAgdHlwZTogVDtcbiAgICAgIH0sXG4gICAgKSA9PlxuICAgICAgYW5zd2Vyc1txdWVzdGlvbi5pZF0gYXMgQW5zd2VyQnlGaWVsZDx7XG4gICAgICAgIHR5cGU6IFQ7XG4gICAgICB9PjtcbiAgICBjb25zdCBlcnJvcnNNYXA6IHtcbiAgICAgIFtxdWVzdGlvbklkOiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgfSA9IHt9O1xuICAgIGZvciAobGV0IHF1ZXN0aW9uIG9mIGN1cnJlbnRRdWVzdGlvbnMpIHtcbiAgICAgIGNvbnN0IF9pc1ZhbGlkYXRlZCA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIGlzVmFsaWRhdGVkKFxuICAgICAgICAgIGFucyhxdWVzdGlvbiksXG4gICAgICAgICAgISFxdWVzdGlvbi5vcHRpb25hbCxcbiAgICAgICAgICBxdWVzdGlvbi52YWxpZGF0b3IsXG4gICAgICAgICAgcmVxdWlyZWRMYWJlbCxcbiAgICAgICAgKTtcbiAgICAgIH07XG4gICAgICBjb25zdCB1cGRhdGVEZWZhdWx0RXJyb3IgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbGlkYXRpb24gPSBfaXNWYWxpZGF0ZWQoKTtcbiAgICAgICAgZXJyb3JzTWFwW3F1ZXN0aW9uLmlkXSA9IHZhbGlkYXRpb24uZXJyb3I7XG4gICAgICB9O1xuICAgICAgc3dpdGNoIChxdWVzdGlvbi50eXBlKSB7XG4gICAgICAgIGNhc2UgXCJjaGVja1wiOlxuICAgICAgICBjYXNlIFwicmF3Y2hlY2tcIjpcbiAgICAgICAgICB1cGRhdGVEZWZhdWx0RXJyb3IoKTtcbiAgICAgICAgICBpZiAocXVlc3Rpb24udmFsaWRhdG9yKVxuICAgICAgICAgICAgZXJyb3JzTWFwW3F1ZXN0aW9uLmlkXSA9IHF1ZXN0aW9uLnZhbGlkYXRvcihcbiAgICAgICAgICAgICAgYW5zKHF1ZXN0aW9uKSBhcyBhbnksXG4gICAgICAgICAgICApIGFzIHN0cmluZztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcIm51bWJlclwiOlxuICAgICAgICBjYXNlIFwidGV4dFwiOlxuICAgICAgICBjYXNlIFwic2VsZWN0XCI6XG4gICAgICAgIGNhc2UgXCJyYWRpb1wiOlxuICAgICAgICBjYXNlIFwiZmlsZVwiOlxuICAgICAgICAgIHVwZGF0ZURlZmF1bHRFcnJvcigpO1xuICAgICAgICAgIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSBfaXNWYWxpZGF0ZWQoKTtcbiAgICAgICAgICBpZiAodmFsaWRhdGlvblJlc3VsdC5lcnJvcilcbiAgICAgICAgICAgIGVycm9yc01hcFtxdWVzdGlvbi5pZF0gPSB2YWxpZGF0aW9uUmVzdWx0LmVycm9yO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGNvbnN0IGV4dGVuZGVkU3VwcG9ydCA9XG4gICAgICAgICAgICBleHRlbnNpb25zPy5bXG4gICAgICAgICAgICAgIHF1ZXN0aW9uLnR5cGUgYXMgRnJvbU9uZVBlcmNlbnRVdGlsaXR5PFwiVUlFbGVtZW50cy5Gb3JtRXh0ZW5zaW9uXCI+W1wiZmllbGRzXCJdW1widHlwZVwiXVxuICAgICAgICAgICAgXTtcbiAgICAgICAgICBpZiAoZXh0ZW5kZWRTdXBwb3J0KSB7XG4gICAgICAgICAgICBjb25zdCB2YWxpZGF0aW9uUmVzdWx0RXh0ZW5kID0gZXh0ZW5kZWRTdXBwb3J0LnZhbGlkYXRvclxuICAgICAgICAgICAgICA/IGV4dGVuZGVkU3VwcG9ydC52YWxpZGF0b3IoYW5zKHF1ZXN0aW9uKSBhcyBhbnksIHF1ZXN0aW9uIGFzIGFueSlcbiAgICAgICAgICAgICAgOiBfaXNWYWxpZGF0ZWQoKTtcbiAgICAgICAgICAgIGlmICh2YWxpZGF0aW9uUmVzdWx0RXh0ZW5kLmVycm9yKVxuICAgICAgICAgICAgICBlcnJvcnNNYXBbcXVlc3Rpb24uaWRdID0gdmFsaWRhdGlvblJlc3VsdEV4dGVuZC5lcnJvcjtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdXBkYXRlRGVmYXVsdEVycm9yKCk7XG4gICAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBlcnJvcnNNYXA7XG4gIH0sIFtjdXJyZW50UXVlc3Rpb25zLCBhbnN3ZXJzXSk7XG5cbiAgY29uc3QgY3VycmVudEVycm9ycyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBPYmplY3QuZW50cmllcyhlcnJvck1hcCkucmVkdWNlKFxuICAgICAgKHIsIFtrLCB2XSkgPT4gKHtcbiAgICAgICAgLi4ucixcbiAgICAgICAgW2tdOiBzaG93QWxsRXJyb3JzID8gdiA6IHYgIT09IHJlcXVpcmVkTGFiZWwgPyB2IDogdW5kZWZpbmVkLFxuICAgICAgfSksXG4gICAgICB7fSxcbiAgICApO1xuICB9LCBbc2hvd0FsbEVycm9ycywgZXJyb3JNYXBdKTtcblxuICByZXR1cm4gY3VycmVudEVycm9ycyBhcyB7IFtrIGluIFFbbnVtYmVyXVtcImlkXCJdXTogc3RyaW5nIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcmVBbGxRdWVzdGlvbnNBbnN3ZXJlZChcbiAgY3VycmVudFF1ZXN0aW9uczogRm9ybUZpZWxkW10sXG4gIGFuc3dlcnM6IEFuc3dlcnNNYXAsXG4gIHJlcXVpcmVkTGFiZWw6IHN0cmluZyxcbiAgZXh0ZW5zaW9uczogT25lVUlDb250ZXh0U3BlY3NbXCJjb21wb25lbnRcIl1bXCJmb3JtXCJdW1wiZXh0ZW5zaW9uc1wiXSxcbikge1xuICBjb25zdCBpc1ZhbGlkID0gY3VycmVudFF1ZXN0aW9ucy5yZWR1Y2UoKGFuc3dlcmVkQWxsLCBxdWVzdGlvbikgPT4ge1xuICAgIGNvbnN0IGFucyA9IDxUIGV4dGVuZHMgRm9ybUZpZWxkVmlld1tcInR5cGVcIl0+KFxuICAgICAgcXVlc3Rpb246IEZvcm1GaWVsZCAmIHtcbiAgICAgICAgdHlwZTogVDtcbiAgICAgIH0sXG4gICAgKSA9PlxuICAgICAgYW5zd2Vyc1txdWVzdGlvbi5pZF0gYXMgdW5rbm93biBhcyBBbnN3ZXJCeUZpZWxkPHtcbiAgICAgICAgdHlwZTogVDtcbiAgICAgIH0+O1xuXG4gICAgY29uc3QgaXNGaWVsZEFuc3dlcmVkID0gKCgpID0+IHtcbiAgICAgIHN3aXRjaCAocXVlc3Rpb24udHlwZSkge1xuICAgICAgICBjYXNlIFwiYWNjZXB0XCI6XG4gICAgICAgICAgY29uc3QgY2hlY2tzID0gYW5zKHF1ZXN0aW9uKSB8fCBbXTtcbiAgICAgICAgICByZXR1cm4gcXVlc3Rpb24uYWNjZXB0LnJlZHVjZShcbiAgICAgICAgICAgIChyLCB7IG9wdGlvbmFsIH0sIGlkeCkgPT4gciAmJiAob3B0aW9uYWwgPyB0cnVlIDogY2hlY2tzW2lkeF0pLFxuICAgICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICApO1xuICAgICAgICBjYXNlIFwiY2hlY2tcIjpcbiAgICAgICAgY2FzZSBcInJhd2NoZWNrXCI6XG4gICAgICAgICAgaWYgKHF1ZXN0aW9uLm9wdGlvbmFsKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICBpZiAocXVlc3Rpb24udmFsaWRhdG9yKVxuICAgICAgICAgICAgcmV0dXJuIHF1ZXN0aW9uLnZhbGlkYXRvcihhbnMocXVlc3Rpb24pIGFzIGFueSkgPT09IHRydWUgYXMgYm9vbGVhbjtcbiAgICAgICAgICBjb25zdCBjaGVja21hcmtzID0gYW5zKHF1ZXN0aW9uKSB8fCBbXTtcbiAgICAgICAgICByZXR1cm4gY2hlY2ttYXJrcy5pbmNsdWRlcyh0cnVlKTtcbiAgICAgICAgY2FzZSBcIm51bWJlclwiOlxuICAgICAgICBjYXNlIFwidGV4dFwiOlxuICAgICAgICBjYXNlIFwic2VsZWN0XCI6XG4gICAgICAgIGNhc2UgXCJyYWRpb1wiOlxuICAgICAgICBjYXNlIFwiZmlsZVwiOlxuICAgICAgICAgIGlmICghYW5zd2Vyc1txdWVzdGlvbi5pZF0pIHJldHVybiAhIXF1ZXN0aW9uLm9wdGlvbmFsO1xuICAgICAgICAgIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSBpc1ZhbGlkYXRlZChcbiAgICAgICAgICAgIGFucyhxdWVzdGlvbiksXG4gICAgICAgICAgICAhIXF1ZXN0aW9uLm9wdGlvbmFsLFxuICAgICAgICAgICAgcXVlc3Rpb24udmFsaWRhdG9yLFxuICAgICAgICAgICAgcmVxdWlyZWRMYWJlbCxcbiAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybiB2YWxpZGF0aW9uUmVzdWx0LmlzVmFsaWQgJiYgYW5zd2VyZWRBbGw7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgY29uc3QgZXh0ZW5kZWRTdXBwb3J0ID1cbiAgICAgICAgICAgIGV4dGVuc2lvbnM/LltcbiAgICAgICAgICAgICAgcXVlc3Rpb24udHlwZSBhcyBGcm9tT25lUGVyY2VudFV0aWxpdHk8XCJVSUVsZW1lbnRzLkZvcm1FeHRlbnNpb25cIj5bXCJmaWVsZHNcIl1bXCJ0eXBlXCJdXG4gICAgICAgICAgICBdO1xuICAgICAgICAgIGlmIChleHRlbmRlZFN1cHBvcnQpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbGlkYXRpb25SZXN1bHRFeHRlbmQgPSBleHRlbmRlZFN1cHBvcnQudmFsaWRhdG9yXG4gICAgICAgICAgICAgID8gZXh0ZW5kZWRTdXBwb3J0LnZhbGlkYXRvcihhbnMocXVlc3Rpb24pIGFzIGFueSwgcXVlc3Rpb24gYXMgYW55KVxuICAgICAgICAgICAgICA6IGlzVmFsaWRhdGVkKFxuICAgICAgICAgICAgICAgICAgYW5zKHF1ZXN0aW9uKSxcbiAgICAgICAgICAgICAgICAgICEhcXVlc3Rpb24ub3B0aW9uYWwsXG4gICAgICAgICAgICAgICAgICBxdWVzdGlvbi52YWxpZGF0b3IsXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZExhYmVsLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm4gdmFsaWRhdGlvblJlc3VsdEV4dGVuZC5pc1ZhbGlkO1xuICAgICAgICAgIH0gZWxzZVxuICAgICAgICAgICAgcmV0dXJuIHF1ZXN0aW9uLnZhbGlkYXRvclxuICAgICAgICAgICAgICA/ICEhcXVlc3Rpb24udmFsaWRhdG9yKGFucyhxdWVzdGlvbikgYXMgYW55KVxuICAgICAgICAgICAgICA6ICEhYW5zKHF1ZXN0aW9uKTtcbiAgICAgIH1cbiAgICB9KSgpO1xuXG4gICAgY29uc3QgcmVzdWx0ID0gYW5zd2VyZWRBbGwgJiYgaXNGaWVsZEFuc3dlcmVkO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH0sIHRydWUpO1xuXG4gIHJldHVybiB7IGlzVmFsaWQ6ICEhaXNWYWxpZCB9O1xufVxuXG5leHBvcnQgY29uc3QgaXNWYWxpZGF0ZWQgPSAoXG4gIF9hbnN3ZXI6IEFuc3dlckJ5RmllbGQ8eyB0eXBlOiBGb3JtRmllbGRUeXBlcyB9PixcbiAgaXNPcHRpb25hbDogYm9vbGVhbixcbiAgdmFsaWRhdG9yOiAoKHZhbDogYW55KSA9PiBzdHJpbmcgfCBib29sZWFuKSB8IHVuZGVmaW5lZCxcbiAgcmVxdWlyZWRGaWVsZExhYmVsOiBzdHJpbmcsXG4pID0+IHtcbiAgY29uc3QgYW5zd2VyID0gQXJyYXkuaXNBcnJheShfYW5zd2VyKSA/IF9hbnN3ZXJbMF0gOiBfYW5zd2VyO1xuICBpZiAoIWFuc3dlciAmJiAhaXNPcHRpb25hbClcbiAgICByZXR1cm4ge1xuICAgICAgaXNWYWxpZDogZmFsc2UsXG4gICAgICBlcnJvcjogcmVxdWlyZWRGaWVsZExhYmVsLFxuICAgIH07XG4gIGlmICghdmFsaWRhdG9yKVxuICAgIGlmIChBcnJheS5pc0FycmF5KF9hbnN3ZXIpKSB7XG4gICAgICBjb25zdCBbXywgaXNWYWxpZCwgZXJyb3JdID0gX2Fuc3dlcjtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGlzVmFsaWQsXG4gICAgICAgIGVycm9yLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaXNWYWxpZDogdHJ1ZSxcbiAgICAgICAgZXJyb3I6IFwiXCIsXG4gICAgICB9O1xuICAgIH1cbiAgY29uc3QgdmFsaWRhdGlvblJlc3VsdCA9IHZhbGlkYXRvcihfYW5zd2VyKTtcbiAgaWYgKHR5cGVvZiB2YWxpZGF0aW9uUmVzdWx0ID09PSBcInN0cmluZ1wiKVxuICAgIHJldHVybiB7XG4gICAgICBpc1ZhbGlkOiBmYWxzZSxcbiAgICAgIGVycm9yOiB2YWxpZGF0aW9uUmVzdWx0LFxuICAgIH07XG4gIHJldHVybiB7XG4gICAgaXNWYWxpZDogdmFsaWRhdGlvblJlc3VsdCxcbiAgICBlcnJvcjogXCJcIixcbiAgfTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsY0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsVUFBQSxHQUFBRixPQUFBO0FBT3FDLFNBQUFHLFFBQUFDLE1BQUEsRUFBQUMsY0FBQSxRQUFBQyxJQUFBLEdBQUFDLE1BQUEsQ0FBQUQsSUFBQSxDQUFBRixNQUFBLE9BQUFHLE1BQUEsQ0FBQUMscUJBQUEsUUFBQUMsT0FBQSxHQUFBRixNQUFBLENBQUFDLHFCQUFBLENBQUFKLE1BQUEsR0FBQUMsY0FBQSxLQUFBSSxPQUFBLEdBQUFBLE9BQUEsQ0FBQUMsTUFBQSxXQUFBQyxHQUFBLFdBQUFKLE1BQUEsQ0FBQUssd0JBQUEsQ0FBQVIsTUFBQSxFQUFBTyxHQUFBLEVBQUFFLFVBQUEsT0FBQVAsSUFBQSxDQUFBUSxJQUFBLENBQUFDLEtBQUEsQ0FBQVQsSUFBQSxFQUFBRyxPQUFBLFlBQUFILElBQUE7QUFBQSxTQUFBVSxjQUFBQyxNQUFBLGFBQUFDLENBQUEsTUFBQUEsQ0FBQSxHQUFBQyxTQUFBLENBQUFDLE1BQUEsRUFBQUYsQ0FBQSxVQUFBRyxNQUFBLFdBQUFGLFNBQUEsQ0FBQUQsQ0FBQSxJQUFBQyxTQUFBLENBQUFELENBQUEsUUFBQUEsQ0FBQSxPQUFBZixPQUFBLENBQUFJLE1BQUEsQ0FBQWMsTUFBQSxPQUFB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
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = exports.ControlledForm = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _Form = require("./Form.types");
|
|
9
|
+
var _Form2 = require("./Form.hook");
|
|
10
|
+
var _FormField = _interopRequireDefault(require("./FormField"));
|
|
11
|
+
var _OneUIProvider = require("../../context/OneUIProvider");
|
|
12
|
+
const _excluded = ["questions", "initialAnswers"],
|
|
13
|
+
_excluded2 = ["questions", "initialAnswers", "answers"];
|
|
14
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
16
|
+
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; }
|
|
17
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
18
|
+
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; }
|
|
19
|
+
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; }
|
|
20
|
+
function Form(_ref, ref) {
|
|
21
|
+
let {
|
|
22
|
+
questions,
|
|
23
|
+
initialAnswers = {}
|
|
24
|
+
} = _ref,
|
|
25
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
|
26
|
+
const filterOutInitialAnswers = (0, _react.useMemo)(() => {
|
|
27
|
+
const questionIds = questions.map(a => a.id);
|
|
28
|
+
return Object.fromEntries(Object.entries(initialAnswers).filter(_ref2 => {
|
|
29
|
+
let [id] = _ref2;
|
|
30
|
+
return questionIds.includes(id);
|
|
31
|
+
}));
|
|
32
|
+
}, [initialAnswers]);
|
|
33
|
+
const answers = (0, _Form2.useFormAnswers)(filterOutInitialAnswers, props.mode);
|
|
34
|
+
return /*#__PURE__*/_react.default.createElement(ControlledForm, _extends({
|
|
35
|
+
ref: ref,
|
|
36
|
+
questions: questions,
|
|
37
|
+
initialAnswers: initialAnswers,
|
|
38
|
+
answers: answers
|
|
39
|
+
}, props));
|
|
40
|
+
}
|
|
41
|
+
const forwardedRef = /*#__PURE__*/(0, _react.forwardRef)(Form);
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* A new and improved version of the one-ui design form
|
|
45
|
+
*
|
|
46
|
+
* Custom question types can be defined via @type {OnepercentUtility['UIElements']['FormExtension']['fields']}
|
|
47
|
+
*
|
|
48
|
+
* This component displays a form with multiple questions and allows users
|
|
49
|
+
* to enter answers to those questions. It handles validation, different
|
|
50
|
+
* display modes, and manages the form's state.
|
|
51
|
+
**/
|
|
52
|
+
var _default = exports.default = forwardedRef;
|
|
53
|
+
function ControlledFormComp(_ref3, ref) {
|
|
54
|
+
let {
|
|
55
|
+
questions,
|
|
56
|
+
initialAnswers = {},
|
|
57
|
+
answers: answersControl
|
|
58
|
+
} = _ref3,
|
|
59
|
+
props = _objectWithoutProperties(_ref3, _excluded2);
|
|
60
|
+
const {
|
|
61
|
+
mode = _Form.FormMode.WRITE
|
|
62
|
+
} = props;
|
|
63
|
+
const {
|
|
64
|
+
showAllErrors = false
|
|
65
|
+
} = props;
|
|
66
|
+
const {
|
|
67
|
+
answers,
|
|
68
|
+
onAnswerAction,
|
|
69
|
+
isQuestionsAnswered,
|
|
70
|
+
isFilesUploaded
|
|
71
|
+
} = (0, _Form2.useFormState)(questions, answersControl);
|
|
72
|
+
const errors = (0, _Form2.useFieldErrors)(questions, answersControl.answers, showAllErrors);
|
|
73
|
+
const answersArray = (0, _react.useMemo)(() => {
|
|
74
|
+
return questions.map(q => answersControl.answers[q.id]);
|
|
75
|
+
}, [questions.map(a => a.id), answersControl.answers]);
|
|
76
|
+
(0, _react.useEffect)(() => {
|
|
77
|
+
if (props.mode !== _Form.FormMode.READ_ONLY) {
|
|
78
|
+
props.onFormUpdate(answers, isQuestionsAnswered && isFilesUploaded);
|
|
79
|
+
}
|
|
80
|
+
}, [...answersArray, isQuestionsAnswered, isFilesUploaded]);
|
|
81
|
+
(0, _react.useImperativeHandle)(ref, () => ({
|
|
82
|
+
setAnswer(id, val) {
|
|
83
|
+
onAnswerAction(questions.find(q => q.id === id).type, id, val);
|
|
84
|
+
}
|
|
85
|
+
}), []);
|
|
86
|
+
const wrapperClasses = (0, _OneUIProvider.useOneUIConfig)("component.form.fieldWrapper", {});
|
|
87
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, questions.map(q => {
|
|
88
|
+
const targetMode = q.readOnly ? _Form.FormMode.READ_ONLY : mode;
|
|
89
|
+
const classOrComponentWrapper = wrapperClasses["".concat(_Form.FormMode[targetMode], "-").concat(q.type)];
|
|
90
|
+
const WrapperComp = (0, _react.useMemo)(() => typeof classOrComponentWrapper === "function" ? classOrComponentWrapper : _ref4 => {
|
|
91
|
+
let {
|
|
92
|
+
children
|
|
93
|
+
} = _ref4;
|
|
94
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
95
|
+
key: q.id,
|
|
96
|
+
className: "".concat(classOrComponentWrapper || "")
|
|
97
|
+
}, children);
|
|
98
|
+
}, [classOrComponentWrapper]);
|
|
99
|
+
return /*#__PURE__*/_react.default.createElement(WrapperComp, _extends({}, q, {
|
|
100
|
+
value: answersControl.answers[q.id]
|
|
101
|
+
}), targetMode === _Form.FormMode.WRITE ? /*#__PURE__*/_react.default.createElement(_FormField.default, {
|
|
102
|
+
config: q,
|
|
103
|
+
onAnswer: onAnswerAction,
|
|
104
|
+
value: answersControl.answers[q.id],
|
|
105
|
+
error: errors[q.id],
|
|
106
|
+
mode: targetMode
|
|
107
|
+
}) : /*#__PURE__*/_react.default.createElement(_FormField.default, {
|
|
108
|
+
config: q,
|
|
109
|
+
value: answersControl.answers[q.id],
|
|
110
|
+
mode: _Form.FormMode.READ_ONLY
|
|
111
|
+
}));
|
|
112
|
+
}));
|
|
113
|
+
}
|
|
114
|
+
const ControlledForm = exports.ControlledForm = /*#__PURE__*/(0, _react.forwardRef)(ControlledFormComp);
|
|
115
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfRm9ybSIsIl9Gb3JtMiIsIl9Gb3JtRmllbGQiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX09uZVVJUHJvdmlkZXIiLCJfZXhjbHVkZWQiLCJfZXhjbHVkZWQyIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIl9leHRlbmRzIiwiYXNzaWduIiwiYmluZCIsInRhcmdldCIsImkiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJzb3VyY2UiLCJhcHBseSIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsImV4Y2x1ZGVkIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJzb3VyY2VTeW1ib2xLZXlzIiwiaW5kZXhPZiIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwic291cmNlS2V5cyIsImtleXMiLCJGb3JtIiwiX3JlZiIsInJlZiIsInF1ZXN0aW9ucyIsImluaXRpYWxBbnN3ZXJzIiwicHJvcHMiLCJmaWx0ZXJPdXRJbml0aWFsQW5zd2VycyIsInVzZU1lbW8iLCJxdWVzdGlvbklkcyIsIm1hcCIsImEiLCJpZCIsImZyb21FbnRyaWVzIiwiZW50cmllcyIsImZpbHRlciIsIl9yZWYyIiwiaW5jbHVkZXMiLCJhbnN3ZXJzIiwidXNlRm9ybUFuc3dlcnMiLCJtb2RlIiwiY3JlYXRlRWxlbWVudCIsIkNvbnRyb2xsZWRGb3JtIiwiZm9yd2FyZGVkUmVmIiwiZm9yd2FyZFJlZiIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsIkNvbnRyb2xsZWRGb3JtQ29tcCIsIl9yZWYzIiwiYW5zd2Vyc0NvbnRyb2wiLCJGb3JtTW9kZSIsIldSSVRFIiwic2hvd0FsbEVycm9ycyIsIm9uQW5zd2VyQWN0aW9uIiwiaXNRdWVzdGlvbnNBbnN3ZXJlZCIsImlzRmlsZXNVcGxvYWRlZCIsInVzZUZvcm1TdGF0ZSIsImVycm9ycyIsInVzZUZpZWxkRXJyb3JzIiwiYW5zd2Vyc0FycmF5IiwicSIsInVzZUVmZmVjdCIsIlJFQURfT05MWSIsIm9uRm9ybVVwZGF0ZSIsInVzZUltcGVyYXRpdmVIYW5kbGUiLCJzZXRBbnN3ZXIiLCJ2YWwiLCJmaW5kIiwidHlwZSIsIndyYXBwZXJDbGFzc2VzIiwidXNlT25lVUlDb25maWciLCJGcmFnbWVudCIsInRhcmdldE1vZGUiLCJyZWFkT25seSIsImNsYXNzT3JDb21wb25lbnRXcmFwcGVyIiwiY29uY2F0IiwiV3JhcHBlckNvbXAiLCJfcmVmNCIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwidmFsdWUiLCJjb25maWciLCJvbkFuc3dlciIsImVycm9yIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRm9ybS9Gb3JtLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHtcbiAgQ29tcG9uZW50UHJvcHMsXG4gIEZvcndhcmRlZFJlZixcbiAgZm9yd2FyZFJlZixcbiAgUHJvcHNXaXRoQ2hpbGRyZW4sXG4gIHVzZUVmZmVjdCxcbiAgdXNlSW1wZXJhdGl2ZUhhbmRsZSxcbiAgdXNlTWVtbyxcbn0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQge1xuICBBbnN3ZXJzTWFwLFxuICBCYXNlUXVlc3Rpb24sXG4gIEZvcm1Nb2RlLFxuICBGb3JtVmlld1Byb3BzLFxufSBmcm9tIFwiLi9Gb3JtLnR5cGVzXCI7XG5pbXBvcnQge1xuICB1c2VGaWVsZEVycm9ycyxcbiAgdXNlRm9ybSxcbiAgdXNlRm9ybUFuc3dlcnMsXG4gIHVzZUZvcm1TdGF0ZSxcbn0gZnJvbSBcIi4vRm9ybS5ob29rXCI7XG5pbXBvcnQgRm9ybUZpZWxkIGZyb20gXCIuL0Zvcm1GaWVsZFwiO1xuaW1wb3J0IHsgQW5zd2VyQnlGaWVsZCwgRm9ybUZpZWxkVmlldyB9IGZyb20gXCIuL0Zvcm1GaWVsZC9Gb3JtRmllbGQudHlwZXNcIjtcbmltcG9ydCB7IHVzZU9uZVVJQ29uZmlnIH0gZnJvbSBcIi4uLy4uL2NvbnRleHQvT25lVUlQcm92aWRlclwiO1xuXG5leHBvcnQgdHlwZSBGb3JtUmVmPFEgZXh0ZW5kcyBGb3JtRmllbGRWaWV3W10+ID0ge1xuICBzZXRBbnN3ZXI8SSBleHRlbmRzIFFbbnVtYmVyXVtcImlkXCJdPihcbiAgICBxdWVzdGlvbklkOiBJLFxuICAgIGFuczogQW5zd2VyQnlGaWVsZDxRW251bWJlcl0gJiB7IGlkOiBJIH0+LFxuICApOiB2b2lkO1xufTtcblxuZnVuY3Rpb24gRm9ybTxRIGV4dGVuZHMgRm9ybUZpZWxkVmlld1tdPihcbiAgeyBxdWVzdGlvbnMsIGluaXRpYWxBbnN3ZXJzID0ge30sIC4uLnByb3BzIH06IEZvcm1WaWV3UHJvcHM8UT4sXG4gIHJlZjogRm9yd2FyZGVkUmVmPEZvcm1SZWY8UT4+LFxuKSB7XG4gIGNvbnN0IGZpbHRlck91dEluaXRpYWxBbnN3ZXJzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgcXVlc3Rpb25JZHMgPSBxdWVzdGlvbnMubWFwKChhKSA9PiBhLmlkKTtcbiAgICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgT2JqZWN0LmVudHJpZXMoaW5pdGlhbEFuc3dlcnMpLmZpbHRlcigoW2lkXSkgPT4gcXVlc3Rpb25JZHMuaW5jbHVkZXMoaWQpKSxcbiAgICApO1xuICB9LCBbaW5pdGlhbEFuc3dlcnNdKTtcbiAgY29uc3QgYW5zd2VycyA9IHVzZUZvcm1BbnN3ZXJzKFxuICAgIGZpbHRlck91dEluaXRpYWxBbnN3ZXJzIGFzIHR5cGVvZiBpbml0aWFsQW5zd2VycyxcbiAgICBwcm9wcy5tb2RlISxcbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxDb250cm9sbGVkRm9ybVxuICAgICAgcmVmPXtyZWZ9XG4gICAgICBxdWVzdGlvbnM9e3F1ZXN0aW9uc31cbiAgICAgIGluaXRpYWxBbnN3ZXJzPXtpbml0aWFsQW5zd2Vyc31cbiAgICAgIGFuc3dlcnM9e2Fuc3dlcnMgYXMgYW55fVxuICAgICAgey4uLihwcm9wcyBhcyBhbnkpfVxuICAgIC8+XG4gICk7XG59XG5cbmNvbnN0IGZvcndhcmRlZFJlZiA9IGZvcndhcmRSZWYoRm9ybSk7XG5cbi8qKlxuICogQSBuZXcgYW5kIGltcHJvdmVkIHZlcnNpb24gb2YgdGhlIG9uZS11aSBkZXNpZ24gZm9ybVxuICpcbiAqIEN1c3RvbSBxdWVzdGlvbiB0eXBlcyBjYW4gYmUgZGVmaW5lZCB2aWEgQHR5cGUge09uZXBlcmNlbnRVdGlsaXR5WydVSUVsZW1lbnRzJ11bJ0Zvcm1FeHRlbnNpb24nXVsnZmllbGRzJ119XG4gKlxuICogVGhpcyBjb21wb25lbnQgZGlzcGxheXMgYSBmb3JtIHdpdGggbXVsdGlwbGUgcXVlc3Rpb25zIGFuZCBhbGxvd3MgdXNlcnNcbiAqIHRvIGVudGVyIGFuc3dlcnMgdG8gdGhvc2UgcXVlc3Rpb25zLiBJdCBoYW5kbGVzIHZhbGlkYXRpb24sIGRpZmZlcmVudFxuICogZGlzcGxheSBtb2RlcywgYW5kIG1hbmFnZXMgdGhlIGZvcm0ncyBzdGF0ZS5cbiAqKi9cbmV4cG9ydCBkZWZhdWx0IGZvcndhcmRlZFJlZiBhcyB1bmtub3duIGFzIDxRIGV4dGVuZHMgQmFzZVF1ZXN0aW9uW10+KFxuICBwOiBGb3JtVmlld1Byb3BzPFE+ICYgUGljazxDb21wb25lbnRQcm9wczx0eXBlb2YgZm9yd2FyZGVkUmVmPiwgXCJyZWZcIj4sXG4pID0+IFJlYWN0LlJlYWN0RWxlbWVudDtcblxuZnVuY3Rpb24gQ29udHJvbGxlZEZvcm1Db21wPFEgZXh0ZW5kcyBGb3JtRmllbGRWaWV3W10+KFxuICB7XG4gICAgcXVlc3Rpb25zLFxuICAgIGluaXRpYWxBbnN3ZXJzID0ge30sXG4gICAgYW5zd2VyczogYW5zd2Vyc0NvbnRyb2wsXG4gICAgLi4ucHJvcHNcbiAgfTogRm9ybVZpZXdQcm9wczxRPiAmIHtcbiAgICBhbnN3ZXJzOiBSZXR1cm5UeXBlPHR5cGVvZiB1c2VGb3JtQW5zd2VyczxBbnN3ZXJzTWFwPFE+Pj47XG4gIH0sXG4gIHJlZjogRm9yd2FyZGVkUmVmPEZvcm1SZWY8UT4+LFxuKSB7XG4gIGNvbnN0IHsgbW9kZSA9IEZvcm1Nb2RlLldSSVRFIH0gPSBwcm9wcztcbiAgY29uc3QgeyBzaG93QWxsRXJyb3JzID0gZmFsc2UgfSA9IHByb3BzIGFzIHVua25vd24gYXMgRm9ybVZpZXdQcm9wczxRPiAmIHtcbiAgICBtb2RlOiBGb3JtTW9kZS5XUklURTtcbiAgfTtcbiAgY29uc3QgeyBhbnN3ZXJzLCBvbkFuc3dlckFjdGlvbiwgaXNRdWVzdGlvbnNBbnN3ZXJlZCwgaXNGaWxlc1VwbG9hZGVkIH0gPVxuICAgIHVzZUZvcm1TdGF0ZShxdWVzdGlvbnMsIGFuc3dlcnNDb250cm9sIGFzIGFueSk7XG4gIGNvbnN0IGVycm9ycyA9IHVzZUZpZWxkRXJyb3JzKFxuICAgIHF1ZXN0aW9ucyxcbiAgICBhbnN3ZXJzQ29udHJvbC5hbnN3ZXJzLFxuICAgIHNob3dBbGxFcnJvcnMsXG4gICk7XG5cbiAgY29uc3QgYW5zd2Vyc0FycmF5ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIHF1ZXN0aW9ucy5tYXAoXG4gICAgICAocSkgPT5cbiAgICAgICAgYW5zd2Vyc0NvbnRyb2wuYW5zd2Vyc1txLmlkIGFzIGtleW9mIHR5cGVvZiBhbnN3ZXJzQ29udHJvbC5hbnN3ZXJzXSxcbiAgICApO1xuICB9LCBbcXVlc3Rpb25zLm1hcCgoYSkgPT4gYS5pZCksIGFuc3dlcnNDb250cm9sLmFuc3dlcnNdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChwcm9wcy5tb2RlICE9PSBGb3JtTW9kZS5SRUFEX09OTFkpIHtcbiAgICAgIHByb3BzLm9uRm9ybVVwZGF0ZShcbiAgICAgICAgYW5zd2VycyBhcyBhbnksXG4gICAgICAgIGlzUXVlc3Rpb25zQW5zd2VyZWQgJiYgaXNGaWxlc1VwbG9hZGVkLFxuICAgICAgKTtcbiAgICB9XG4gIH0sIFsuLi5hbnN3ZXJzQXJyYXksIGlzUXVlc3Rpb25zQW5zd2VyZWQsIGlzRmlsZXNVcGxvYWRlZF0pO1xuXG4gIHVzZUltcGVyYXRpdmVIYW5kbGUoXG4gICAgcmVmLFxuICAgICgpID0+ICh7XG4gICAgICBzZXRBbnN3ZXIoaWQsIHZhbCkge1xuICAgICAgICBvbkFuc3dlckFjdGlvbihcbiAgICAgICAgICBxdWVzdGlvbnMuZmluZCgocSkgPT4gcS5pZCA9PT0gaWQpIS50eXBlLFxuICAgICAgICAgIGlkLFxuICAgICAgICAgIHZhbCBhcyBhbnksXG4gICAgICAgICk7XG4gICAgICB9LFxuICAgIH0pLFxuICAgIFtdLFxuICApO1xuXG4gIGNvbnN0IHdyYXBwZXJDbGFzc2VzID0gdXNlT25lVUlDb25maWcoXCJjb21wb25lbnQuZm9ybS5maWVsZFdyYXBwZXJcIiwge30pO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIHtxdWVzdGlvbnMubWFwKChxKSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldE1vZGUgPSBxLnJlYWRPbmx5ID8gRm9ybU1vZGUuUkVBRF9PTkxZIDogbW9kZTtcbiAgICAgICAgY29uc3QgY2xhc3NPckNvbXBvbmVudFdyYXBwZXIgPVxuICAgICAgICAgIHdyYXBwZXJDbGFzc2VzW1xuICAgICAgICAgICAgYCR7Rm9ybU1vZGVbdGFyZ2V0TW9kZV0gYXMga2V5b2YgdHlwZW9mIEZvcm1Nb2RlfS0ke3EudHlwZX1gXG4gICAgICAgICAgXTtcbiAgICAgICAgY29uc3QgV3JhcHBlckNvbXAgPSB1c2VNZW1vKFxuICAgICAgICAgICgpID0+XG4gICAgICAgICAgICB0eXBlb2YgY2xhc3NPckNvbXBvbmVudFdyYXBwZXIgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICAgICAgICA/IGNsYXNzT3JDb21wb25lbnRXcmFwcGVyXG4gICAgICAgICAgICAgIDogKHsgY2hpbGRyZW4gfTogUHJvcHNXaXRoQ2hpbGRyZW4pID0+IHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICBrZXk9e3EuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtjbGFzc09yQ29tcG9uZW50V3JhcHBlciB8fCBcIlwifWB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgIFtjbGFzc09yQ29tcG9uZW50V3JhcHBlcl0sXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPFdyYXBwZXJDb21wXG4gICAgICAgICAgICB7Li4ucX1cbiAgICAgICAgICAgIHZhbHVlPXtcbiAgICAgICAgICAgICAgYW5zd2Vyc0NvbnRyb2wuYW5zd2Vyc1tcbiAgICAgICAgICAgICAgICBxLmlkIGFzIGtleW9mIHR5cGVvZiBhbnN3ZXJzQ29udHJvbC5hbnN3ZXJzXG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7dGFyZ2V0TW9kZSA9PT0gRm9ybU1vZGUuV1JJVEUgPyAoXG4gICAgICAgICAgICAgIDxGb3JtRmllbGRcbiAgICAgICAgICAgICAgICBjb25maWc9e3F9XG4gICAgICAgICAgICAgICAgb25BbnN3ZXI9e29uQW5zd2VyQWN0aW9ufVxuICAgICAgICAgICAgICAgIHZhbHVlPXtcbiAgICAgICAgICAgICAgICAgIGFuc3dlcnNDb250cm9sLmFuc3dlcnNbXG4gICAgICAgICAgICAgICAgICAgIHEuaWQgYXMga2V5b2YgdHlwZW9mIGFuc3dlcnNDb250cm9sLmFuc3dlcnNcbiAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZXJyb3I9eyhlcnJvcnMgYXMgYW55KVtxLmlkXX1cbiAgICAgICAgICAgICAgICBtb2RlPXt0YXJnZXRNb2RlfVxuICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPXtwcm9wc1tcImRhdGEtdGVzdGlkXCJdPy4ocS5pZCl9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8Rm9ybUZpZWxkXG4gICAgICAgICAgICAgICAgY29uZmlnPXtxfVxuICAgICAgICAgICAgICAgIHZhbHVlPXtcbiAgICAgICAgICAgICAgICAgIGFuc3dlcnNDb250cm9sLmFuc3dlcnNbXG4gICAgICAgICAgICAgICAgICAgIHEuaWQgYXMga2V5b2YgdHlwZW9mIGFuc3dlcnNDb250cm9sLmFuc3dlcnNcbiAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbW9kZT17Rm9ybU1vZGUuUkVBRF9PTkxZfVxuICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPXtwcm9wc1tcImRhdGEtdGVzdGlkXCJdPy4ocS5pZCl9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvV3JhcHBlckNvbXA+XG4gICAgICAgICk7XG4gICAgICB9KX1cbiAgICA8Lz5cbiAgKTtcbn1cblxuZXhwb3J0IGNvbnN0IENvbnRyb2xsZWRGb3JtID0gZm9yd2FyZFJlZihDb250cm9sbGVkRm9ybUNvbXApO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFTQSxJQUFBQyxLQUFBLEdBQUFELE9BQUE7QUFNQSxJQUFBRSxNQUFB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
|
|
File without changes
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.StepStatus = exports.INVESTOR_PROFILE = exports.FormStep = exports.FormMode = exports.DataStatus = void 0;
|
|
7
|
+
let DataStatus = exports.DataStatus = /*#__PURE__*/function (DataStatus) {
|
|
8
|
+
DataStatus[DataStatus["PENDING"] = 0] = "PENDING";
|
|
9
|
+
DataStatus[DataStatus["INCOMPLETE"] = 1] = "INCOMPLETE";
|
|
10
|
+
DataStatus[DataStatus["COMPLETE"] = 2] = "COMPLETE";
|
|
11
|
+
DataStatus[DataStatus["ERROR"] = 3] = "ERROR";
|
|
12
|
+
return DataStatus;
|
|
13
|
+
}({});
|
|
14
|
+
let StepStatus = exports.StepStatus = /*#__PURE__*/function (StepStatus) {
|
|
15
|
+
StepStatus[StepStatus["INCOMPLETE"] = 0] = "INCOMPLETE";
|
|
16
|
+
StepStatus[StepStatus["COMPLETED"] = 1] = "COMPLETED";
|
|
17
|
+
StepStatus[StepStatus["CURRENT"] = 2] = "CURRENT";
|
|
18
|
+
StepStatus[StepStatus["ERROR"] = 3] = "ERROR";
|
|
19
|
+
return StepStatus;
|
|
20
|
+
}({});
|
|
21
|
+
let FormStep = exports.FormStep = /*#__PURE__*/function (FormStep) {
|
|
22
|
+
FormStep[FormStep["PERSONAL_DATA"] = 0] = "PERSONAL_DATA";
|
|
23
|
+
FormStep[FormStep["ADDITIONAL_DATA"] = 1] = "ADDITIONAL_DATA";
|
|
24
|
+
FormStep[FormStep["DOCUMENTS"] = 2] = "DOCUMENTS";
|
|
25
|
+
FormStep[FormStep["INVEST_PROFILE"] = 3] = "INVEST_PROFILE";
|
|
26
|
+
FormStep[FormStep["CONTRACTS"] = 4] = "CONTRACTS";
|
|
27
|
+
return FormStep;
|
|
28
|
+
}({});
|
|
29
|
+
let FormMode = exports.FormMode = /*#__PURE__*/function (FormMode) {
|
|
30
|
+
FormMode[FormMode["READ_ONLY"] = 0] = "READ_ONLY";
|
|
31
|
+
FormMode[FormMode["WRITE"] = 1] = "WRITE";
|
|
32
|
+
return FormMode;
|
|
33
|
+
}({});
|
|
34
|
+
let INVESTOR_PROFILE = exports.INVESTOR_PROFILE = /*#__PURE__*/function (INVESTOR_PROFILE) {
|
|
35
|
+
INVESTOR_PROFILE[INVESTOR_PROFILE["RESTRICTED"] = 0] = "RESTRICTED";
|
|
36
|
+
INVESTOR_PROFILE[INVESTOR_PROFILE["LIMITED"] = 1] = "LIMITED";
|
|
37
|
+
INVESTOR_PROFILE[INVESTOR_PROFILE["UNLIMITED"] = 2] = "UNLIMITED";
|
|
38
|
+
return INVESTOR_PROFILE;
|
|
39
|
+
}({});
|
|
40
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEYXRhU3RhdHVzIiwiZXhwb3J0cyIsIlN0ZXBTdGF0dXMiLCJGb3JtU3RlcCIsIkZvcm1Nb2RlIiwiSU5WRVNUT1JfUFJPRklMRSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0Zvcm0vRm9ybS50eXBlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZWxlY3RJdGVtIH0gZnJvbSBcIi4uL1NlbGVjdC9TZWxlY3RcIjtcbmltcG9ydCB7IFVwbG9hZFRhc2sgfSBmcm9tIFwiZmlyZWJhc2Uvc3RvcmFnZVwiO1xuaW1wb3J0IHsgUmVhY3RFbGVtZW50IH0gZnJvbSBcInJlYWN0XCI7XG5cbmltcG9ydCB7XG4gIEFuc3dlckFjdGlvbixcbiAgQW5zd2VyQnlGaWVsZCxcbiAgRm9ybUZpZWxkLFxufSBmcm9tIFwiLi9Gb3JtRmllbGQvRm9ybUZpZWxkLnR5cGVzXCI7XG5cbmV4cG9ydCB0eXBlIEJhc2VRdWVzdGlvbiA9IHsgaWQ6IHN0cmluZzsgdHlwZTogRm9ybUZpZWxkW1widHlwZVwiXSB9O1xuZXhwb3J0IHR5cGUgRm9ybVN0YXRlPFEgZXh0ZW5kcyBCYXNlUXVlc3Rpb25bXSA9IFtdPiA9IFtcbiAgYW5zd2VyczogQW5zd2Vyc01hcDxRPixcbiAgaXNWYWxpZDogYm9vbGVhbixcbl07XG5cbmV4cG9ydCBlbnVtIERhdGFTdGF0dXMge1xuICAvKiogRm9ybSBpcyBlbXB0eSAqL1xuICBQRU5ESU5HLFxuICAvKiogRm9ybSBpcyBwYXJ0aWFsbHkgZmlsbGVkICovXG4gIElOQ09NUExFVEUsXG4gIC8qKiBGb3JtIGlzIGNvbXBsZXRlZCAqL1xuICBDT01QTEVURSxcbiAgLyoqIEZvcm0gaGFzIGVycm9yICovXG4gIEVSUk9SLFxufVxuXG5leHBvcnQgZW51bSBTdGVwU3RhdHVzIHtcbiAgLyoqIFdoZW4gdGhlIGRhdGEgaXMgZW1wdHkgYW5kIG5lZWRzIHRvIGJlIGZpbGxlZCAqL1xuICBJTkNPTVBMRVRFLFxuICAvKiogV2hlbiBkYXRhIGhhcyBhbHJlYWR5IGJlZW4gZmlsbGVkICovXG4gIENPTVBMRVRFRCxcbiAgLyoqIFdoZW4gdGhlIHN0ZXAgaXMgdGhlIGN1cnJlbnQgc2VsZWN0ZWQgKi9cbiAgQ1VSUkVOVCxcbiAgLyoqIFdoZW4gdGhlIHN0ZXAgaGFzIGVycm9yICovXG4gIEVSUk9SLFxufVxuXG5leHBvcnQgZW51bSBGb3JtU3RlcCB7XG4gIFBFUlNPTkFMX0RBVEEsXG4gIEFERElUSU9OQUxfREFUQSxcbiAgRE9DVU1FTlRTLFxuICBJTlZFU1RfUFJPRklMRSxcbiAgQ09OVFJBQ1RTLFxufVxuXG5leHBvcnQgZW51bSBGb3JtTW9kZSB7XG4gIFJFQURfT05MWSxcbiAgV1JJVEUsXG59XG5cbmV4cG9ydCB0eXBlIEZvcm1GaWVsZFZpZXcgPSBGb3JtRmllbGQgJiB7XG4gIHRpdGxlOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBGb3JtUHJvcHMgPSB7XG4gIG9uRm9ybVN1Ym1pdHRlZDogKCkgPT4gdm9pZDtcbiAgc2F2ZWRBbnN3ZXJzOiBQYXJ0aWFsPHtcbiAgICBbcXVlc3Rpb25JZDogc3RyaW5nXTogQW5zd2VyQnlGaWVsZDxGb3JtRmllbGQ+O1xuICB9PjtcbiAgc3RhcnRBdDogRm9ybVN0ZXA7XG4gIG9uR29CYWNrOiAoKSA9PiB2b2lkO1xufTtcbmV4cG9ydCB0eXBlIFN0ZXBGb3JtUHJvcHMgPSBQaWNrPEZvcm1Qcm9wcywgXCJzYXZlZEFuc3dlcnNcIj4gJiB7XG4gIHN0ZXA6IEZvcm1TdGVwO1xufSAmIE1vZGVQcm9wcztcblxuZXhwb3J0IHR5cGUgTW9kZVByb3BzID1cbiAgfCB7XG4gICAgICBtb2RlOiBGb3JtTW9kZS5SRUFEX09OTFk7XG4gICAgfVxuICB8IHtcbiAgICAgIG1vZGU6IEZvcm1Nb2RlLldSSVRFO1xuICAgICAgb25GaW5pc2g6ICgpID0+IHZvaWQ7XG4gICAgICBvbkNhbmNlbDogKCkgPT4gdm9pZDtcbiAgICB9O1xuZXhwb3J0IHR5cGUgRm9ybVZpZXdQcm9wczxRIGV4dGVuZHMgQmFzZVF1ZXN0aW9uW10+ID0ge1xuICBxdWVzdGlvbnM6IFE7XG4gIFwiZGF0YS10ZXN0aWRcIj86IChpZDogUVtudW1iZXJdW1wiaWRcIl0pID0+IHN0cmluZztcbn0gJiAoXG4gIHwge1xuICAgICAgbW9kZT86IEZvcm1Nb2RlLldSSVRFO1xuICAgICAgaW5pdGlhbEFuc3dlcnM/OiBBbnN3ZXJzTWFwPFE+O1xuICAgICAgb25Gb3JtVXBkYXRlOiAoYW5zd2VyczogQW5zd2Vyc01hcDxRPiwgaXNWYWxpZDogYm9vbGVhbikgPT4gdm9pZDtcbiAgICAgIC8qKiBXaGVuIHByb3ZpZGVkICh0cnVlKSBzaG93IGFsbCBjdXJyZW50IGVycm9ycyB0aGF0IGFyZSBibG9ja2luZyB0aGUgY29tcGxldGlvbiBvZiB0aGUgZm9ybSAqL1xuICAgICAgc2hvd0FsbEVycm9ycz86IGJvb2xlYW47XG4gICAgfVxuICB8IHtcbiAgICAgIGluaXRpYWxBbnN3ZXJzOiBBbnN3ZXJzTWFwPFE+O1xuICAgICAgbW9kZTogRm9ybU1vZGUuUkVBRF9PTkxZO1xuICAgIH1cbik7XG5cbmV4cG9ydCB0eXBlIEFuc3dlcnNNYXA8XG4gIFEgZXh0ZW5kcyBSZWFkb25seTxCYXNlUXVlc3Rpb25bXT4gPSBbXG4gICAgeyB0eXBlOiBCYXNlUXVlc3Rpb25bXCJ0eXBlXCJdOyBpZDogc3RyaW5nIH0sXG4gIF0sXG4+ID0gUGFydGlhbDx7XG4gIFtxdWVzdGlvbklkIGluIFFbbnVtYmVyXVtcImlkXCJdXTogQW5zd2VyQnlGaWVsZDxcbiAgICBRW251bWJlcl0gJiB7IGlkOiBxdWVzdGlvbklkIH1cbiAgPjtcbn0+O1xuXG5leHBvcnQgZW51bSBJTlZFU1RPUl9QUk9GSUxFIHtcbiAgLyoqXG4gICAqIFVzZXIgY2FuIG9ubHkgc3BlbmQgdXAgdG8gMjBrXG4gICAqL1xuICBSRVNUUklDVEVELFxuICAvKipcbiAgICogVXNlciBjYW4gb25seSBzcGVuZCB1cCB0byAxMCUgb2YgaXQncyBpbmNvbWVcbiAgICovXG4gIExJTUlURUQsXG4gIC8qKlxuICAgKiBVc2VyIGRvZXNuJ3QgaGF2ZSByZXN0cmljdGlvbnNcbiAgICovXG4gIFVOTElNSVRFRCxcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0lBZ0JZQSxVQUFVLEdBQUFDLE9BQUEsQ0FBQUQsVUFBQSwwQkFBVkEsVUFBVTtFQUFWQSxVQUFVLENBQVZBLFVBQVU7RUFBVkEsVUFBVSxDQUFWQSxVQUFVO0VBQVZBLFVBQVUsQ0FBVkEsVUFBVTtFQUFWQSxVQUFVLENBQVZBLFVBQVU7RUFBQSxPQUFWQSxVQUFVO0FBQUE7QUFBQSxJQVdWRSxVQUFVLEdBQUFELE9BQUEsQ0FBQUMsVUFBQSwwQkFBVkEsVUFBVTtFQUFWQSxVQUFVLENBQVZBLFVBQVU7RUFBVkEsVUFBVSxDQUFWQSxVQUFVO0VBQVZBLFVBQVUsQ0FBVkEsVUFBVTtFQUFWQSxVQUFVLENBQVZBLFVBQVU7RUFBQSxPQUFWQSxVQUFVO0FBQUE7QUFBQSxJQVdWQyxRQUFRLEdBQUFGLE9BQUEsQ0FBQUUsUUFBQSwwQkFBUkEsUUFBUTtFQUFSQSxRQUFRLENBQVJBLFFBQVE7RUFBUkEsUUFBUSxDQUFSQSxRQUFRO0VBQVJBLFFBQVEsQ0FBUkEsUUFBUTtFQUFSQSxRQUFRLENBQVJBLFFBQVE7RUFBUkEsUUFBUSxDQUFSQSxRQUFRO0VBQUEsT0FBUkEsUUFBUTtBQUFBO0FBQUEsSUFRUkMsUUFBUSxHQUFBSCxPQUFBLENBQUFHLFFBQUEsMEJBQVJBLFFBQVE7RUFBUkEsUUFBUSxDQUFSQSxRQUFRO0VBQVJBLFFBQVEsQ0FBUkEsUUFBUTtFQUFBLE9BQVJBLFFBQVE7QUFBQTtBQUFBLElBeURSQyxnQkFBZ0IsR0FBQUosT0FBQSxDQUFBSSxnQkFBQSwwQkFBaEJBLGdCQUFnQjtFQUFoQkEsZ0JBQWdCLENBQWhCQSxnQkFBZ0I7RUFBaEJBLGdCQUFnQixDQUFoQkEsZ0JBQWdCO0VBQWhCQSxnQkFBZ0IsQ0FBaEJBLGdCQUFnQjtFQUFBLE9BQWhCQSxnQkFBZ0I7QUFBQSJ9
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.dateFieldValidatorFactory = void 0;
|
|
7
|
+
exports.default = dateFieldFactory;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _reactInputMask = _interopRequireDefault(require("@mona-health/react-input-mask"));
|
|
10
|
+
var _Text = _interopRequireDefault(require("../../../../Text"));
|
|
11
|
+
var _OneUIProvider = require("../../../../../context/OneUIProvider");
|
|
12
|
+
var _Input = _interopRequireDefault(require("../../../../Input"));
|
|
13
|
+
var _Form = require("../../../Form.hook");
|
|
14
|
+
const _excluded = ["onAnswer", "question", "value", "error"];
|
|
15
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
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
|
+
/**
|
|
19
|
+
* Allows inputing a date
|
|
20
|
+
**/
|
|
21
|
+
function dateFieldFactory(dateFormat) {
|
|
22
|
+
return function DateField(_ref) {
|
|
23
|
+
var _input$placeholder;
|
|
24
|
+
let {
|
|
25
|
+
onAnswer,
|
|
26
|
+
question,
|
|
27
|
+
value,
|
|
28
|
+
error
|
|
29
|
+
} = _ref,
|
|
30
|
+
input = _objectWithoutProperties(_ref, _excluded);
|
|
31
|
+
const {
|
|
32
|
+
titleVariant
|
|
33
|
+
} = (0, _OneUIProvider.useOneUIConfig)("component.form");
|
|
34
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Text.default, {
|
|
35
|
+
type: titleVariant
|
|
36
|
+
}, question.title), /*#__PURE__*/_react.default.createElement(_reactInputMask.default, {
|
|
37
|
+
mask: dateFormat,
|
|
38
|
+
value: value,
|
|
39
|
+
onChange: _ref2 => {
|
|
40
|
+
let {
|
|
41
|
+
target: {
|
|
42
|
+
value
|
|
43
|
+
}
|
|
44
|
+
} = _ref2;
|
|
45
|
+
onAnswer("date", question.id, value);
|
|
46
|
+
}
|
|
47
|
+
}, /*#__PURE__*/_react.default.createElement(_Input.default, {
|
|
48
|
+
placeholder: (_input$placeholder = input.placeholder) !== null && _input$placeholder !== void 0 ? _input$placeholder : question.title,
|
|
49
|
+
error: error
|
|
50
|
+
})));
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
const parseDate = (formattedDate, format) => {
|
|
54
|
+
const howManyParts = format.split("/");
|
|
55
|
+
const providedDate = formattedDate;
|
|
56
|
+
const dateParts = providedDate.split("/").map(Number).reverse();
|
|
57
|
+
if (dateParts.length < howManyParts.length) return false;
|
|
58
|
+
const [year, month, day = 1] = dateParts;
|
|
59
|
+
if (month > 12) return false;
|
|
60
|
+
if (day > 31) return false;
|
|
61
|
+
const parsedDate = new Date(year, month - 1, day);
|
|
62
|
+
return parsedDate;
|
|
63
|
+
};
|
|
64
|
+
const dateFieldValidatorFactory = (invalidDateLabel, requiredFieldLabel, format) => answer => {
|
|
65
|
+
const providedDate = answer || "";
|
|
66
|
+
const parsedDate = parseDate(providedDate, format);
|
|
67
|
+
if (!parsedDate) return {
|
|
68
|
+
isValid: false,
|
|
69
|
+
error: invalidDateLabel
|
|
70
|
+
};
|
|
71
|
+
const dateValidation = (0, _Form.isValidated)(providedDate, false, undefined, requiredFieldLabel);
|
|
72
|
+
return dateValidation;
|
|
73
|
+
};
|
|
74
|
+
exports.dateFieldValidatorFactory = dateFieldValidatorFactory;
|
|
75
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9yZWFjdElucHV0TWFzayIsIl9UZXh0IiwiX09uZVVJUHJvdmlkZXIiLCJfSW5wdXQiLCJfRm9ybSIsIl9leGNsdWRlZCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwic291cmNlIiwiZXhjbHVkZWQiLCJ0YXJnZXQiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZSIsImtleSIsImkiLCJPYmplY3QiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJzb3VyY2VTeW1ib2xLZXlzIiwibGVuZ3RoIiwiaW5kZXhPZiIsInByb3RvdHlwZSIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwiY2FsbCIsInNvdXJjZUtleXMiLCJrZXlzIiwiZGF0ZUZpZWxkRmFjdG9yeSIsImRhdGVGb3JtYXQiLCJEYXRlRmllbGQiLCJfcmVmIiwiX2lucHV0JHBsYWNlaG9sZGVyIiwib25BbnN3ZXIiLCJxdWVzdGlvbiIsInZhbHVlIiwiZXJyb3IiLCJpbnB1dCIsInRpdGxlVmFyaWFudCIsInVzZU9uZVVJQ29uZmlnIiwiY3JlYXRlRWxlbWVudCIsIkZyYWdtZW50IiwidHlwZSIsInRpdGxlIiwibWFzayIsIm9uQ2hhbmdlIiwiX3JlZjIiLCJpZCIsInBsYWNlaG9sZGVyIiwicGFyc2VEYXRlIiwiZm9ybWF0dGVkRGF0ZSIsImZvcm1hdCIsImhvd01hbnlQYXJ0cyIsInNwbGl0IiwicHJvdmlkZWREYXRlIiwiZGF0ZVBhcnRzIiwibWFwIiwiTnVtYmVyIiwicmV2ZXJzZSIsInllYXIiLCJtb250aCIsImRheSIsInBhcnNlZERhdGUiLCJEYXRlIiwiZGF0ZUZpZWxkVmFsaWRhdG9yRmFjdG9yeSIsImludmFsaWREYXRlTGFiZWwiLCJyZXF1aXJlZEZpZWxkTGFiZWwiLCJhbnN3ZXIiLCJpc1ZhbGlkIiwiZGF0ZVZhbGlkYXRpb24iLCJpc1ZhbGlkYXRlZCIsInVuZGVmaW5lZCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9Gb3JtL0Zvcm1GaWVsZC9FeHRlbnNpb25zL0RhdGVGaWVsZC9EYXRlRmllbGQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnRQcm9wcywgUmVhY3ROb2RlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgSW5wdXRNYXNrIGZyb20gXCJAbW9uYS1oZWFsdGgvcmVhY3QtaW5wdXQtbWFza1wiO1xuaW1wb3J0IFRleHQgZnJvbSBcIi4uLy4uLy4uLy4uL1RleHRcIjtcbmltcG9ydCB7IHVzZU9uZVVJQ29uZmlnIH0gZnJvbSBcIi4uLy4uLy4uLy4uLy4uL2NvbnRleHQvT25lVUlQcm92aWRlclwiO1xuaW1wb3J0IHsgQW5zd2VyQnlGaWVsZCwgR2VuZXJpY0Zvcm1GaWVsZFByb3BzIH0gZnJvbSBcIi4uLy4uL0Zvcm1GaWVsZC50eXBlc1wiO1xuaW1wb3J0IElucHV0IGZyb20gXCIuLi8uLi8uLi8uLi9JbnB1dFwiO1xuaW1wb3J0IHsgaXNWYWxpZGF0ZWQgfSBmcm9tIFwiLi4vLi4vLi4vRm9ybS5ob29rXCI7XG5cbi8qKlxuICogQWxsb3dzIGlucHV0aW5nIGEgZGF0ZVxuICoqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZGF0ZUZpZWxkRmFjdG9yeShkYXRlRm9ybWF0OiBzdHJpbmcpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIERhdGVGaWVsZCh7XG4gICAgb25BbnN3ZXIsXG4gICAgcXVlc3Rpb24sXG4gICAgdmFsdWUsXG4gICAgZXJyb3IsXG4gICAgLi4uaW5wdXRcbiAgfTogR2VuZXJpY0Zvcm1GaWVsZFByb3BzPFwiZGF0ZVwiPiAmXG4gICAgUGljazxDb21wb25lbnRQcm9wczx0eXBlb2YgSW5wdXQ+LCBcImRhdGEtdGVzdGlkXCIgfCBcInBsYWNlaG9sZGVyXCI+KSB7XG4gICAgY29uc3QgeyB0aXRsZVZhcmlhbnQgfSA9IHVzZU9uZVVJQ29uZmlnKFwiY29tcG9uZW50LmZvcm1cIik7XG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxUZXh0IHR5cGU9e3RpdGxlVmFyaWFudH0+e3F1ZXN0aW9uLnRpdGxlfTwvVGV4dD5cbiAgICAgICAgPElucHV0TWFza1xuICAgICAgICAgIG1hc2s9e2RhdGVGb3JtYXR9XG4gICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgIG9uQ2hhbmdlPXsoeyB0YXJnZXQ6IHsgdmFsdWUgfSB9OiBhbnkpID0+IHtcbiAgICAgICAgICAgIG9uQW5zd2VyKFwiZGF0ZVwiLCBxdWVzdGlvbi5pZCwgdmFsdWUgYXMgc3RyaW5nKTtcbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAgPElucHV0XG4gICAgICAgICAgICBwbGFjZWhvbGRlcj17aW5wdXQucGxhY2Vob2xkZXIgPz8gcXVlc3Rpb24udGl0bGV9XG4gICAgICAgICAgICBlcnJvcj17ZXJyb3J9XG4gICAgICAgICAgICBkYXRhLXRlc3RpZD17aW5wdXRbXCJkYXRhLXRlc3RpZFwiXX1cbiAgICAgICAgICAvPlxuICAgICAgICA8L0lucHV0TWFzaz5cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG59XG5cbmNvbnN0IHBhcnNlRGF0ZSA9IChmb3JtYXR0ZWREYXRlOiBzdHJpbmcsIGZvcm1hdDogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IGhvd01hbnlQYXJ0cyA9IGZvcm1hdC5zcGxpdChcIi9cIik7XG4gIGNvbnN0IHByb3ZpZGVkRGF0ZSA9IGZvcm1hdHRlZERhdGU7XG4gIGNvbnN0IGRhdGVQYXJ0cyA9IHByb3ZpZGVkRGF0ZS5zcGxpdChcIi9cIikubWFwKE51bWJlcikucmV2ZXJzZSgpO1xuICBpZiAoZGF0ZVBhcnRzLmxlbmd0aCA8IGhvd01hbnlQYXJ0cy5sZW5ndGgpIHJldHVybiBmYWxzZTtcbiAgY29uc3QgW3llYXIsIG1vbnRoLCBkYXkgPSAxXSA9IGRhdGVQYXJ0cztcbiAgaWYgKG1vbnRoID4gMTIpIHJldHVybiBmYWxzZTtcbiAgaWYgKGRheSA+IDMxKSByZXR1cm4gZmFsc2U7XG4gIGNvbnN0IHBhcnNlZERhdGUgPSBuZXcgRGF0ZSh5ZWFyLCBtb250aCAtIDEsIGRheSk7XG5cbiAgcmV0dXJuIHBhcnNlZERhdGU7XG59O1xuXG5leHBvcnQgY29uc3QgZGF0ZUZpZWxkVmFsaWRhdG9yRmFjdG9yeSA9XG4gIChpbnZhbGlkRGF0ZUxhYmVsOiBzdHJpbmcsIHJlcXVpcmVkRmllbGRMYWJlbDogc3RyaW5nLCBmb3JtYXQ6IHN0cmluZykgPT5cbiAgKGFuc3dlcjogQW5zd2VyQnlGaWVsZDx7IHR5cGU6IFwiZGF0ZVwiIH0+KSA9PiB7XG4gICAgY29uc3QgcHJvdmlkZWREYXRlID0gYW5zd2VyIHx8IFwiXCI7XG4gICAgY29uc3QgcGFyc2VkRGF0ZSA9IHBhcnNlRGF0ZShwcm92aWRlZERhdGUsIGZvcm1hdCk7XG5cbiAgICBpZiAoIXBhcnNlZERhdGUpXG4gICAgICByZXR1cm4ge1xuICAgICAgICBpc1ZhbGlkOiBmYWxzZSxcbiAgICAgICAgZXJyb3I6IGludmFsaWREYXRlTGFiZWwsXG4gICAgICB9O1xuICAgIGNvbnN0IGRhdGVWYWxpZGF0aW9uID0gaXNWYWxpZGF0ZWQoXG4gICAgICBwcm92aWRlZERhdGUsXG4gICAgICBmYWxzZSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIHJlcXVpcmVkRmllbGRMYWJlbFxuICAgICk7XG4gICAgcmV0dXJuIGRhdGVWYWxpZGF0aW9uO1xuICB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsZUFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsS0FBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsY0FBQSxHQUFBSCxPQUFBO0FBRUEsSUFBQUksTUFBQSxHQUFBTCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUssS0FBQSxH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
|
|
File without changes
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _exportNames = {};
|
|
7
|
+
Object.defineProperty(exports, "default", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function () {
|
|
10
|
+
return _DateField.default;
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
var _DateField = _interopRequireWildcard(require("./DateField"));
|
|
14
|
+
Object.keys(_DateField).forEach(function (key) {
|
|
15
|
+
if (key === "default" || key === "__esModule") return;
|
|
16
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
17
|
+
if (key in exports && exports[key] === _DateField[key]) return;
|
|
18
|
+
Object.defineProperty(exports, key, {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () {
|
|
21
|
+
return _DateField[key];
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
26
|
+
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; }
|
|
27
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfRGF0ZUZpZWxkIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJyZXF1aXJlIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJfZXhwb3J0TmFtZXMiLCJleHBvcnRzIiwiZGVmaW5lUHJvcGVydHkiLCJlbnVtZXJhYmxlIiwiZ2V0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImRlc2MiLCJzZXQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9Gb3JtL0Zvcm1GaWVsZC9FeHRlbnNpb25zL0RhdGVGaWVsZC9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgZGVmYXVsdCB9IGZyb20gXCIuL0RhdGVGaWVsZFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vRGF0ZUZpZWxkXCI7Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxVQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFKLFVBQUEsRUFBQUssT0FBQSxXQUFBQyxHQUFBO0VBQUEsSUFBQUEsR0FBQSxrQkFBQUEsR0FBQTtFQUFBLElBQUFILE1BQUEsQ0FBQUksU0FBQSxDQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQUMsWUFBQSxFQUFBSixHQUFBO0VBQUEsSUFBQUEsR0FBQSxJQUFBSyxPQUFBLElBQUFBLE9BQUEsQ0FBQUwsR0FBQSxNQUFBTixVQUFBLENBQUFNLEdBQUE7RUFBQUgsTUFBQSxDQUFBUyxjQUFBLENBQUFELE9BQUEsRUFBQUwsR0FBQTtJQUFBTyxVQUFBO0lBQUFDLEdBQUEsV0FBQUEsQ0FBQTtNQUFBLE9BQUFkLFVBQUEsQ0FBQU0sR0FBQTtJQUFBO0VBQUE7QUFBQTtBQUE0QixTQUFBUyx5QkFBQUMsV0FBQSxlQUFBQyxPQUFBLGtDQUFBQyxpQkFBQSxPQUFBRCxPQUFBLFFBQUFFLGdCQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEsQ0FBQUMsV0FBQSxXQUFBQSxXQUFBLEdBQUFHLGdCQUFBLEdBQUFELGlCQUFBLEtBQUFGLFdBQUE7QUFBQSxTQUFBZix3QkFBQW1CLEdBQUEsRUFBQUosV0FBQSxTQUFBQSxXQUFBLElBQUFJLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLFdBQUFELEdBQUEsUUFBQUEsR0FBQSxvQkFBQUEsR0FBQSx3QkFBQUEsR0FBQSw0QkFBQUUsT0FBQSxFQUFBRixHQUFBLFVBQUFHLEtBQUEsR0FBQVIsd0JBQUEsQ0FBQUMsV0FBQSxPQUFBTyxLQUFBLElBQUFBLEtBQUEsQ0FBQUMsR0FBQSxDQUFBSixHQUFBLFlBQUFHLEtBQUEsQ0FBQVQsR0FBQSxDQUFBTSxHQUFBLFNBQUFLLE1BQUEsV0FBQUMscUJBQUEsR0FBQXZCLE1BQUEsQ0FBQVMsY0FBQSxJQUFBVCxNQUFBLENBQUF3Qix3QkFBQSxXQUFBckIsR0FBQSxJQUFBYyxHQUFBLFFBQUFkLEdBQUEsa0JBQUFILE1BQUEsQ0FBQUksU0FBQSxDQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQVcsR0FBQSxFQUFBZCxHQUFBLFNBQUFzQixJQUFBLEdBQUFGLHFCQUFBLEdBQUF2QixNQUFBLENBQUF3Qix3QkFBQSxDQUFBUCxHQUFBLEVBQUFkLEdBQUEsY0FBQXNCLElBQUEsS0FBQUEsSUFBQSxDQUFBZCxHQUFBLElBQUFjLElBQUEsQ0FBQUMsR0FBQSxLQUFBMUIsTUFBQSxDQUFBUyxjQUFBLENBQUFhLE1BQUEsRUFBQW5CLEdBQUEsRUFBQXNCLElBQUEsWUFBQUgsTUFBQSxDQUFBbkIsR0FBQSxJQUFBYyxHQUFBLENBQUFkLEdBQUEsU0FBQW1CLE1BQUEsQ0FBQUgsT0FBQSxHQUFBRixHQUFBLE1BQUFHLEtBQUEsSUFBQUEsS0FBQSxDQUFBTSxHQUFBLENBQUFULEdBQUEsRUFBQUssTUFBQSxZQUFBQSxNQUFBIn0=
|