{"ast":null,"code":"import{Form,Input,Button,Modal,Select}from'antd';import'./styles.css';import React,{useState}from'react';import setuLogo from'../../assets/setuLogo.png';import Otp from'./otp';import passwordResetSuccess from'../../assets/password-reset-success.png';import{useHistory}from'react-router-dom';import{connect}from'react-redux';import{sendOtp,verifyOtp,updatePassword}from'../../reduxStore/actions/action';import CountryPhoneInput,{ConfigProvider}from'antd-country-phone-input';import en from'world_countries_lists/data/countries/en/world.json';import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";function ForgotPassword(_ref){let{sendOtp,isOtpSent,verifyOtp,otpVerified,updatePassword,configuredAuth}=_ref;const[isModalVisible,setIsModalVisible]=useState(false);const history=useHistory();const[authMethod,setAuthMethod]=useState('Email');const[form]=Form.useForm();const options=[{lable:'Email',value:'Email'},{lable:\"Phone\",value:'Phone'}];const handleOtpSent=value=>{if(value.hasOwnProperty('phone')){value['uniqueId']='+'+value.phone.code+value.phone.phone;}sendOtp(value,()=>{});};const handleCancel=()=>{setIsModalVisible(false);history.push('/setu_game/login');};const handleAuthMethodChange=value=>{setAuthMethod(value);};const handleVerifyOtp=async otp=>{verifyOtp({otp},()=>{});};const handleResetPassword=async value=>{updatePassword(value,()=>{setIsModalVisible(true);});};const validateEmail=async(_,value)=>{// Basic email format validation\nif(!value||!/^\\S+@\\S+\\.\\S+$/.test(value)){if(!value){return Promise.reject();}return Promise.reject('Please enter a valid email address!');}return Promise.resolve();};const validatePhone=async(_,value)=>{var _value$phone,_value$phone2,_value$phone3;// Basic phone number validation\n// Check if the input starts with \"+\" or a digit\nconst countryCode=value.short;// Get the country code\nif(countryCode==='IN'&&((_value$phone=value.phone)===null||_value$phone===void 0?void 0:_value$phone.length)!==10){return Promise.reject('Invalid phone number!');}else if(((_value$phone2=value.phone)===null||_value$phone2===void 0?void 0:_value$phone2.length)<6||((_value$phone3=value.phone)===null||_value$phone3===void 0?void 0:_value$phone3.length)>14){return Promise.reject('Invalid phone number!');}// Proceed with further validation or logic if needed\nreturn Promise.resolve();};return/*#__PURE__*/_jsxs(_Fragment,{children:[!isOtpSent?/*#__PURE__*/_jsx(\"div\",{className:\"component-wrapper\",children:/*#__PURE__*/_jsxs(\"div\",{className:\"form-container\",children:[/*#__PURE__*/_jsx(\"img\",{src:setuLogo,className:\"logo-img\"}),/*#__PURE__*/_jsx(\"span\",{className:\"form-heading\",children:\"Forgot Password\"}),/*#__PURE__*/_jsx(\"div\",{className:\"form-wrapper\",children:!otpVerified?/*#__PURE__*/_jsx(ConfigProvider,{locale:en,children:/*#__PURE__*/_jsxs(Form,{layout:\"vertical\",className:\"setu-form\",autoComplete:\"off\",onFinish:handleOtpSent,form:form,initialValues:{phone:{short:'In'}},children:[configuredAuth=='Both'?/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(Form.Item,{className:\"form-item\",children:/*#__PURE__*/_jsx(Select,{className:\"form-input\",defaultValue:\"Email\",onChange:handleAuthMethodChange,options:options})}),authMethod=='Email'?/*#__PURE__*/_jsx(Form.Item,{className:\"form-item\",name:\"uniqueId\",rules:[{required:true,message:'Please input your email id!'},{validator:async(_,value)=>{return validateEmail(_,value);}}],children:/*#__PURE__*/_jsx(Input,{className:\"form-input\",placeholder:\"Enter email id\"})}):/*#__PURE__*/_jsx(Form.Item,{name:\"phone\",className:\"form-item\",form:form,rules:[{required:true,message:'Please input your phone number!'},validate=>({validator(_,value){if(!value.phone){return Promise.reject('Please input your phone number');}return validatePhone(_,value);}})],children:/*#__PURE__*/_jsx(CountryPhoneInput,{placeholder:\"Enter phone number\",className:\"form-input\",inline:true,defaultValue:{short:'In'},onKeyPress:e=>{// Allow only numeric characters\nconst charCode=e.which?e.which:e.keyCode;if(charCode>31&&(charCode<48||charCode>57)){e.preventDefault();}}})})]}):configuredAuth=='Email'?/*#__PURE__*/_jsx(Form.Item,{className:\"form-item\",name:\"uniqueId\",rules:[{required:true,message:'Please input your email id!'},{validator:async(_,value)=>{return validateEmail(_,value);}}],children:/*#__PURE__*/_jsx(Input,{className:\"form-input\",placeholder:\"Enter email id\"})}):/*#__PURE__*/_jsx(Form.Item,{name:\"phone\",className:\"form-item\",form:form,rules:[{required:true,message:'Please input your phone number!'},validate=>({validator(_,value){console.log(value);if(!(value!==null&&value!==void 0&&value.phone)){return Promise.reject('Please input your phone number');}return validatePhone(_,value);}})],children:/*#__PURE__*/_jsx(CountryPhoneInput,{placeholder:\"Enter phone number\",className:\"form-input\",inline:true,defaultValue:{short:'In'},onKeyPress:e=>{// Allow only numeric characters\nconst charCode=e.which?e.which:e.keyCode;if(charCode>31&&(charCode<48||charCode>57)){e.preventDefault();}}})}),/*#__PURE__*/_jsx(Form.Item,{children:/*#__PURE__*/_jsx(Button,{className:\"form-submit-btn\",htmlType:\"submit\",children:\"Get OTP\"})})]})}):/*#__PURE__*/_jsxs(Form,{layout:\"vertical\",className:\"setu-form\",autoComplete:\"off\",onFinish:handleResetPassword,children:[/*#__PURE__*/_jsx(Form.Item,{className:\"form-item\",name:\"new_password\",rules:[{required:true,message:'Please input new password!'}],children:/*#__PURE__*/_jsx(Input,{autoComplete:\"new-password\",placeholder:\"New password\",className:\"form-input\"})}),/*#__PURE__*/_jsx(Form.Item,{className:\"form-item\",name:\"confirm_password\",dependencies:['new_password'],hasFeedback:true,rules:[{required:true,message:'Please confirm your password!'},_ref2=>{let{getFieldValue}=_ref2;return{validator(_,value){if(!value||getFieldValue('new_password')===value){return Promise.resolve();}return Promise.reject(new Error('The new password that you entered do not match!'));}};}],children:/*#__PURE__*/_jsx(Input,{autoComplete:\"new-password\",placeholder:\"Confirm password\",className:\"form-input\"})}),/*#__PURE__*/_jsx(Form.Item,{children:/*#__PURE__*/_jsx(Button,{className:\"form-submit-btn\",htmlType:\"submit\",children:\"Save\"})})]})})]})}):/*#__PURE__*/_jsx(Otp,{title:\"Forgot Password\",handleVerifyOtp:handleVerifyOtp}),/*#__PURE__*/_jsx(Modal,{visible:isModalVisible,onCancel:handleCancel,footer:null,className:\"success-modal\",getContainer:false,centered:true,maskClosable:false,children:/*#__PURE__*/_jsxs(\"div\",{className:\"otp-success-modal\",children:[/*#__PURE__*/_jsx(\"img\",{src:passwordResetSuccess}),/*#__PURE__*/_jsx(\"span\",{children:\"Password Reset Successfully!\"}),/*#__PURE__*/_jsx(\"a\",{href:\"/setu_game/login\",children:\"back to Log in\"})]})})]});}const mapStateToProps=state=>{const{isOtpSent,otpVerified,organisation}=state.SeTu;const configuredAuth=organisation===null||organisation===void 0?void 0:organisation.configuredAuth;return{isOtpSent,otpVerified,configuredAuth};};const mapDispatchToProps=dispatch=>({sendOtp:(params,successCallback)=>dispatch(sendOtp(params,successCallback)),verifyOtp:(params,successCallback)=>dispatch(verifyOtp(params,successCallback)),updatePassword:(params,successCallback)=>dispatch(updatePassword(params,successCallback))});export default connect(mapStateToProps,mapDispatchToProps)(ForgotPassword);","map":{"version":3,"names":["Form","Input","Button","Modal","Select","React","useState","setuLogo","Otp","passwordResetSuccess","useHistory","connect","sendOtp","verifyOtp","updatePassword","CountryPhoneInput","ConfigProvider","en","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","ForgotPassword","_ref","isOtpSent","otpVerified","configuredAuth","isModalVisible","setIsModalVisible","history","authMethod","setAuthMethod","form","useForm","options","lable","value","handleOtpSent","hasOwnProperty","phone","code","handleCancel","push","handleAuthMethodChange","handleVerifyOtp","otp","handleResetPassword","validateEmail","_","test","Promise","reject","resolve","validatePhone","_value$phone","_value$phone2","_value$phone3","countryCode","short","length","children","className","src","locale","layout","autoComplete","onFinish","initialValues","Item","defaultValue","onChange","name","rules","required","message","validator","placeholder","validate","inline","onKeyPress","e","charCode","which","keyCode","preventDefault","console","log","htmlType","dependencies","hasFeedback","_ref2","getFieldValue","Error","title","visible","onCancel","footer","getContainer","centered","maskClosable","href","mapStateToProps","state","organisation","SeTu","mapDispatchToProps","dispatch","params","successCallback"],"sources":["/opt/bitnami/apache/htdocs/setu_beta_game/src/pages/auth/forgotpassword.js"],"sourcesContent":["import {Form, Input,Button,Modal,Select} from 'antd'\r\nimport './styles.css'\r\nimport React, { useState } from 'react';\r\nimport setuLogo from '../../assets/setuLogo.png';\r\nimport Otp from './otp';\r\nimport passwordResetSuccess from '../../assets/password-reset-success.png'\r\nimport { useHistory } from 'react-router-dom';\r\nimport { connect} from 'react-redux';\r\nimport { sendOtp,verifyOtp,updatePassword } from '../../reduxStore/actions/action';\r\nimport CountryPhoneInput,{ConfigProvider} from 'antd-country-phone-input';\r\nimport en from 'world_countries_lists/data/countries/en/world.json';\r\nfunction ForgotPassword({sendOtp,isOtpSent,verifyOtp,otpVerified,updatePassword,configuredAuth}) {\r\nconst [isModalVisible, setIsModalVisible] = useState(false);\r\nconst history = useHistory();\r\nconst [authMethod,setAuthMethod]=useState('Email');\r\nconst [form] = Form.useForm();\r\nconst options=[\r\n  {\r\n    lable:'Email',\r\n    value:'Email'\r\n  },{\r\n    lable:\"Phone\",\r\n    value:'Phone'\r\n  }\r\n]\r\n const handleOtpSent=(value)=>{\r\n  if(value.hasOwnProperty('phone')){\r\n    value['uniqueId']='+'+value.phone.code+value.phone.phone;\r\n  }\r\n    sendOtp(value,()=>{\r\n\r\n    })\r\n }\r\n const handleCancel=()=>{\r\n    setIsModalVisible(false);\r\n    history.push('/setu_game/login');\r\n }\r\n const handleAuthMethodChange=(value)=>{\r\n  setAuthMethod(value)\r\n\r\n }\r\n\r\n const handleVerifyOtp = async (otp) => {\r\n  verifyOtp({otp},()=>{\r\n\r\n  })\r\n  };\r\n\r\n\r\n  const  handleResetPassword=async(value)=>{\r\n    updatePassword(value,()=>{\r\n      setIsModalVisible(true)\r\n    })\r\n  }\r\n\r\n  const validateEmail = async (_, value) => {\r\n\r\n    // Basic email format validation\r\n    if (!value || !/^\\S+@\\S+\\.\\S+$/.test(value)) {\r\n      if(!value){\r\n        return Promise.reject();\r\n      }\r\n      return Promise.reject('Please enter a valid email address!');\r\n    }\r\n  return Promise.resolve();\r\n};\r\n\r\nconst validatePhone = async (_, value) => {\r\n  // Basic phone number validation\r\n  // Check if the input starts with \"+\" or a digit\r\n  const countryCode = value.short; // Get the country code\r\n\r\n  if (countryCode === 'IN'  && value.phone?.length !== 10) {\r\n    return Promise.reject('Invalid phone number!');\r\n  }\r\n   else if (value.phone?.length < 6 || value.phone?.length > 14) {\r\n      return Promise.reject('Invalid phone number!');\r\n    }\r\n  \r\n\r\n  // Proceed with further validation or logic if needed\r\n\r\n  return Promise.resolve();\r\n\r\n\r\n};\r\n\r\n\r\n\r\n\r\n\r\n    return (\r\n        <>\r\n      {!isOtpSent?\r\n        <div className='component-wrapper'>\r\n        <div className='form-container'>\r\n     \r\n       <img src={setuLogo} className='logo-img'/>\r\n\r\n       <span className='form-heading'>Forgot Password</span>\r\n   \r\n        <div className='form-wrapper'>\r\n               {!otpVerified?\r\n                <ConfigProvider locale={en}>\r\n                <Form\r\n             layout=\"vertical\"\r\n             className='setu-form'\r\n             autoComplete='off'\r\n             onFinish={ handleOtpSent}\r\n             form={form}\r\n             initialValues={{ phone: { short: 'In' } }}\r\n        \r\n            >\r\n     {configuredAuth=='Both'?\r\n    <div>\r\n    <Form.Item\r\n        className='form-item'\r\n    >\r\n    <Select\r\n    className='form-input'\r\n      \r\n          defaultValue=\"Email\"\r\n          onChange={handleAuthMethodChange}\r\n          options={options}\r\n        />\r\n\r\n    </Form.Item>\r\n   { authMethod=='Email'?\r\n   <Form.Item\r\n    className='form-item'\r\n      name=\"uniqueId\"\r\n      rules={[\r\n        {\r\n          required: true,\r\n          message: 'Please input your email id!',\r\n        },\r\n        {\r\n            validator: async (_, value) => {\r\n         \r\n  \r\n              return  validateEmail(_,value)\r\n              \r\n            },\r\n          },\r\n       \r\n      ]}\r\n    >\r\n      <Input  className='form-input' placeholder='Enter email id' />\r\n    </Form.Item>\r\n   \r\n   :\r\n \r\n\r\n   <Form.Item\r\n  name=\"phone\"\r\n   className='form-item'\r\n   form={form}\r\n  rules={[\r\n        { required: true, message: 'Please input your phone number!' },\r\n        validate => ({\r\n          validator(_, value) {\r\n          \r\n            if (!value.phone) {\r\n                return Promise.reject('Please input your phone number');\r\n            }\r\n        \r\n            return validatePhone(_,value)\r\n          },\r\n        }),\r\n      ]}\r\n      \r\n\r\n>\r\n\r\n\r\n\r\n    <CountryPhoneInput  placeholder=\"Enter phone number\"  className='form-input' inline \r\n     defaultValue={{ short: 'In' }}\r\n  \r\n\r\n    onKeyPress={(e) => {\r\n      // Allow only numeric characters\r\n      const charCode = e.which ? e.which : e.keyCode;\r\n      if (charCode > 31 && (charCode < 48 || charCode > 57)) {\r\n        e.preventDefault();\r\n      }\r\n    }}\r\n    />\r\n  \r\n\r\n \r\n</Form.Item>\r\n\r\n\r\n   \r\n   }\r\n\r\n   </div>\r\n    \r\n     :\r\n    configuredAuth=='Email'?\r\n   <Form.Item\r\n    className='form-item'\r\n      name=\"uniqueId\"\r\n      rules={[\r\n        {\r\n          required: true,\r\n          message: 'Please input your email id!',\r\n        },\r\n        {\r\n            validator: async (_, value) => {\r\n         \r\n  \r\n              return  validateEmail(_,value)\r\n              \r\n            },\r\n          },\r\n       \r\n      ]}\r\n    >\r\n      <Input  className='form-input' placeholder='Enter email id' />\r\n    </Form.Item>\r\n   \r\n   :\r\n   <Form.Item\r\n  name=\"phone\"\r\n   className='form-item'\r\n   form={form}\r\n  rules={[\r\n        { required: true, message: 'Please input your phone number!' },\r\n        validate => ({\r\n          validator(_, value) {\r\n            console.log(value)\r\n            if (!value?.phone) {\r\n              return Promise.reject('Please input your phone number');\r\n            }\r\n             return validatePhone(_,value)\r\n          },\r\n        }),\r\n      ]}\r\n      \r\n\r\n>\r\n\r\n\r\n\r\n    <CountryPhoneInput  placeholder=\"Enter phone number\"  className='form-input' inline \r\n     defaultValue={{ short: 'In' }}\r\n  \r\n\r\n    onKeyPress={(e) => {\r\n      // Allow only numeric characters\r\n      const charCode = e.which ? e.which : e.keyCode;\r\n      if (charCode > 31 && (charCode < 48 || charCode > 57)) {\r\n        e.preventDefault();\r\n      }\r\n    }}\r\n    />\r\n  \r\n\r\n \r\n</Form.Item>\r\n   \r\n   \r\n   }\r\n\r\n    <Form.Item\r\n \r\n    >\r\n      <Button className='form-submit-btn' htmlType=\"submit\" >\r\n        Get OTP\r\n      </Button>\r\n    </Form.Item>\r\n            </Form>\r\n            </ConfigProvider>\r\n            :\r\n\r\n            <Form\r\n             layout=\"vertical\"\r\n             className='setu-form'\r\n             autoComplete='off'\r\n             onFinish={ handleResetPassword}\r\n        \r\n            >\r\n      <Form.Item\r\n    className='form-item'\r\n   \r\n      name=\"new_password\"\r\n      rules={[\r\n        {\r\n          required: true,\r\n          message: 'Please input new password!',\r\n        },\r\n      ]}\r\n    >\r\n      <Input  autoComplete=\"new-password\"  placeholder=\"New password\"  className='form-input'   />\r\n    </Form.Item>\r\n\r\n    <Form.Item\r\n    className='form-item'\r\n   \r\n      name=\"confirm_password\"\r\n      dependencies={['new_password']}\r\n        hasFeedback\r\n        rules={[\r\n          {\r\n            required: true,\r\n            message: 'Please confirm your password!',\r\n          },\r\n          ({ getFieldValue }) => ({\r\n            validator(_, value) {\r\n           \r\n              if (!value || getFieldValue('new_password') === value) {\r\n                return Promise.resolve();\r\n              }\r\n              return Promise.reject(new Error('The new password that you entered do not match!'));\r\n            },\r\n          }),\r\n        ]}\r\n    >\r\n      <Input  autoComplete=\"new-password\"  placeholder=\"Confirm password\"  className='form-input'   />\r\n    </Form.Item>\r\n\r\n    <Form.Item\r\n \r\n    >\r\n      <Button className='form-submit-btn' htmlType=\"submit\" >\r\n      Save\r\n      </Button>\r\n    </Form.Item>\r\n            </Form>\r\n\r\n\r\n               }\r\n          \r\n\r\n        </div>\r\n\r\n       </div>\r\n           \r\n        </div>:\r\n        <Otp title={\"Forgot Password\"}  handleVerifyOtp={handleVerifyOtp}/>}\r\n        <Modal\r\n        visible={isModalVisible}\r\n        onCancel={handleCancel}\r\n        footer={null}\r\n        className='success-modal'\r\n        getContainer={false}\r\n        centered={true}\r\n        maskClosable={false}\r\n      >\r\n      <div className='otp-success-modal'>\r\n        <img src={passwordResetSuccess}></img>\r\n        <span>Password Reset Successfully!</span>\r\n        <a href='/setu_game/login'>back to Log in</a>\r\n      </div>\r\n    \r\n      </Modal>\r\n\r\n        </>\r\n    )\r\n}\r\n\r\nconst mapStateToProps = state => {\r\n  const {\r\nisOtpSent,\r\notpVerified,\r\norganisation\r\n}  = state.SeTu;\r\nconst configuredAuth=organisation?.configuredAuth\r\n\r\nreturn { isOtpSent,otpVerified,configuredAuth}\r\n}\r\n\r\n\r\nconst mapDispatchToProps = dispatch =>  ({\r\n  sendOtp: (params,successCallback) => dispatch(sendOtp(params,successCallback)),\r\n  verifyOtp:(params,successCallback)=>dispatch(verifyOtp(params,successCallback)),\r\n  updatePassword:(params,successCallback)=>dispatch(updatePassword(params,successCallback))\r\n\r\n \r\n})\r\n\r\nexport default connect( mapStateToProps,mapDispatchToProps)(ForgotPassword)\r\n\r\n"],"mappings":"AAAA,OAAQA,IAAI,CAAEC,KAAK,CAACC,MAAM,CAACC,KAAK,CAACC,MAAM,KAAO,MAAM,CACpD,MAAO,cAAc,CACrB,MAAO,CAAAC,KAAK,EAAIC,QAAQ,KAAQ,OAAO,CACvC,MAAO,CAAAC,QAAQ,KAAM,2BAA2B,CAChD,MAAO,CAAAC,GAAG,KAAM,OAAO,CACvB,MAAO,CAAAC,oBAAoB,KAAM,yCAAyC,CAC1E,OAASC,UAAU,KAAQ,kBAAkB,CAC7C,OAASC,OAAO,KAAO,aAAa,CACpC,OAASC,OAAO,CAACC,SAAS,CAACC,cAAc,KAAQ,iCAAiC,CAClF,MAAO,CAAAC,iBAAiB,EAAEC,cAAc,KAAO,0BAA0B,CACzE,MAAO,CAAAC,EAAE,KAAM,oDAAoD,CAAC,OAAAC,GAAA,IAAAC,IAAA,CAAAC,IAAA,IAAAC,KAAA,CAAAC,QAAA,IAAAC,SAAA,yBACpE,QAAS,CAAAC,cAAcA,CAAAC,IAAA,CAA0E,IAAzE,CAACb,OAAO,CAACc,SAAS,CAACb,SAAS,CAACc,WAAW,CAACb,cAAc,CAACc,cAAc,CAAC,CAAAH,IAAA,CAC/F,KAAM,CAACI,cAAc,CAAEC,iBAAiB,CAAC,CAAGxB,QAAQ,CAAC,KAAK,CAAC,CAC3D,KAAM,CAAAyB,OAAO,CAAGrB,UAAU,CAAC,CAAC,CAC5B,KAAM,CAACsB,UAAU,CAACC,aAAa,CAAC,CAAC3B,QAAQ,CAAC,OAAO,CAAC,CAClD,KAAM,CAAC4B,IAAI,CAAC,CAAGlC,IAAI,CAACmC,OAAO,CAAC,CAAC,CAC7B,KAAM,CAAAC,OAAO,CAAC,CACZ,CACEC,KAAK,CAAC,OAAO,CACbC,KAAK,CAAC,OACR,CAAC,CAAC,CACAD,KAAK,CAAC,OAAO,CACbC,KAAK,CAAC,OACR,CAAC,CACF,CACA,KAAM,CAAAC,aAAa,CAAED,KAAK,EAAG,CAC5B,GAAGA,KAAK,CAACE,cAAc,CAAC,OAAO,CAAC,CAAC,CAC/BF,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,CAACA,KAAK,CAACG,KAAK,CAACC,IAAI,CAACJ,KAAK,CAACG,KAAK,CAACA,KAAK,CAC1D,CACE7B,OAAO,CAAC0B,KAAK,CAAC,IAAI,CAElB,CAAC,CAAC,CACL,CAAC,CACD,KAAM,CAAAK,YAAY,CAACA,CAAA,GAAI,CACpBb,iBAAiB,CAAC,KAAK,CAAC,CACxBC,OAAO,CAACa,IAAI,CAAC,kBAAkB,CAAC,CACnC,CAAC,CACD,KAAM,CAAAC,sBAAsB,CAAEP,KAAK,EAAG,CACrCL,aAAa,CAACK,KAAK,CAAC,CAErB,CAAC,CAED,KAAM,CAAAQ,eAAe,CAAG,KAAO,CAAAC,GAAG,EAAK,CACtClC,SAAS,CAAC,CAACkC,GAAG,CAAC,CAAC,IAAI,CAEpB,CAAC,CAAC,CACF,CAAC,CAGD,KAAO,CAAAC,mBAAmB,CAAC,KAAM,CAAAV,KAAK,EAAG,CACvCxB,cAAc,CAACwB,KAAK,CAAC,IAAI,CACvBR,iBAAiB,CAAC,IAAI,CAAC,CACzB,CAAC,CAAC,CACJ,CAAC,CAED,KAAM,CAAAmB,aAAa,CAAG,KAAAA,CAAOC,CAAC,CAAEZ,KAAK,GAAK,CAExC;AACA,GAAI,CAACA,KAAK,EAAI,CAAC,gBAAgB,CAACa,IAAI,CAACb,KAAK,CAAC,CAAE,CAC3C,GAAG,CAACA,KAAK,CAAC,CACR,MAAO,CAAAc,OAAO,CAACC,MAAM,CAAC,CAAC,CACzB,CACA,MAAO,CAAAD,OAAO,CAACC,MAAM,CAAC,qCAAqC,CAAC,CAC9D,CACF,MAAO,CAAAD,OAAO,CAACE,OAAO,CAAC,CAAC,CAC1B,CAAC,CAED,KAAM,CAAAC,aAAa,CAAG,KAAAA,CAAOL,CAAC,CAAEZ,KAAK,GAAK,KAAAkB,YAAA,CAAAC,aAAA,CAAAC,aAAA,CACxC;AACA;AACA,KAAM,CAAAC,WAAW,CAAGrB,KAAK,CAACsB,KAAK,CAAE;AAEjC,GAAID,WAAW,GAAK,IAAI,EAAK,EAAAH,YAAA,CAAAlB,KAAK,CAACG,KAAK,UAAAe,YAAA,iBAAXA,YAAA,CAAaK,MAAM,IAAK,EAAE,CAAE,CACvD,MAAO,CAAAT,OAAO,CAACC,MAAM,CAAC,uBAAuB,CAAC,CAChD,CAAC,IACK,IAAI,EAAAI,aAAA,CAAAnB,KAAK,CAACG,KAAK,UAAAgB,aAAA,iBAAXA,aAAA,CAAaI,MAAM,EAAG,CAAC,EAAI,EAAAH,aAAA,CAAApB,KAAK,CAACG,KAAK,UAAAiB,aAAA,iBAAXA,aAAA,CAAaG,MAAM,EAAG,EAAE,CAAE,CAC3D,MAAO,CAAAT,OAAO,CAACC,MAAM,CAAC,uBAAuB,CAAC,CAChD,CAGF;AAEA,MAAO,CAAAD,OAAO,CAACE,OAAO,CAAC,CAAC,CAG1B,CAAC,CAMG,mBACIjC,KAAA,CAAAE,SAAA,EAAAuC,QAAA,EACD,CAACpC,SAAS,cACTP,IAAA,QAAK4C,SAAS,CAAC,mBAAmB,CAAAD,QAAA,cAClCzC,KAAA,QAAK0C,SAAS,CAAC,gBAAgB,CAAAD,QAAA,eAEhC3C,IAAA,QAAK6C,GAAG,CAAEzD,QAAS,CAACwD,SAAS,CAAC,UAAU,CAAC,CAAC,cAE1C5C,IAAA,SAAM4C,SAAS,CAAC,cAAc,CAAAD,QAAA,CAAC,iBAAe,CAAM,CAAC,cAEpD3C,IAAA,QAAK4C,SAAS,CAAC,cAAc,CAAAD,QAAA,CACrB,CAACnC,WAAW,cACZR,IAAA,CAACH,cAAc,EAACiD,MAAM,CAAEhD,EAAG,CAAA6C,QAAA,cAC3BzC,KAAA,CAACrB,IAAI,EACRkE,MAAM,CAAC,UAAU,CACjBH,SAAS,CAAC,WAAW,CACrBI,YAAY,CAAC,KAAK,CAClBC,QAAQ,CAAG7B,aAAc,CACzBL,IAAI,CAAEA,IAAK,CACXmC,aAAa,CAAE,CAAE5B,KAAK,CAAE,CAAEmB,KAAK,CAAE,IAAK,CAAE,CAAE,CAAAE,QAAA,EAGjDlC,cAAc,EAAE,MAAM,cACxBP,KAAA,QAAAyC,QAAA,eACA3C,IAAA,CAACnB,IAAI,CAACsE,IAAI,EACNP,SAAS,CAAC,WAAW,CAAAD,QAAA,cAEzB3C,IAAA,CAACf,MAAM,EACP2D,SAAS,CAAC,YAAY,CAEhBQ,YAAY,CAAC,OAAO,CACpBC,QAAQ,CAAE3B,sBAAuB,CACjCT,OAAO,CAAEA,OAAQ,CAClB,CAAC,CAEK,CAAC,CACXJ,UAAU,EAAE,OAAO,cACrBb,IAAA,CAACnB,IAAI,CAACsE,IAAI,EACTP,SAAS,CAAC,WAAW,CACnBU,IAAI,CAAC,UAAU,CACfC,KAAK,CAAE,CACL,CACEC,QAAQ,CAAE,IAAI,CACdC,OAAO,CAAE,6BACX,CAAC,CACD,CACIC,SAAS,CAAE,KAAAA,CAAO3B,CAAC,CAAEZ,KAAK,GAAK,CAG7B,MAAQ,CAAAW,aAAa,CAACC,CAAC,CAACZ,KAAK,CAAC,CAEhC,CACF,CAAC,CAEH,CAAAwB,QAAA,cAEF3C,IAAA,CAAClB,KAAK,EAAE8D,SAAS,CAAC,YAAY,CAACe,WAAW,CAAC,gBAAgB,CAAE,CAAC,CACrD,CAAC,cAKb3D,IAAA,CAACnB,IAAI,CAACsE,IAAI,EACXG,IAAI,CAAC,OAAO,CACXV,SAAS,CAAC,WAAW,CACrB7B,IAAI,CAAEA,IAAK,CACZwC,KAAK,CAAE,CACD,CAAEC,QAAQ,CAAE,IAAI,CAAEC,OAAO,CAAE,iCAAkC,CAAC,CAC9DG,QAAQ,GAAK,CACXF,SAASA,CAAC3B,CAAC,CAAEZ,KAAK,CAAE,CAElB,GAAI,CAACA,KAAK,CAACG,KAAK,CAAE,CACd,MAAO,CAAAW,OAAO,CAACC,MAAM,CAAC,gCAAgC,CAAC,CAC3D,CAEA,MAAO,CAAAE,aAAa,CAACL,CAAC,CAACZ,KAAK,CAAC,CAC/B,CACF,CAAC,CAAC,CACF,CAAAwB,QAAA,cAOJ3C,IAAA,CAACJ,iBAAiB,EAAE+D,WAAW,CAAC,oBAAoB,CAAEf,SAAS,CAAC,YAAY,CAACiB,MAAM,MAClFT,YAAY,CAAE,CAAEX,KAAK,CAAE,IAAK,CAAE,CAG/BqB,UAAU,CAAGC,CAAC,EAAK,CACjB;AACA,KAAM,CAAAC,QAAQ,CAAGD,CAAC,CAACE,KAAK,CAAGF,CAAC,CAACE,KAAK,CAAGF,CAAC,CAACG,OAAO,CAC9C,GAAIF,QAAQ,CAAG,EAAE,GAAKA,QAAQ,CAAG,EAAE,EAAIA,QAAQ,CAAG,EAAE,CAAC,CAAE,CACrDD,CAAC,CAACI,cAAc,CAAC,CAAC,CACpB,CACF,CAAE,CACD,CAAC,CAIK,CAAC,EAMJ,CAAC,CAGL1D,cAAc,EAAE,OAAO,cACxBT,IAAA,CAACnB,IAAI,CAACsE,IAAI,EACTP,SAAS,CAAC,WAAW,CACnBU,IAAI,CAAC,UAAU,CACfC,KAAK,CAAE,CACL,CACEC,QAAQ,CAAE,IAAI,CACdC,OAAO,CAAE,6BACX,CAAC,CACD,CACIC,SAAS,CAAE,KAAAA,CAAO3B,CAAC,CAAEZ,KAAK,GAAK,CAG7B,MAAQ,CAAAW,aAAa,CAACC,CAAC,CAACZ,KAAK,CAAC,CAEhC,CACF,CAAC,CAEH,CAAAwB,QAAA,cAEF3C,IAAA,CAAClB,KAAK,EAAE8D,SAAS,CAAC,YAAY,CAACe,WAAW,CAAC,gBAAgB,CAAE,CAAC,CACrD,CAAC,cAGb3D,IAAA,CAACnB,IAAI,CAACsE,IAAI,EACXG,IAAI,CAAC,OAAO,CACXV,SAAS,CAAC,WAAW,CACrB7B,IAAI,CAAEA,IAAK,CACZwC,KAAK,CAAE,CACD,CAAEC,QAAQ,CAAE,IAAI,CAAEC,OAAO,CAAE,iCAAkC,CAAC,CAC9DG,QAAQ,GAAK,CACXF,SAASA,CAAC3B,CAAC,CAAEZ,KAAK,CAAE,CAClBiD,OAAO,CAACC,GAAG,CAAClD,KAAK,CAAC,CAClB,GAAI,EAACA,KAAK,SAALA,KAAK,WAALA,KAAK,CAAEG,KAAK,EAAE,CACjB,MAAO,CAAAW,OAAO,CAACC,MAAM,CAAC,gCAAgC,CAAC,CACzD,CACC,MAAO,CAAAE,aAAa,CAACL,CAAC,CAACZ,KAAK,CAAC,CAChC,CACF,CAAC,CAAC,CACF,CAAAwB,QAAA,cAOJ3C,IAAA,CAACJ,iBAAiB,EAAE+D,WAAW,CAAC,oBAAoB,CAAEf,SAAS,CAAC,YAAY,CAACiB,MAAM,MAClFT,YAAY,CAAE,CAAEX,KAAK,CAAE,IAAK,CAAE,CAG/BqB,UAAU,CAAGC,CAAC,EAAK,CACjB;AACA,KAAM,CAAAC,QAAQ,CAAGD,CAAC,CAACE,KAAK,CAAGF,CAAC,CAACE,KAAK,CAAGF,CAAC,CAACG,OAAO,CAC9C,GAAIF,QAAQ,CAAG,EAAE,GAAKA,QAAQ,CAAG,EAAE,EAAIA,QAAQ,CAAG,EAAE,CAAC,CAAE,CACrDD,CAAC,CAACI,cAAc,CAAC,CAAC,CACpB,CACF,CAAE,CACD,CAAC,CAIK,CAAC,cAKRnE,IAAA,CAACnB,IAAI,CAACsE,IAAI,EAAAR,QAAA,cAGR3C,IAAA,CAACjB,MAAM,EAAC6D,SAAS,CAAC,iBAAiB,CAAC0B,QAAQ,CAAC,QAAQ,CAAA3B,QAAA,CAAE,SAEvD,CAAQ,CAAC,CACA,CAAC,EACE,CAAC,CACS,CAAC,cAGjBzC,KAAA,CAACrB,IAAI,EACJkE,MAAM,CAAC,UAAU,CACjBH,SAAS,CAAC,WAAW,CACrBI,YAAY,CAAC,KAAK,CAClBC,QAAQ,CAAGpB,mBAAoB,CAAAc,QAAA,eAGtC3C,IAAA,CAACnB,IAAI,CAACsE,IAAI,EACZP,SAAS,CAAC,WAAW,CAEnBU,IAAI,CAAC,cAAc,CACnBC,KAAK,CAAE,CACL,CACEC,QAAQ,CAAE,IAAI,CACdC,OAAO,CAAE,4BACX,CAAC,CACD,CAAAd,QAAA,cAEF3C,IAAA,CAAClB,KAAK,EAAEkE,YAAY,CAAC,cAAc,CAAEW,WAAW,CAAC,cAAc,CAAEf,SAAS,CAAC,YAAY,CAAI,CAAC,CACnF,CAAC,cAEZ5C,IAAA,CAACnB,IAAI,CAACsE,IAAI,EACVP,SAAS,CAAC,WAAW,CAEnBU,IAAI,CAAC,kBAAkB,CACvBiB,YAAY,CAAE,CAAC,cAAc,CAAE,CAC7BC,WAAW,MACXjB,KAAK,CAAE,CACL,CACEC,QAAQ,CAAE,IAAI,CACdC,OAAO,CAAE,+BACX,CAAC,CACDgB,KAAA,MAAC,CAAEC,aAAc,CAAC,CAAAD,KAAA,OAAM,CACtBf,SAASA,CAAC3B,CAAC,CAAEZ,KAAK,CAAE,CAElB,GAAI,CAACA,KAAK,EAAIuD,aAAa,CAAC,cAAc,CAAC,GAAKvD,KAAK,CAAE,CACrD,MAAO,CAAAc,OAAO,CAACE,OAAO,CAAC,CAAC,CAC1B,CACA,MAAO,CAAAF,OAAO,CAACC,MAAM,CAAC,GAAI,CAAAyC,KAAK,CAAC,iDAAiD,CAAC,CAAC,CACrF,CACF,CAAC,EAAC,CACF,CAAAhC,QAAA,cAEJ3C,IAAA,CAAClB,KAAK,EAAEkE,YAAY,CAAC,cAAc,CAAEW,WAAW,CAAC,kBAAkB,CAAEf,SAAS,CAAC,YAAY,CAAI,CAAC,CACvF,CAAC,cAEZ5C,IAAA,CAACnB,IAAI,CAACsE,IAAI,EAAAR,QAAA,cAGR3C,IAAA,CAACjB,MAAM,EAAC6D,SAAS,CAAC,iBAAiB,CAAC0B,QAAQ,CAAC,QAAQ,CAAA3B,QAAA,CAAE,MAEvD,CAAQ,CAAC,CACA,CAAC,EACE,CAAC,CAMN,CAAC,EAEF,CAAC,CAEA,CAAC,cACN3C,IAAA,CAACX,GAAG,EAACuF,KAAK,CAAE,iBAAkB,CAAEjD,eAAe,CAAEA,eAAgB,CAAC,CAAC,cACnE3B,IAAA,CAAChB,KAAK,EACN6F,OAAO,CAAEnE,cAAe,CACxBoE,QAAQ,CAAEtD,YAAa,CACvBuD,MAAM,CAAE,IAAK,CACbnC,SAAS,CAAC,eAAe,CACzBoC,YAAY,CAAE,KAAM,CACpBC,QAAQ,CAAE,IAAK,CACfC,YAAY,CAAE,KAAM,CAAAvC,QAAA,cAEtBzC,KAAA,QAAK0C,SAAS,CAAC,mBAAmB,CAAAD,QAAA,eAChC3C,IAAA,QAAK6C,GAAG,CAAEvD,oBAAqB,CAAM,CAAC,cACtCU,IAAA,SAAA2C,QAAA,CAAM,8BAA4B,CAAM,CAAC,cACzC3C,IAAA,MAAGmF,IAAI,CAAC,kBAAkB,CAAAxC,QAAA,CAAC,gBAAc,CAAG,CAAC,EAC1C,CAAC,CAEC,CAAC,EAEJ,CAAC,CAEX,CAEA,KAAM,CAAAyC,eAAe,CAAGC,KAAK,EAAI,CAC/B,KAAM,CACR9E,SAAS,CACTC,WAAW,CACX8E,YACA,CAAC,CAAID,KAAK,CAACE,IAAI,CACf,KAAM,CAAA9E,cAAc,CAAC6E,YAAY,SAAZA,YAAY,iBAAZA,YAAY,CAAE7E,cAAc,CAEjD,MAAO,CAAEF,SAAS,CAACC,WAAW,CAACC,cAAc,CAAC,CAC9C,CAAC,CAGD,KAAM,CAAA+E,kBAAkB,CAAGC,QAAQ,GAAM,CACvChG,OAAO,CAAEA,CAACiG,MAAM,CAACC,eAAe,GAAKF,QAAQ,CAAChG,OAAO,CAACiG,MAAM,CAACC,eAAe,CAAC,CAAC,CAC9EjG,SAAS,CAACA,CAACgG,MAAM,CAACC,eAAe,GAAGF,QAAQ,CAAC/F,SAAS,CAACgG,MAAM,CAACC,eAAe,CAAC,CAAC,CAC/EhG,cAAc,CAACA,CAAC+F,MAAM,CAACC,eAAe,GAAGF,QAAQ,CAAC9F,cAAc,CAAC+F,MAAM,CAACC,eAAe,CAAC,CAG1F,CAAC,CAAC,CAEF,cAAe,CAAAnG,OAAO,CAAE4F,eAAe,CAACI,kBAAkB,CAAC,CAACnF,cAAc,CAAC","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}