{"version":3,"file":"static/js/3654.d28a4007.js","sources":["webpack://@jotforminc/portal/./src/modules/Builder/components/HomePage/MobileView/components/headers/PhoneStatusBar.js","webpack://@jotforminc/portal/./src/modules/Builder/components/HomePage/MobileView/components/devices/Phone.js","webpack://@jotforminc/portal/./src/modules/Builder/components/HomePage/MobileView/components/popovers/QuickQrPopover.js","webpack://@jotforminc/portal/../../libs/common/src/utils/api/index.js","webpack://@jotforminc/portal/../../libs/common/src/components/ProductQRImage/scProductQrImage.js","webpack://@jotforminc/portal/../../libs/common/src/components/ProductQRImage/index.js","webpack://@jotforminc/portal/../../libs/styled-copy-button/src/index.js","webpack://@jotforminc/portal/../../../../src/icons/media/qr.svg"],"sourcesContent":["/* eslint-disable max-len */\nimport React from 'react';\n\n/* eslint-disable */\nconst PhoneStatusBar = () => {\n const date = new Date();\n const time = `${date.getHours()}:${date\n .getMinutes()\n .toString()\n .padStart(2, \"0\")}`;\n\n return (\n \n \n {time}\n \n \n \n \n \n \n \n Updated\n \n \n \n \n \n \n \n \n );\n};\n\nexport default PhoneStatusBar;\n","import React, {\n memo, useCallback, useEffect, useRef, useState\n} from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useDebounce } from '@jotforminc/hooks';\nimport { object, string } from 'prop-types';\nimport { prepareAppURL } from '../../../../../../PublicApp/utils';\nimport selectors from '../../../../../../../store/selectors';\nimport PublicAppLoading from '../../../../../../../components/PublicAppLoading';\nimport PhoneStatusBar from '../headers/PhoneStatusBar';\nimport { APP_PREVIEW_STATES } from '../../../../../../../constants';\nimport { setLivePreviewStatus } from '../../../../../../../store/actionCreators';\nimport { DESTINATION_TYPES } from '../../../../../../../constants/navigation';\n\nconst Phone = ({ itemRef, orientation }) => {\n const dispatch = useDispatch();\n const lastInteractedPageID = useSelector(selectors.getLastInteractedPageID);\n const selectedItemID = useSelector(selectors.getSelectedPortalItem);\n const livePreviewStatus = useSelector(selectors.livePreviewStatusSelector);\n const updatedAt = useSelector(selectors.getAppUpdatedAt);\n const iframeRef = useRef(null);\n const isAppReady = useSelector(selectors.isAppReadySelector);\n const scope = useSelector(selectors.getScope);\n const [appURL] = useState(prepareAppURL(scope, isAppReady));\n const [reloadIframe, setReloadIframe] = useState(true);\n const { appHeaderBgColor } = useSelector(selectors.getAppHeaderProperties);\n\n useEffect(() => {\n if (livePreviewStatus === APP_PREVIEW_STATES.LOADING) {\n setReloadIframe(!reloadIframe);\n }\n }, [livePreviewStatus]);\n\n const sendMessage = action => {\n const iframe = iframeRef.current;\n if (iframe && iframe.contentWindow) {\n iframe.contentWindow.postMessage({\n action\n }, '*');\n }\n };\n\n const debouncedPostMessage = useDebounce(sendMessage, 100);\n const debouncedUpdateCallback = useDebounce(sendMessage, 1000);\n\n useEffect(() => {\n sendMessage({\n name: 'UPDATE_APP'\n });\n debouncedUpdateCallback({\n name: 'UPDATE_APP'\n });\n }, [updatedAt]);\n\n useEffect(() => {\n if (lastInteractedPageID) {\n sendMessage({\n name: 'NAVIGATE_TO_PAGE',\n payload: {\n destinationType: DESTINATION_TYPES.PAGE,\n pageID: lastInteractedPageID\n }\n });\n }\n }, [lastInteractedPageID]);\n\n useEffect(() => {\n if (selectedItemID === 'contactInformationItem') {\n debouncedPostMessage({\n name: 'NAVIGATE_TO_PAGE',\n payload: {\n destinationType: DESTINATION_TYPES.SPECIAL_PAGE,\n pageID: 'checkout'\n }\n });\n } else {\n debouncedPostMessage({\n name: 'SELECT_ITEM',\n payload: {\n itemID: selectedItemID\n }\n });\n }\n }, [selectedItemID]);\n\n const handleOnLoad = useCallback(() => {\n dispatch(setLivePreviewStatus(APP_PREVIEW_STATES.READY));\n }, []);\n\n return (\n \n
\n
\n
\n \n
\n \n
\n \n \n \n
\n {livePreviewStatus !== APP_PREVIEW_STATES.READY && (\n
\n \n
\n )}\n
\n
\n \n );\n};\n\nexport default memo(Phone);\n\nPhone.defaultProps = {\n itemRef: null,\n orientation: 'portrait'\n};\nPhone.propTypes = {\n itemRef: object,\n orientation: string\n};\n","import React, { useMemo, useState } from 'react';\nimport { Button } from '@jotforminc/magnet';\nimport { t } from '@jotforminc/translation';\nimport { ProductQRImage } from '@jotforminc/jotform-common';\nimport StyledCopyButton from '@jotforminc/styled-copy-button';\nimport { useSelector } from 'react-redux';\nimport classnames from 'classnames';\nimport PropTypes from 'prop-types';\nimport {\n IconArrowDownToLine, IconArrowUpRightFromSquareSm, IconCheck, IconCopy\n} from '@jotforminc/svg-icons';\nimport selectors from '../../../../../../../store/selectors';\nimport { getAppLinkWithUTM } from '../../../../../../../utils';\n\nconst QuickQrPopover = ({\n light\n}) => {\n const username = useSelector(selectors.getUsername);\n const portalId = useSelector(selectors.getPortalIDSelector);\n const scope = useSelector(selectors.getScope);\n const publicLink = useSelector(selectors.getPublicLink);\n const [qrLink, setQrLink] = useState('');\n const isDownloadButtonActive = useMemo(() => (!!qrLink));\n\n const handleQrLink = qr => {\n setQrLink(qr);\n };\n const qrLinkWithUTM = useMemo(() => {\n return getAppLinkWithUTM(publicLink, portalId, 'quick-qr');\n }, [scope]);\n\n // TODO :: research text range\n const handleSelectAllText = ({ target }) => {\n if (document.body.createTextRange) {\n const range = document.body.createTextRange();\n range.moveToElementText(target);\n range.select();\n } else if (window.getSelection) {\n const selection = window.getSelection();\n const range = document.createRange();\n range.selectNodeContents(target);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n };\n\n return (\n \n

\n See app in action\n

\n

\n Use your camera to scan the QR code and preview the app on your device.\n

\n
\n
\n \n
\n
\n
\n \n {t('Download')}\n \n \n {t('Open')}\n \n
\n
\n {t('Your app link')}\n
\n
\n \n {publicLink}\n
\n \n \n \n );\n};\n\nQuickQrPopover.propTypes = {\n light: PropTypes.bool\n};\n\nQuickQrPopover.defaultProps = {\n light: false\n};\n\nexport default QuickQrPopover;\n","import axios from 'axios';\nimport qs from 'querystring';\nimport { RequestLayer, Interceptors } from '@jotforminc/request-layer';\n\nconst layer = new RequestLayer('/API', {\n teamID: global.teamID,\n interceptorConfig: {\n customResponseInterceptors: [Interceptors.requestManagerResponseNormalizer],\n teamID: global.teamID\n }\n});\n\n// Mail methods\nexport const uploadMailAttachments = (formID, uploadedFile, project = '') => axios({\n withCredentials: true,\n url: `/API/${project}/form/${formID}/projectFiles`,\n method: 'post',\n data: uploadedFile,\n headers: { 'Content-Type': 'multipart/form-data' }\n});\n\nexport const getTemplateCategories = () => {\n return Promise.all([\n layer.get('pdf-templates/category', { params: { type: 'industry' } }),\n layer.get('pdf-templates/category', { params: { type: 'pdftype' } })\n ]).then(resp => resp);\n};\n\nexport const getUserSecurePasswordVariant = () => {\n const searchParams = new URLSearchParams(document?.location?.search);\n const strongPasswordParamVal = searchParams.get('strongPassword');\n\n if (strongPasswordParamVal) {\n return Promise.resolve({ variation: strongPasswordParamVal });\n }\n return layer.get('user/abtest/strongPasswordonSignupsWithNew/variation');\n};\n\nexport const getTemplate = templateID => {\n return layer.get(`pdf-templates/?_id=${templateID}`);\n};\n\nexport const shareTemplate = templateData => {\n return layer.post('pdf-template', qs.stringify(templateData));\n};\n\nexport const updateTemplate = (templateID, templateData) => {\n return layer.post(`pdf-templates/${templateID}`, qs.stringify(templateData));\n};\n\nexport const upgradePasswordForHIPAA = ({\n password,\n resourceID = '',\n productType = 'form',\n forceUser = false,\n currentPassword = ''\n}) => {\n if (forceUser) {\n return layer.post('user/settings', qs.stringify({ currentPassword, password }));\n }\n\n return layer.post('formuser/upgradePasswordForHIPAA', qs.stringify({\n password,\n resourceID,\n productType\n }));\n};\n\nexport const getQRCodeLink = (formURL, formID, username, currentTeamID) => layer.get('generateQR', {\n params: {\n url: formURL,\n id: formID,\n username\n },\n ...currentTeamID ? { headers: { 'jf-team-id': currentTeamID } } : {}\n});\n","import Styled from 'styled-components';\n\nexport const ScProductQRImage = Styled.div`\n width: 100%;\n background-color: #dfdfe8;\n\n position: relative;\n * { transition: all .3s }\n &:before, &:after {\n transition: all .3s;\n position: absolute;\n opacity: 1\n }\n &:after {\n content: '';\n background: url('//cdn.jotfor.ms/img/builder/publish/qr-loading.gif') no-repeat;\n background-size: cover;\n top: 50%; left: 50%;\n width: 50px; height: 50px;\n margin-left: -25px;\n margin-top: -25px;\n @keyframes rotating {\n from { transform: rotate(0deg) }\n to { transform: rotate(360deg) }\n }\n }\n &:before {\n content: '';\n width: 100%; height: 100%;\n top: 0; left: 0;\n opacity: .2;\n background: url('//cdn.jotfor.ms/img/builder/publish/qr_code.png?v=0.2') no-repeat;\n background-size: cover;\n }\n\n ${({ loaded }) => (loaded ? `\n &:before, &:after { opacity: 0 }\n img { opacity: 1 }\n ` : ' img { opacity: 0 }')}\n\n img { display: block; height: 160px; width: 100%; }\n`;\n","import { bool, func, string } from 'prop-types';\nimport React, {\n useCallback, useEffect, useMemo, useState\n} from 'react';\nimport { useDebounce } from '@jotforminc/hooks';\nimport { toDataURL } from 'qrcode';\nimport { getQRCodeLink } from '../../utils';\nimport { ScProductQRImage } from './scProductQrImage';\n\nconst ProductQRImage = ({\n id, targetURL, username, altText, onQRLinkChange, currentTeamID\n}) => {\n const [loading, setLoading] = useState(true);\n const [qrLink, setQrLink] = useState();\n\n const markStateAsLoaded = useCallback(() => {\n setLoading(false);\n }, []);\n\n const markStateAsLoadingIfNeeded = useCallback(() => {\n if (!loading) {\n setLoading(true);\n }\n }, [loading]);\n\n const fetchQRLink = useDebounce(() => {\n markStateAsLoadingIfNeeded();\n getQRCodeLink(targetURL, id, username, currentTeamID)\n .then(response => {\n setQrLink(`${response}?${new Date().getTime()}`);\n onQRLinkChange(`${response}`);\n })\n .catch(err => {\n console.error(err);\n console.log('Attempting fallback client-side generation.');\n return toDataURL(targetURL, {\n errorCorrectionLevel: 'H',\n margin: 1,\n color: {\n dark: '#000000',\n light: '#ffffff'\n },\n width: 400,\n version: 6\n }).then(url => {\n setQrLink(url);\n onQRLinkChange(url);\n });\n }).finally(() => {\n markStateAsLoaded();\n });\n }, 500);\n\n useEffect(() => {\n fetchQRLink();\n }, [targetURL]); // re-fetch depens on targetURL\n\n const isQRLoaded = useMemo(() => !loading, [loading]);\n\n return (\n \n \n \n );\n};\n\nProductQRImage.propTypes = {\n id: string.isRequired,\n username: string.isRequired,\n targetURL: string.isRequired,\n altText: string,\n onQRLinkChange: func,\n currentTeamID: bool\n};\n\nProductQRImage.defaultProps = {\n altText: 'qr-code',\n onQRLinkChange: f => f,\n currentTeamID: false\n};\n\nexport default ProductQRImage;\n","import React, { useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport ClipboardJS from 'clipboard';\nimport { useStateWithAutoReset, useIsMobile } from '@jotforminc/hooks';\nimport { Button } from '@jotforminc/magnet';\nimport { IconExclamationCircleFilled } from '@jotforminc/svg-icons';\nimport { t } from '@jotforminc/translation';\nimport './style.scss';\n\nconst StyledCopyButton = ({\n buttonIcon,\n buttonText = t('Copy Link'),\n colorStyle,\n onCopy,\n textToCopy,\n errorText = t('Couldn\\'t Copy to Clipboard'),\n errorButtonIcon,\n errorColorStyle,\n showButtonIcon,\n copiedButtonText = t('Copied to Clipboard!'),\n copiedButtonIcon,\n timeDuration,\n classNames,\n size,\n disabled\n}) => {\n const isMobile = useIsMobile(767);\n\n const [updatedButtonText, setUpdatedButtonText] = useStateWithAutoReset(buttonText, timeDuration);\n const isButtonDisabled = updatedButtonText && updatedButtonText === errorText;\n const isIconEligible = showButtonIcon && buttonIcon && copiedButtonIcon;\n const buttonIconMap = {\n [copiedButtonText]: copiedButtonIcon,\n [errorText]: errorButtonIcon\n };\n const ref = useRef();\n useEffect(() => {\n if (ref.current) {\n const clipboard = new ClipboardJS(ref.current, { text: () => textToCopy });\n clipboard.on('success', e => {\n onCopy(e, textToCopy);\n setUpdatedButtonText(copiedButtonText);\n });\n clipboard.on('error', () => {\n if (isButtonDisabled) return;\n setUpdatedButtonText(errorText);\n });\n return () => clipboard.destroy();\n }\n }, [ref, textToCopy]);\n\n return (\n \n {(updatedButtonText)}\n \n );\n};\n\nStyledCopyButton.propTypes = {\n buttonIcon: PropTypes.node,\n buttonText: PropTypes.string,\n errorText: PropTypes.string,\n errorButtonIcon: PropTypes.node,\n copiedButtonText: PropTypes.string,\n copiedButtonIcon: PropTypes.node,\n onCopy: PropTypes.func,\n textToCopy: PropTypes.string,\n showButtonIcon: PropTypes.bool,\n timeDuration: PropTypes.number,\n classNames: PropTypes.string,\n size: PropTypes.string,\n colorStyle: PropTypes.string,\n errorColorStyle: PropTypes.string,\n disabled: PropTypes.bool\n};\n\nStyledCopyButton.defaultProps = {\n buttonIcon: null,\n buttonText: '',\n errorButtonIcon: IconExclamationCircleFilled,\n errorText: '',\n copiedButtonIcon: null,\n copiedButtonText: '',\n onCopy: f => f,\n textToCopy: 'https://www.jotform.com',\n showButtonIcon: true,\n timeDuration: 1500,\n classNames: '',\n size: 'medium',\n colorStyle: 'success',\n errorColorStyle: 'error',\n disabled: false\n};\n\nexport default StyledCopyButton;\n","\n \n\n"],"names":["date","Date","time","Phone","itemRef","orientation","dispatch","useDispatch","lastInteractedPageID","useSelector","selectors","selectedItemID","livePreviewStatus","updatedAt","iframeRef","useRef","isAppReady","scope","appURL","useState","prepareAppURL","reloadIframe","setReloadIframe","appHeaderBgColor","useEffect","APP_PREVIEW_STATES","sendMessage","action","iframe","debouncedPostMessage","useDebounce","debouncedUpdateCallback","DESTINATION_TYPES","handleOnLoad","useCallback","setLivePreviewStatus","PhoneStatusBar","PublicAppLoading","memo","object","string","QuickQrPopover","light","username","portalId","publicLink","qrLink","setQrLink","isDownloadButtonActive","useMemo","qrLinkWithUTM","getAppLinkWithUTM","classnames","ProductQRImage","qr","Button","IconArrowDownToLine","t","IconArrowUpRightFromSquareSm","target","document","range","window","selection","StyledCopyButton","IconCopy","IconCheck","PropTypes","layer","RequestLayer","global","Interceptors","getQRCodeLink","formURL","formID","currentTeamID","ScProductQRImage","Styled","loaded","id","targetURL","altText","onQRLinkChange","loading","setLoading","markStateAsLoaded","markStateAsLoadingIfNeeded","fetchQRLink","response","err","console","toDataURL","url","isQRLoaded","func","bool","f","buttonIcon","buttonText","colorStyle","onCopy","textToCopy","errorText","errorButtonIcon","errorColorStyle","showButtonIcon","copiedButtonText","copiedButtonIcon","timeDuration","classNames","size","disabled","isMobile","useIsMobile","updatedButtonText","setUpdatedButtonText","useStateWithAutoReset","isButtonDisabled","isIconEligible","ref","clipboard","ClipboardJS","e","buttonIconMap","IconExclamationCircleFilled"],"mappings":";;2SA4FA,EAxFuB,KACrB,IAAMA,EAAO,IAAIC,KACXC,EAAO,CAAC,EAAEF,EAAK,QAAQ,GAAG,CAAC,EAAEA,EAChC,UAAU,GACV,QAAQ,GACR,QAAQ,CAAC,EAAG,KAAK,CAAC,CAErB,MACE,WAAC,OACC,UAAU,mBACV,MAAM,MACN,OAAO,KACP,QAAQ,aACR,KAAK,OACL,MAAM,6B,UAEN,UAAC,QAAK,GAAG,OAAO,EAAE,KAAK,EAAE,KAAK,OAAO,KAAK,KAAK,Q,SAC5CE,C,GAEH,WAAC,KAAE,UAAU,Q,UACX,UAAC,QACC,UAAU,iBACV,EAAE,MACF,EAAE,IACF,MAAM,MACN,OAAO,KACP,GAAG,KACH,KAAK,O,GAEP,UAAC,OACC,MAAM,KACN,OAAO,KACP,QAAQ,YACR,KAAK,UACL,EAAE,MACF,EAAE,K,SAEF,UAAC,QACC,UAAU,aACV,SAAS,UACT,SAAS,UACT,EAAE,+hBACF,KAAK,S,KAGT,UAAC,QACC,UAAU,cACV,EAAE,MACF,EAAE,KACF,MAAM,MACN,OAAO,KACP,KAAK,O,SACN,S,MAIH,UAAC,QACC,QAAQ,OACR,EAAE,QACF,EAAE,OACF,MAAM,KACN,OAAO,KACP,GAAG,MACH,KAAK,QACL,OAAO,O,GAET,UAAC,QACC,QAAQ,MACR,EAAE,mHACF,KAAK,O,GAEP,UAAC,QAAK,EAAE,MAAM,EAAE,KAAK,MAAM,KAAK,OAAO,IAAI,GAAG,MAAM,KAAK,O,GACzD,UAAC,QACC,SAAS,UACT,SAAS,UACT,EAAE,qzCACF,KAAK,O,GAEP,UAAC,QACC,SAAS,UACT,SAAS,UACT,EAAE,m5BACF,KAAK,O,KAIb,E,uCC5EA,IAAMC,EAAQ,CAAC,CAAEC,QAAAA,CAAO,CAAEC,YAAAA,CAAW,CAAE,IACrC,IAAMC,EAAWC,CAAAA,EAAAA,EAAAA,EAAAA,IACXC,EAAuBC,CAAAA,EAAAA,EAAAA,EAAAA,EAAYC,EAAAA,CAAAA,CAAAA,uBAAiC,EACpEC,EAAiBF,CAAAA,EAAAA,EAAAA,EAAAA,EAAYC,EAAAA,CAAAA,CAAAA,qBAA+B,EAC5DE,EAAoBH,CAAAA,EAAAA,EAAAA,EAAAA,EAAYC,EAAAA,CAAAA,CAAAA,yBAAmC,EACnEG,EAAYJ,CAAAA,EAAAA,EAAAA,EAAAA,EAAYC,EAAAA,CAAAA,CAAAA,eAAyB,EACjDI,EAAYC,CAAAA,EAAAA,EAAAA,MAAAA,EAAO,MACnBC,EAAaP,CAAAA,EAAAA,EAAAA,EAAAA,EAAYC,EAAAA,CAAAA,CAAAA,kBAA4B,EACrDO,EAAQR,CAAAA,EAAAA,EAAAA,EAAAA,EAAYC,EAAAA,CAAAA,CAAAA,QAAkB,EACtC,CAACQ,EAAO,CAAGC,CAAAA,EAAAA,EAAAA,QAAAA,EAASC,CAAAA,EAAAA,EAAAA,EAAAA,EAAcH,EAAOD,IACzC,CAACK,EAAcC,EAAgB,CAAGH,CAAAA,EAAAA,EAAAA,QAAAA,EAAS,IAC3C,CAAEI,iBAAAA,CAAgB,CAAE,CAAGd,CAAAA,EAAAA,EAAAA,EAAAA,EAAYC,EAAAA,CAAAA,CAAAA,sBAAgC,EAEzEc,CAAAA,EAAAA,EAAAA,SAAAA,EAAU,KACJZ,IAAsBa,EAAAA,EAAAA,CAAAA,OAA0B,EAClDH,EAAgB,CAACD,EAErB,EAAG,CAACT,EAAkB,EAEtB,IAAMc,EAAcC,IAClB,IAAMC,EAASd,EAAU,OAAO,CAC5Bc,GAAUA,EAAO,aAAa,EAChCA,EAAO,aAAa,CAAC,WAAW,CAAC,CAC/BD,OAAAA,CACF,EAAG,IAEP,EAEME,EAAuBC,CAAAA,EAAAA,EAAAA,EAAAA,EAAYJ,EAAa,KAChDK,EAA0BD,CAAAA,EAAAA,EAAAA,EAAAA,EAAYJ,EAAa,KAEzDF,CAAAA,EAAAA,EAAAA,SAAAA,EAAU,KACRE,EAAY,CACV,KAAM,YACR,GACAK,EAAwB,CACtB,KAAM,YACR,EACF,EAAG,CAAClB,EAAU,EAEdW,CAAAA,EAAAA,EAAAA,SAAAA,EAAU,KACJhB,GACFkB,EAAY,CACV,KAAM,mBACN,QAAS,CACP,gBAAiBM,EAAAA,EAAAA,CAAAA,IAAsB,CACvC,OAAQxB,CACV,CACF,EAEJ,EAAG,CAACA,EAAqB,EAEzBgB,CAAAA,EAAAA,EAAAA,SAAAA,EAAU,KACJb,AAAmB,2BAAnBA,EACFkB,EAAqB,CACnB,KAAM,mBACN,QAAS,CACP,gBAAiBG,EAAAA,EAAAA,CAAAA,YAA8B,CAC/C,OAAQ,UACV,CACF,GAEAH,EAAqB,CACnB,KAAM,cACN,QAAS,CACP,OAAQlB,CACV,CACF,EAEJ,EAAG,CAACA,EAAe,EAEnB,IAAMsB,EAAeC,CAAAA,EAAAA,EAAAA,WAAAA,EAAY,KAC/B5B,EAAS6B,CAAAA,EAAAA,EAAAA,EAAAA,EAAqBV,EAAAA,EAAAA,CAAAA,KAAwB,EACxD,EAAG,EAAE,EAEL,MACE,UAAC,uBACC,IAAKrB,EACL,UAAW,CAAC,iCAAiC,EAAEC,EAAY,CAAC,A,EACvDkB,AAAqB,YAArBA,GAAkC,CAAE,MAAO,CAAE,uBAAwBA,CAAiB,CAAE,I,SAE7F,UAAC,OAAI,UAAU,uB,SACb,WAAC,OAAI,UAAU,yB,UACb,UAAC,OAAI,UAAU,gC,SACb,UAACa,EAAcA,CAAAA,E,GAEjB,UAAC,UAEC,IAAKtB,EACL,IAAKI,EACL,MAAM,cACN,OAAQe,C,EAJHZ,GAMP,UAAC,OAAI,UAAU,mC,SACb,UAAC,OACC,MAAM,MACN,OAAO,KACP,QAAQ,aACR,KAAK,OACL,MAAM,6B,SAEN,UAAC,QACC,MAAM,MACN,OAAO,IACP,GAAG,MACH,UAAU,yBACV,KAAK,O,OAIVT,IAAsBa,EAAAA,EAAAA,CAAAA,KAAwB,EAC7C,UAAC,OAAI,UAAU,gB,SACb,UAACY,EAAAA,CAAgBA,CAAAA,CAAAA,E,UAO/B,EAEA,MAAeC,CAAAA,EAAAA,EAAAA,IAAAA,EAAKnC,EAEpBA,CAAAA,EAAM,YAAY,CAAG,CACnB,QAAS,KACT,YAAa,UACf,EACAA,EAAM,SAAS,CAAG,CAChB,QAASoC,EAAAA,MAAMA,CACf,YAAaC,EAAAA,MAAMA,AACrB,C,kNClIA,IAAMC,EAAiB,CAAC,CACtBC,MAAAA,CAAK,CACN,IACC,IAAMC,EAAWlC,CAAAA,EAAAA,EAAAA,EAAAA,EAAYC,EAAAA,CAAAA,CAAAA,WAAqB,EAC5CkC,EAAWnC,CAAAA,EAAAA,EAAAA,EAAAA,EAAYC,EAAAA,CAAAA,CAAAA,mBAA6B,EACpDO,EAAQR,CAAAA,EAAAA,EAAAA,EAAAA,EAAYC,EAAAA,CAAAA,CAAAA,QAAkB,EACtCmC,EAAapC,CAAAA,EAAAA,EAAAA,EAAAA,EAAYC,EAAAA,CAAAA,CAAAA,aAAuB,EAChD,CAACoC,EAAQC,EAAU,CAAG5B,CAAAA,EAAAA,EAAAA,QAAAA,EAAS,IAC/B6B,EAAyBC,CAAAA,EAAAA,EAAAA,OAAAA,EAAQ,IAAO,CAAC,CAACH,GAK1CI,EAAgBD,CAAAA,EAAAA,EAAAA,OAAAA,EAAQ,IACrBE,CAAAA,EAAAA,EAAAA,EAAAA,EAAkBN,EAAYD,EAAU,YAC9C,CAAC3B,EAAM,EAiBV,MACE,WAAC,OACC,UAAWmC,IAAW,CACpB,mBAAoB,GACpBV,MAAAA,CACF,G,UAEA,UAAC,MAAG,UAAU,mB,SAAmB,mB,GAGjC,UAAC,KAAE,UAAU,yB,SAAyB,yE,GAGtC,UAAC,OAAI,UAAU,kB,SACb,UAAC,OAAI,UAAU,iB,SACb,UAACW,EAAAA,CAAcA,CAAAA,CACb,GAAIT,EACJ,UAAWM,EACX,QAAQ,iBACR,SAAUP,EACV,eA1CWW,IACnBP,EAAUO,EACZ,C,OA4CI,WAAC,OAAI,UAAU,yB,UACb,UAACC,EAAAA,CAAMA,CAAAA,CACL,GAAG,IACH,KAAMT,EACN,OAAO,SACP,SAAU,CAACE,EACX,UAAWQ,EAAAA,CAAmBA,CAC9B,KAAK,QACL,QAASd,EAAQ,UAAY,SAC7B,WAAYA,EAAQ,UAAY,U,SAE/Be,CAAAA,EAAAA,EAAAA,CAAAA,EAAE,W,GAEL,UAACF,EAAAA,CAAMA,CAAAA,CACL,GAAG,IACH,KAAMV,EACN,OAAO,SACP,UAAWa,EAAAA,CAA4BA,CACvC,KAAK,QACL,QAAShB,EAAQ,UAAY,SAC7B,WAAYA,EAAQ,YAAc,U,SAEjCe,CAAAA,EAAAA,EAAAA,CAAAA,EAAE,O,MAGP,UAAC,MAAG,UAAU,uB,SACXA,CAAAA,EAAAA,EAAAA,CAAAA,EAAE,gB,GAEL,WAAC,O,UACC,UAAC,OACC,UAAU,uBACV,UArEoB,CAAC,CAAEE,OAAAA,CAAM,CAAE,IACrC,GAAIC,SAAS,IAAI,CAAC,eAAe,CAAE,CACjC,IAAMC,EAAQD,SAAS,IAAI,CAAC,eAAe,GAC3CC,EAAM,iBAAiB,CAACF,GACxBE,EAAM,MAAM,EACd,MAAO,GAAIC,OAAO,YAAY,CAAE,CAC9B,IAAMC,EAAYD,OAAO,YAAY,GAC/BD,EAAQD,SAAS,WAAW,GAClCC,EAAM,kBAAkB,CAACF,GACzBI,EAAU,eAAe,GACzBA,EAAU,QAAQ,CAACF,EACrB,CACF,EA0DQ,MAAOhB,E,SAENA,C,GAEH,UAACmB,EAAAA,CAAgBA,CAAAA,CACf,WAAYnB,EACZ,WAAYY,CAAAA,EAAAA,EAAAA,CAAAA,EAAE,aACd,iBAAkBA,CAAAA,EAAAA,EAAAA,CAAAA,EAAE,WACpB,eAAgB,GAChB,WAAYQ,EAAAA,CAAQA,CACpB,iBAAkBC,EAAAA,CAASA,CAC3B,WAAW,UACX,KAAK,QACL,WAAW,4B,QAKrB,CAEAzB,CAAAA,EAAe,SAAS,CAAG,CACzB,MAAO0B,IAAAA,IAAAA,AACT,EAEA1B,EAAe,YAAY,CAAG,CAC5B,MAAO,EACT,EAEA,IAAeA,C,8LC9Hf,IAAM2B,EAAQ,IAAIC,EAAAA,CAAYA,CAAC,OAAQ,CACrC,OAAQC,EAAAA,CAAMA,CAAC,MAAM,CACrB,kBAAmB,CACjB,2BAA4B,CAACC,EAAAA,CAAAA,CAAAA,gCAA6C,CAAC,CAC3E,OAAQD,EAAAA,CAAMA,CAAC,MAAM,AACvB,CACF,GA0DaE,EAAgB,CAACC,EAASC,EAAQ/B,EAAUgC,IAAkBP,EAAM,GAAG,CAAC,aAAc,SACjG,OAAQ,CACN,IAAKK,EACL,GAAIC,EACJ/B,SAAAA,CACF,C,EACGgC,EAAgB,CAAE,QAAS,CAAE,aAAcA,CAAc,CAAE,EAAI,CAAC,I,iBCxE9D,IAAMC,EAAmBC,EAAAA,EAAAA,CAAAA,GAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiCzC,EAAE,CAAC,CAAEC,OAAAA,CAAM,CAAE,GAAMA,EAAS;;;EAG5B,CAAC,CAAG,sBAAuB;;;AAG7B,CAAC,CChCKzB,EAAiB,CAAC,CACtB0B,GAAAA,CAAE,CAAEC,UAAAA,CAAS,CAAErC,SAAAA,CAAQ,CAAEsC,QAAAA,CAAO,CAAEC,eAAAA,CAAc,CAAEP,cAAAA,CAAa,CAChE,IACC,GAAM,CAACQ,EAASC,EAAW,CAAGjE,CAAAA,EAAAA,EAAAA,QAAAA,EAAS,IACjC,CAAC2B,EAAQC,EAAU,CAAG5B,CAAAA,EAAAA,EAAAA,QAAAA,IAEtBkE,EAAoBnD,CAAAA,EAAAA,EAAAA,WAAAA,EAAY,KACpCkD,EAAW,GACb,EAAG,EAAE,EAECE,EAA6BpD,CAAAA,EAAAA,EAAAA,WAAAA,EAAY,KACzC,CAACiD,GACHC,EAAW,GAEf,EAAG,CAACD,EAAQ,EAENI,EAAczD,CAAAA,EAAAA,EAAAA,EAAAA,EAAY,KAC9BwD,IACAd,EAAcQ,EAAWD,EAAIpC,EAAUgC,GACpC,IAAI,CAACa,IACJzC,EAAU,CAAC,EAAEyC,EAAS,CAAC,EAAE,IAAIvF,OAAO,OAAO,GAAG,CAAC,EAC/CiF,EAAe,CAAC,EAAEM,EAAS,CAAC,CAC9B,GACC,KAAK,CAACC,IACLC,QAAQ,KAAK,CAACD,GACdC,QAAQ,GAAG,CAAC,+CACLC,CAAAA,EAAAA,EAAAA,SAAAA,EAAUX,EAAW,CAC1B,qBAAsB,IACtB,OAAQ,EACR,MAAO,CACL,KAAM,UACN,MAAO,SACT,EACA,MAAO,IACP,QAAS,CACX,GAAG,IAAI,CAACY,IACN7C,EAAU6C,GACVV,EAAeU,EACjB,KACC,OAAO,CAAC,KACTP,GACF,EACJ,EAAG,KAEH7D,CAAAA,EAAAA,EAAAA,SAAAA,EAAU,KACR+D,GACF,EAAG,CAACP,EAAU,EAEd,IAAMa,EAAa5C,CAAAA,EAAAA,EAAAA,OAAAA,EAAQ,IAAM,CAACkC,EAAS,CAACA,EAAQ,EAEpD,MACE,UAACP,EAAgBA,CAAC,OAAQiB,E,SACxB,UAAC,OACC,UAAU,YAAY,IAAK/C,EAAQ,OAAQuC,EAC3C,IAAKJ,C,IAIb,CAEA5B,CAAAA,EAAe,SAAS,CAAG,CACzB,GAAIb,EAAAA,MAAAA,CAAAA,UAAiB,CACrB,SAAUA,EAAAA,MAAAA,CAAAA,UAAiB,CAC3B,UAAWA,EAAAA,MAAAA,CAAAA,UAAiB,CAC5B,QAASA,EAAAA,MAAMA,CACf,eAAgBsD,EAAAA,IAAIA,CACpB,cAAeC,EAAAA,IAAIA,AACrB,EAEA1C,EAAe,YAAY,CAAG,CAC5B,QAAS,UACT,eAAgB2C,GAAKA,EACrB,cAAe,EACjB,EAEA,MAAe3C,C,sLC3Ef,IAAMW,EAAmB,CAAC,CACxBiC,WAAAA,CAAU,CACVC,WAAAA,EAAazC,CAAAA,EAAAA,EAAAA,CAAAA,EAAE,YAAY,CAC3B0C,WAAAA,CAAU,CACVC,OAAAA,CAAM,CACNC,WAAAA,CAAU,CACVC,UAAAA,EAAY7C,CAAAA,EAAAA,EAAAA,CAAAA,EAAE,6BAA8B,CAC5C8C,gBAAAA,CAAe,CACfC,gBAAAA,CAAe,CACfC,eAAAA,CAAc,CACdC,iBAAAA,EAAmBjD,CAAAA,EAAAA,EAAAA,CAAAA,EAAE,uBAAuB,CAC5CkD,iBAAAA,CAAgB,CAChBC,aAAAA,CAAY,CACZC,WAAAA,CAAU,CACVC,KAAAA,CAAI,CACJC,SAAAA,CAAQ,CACT,IACC,IAAMC,EAAWC,CAAAA,EAAAA,EAAAA,EAAAA,EAAY,KAEvB,CAACC,EAAmBC,EAAqB,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,EAAsBlB,EAAYU,GAC9ES,EAAmBH,GAAqBA,IAAsBZ,EAC9DgB,EAAiBb,GAAkBR,GAAcU,EAKjDY,EAAMxG,CAAAA,EAAAA,EAAAA,MAAAA,IAgBZ,MAfAS,CAAAA,EAAAA,EAAAA,SAAAA,EAAU,KACR,GAAI+F,EAAI,OAAO,CAAE,CACf,IAAMC,EAAY,GAAIC,CAAAA,GAAAA,EAAYF,EAAI,OAAO,CAAE,CAAE,KAAM,IAAMlB,CAAW,GASxE,OARAmB,EAAU,EAAE,CAAC,UAAWE,IACtBtB,EAAOsB,EAAGrB,GACVc,EAAqBT,EACvB,GACAc,EAAU,EAAE,CAAC,QAAS,MAChBH,GACJF,EAAqBb,EACvB,GACO,IAAMkB,EAAU,OAAO,EAChC,CACF,EAAG,CAACD,EAAKlB,EAAW,EAGlB,UAAC9C,EAAAA,CAAMA,CAAAA,CACL,IAAKgE,EACL,WAAYlB,EACZ,UAAWiB,GAAmBK,CAAAA,AAxBZ,EACpB,CAACjB,EAAiB,CAAEC,EACpB,CAACL,EAAU,CAAEC,CACf,EAqB+C,CAACW,EAAkB,EAAIjB,CAAS,EAC3E,WAAYiB,GAAqBA,IAAsBZ,EAAYE,EAAkBL,EACrF,SAAUY,GAAYM,EACtB,UAAWL,EACX,UAAW,CAAC,EAAEH,EAAW,CAAC,EAAEK,IAAsBhB,EAAa,iBAAmB,GAAG,CAAC,CACtF,KAAMY,E,SAEJI,C,EAGR,CAEAlD,CAAAA,EAAiB,SAAS,CAAG,CAC3B,WAAYG,IAAAA,IAAc,CAC1B,WAAYA,IAAAA,MAAgB,CAC5B,UAAWA,IAAAA,MAAgB,CAC3B,gBAAiBA,IAAAA,IAAc,CAC/B,iBAAkBA,IAAAA,MAAgB,CAClC,iBAAkBA,IAAAA,IAAc,CAChC,OAAQA,IAAAA,IAAc,CACtB,WAAYA,IAAAA,MAAgB,CAC5B,eAAgBA,IAAAA,IAAc,CAC9B,aAAcA,IAAAA,MAAgB,CAC9B,WAAYA,IAAAA,MAAgB,CAC5B,KAAMA,IAAAA,MAAgB,CACtB,WAAYA,IAAAA,MAAgB,CAC5B,gBAAiBA,IAAAA,MAAgB,CACjC,SAAUA,IAAAA,IAAc,AAC1B,EAEAH,EAAiB,YAAY,CAAG,CAC9B,WAAY,KACZ,WAAY,GACZ,gBAAiB4D,EAAAA,CAA2BA,CAC5C,UAAW,GACX,iBAAkB,KAClB,iBAAkB,GAClB,OAAQ5B,GAAKA,EACb,WAAY,0BACZ,eAAgB,GAChB,aAAc,KACd,WAAY,GACZ,KAAM,SACN,WAAY,UACZ,gBAAiB,QACjB,SAAU,EACZ,EAEA,MAAehC,C,4DCvGX,E,WACJ,SAAS,IAAa,MAAO,GAAW,OAAO,MAAM,CAAG,OAAO,MAAM,CAAC,IAAI,GAAK,SAAU,CAAC,EAAI,IAAK,IAAI,EAAI,EAAG,EAAI,UAAU,MAAM,CAAE,IAAK,CAAE,IAAI,EAAI,SAAS,CAAC,EAAE,CAAE,IAAK,IAAI,KAAK,EAAG,AAAC,KAAI,cAAc,CAAC,IAAI,CAAC,EAAG,IAAO,EAAC,CAAC,EAAE,CAAG,CAAC,CAAC,EAAE,AAAF,CAAI,CAAG,OAAO,CAAE,GAAa,MAAM,KAAM,UAAW,CAE7Q,IAAC,EAAK,AAAG,GAAsB,eAAmB,CAAC,MAAO,EAAS,CACtE,MAAO,6BACP,KAAM,eACN,QAAS,WACX,EAAG,GAAQ,GAAU,GAAqB,eAAmB,CAAC,OAAQ,CACpE,SAAU,UACV,EAAG,0sBACH,SAAU,SACZ,I","debug_id":"0d6c58be-191b-5851-a9cd-919d808b35ca"}