{"version":3,"file":"js/module_auth.signup.b354a49a.bundle.js","mappings":"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","sources":["webpack:///indico/modules/auth/client/js/signup.jsx"],"sourcesContent":["// This file is part of Indico.\n// Copyright (C) 2002 - 2024 CERN\n//\n// Indico is free software; you can redistribute it and/or\n// modify it under the terms of the MIT License; see the\n// LICENSE file for more details.\n\nimport privacyPolicyURL from 'indico-url:legal.display_privacy';\nimport tosURL from 'indico-url:legal.display_tos';\n\nimport _ from 'lodash';\nimport moment from 'moment';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport {Field, Form as FinalForm} from 'react-final-form';\nimport {Button, Form, Message} from 'semantic-ui-react';\n\nimport {\n SyncedFinalAffiliationDropdown,\n SyncedFinalDropdown,\n SyncedFinalInput,\n SyncedFinalTextArea,\n} from 'indico/react/components/syncedInputs';\nimport {\n FinalInput,\n FinalSubmitButton,\n handleSubmitError,\n getValuesForFields,\n} from 'indico/react/forms';\nimport {Fieldset, FinalTextArea, FinalCheckbox} from 'indico/react/forms/fields';\nimport {Translate, Param} from 'indico/react/i18n';\nimport {indicoAxios} from 'indico/utils/axios';\n\nfunction Signup({\n cancelURL,\n moderated,\n tosUrl,\n tos,\n privacyPolicyUrl,\n privacyPolicy,\n termsRequireAccept,\n termsEffectiveDate,\n initialValues,\n hasPredefinedAffiliations,\n showAccountForm,\n syncedValues,\n emails,\n affiliationMeta,\n hasPendingUser,\n mandatoryFields,\n lockedFields,\n lockedFieldMessage,\n}) {\n const handleSubmit = async (data, form) => {\n const values = getValuesForFields(data, form);\n delete values.password_confirm;\n if (!hasPredefinedAffiliations) {\n // value.affiliation is already there and used\n delete values.affiliation_data;\n } else if (values.affiliation_data) {\n values.affiliation = values.affiliation_data.text.trim();\n values.affiliation_id = values.affiliation_data.id;\n delete values.affiliation_data;\n }\n let resp;\n try {\n resp = await indicoAxios.post(location.href, values);\n } catch (e) {\n return handleSubmitError(\n e,\n hasPredefinedAffiliations ? {affiliation: 'affiliation_data'} : {}\n );\n }\n location.href = resp.data.redirect;\n // never finish submitting to avoid fields being re-enabled\n await new Promise(() => {});\n };\n\n const termsAcceptLabel = () => {\n const stopPropagation = evt => evt.stopPropagation();\n const tosLinkWrapper = tosUrl ? (\n \n ) : (\n \n );\n const privacyPolicyLinkWrapper = privacyPolicyUrl ? (\n \n ) : (\n \n );\n\n if ((tos || tosUrl) && (privacyPolicy || privacyPolicyUrl)) {\n return (\n \n I have read, understood and accept the{' '}\n \n terms of service\n {' '}\n and{' '}\n \n privacy policy\n \n .\n \n );\n } else if (tos || tosUrl) {\n return (\n \n I have read, understood and accept the{' '}\n \n terms of service\n \n .\n \n );\n } else if (privacyPolicy || privacyPolicyUrl) {\n return (\n \n I have read, understood and accept the{' '}\n \n privacy policy\n \n .\n \n );\n }\n };\n\n return (\n {\n const errors = {};\n if (\n values.password &&\n values.password_confirm &&\n values.password_confirm !== values.password\n ) {\n errors.password_confirm = Translate.string('Passwords must match');\n }\n return errors;\n }}\n >\n {fprops => (\n
\n {!showAccountForm && (\n null} />\n )}\n {hasPendingUser && (\n \n \n There is already some information in Indico that concerns you. We are going to link\n it automatically.\n \n \n )}\n \n {emails.length > 1 ? (\n ({\n key: e,\n value: e,\n text: e,\n }))}\n syncedValues={syncedValues}\n lockedFields={lockedFields}\n lockedFieldMessage={lockedFieldMessage}\n required\n />\n ) : (\n \n )}\n \n \n \n \n {hasPredefinedAffiliations ? (\n \n ) : (\n \n )}\n {'address' in syncedValues && (\n \n )}\n {'phone' in syncedValues && (\n \n )}\n \n {showAccountForm && (\n
\n \n \n \n \n \n
\n )}\n {moderated && (\n
\n \n \n Each new account needs to be approved by an administrator. We will send you an\n email as soon as your request has been approved.\n \n \n \n
\n )}\n {termsRequireAccept && !!tos && !tosUrl && (\n
\n
\n
\n )}\n {termsRequireAccept && !!privacyPolicy && !privacyPolicyUrl && (\n
\n \n
\n )}\n {termsRequireAccept && !!termsEffectiveDate && (\n
\n Last updated: {moment(termsEffectiveDate).format('LL')}\n
\n )}\n {termsRequireAccept && (\n {termsAcceptLabel()}}\n />\n )}\n\n
\n \n \n \n \n
\n \n )}\n \n );\n}\n\nSignup.propTypes = {\n cancelURL: PropTypes.string.isRequired,\n moderated: PropTypes.bool.isRequired,\n tos: PropTypes.string,\n tosUrl: PropTypes.string,\n privacyPolicy: PropTypes.string,\n privacyPolicyUrl: PropTypes.string,\n termsRequireAccept: PropTypes.bool,\n termsEffectiveDate: PropTypes.string,\n initialValues: PropTypes.object.isRequired,\n hasPredefinedAffiliations: PropTypes.bool.isRequired,\n showAccountForm: PropTypes.bool.isRequired,\n syncedValues: PropTypes.object.isRequired,\n emails: PropTypes.arrayOf(PropTypes.string).isRequired,\n affiliationMeta: PropTypes.object,\n hasPendingUser: PropTypes.bool,\n mandatoryFields: PropTypes.arrayOf(PropTypes.string).isRequired,\n lockedFields: PropTypes.arrayOf(PropTypes.string),\n lockedFieldMessage: PropTypes.string,\n};\n\nSignup.defaultProps = {\n tos: '',\n tosUrl: '',\n privacyPolicy: '',\n privacyPolicyUrl: '',\n termsRequireAccept: false,\n termsEffectiveDate: null,\n affiliationMeta: null,\n hasPendingUser: false,\n lockedFields: [],\n lockedFieldMessage: '',\n};\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const container = document.querySelector('#signup-container');\n if (!container) {\n return;\n }\n\n const config = JSON.parse(container.dataset.config);\n ReactDOM.render(, container);\n});\n"],"names":["privacyPolicyURL","_buildFlaskURL","bind","endpoint","rules","args","converters","defaults","trace","data","isDynamic","tosURL","Signup","_ref","cancelURL","moderated","tosUrl","tos","privacyPolicyUrl","privacyPolicy","termsRequireAccept","termsEffectiveDate","initialValues","hasPredefinedAffiliations","showAccountForm","syncedValues","emails","affiliationMeta","hasPendingUser","mandatoryFields","lockedFields","lockedFieldMessage","termsAcceptLabel","stopPropagation","evt","tosLinkWrapper","React","href","rel","target","onClick","privacyPolicyLinkWrapper","Translate","Param","name","wrapper","FinalForm","onSubmit","async","form","values","getValuesForFields","resp","password_confirm","affiliation_data","affiliation","text","trim","affiliation_id","id","indicoAxios","post","location","e","handleSubmitError","redirect","Promise","initialValuesEqual","_isEqual","subscription","submitting","validate","errors","password","string","fprops","Form","handleSubmit","Field","isEqual","render","Message","info","Fieldset","legend","active","length","SyncedFinalDropdown","label","options","map","key","value","required","SyncedFinalInput","readOnly","Group","widths","SyncedFinalAffiliationDropdown","includes","syncName","currentAffiliation","SyncedFinalTextArea","FinalInput","type","autoComplete","FinalTextArea","initialValue","description","className","dangerouslySetInnerHTML","__html","moment","format","FinalCheckbox","style","display","justifyContent","FinalSubmitButton","disabledUntilChange","disabled","Button","as","propTypes","PropTypes","isRequired","defaultProps","document","addEventListener","container","querySelector","config","JSON","parse","dataset","ReactDOM"],"sourceRoot":""}