{"version":3,"file":"js/application-e478c55bdce7dc679b3a.js","mappings":"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","sources":["webpack://app/./app/javascript/bundles/CountryField/CountryField.tsx","webpack://app/./app/javascript/bundles/StateField/StateField.tsx","webpack://app/./app/javascript/bundles/AddressFields/AddressFields.tsx","webpack://app/./app/javascript/bundles/nanostores/ValidationsArray.tsx","webpack://app/./app/javascript/bundles/LicenseFields/LicenseFields.tsx","webpack://app/./app/javascript/bundles/Onboarding/QuestionTextField.tsx","webpack://app/./app/javascript/bundles/Onboarding/QuestionDateField.tsx","webpack://app/./app/javascript/bundles/Onboarding/QuestionCheckbox.tsx","webpack://app/./app/javascript/bundles/Onboarding/QuestionCheckboxes.tsx","webpack://app/./app/javascript/bundles/Onboarding/QuestionSelect.tsx","webpack://app/./app/javascript/bundles/InfoBox/InfoBox.tsx","webpack://app/./app/javascript/bundles/Onboarding/OnboardingExemptionCheck.tsx","webpack://app/./app/javascript/bundles/Onboarding/OnboardingQuestions.tsx","webpack://app/./app/javascript/bundles/Onboarding/Onboarding.tsx","webpack://app/./app/javascript/bundles/SignUp/SignUp.tsx","webpack://app/./app/javascript/bundles/DOBField/DOBField.tsx","webpack://app/./app/javascript/bundles/EINField/EINField.tsx","webpack://app/./app/javascript/bundles/ImageCrop/ImageUploadModal.tsx","webpack://app/./app/javascript/bundles/ImageCrop/ImageCrop.tsx","webpack://app/./app/javascript/bundles/BeneficialOwner/BeneficialOwnerForm.tsx","webpack://app/./app/javascript/packs/application.js","webpack://app/./app/javascript/bundles/DOIField/DOIField.tsx","webpack://app/./app/javascript/bundles/ValidatedSubmitButton/ValidatedSubmitButton.tsx","webpack://app/./app/javascript/bundles/Notes/Notes.tsx","webpack://app/./app/javascript/bundles/ProfileForm/ProfileForm.tsx","webpack://app/./app/javascript/bundles/ProfileForm/ProfileAdditionalForm.tsx"],"sourcesContent":["import React from 'react';\n\ninterface CountryFieldProps {\n selectedCountry: string;\n modelName: string;\n fieldName: string;\n setCountryFunction: (country: string) => void;\n prefix?: string;\n disabled?: boolean;\n required?: boolean;\n}\n\nexport const CountryField = ({\n selectedCountry,\n modelName,\n fieldName = 'country',\n prefix = '',\n setCountryFunction,\n disabled = false,\n required = true }: CountryFieldProps) => {\n\n console.log('CountryField', selectedCountry, modelName);\n\n const countriesOptions = CountriesWithStates.map((country) => {\n const selected = country.name === selectedCountry ? 'selected' : '';\n return (\n \n );\n });\n\n return (\n
\n setCountryFunction(e.target.value)}\n name={`${modelName}[${prefix}${fieldName}]`}\n disabled={disabled}\n required={required}\n >\n \n {countriesOptions}\n \n \n
\n );\n};\n\ninterface CountryWithStates {\n name: string;\n states?: Array;\n}\n\nexport const CountriesWithStates: CountryWithStates[] = [\n {\n name: 'United States of America', states: [\n \"Alabama\",\n \"Alaska\",\n \"Armed Forces Europe/Middle-East/Canada\",\n \"Armed Forces Americas (except Canada)\",\n \"Armed Forces Pacific\",\n \"Arizona\",\n \"Arkansas\",\n \"California\",\n \"Colorado\",\n \"Connecticut\",\n \"Delaware\",\n \"District of Columbia\",\n \"Florida\",\n \"Georgia\",\n \"Hawaii\",\n \"Idaho\",\n \"Illinois\",\n \"Indiana\",\n \"Iowa\",\n \"Kansas\",\n \"Kentucky\",\n \"Louisiana\",\n \"Maine\",\n \"Maryland\",\n \"Massachusetts\",\n \"Michigan\",\n \"Minnesota\",\n \"Mississippi\",\n \"Missouri\",\n \"Montana\",\n \"Nebraska\",\n \"Nevada\",\n \"New Hampshire\",\n \"New Jersey\",\n \"New Mexico\",\n \"New York\",\n \"North Carolina\",\n \"North Dakota\",\n \"Ohio\",\n \"Oklahoma\",\n \"Oregon\",\n \"Pennsylvania\",\n \"Rhode Island\",\n \"South Carolina\",\n \"South Dakota\",\n \"Tennessee\",\n \"Texas\",\n \"Utah\",\n \"Vermont\",\n \"Virginia\",\n \"Washington\",\n \"West Virginia\",\n \"Wisconsin\",\n \"Wyoming\"\n ]\n },\n { name: 'Afghanistan', states: [] },\n { name: 'Albania', states: [] },\n { name: 'Algeria', states: [] },\n { name: 'American Samoa', states: [] },\n { name: 'Andorra', states: [] },\n { name: 'Angola', states: [] },\n { name: 'Anguilla', states: [] },\n { name: 'Antarctica', states: [] },\n { name: 'Antigua And Barbuda', states: [] },\n { name: 'Argentina', states: [] },\n { name: 'Armenia', states: [] },\n { name: 'Aruba', states: [] },\n { name: 'Australia', states: [] },\n { name: 'Austria', states: [] },\n { name: 'Azerbaijan', states: [] },\n { name: 'Bahamas', states: [] },\n { name: 'Bahrain', states: [] },\n { name: 'Bangladesh', states: [] },\n { name: 'Barbados', states: [] },\n { name: 'Belarus', states: [] },\n { name: 'Belgium', states: [] },\n { name: 'Belize', states: [] },\n { name: 'Benin', states: [] },\n { name: 'Bermuda', states: [] },\n { name: 'Bhutan', states: [] },\n { name: 'bissau', states: [] },\n { name: 'Bolivia, Plurinational State Of', states: [] },\n { name: 'Bonaire, Sint Eustatius And Saba', states: [] },\n { name: 'Bosnia And Herzegovina', states: [] },\n { name: 'Botswana', states: [] },\n { name: 'Bouvet Island', states: [] },\n { name: 'Brazil', states: [] },\n { name: 'British Indian Ocean Territory', states: [] },\n { name: 'Brunei Darussalam', states: [] },\n { name: 'Bulgaria', states: [] },\n { name: 'Burkina Faso', states: [] },\n { name: 'Burundi', states: [] },\n { name: 'Cambodia', states: [] },\n { name: 'Cameroon', states: [] },\n {\n name: 'Canada', states: [\n \"Alberta\",\n \"British Columbia\",\n \"Manitoba\",\n \"New Brunswick\",\n \"Newfoundland and Labrador\",\n \"Northwest Territory\",\n \"Nova Scotia\",\n \"Nunavut\",\n \"Ontario\",\n \"Yukon Territory\",\n \"Quebec\",\n \"Saskatchewan\",\n \"Prince Edward island\",\n ]\n },\n { name: 'Cape Verde', states: [] },\n { name: 'Cayman Islands', states: [] },\n { name: 'Central African Republic', states: [] },\n { name: 'Chad', states: [] },\n { name: 'Chile', states: [] },\n { name: 'China', states: [] },\n { name: 'Christmas Island', states: [] },\n { name: 'Cocos (Keeling) Islands', states: [] },\n { name: 'Colombia', states: [] },\n { name: 'Comoros', states: [] },\n { name: 'Congo', states: [] },\n { name: 'Congo, The Democratic Republic Of The', states: [] },\n { name: 'Cook Islands', states: [] },\n { name: 'Costa Rica', states: [] },\n { name: 'Croatia', states: [] },\n { name: 'Cuba', states: [] },\n { name: 'Curaçao', states: [] },\n { name: 'Cyprus', states: [] },\n { name: 'Czech Republic', states: [] },\n { name: \"Côte D'ivoire\", states: [] },\n { name: 'Denmark', states: [] },\n { name: 'Djibouti', states: [] },\n { name: 'Dominica', states: [] },\n { name: 'Dominican Republic', states: [] },\n { name: 'Ecuador', states: [] },\n { name: 'Egypt', states: [] },\n { name: 'El Salvador', states: [] },\n { name: 'Equatorial Guinea', states: [] },\n { name: 'Eritrea', states: [] },\n { name: 'Estonia', states: [] },\n { name: 'Ethiopia', states: [] },\n { name: 'Falkland Islands (Malvinas)', states: [] },\n { name: 'Faroe Islands', states: [] },\n { name: 'Fiji', states: [] },\n { name: 'Finland', states: [] },\n { name: 'France', states: [] },\n { name: 'French Guiana', states: [] },\n { name: 'French Polynesia', states: [] },\n { name: 'French Southern Territories', states: [] },\n { name: 'Gabon', states: [] },\n { name: 'Gambia', states: [] },\n { name: 'Georgia', states: [] },\n { name: 'Germany', states: [] },\n { name: 'Ghana', states: [] },\n { name: 'Gibraltar', states: [] },\n { name: 'Greece', states: [] },\n { name: 'Greenland', states: [] },\n { name: 'Grenada', states: [] },\n { name: 'Guadeloupe', states: [] },\n { name: 'Guam', states: [] },\n { name: 'Guatemala', states: [] },\n { name: 'Guernsey', states: [] },\n { name: 'Guinea', states: [] },\n { name: 'Guyana', states: [] },\n { name: 'Haiti', states: [] },\n { name: 'Heard Island And Mcdonald Islands', states: [] },\n { name: 'Holy See (Vatican City State)', states: [] },\n { name: 'Honduras', states: [] },\n { name: 'Hong Kong', states: [] },\n { name: 'Hungary', states: [] },\n { name: 'Iceland', states: [] },\n { name: 'India', states: [] },\n { name: 'Indonesia', states: [] },\n { name: 'Iran, Islamic Republic Of', states: [] },\n { name: 'Iraq', states: [] },\n { name: 'Ireland', states: [] },\n { name: 'Isle Of Man', states: [] },\n { name: 'Israel', states: [] },\n { name: 'Italy', states: [] },\n { name: 'Jamaica', states: [] },\n { name: 'Japan', states: [] },\n { name: 'Jersey', states: [] },\n { name: 'Jordan', states: [] },\n { name: 'Kazakhstan', states: [] },\n { name: 'Kenya', states: [] },\n { name: 'Kiribati', states: [] },\n { name: \"Korea, Democratic People's Republic Of\", states: [] },\n { name: 'Korea, Republic Of', states: [] },\n { name: 'Kuwait', states: [] },\n { name: 'Kyrgyzstan', states: [] },\n { name: \"Lao People's Democratic Republic\", states: [] },\n { name: 'Latvia', states: [] },\n { name: 'Lebanon', states: [] },\n { name: 'Lesotho', states: [] },\n { name: 'leste', states: [] },\n { name: 'Liberia', states: [] },\n { name: 'Libya', states: [] },\n { name: 'Liechtenstein', states: [] },\n { name: 'Lithuania', states: [] },\n { name: 'Luxembourg', states: [] },\n { name: 'Macao', states: [] },\n { name: 'Macedonia, The Former Yugoslav Republic Of', states: [] },\n { name: 'Madagascar', states: [] },\n { name: 'Malawi', states: [] },\n { name: 'Malaysia', states: [] },\n { name: 'Maldives', states: [] },\n { name: 'Mali', states: [] },\n { name: 'Malta', states: [] },\n { name: 'Marshall Islands', states: [] },\n { name: 'Martinique', states: [] },\n { name: 'Mauritania', states: [] },\n { name: 'Mauritius', states: [] },\n { name: 'Mayotte', states: [] },\n {\n name: 'Mexico', states: [\n \"Chihuahua\",\n \"Sonora\",\n \"Coahuila\",\n \"Durango\",\n \"Oaxaca\",\n \"Tamaulipas\",\n \"Jalisco\",\n \"Zacatecas\",\n \"Baja California Sur\",\n \"Chiapas\",\n \"Veracruz\",\n \"Baja California\",\n \"Nuevo León\",\n \"Guerrero\",\n \"San Luis Potosí\",\n \"Michoacán\",\n \"Sinaloa\",\n \"Campeche\",\n \"Quintana Roo\",\n \"Yucatán\",\n \"Puebla\",\n \"Guanajuato\",\n \"Nayarit\",\n \"Tabasco\",\n \"México\",\n \"Hidalgo\",\n \"Querétaro\",\n \"Colima\",\n \"Aguascalientes\",\n \"Morelos\",\n \"Tlaxcala\",\n \"Mexican Federal District\",\n ]\n },\n { name: 'Micronesia Federated States', states: [] },\n { name: 'Micronesia, Federated States', states: [] },\n { name: 'Moldova, Republic Of', states: [] },\n { name: 'Monaco', states: [] },\n { name: 'Mongolia', states: [] },\n { name: 'Montenegro', states: [] },\n { name: 'Montserrat', states: [] },\n { name: 'Morocco', states: [] },\n { name: 'Mozambique', states: [] },\n { name: 'Myanmar', states: [] },\n { name: 'Namibia', states: [] },\n { name: 'Nauru', states: [] },\n { name: 'Nepal', states: [] },\n { name: 'Netherlands', states: [] },\n { name: 'New Caledonia', states: [] },\n { name: 'New Zealand', states: [] },\n { name: 'Nicaragua', states: [] },\n { name: 'Niger', states: [] },\n { name: 'Nigeria', states: [] },\n { name: 'Niue', states: [] },\n { name: 'Norfolk Island', states: [] },\n { name: 'Northern Mariana Islands', states: [] },\n { name: 'Norway', states: [] },\n { name: 'Oman', states: [] },\n { name: 'Pakistan', states: [] },\n { name: 'Palau', states: [] },\n { name: 'Palestinian Territory, Occupied', states: [] },\n { name: 'Panama', states: [] },\n { name: 'Papua New Guinea', states: [] },\n { name: 'Paraguay', states: [] },\n { name: 'Peru', states: [] },\n { name: 'Philippines', states: [] },\n { name: 'Pitcairn', states: [] },\n { name: 'Poland', states: [] },\n { name: 'Portugal', states: [] },\n { name: 'Puerto Rico', states: [] },\n { name: 'Qatar', states: [] },\n { name: 'Romania', states: [] },\n { name: 'Russian Federation', states: [] },\n { name: 'Rwanda', states: [] },\n { name: 'Réunion', states: [] },\n { name: 'Saint Barthélemy', states: [] },\n { name: 'Saint Helena, Ascension And Tristan Da Cunha', states: [] },\n { name: 'Saint Kitts And Nevis', states: [] },\n { name: 'Saint Lucia', states: [] },\n { name: 'Saint Martin (french Part)', states: [] },\n { name: 'Saint Pierre And Miquelon', states: [] },\n { name: 'Saint Vincent And The Grenadines', states: [] },\n { name: 'Samoa', states: [] },\n { name: 'San Marino', states: [] },\n { name: 'Sao Tome And Principe', states: [] },\n { name: 'Saudi Arabia', states: [] },\n { name: 'Senegal', states: [] },\n { name: 'Serbia', states: [] },\n { name: 'Seychelles', states: [] },\n { name: 'Sierra Leone', states: [] },\n { name: 'Singapore', states: [] },\n { name: 'Sint Maarten (dutch Part)', states: [] },\n { name: 'Slovakia', states: [] },\n { name: 'Slovenia', states: [] },\n { name: 'Solomon Islands', states: [] },\n { name: 'Somalia', states: [] },\n { name: 'South Africa', states: [] },\n { name: 'South Georgia And The South Sandwich Islands', states: [] },\n { name: 'South Sudan', states: [] },\n { name: 'Spain', states: [] },\n { name: 'Sri Lanka', states: [] },\n { name: 'Sudan', states: [] },\n { name: 'Suriname', states: [] },\n { name: 'Svalbard And Jan Mayen', states: [] },\n { name: 'Swaziland', states: [] },\n { name: 'Sweden', states: [] },\n { name: 'Switzerland', states: [] },\n { name: 'Syrian Arab Republic', states: [] },\n { name: 'Taiwan', states: [] },\n { name: 'Tajikistan', states: [] },\n { name: 'Tanzania, United Republic Of', states: [] },\n { name: 'Thailand', states: [] },\n { name: 'Togo', states: [] },\n { name: 'Tokelau', states: [] },\n { name: 'Tonga', states: [] },\n { name: 'Trinidad And Tobago', states: [] },\n { name: 'Tunisia', states: [] },\n { name: 'Turkey', states: [] },\n { name: 'Turkmenistan', states: [] },\n { name: 'Turks And Caicos Islands', states: [] },\n { name: 'Tuvalu', states: [] },\n { name: 'U.S. Virgin Islands', states: [] },\n { name: 'Uganda', states: [] },\n { name: 'Ukraine', states: [] },\n { name: 'United Arab Emirates', states: [] },\n { name: 'United Kingdom', states: [] },\n { name: 'Uruguay', states: [] },\n { name: 'Uzbekistan', states: [] },\n { name: 'Vanuatu', states: [] },\n { name: 'Venezuela, Bolivarian Republic Of', states: [] },\n { name: 'Viet Nam', states: [] },\n { name: 'Virgin Islands, British', states: [] },\n { name: 'Wallis And Futuna', states: [] },\n { name: 'Western Sahara', states: [] },\n { name: 'Yemen', states: [] },\n { name: 'Zambia', states: [] },\n { name: 'Zimbabwe', states: [] },\n { name: 'Åland Islands', states: [] }\n];\n","import React from 'react';\n\ninterface StateFieldProps {\n states: Array | undefined;\n selectedState: string | null;\n modelName: string;\n fieldName: string;\n setStateFunction?: (state: string) => void;\n prefix?: string;\n disabled?: boolean;\n required?: boolean | null;\n}\n\nexport const StateField = ({\n states = [],\n selectedState,\n modelName,\n fieldName = 'state',\n setStateFunction,\n prefix = '',\n disabled = false,\n required = true\n}: StateFieldProps) => {\n // If states is an empty array, render a text field that is not required, otherwise render a select field from states that is required\n const selectedStateObject = states.find(state => state === selectedState);\n\n return (\n
\n {states.length === 0 ? (\n setStateFunction && setStateFunction(e.target.value)}\n className=\"form-control\"\n disabled={disabled}\n required={required === true || required === null}\n />\n ) : (\n setStateFunction && setStateFunction(e.target.value)}\n disabled={disabled}\n required={required === true || required === null}\n >\n \n {states.map((state, index) => (\n \n {state}\n \n ))}\n \n )}\n \n
\n );\n}\n","import React from 'react';\nimport { CountryField, CountriesWithStates } from '../CountryField/CountryField';\nimport { StateField } from '../StateField/StateField';\n\ninterface AddressFieldsProps {\n selectedStreetAddress?: string;\n selectedAddressLine2?: string;\n selectedCity?: string;\n selectedState: string;\n selectedCountry: string;\n selectedZip?: string;\n modelName: string;\n addressLine2Name: string;\n prefix?: string;\n onChange: any;\n fieldsDisabled?: boolean;\n fieldsRequired?: boolean;\n}\n\nexport const AddressFields = ({\n selectedStreetAddress = '',\n selectedAddressLine2 = '',\n selectedCity = '',\n selectedState = '',\n selectedCountry = '',\n selectedZip = '',\n modelName = '',\n addressLine2Name = 'address_line_2',\n prefix = '',\n onChange = () => { },\n fieldsDisabled = false,\n fieldsRequired = true\n}: AddressFieldsProps) => {\n const [country, setCountry] = React.useState(selectedCountry);\n const [state, setState] = React.useState(selectedState);\n const [streetAddress, setStreetAddress] = React.useState(selectedStreetAddress);\n const [addressLine2, setAddressLine2] = React.useState(selectedAddressLine2);\n const [city, setCity] = React.useState(selectedCity);\n const [zip, setZip] = React.useState(selectedZip);\n\n const selectedCountryObject = CountriesWithStates.find(c => c.name === country);\n const selectedCountryStates: Array | undefined = selectedCountryObject ? selectedCountryObject.states : [];\n\n React.useEffect(() => {\n onChange(`${prefix}country`, country);\n }, [country]);\n\n React.useEffect(() => {\n onChange(`${prefix}state`, state);\n }, [state]);\n\n React.useEffect(() => {\n onChange(`${prefix}street_address`, streetAddress);\n }, [streetAddress]);\n\n React.useEffect(() => {\n onChange(`${prefix}${addressLine2Name}`, addressLine2);\n }, [addressLine2]);\n\n React.useEffect(() => {\n onChange(`${prefix}city`, city);\n }, [city]);\n\n React.useEffect(() => {\n onChange(`${prefix}zip`, zip);\n }, [zip]);\n\n return (\n
\n \n setStreetAddress(e.target.value)}\n disabled={fieldsDisabled}\n required={fieldsRequired}\n />\n setAddressLine2(e.target.value)}\n />\n \n setCity(e.target.value)}\n disabled={fieldsDisabled}\n required={fieldsRequired}\n />\n setZip(e.target.value)}\n disabled={fieldsDisabled}\n required={fieldsRequired}\n />\n
\n );\n}\n\nconst StandardFormTextField = ({\n fieldName,\n placeholder,\n type = 'text',\n value,\n onChange,\n disabled = false,\n required = true\n}: {\n fieldName: string,\n placeholder: string,\n type?: string,\n value?: string,\n onChange?: any,\n disabled?: boolean,\n required?: boolean\n}) => {\n return (\n
\n \n \n
\n );\n}\n","import { atom } from 'nanostores';\n\nexport const $ValidationsArray = atom([]);\n\n// Prevent duplicate fields from being added to the validations array\nexport function addValidationField(name: string) {\n if (!$ValidationsArray.get().includes(name)) {\n $ValidationsArray.set([...$ValidationsArray.get(), name]);\n }\n}\n\n// Remove field from validations array\nexport function removeValidationField(name: string) {\n $ValidationsArray.set($ValidationsArray.get().filter((field) => field !== name));\n}","import React from 'react';\n\nimport { CountryField, CountriesWithStates } from '../CountryField/CountryField';\nimport { StateField } from '../StateField/StateField';\n\nimport { useStore } from '@nanostores/react';\nimport { $ValidationsArray, addValidationField, removeValidationField } from '../nanostores/ValidationsArray';\n\ninterface LicenseFieldsProps {\n types_of_licenses: Array<[string, string, {\n license_number: boolean,\n license_country: boolean,\n license_state: boolean,\n identification_expiration_date: boolean\n }]>;\n modelName: string;\n selectedTypeOfLicense?: string;\n selectedLicenseNumber?: string;\n selectedLicenseCountry?: string;\n selectedLicenseState?: string;\n selectedIdentificationExpirationDate?: string;\n prefix?: string;\n onChange?: any;\n fieldsDisabled?: boolean;\n fieldsRequired?: boolean;\n}\n\nexport const LicenseFields = ({\n modelName,\n selectedTypeOfLicense = '',\n selectedLicenseNumber = '',\n selectedLicenseCountry = '',\n selectedLicenseState = '',\n selectedIdentificationExpirationDate = '',\n prefix = '',\n onChange = () => { },\n fieldsDisabled = false,\n fieldsRequired = true\n}: LicenseFieldsProps) => {\n const [typeOfLicense, setTypeOfLicense] = React.useState(selectedTypeOfLicense);\n const [licenseNumber, setLicenseNumber] = React.useState(selectedLicenseNumber);\n const [licenseCountry, setLicenseCountry] = React.useState(selectedLicenseCountry);\n const [licenseState, setLicenseState] = React.useState(selectedLicenseState);\n const [identificationExpirationDate, setIdentificationExpirationDate] = React.useState(selectedIdentificationExpirationDate);\n\n const validationsArray = useStore($ValidationsArray);\n\n const typeOfLicenseObject = TYPES_OF_LICENSES.find(\n license => license[1] === typeOfLicense\n );\n\n const selectedCountryObject = CountriesWithStates.find(\n c => c.name === licenseCountry\n );\n\n const selectedCountryStates: Array | undefined = selectedCountryObject\n ? selectedCountryObject.states\n : [];\n\n // Is the license expiration date within 90 days of expiring but not yet expired?\n const isLicenseExpirationDateWithin90Days = () => {\n if (!identificationExpirationDate) return false;\n\n const expirationDate = new Date(identificationExpirationDate);\n const today = new Date();\n const ninetyDaysFromToday = new Date(today);\n ninetyDaysFromToday.setDate(today.getDate() + 90);\n\n return expirationDate < ninetyDaysFromToday && expirationDate > today;\n }\n\n // Is the license expired?\n const isLicenseExpired = () => {\n if (!identificationExpirationDate) return false;\n\n const expirationDate = new Date(identificationExpirationDate);\n const today = new Date();\n\n return expirationDate < today;\n }\n\n React.useEffect(() => {\n console.log('typeOfLicense', typeOfLicense)\n // If typeOfLicenseObject.identification_expiration_date is false, set identificationExpirationDate to ''\n if (typeOfLicenseObject && !typeOfLicenseObject[2].identification_expiration_date) setIdentificationExpirationDate('');\n // If typeOfLicenseObject.license_number is false, set licenseNumber to ''\n if (typeOfLicenseObject && !typeOfLicenseObject[2].license_number) setLicenseNumber('');\n // If typeOfLicenseObject.license_country is false, set licenseCountry to ''\n if (typeOfLicenseObject && !typeOfLicenseObject[2].license_country) setLicenseCountry('');\n // If typeOfLicenseObject.license_state is false, set licenseState to ''\n if (typeOfLicenseObject && !typeOfLicenseObject[2].license_state) setLicenseState('');\n\n // If typeOfLicense doesnt include the word \"foreign\", set licenseCountry to \"United States of America\"\n if (typeOfLicense && !typeOfLicense.toLowerCase().includes(\"foreign\")) {\n setLicenseCountry(\"United States of America\");\n }\n }, [typeOfLicense]);\n\n React.useEffect(() => {\n if (!fieldsDisabled && fieldsRequired && isLicenseExpired()) {\n addValidationField(`${modelName}[${prefix}identification_expiration_date]`);\n } else {\n removeValidationField(`${modelName}[${prefix}identification_expiration_date]`);\n }\n }, [identificationExpirationDate, fieldsDisabled, fieldsRequired]);\n\n // If any of the state objects change, trigger onChange\n // typeOfLicense\n React.useEffect(() => {\n onChange(`${prefix}type_of_license`, typeOfLicense);\n }, [typeOfLicense]);\n\n // licenseNumber\n React.useEffect(() => {\n onChange(`${prefix}license_number`, licenseNumber);\n }, [licenseNumber]);\n\n // licenseCountry\n React.useEffect(() => {\n onChange(`${prefix}license_country`, licenseCountry);\n }, [licenseCountry]);\n\n // licenseState\n React.useEffect(() => {\n onChange(`${prefix}license_state`, licenseState);\n }, [licenseState]);\n\n // identificationExpirationDate\n React.useEffect(() => {\n onChange(`${prefix}identification_expiration_date`, identificationExpirationDate);\n }, [identificationExpirationDate]);\n\n return (\n
\n \n\n {/* Text Field identification_expiration_date */}\n {typeOfLicenseObject && typeOfLicenseObject[2].identification_expiration_date && (\n
\n setIdentificationExpirationDate(e.target.value)}\n className=\"form-control\"\n required={fieldsRequired}\n disabled={fieldsDisabled}\n />\n \n
\n )}\n {typeOfLicenseObject && !typeOfLicenseObject[2].identification_expiration_date && (\n \n )}\n {/* If the license is within 90 days of expiring, warn the user using an alert-warning */}\n {isLicenseExpirationDateWithin90Days() && (\n
\n Your identification is within 90 days of expiring and will need to be updated soon.\n
\n )}\n {/* If the license is expired, warn the user using an alert-danger */}\n {!fieldsDisabled && isLicenseExpired() && (\n
\n Your identification is expired and can't be used.\n
\n )}\n\n {/* license_number */}\n {typeOfLicenseObject && typeOfLicenseObject[2].license_number && (\n
\n setLicenseNumber(e.target.value)}\n className=\"form-control\"\n required={fieldsRequired}\n disabled={fieldsDisabled}\n />\n \n
\n )}\n {typeOfLicenseObject && !typeOfLicenseObject[2].license_number && (\n \n )}\n\n {/* license_country */}\n {typeOfLicenseObject && typeOfLicenseObject[2].license_country && (\n \n )}\n {typeOfLicenseObject && !typeOfLicenseObject[2].license_country && (\n \n )}\n\n {/* license_state */}\n {typeOfLicenseObject && typeOfLicenseObject[2].license_state && (\n \n )}\n {typeOfLicenseObject && !typeOfLicenseObject[2].license_state && (\n \n )}\n
\n );\n}\n\nconst TypeOfLicenseFields = ({\n types_of_licenses,\n modelName,\n setTypeOfLicense,\n typeOfLicense,\n prefix = '',\n disabled = false,\n required = true\n}) => {\n return (\n
\n {types_of_licenses.map((license, index) => {\n const licenseDescription = license[0];\n const licenseValue = license[1];\n const licenseName = license[1].toLowerCase()\n .replace(\" \", \"_\")\n .replace(\".\", \"\");\n const licenseId = `type_of_license_${licenseName}`;\n\n return (\n
\n setTypeOfLicense(licenseValue)}\n checked={licenseValue === typeOfLicense}\n name={`${modelName}[${prefix}type_of_license]`}\n />\n \n
\n )\n })}\n
\n );\n}\n\nconst TYPES_OF_LICENSES = [\n [\n 'A non-expired U.S. Driver\\'s License (including any Driver\\'s Licenses issued by a commonwealth, territory, or possession of the United States)',\n 'U.S. driver\\'s license',\n {\n license_number: true,\n license_country: true,\n license_state: true,\n identification_expiration_date: true\n }\n ],\n ['A non-expired identification document issued by a U.S. state or local government, or Indian Tribe',\n 'U.S. identification document',\n {\n license_number: true,\n license_country: true,\n license_state: true,\n identification_expiration_date: true\n }\n ],\n [\n 'A non-expired passport issued by the U.S. government',\n 'U.S. passport',\n {\n license_number: true,\n license_country: true,\n license_state: false,\n identification_expiration_date: true\n }\n ],\n [\n 'A non-expired passport issued by a foreign government (only when an individual does not have one of the other three forms of identification listed above).', 'Foreign passport',\n {\n license_number: true,\n license_country: true,\n license_state: true,\n identification_expiration_date: true\n }\n ]\n]\n","import React from 'react';\n\nimport { Question } from './Onboarding';\n\nexport const QuestionTextField = ({ question, setState, state, required }: { question: Question, setState: Function, state: any, required?: boolean }) => {\n const [value, setValue] = React.useState(state[question.name] || '');\n console.log(\"QuestionTextField\", question, state);\n const [error, setError] = React.useState('');\n\n const handleChange = (event: React.ChangeEvent) => {\n setValue(event.target.value);\n setState({ ...state, [question.name]: event.target.value });\n if (question.errorConditions.some((errorCondition) => errorCondition.condition(event.target.value))) {\n setError(question.errorConditions.find((errorCondition) => errorCondition.condition(event.target.value))?.errorContent);\n } else {\n setError('');\n }\n }\n\n return (\n
\n \n \n {/* Description */}\n
{question.description}
\n {/* Error */}\n {error &&
{error}
}\n
\n );\n\n}","import React from 'react';\n\nimport { Question } from './Onboarding';\n\nexport const QuestionDateField = ({ question, setState, state, required }: { question: Question, setState: Function, state: any, required?: boolean }) => {\n const [value, setValue] = React.useState(state[question.name] || '');\n const [error, setError] = React.useState('');\n\n const handleChange = (event: React.ChangeEvent) => {\n setValue(event.target.value);\n setState({ ...state, [question.name]: event.target.value });\n if (question.errorConditions.some((errorCondition) => errorCondition.condition(event.target.value))) {\n setError(question.errorConditions.find((errorCondition) => errorCondition.condition(event.target.value))?.errorContent);\n } else {\n setError('');\n }\n }\n\n return (\n
\n \n \n {/* Description */}\n
{question.description}
\n {/* Error */}\n {error &&
{error}
}\n
\n );\n\n}","import React from 'react';\n\nimport { Question } from './Onboarding';\n\nexport const QuestionCheckbox = ({ question, setState, state }: { question: Question, setState: Function, state: any }) => {\n const [value, setValue] = React.useState(false);\n const [error, setError] = React.useState('');\n\n console.log(\"QuestionCheckbox\", value)\n const handleChange = () => {\n if (state[question.name] !== value) {\n const newValue = !value;\n setValue(newValue);\n setState({ ...state, [question.name]: newValue });\n }\n\n // if (question.errorConditions.some((errorCondition) => errorCondition.condition(value))) {\n // setError(\n // question.errorConditions.find((errorCondition) =>\n // errorCondition.condition(value)).errorContent\n // );\n // } else {\n // setError('');\n // }\n }\n\n return (\n
\n \n {/* Description */}\n
{question.description}
\n {/* Error */}\n {error &&
{error}
}\n
\n );\n\n}","import React from 'react';\n\nimport { Question } from './Onboarding';\n\nexport const QuestionCheckboxes = ({ question, setState, state, required }: { question: Question, setState: Function, state: any, required?: boolean }) => {\n const [value, setValue] = React.useState(state[question.name] || '');\n const [error, setError] = React.useState('');\n\n const handleChange = (event: React.ChangeEvent) => {\n // Values should be stored as a comma delimited string\n // When checkbox is deselected, it should be removed from the string\n // When checkbox is selected, it should be added to the string\n\n // Split the string into an array\n let selectedValues = value.split(',');\n // If the checkbox is checked\n if (event.target.checked) {\n // Add the value to the array\n selectedValues.push(event.target.value);\n } else {\n // Remove the value from the array\n selectedValues = selectedValues.filter((val) => val !== event.target.value);\n }\n\n // Join the array back into a string\n setValue(selectedValues.join(','));\n setState({ ...state, [question.name]: selectedValues.join(',') });\n\n if (question.errorConditions.some((errorCondition) => errorCondition.condition(selectedValues.join(',')))) {\n // setError(question.errorConditions.find((errorCondition) => errorCondition.condition(selectedValues.join(','))?.errorContent);\n } else {\n setError('');\n }\n }\n\n return (\n <>\n\n
\n \n {question.options?.map((option, index) => {\n return (\n
\n \n \n
\n );\n })}\n {/* Description */}\n
{question.description}
\n {/* Error */}\n {error &&
{error}
}\n
\n \n );\n\n}","import React from 'react';\n\nimport { Question } from './Onboarding';\n\nexport const QuestionSelect = ({ question, setState, state, required }: { question: Question, setState: Function, state: any, required?: boolean }) => {\n const [value, setValue] = React.useState(state[question.name] || '');\n const [error, setError] = React.useState('');\n\n const handleChange = (event: React.ChangeEvent) => {\n setValue(event.target.value);\n setState({ ...state, [question.name]: event.target.value });\n if (question.errorConditions.some((errorCondition) => errorCondition.condition(event.target.value))) {\n setError(question.errorConditions.find((errorCondition) => errorCondition.condition(event.target.value))?.errorContent);\n } else {\n setError('');\n }\n }\n const alertType = question.alertType || 'danger';\n\n // Is the question label longer than 50 characters?\n const labelTooLong = question.label.length > 50;\n return (\n <>\n {labelTooLong &&\n // Make text smaller if label is too long\n \n }\n
\n \n \n {question.options?.map((option, index) => (\n {option.label}\n ))}\n \n {!labelTooLong && }\n {labelTooLong && }\n {/* Description */}\n
{question.description}
\n {/* Error */}\n {error &&
{error}
}\n
\n \n );\n\n}","// React Component\n// Info Box using Bootstrap styles\n// Info icon that when a user hovers over it, displays a tooltip with the message\n\nimport React from 'react';\nimport OverlayTrigger from 'react-bootstrap/OverlayTrigger';\nimport Tooltip from 'react-bootstrap/Tooltip';\nimport { BsInfoCircle } from 'react-icons/bs';\n\nexport const InfoBox = ({ message }) => {\n const renderTooltip = (props) => {\n const tooltipProps = { ...props };\n return (\n \n {message}\n \n );\n }\n\n return (\n \n \n \n );\n}\n\nexport const ReportingCompanyInfoBox = () => {\n return (\n \n

