{"version":3,"file":"useSubmitWithRedirect.D-xq5tyj.js","sources":["../../../../../../../node_modules/@babylon/ui-kit-base/components/text/animated-number/index.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/hooks/submit/useHandleSubmit.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/components/others/searcher/searcher-button/hooks/useSearcherButton.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/hooks/useLoading.js","../../../../../../../node_modules/@babylon/ui-kit-forms/hooks/useValue.js","../../../../../../../node_modules/@babylon/ui-kit-forms/hooks/useValueChanged.js","../../../../../../../node_modules/@babylon/ui-kit-helpers/url.js","../../../../../../../node_modules/@babylon/ui-kit-searchers/hooks/submit/useSubmitWithRedirect.js"],"sourcesContent":["import { jsx, Fragment } from 'react/jsx-runtime';\nimport { useState, useEffect } from 'react';\nimport { useInterval } from 'usehooks-ts';\n\nconst defaultDuration = 500;\nconst AnimatedNumber = ({ number, duration = defaultDuration })=>{\n const [latestNumber, setLatestNumber] = useState(number);\n const [previousNumber, setPreviousNumber] = useState(number);\n const [renderNumber, setRenderNumber] = useState(number);\n const step = duration / 1000 * 60;\n useEffect(()=>{\n if (latestNumber !== number) {\n setPreviousNumber(latestNumber);\n setLatestNumber(number);\n }\n }, [\n latestNumber,\n number\n ]);\n useInterval(()=>{\n if (latestNumber !== renderNumber) {\n const diff = (latestNumber - previousNumber) / step;\n const isNegative = diff < 0;\n const newNumber = renderNumber + (isNegative ? Math.floor(diff) : Math.ceil(diff));\n if (isNegative) {\n if (newNumber <= latestNumber) {\n setRenderNumber(latestNumber);\n } else {\n setRenderNumber(newNumber);\n }\n } else {\n if (newNumber >= latestNumber) {\n setRenderNumber(latestNumber);\n } else {\n setRenderNumber(newNumber);\n }\n }\n }\n }, latestNumber === renderNumber ? null : 1000 / 60);\n return /*#__PURE__*/ jsx(Fragment, {\n children: renderNumber\n });\n};\n\nexport { AnimatedNumber as default };\n","import { useCallback } from 'react';\nimport { useFormState } from 'react-hook-form';\n\nconst useHandleSubmit = ()=>{\n const { isDirty, isValid, errors } = useFormState();\n const hasErrors = isDirty && !isValid && Object.keys(errors).length > 0;\n const handleSubmit = useCallback((e)=>{\n if (hasErrors) e.preventDefault();\n }, [\n hasErrors\n ]);\n return {\n hasErrors,\n handleSubmit\n };\n};\n\nexport { useHandleSubmit as default };\n","import useHandleSubmit from '../../../../../hooks/submit/useHandleSubmit.js';\n\nconst useSearcherButton = (props)=>{\n const { disabled = false, children, literals } = props;\n const { submitLabel = '', submit = '', search = '' } = literals ?? {};\n const { hasErrors, handleSubmit } = useHandleSubmit();\n return {\n disabled: disabled || hasErrors,\n onClick: handleSubmit,\n content: children ?? (submitLabel || submit || search)\n };\n};\n\nexport { useSearcherButton as default };\n","import { useState, useRef, useCallback } from 'react';\n\nconst useLoading = (initialState = true)=>{\n const [isLoading, setLoading] = useState(initialState);\n const lockRef = useRef(false);\n const updateLoading = useCallback(()=>{\n if (lockRef.current) {\n setLoading(true);\n return;\n }\n setLoading(false);\n }, []);\n const doFetchLoading = useCallback(async (fetchFnc, onError)=>{\n if (lockRef.current) return;\n lockRef.current = true;\n setTimeout(updateLoading, 300);\n const result = await fetchFnc().catch((error)=>{\n if (onError) return onError(error);\n console.error(error);\n });\n lockRef.current = false;\n updateLoading();\n return result;\n }, [\n updateLoading\n ]);\n return {\n isLoading,\n updateLoading,\n doFetchLoading\n };\n};\n\nexport { useLoading as default };\n","import { useFormContext, useWatch } from 'react-hook-form';\n\nconst useValue = (props)=>{\n const { control } = useFormContext();\n return useWatch({\n ...props,\n control\n });\n};\n\nexport { useValue as default };\n","import isEqual from '@babylon/ui-kit-helpers/is-equal';\nimport usePrevValue from '@babylon/ui-kit-hooks/usePrevValue';\nimport useValue from './useValue.js';\n\nconst useValueChanged = (name)=>{\n const value = useValue({\n name\n });\n const prevValue = usePrevValue(value);\n return !isEqual(value, prevValue);\n};\n\nexport { useValueChanged as default };\n","// Converts filters\nconst parseFilters = (filters)=>Object.entries(filters).filter(([, value])=>!!value || value === 0).map(([key, value])=>`${key}=${value}`).join('&');\n\nexport { parseFilters };\n","import { useState, useEffect, useCallback } from 'react';\n\nconst useSubmitWithRedirect = (onSubmit)=>{\n const [isRedirecting, setRedirecting] = useState(false);\n const handleUnload = ()=>setRedirecting(false);\n useEffect(()=>{\n const handlePageshow = ()=>{\n if (document.visibilityState === 'hidden') {\n handleUnload();\n }\n };\n window.addEventListener('visibilitychange', handlePageshow);\n return ()=>{\n window.removeEventListener('visibilitychange', handlePageshow);\n };\n }, []);\n const finalOnSubmit = useCallback(async (values)=>{\n setRedirecting(true);\n await onSubmit(values);\n }, [\n onSubmit\n ]);\n return {\n onSubmit: finalOnSubmit,\n isRedirecting,\n setRedirecting\n };\n};\n\nexport { useSubmitWithRedirect as default };\n"],"names":["defaultDuration","AnimatedNumber","number","duration","latestNumber","setLatestNumber","useState","previousNumber","setPreviousNumber","renderNumber","setRenderNumber","step","useEffect","useInterval","diff","isNegative","newNumber","jsx","Fragment","useHandleSubmit","isDirty","isValid","errors","useFormState","hasErrors","handleSubmit","useCallback","e","useSearcherButton","props","disabled","children","literals","submitLabel","submit","search","useLoading","initialState","isLoading","setLoading","lockRef","useRef","updateLoading","doFetchLoading","fetchFnc","onError","result","error","useValue","control","useFormContext","useWatch","useValueChanged","name","value","prevValue","usePrevValue","isEqual","parseFilters","filters","key","useSubmitWithRedirect","onSubmit","isRedirecting","setRedirecting","handleUnload","handlePageshow","values"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7]}