A “Reporting Company” is any (a) domestic entity that is created by the filing of a document with a secretary of state or similar office under the laws of a State or Indian tribe, or (b) foreign entity that is (i) formed under the law of a foreign country; and (ii) is registered to do business in any State or tribunal jurisdiction by the filing of a document with a secretary of state or similar office under the law of a State or Indian tribe.

\n\n

“State” means any state of the United States, the District of Columbia, the Commonwealth of Puerto Rico, the Commonwealth of the Northern Mariana Islands, American Samoa, Guam, the United States Virgin Islands, and any other commonwealth, territory, or possession of the United States.

\n\n

“Indian tribe” has the meaning given to such term in section 102 of the Federally Recognized Indian Tribe List Act of 1994 (25 U.S.C. 5130).

\n \n } />\n );\n}\n\nexport const CompanyApplicantInfoBox = () => {\n return (\n \n

\n The “Company Applicant” is the individual who directly filed the document that created or registered the Reporting Company. If more than one individual is involved in the filing of such document, then the individual primarily responsible for directing or controlling the filing of the document is also a Company Applicant. A Reporting Company cannot have more than two (2) Company Applicants.\n

\n \n } />\n );\n}\n\nexport const BeneficialOwnerInfoBox = () => {\n return (\n \n

\n A “Beneficial Owner” is any individual who, directly or indirectly, (a) owns or controls at least twenty-five percent (25%) of the ownership interests of a Reporting Company; or (b) exercises substantial control over a Reporting Company.\n

\n\n

\n “Ownership interest” of a Reporting Company can occur through equity, stock, profit interest, trust arrangement, convertible instrument, and/or many other forms of ownership. Please see 31 CFR 1010.380(d)(2) for additional examples.\n

\n\n

\n “Substantial control” of a Reporting Company can occur by serving as a senior officer of a Reporting Company, having authority over the appointment or removal of any senior officer or a majority of the board of directors, directing or determining important decisions of the Reporting Company, and/or many other forms of substantial control. Please see 31 CFR 1010.380(d)(1) for additional examples.\n\n

\n \n } />\n );\n}\n\nexport const CTARepInfoBox = () => {\n return (\n \n

The “CTA Compliance Representative” (a Teeple Hall, LLP defined term) is a natural person who:

\n
    \n
  • Manages the collection of all beneficial ownership information (“BOI”) of the Reporting Company;
  • \n
  • Monitors such BOI for any changes and submits BOI Reports to FinCEN on behalf of the Reporting Company, as required to comply with the parameters of the CTA; and
  • \n
  • Has the authority to bind the Reporting Company to any and all agreements with Teeple Hall, LLP concerning the Corporate Transparency Act.
  • \n
\n \n } />\n );\n}\n\nexport default InfoBox;","import React from 'react';\n\nexport const OnboardingExemptionCheck = ({\n selectedValue,\n setState,\n disabled = false\n}) => {\n return (\n
\n {exemptions.map(([value, label, link], index) => (\n
\n setState(prevState => ({\n ...prevState,\n ['company_information[exemption_reason]']: value\n }))}\n checked={selectedValue === value}\n />\n \n {label}\n \n {link && <>\n (See Exemption Criteria)\n }\n
\n ))}\n \n
\n );\n};\n\nconst exemptions = [\n ['Securities reporting issuer', 'Securities reporting issuer',\n 'https://www.fincen.gov/sites/default/files/shared/BOI_Small_Compliance_Guide_FINAL_Sept_508C.pdf#page=12'],\n ['Governmental authority', 'Governmental authority',\n 'https://www.fincen.gov/sites/default/files/shared/BOI_Small_Compliance_Guide_FINAL_Sept_508C.pdf#page=12'],\n ['Bank', 'Bank',\n 'https://www.fincen.gov/sites/default/files/shared/BOI_Small_Compliance_Guide_FINAL_Sept_508C.pdf#page=12'],\n ['Credit union', 'Credit union',\n 'https://www.fincen.gov/sites/default/files/shared/BOI_Small_Compliance_Guide_FINAL_Sept_508C.pdf#page=12'],\n ['Depository institution holding company', 'Depository institution holding company',\n 'https://www.fincen.gov/sites/default/files/shared/BOI_Small_Compliance_Guide_FINAL_Sept_508C.pdf#page=13'],\n ['Money services business', 'Money services business',\n 'https://www.fincen.gov/sites/default/files/shared/BOI_Small_Compliance_Guide_FINAL_Sept_508C.pdf#page=13'],\n ['Broker or dealer in securities', 'Broker or dealer in securities',\n 'https://www.fincen.gov/sites/default/files/shared/BOI_Small_Compliance_Guide_FINAL_Sept_508C.pdf#page=13'],\n ['Securities exchange or clearing agency', 'Securities exchange or clearing agency',\n 'https://www.fincen.gov/sites/default/files/shared/BOI_Small_Compliance_Guide_FINAL_Sept_508C.pdf#page=13'],\n ['Other Exchange Act registered entity', 'Other Exchange Act registered entity',\n 'https://www.fincen.gov/sites/default/files/shared/BOI_Small_Compliance_Guide_FINAL_Sept_508C.pdf#page=14'],\n ['Investment company or investment adviser', 'Investment company or investment adviser',\n 'https://www.fincen.gov/sites/default/files/shared/BOI_Small_Compliance_Guide_FINAL_Sept_508C.pdf#page=14'],\n ['Venture capital fund adviser', 'Venture capital fund adviser',\n 'https://www.fincen.gov/sites/default/files/shared/BOI_Small_Compliance_Guide_FINAL_Sept_508C.pdf#page=14'],\n ['Insurance company', 'Insurance company',\n 'https://www.fincen.gov/sites/default/files/shared/BOI_Small_Compliance_Guide_FINAL_Sept_508C.pdf#page=14'],\n ['State-licensed insurance producer', 'State-licensed insurance producer',\n 'https://www.fincen.gov/sites/default/files/shared/BOI_Small_Compliance_Guide_FINAL_Sept_508C.pdf#page=15'],\n ['Commodity Exchange Act registered entity', 'Commodity Exchange Act registered entity',\n 'https://www.fincen.gov/sites/default/files/shared/BOI_Small_Compliance_Guide_FINAL_Sept_508C.pdf#page=15'],\n ['Accounting firm', 'Accounting firm',\n 'https://www.fincen.gov/sites/default/files/shared/BOI_Small_Compliance_Guide_FINAL_Sept_508C.pdf#page=16'],\n ['Public utility', 'Public utility',\n 'https://www.fincen.gov/sites/default/files/shared/BOI_Small_Compliance_Guide_FINAL_Sept_508C.pdf#page=16'],\n ['Financial market utility', 'Financial market utility',\n 'https://www.fincen.gov/sites/default/files/shared/BOI_Small_Compliance_Guide_FINAL_Sept_508C.pdf#page=16'],\n ['Pooled investment vehicle', 'Pooled investment vehicle',\n 'https://www.fincen.gov/sites/default/files/shared/BOI_Small_Compliance_Guide_FINAL_Sept_508C.pdf#page=17'],\n ['Tax-exempt entity', 'Tax-exempt entity',\n 'https://www.fincen.gov/sites/default/files/shared/BOI_Small_Compliance_Guide_FINAL_Sept_508C.pdf#page=18'],\n ['Entity assisting a tax-exempt entity', 'Entity assisting a tax-exempt entity',\n 'https://www.fincen.gov/sites/default/files/shared/BOI_Small_Compliance_Guide_FINAL_Sept_508C.pdf#page=18'],\n ['Large operating company', 'Large operating company',\n 'https://www.fincen.gov/sites/default/files/shared/BOI_Small_Compliance_Guide_FINAL_Sept_508C.pdf#page=19'],\n ['Subsidiary of certain exempt entities', 'Subsidiary of certain exempt entities',\n 'https://www.fincen.gov/sites/default/files/shared/BOI_Small_Compliance_Guide_FINAL_Sept_508C.pdf#page=20'],\n ['Inactive entity', 'Inactive entity',\n 'https://www.fincen.gov/sites/default/files/shared/BOI_Small_Compliance_Guide_FINAL_Sept_508C.pdf#page=21']\n]\n\nexport default OnboardingExemptionCheck;","import React from 'react';\nimport { CTARepInfoBox, ReportingCompanyInfoBox } from '../InfoBox/InfoBox';\nimport OnboardingExemptionCheck from './OnboardingExemptionCheck';\n\n// Name of Reporting Company\nexport const NameOfReportingCompany = {\n label: 'Name of Reporting Company',\n name: 'company_information[company_name]',\n errorConditions: [\n {\n errorContent: 'Please enter the name of the reporting company.',\n condition: (value: string) => (value.length === 0)\n },\n ],\n questionType: 'text'\n}\n\n// Date of Incorporation\nexport const DateOfIncorporation = {\n label: 'Date of Incorporation/Formation',\n name: 'company_information[date_of_incorporation]',\n errorConditions: [\n {\n errorContent: 'Please enter a valid date.',\n condition: (value: string) => !Date.parse(value)\n }\n ],\n questionType: 'date'\n}\n\n// Date of Incorporation Warning\nexport const DateOfIncorporationWarning = (state) => (\n {\n content: (\n
\n Notice: Based on the information provided, there is less than 30 days before the Reporting Company's 90-day filing deadline. Due to the limited time before such deadline, please be advised that the Teeple Hall, LLP CTA Portal cannot guarantee that it will file the Reporting Company's initial BOl Report in before the date of such deadline.\n
\n ),\n questionType: 'jsx',\n showConditions: [\n {\n showCondition: () => {\n // Is there less than 30 days between today and ninety days after the date of incorporation?\n\n const date_of_incorporation = new Date(state['company_information[date_of_incorporation]']);\n const today = new Date();\n const ninety_days_after_incorporation = new Date(date_of_incorporation);\n ninety_days_after_incorporation.setDate(date_of_incorporation.getDate() + 90);\n const remainingDays = Math.floor((ninety_days_after_incorporation.getTime() - today.getTime()) / (1000 * 3600 * 24));\n console.log(\"Remaining Days\", remainingDays)\n return remainingDays < 30 && date_of_incorporation.getFullYear() >= 2024;\n }\n }\n ]\n }\n)\n\n// Date of Incorporation Confirmation Checkbox\nexport const DateOfIncorporationWarningCheckbox = (state) => (\n {\n label: 'I acknowledge this notice.',\n name: 'company_information[date_of_incorporation_confirmation]',\n errorConditions: [\n {\n errorContent: 'Please confirm that the date of incorporation/formation is accurate.',\n condition: (value: boolean) => value === false\n }\n ],\n questionType: 'checkbox',\n showConditions: [\n // Notice: Based on the information provided, there is less than 30 days before the Reporting Company's 90-day filing deadline. Due to the limited time before such deadline, please be advised that the Teeple Hall, LLP CTA Portal cannot guarantee that it will file the Reporting Company's initial BOl Report in before the date of such deadline.\n {\n showCondition: () => {\n // Is there less than 30 days between today and ninety days after the date of incorporation?\n\n const date_of_incorporation = new Date(state['company_information[date_of_incorporation]']);\n const today = new Date();\n const ninety_days_after_incorporation = new Date(date_of_incorporation);\n ninety_days_after_incorporation.setDate(date_of_incorporation.getDate() + 90);\n const remainingDays = Math.floor((ninety_days_after_incorporation.getTime() - today.getTime()) / (1000 * 3600 * 24));\n return remainingDays < 30 && date_of_incorporation.getFullYear() >= 2024;\n }\n }\n ]\n }\n)\n\n// CTA Compliance Representative Information Header\nexport const CTAComplianceRepresentativeInformationHeader = {\n questionType: 'jsx',\n content: (\n
\n

CTA Compliance Representative Information

\n \n
\n )\n}\n\n// Compliance Representative First Name\nexport const ComplianceRepresentativeFirstName = {\n label: 'First Name',\n name: 'profile[rep_first_name]',\n errorConditions: [\n {\n errorContent: 'Please enter the first name of the compliance representative.',\n condition: (value: string) => value.length === 0,\n blocking: true\n },\n ],\n questionType: 'text'\n}\n\n// Compliance Representative Middle Name\nexport const ComplianceRepresentativeMiddleName = {\n label: 'Middle Name',\n name: 'profile[rep_middle_name]',\n errorConditions: [],\n questionType: 'text'\n}\n\n// Compliance Representative Last Name\nexport const ComplianceRepresentativeLastName = {\n label: 'Last Name',\n name: 'profile[rep_last_name]',\n errorConditions: [\n {\n errorContent: 'Please enter the last name of the compliance representative.',\n condition: (value: string) => value.length === 0,\n blocking: true\n },\n ],\n questionType: 'text'\n}\n\n// Rep Suffix\nexport const ComplianceRepresentativeSuffix = {\n label: 'Suffix',\n name: 'profile[rep_suffix]',\n errorConditions: [],\n questionType: 'text'\n}\n\n// Reporting Company Header\nexport const ReportingCompanyHeader = {\n questionType: 'jsx',\n content: (\n
\n

Reporting Company

\n \n
\n )\n}\n\n// Type of Entity\n// Options: Corporation / Delaware Statutory Trust / LLC / LLP / LP / Wyoming Statutory Foundation / Wyoming Statutory Trust / Other\nexport const TypeOfEntity = {\n label: 'Type of Entity',\n name: 'company_information[type_of_company]',\n questionType: 'select',\n options: [\n { value: 'Corporation', label: 'Corporation' },\n { value: 'Delaware Statutory Trust', label: 'Delaware Statutory Trust' },\n { value: 'LLC', label: 'LLC' },\n { value: 'LLP', label: 'LLP' },\n { value: 'LP', label: 'LP' },\n { value: 'Wyoming Statutory Foundation', label: 'Wyoming Statutory Foundation' },\n { value: 'Wyoming Statutory Trust', label: 'Wyoming Statutory Trust' },\n { value: 'Other', label: 'Other' }\n ],\n errorConditions: [],\n}\n\n// Type of Entity Other\nexport const TypeOfEntityOther = (state) => (\n {\n label: 'Enter Type of Entity',\n name: 'company_information[other_text]',\n errorConditions: [],\n questionType: 'text',\n showConditions: [\n {\n showCondition: () => state['company_information[type_of_company]'] === 'Other'\n }\n ]\n }\n)\n\n// Entity Create By Secretary of State\nexport const EntityCreateBySoS = (state) => (\n {\n label: \"Was the entity created by the filing of a document with a secretary of state or any similar office under the law of a State or Indian tribe (or if a foreign entity, registered to do business in any State or tribal jurisdiction by the filing of a document with a secretary of state or any similar office under the law of a State or Indian tribe)?”\",\n name: 'company_information[formed_by_filing]',\n errorConditions: [\n {\n errorContent: 'An entity must be created/incorporated as described above to be a “Reporting Company” within the meaning of the CTA. Given this information, please confirm whether you would like to continue.',\n condition: (value: string) => value === 'false'\n }\n ],\n questionType: 'select',\n options: [\n { value: true, label: 'Yes' },\n { value: false, label: 'No' }\n ],\n showConditions: [\n {\n showCondition: () => state['company_information[type_of_company]'] && state['company_information[type_of_company]'] === 'Other'\n }\n ]\n }\n)\n\n// Confirm \"I would like to continue\"\nexport const ConfirmContinue = (state) => (\n {\n label: 'Given this information, please confirm whether you would like to continue.',\n name: 'company_information[confirm_continue]',\n questionType: 'checkbox',\n showConditions: [\n {\n showCondition: () => state['company_information[formed_by_filing]'] === 'false'\n }\n ]\n }\n)\n\n// Exemption Question\nexport const ExemptionQuestion = {\n label: 'Does the Reporting Company qualify for any exemptions listed in the CTA? See below for a complete list of exemptions. Please note that the exemption categories are generally applicable to government agencies, regulated businesses, and large private operating companies.',\n name: 'company_information[has_exemptions]',\n errorConditions: [],\n questionType: 'select',\n options: [\n { value: 'Yes', label: 'Yes' },\n { value: 'No', label: 'No' },\n { value: \"I'm Not Sure\", label: \"I'm Not Sure\" }\n ]\n}\n\n// Exemption Will Be Collected Later\nexport const ExemptionWillBeCollectedLater = (state) => (\n {\n questionType: 'jsx',\n content: (\n
\n If an exemption applies to the Reporting Company, such information will be obtained later.\n
\n ),\n showConditions: [\n {\n showCondition: () => state['company_information[has_exemptions]'] === 'Yes'\n }\n ]\n }\n)\n\n// You will need to make a determination\nexport const ExemptionDetermination = (state) => (\n {\n questionType: 'jsx',\n content: (\n
\n You will need to make this determination as part of the CTA process. CTA Portal services do not include such analysis.\n
\n ),\n showConditions: [\n {\n showCondition: () => state['company_information[has_exemptions]'] === \"I'm Not Sure\"\n }\n ]\n }\n)\n\nexport const ExemptionsList = {\n questionType: 'jsx',\n content: <>\n
\n {/* height: 500px; overflow-y: scroll; border: 1px solid #ccc; padding: 10px; margin-top: 20px; */}\n
\n

31 CFR 1010.380(c)(2)(i) through (xxiii)

\n

“(2) Exemptions. Notwithstanding paragraph (c)(1) of this section, the term “reporting company” does not include:

\n
    \n
  1. Securities reporting issuer. Any issuer of securities that is:\n
      \n
    • (A) An issuer of a class of securities registered under section 12 of the Securities Exchange Act of 1934 (15 U.S.C. 78l); or
    • \n
    • (B) Required to file supplementary and periodic information under section 15(d) of the Securities Exchange Act of 1934 (15 U.S.C. 78o(d)).
    • \n
    \n
  2. \n
  3. Governmental authority. Any entity that:\n
      \n
    • (A) Is established under the laws of the United States, an Indian tribe, a State, or a political subdivision of a State, or under an interstate compact between two or more States; and
    • \n
    • (B) Exercises governmental authority on behalf of the United States or any such Indian tribe, State, or political subdivision.
    • \n
    \n
  4. \n
  5. Bank. Any bank, as defined in:\n
      \n
    • (A) Section 3 of the Federal Deposit Insurance Act (12 U.S.C. 1813);
    • \n
    • (B) Section 2(a) of the Investment Company Act of 1940 (15 U.S.C. 80a-2(a)); or
    • \n
    • (C) Section 202(a) of the Investment Advisers Act of 1940 (15 U.S.C. 80b-2(a)).
    • \n
    \n
  6. \n
  7. Credit union. Any Federal credit union or State credit union, as those terms are defined in section 101 of the Federal Credit Union Act (12 U.S.C. 1752).
  8. \n
  9. Depository institution holding company. Any bank holding company as defined in section 2 of the Bank Holding Company Act of 1956 (12 U.S.C. 1841), or any savings and loan holding company as defined in section 10(a) of the Home Owners' Loan Act (12 U.S.C. 1467a(a)).
  10. \n
  11. Money services business. Any money transmitting business registered with FinCEN under 31 U.S.C. 5330, and any money services business registered with FinCEN under 31 CFR 1022.380.
  12. \n
  13. Broker or dealer in securities. Any broker or dealer, as those terms are defined in section 3 of the Securities Exchange Act of 1934 (15 U.S.C. 78c), that is registered under section 15 of that Act (15 U.S.C. 78o).
  14. \n
  15. Securities exchange or clearing agency. Any exchange or clearing agency, as those terms are defined in section 3 of the Securities Exchange Act of 1934 (15 U.S.C. 78c), that is registered under sections 6 or 17A of that Act (15 U.S.C. 78f, 78q-1).
  16. \n
  17. Other Exchange Act registered entity. Any other entity not described in paragraph (c)(2)(i), (vii), or (viii) of this section that is registered with the Securities and Exchange Commission under the Securities Exchange Act of 1934 (15 U.S.C. 78a et seq.).
  18. \n
  19. Investment company or investment adviser. Any entity that is:\n
      \n
    • (A) An investment company as defined in section 3 of the Investment Company Act of 1940 (15 U.S.C. 80a-3), or is an investment adviser as defined in section 202 of the Investment Advisers Act of 1940 (15 U.S.C. 80b-2); and
    • \n
    • (B) Registered with the Securities and Exchange Commission under the Investment Company Act of 1940 (15 U.S.C. 80a-1 et seq.) or the Investment Advisers Act of 1940 (15 U.S.C. 80b-1 et seq.).
    • \n
    \n
  20. \n
  21. Venture capital fund adviser. Any investment adviser that:\n
      \n
    • (A) Is described in section 203(l) of the Investment Advisers Act of 1940 (15 U.S.C. 80b-3(l)); and
    • \n
    • (B) Has filed Item 10, Schedule A, and Schedule B of Part 1A of Form ADV, or any successor thereto, with the Securities and Exchange Commission.
    • \n
    \n
  22. \n
  23. Insurance company. Any insurance company as defined in section 2 of the Investment Company Act of 1940 (15 U.S.C. 80a-2).
  24. \n
  25. State-licensed insurance producer. Any entity that:\n
      \n
    • (A) Is an insurance producer that is authorized by a State and subject to supervision by the insurance commissioner or a similar official or agency of a State; and
    • \n
    • (B) Has an operating presence at a physical office within the United States.
    • \n
    \n
  26. \n
  27. Commodity Exchange Act registered entity. Any entity that:\n
      \n
    • (A) Is a registered entity as defined in section 1a of the Commodity Exchange Act (7 U.S.C. 1a); or
    • \n
    • (B) Is:\n
        \n
      1. A futures commission merchant, introducing broker, swap dealer, major swap participant, commodity pool operator, or commodity trading advisor, each as defined in section 1a of the Commodity Exchange Act (7 U.S.C. 1a), or a retail foreign exchange dealer as described in section 2(c)(2)(B) of the Commodity Exchange Act (7 U.S.C. 2(c)(2)(B)); and
      2. \n
      3. Registered with the Commodity Futures Trading Commission under the Commodity Exchange Act.
      4. \n
      \n
    • \n
    \n
  28. \n
  29. Accounting firm. Any public accounting firm registered in accordance with section 102 of the Sarbanes-Oxley Act of 2002 (15 U.S.C. 7212).
  30. \n
  31. Public utility. Any entity that is a regulated public utility as defined in 26 U.S.C. 7701(a)(33)(A) that provides telecommunications services, electrical power, natural gas, or water and sewer services within the United States.
  32. \n
  33. Financial market utility. Any financial market utility designated by the Financial Stability Oversight Council under section 804 of the Payment, Clearing, and Settlement Supervision Act of 2010 (12 U.S.C. 5463).
  34. \n
  35. Pooled investment vehicle. Any pooled investment vehicle that is operated or advised by a person described in paragraph (c)(2)(iii), (iv), (vii), (x), or (xi) of this section.
  36. \n
  37. Tax-exempt entity. Any entity that is:\n
      \n
    • (A) An organization that is described in section 501(c) of the Internal Revenue Code of 1986 (Code) (determined without regard to section 508(a) of the Code) and exempt from tax under section 501(a) of the Code, except that in the case of any such organization that ceases to be described in section 501(c) and exempt from tax under section 501(a), such organization shall be considered to continue to be described in this paragraph (c)(1)(xix)(A) for the 180-day period beginning on the date of the loss of such tax-exempt status;
    • \n
    • (B) A political organization, as defined in section 527(e)(1) of the Code, that is exempt from tax under section 527(a) of the Code; or
    • \n
    • (C) A trust described in paragraph (1) or (2) of section 4947(a) of the Code.
    • \n
    \n
  38. \n
  39. Entity assisting a tax-exempt entity. Any entity that:\n
      \n
    • (A) Operates exclusively to provide financial assistance to, or hold governance rights over, any entity described in paragraph (c)(2)(xix) of this section;
    • \n
    • (B) Is a United States person;
    • \n
    • (C) Is beneficially owned or controlled exclusively by one or more United States persons that are United States citizens or lawfully admitted for permanent residence; and
    • \n
    • (D) Derives at least a majority of its funding or revenue from one or more United States persons that are United States citizens or lawfully admitted for permanent residence.
    • \n
    \n
  40. \n
  41. Large operating company. Any entity that:\n
      \n
    • (A) Employs more than 20 full time employees in the United States, with “full time employee in the United States” having the meaning provided in 26 CFR 54.4980H-1(a) and 54.4980H-3, except that the term “United States” as used in 26 CFR 54.4980H-1(a) and 54.4980H-3 has the meaning provided in § 1010.100(hhh);
    • \n
    • (B) Has an operating presence at a physical office within the United States; and
    • \n
    • (C) Filed a Federal income tax or information return in the United States for the previous year demonstrating more than $5,000,000 in gross receipts or sales, as reported as gross receipts or sales (net of returns and allowances) on the entity's IRS Form 1120, consolidated IRS Form 1120, IRS Form 1120-S, IRS Form 1065, or other applicable IRS form, excluding gross receipts or sales from sources outside the United States, as determined under Federal income tax principles. For an entity that is part of an affiliated group of corporations within the meaning of 26 U.S.C. 1504 that filed a consolidated return, the applicable amount shall be the amount reported on the consolidated return for such group.
    • \n
    \n
  42. \n
  43. Subsidiary of certain exempt entities. Any entity whose ownership interests are controlled or wholly owned, directly or indirectly, by one or more entities described in paragraphs (c)(2)(i), (ii), (iii), (iv), (v), (vii), (viii), (ix), (x), (xi), (xii), (xiii), (xiv), (xv), (xvi), (xvii), (xix), or (xxi) of this section.
  44. \n
  45. Inactive entity. Any entity that:\n
      \n
    • (A) Was in existence on or before January 1, 2020;
    • \n
    • (B) Is not engaged in active business;
    • \n
    • (C) Is not owned by a foreign person, whether directly or indirectly, wholly or partially;
    • \n
    • (D) Has not experienced any change in ownership in the preceding twelve month period;
    • \n
    • (E) Has not sent or received any funds in an amount greater than $1,000, either directly or through any financial account in which the entity or any affiliate of the entity had an interest, in the preceding twelve month period; and
    • \n
    • (F) Does not otherwise hold any kind or type of assets, whether in the United States or abroad, including any ownership interest in any corporation, limited liability company, or other similar entity.
    • \n
    \n
  46. \n
\n
\n
\n \n}\n\nexport const HighRiskCountries = {\n questionType: 'select',\n name: 'company_information[high_risk_countries]',\n label: 'Does any Person (“Person” includes an individual, trust, estate, partnership, association, company, corporation, or other entity) directly or indirectly associated with the Reporting Company as an owner (of any percentage) or in a position of control (officer, manager, etc.) hold a passport and/or reside in any one or more of the following countries?',\n options: [\n { value: 'Yes', label: 'Yes' },\n { value: 'No', label: 'No' }\n ],\n errorConditions: [\n {\n errorContent: 'Teeple Hall, LLP is unable to accept an engagement for this Reporting Company.',\n condition: (value: string) => value === 'Yes'\n }\n ]\n}\n\nexport const HighRiskCountriesList = {\n questionType: 'jsx',\n content: <>\n
\n {/* height: 500px; overflow-y: scroll; border: 1px solid #ccc; padding: 10px; margin-top: 20px; */}\n
\n {/* Ordered list with roman numerals */}\n
    \n
  1. Bolivarian Republic of Venezuela
  2. \n
  3. Central African Republic
  4. \n
  5. Democratic People’s Republic of Korea
  6. \n
  7. Democratic Republic of the Congo
  8. \n
  9. Federal Democratic Republic of Ethiopia
  10. \n
  11. Federal Republic of Somalia
  12. \n
  13. Islamic Republic of Afghanistan
  14. \n
  15. Islamic Republic of Iran
  16. \n
  17. Lebanese Republic
  18. \n
  19. People's Republic of China
  20. \n
  21. Republic of Belarus
  22. \n
  23. Republic of Cuba
  24. \n
  25. Republic of Iraq
  26. \n
  27. Republic of Mali
  28. \n
  29. Republic of Nicaragua
  30. \n
  31. Republic of South Sudan
  32. \n
  33. Republic of the Union of Myanmar
  34. \n
  35. Republic of Yemen
  36. \n
  37. Russian Federation
  38. \n
  39. Syrian Arab Republic
  40. \n
\n
\n
\n \n}\n\n// OFAC Question\nexport const OFACQuestion = {\n label: \"Is any Person (defined above) associated with the ownership or control of the Reporting Company a specifically designated national, politically exposed person, or covered by any Office of Foreign Assets Control (“OFAC”) sanctions?\",\n name: 'company_information[has_any_foreign_beneficial_owner]',\n errorConditions: [\n {\n condition: (value: string) => value === \"Yes\",\n errorContent: \"Teeple Hall, LLP is unable to accept an engagement for this Reporting Company.\"\n }\n ],\n questionType: 'select',\n options: [\n { value: \"Yes\", label: 'Yes' },\n { value: \"No\", label: 'No' }\n ]\n}\n\n// Does any trust or entity own 25% or more...\nexport const TrustOwnsCompany = {\n label: 'Does any trust or entity directly or indirectly own 25% or more of the Reporting Company or have any control over the Reporting Company?',\n name: 'company_information[trust_owns_company]',\n questionType: 'select',\n options: [\n { value: 'Yes', label: 'Yes' },\n { value: 'No', label: 'No' },\n { value: \"I'm Not Sure\", label: \"I'm Not Sure\" }\n ],\n alertType: 'info',\n errorConditions: [\n {\n errorContent: 'CTA FinCEN reporting requires the identification and reporting of natural persons as beneficial owners. The Reporting Company will need to look through the trust or entity to determine the natural person or persons who are the Beneficial Owners.',\n condition: (value: string) => value === 'Yes'\n },\n {\n errorContent: 'CTA FinCEN reporting requires the identification and reporting of natural persons as beneficial owners. The Reporting Company will need to look through the trust or entity to determine the natural person or persons who are the Beneficial Owners.',\n condition: (value: string) => value === \"I'm Not Sure\",\n }\n ]\n}\n// TODO: OK Option\n\nexport const SubmitButton = (state) => (\n {\n questionType: 'jsx',\n content: (\n
\n \n
\n ),\n showConditions: [\n {\n showCondition: function () {\n return state['company_information[type_of_company]'] && state['company_information[type_of_company]'] !== 'Trust';\n }\n },\n // {\n // showCondition: function () {\n // return state['company_information[has_exemptions]'] && state['company_information[has_exemptions]'] === 'No';\n // }\n // },\n {\n showCondition: function () {\n return state['company_information[has_any_foreign_beneficial_owner]'] && state['company_information[has_any_foreign_beneficial_owner]'].length > 0 && state['company_information[has_any_foreign_beneficial_owner]'] === 'No';\n }\n }\n ]\n }\n)\n\n// Exemptions List Radios\nexport const ExemptionsListRadios = (state, setState) => {\n console.log('state', state, setState);\n return {\n questionType: 'jsx',\n name: 'company_information[exemption_reason]',\n content: (\n
\n \n
\n ),\n }\n}\n\n// Company Street Address\nexport const CompanyStreetAddress = {\n label: 'Company Street Address',\n name: 'company_information[street_address]',\n errorConditions: [\n {\n errorContent: 'Please enter the street address of the reporting company.',\n condition: (value: string) => value.length === 0\n }\n ],\n questionType: 'text'\n}\n\n// Company Street Address 2\nexport const CompanyStreetAddress2 = {\n label: 'Company Street Address 2',\n name: 'company_information[street_address_2]',\n errorConditions: [],\n questionType: 'text'\n}\n\n// Company City\nexport const CompanyCity = {\n label: 'City',\n name: 'company_information[city]',\n errorConditions: [\n {\n errorContent: 'Please enter the city of the reporting company.',\n condition: (value: string) => value.length === 0\n }\n ],\n questionType: 'text'\n}\n\n// Company State\nexport const CompanyState = {\n label: 'State',\n name: 'company_information[state]',\n errorConditions: [\n {\n errorContent: 'Please enter the state of the reporting company.',\n condition: (value: string) => value.length === 0\n }\n ],\n questionType: 'text'\n}\n\n// Company Zip\nexport const CompanyZip = {\n label: 'Zip',\n name: 'company_information[zip]',\n errorConditions: [\n {\n errorContent: 'Please enter the zip code of the reporting company.',\n condition: (value: string) => value.length === 0\n }\n ],\n questionType: 'text'\n}","import React from 'react';\n\nimport { QuestionTextField } from './QuestionTextField';\nimport { QuestionDateField } from './QuestionDateField';\nimport { QuestionCheckbox } from './QuestionCheckbox';\nimport { QuestionCheckboxes } from './QuestionCheckboxes';\nimport { QuestionSelect } from './QuestionSelect';\nimport { CTAComplianceRepresentativeInformationHeader, CompanyCity, CompanyState, CompanyStreetAddress, CompanyStreetAddress2, CompanyZip, ComplianceRepresentativeFirstName, ComplianceRepresentativeLastName, ComplianceRepresentativeMiddleName, ComplianceRepresentativeSuffix, ConfirmContinue, DateOfIncorporation, DateOfIncorporationWarning, DateOfIncorporationWarningCheckbox, EntityCreateBySoS, ExemptionDetermination, ExemptionQuestion, ExemptionWillBeCollectedLater, ExemptionsList, ExemptionsListRadios, HighRiskCountries, HighRiskCountriesList, NameOfReportingCompany, OFACQuestion, ReportingCompanyHeader, SubmitButton, TrustOwnsCompany, TypeOfEntity, TypeOfEntityOther } from './OnboardingQuestions';\n\nconst initialState = (profile_data: any, questions) => {\n console.log(\"Initial State\", profile_data, questions);\n // Get keys and values under company_information\n const company_information = profile_data.company_information || {};\n // Change key named to company_information[keyname]\n const company_information_keys = Object.keys(company_information).reduce((acc, key) => {\n acc[`company_information[${key}]`] = company_information[key];\n return acc;\n }, {});\n\n // Delete company_information key from profile_data\n delete profile_data.company_information;\n\n // Convert the rest of the keys to profile[keyname]\n const profile_keys = Object.keys(profile_data).reduce((acc, key) => {\n acc[`profile[${key}]`] = profile_data[key];\n return acc;\n }, {});\n\n // Get all question name values and delete any keys that arent in that list\n const data = { ...company_information_keys, ...profile_keys };\n const question_names = questions.map(question => question.name);\n\n console.log(\"Data\", data);\n\n // Delete any keys that arent in the questions list\n Object.keys(data).forEach(key => {\n if (!question_names.includes(key)) {\n delete data[key];\n }\n });\n\n console.log(\"Data after Purge\", data);\n\n return data;\n}\n\nconst UpdateProfileFn = (state, update_profile_path, form_authenticity_token) => {\n // Change keys from profile[keyname] and company_information[keyname] to an object:\n // { profile: { keyname: value, company_information_attributes: { keyname: value } } }\n // So that it can be sent to Rails PATCH model\n\n\n const profile = Object.keys(state).reduce((acc, key) => {\n if (key.includes('company_information')) {\n if (!acc['company_information_attributes']) {\n acc['company_information_attributes'] = {};\n }\n acc['company_information_attributes'][key.replace('company_information[', '').replace(']', '')] = state[key];\n\n console.log(\"Company Information\", acc['company_information_attributes']);\n } else {\n acc[key.replace('profile[', '').replace(']', '')] = state[key];\n }\n return acc;\n }, {});\n\n console.log(\"Submitting Profile\", `${update_profile_path}.json`, { profile: profile });\n\n fetch(`${update_profile_path}.json`, {\n method: 'PATCH',\n headers: {\n 'Content-Type': 'application/json',\n 'X-CSRF-Token': form_authenticity_token\n },\n body: JSON.stringify({ profile: profile })\n })\n .then(response => response.json())\n .then(data => {\n console.log('Success:', data);\n })\n .catch((error) => {\n console.error('Error:', error);\n });\n}\n\nexport const Onboarding = (props: any) => {\n const { profile_data, update_profile_path, form_authenticity_token, submit_profile_path } = props;\n\n console.log(\"Profile Data\", profile_data)\n\n const [state, setState] = React.useState(\n initialState(profile_data, QuestionsInit({}))\n );\n\n console.log(\"Initialized State\", state);\n\n const Questions = QuestionsInit({ setState, state });\n\n React.useEffect(() => {\n const delayDebounceFn = setTimeout(() => {\n console.log(state)\n UpdateProfileFn(state, update_profile_path, form_authenticity_token)\n }, 2000)\n\n return () => clearTimeout(delayDebounceFn)\n }, [state])\n\n return (\n
\n

Onboarding

\n
\n {/* Form Authenticity Token */}\n \n {/* Questions */}\n {Questions.map((question, index) => {\n // If there are show conditions, check if the question should be shown, otherwise return true\n const shouldShow = question.showConditions\n ? question.showConditions.every(condition => condition.showCondition() === true)\n : true;\n\n if (shouldShow === false) {\n return <>;\n } else if (question.questionType === 'text') {\n return ;\n } else if (question.questionType === 'date') {\n return ;\n } else if (question.questionType === 'checkbox') {\n return ;\n } else if (question.questionType === 'checkboxes') {\n return ;\n } else if (question.questionType === 'select') {\n return ;\n } else if (question.questionType === 'jsx') {\n return question.content;\n }\n })}\n\n \n\n \n
\n );\n}\n\nexport interface ErrorCondition {\n errorContent: string;\n condition: (value: string) => boolean;\n}\n\nexport interface ShowCondition {\n showCondition: boolean;\n}\n\nexport interface Option {\n value: string;\n label: string;\n}\n\nexport interface Question {\n label: string;\n name: string;\n errorConditions: ErrorCondition[];\n questionType: string;\n description?: string;\n showConditions?: ShowCondition[];\n options?: Option[];\n alertType?: string;\n}\n\nconst QuestionsInit = ({ setState, state }: { setState?: any, state?: any }) => {\n console.log(\"Updating Questions with\", state);\n return [\n\n // 4. Information\n // a.\t“Name of Reporting Company:” (text field)\n NameOfReportingCompany,\n\n // b.\t“Date of Incorporation/Formation:” (date field)\n DateOfIncorporation,\n DateOfIncorporationWarning(state),\n DateOfIncorporationWarningCheckbox(state),\n CompanyStreetAddress,\n CompanyStreetAddress2,\n CompanyCity,\n CompanyState,\n CompanyZip,\n\n // c. Name of CTA Compliance Representative\n // CTA Compliance Representative Information Header\n CTAComplianceRepresentativeInformationHeader,\n ComplianceRepresentativeFirstName,\n ComplianceRepresentativeMiddleName,\n ComplianceRepresentativeLastName,\n ComplianceRepresentativeSuffix,\n\n // 5. Reporting Company\n ReportingCompanyHeader,\n TypeOfEntity,\n TypeOfEntityOther(state),\n EntityCreateBySoS(state),\n ConfirmContinue(state),\n\n // Exemptions\n ExemptionQuestion,\n ExemptionWillBeCollectedLater(state),\n ExemptionDetermination(state),\n // ExemptionsList,\n ExemptionsListRadios(state, setState),\n\n // High Risks\n HighRiskCountries,\n HighRiskCountriesList,\n OFACQuestion,\n TrustOwnsCompany,\n SubmitButton(state)\n\n ];\n}\n","import React from 'react';\n\nimport { QuestionTextField } from '../Onboarding/QuestionTextField';\nimport { QuestionDateField } from '../Onboarding/QuestionDateField';\nimport { QuestionCheckbox } from '../Onboarding/QuestionCheckbox';\nimport { QuestionCheckboxes } from '../Onboarding/QuestionCheckboxes';\nimport { QuestionSelect } from '../Onboarding/QuestionSelect';\n\nexport const SignUp = (props) => {\n const { form_authenticity_token, submit_profile_path } = props;\n const [state, setState] = React.useState(\n // initialState(profile_data, QuestionsInit({}))\n {}\n );\n const Questions = QuestionsInit({ setState, state });\n\n return (\n
\n

Sign Up

\n {/* Form Authenticity Token */}\n \n {/* Questions */}\n {Questions.map((question, index) => {\n // If there are show conditions, check if the question should be shown, otherwise return true\n const shouldShow = question.showConditions\n ? question.showConditions.every(condition => condition.showCondition() === true)\n : true;\n\n if (shouldShow === false) {\n return <>;\n } else if (question.questionType === 'text') {\n return ;\n } else if (question.questionType === 'date') {\n return ;\n } else if (question.questionType === 'checkbox') {\n return ;\n } else if (question.questionType === 'checkboxes') {\n return ;\n } else if (question.questionType === 'select') {\n return ;\n } else if (question.questionType === 'jsx') {\n return question.content;\n }\n })}\n\n {/* Submit Button */}\n {/* */}\n
\n );\n}\n\n\nexport interface ErrorCondition {\n errorContent: string;\n condition: (value: string) => boolean;\n}\nexport interface ShowCondition {\n showCondition: boolean;\n}\nexport interface Option {\n value: string;\n label: string;\n}\nexport interface Question {\n label: string;\n name: string;\n errorConditions: ErrorCondition[];\n questionType: string;\n description?: string;\n showConditions?: ShowCondition[];\n options?: Option[];\n}\n\nconst QuestionsInit = ({ setState, state }: { setState?: any, state?: any }) => {\n console.log(\"Updating Questions with\", state);\n return [\n // 1.\t“Name of Reporting Company:” (text field)\n {\n label: 'Name of Reporting Company',\n name: 'user[company_information][company_name]',\n errorConditions: [\n {\n errorContent: 'Please enter the name of the reporting company.',\n condition: (value: string) => value.length === 0,\n blocking: true\n },\n ],\n questionType: 'text'\n },\n // Date of Incorporation/Formation: (date field)\n {\n label: 'Date of Incorporation/Formation',\n name: 'user[company_information][date_of_incorporation]',\n errorConditions: [\n // If the current date is 45-60 days after the date entered in this section (i.e., 30-45 days from the Reporting Company’s 90-day filing deadline), the system will display a warning message to the user.\n {\n errorContent: 'Notice: Based on the information provided, the deadline to submit this Reporting Company’s initial BOI Report with FinCEN is coming up soon. In order to guarantee that the Reporting Company’s beneficial ownership information (“BOI”) will be submitted to FinCEN before such filing deadline, all relevant BOI must be entered into the Teeple Hall, LLP CTA Portal at least 30 days before such filing deadline.',\n condition: (value: string) => {\n const date = new Date(value);\n const today = new Date();\n const days = (today.getTime() - date.getTime()) / (1000 * 3600 * 24);\n return days >= 45 && days <= 60;\n },\n blocking: false\n },\n // If the current date is over 60 days after the date entered in this section (i.e., 30 days or less from the Reporting Company’s 90-day filing deadline)\n {\n errorContent: 'Notice: Based on the information provided, there is less than 30 days before the Reporting Company’s 90-day filing deadline. Due to the limited time before such deadline, please be advised that the Teeple Hall, LLP CTA Portal cannot guarantee that it will file the Reporting Company’s initial BOI Report in before the date of such deadline.',\n condition: (value: string) => {\n const date = new Date(value);\n const today = new Date();\n const days = (today.getTime() - date.getTime()) / (1000 * 3600 * 24);\n // Show if the date is over 60 days after the date entered in this section\n // Don't show if the date has passed\n return days > 60 && days <= 90;\n },\n blocking: false\n }\n ],\n questionType: 'date'\n },\n // If the current date is over 60 days after the date entered in this section, display Acknowledgement of Notice checkbox\n {\n label: 'I acknowledge the notice',\n name: 'user[company_information][acknowledge_notice]',\n errorConditions: [\n {\n errorContent: 'Please acknowledge the notice.',\n condition: (value: string) => value.length === 0,\n blocking: true\n }\n ],\n questionType: 'checkbox',\n showConditions: [\n {\n showCondition: () => {\n const date = new Date(\n state['user[company_information][date_of_incorporation]']\n );\n const today = new Date();\n const days = (today.getTime() - date.getTime()) / (1000 * 3600 * 24);\n return days > 60 && days <= 90;\n }\n }\n ]\n },\n // New Section\n {\n questionType: 'jsx',\n content: (\n
\n

CTA Compliance Representative Information

\n
\n )\n },\n // Email\n {\n label: 'Email',\n name: 'user[email]',\n errorConditions: [\n {\n errorContent: 'Please enter a valid email address.',\n condition: (value: string) => !value.includes('@'),\n blocking: true\n },\n ],\n questionType: 'text'\n },\n // Phone Number\n {\n label: 'Phone Number',\n name: 'user[profile][rep_phone]',\n errorConditions: [\n {\n errorContent: 'Please enter a valid phone number.',\n condition: (value: string) => value.length === 0,\n blocking: true\n },\n ],\n questionType: 'text'\n },\n // first name\n {\n label: 'First Name',\n name: 'user[profile][rep_first_name]',\n errorConditions: [\n {\n errorContent: 'Please enter the first name of the compliance representative.',\n condition: (value: string) => value.length === 0,\n blocking: true\n },\n ],\n questionType: 'text'\n },\n // Middle Name\n {\n label: 'Middle Name',\n name: 'user[profile][rep_middle_name]',\n errorConditions: [],\n questionType: 'text'\n },\n // Last Name\n {\n label: 'Last Name',\n name: 'user[profile][rep_last_name]',\n errorConditions: [\n {\n errorContent: 'Please enter the last name of the compliance representative.',\n condition: (value: string) => value.length === 0,\n blocking: true\n },\n ],\n questionType: 'text'\n },\n // Suffix\n {\n label: 'Suffix',\n name: 'user[profile][rep_suffix]',\n errorConditions: [],\n questionType: 'text'\n },\n\n // b.\tDisclaimer with required checkbox underneath #4 stating: \n // i.\t“Important: Only persons authorized to sign on behalf of the Reporting Company may execute the forthcoming Agreement.By clicking this checkbox, you are stating that you have the authority to bind the Reporting Company to the forthcoming Agreement.”\n {\n label: 'Important: Only persons authorized to sign on behalf of the Reporting Company may execute the forthcoming Agreement. By clicking this checkbox, you are stating that you have the authority to bind the Reporting Company to the forthcoming Agreement.',\n name: 'user[profile][signature_authorization]',\n errorConditions: [\n {\n errorContent: 'Please acknowledge the disclaimer.',\n condition: (value: string) => value.length === 0,\n blocking: true\n }\n ],\n questionType: 'checkbox'\n },\n // •\tHave checkbox with statement such as “By continuing, the Reporting Company agrees to the Terms and Conditions and Privacy Policy of this site.” \n {\n label: (\n <>By continuing, the Reporting Company agrees to the Terms and Conditions and Privacy Policy of this site.\n ),\n name: 'user[profile][terms]',\n errorConditions: [\n {\n errorContent: 'Please agree to the terms and conditions.',\n condition: (value: string) => value == 'false',\n blocking: true\n }\n ],\n questionType: 'checkbox'\n },\n\n // Submit Button\n {\n questionType: 'jsx',\n content: (\n
\n \n
\n ),\n }\n ];\n}","import React from 'react';\n// Component for Date of Birth Field that warns that the date of birth must be 18 years old if the user is under 18\n\nexport const DOBField = ({\n modelName,\n fieldName = 'date_of_birth',\n selectedDateOfBirth,\n errorMessage = 'Company applicant must be at least 18 years old.',\n onChange,\n disabled = false,\n required = true,\n prefix = '',\n value // New prop to accept a value\n}) => {\n // Parse string selectedDateOfBirth (YYYY-MM-DD) to Date object\n const [dateOfBirth, setDateOfBirth] = React.useState(value || selectedDateOfBirth);\n const handleChange = (e) => setDateOfBirth(e.target.value);\n const age = new Date().getFullYear() - new Date(dateOfBirth).getFullYear();\n const name = `${modelName}[${fieldName}]`;\n\n if (!disabled) {\n if (window[\"CTAFormValidation\"] === undefined) {\n window[\"CTAFormValidation\"] = [];\n }\n\n if (age < 18) {\n window[\"CTAFormValidation\"].push(name);\n } else {\n window[\"CTAFormValidation\"] = window[\"CTAFormValidation\"].filter((field) => field !== name);\n }\n }\n React.useEffect(() => {\n onChange(`${prefix}${fieldName}`, dateOfBirth);\n }, [dateOfBirth]);\n\n return (\n
\n \n \n {!disabled && age < 18 &&
{errorMessage}
}\n
\n );\n}\n","import React from 'react';\nimport { InputMask, type MaskEventDetail } from '@react-input/mask';\n\nconst TaxIDTypeField = ({\n modelName,\n fieldName = 'tax_id_type',\n selectedTaxIDType,\n setTaxIDType\n}) => {\n const name = `${modelName}[${fieldName}]`;\n\n const handleChange = (e) => {\n setTaxIDType(e.target.value);\n }\n\n return (\n
\n \n \n
\n );\n}\n\nconst TaxIDNumberField = ({\n modelName,\n fieldName = 'tax_id_number',\n selectedTaxIDNumber,\n selectedTaxIDType,\n setTaxIDNumber,\n}) => {\n const name = `${modelName}[${fieldName}]`;\n\n const handleChange = (e) => {\n setTaxIDNumber(e.target.value);\n }\n\n let inputMask = '';\n if (selectedTaxIDType === 'EIN') {\n inputMask = '__-_______';\n } else if (selectedTaxIDType === 'SSN/ITIN') {\n inputMask = '___-__-____';\n } else if (selectedTaxIDType === 'Foreign') {\n inputMask = '';\n }\n\n // React.useEffect(() => {\n // setTaxIDNumber(selectedTaxIDNumber);\n // }, [selectedTaxIDType]);\n\n return (\n
\n {selectedTaxIDType === 'Foreign' && (\n \n )}\n {selectedTaxIDType !== 'Foreign' && (\n \n )}\n \n
\n );\n}\n\nexport const EINField = ({\n modelName,\n selectedTaxIDType,\n selectedTaxIDNumber,\n taxIDFieldTypeName = 'tax_id_type',\n taxIDFieldName = 'tax_id_number'\n}) => {\n const [taxIDType, setTaxIDType] = React.useState(selectedTaxIDType);\n const [taxIDNumber, setTaxIDNumber] = React.useState(selectedTaxIDNumber);\n\n return (\n <>\n \n \n \n );\n}\n","import React, { useState } from 'react';\nimport { Modal, Button } from 'react-bootstrap';\nimport ReactCrop, { type Crop } from 'react-image-crop';\nimport 'react-image-crop/dist/ReactCrop.css';\nimport './styles.css';\n\ninterface ImageUploadModalProps {\n show: boolean;\n onHide: () => void;\n onSave: (file: File, previewUrl: string) => void;\n required?: boolean;\n disabled?: boolean;\n accept?: string;\n}\n\nenum UploadStep {\n SELECT = 'SELECT',\n CROP = 'CROP',\n PREVIEW = 'PREVIEW',\n}\n\nexport const ImageUploadModal: React.FC = ({\n show,\n onHide,\n onSave,\n required = false,\n disabled = false,\n accept = \"image/png, image/jpeg, image/jpg\",\n}) => {\n const [currentStep, setCurrentStep] = useState(UploadStep.SELECT);\n const [imgSrc, setImgSrc] = useState('');\n const [crop, setCrop] = useState();\n const [completedCrop, setCompletedCrop] = useState();\n const imgRef = React.useRef(null);\n const [selectedFile, setSelectedFile] = useState(null);\n const [croppedImageUrl, setCroppedImageUrl] = useState('');\n const [lastCropResult, setLastCropResult] = useState<{ file: File; previewUrl: string } | null>(null);\n\n const resetState = () => {\n setCurrentStep(UploadStep.SELECT);\n setImgSrc('');\n setCrop(undefined);\n setCompletedCrop(undefined);\n setSelectedFile(null);\n setCroppedImageUrl('');\n setLastCropResult(null);\n };\n\n const handleClose = () => {\n resetState();\n onHide();\n };\n\n const onSelectFile = (e: React.ChangeEvent) => {\n if (e.target.files && e.target.files.length > 0) {\n const reader = new FileReader();\n reader.addEventListener('load', () => {\n setImgSrc(reader.result?.toString() || '');\n setCurrentStep(UploadStep.CROP);\n });\n reader.readAsDataURL(e.target.files[0]);\n setSelectedFile(e.target.files[0]);\n }\n };\n\n const onImageLoad = (e: React.SyntheticEvent) => {\n const { width, height } = e.currentTarget;\n setCrop({\n unit: '%',\n width: 90,\n height: 90,\n x: 5,\n y: 5\n });\n };\n\n const getCroppedImg = async (\n image: HTMLImageElement,\n crop: Crop,\n fileName: string\n ): Promise<{ file: File; previewUrl: string }> => {\n const canvas = document.createElement('canvas');\n const scaleX = image.naturalWidth / image.width;\n const scaleY = image.naturalHeight / image.height;\n canvas.width = crop.width || 0;\n canvas.height = crop.height || 0;\n const ctx = canvas.getContext('2d');\n\n if (!ctx) {\n throw new Error('No 2d context');\n }\n\n ctx.drawImage(\n image,\n (crop.x || 0) * scaleX,\n (crop.y || 0) * scaleY,\n (crop.width || 0) * scaleX,\n (crop.height || 0) * scaleY,\n 0,\n 0,\n crop.width || 0,\n crop.height || 0\n );\n\n const previewUrl = canvas.toDataURL('image/jpeg');\n setCroppedImageUrl(previewUrl);\n\n return new Promise((resolve, reject) => {\n canvas.toBlob(\n (blob) => {\n if (!blob) {\n reject(new Error('Canvas is empty'));\n return;\n }\n const file = new File([blob], fileName, {\n type: 'image/jpeg'\n });\n resolve({ file, previewUrl });\n },\n 'image/jpeg',\n 1\n );\n });\n };\n\n const handleCrop = async () => {\n if (completedCrop?.width && completedCrop?.height && imgRef.current && selectedFile) {\n try {\n const result = await getCroppedImg(\n imgRef.current,\n completedCrop,\n selectedFile.name\n );\n setLastCropResult(result);\n setCurrentStep(UploadStep.PREVIEW);\n } catch (e) {\n console.error('Error cropping image:', e);\n }\n }\n };\n\n const handleSave = () => {\n if (lastCropResult) {\n onSave(lastCropResult.file, lastCropResult.previewUrl);\n handleClose();\n }\n };\n\n const renderStepContent = () => {\n switch (currentStep) {\n case UploadStep.SELECT:\n return (\n
\n
Select an Image
\n

The image must be less than 4MB and in JPEG, PNG format.

\n \n
\n );\n case UploadStep.CROP:\n return (\n
\n
Adjust Image
\n

Drag to move. Drag corners to resize.

\n
\n setCrop(c)}\n onComplete={(c) => setCompletedCrop(c)}\n keepSelection\n ruleOfThirds\n >\n \n \n
\n
\n );\n case UploadStep.PREVIEW:\n return (\n
\n
Preview
\n {croppedImageUrl && (\n \n )}\n
\n );\n }\n };\n\n const renderFooterButtons = () => {\n switch (currentStep) {\n case UploadStep.SELECT:\n return (\n <>\n \n \n );\n case UploadStep.CROP:\n return (\n <>\n \n \n Next\n \n \n );\n case UploadStep.PREVIEW:\n return (\n <>\n \n \n Save\n \n \n );\n }\n };\n\n return (\n \n \n Upload Identification\n \n \n {renderStepContent()}\n \n \n {renderFooterButtons()}\n \n \n );\n};","import React, { useState } from 'react';\nimport { ImageUploadModal } from './ImageUploadModal';\n\ninterface ImageCropProps {\n onChange: (file: File) => void;\n required?: boolean;\n disabled?: boolean;\n previewUrl?: string;\n accept?: string;\n id?: string;\n name?: string;\n}\n\nexport const ImageCrop: React.FC = ({\n onChange,\n required = false,\n disabled = false,\n previewUrl,\n accept = \"image/png, image/jpeg, image/jpg\",\n id,\n name,\n}) => {\n const [showModal, setShowModal] = useState(false);\n const [localPreviewUrl, setLocalPreviewUrl] = useState(null);\n\n const handleSave = (file: File, previewDataUrl: string) => {\n setLocalPreviewUrl(previewDataUrl);\n onChange(file);\n setShowModal(false);\n };\n\n const displayUrl = localPreviewUrl || previewUrl;\n\n return (\n
\n
\n setShowModal(true)}\n disabled={disabled}\n >\n {displayUrl ? 'Change Image' : 'Select Image'}\n \n
\n\n {displayUrl && (\n
\n Current Image:\n
\n \n
\n
\n )}\n\n setShowModal(false)}\n onSave={handleSave}\n required={required}\n disabled={disabled}\n accept={accept}\n />\n
\n );\n};","import React, { useState } from 'react';\nimport { DOBField } from '../DOBField/DOBField';\nimport { AddressFields } from '../AddressFields/AddressFields';\nimport { LicenseFields } from '../LicenseFields/LicenseFields';\nimport { ImageCrop } from '../ImageCrop/ImageCrop';\n\ninterface FormData {\n has_fincen_id: boolean;\n fincen_id: string;\n profile_id: string | number;\n first_name: string;\n middle_name: string;\n last_name: string;\n suffix: string;\n date_of_birth: string;\n type_of_ownership: string;\n ownership_percentage: string;\n type_of_address: string;\n street_address: string;\n address_line_2: string;\n city: string;\n country: string;\n state: string;\n zip: string;\n type_of_license: string;\n license_number: string;\n license_country: string;\n license_state: string;\n identification_expiration_date: string;\n}\n\ninterface FormErrors {\n [key: string]: string;\n}\n\ninterface BeneficialOwnerFormProps {\n beneficialOwner: any;\n typesOfOwnership: string[];\n isNewBeneficialOwner: boolean;\n profileId: string | number;\n presignedUrl?: string;\n form_authenticity_token: string;\n}\n\ninterface ApiResponse {\n data?: any;\n locationHeader: string;\n}\n\nexport const BeneficialOwnerForm: React.FC = ({\n beneficialOwner,\n typesOfOwnership,\n isNewBeneficialOwner,\n profileId,\n presignedUrl,\n form_authenticity_token\n}) => {\n const [formData, setFormData] = useState({\n has_fincen_id: beneficialOwner.has_fincen_id || false,\n fincen_id: beneficialOwner.fincen_id || '',\n profile_id: profileId || beneficialOwner.profile_id || '',\n first_name: beneficialOwner.first_name || '',\n middle_name: beneficialOwner.middle_name || '',\n last_name: beneficialOwner.last_name || '',\n suffix: beneficialOwner.suffix || '',\n date_of_birth: beneficialOwner.date_of_birth || '',\n type_of_ownership: beneficialOwner.type_of_ownership || '',\n ownership_percentage: beneficialOwner.ownership_percentage || '',\n type_of_address: beneficialOwner.type_of_address || '',\n street_address: beneficialOwner.street_address || '',\n address_line_2: beneficialOwner.address_line_2 || '',\n city: beneficialOwner.city || '',\n country: beneficialOwner.country || '',\n state: beneficialOwner.state || '',\n zip: beneficialOwner.zip || '',\n type_of_license: beneficialOwner.type_of_license || '',\n license_number: beneficialOwner.license_number || '',\n license_country: beneficialOwner.license_country || '',\n license_state: beneficialOwner.license_state || '',\n identification_expiration_date: beneficialOwner.identification_expiration_date || '',\n });\n\n const [errors, setErrors] = useState({});\n const [identificationFront, setIdentificationFront] = useState(null);\n\n const fieldsDisabled = formData.has_fincen_id;\n const fieldsRequired = !formData.has_fincen_id;\n\n const handleInputChange = (e: React.ChangeEvent) => {\n const { name, value, type } = e.target;\n setFormData({\n ...formData,\n [name]: type === 'checkbox' ? (e.target as HTMLInputElement).checked : value\n });\n };\n\n const handleFileChange = (file: File) => {\n setIdentificationFront(file);\n };\n\n const handleLicenseFieldChange = (field: string, value: string) => {\n setFormData({ ...formData, [field]: value });\n }\n\n const handleAddressFieldChange = (field: string, value: string) => {\n setFormData({ ...formData, [field]: value });\n }\n\n const handleDOBFieldChange = (field: string, value: string) => {\n setFormData({ ...formData, [field]: value });\n }\n\n const validateForm = () => {\n const newErrors: FormErrors = {};\n // Required fields\n if (fieldsRequired) {\n if (!formData.first_name) newErrors.first_name = \"First Name is required\";\n if (!formData.last_name) newErrors.last_name = \"Last Name is required\";\n if (!formData.date_of_birth) newErrors.date_of_birth = \"Date of Birth is required\";\n if (!formData.type_of_ownership) newErrors.type_of_ownership = \"Type of Ownership is required\";\n if (!formData.ownership_percentage) newErrors.ownership_percentage = \"Ownership Percentage is required\";\n if (!formData.type_of_address) newErrors.type_of_address = \"Type of Address is required\";\n if (!formData.street_address) newErrors.street_address = \"Street Address is required\";\n if (!formData.city) newErrors.city = \"City is required\";\n if (!formData.state) newErrors.state = \"State/Province is required\";\n if (!formData.zip) newErrors.zip = \"ZIP Code is required\";\n if (!formData.country) newErrors.country = \"Country is required\";\n if (!formData.type_of_license) newErrors.type_of_license = \"Type of License is required\";\n }\n if (formData.has_fincen_id && !formData.fincen_id) newErrors.fincen_id = \"FinCEN ID is required when 'Has FinCEN ID' is true\";\n\n if (fieldsRequired) {\n // Date of Birth >= 18 years ago\n const dob = new Date(formData.date_of_birth);\n const today = new Date();\n const age = today.getFullYear() - dob.getFullYear();\n const monthDiff = today.getMonth() - dob.getMonth();\n if (age < 18 || (age === 18 && monthDiff < 0)) {\n newErrors.date_of_birth = \"Beneficial owner must be at least 18 years old\";\n }\n\n // Ownership Percentage validation\n const ownershipPercentage = parseFloat(formData.ownership_percentage);\n if (isNaN(ownershipPercentage) || ownershipPercentage < 0 || ownershipPercentage > 100) {\n newErrors.ownership_percentage = \"Ownership Percentage must be a number between 0 and 100\";\n }\n\n // Identification validation\n if (formData.type_of_license) {\n if (!formData.license_number) newErrors.license_number = \"License Number is required\";\n if (!formData.identification_expiration_date) newErrors.identification_expiration_date = \"Identification Expiration Date is required\";\n\n // identification_expiration_date must be in the future\n const expirationDate = new Date(formData.identification_expiration_date);\n if (expirationDate <= today) {\n newErrors.identification_expiration_date = \"Identification expiration date must be in the future\";\n }\n }\n }\n\n // Add more validations as needed\n setErrors(newErrors);\n\n // If there are any errors, scroll to #error_explanation\n if (Object.keys(newErrors).length > 0) {\n const errorExplanation = document.getElementById('form');\n if (errorExplanation) {\n errorExplanation.scrollIntoView({ behavior: 'smooth' });\n }\n }\n return Object.keys(newErrors).length === 0;\n };\n\n const handleSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n if (validateForm()) {\n const formDataToSubmit = new FormData();\n\n // Append all form data\n Object.entries(formData).forEach(([key, value]) => {\n formDataToSubmit.append(`beneficial_owner[${key}]`, value);\n });\n\n // Append the file if it exists\n if (identificationFront) {\n formDataToSubmit.append('beneficial_owner[identification_front]', identificationFront);\n }\n\n formDataToSubmit.append('authenticity_token', form_authenticity_token);\n\n const submitUrl = isNewBeneficialOwner\n ? '/beneficial_owners'\n : `/beneficial_owners/${beneficialOwner.id}`;\n\n // formDataToSubmit values iterated\n console.log('Form Data to Submit:', formDataToSubmit.getAll('beneficial_owner[first_name]'));\n\n const method = isNewBeneficialOwner ? 'POST' : 'PUT';\n\n fetch(submitUrl, {\n method: method,\n body: formDataToSubmit,\n headers: {\n 'X-CSRF-Token': form_authenticity_token,\n },\n })\n .then(response => {\n console.log('Response:', response);\n if (!response.redirected) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n // Extract the 'Location' header\n const locationHeader = `/profiles/${profileId}`;\n\n // Check if the response is JSON\n const contentType = response.headers.get(\"content-type\");\n if (contentType && contentType.indexOf(\"application/json\") !== -1) {\n return response.json().then(data => ({ data, locationHeader } as ApiResponse));\n } else {\n // If it's not JSON, just return the location header\n return { locationHeader } as ApiResponse;\n }\n })\n .then((result: ApiResponse) => {\n if (result.data) {\n console.log('Submission successful', result.data);\n } else {\n console.log('Submission successful, no data returned');\n }\n // Redirect to the location provided in the response\n if (result.locationHeader) {\n window.location.href = result.locationHeader;\n }\n })\n .catch(error => {\n console.error('Error:', error);\n setErrors({ submission: error.message || 'An error occurred while submitting the form.' });\n });\n }\n };\n\n return (\n
\n
\n
\n
\n {Object.keys(errors).length > 0 && (\n
\n

{Object.keys(errors).length} error(s) prevented this form from being submitted:

\n
    \n {Object.entries(errors).map(([key, value]) => (\n
  • {value as string}
  • \n ))}\n
\n
\n )}\n
\n
\n
\n \n
\n
\n setFormData({ ...formData, has_fincen_id: true })}\n />\n \n
\n
\n setFormData({ ...formData, has_fincen_id: false })}\n />\n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n \n
\n \n \n {typesOfOwnership.map((type) => (\n \n ))}\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n
\n {/* Notice to use a residential address and that PO boxes will not be accepted */}\n
\n Please use a residential address only. P.O. boxes and business addresses will not be accepted.\n
\n \n
\n
\n
\n
\n \n

Please select one of the following valid forms of identification. At least one of the following is required.

\n \n
\n
\n

It is required that you scan and provide an image of this identification.

\n
\n
\n \n

The image must be less than 4MB and in JPEG, PNG or PDF format.

\n \n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n );\n};\n\nexport default BeneficialOwnerForm;\n","import ReactOnRails from 'react-on-rails';\n\nimport { AddressFields } from '../bundles/AddressFields/AddressFields';\nimport { LicenseFields } from '../bundles/LicenseFields/LicenseFields';\nimport { Onboarding } from '../bundles/Onboarding/Onboarding';\nimport { SignUp } from '../bundles/SignUp/SignUp';\nimport { DOIField } from '../bundles/DOIField/DOIField';\nimport { DOBField } from '../bundles/DOBField/DOBField';\nimport { InfoBox, ReportingCompanyInfoBox, CompanyApplicantInfoBox, BeneficialOwnerInfoBox, CTARepInfoBox } from '../bundles/InfoBox/InfoBox';\nimport { EINField } from '../bundles/EINField/EINField';\nimport { ValidatedSubmitButton } from '../bundles/ValidatedSubmitButton/ValidatedSubmitButton';\nimport { BeneficialOwnerForm } from '../bundles/BeneficialOwner/BeneficialOwnerForm';\nimport { ProfileForm } from '../bundles/ProfileForm/ProfileForm';\nimport { ProfileAdditionalForm } from '../bundles/ProfileForm/ProfileAdditionalForm';\n\nimport { Notes } from '../bundles/Notes/Notes';\n\n// This is how react_on_rails can see the HelloWorld in the browser.\nReactOnRails.register({\n AddressFields,\n LicenseFields,\n Onboarding,\n SignUp,\n DOIField,\n DOBField,\n InfoBox,\n ReportingCompanyInfoBox,\n CompanyApplicantInfoBox,\n BeneficialOwnerInfoBox,\n CTARepInfoBox,\n EINField,\n ValidatedSubmitButton,\n BeneficialOwnerForm,\n Notes,\n ProfileForm,\n ProfileAdditionalForm\n});\n","// React field to mimic the following. If the date is after 2024, then the field should say how many days left until the filing deadline. The filing deadline is 90 dayys after the date of incorproration. If the deadline has passed, say so.\n{/*
\n <%= form.date_field :date_of_incorporation, class: \"form-control\", required: true %>\n <%= form.label :date_of_incorporation, class: \"control-label\" %>\n
*/}\nimport React from 'react';\n\ninterface DOIFieldProps {\n modelName: string;\n selectedDOI?: string;\n}\n\nexport const DOIField = ({ modelName, selectedDOI }: DOIFieldProps) => {\n const [dateOfIncorporation, setDateOfIncorporation] = React.useState(selectedDOI || '');\n\n const dateOfIncorporationDate = new Date(dateOfIncorporation);\n const filingDeadline = new Date(dateOfIncorporationDate);\n filingDeadline.setDate(filingDeadline.getDate() + 90);\n\n const today = new Date();\n const daysLeft = Math.floor((filingDeadline.getTime() - today.getTime()) / (1000 * 60 * 60 * 24));\n\n return (\n
\n
\n setDateOfIncorporation(e.target.value)}\n className=\"form-control\"\n required={\"required\"}\n />\n \n
\n\n {/* {dateOfIncorporationDate > new Date('2024-01-01')\n ? daysLeft > 0\n ?

\n {`${daysLeft} days left until the filing deadline for this reporting company.`}\n

\n :

\n {`The filing deadline has passed ${daysLeft * -1} days ago for this reporting company.`}\n

\n : ''} */}\n
\n );\n};\n","import * as React from 'react';\nimport { useStore } from '@nanostores/react';\nimport { $ValidationsArray } from '../nanostores/ValidationsArray';\n\nexport const ValidatedSubmitButton: React.FC = () => {\n const validationsArray = useStore($ValidationsArray);\n\n const [disabled, setDisabled] = React.useState(false);\n const [errorMessage, setErrorMessage] = React.useState('');\n\n React.useEffect(() => {\n if (validationsArray.length > 0) {\n setDisabled(true);\n setErrorMessage('Please correctly fill out all required fields.');\n } else {\n setDisabled(false);\n setErrorMessage('');\n }\n }, [validationsArray]);\n\n return (\n
\n \n
\n );\n}","import React, { useState, useEffect } from 'react';\n\nexport const Notes = ({ profileId, authenticityToken }) => {\n const [notes, setNotes] = useState([]);\n const [newNote, setNewNote] = useState({ content: '' });\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState(null);\n const [hoveredNoteId, setHoveredNoteId] = useState(null);\n const [editingNoteId, setEditingNoteId] = useState(null);\n const [editedContent, setEditedContent] = useState('');\n\n useEffect(() => {\n fetchNotes();\n }, []);\n\n const fetchNotes = async () => {\n try {\n const response = await fetch(`/notes.json?profile_id=${profileId}`);\n if (!response.ok) throw new Error('Failed to fetch notes');\n const data = await response.json();\n setNotes(data.sort((a, b) => new Date(b.created_at) - new Date(a.created_at)));\n } catch (err) {\n setError('Failed to load notes');\n } finally {\n setLoading(false);\n }\n };\n\n const handleInputChange = (e) => {\n const { name, value } = e.target;\n setNewNote(prev => ({ ...prev, [name]: value }));\n };\n\n const addNote = async () => {\n if (newNote.content) {\n const data = {\n note: {\n content: newNote.content,\n profile_id: profileId\n }\n };\n\n try {\n const response = await fetch(`/notes.json`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'X-CSRF-Token': authenticityToken\n },\n body: JSON.stringify(data)\n });\n if (response.status === 422) {\n window.location.reload();\n return;\n }\n if (!response.ok) throw new Error('Failed to create note');\n const createdNote = await response.json();\n setNotes(prev => [createdNote, ...prev]);\n setNewNote({ content: '' });\n } catch (err) {\n setError('Failed to create note');\n }\n }\n };\n\n const deleteNote = async (id) => {\n if (window.confirm('Are you sure you want to delete this note?')) {\n try {\n const response = await fetch(`/notes/${id}.json`, {\n method: 'DELETE',\n headers: {\n 'X-CSRF-Token': authenticityToken\n }\n });\n if (response.status === 422) {\n window.location.reload();\n return;\n }\n if (!response.ok) throw new Error('Failed to delete note');\n setNotes(prev => prev.filter(note => note.id !== id));\n } catch (err) {\n setError('Failed to delete note');\n }\n }\n };\n\n const startEditing = (note) => {\n setEditingNoteId(note.id);\n setEditedContent(note.content);\n };\n\n const cancelEditing = () => {\n setEditingNoteId(null);\n setEditedContent('');\n };\n\n const saveEditedNote = async (id) => {\n try {\n const response = await fetch(`/notes/${id}.json`, {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json',\n 'X-CSRF-Token': authenticityToken\n },\n body: JSON.stringify({ note: { content: editedContent } })\n });\n if (response.status === 422) {\n window.location.reload();\n return;\n }\n if (!response.ok) throw new Error('Failed to update note');\n const updatedNote = await response.json();\n setNotes(prev => prev.map(note => note.id === id ? updatedNote : note));\n setEditingNoteId(null);\n setEditedContent('');\n } catch (err) {\n setError('Failed to update note');\n }\n };\n\n if (loading) return
Loading...
;\n if (error) return
{error}
;\n\n return (\n
\n
\n

Notes

\n\n
{ e.preventDefault(); addNote(); }}>\n
\n \n
\n \n Add Note\n \n \n\n
\n {notes.map(note => (\n setHoveredNoteId(note.id)}\n onMouseLeave={() => setHoveredNoteId(null)}\n >\n
\n {editingNoteId === note.id ? (\n
\n setEditedContent(e.target.value)}\n rows=\"3\"\n >\n saveEditedNote(note.id)}\n className=\"btn btn-link btn-sm me-2\"\n >\n \n \n \n \n \n
\n ) : (\n <>\n

{note.content}

\n

\n \n By {note.author} on {new Date(note.created_at).toLocaleString()}\n \n

\n {hoveredNoteId === note.id && (\n <>\n startEditing(note)}\n className=\"btn btn-link btn-sm position-absolute top-0 end-0 m-2 me-5\"\n >\n \n \n deleteNote(note.id)}\n className=\"btn btn-link btn-sm position-absolute top-0 end-0 m-2\"\n >\n \n \n \n )}\n \n )}\n
\n
\n ))}\n
\n
\n \n );\n};\n","import React, { useState } from 'react';\nimport { DOBField } from '../DOBField/DOBField';\nimport { AddressFields } from '../AddressFields/AddressFields';\nimport { LicenseFields } from '../LicenseFields/LicenseFields';\nimport { ImageCrop } from '../ImageCrop/ImageCrop';\n\ninterface ProfileFormProps {\n profile_id: number;\n profile: {\n has_fincen_id: boolean;\n fincen_id: string;\n first_name: string;\n middle_name: string;\n last_name: string;\n suffix: string;\n date_of_birth: string;\n phone_country_code: string;\n phone: string;\n type_of_address: string;\n street_address: string;\n address_line_2: string;\n city: string;\n country: string;\n state: string;\n zip: string;\n type_of_license: string;\n license_number: string;\n license_country: string;\n license_state: string;\n identification_expiration_date: string;\n };\n countryCodes: string[];\n form_authenticity_token: string;\n presignedUrl?: string;\n}\n\nexport const ProfileForm: React.FC = ({ profile_id, profile, countryCodes, form_authenticity_token, presignedUrl }) => {\n const [formData, setFormData] = useState({\n ...profile,\n has_fincen_id: profile.has_fincen_id || false,\n fincen_id: profile.fincen_id || '',\n first_name: profile.first_name || '',\n middle_name: profile.middle_name || '',\n last_name: profile.last_name || '',\n suffix: profile.suffix || '',\n date_of_birth: profile.date_of_birth || '',\n phone_country_code: profile.phone_country_code || '',\n phone: profile.phone || '',\n type_of_address: profile.type_of_address || '',\n street_address: profile.street_address || '',\n address_line_2: profile.address_line_2 || '',\n city: profile.city || '',\n country: profile.country || '',\n state: profile.state || '',\n zip: profile.zip || '',\n type_of_license: profile.type_of_license || '',\n license_number: profile.license_number || '',\n license_country: profile.license_country || '',\n license_state: profile.license_state || '',\n identification_expiration_date: profile.identification_expiration_date || '',\n });\n const [errors, setErrors] = useState>({});\n const [identificationFront, setIdentificationFront] = useState(null);\n\n const fieldsDisabled = formData.has_fincen_id;\n const fieldsRequired = !formData.has_fincen_id;\n\n const handleInputChange = (e: React.ChangeEvent) => {\n const { name, value, type } = e.target;\n const newValue = type === 'checkbox' ? (e.target as HTMLInputElement).checked : value;\n setFormData({ ...formData, [name]: newValue });\n };\n\n const handleFileChange = (file: File) => {\n setIdentificationFront(file);\n };\n\n const handleAddressFieldChange = (field: string, value: string) => {\n setFormData({ ...formData, [field]: value });\n };\n\n const handleLicenseFieldChange = (field: string, value: string) => {\n setFormData({ ...formData, [field]: value });\n };\n\n const handleDOBFieldChange = (field: string, value: string) => {\n setFormData({ ...formData, [field]: value });\n };\n\n const validateForm = () => {\n const newErrors: Record = {};\n if (fieldsRequired) {\n if (!formData.first_name) newErrors.first_name = \"First Name is required\";\n if (!formData.last_name) newErrors.last_name = \"Last Name is required\";\n if (!formData.date_of_birth) newErrors.date_of_birth = \"Date of Birth is required\";\n if (!formData.phone_country_code) newErrors.phone_country_code = \"Phone Country Code is required\";\n if (!formData.phone) newErrors.phone = \"Phone Number is required\";\n if (!formData.type_of_address) newErrors.type_of_address = \"Type of Address is required\";\n if (!formData.street_address) newErrors.street_address = \"Street Address is required\";\n if (!formData.city) newErrors.city = \"City is required\";\n if (!formData.state) newErrors.state = \"State/Province is required\";\n if (!formData.zip) newErrors.zip = \"ZIP Code is required\";\n if (!formData.country) newErrors.country = \"Country is required\";\n if (!formData.type_of_license) newErrors.type_of_license = \"Type of License is required\";\n }\n if (formData.has_fincen_id && !formData.fincen_id) newErrors.fincen_id = \"FinCEN ID is required when 'Has FinCEN ID' is true\";\n\n setErrors(newErrors);\n return Object.keys(newErrors).length === 0;\n };\n\n const handleSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n if (validateForm()) {\n const formDataToSubmit = new FormData();\n\n // Append all form data\n Object.entries(formData).forEach(([key, value]) => {\n formDataToSubmit.append(`profile[${key}]`, value as string);\n });\n\n // Append the file if it exists\n if (identificationFront) {\n formDataToSubmit.append('profile[identification_front]', identificationFront);\n }\n\n formDataToSubmit.append('authenticity_token', form_authenticity_token);\n\n const submitUrl = `/profiles/${profile_id}.json`;\n\n console.log('Form Data to Submit:');\n for (const [key, value] of formDataToSubmit.entries()) {\n console.log(`${key}: ${value}`);\n }\n\n const method = \"PATCH\";\n\n fetch(submitUrl, {\n method: method,\n body: formDataToSubmit,\n headers: {\n 'X-CSRF-Token': form_authenticity_token,\n },\n })\n .then(response => {\n console.log('Response:', response);\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n return response.json();\n })\n .then(data => {\n console.log('Submission successful', data);\n const redirectUrl = submitUrl.replace('.json', '');\n window.location.href = redirectUrl;\n })\n .catch(error => {\n console.error('Error:', error);\n setErrors({ submission: error.message || 'An error occurred while submitting the form.' });\n });\n }\n };\n\n return (\n
\n
\n
\n
\n
\n
\n {Object.keys(errors).length > 0 && (\n
\n

{Object.keys(errors).length} error(s) prevented this form from being submitted:

\n
    \n {Object.entries(errors).map(([key, value]) => (\n
  • {value}
  • \n ))}\n
\n
\n )}\n
\n
\n
\n \n
\n
\n setFormData({ ...formData, has_fincen_id: true })}\n />\n \n
\n
\n setFormData({ ...formData, has_fincen_id: false })}\n />\n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n \n
\n \n \n {countryCodes.map((code) => (\n \n ))}\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n \n
\n \n
\n
\n
\n
\n \n

Please select one of the following valid forms of identification. At least one of the following is required.

\n \n
\n
\n

It is required that you scan and provide an image of this identification.

\n
\n
\n \n

The image must be less than 4MB and in JPEG, PNG or PDF format.

\n \n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n );\n};\n","import React, { useState } from 'react';\nimport { DOBField } from '../DOBField/DOBField';\nimport { AddressFields } from '../AddressFields/AddressFields';\nimport { LicenseFields } from '../LicenseFields/LicenseFields';\nimport { ImageCrop } from '../ImageCrop/ImageCrop';\n\ninterface ProfileFormProps {\n profile_id: number;\n profile: {\n additional_app_has_fincen_id: boolean;\n additional_app_fincen_id: string;\n additional_app_first_name: string;\n additional_app_middle_name: string;\n additional_app_last_name: string;\n additional_app_suffix: string;\n additional_app_date_of_birth: string;\n additional_app_phone_country_code: string;\n additional_app_phone: string;\n additional_app_type_of_address: string;\n additional_app_street_address: string;\n additional_app_address_line_2: string;\n additional_app_city: string;\n additional_app_country: string;\n additional_app_state: string;\n additional_app_zip: string;\n additional_app_type_of_license: string;\n additional_app_license_number: string;\n additional_app_license_country: string;\n additional_app_license_state: string;\n additional_app_identification_expiration_date: string;\n };\n countryCodes: string[];\n form_authenticity_token: string;\n presignedUrl?: string;\n}\n\nexport const ProfileAdditionalForm: React.FC = ({ profile_id, profile, countryCodes, form_authenticity_token, presignedUrl }) => {\n const [formData, setFormData] = useState({\n ...profile,\n additional_app_has_fincen_id: profile.additional_app_has_fincen_id || false,\n additional_app_fincen_id: profile.additional_app_fincen_id || '',\n additional_app_first_name: profile.additional_app_first_name || '',\n additional_app_middle_name: profile.additional_app_middle_name || '',\n additional_app_last_name: profile.additional_app_last_name || '',\n additional_app_suffix: profile.additional_app_suffix || '',\n additional_app_date_of_birth: profile.additional_app_date_of_birth || '',\n additional_app_phone_country_code: profile.additional_app_phone_country_code || '',\n additional_app_phone: profile.additional_app_phone || '',\n additional_app_type_of_address: profile.additional_app_type_of_address || '',\n additional_app_street_address: profile.additional_app_street_address || '',\n additional_app_address_line_2: profile.additional_app_address_line_2 || '',\n additional_app_city: profile.additional_app_city || '',\n additional_app_country: profile.additional_app_country || '',\n additional_app_state: profile.additional_app_state || '',\n additional_app_zip: profile.additional_app_zip || '',\n additional_app_type_of_license: profile.additional_app_type_of_license || '',\n additional_app_license_number: profile.additional_app_license_number || '',\n additional_app_license_country: profile.additional_app_license_country || '',\n additional_app_license_state: profile.additional_app_license_state || '',\n additional_app_identification_expiration_date: profile.additional_app_identification_expiration_date || '',\n });\n const [errors, setErrors] = useState>({});\n const [identificationFront, setIdentificationFront] = useState(null);\n\n const fieldsDisabled = formData.additional_app_has_fincen_id;\n const fieldsRequired = !formData.additional_app_has_fincen_id;\n\n const handleInputChange = (e: React.ChangeEvent) => {\n const { name, value, type } = e.target;\n const newValue = type === 'checkbox' ? (e.target as HTMLInputElement).checked : value;\n setFormData({ ...formData, [name]: newValue });\n\n console.log('formData', formData);\n };\n\n const handleFileChange = (file: File) => {\n setIdentificationFront(file);\n };\n\n const handleAddressFieldChange = (field: string, value: string) => {\n setFormData({ ...formData, [field]: value });\n };\n\n const handleLicenseFieldChange = (field: string, value: string) => {\n setFormData({ ...formData, [field]: value });\n };\n\n const handleDOBFieldChange = (field: string, value: string) => {\n setFormData({ ...formData, [field]: value });\n };\n\n const validateForm = () => {\n const newErrors: Record = {};\n if (fieldsRequired) {\n if (!formData.additional_app_first_name.trim()) newErrors.additional_app_first_name = \"First Name is required\";\n if (!formData.additional_app_last_name.trim()) newErrors.additional_app_last_name = \"Last Name is required\";\n if (!formData.additional_app_date_of_birth.trim()) newErrors.additional_app_date_of_birth = \"Date of Birth is required\";\n if (!formData.additional_app_phone_country_code.trim()) newErrors.additional_app_phone_country_code = \"Phone Country Code is required\";\n if (!formData.additional_app_phone.trim()) newErrors.additional_app_phone = \"Phone Number is required\";\n if (!formData.additional_app_type_of_address.trim()) newErrors.additional_app_type_of_address = \"Type of Address is required\";\n if (!formData.additional_app_street_address.trim()) newErrors.additional_app_street_address = \"Street Address is required\";\n if (!formData.additional_app_city.trim()) newErrors.additional_app_city = \"City is required\";\n if (!formData.additional_app_state.trim()) newErrors.additional_app_state = \"State/Province is required\";\n if (!formData.additional_app_zip.trim()) newErrors.additional_app_zip = \"ZIP Code is required\";\n if (!formData.additional_app_country.trim()) newErrors.additional_app_country = \"Country is required\";\n if (!formData.additional_app_type_of_license.trim()) newErrors.additional_app_type_of_license = \"Type of License is required\";\n }\n if (formData.additional_app_has_fincen_id && !formData.additional_app_fincen_id.trim()) newErrors.additional_app_fincen_id = \"FinCEN ID is required when 'Has FinCEN ID' is true\";\n\n setErrors(newErrors);\n return Object.keys(newErrors).length === 0;\n };\n\n const handleSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n if (validateForm()) {\n const formDataToSubmit = new FormData();\n\n // Append all form data\n Object.entries(formData).forEach(([key, value]) => {\n if (value !== '') {\n formDataToSubmit.append(`profile[${key}]`, value as string);\n }\n });\n\n // Append the file if it exists\n if (identificationFront) {\n formDataToSubmit.append('profile[additional_app_identification_front]', identificationFront);\n }\n\n formDataToSubmit.append('authenticity_token', form_authenticity_token);\n\n const submitUrl = `/profiles/${profile_id}.json`;\n\n console.log('Form Data to Submit:', formDataToSubmit.getAll('profile[additional_app_first_name]'));\n\n const method = \"PATCH\";\n\n fetch(submitUrl, {\n method: method,\n body: formDataToSubmit,\n headers: {\n 'X-CSRF-Token': form_authenticity_token,\n },\n })\n .then(response => {\n console.log('Response:', response);\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n return response.json();\n })\n .then(data => {\n console.log('Submission successful', data);\n const redirectUrl = submitUrl.replace('.json', '');\n window.location.href = redirectUrl;\n })\n .catch(error => {\n console.error('Error:', error);\n setErrors({ submission: error.message || 'An error occurred while submitting the form.' });\n });\n }\n };\n\n return (\n
\n
\n
\n
\n
\n
\n {Object.keys(errors).length > 0 && (\n
\n

{Object.keys(errors).length} error(s) prevented this form from being submitted:

\n
    \n {Object.entries(errors).map(([key, value]) => (\n
  • {value}
  • \n ))}\n
\n
\n )}\n
\n
\n
\n \n
\n
\n setFormData({ ...formData, additional_app_has_fincen_id: true })}\n />\n \n
\n
\n setFormData({ ...formData, additional_app_has_fincen_id: false })}\n />\n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n \n
\n \n \n {countryCodes.map((code) => (\n \n ))}\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n \n
\n \n
\n
\n
\n
\n \n

Please select one of the following valid forms of identification. At least one of the following is required.

\n \n
\n
\n

It is required that you scan and provide an image of this identification.

\n
\n
\n \n

The image must be less than 4MB and in JPEG, PNG or PDF format.

\n \n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n );\n};\n"],"names":["CountryField","selectedCountry","modelName","fieldName","prefix","setCountryFunction","disabled","required","console","log","countriesOptions","CountriesWithStates","map","country","selected","name","React","key","value","className","id","onChange","e","target","states","StateField","selectedState","setStateFunction","selectedStateObject","find","state","length","type","placeholder","index","for","AddressFields","selectedStreetAddress","selectedAddressLine2","selectedCity","selectedZip","addressLine2Name","fieldsDisabled","fieldsRequired","setCountry","setState","streetAddress","setStreetAddress","addressLine2","setAddressLine2","city","setCity","zip","setZip","selectedCountryObject","c","selectedCountryStates","StandardFormTextField","$ValidationsArray","atom","LicenseFields","selectedTypeOfLicense","selectedLicenseNumber","selectedLicenseCountry","selectedLicenseState","selectedIdentificationExpirationDate","typeOfLicense","setTypeOfLicense","licenseNumber","setLicenseNumber","licenseCountry","setLicenseCountry","licenseState","setLicenseState","identificationExpirationDate","setIdentificationExpirationDate","typeOfLicenseObject","useStore","TYPES_OF_LICENSES","license","isLicenseExpired","Date","identification_expiration_date","license_number","license_country","license_state","toLowerCase","includes","get","set","filter","field","removeValidationField","TypeOfLicenseFields","types_of_licenses","htmlFor","isLicenseExpirationDateWithin90Days","expirationDate","today","ninetyDaysFromToday","setDate","getDate","role","licenseDescription","licenseValue","licenseId","replace","checked","QuestionTextField","question","setValue","error","setError","event","errorConditions","some","errorCondition","condition","errorContent","label","description","QuestionDateField","QuestionCheckbox","handleChange","newValue","QuestionCheckboxes","selectedValues","split","push","val","join","options","option","QuestionSelect","alertType","labelTooLong","InfoBox","message","OverlayTrigger","placement","delay","show","hide","overlay","props","tooltipProps","Tooltip","Object","assign","BsInfoCircle","ReportingCompanyInfoBox","CTARepInfoBox","exemptions","OnboardingExemptionCheck","selectedValue","link","onClick","prevState","href","NameOfReportingCompany","questionType","DateOfIncorporation","parse","DateOfIncorporationWarning","content","showConditions","showCondition","date_of_incorporation","ninety_days_after_incorporation","remainingDays","Math","floor","getTime","getFullYear","DateOfIncorporationWarningCheckbox","CTAComplianceRepresentativeInformationHeader","ComplianceRepresentativeFirstName","blocking","ComplianceRepresentativeMiddleName","ComplianceRepresentativeLastName","ComplianceRepresentativeSuffix","ReportingCompanyHeader","TypeOfEntity","TypeOfEntityOther","EntityCreateBySoS","ConfirmContinue","ExemptionQuestion","ExemptionWillBeCollectedLater","ExemptionDetermination","HighRiskCountries","HighRiskCountriesList","style","height","overflowY","border","padding","marginTop","OFACQuestion","TrustOwnsCompany","SubmitButton","ExemptionsListRadios","CompanyStreetAddress","CompanyStreetAddress2","CompanyCity","CompanyState","CompanyZip","QuestionsInit","date","days","DOBField","selectedDateOfBirth","errorMessage","dateOfBirth","setDateOfBirth","age","undefined","window","TaxIDTypeField","selectedTaxIDType","setTaxIDType","TaxIDNumberField","selectedTaxIDNumber","setTaxIDNumber","inputMask","InputMask","mask","replacement","UploadStep","ImageUploadModal","onHide","onSave","accept","currentStep","setCurrentStep","useState","SELECT","imgSrc","setImgSrc","crop","setCrop","completedCrop","setCompletedCrop","imgRef","selectedFile","setSelectedFile","croppedImageUrl","setCroppedImageUrl","lastCropResult","setLastCropResult","handleClose","onSelectFile","files","reader","FileReader","addEventListener","result","toString","CROP","readAsDataURL","onImageLoad","width","currentTarget","unit","x","y","handleCrop","async","current","image","fileName","canvas","document","createElement","scaleX","naturalWidth","scaleY","naturalHeight","ctx","getContext","Error","drawImage","previewUrl","toDataURL","Promise","resolve","reject","toBlob","blob","file","File","getCroppedImg","PREVIEW","handleSave","Modal","size","centered","backdrop","Header","closeButton","Title","Body","renderStepContent","ReactCrop","onComplete","keepSelection","ruleOfThirds","ref","alt","src","maxWidth","display","onLoad","maxHeight","Footer","renderFooterButtons","Button","variant","ImageCrop","showModal","setShowModal","localPreviewUrl","setLocalPreviewUrl","displayUrl","previewDataUrl","BeneficialOwnerForm","beneficialOwner","typesOfOwnership","isNewBeneficialOwner","profileId","presignedUrl","form_authenticity_token","formData","setFormData","has_fincen_id","fincen_id","profile_id","first_name","middle_name","last_name","suffix","date_of_birth","type_of_ownership","ownership_percentage","type_of_address","street_address","address_line_2","type_of_license","errors","setErrors","identificationFront","setIdentificationFront","handleInputChange","onSubmit","preventDefault","validateForm","newErrors","dob","monthDiff","getMonth","ownershipPercentage","parseFloat","isNaN","keys","errorExplanation","getElementById","scrollIntoView","behavior","formDataToSubmit","FormData","entries","forEach","append","submitUrl","getAll","fetch","method","body","headers","then","response","redirected","status","locationHeader","contentType","indexOf","json","data","location","catch","submission","handleDOBFieldChange","fontSize","handleAddressFieldChange","handleLicenseFieldChange","ReactOnRails","Onboarding","profile_data","update_profile_path","submit_profile_path","initialState","questions","company_information","company_information_keys","reduce","acc","question_names","Questions","delayDebounceFn","setTimeout","UpdateProfileFn","profile","JSON","stringify","clearTimeout","action","every","SignUp","DOIField","selectedDOI","dateOfIncorporation","setDateOfIncorporation","dateOfIncorporationDate","filingDeadline","CompanyApplicantInfoBox","BeneficialOwnerInfoBox","EINField","taxIDFieldTypeName","taxIDFieldName","taxIDType","taxIDNumber","ValidatedSubmitButton","validationsArray","setDisabled","setErrorMessage","Notes","authenticityToken","notes","setNotes","newNote","setNewNote","loading","setLoading","hoveredNoteId","setHoveredNoteId","editingNoteId","setEditingNoteId","editedContent","setEditedContent","useEffect","fetchNotes","ok","sort","a","b","created_at","err","cancelEditing","note","reload","createdNote","prev","addNote","rows","onMouseEnter","onMouseLeave","updatedNote","saveEditedNote","author","toLocaleString","startEditing","confirm","deleteNote","ProfileForm","countryCodes","phone_country_code","phone","redirectUrl","code","ProfileAdditionalForm","additional_app_has_fincen_id","additional_app_fincen_id","additional_app_first_name","additional_app_middle_name","additional_app_last_name","additional_app_suffix","additional_app_date_of_birth","additional_app_phone_country_code","additional_app_phone","additional_app_type_of_address","additional_app_street_address","additional_app_address_line_2","additional_app_city","additional_app_country","additional_app_state","additional_app_zip","additional_app_type_of_license","additional_app_license_number","additional_app_license_country","additional_app_license_state","additional_app_identification_expiration_date","trim"],"sourceRoot":""}