{"version":3,"file":"js/module_events.registration.98e20dbe.bundle.js","mappings":"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","sources":["webpack:///indico/modules/events/registration/client/js/components/EmailPendingInvitations.jsx","webpack:///indico/modules/events/registration/client/js/components/EmailPendingInvitationsButton.jsx","webpack:///indico/modules/events/registration/client/js/invitations.js","webpack:///indico/modules/events/registration/client/js/reglists.js","webpack:///indico/modules/events/registration/client/js/components/ConsentToPublishDropdown.jsx","webpack:///indico/modules/events/registration/client/js/components/ConsentToPublishEditor.module.scss?0af3","webpack:///indico/modules/events/registration/client/js/components/ConsentToPublishEditor.jsx","webpack:///indico/modules/events/registration/client/js/components/RegistrationTagsEditableList.module.scss?af8d","webpack:///indico/modules/events/registration/client/js/components/RegistrationTagsEditableList.jsx","webpack:///indico/modules/events/registration/client/js/form/selectors.js","webpack:///indico/modules/events/registration/client/js/form_setup/selectors.js","webpack:///indico/modules/events/registration/client/js/form_setup/actions.js","webpack:///indico/modules/events/registration/client/js/form_setup/reducers.js","webpack:///indico/modules/events/registration/client/styles/regform.module.scss?0576","webpack:///indico/modules/events/registration/client/js/form_setup/DisabledSectionsModal.jsx","webpack:///indico/modules/events/registration/client/js/form_setup/SectionSettingsModal.jsx","webpack:///indico/modules/events/registration/client/js/form_submission/selectors.js","webpack:///indico/modules/events/registration/client/js/form/fields/ChoiceLabel.jsx","webpack:///indico/modules/events/registration/client/js/form/fields/ChoicesSetup.module.scss?d5c0","webpack:///indico/modules/events/registration/client/js/form/fields/ChoicesSetup.jsx","webpack:///indico/modules/events/registration/client/js/form/fields/PlacesLeftLabel.jsx","webpack:///indico/modules/events/registration/client/js/form/fields/AccommodationInput.jsx","webpack:///indico/modules/events/registration/client/js/form/fields/AccompanyingPersonsInput.jsx","webpack:///indico/modules/events/registration/client/js/form/fields/BooleanInput.jsx","webpack:///indico/modules/events/registration/client/js/form/fields/CheckboxInput.jsx","webpack:///indico/modules/events/registration/client/js/form/fields/CountryInput.jsx","webpack:///indico/modules/events/registration/client/js/form/fields/DateInput.jsx","webpack:///indico/modules/events/registration/client/js/form/fields/EmailInput.jsx","webpack:///indico/modules/events/registration/client/js/form/fields/FileInput.module.scss?1d14","webpack:///indico/modules/events/registration/client/js/form/fields/FileInput.jsx","webpack:///indico/modules/events/registration/client/js/form/fields/LabelInput.jsx","webpack:///indico/modules/events/registration/client/js/form/fields/MultiChoiceInput.jsx","webpack:///indico/modules/events/registration/client/js/form/fields/NumberInput.jsx","webpack:///indico/modules/events/registration/client/js/form/fields/PhoneInput.jsx","webpack:///indico/modules/events/registration/client/js/form/fields/PictureInput.jsx","webpack:///indico/modules/events/registration/client/js/form/fields/SingleChoiceInput.jsx","webpack:///indico/modules/events/registration/client/js/form/fields/util.js","webpack:///indico/modules/events/registration/client/js/form/fields/TextAreaInput.jsx","webpack:///indico/modules/events/registration/client/js/form/fields/TextInput.jsx","webpack:///indico/modules/events/registration/client/js/form/fields/registry.js","webpack:///indico/modules/events/registration/client/js/form/FormItem.jsx","webpack:///indico/modules/events/registration/client/js/form/FormSection.jsx","webpack:///indico/modules/events/registration/client/js/form_setup/ItemTypeDropdown.jsx","webpack:///indico/modules/events/registration/client/js/form_setup/ItemSettingsModal.jsx","webpack:///indico/modules/events/registration/client/js/form_setup/FormSectionSetupActions.jsx","webpack:///indico/modules/events/registration/client/js/form_setup/FormItemSetupActions.jsx","webpack:///indico/modules/events/registration/client/js/form_setup/SetupFormItem.jsx","webpack:///indico/modules/events/registration/client/js/form_setup/SetupFormSection.jsx","webpack:///indico/modules/events/registration/client/js/form_setup/RegistrationFormSetup.jsx","webpack:///indico/modules/events/registration/client/js/form_setup/index.jsx","webpack:///indico/modules/events/registration/client/js/form_submission/actions.js","webpack:///indico/modules/events/registration/client/js/form_submission/reducers.js","webpack:///indico/modules/events/registration/client/js/form_submission/RegistrationFormSubmission.jsx","webpack:///indico/modules/events/registration/client/js/form_submission/index.jsx","webpack:///indico/modules/events/registration/client/js/index.js","webpack:///node_modules/lodash/differenceBy.js"],"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 PropTypes from 'prop-types';\nimport React, {useState} from 'react';\nimport {Dimmer, Loader} from 'semantic-ui-react';\n\nimport {EmailDialog} from 'indico/modules/events/persons/EmailDialog';\nimport {handleSubmitError} from 'indico/react/forms';\nimport {useIndicoAxios} from 'indico/react/hooks';\nimport {indicoAxios} from 'indico/utils/axios';\n\nexport default function EmailPendingInvitations({metadataURL, previewURL, sendURL, onClose}) {\n const successTimeout = 5000;\n const [sentCount, setSentCount] = useState(0);\n\n const {data, loading} = useIndicoAxios(metadataURL);\n const {\n senders = [],\n recipients = [],\n subject: defaultSubject,\n body: defaultBody,\n placeholders = [],\n } = data || {};\n\n const handleSubmit = async data => {\n let resp;\n try {\n resp = await indicoAxios.post(sendURL, data);\n } catch (err) {\n return handleSubmitError(err);\n }\n setSentCount(resp.data.count);\n setTimeout(() => onClose(), successTimeout);\n };\n\n if (loading) {\n return (\n \n \n \n );\n }\n\n return (\n \n );\n}\n\nEmailPendingInvitations.propTypes = {\n metadataURL: PropTypes.string.isRequired,\n previewURL: PropTypes.string.isRequired,\n sendURL: PropTypes.string.isRequired,\n onClose: PropTypes.func.isRequired,\n};\n","// 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 emailMetadataURL from 'indico-url:event_registration.api_invitations_reminders_metadata';\nimport emailPreviewURL from 'indico-url:event_registration.api_invitations_reminders_preview';\nimport emailSendURL from 'indico-url:event_registration.api_invitations_reminders_send';\n\nimport PropTypes from 'prop-types';\nimport React, {useState} from 'react';\n\nimport {Translate} from 'indico/react/i18n';\n\nimport EmailPendingInvitations from './EmailPendingInvitations';\n\nexport default function EmailPendingInvitationsButton({eventId, regformId, hasPendingInvitations}) {\n const [open, setOpen] = useState(false);\n const metadataURL = emailMetadataURL({event_id: eventId, reg_form_id: regformId});\n const previewURL = emailPreviewURL({event_id: eventId, reg_form_id: regformId});\n const sendURL = emailSendURL({event_id: eventId, reg_form_id: regformId});\n\n return (\n <>\n setOpen(true)}\n >\n Send reminders\n \n {open && (\n setOpen(false)}\n />\n )}\n \n );\n}\n\nEmailPendingInvitationsButton.propTypes = {\n eventId: PropTypes.number.isRequired,\n regformId: PropTypes.number.isRequired,\n hasPendingInvitations: PropTypes.bool.isRequired,\n};\n","// 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\n/* eslint-disable import/unambiguous */\n/* global handleAjaxError:false */\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport EmailPendingInvitationsButton from './components/EmailPendingInvitationsButton';\n\n(function(global) {\n global.setupInvitationPage = function setupInvitationPage({\n eventId,\n regformId,\n hasPendingInvitations,\n }) {\n $('#invitation-list').on('indico:confirmed', '.js-invitation-action', function(evt) {\n evt.preventDefault();\n\n const $this = $(this);\n $.ajax({\n url: $this.data('href'),\n method: $this.data('method'),\n complete: IndicoUI.Dialogs.Util.progress(),\n error: handleAjaxError,\n success(data) {\n $('#invitation-list').html(data.invitation_list);\n renderEmailInvitationsBtn({\n eventId,\n regformId,\n hasPendingInvitations: data.has_pending_invitations,\n });\n },\n });\n });\n\n $('.js-invite-user').ajaxDialog({\n onClose(data) {\n if (data) {\n $('#invitation-list').html(data.invitation_list);\n renderEmailInvitationsBtn({\n eventId,\n regformId,\n hasPendingInvitations: data.has_pending_invitations,\n });\n }\n },\n });\n\n renderEmailInvitationsBtn({eventId, regformId, hasPendingInvitations});\n };\n\n function renderEmailInvitationsBtn({eventId, regformId, hasPendingInvitations}) {\n const container = document.getElementById('email-pending-invitations-container');\n ReactDOM.render(\n ,\n container\n );\n }\n})(window);\n","// 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\n/* eslint-disable import/unambiguous */\n/* global setupListGenerator:false, getSelectedRows:false, handleSelectedRowHighlight:false,\n setupTableSorter:false, ajaxDialog:false, handleAjaxError:false, confirmPrompt:false,\n build_url:false */\n\nimport {showUserSearch} from 'indico/react/components/principals/imperative';\nimport {$T} from 'indico/utils/i18n';\n\n(function(global) {\n global.setupRegistrationList = function setupRegistrationList() {\n setupListGenerator();\n\n function handleRegListRowSelection() {\n $('table.i-table input.select-row')\n .on('change', function() {\n $('.regform-download-attachments').toggleClass(\n 'disabled',\n !$('.list input:checkbox:checked[data-has-files=true]').length\n );\n })\n .trigger('change');\n $('table.i-table input.select-row')\n .on('change', function() {\n $('.regform-download-documents').toggleClass(\n 'disabled',\n !$('.list input:checkbox:checked[data-has-documents=true]').length\n );\n })\n .trigger('change');\n }\n\n $('body').on('click', '#preview-email', function() {\n const $this = $(this);\n ajaxDialog({\n url: $this.data('href'),\n title: $T.gettext('Email Preview'),\n method: 'POST',\n data() {\n return {\n registration_id: getSelectedRows()[0],\n subject: $('#subject').val(),\n body: $('#body').val(),\n };\n },\n });\n });\n\n $('.registrations').on('indico:confirmed', '.js-delete-registrations', function(evt) {\n evt.preventDefault();\n const $this = $(this);\n const selectedRows = getSelectedRows();\n const msg = $T\n .ngettext(\n 'Do you really want to delete the selected registration?',\n 'Do you really want to delete the {0} selected registrations?',\n selectedRows.length\n )\n .format(selectedRows.length);\n confirmPrompt(msg).then(function() {\n $.ajax({\n url: $this.data('href'),\n method: $this.data('method'),\n data: {registration_id: selectedRows},\n complete: IndicoUI.Dialogs.Util.progress(),\n error: handleAjaxError,\n success() {\n for (let i = 0; i < selectedRows.length; i++) {\n const row = $(`#registration-${selectedRows[i]}`);\n row.fadeOut('fast', function() {\n $(this).remove();\n });\n }\n },\n });\n });\n });\n\n $('.registrations').on('indico:confirmed', '.js-modify-status', function(evt) {\n evt.preventDefault();\n const $this = $(this);\n const selectedRows = getSelectedRows();\n $.ajax({\n url: $this.data('href'),\n method: $this.data('method'),\n data: {\n registration_id: selectedRows,\n flag: $this.data('flag'),\n },\n complete: IndicoUI.Dialogs.Util.progress(),\n error: handleAjaxError,\n success(data) {\n if (data) {\n $('.list-content').html(data.html);\n handleSelectedRowHighlight(true);\n handleRegListRowSelection();\n setupTableSorter();\n }\n },\n });\n });\n\n $('.js-add-user').on('click', async () => {\n const user = await showUserSearch({\n withExternalUsers: true,\n single: true,\n alwaysConfirm: true,\n });\n if (user) {\n const url = $('.js-add-user').data('href');\n location.href = build_url(url, {user});\n }\n });\n\n $('.js-add-multiple-users').ajaxDialog({\n dialogClasses: 'add-multiple-users-dialog',\n onClose(data) {\n if (data) {\n $('.list-content').html(data.html);\n handleSelectedRowHighlight(true);\n handleRegListRowSelection();\n setupTableSorter();\n }\n },\n });\n\n handleRegListRowSelection();\n };\n})(window);\n","// 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 PropTypes from 'prop-types';\nimport React from 'react';\nimport {Dropdown} from 'semantic-ui-react';\n\nimport {FinalDropdown} from 'indico/react/forms';\nimport {Translate} from 'indico/react/i18n';\n\nexport const publishModePropType = PropTypes.oneOf(['hide_all', 'show_with_consent', 'show_all']);\n\nexport default function ConsentToPublishDropdown({\n publishToParticipants,\n publishToPublic,\n value,\n useFinalForms,\n ...extraProps\n}) {\n if (publishToParticipants === 'hide_all' && publishToPublic === 'hide_all') {\n return (\n Your participation will only be visible to organizers of this event.\n );\n } else if (publishToParticipants === 'show_all' && publishToPublic === 'hide_all') {\n return (\n \n Your participation will be displayed to other participants of this event.\n \n );\n } else if (publishToParticipants === 'show_all' && publishToPublic === 'show_all') {\n return (\n \n Your participation will be displayed to everyone who can see this event.\n \n );\n } else {\n const options = [];\n if (publishToParticipants === 'show_with_consent' || value === 'nobody') {\n options.push({\n key: 'nobody',\n value: 'nobody',\n text: Translate.string('Do not display my participation to anyone'),\n disabled: publishToParticipants !== 'show_with_consent',\n });\n }\n options.push({\n key: 'participants',\n value: 'participants',\n text: Translate.string('Display my participation only to other participants of this event'),\n });\n if (publishToPublic === 'show_with_consent' || value === 'all') {\n options.push({\n key: 'all',\n value: 'all',\n text: Translate.string('Display my participation to everyone who can see this event'),\n disabled: publishToPublic !== 'show_with_consent',\n });\n }\n return useFinalForms ? (\n \n ) : (\n \n );\n }\n}\n\nConsentToPublishDropdown.propTypes = {\n publishToParticipants: publishModePropType.isRequired,\n publishToPublic: publishModePropType.isRequired,\n value: PropTypes.oneOf(['nobody', 'participants', 'all']),\n useFinalForms: PropTypes.bool,\n};\n\nConsentToPublishDropdown.defaultProps = {\n value: null,\n useFinalForms: false,\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"consent-dropdown-container\":\"events-registration-client-js-components-___ConsentToPublishEditor-module__consent-dropdown-container___0HGIs\"};","// 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 registrationChangeConsent from 'indico-url:event_registration.api_registration_change_consent';\n\nimport PropTypes from 'prop-types';\nimport React, {useState} from 'react';\nimport {Icon} from 'semantic-ui-react';\n\nimport {indicoAxios, handleAxiosError} from 'indico/utils/axios';\n\nimport ConsentToPublishDropdown, {publishModePropType} from './ConsentToPublishDropdown';\n\nimport './ConsentToPublishEditor.module.scss';\n\nexport default function ConsentToPublishEditor({\n locator,\n publishToParticipants,\n publishToPublic,\n initialConsentToPublish,\n}) {\n const [consentToPublish, setConsentToPublish] = useState(initialConsentToPublish);\n const [status, setStatus] = useState('');\n\n async function editConsentToPublish(value) {\n setConsentToPublish(value);\n setStatus('loading');\n try {\n await indicoAxios.post(registrationChangeConsent(locator), {consent_to_publish: value});\n setStatus('success');\n } catch (error) {\n setStatus('error');\n setConsentToPublish(consentToPublish);\n return handleAxiosError(error);\n }\n }\n\n return (\n
\n editConsentToPublish(value)}\n value={consentToPublish}\n loading={status === 'loading'}\n disabled={status === 'loading'}\n />\n {status === 'success' && }\n {status === 'error' && }\n
\n );\n}\n\nConsentToPublishEditor.propTypes = {\n locator: PropTypes.object.isRequired,\n publishToParticipants: publishModePropType.isRequired,\n publishToPublic: publishModePropType.isRequired,\n initialConsentToPublish: PropTypes.oneOf(['nobody', 'participants', 'all']).isRequired,\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"removable-tags-container\":\"events-registration-client-js-components-___RegistrationTagsEditableList-module__removable-tags-container___C2Usb\",\"selectable-tags-container\":\"events-registration-client-js-components-___RegistrationTagsEditableList-module__selectable-tags-container___pwRX2\",\"registration-tag\":\"events-registration-client-js-components-___RegistrationTagsEditableList-module__registration-tag___nAtUC\",\"removable\":\"events-registration-client-js-components-___RegistrationTagsEditableList-module__removable___aNbCV\",\"selectable\":\"events-registration-client-js-components-___RegistrationTagsEditableList-module__selectable___2VM7u\"};","// 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 registrationTagAssign from 'indico-url:event_registration.api_registration_tags_assign';\n\nimport _ from 'lodash';\nimport PropTypes from 'prop-types';\nimport React, {useState} from 'react';\nimport {Icon, Divider, Header, Label} from 'semantic-ui-react';\n\nimport {IButton, PopoverDropdownMenu} from 'indico/react/components';\nimport {Translate} from 'indico/react/i18n';\nimport {indicoAxios, handleAxiosError} from 'indico/utils/axios';\n\nimport './RegistrationTagsEditableList.module.scss';\n\nexport default function RegistrationTagsEditableList({\n eventId,\n regformId,\n registrationId,\n assignedTags,\n allTags,\n}) {\n const [tags, setTags] = useState(assignedTags);\n const [open, setOpen] = useState(false);\n const unassignedTags = _.differenceBy(allTags, tags, 'id');\n\n async function editRegistrationTags({add = [], remove = []}) {\n try {\n await indicoAxios.post(registrationTagAssign({reg_form_id: regformId, event_id: eventId}), {\n registration_id: [registrationId],\n add,\n remove,\n });\n } catch (error) {\n return handleAxiosError(error);\n }\n }\n\n function onRemove(tag) {\n setTags(tags.filter(t => t.id !== tag.id));\n editRegistrationTags({remove: [tag.id]});\n }\n\n function onAdd(tag) {\n const newTags = _.sortBy([...tags, tag], [t => t.title.toLowerCase()], 'title');\n setTags(newTags);\n if (newTags.length === allTags.length) {\n setOpen(false);\n }\n editRegistrationTags({add: [tag.id]});\n }\n\n const trigger = (\n \n Add\n \n \n );\n\n return (\n <>\n
\n
\n
\n Tags\n
\n \n {tags.length === 0 ? (\n No tags assigned.\n ) : (\n tags.map(tag => (\n \n {tag.title}\n onRemove(tag)} />\n \n ))\n )}\n
\n
\n
\n {unassignedTags.length === 0 ? (\n trigger\n ) : (\n setOpen(true)}\n onClose={() => setOpen(false)}\n trigger={trigger}\n open={open}\n placement=\"right-start\"\n >\n
\n Add tags\n
\n \n
\n {unassignedTags.map(tag => (\n
onAdd(tag)}>\n \n
\n ))}\n
\n \n )}\n
\n \n );\n}\n\nRegistrationTagsEditableList.propTypes = {\n eventId: PropTypes.number.isRequired,\n regformId: PropTypes.number.isRequired,\n registrationId: PropTypes.number.isRequired,\n assignedTags: PropTypes.arrayOf(\n PropTypes.shape({\n title: PropTypes.string.isRequired,\n color: PropTypes.string.isRequired,\n })\n ).isRequired,\n allTags: PropTypes.arrayOf(\n PropTypes.shape({\n title: PropTypes.string.isRequired,\n color: PropTypes.string.isRequired,\n })\n ).isRequired,\n};\n","// 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 _ from 'lodash';\nimport {createSelector} from 'reselect';\n\nexport const getStaticData = state => state.staticData;\n\nexport const getFlatSections = state => state.sections;\nexport const getItems = state => state.items;\n\n/** Get an item by its ID. */\nexport const getItemById = createSelector(\n getItems,\n (__, itemId) => itemId,\n (fields, itemId) => fields[itemId]\n);\n\n/** Get the currency used by the registration form. */\nexport const getCurrency = createSelector(\n getStaticData,\n staticData => staticData.currency\n);\n\n/** Get a sorted list of enabled top-level sections. */\nconst getSections = createSelector(\n getFlatSections,\n sections => _.sortBy(Object.values(sections).filter(s => s.enabled), ['position', 'id'])\n);\n\n/** Get a mapping from section IDs to sorted item lists. */\nconst getSectionItemMapping = createSelector(\n getFlatSections,\n getItems,\n (sections, fields) => {\n const mapping = new Map(Object.values(sections).map(s => [s.id, []]));\n _.sortBy(Object.values(fields), ['position', 'id']).forEach(field => {\n mapping.get(field.sectionId).push(field);\n });\n return mapping;\n }\n);\n\n/** Get the nested form structure of sections and their items. */\nexport const getNestedSections = createSelector(\n getSections,\n getSectionItemMapping,\n (sortedSections, sectionFields) =>\n sortedSections.map(section => ({\n ...section,\n items: sectionFields.get(section.id),\n }))\n);\n","// 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 _ from 'lodash';\nimport {createSelector} from 'reselect';\n\nimport {getStaticData, getFlatSections, getItems, getItemById} from '../form/selectors';\n\nexport const isUILocked = state => state.uiLocked;\n\n/** Get a sorted list of disabled sections. */\nexport const getDisabledSections = createSelector(\n getFlatSections,\n sections => _.sortBy(Object.values(sections).filter(s => !s.enabled), ['position', 'id'])\n);\n\n/** Get a section by its ID. */\nexport const getSectionById = createSelector(\n getFlatSections,\n (__, sectionId) => sectionId,\n (sections, sectionId) => sections[sectionId]\n);\n\n/** Get the section ID for a given item ID. */\nexport const getSectionIdForItem = createSelector(\n getItems,\n (__, itemId) => itemId,\n (fields, itemId) => fields[itemId].sectionId\n);\n\n/** Check whether an item is a static text field. */\nconst isItemStaticText = createSelector(\n getItemById,\n item => item.inputType === 'label'\n);\n\n/** Select the correct URL for an item action dependin on whether it's static text or a field. */\nexport const pickItemURL = createSelector(\n isItemStaticText,\n isStaticText => (textURL, fieldURL) => (isStaticText ? textURL : fieldURL)\n);\n\n/** Get the URL path arguments for a regform/section/field operation. */\nexport const getURLParams = createSelector(\n getStaticData,\n staticData => {\n const {eventId, regformId} = staticData;\n return (sectionId = null, itemId = null) => {\n const params = {\n event_id: eventId,\n reg_form_id: regformId,\n };\n\n if (sectionId !== null) {\n params.section_id = sectionId;\n }\n\n if (itemId !== null) {\n params.field_id = itemId;\n }\n\n return params;\n };\n }\n);\n","// 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 addFieldURL from 'indico-url:event_registration.add_field';\nimport addSectionURL from 'indico-url:event_registration.add_section';\nimport addTextURL from 'indico-url:event_registration.add_text';\nimport modifyFieldURL from 'indico-url:event_registration.modify_field';\nimport modifySectionURL from 'indico-url:event_registration.modify_section';\nimport modifyTextURL from 'indico-url:event_registration.modify_text';\nimport moveFieldURL from 'indico-url:event_registration.move_field';\nimport moveSectionURL from 'indico-url:event_registration.move_section';\nimport moveTextURL from 'indico-url:event_registration.move_text';\nimport toggleFieldURL from 'indico-url:event_registration.toggle_field';\nimport toggleSectionURL from 'indico-url:event_registration.toggle_section';\nimport toggleTextURL from 'indico-url:event_registration.toggle_text';\n\nimport {indicoAxios} from 'indico/utils/axios';\nimport {camelizeKeys} from 'indico/utils/case';\nimport {ajaxAction, submitFormAction} from 'indico/utils/redux';\n\nimport {getSectionIdForItem, getURLParams, pickItemURL} from './selectors';\n\nexport const LOCK_UI = 'Lock interface';\nexport const UNLOCK_UI = 'Unlock interface';\nexport const SET_FORM_DATA = 'Set form data';\nexport const MOVE_SECTION = 'Move section';\nexport const UPDATE_SECTION = 'Update section';\nexport const TOGGLE_SECTION = 'Toggle section';\nexport const REMOVE_SECTION = 'Remove section';\nexport const CREATE_SECTION = 'Create section';\nexport const MOVE_ITEM = 'Move item';\nexport const UPDATE_ITEM = 'Update item';\nexport const REMOVE_ITEM = 'Remove item';\nexport const CREATE_ITEM = 'Create item';\nexport const UPDATE_POSITIONS = 'Update positions';\n\nfunction lockUI() {\n return {type: LOCK_UI};\n}\n\nfunction unlockUI() {\n return {type: UNLOCK_UI};\n}\n\nfunction lockingAjaxAction(requestFunc, ...args) {\n const fn = ajaxAction(requestFunc, ...args);\n return async dispatch => {\n dispatch(lockUI());\n const resp = await fn();\n dispatch(unlockUI());\n return resp;\n };\n}\n\nexport function setFormData(data) {\n return {type: SET_FORM_DATA, items: data.items, sections: data.sections};\n}\n\nfunction updatePositions(data) {\n return {type: UPDATE_POSITIONS, items: data.items, sections: data.sections};\n}\n\nexport function moveSection(sourceIndex, targetIndex) {\n return {type: MOVE_SECTION, sourceIndex, targetIndex};\n}\n\nfunction _toggleSection(sectionId, enabled) {\n return {type: TOGGLE_SECTION, sectionId, enabled};\n}\n\nfunction _removeSection(sectionId) {\n return {type: REMOVE_SECTION, sectionId};\n}\n\n// TODO: remove patch mode unless we end up using it\nfunction _updateSection(sectionId, data, patch = false) {\n return {type: UPDATE_SECTION, sectionId, data, patch};\n}\n\nfunction _createSection(data) {\n return {type: CREATE_SECTION, data};\n}\n\nexport function moveItem(sectionId, sourceIndex, targetIndex) {\n return {type: MOVE_ITEM, sectionId, sourceIndex, targetIndex};\n}\n\nfunction _updateItem(itemId, data) {\n return {type: UPDATE_ITEM, itemId, data};\n}\n\nfunction _removeItem(itemId) {\n return {type: REMOVE_ITEM, itemId};\n}\n\nfunction _createItem(data) {\n return {type: CREATE_ITEM, data};\n}\n\nexport function saveSectionPosition(sectionId, position, oldPosition) {\n return async (dispatch, getStore) => {\n const store = getStore();\n const url = moveSectionURL(getURLParams(store)(sectionId));\n const resp = await lockingAjaxAction(() => indicoAxios.post(url, {endPos: position}))(dispatch);\n if (resp.error) {\n // XXX alternatively we could keep the UI locked and require a refresh after\n // a failure to make sure we are in a fully consistent state...\n // but moving stuff around is the only case where the local state gets updated\n // before saving, so it's probably not worth it\n dispatch(moveSection(position, oldPosition));\n }\n };\n}\n\nexport function enableSection(sectionId) {\n return async (dispatch, getStore) => {\n const store = getStore();\n const params = getURLParams(store)(sectionId);\n const url = toggleSectionURL({...params, enable: 'true'});\n const resp = await lockingAjaxAction(() => indicoAxios.post(url))(dispatch);\n if (!resp.error) {\n dispatch(_toggleSection(sectionId, true));\n dispatch(updatePositions(resp.data.positions));\n }\n };\n}\n\nexport function disableSection(sectionId) {\n return async (dispatch, getStore) => {\n const store = getStore();\n const params = getURLParams(store)(sectionId);\n const url = toggleSectionURL({...params, enable: 'false'});\n const resp = await lockingAjaxAction(() => indicoAxios.post(url))(dispatch);\n if (!resp.error) {\n dispatch(_toggleSection(sectionId, false));\n dispatch(updatePositions(resp.data.positions));\n }\n };\n}\n\nexport function removeSection(sectionId) {\n return async (dispatch, getStore) => {\n const store = getStore();\n const url = modifySectionURL(getURLParams(store)(sectionId));\n const resp = await lockingAjaxAction(() => indicoAxios.delete(url))(dispatch);\n if (!resp.error) {\n dispatch(_removeSection(sectionId));\n }\n return !!resp.error;\n };\n}\n\nexport function updateSection(sectionId, data) {\n return async (dispatch, getStore) => {\n const store = getStore();\n const url = modifySectionURL(getURLParams(store)(sectionId));\n const payload = {changes: data};\n const resp = await submitFormAction(() => indicoAxios.patch(url, payload))(dispatch);\n if (!resp.error) {\n delete resp.data.items;\n dispatch(_updateSection(sectionId, resp.data));\n }\n return camelizeKeys(resp);\n };\n}\n\nexport function createSection(data) {\n return async (dispatch, getStore) => {\n const store = getStore();\n const url = addSectionURL(getURLParams(store)());\n const resp = await submitFormAction(() => indicoAxios.post(url, data))(dispatch);\n if (!resp.error) {\n delete resp.data.items;\n dispatch(_createSection(resp.data));\n }\n return camelizeKeys(resp);\n };\n}\n\nexport function saveItemPosition(sectionId, itemId, position, oldPosition) {\n return async (dispatch, getStore) => {\n const store = getStore();\n const urlFunc = pickItemURL(store, itemId)(moveTextURL, moveFieldURL);\n const url = urlFunc(getURLParams(store)(sectionId, itemId));\n const resp = await lockingAjaxAction(() => indicoAxios.post(url, {endPos: position}))(dispatch);\n if (resp.error) {\n // XXX alternatively we could keep the UI locked and require a refresh after\n // a failure to make sure we are in a fully consistent state...\n // but moving stuff around is the only case where the local state gets updated\n // before saving, so it's probably not worth it\n dispatch(moveItem(sectionId, position, oldPosition));\n }\n };\n}\n\nexport function enableItem(itemId) {\n return async (dispatch, getStore) => {\n const store = getStore();\n const sectionId = getSectionIdForItem(store, itemId);\n const urlFunc = pickItemURL(store, itemId)(toggleTextURL, toggleFieldURL);\n const params = getURLParams(store)(sectionId, itemId);\n const url = urlFunc({...params, enable: 'true'});\n const resp = await lockingAjaxAction(() => indicoAxios.post(url))(dispatch);\n if (!resp.error) {\n dispatch(_updateItem(itemId, resp.data.view_data));\n dispatch(updatePositions(resp.data.positions));\n }\n };\n}\n\nexport function disableItem(itemId) {\n return async (dispatch, getStore) => {\n const store = getStore();\n const sectionId = getSectionIdForItem(store, itemId);\n const urlFunc = pickItemURL(store, itemId)(toggleTextURL, toggleFieldURL);\n const params = getURLParams(store)(sectionId, itemId);\n const url = urlFunc({...params, enable: 'false'});\n const resp = await lockingAjaxAction(() => indicoAxios.post(url))(dispatch);\n if (!resp.error) {\n dispatch(_updateItem(itemId, resp.data.view_data));\n dispatch(updatePositions(resp.data.positions));\n }\n };\n}\n\nexport function removeItem(itemId) {\n return async (dispatch, getStore) => {\n const store = getStore();\n const sectionId = getSectionIdForItem(store, itemId);\n const urlFunc = pickItemURL(store, itemId)(modifyTextURL, modifyFieldURL);\n const url = urlFunc(getURLParams(store)(sectionId, itemId));\n const resp = await lockingAjaxAction(() => indicoAxios.delete(url))(dispatch);\n if (!resp.error) {\n dispatch(_removeItem(itemId));\n }\n return !!resp.error;\n };\n}\n\nexport function updateItem(itemId, data) {\n return async (dispatch, getStore) => {\n const store = getStore();\n const sectionId = getSectionIdForItem(store, itemId);\n const urlFunc = pickItemURL(store, itemId)(modifyTextURL, modifyFieldURL);\n const url = urlFunc(getURLParams(store)(sectionId, itemId));\n const payload = {fieldData: data};\n const resp = await submitFormAction(() => indicoAxios.patch(url, payload))(dispatch);\n if (!resp.error) {\n dispatch(_updateItem(itemId, resp.data.view_data));\n }\n return camelizeKeys(resp);\n };\n}\n\nexport function createItem(sectionId, inputType, data) {\n return async (dispatch, getStore) => {\n const store = getStore();\n const urlFunc = inputType === 'label' ? addTextURL : addFieldURL;\n const url = urlFunc(getURLParams(store)(sectionId));\n const payload = {fieldData: {...data, input_type: inputType}};\n const resp = await submitFormAction(() => indicoAxios.post(url, payload))(dispatch);\n if (!resp.error) {\n dispatch(_createItem(resp.data.view_data));\n }\n return camelizeKeys(resp);\n };\n}\n","// 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 _ from 'lodash';\n\nimport {\n CREATE_ITEM,\n CREATE_SECTION,\n LOCK_UI,\n MOVE_ITEM,\n MOVE_SECTION,\n REMOVE_ITEM,\n REMOVE_SECTION,\n SET_FORM_DATA,\n TOGGLE_SECTION,\n UNLOCK_UI,\n UPDATE_ITEM,\n UPDATE_POSITIONS,\n UPDATE_SECTION,\n} from './actions';\n\nexport default {\n uiLocked: (state = false, action) => {\n switch (action.type) {\n case LOCK_UI:\n return true;\n case UNLOCK_UI:\n return false;\n default:\n return state;\n }\n },\n items: (state = {}, action) => {\n switch (action.type) {\n case SET_FORM_DATA:\n return action.items;\n case CREATE_ITEM:\n return {\n ...state,\n [action.data.id]: action.data,\n };\n case UPDATE_ITEM:\n return {...state, [action.itemId]: action.data};\n case UPDATE_POSITIONS: {\n const newState = {...state};\n Object.entries(action.items)\n .filter(([id]) => id in newState)\n .forEach(([id, position]) => {\n newState[id] = {...newState[id], position};\n });\n return newState;\n }\n case REMOVE_ITEM:\n return _.omit(state, action.itemId);\n case REMOVE_SECTION:\n return _.omitBy(state, item => item.sectionId === action.sectionId);\n case MOVE_ITEM: {\n const sorted = _.sortBy(\n Object.values(state).filter(f => f.sectionId === action.sectionId),\n ['position', 'id']\n );\n const sourceItem = sorted[action.sourceIndex];\n sorted.splice(action.sourceIndex, 1);\n sorted.splice(action.targetIndex, 0, sourceItem);\n // use same positioning logic as on the server side. not sure if it's needed, we\n // could probably stick with just incrementing, but it might avoid some re-renders..\n let enabledPos = 1;\n let disabledPos = 1000;\n const newState = {...state};\n sorted.forEach(item => {\n newState[item.id] = {...item, position: item.isEnabled ? enabledPos++ : disabledPos++};\n });\n return newState;\n }\n default:\n return state;\n }\n },\n sections: (state = {}, action) => {\n switch (action.type) {\n case SET_FORM_DATA:\n return action.sections;\n case TOGGLE_SECTION:\n return {\n ...state,\n [action.sectionId]: {...state[action.sectionId], enabled: action.enabled},\n };\n case CREATE_SECTION:\n return {\n ...state,\n [action.data.id]: action.data,\n };\n case UPDATE_SECTION:\n return {\n ...state,\n [action.sectionId]: action.patch\n ? {...state[action.sectionId], ...action.data}\n : action.data,\n };\n case UPDATE_POSITIONS: {\n const newState = {...state};\n Object.entries(action.sections)\n .filter(([id]) => id in newState)\n .forEach(([id, position]) => {\n newState[id] = {...newState[id], position};\n });\n return newState;\n }\n case REMOVE_SECTION:\n return _.omit(state, action.sectionId);\n case MOVE_SECTION: {\n const sorted = _.sortBy(Object.values(state), ['position', 'id']);\n const sourceSection = sorted[action.sourceIndex];\n sorted.splice(action.sourceIndex, 1);\n sorted.splice(action.targetIndex, 0, sourceSection);\n // use same positioning logic as on the server side. not sure if it's needed, we\n // could probably stick with just incrementing, but it might avoid some re-renders..\n let enabledPos = 1;\n let disabledPos = 1000;\n const newState = {...state};\n sorted.forEach(section => {\n newState[section.id] = {\n ...section,\n position: section.enabled ? enabledPos++ : disabledPos++,\n };\n });\n return newState;\n }\n default:\n return state;\n }\n },\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"form-item\":\"events-registration-client-styles-___regform-module__form-item___AlbiE\",\"editable\":\"events-registration-client-styles-___regform-module__editable___ZHQMz\",\"disabled\":\"events-registration-client-styles-___regform-module__disabled___A4p+q\",\"sortable-handle\":\"events-registration-client-styles-___regform-module__sortable-handle___yz1-x\",\"section-sortable-handle\":\"events-registration-client-styles-___regform-module__section-sortable-handle___ABMeH\",\"inactive\":\"events-registration-client-styles-___regform-module__inactive___iUbDS\",\"icon-agreement\":\"events-registration-client-styles-___regform-module__icon-agreement___CGUr9\",\"icon-alarm\":\"events-registration-client-styles-___regform-module__icon-alarm___kNPBx\",\"icon-arrow-down\":\"events-registration-client-styles-___regform-module__icon-arrow-down___oINfy\",\"icon-arrow-left\":\"events-registration-client-styles-___regform-module__icon-arrow-left___cTKTD\",\"icon-arrow-right-sparse\":\"events-registration-client-styles-___regform-module__icon-arrow-right-sparse___pdeAp\",\"icon-arrow-up\":\"events-registration-client-styles-___regform-module__icon-arrow-up___k7aGV\",\"icon-arrows-vert\":\"events-registration-client-styles-___regform-module__icon-arrows-vert___cCt1M\",\"icon-attachment\":\"events-registration-client-styles-___regform-module__icon-attachment___Cshey\",\"icon-bell\":\"events-registration-client-styles-___regform-module__icon-bell___OKsRo\",\"icon-bold\":\"events-registration-client-styles-___regform-module__icon-bold___b+UXe\",\"icon-book\":\"events-registration-client-styles-___regform-module__icon-book___3DNju\",\"icon-bookmark\":\"events-registration-client-styles-___regform-module__icon-bookmark___TcUDY\",\"icon-broadcast\":\"events-registration-client-styles-___regform-module__icon-broadcast___JqlYQ\",\"icon-bubble-quote\":\"events-registration-client-styles-___regform-module__icon-bubble-quote___SIe5i\",\"icon-bullhorn\":\"events-registration-client-styles-___regform-module__icon-bullhorn___DaU0x\",\"icon-calendar\":\"events-registration-client-styles-___regform-module__icon-calendar___3+8tS\",\"icon-camera\":\"events-registration-client-styles-___regform-module__icon-camera___-tCzt\",\"icon-chart\":\"events-registration-client-styles-___regform-module__icon-chart___MTO3l\",\"icon-checkbox-checked\":\"events-registration-client-styles-___regform-module__icon-checkbox-checked___EkWuS\",\"icon-checkbox-unchecked\":\"events-registration-client-styles-___regform-module__icon-checkbox-unchecked___KQJJT\",\"icon-checkmark\":\"events-registration-client-styles-___regform-module__icon-checkmark___2VU2L\",\"icon-circle-small\":\"events-registration-client-styles-___regform-module__icon-circle-small___U7rY1\",\"icon-clipboard\":\"events-registration-client-styles-___regform-module__icon-clipboard___Fm-0o\",\"icon-close\":\"events-registration-client-styles-___regform-module__icon-close___M1uWT\",\"icon-cloud2\":\"events-registration-client-styles-___regform-module__icon-cloud2___-1vrI\",\"icon-code\":\"events-registration-client-styles-___regform-module__icon-code___Sisqn\",\"icon-coins\":\"events-registration-client-styles-___regform-module__icon-coins___rBXDy\",\"icon-collapse\":\"events-registration-client-styles-___regform-module__icon-collapse___+Q+Vt\",\"icon-compass2\":\"events-registration-client-styles-___regform-module__icon-compass2___jPZMp\",\"icon-copy\":\"events-registration-client-styles-___regform-module__icon-copy___f0WEh\",\"icon-copy1\":\"events-registration-client-styles-___regform-module__icon-copy1___HmDSa\",\"icon-cross\":\"events-registration-client-styles-___regform-module__icon-cross___kff3l\",\"icon-disable\":\"events-registration-client-styles-___regform-module__icon-disable___i0+FF\",\"icon-drag-indicator\":\"events-registration-client-styles-___regform-module__icon-drag-indicator___xzm8r\",\"icon-dropmenu\":\"events-registration-client-styles-___regform-module__icon-dropmenu___doH2P\",\"icon-earth\":\"events-registration-client-styles-___regform-module__icon-earth___-GEjw\",\"icon-edit\":\"events-registration-client-styles-___regform-module__icon-edit___VOIRG\",\"icon-enlarge\":\"events-registration-client-styles-___regform-module__icon-enlarge___oDU7c\",\"icon-enter\":\"events-registration-client-styles-___regform-module__icon-enter___YaDYr\",\"icon-equalizer\":\"events-registration-client-styles-___regform-module__icon-equalizer___ipjL7\",\"icon-exit\":\"events-registration-client-styles-___regform-module__icon-exit___9GDVX\",\"icon-expand\":\"events-registration-client-styles-___regform-module__icon-expand___OKU0z\",\"icon-eye\":\"events-registration-client-styles-___regform-module__icon-eye___oMkY0\",\"icon-eye-blocked\":\"events-registration-client-styles-___regform-module__icon-eye-blocked___JW7S4\",\"icon-unlisted-event\":\"events-registration-client-styles-___regform-module__icon-unlisted-event___bXVDQ\",\"icon-file\":\"events-registration-client-styles-___regform-module__icon-file___SA4Pg\",\"icon-file-check\":\"events-registration-client-styles-___regform-module__icon-file-check___bkrCO\",\"icon-file-content\":\"events-registration-client-styles-___regform-module__icon-file-content___FRm4Q\",\"icon-file-css\":\"events-registration-client-styles-___regform-module__icon-file-css___83v9J\",\"icon-file-download\":\"events-registration-client-styles-___regform-module__icon-file-download___kDiTh\",\"icon-file-excel\":\"events-registration-client-styles-___regform-module__icon-file-excel___Kk9Wc\",\"icon-file-eye\":\"events-registration-client-styles-___regform-module__icon-file-eye___59Z59\",\"icon-file-filled\":\"events-registration-client-styles-___regform-module__icon-file-filled___3+O4R\",\"icon-file-image\":\"events-registration-client-styles-___regform-module__icon-file-image___IpOcP\",\"icon-file-music\":\"events-registration-client-styles-___regform-module__icon-file-music___wBH9H\",\"icon-file-openoffice\":\"events-registration-client-styles-___regform-module__icon-file-openoffice___pCj-m\",\"icon-file-pdf\":\"events-registration-client-styles-___regform-module__icon-file-pdf___-eja7\",\"icon-file-play\":\"events-registration-client-styles-___regform-module__icon-file-play___UjrRu\",\"icon-file-presentation\":\"events-registration-client-styles-___regform-module__icon-file-presentation___3zIdX\",\"icon-file-spreadsheet\":\"events-registration-client-styles-___regform-module__icon-file-spreadsheet___syZH7\",\"icon-file-text\":\"events-registration-client-styles-___regform-module__icon-file-text___5Qubc\",\"icon-file-video\":\"events-registration-client-styles-___regform-module__icon-file-video___F3wMJ\",\"icon-file-word\":\"events-registration-client-styles-___regform-module__icon-file-word___AjXzu\",\"icon-file-xml\":\"events-registration-client-styles-___regform-module__icon-file-xml___ewSmd\",\"icon-file-zip\":\"events-registration-client-styles-___regform-module__icon-file-zip___hyt8M\",\"icon-filter\":\"events-registration-client-styles-___regform-module__icon-filter___InJb-\",\"icon-first\":\"events-registration-client-styles-___regform-module__icon-first___GlLuB\",\"icon-floppy\":\"events-registration-client-styles-___regform-module__icon-floppy___stDTm\",\"icon-folder\":\"events-registration-client-styles-___regform-module__icon-folder___XzO6v\",\"icon-folder-open\":\"events-registration-client-styles-___regform-module__icon-folder-open___fY3mI\",\"icon-folder-plus\":\"events-registration-client-styles-___regform-module__icon-folder-plus___WSHLw\",\"icon-font-size\":\"events-registration-client-styles-___regform-module__icon-font-size___-AfeO\",\"icon-grid\":\"events-registration-client-styles-___regform-module__icon-grid___EwLS3\",\"icon-grid2\":\"events-registration-client-styles-___regform-module__icon-grid2___E5Px0\",\"icon-hammer\":\"events-registration-client-styles-___regform-module__icon-hammer___7k7vk\",\"icon-handle\":\"events-registration-client-styles-___regform-module__icon-handle___BLj2J\",\"icon-home\":\"events-registration-client-styles-___regform-module__icon-home___rvScu\",\"icon-hour-glass2\":\"events-registration-client-styles-___regform-module__icon-hour-glass2___5o5sK\",\"icon-id-badge\":\"events-registration-client-styles-___regform-module__icon-id-badge___8Kkd-\",\"icon-image\":\"events-registration-client-styles-___regform-module__icon-image___XCTA2\",\"icon-import\":\"events-registration-client-styles-___regform-module__icon-import___QVoRL\",\"icon-info\":\"events-registration-client-styles-___regform-module__icon-info___MA0xq\",\"icon-italic\":\"events-registration-client-styles-___regform-module__icon-italic___LGAU6\",\"icon-key\":\"events-registration-client-styles-___regform-module__icon-key___Elm0q\",\"icon-key-a\":\"events-registration-client-styles-___regform-module__icon-key-a___-2hmS\",\"icon-lamp\":\"events-registration-client-styles-___regform-module__icon-lamp___8E73m\",\"icon-lan\":\"events-registration-client-styles-___regform-module__icon-lan___WzpsU\",\"icon-last\":\"events-registration-client-styles-___regform-module__icon-last___7Ig0g\",\"icon-layout\":\"events-registration-client-styles-___regform-module__icon-layout___PrdWO\",\"icon-link\":\"events-registration-client-styles-___regform-module__icon-link___5iBep\",\"icon-list\":\"events-registration-client-styles-___regform-module__icon-list___y9h5b\",\"icon-location\":\"events-registration-client-styles-___regform-module__icon-location___EyneB\",\"icon-lock\":\"events-registration-client-styles-___regform-module__icon-lock___4rhKo\",\"icon-protection-self\":\"events-registration-client-styles-___regform-module__icon-protection-self___i0Xkv\",\"icon-lock-center\":\"events-registration-client-styles-___regform-module__icon-lock-center___65hiM\",\"icon-loop\":\"events-registration-client-styles-___regform-module__icon-loop___R7rVx\",\"icon-mail\":\"events-registration-client-styles-___regform-module__icon-mail___ZGZOq\",\"icon-medal\":\"events-registration-client-styles-___regform-module__icon-medal___PMzja\",\"icon-mic\":\"events-registration-client-styles-___regform-module__icon-mic___gmYYd\",\"icon-mobile\":\"events-registration-client-styles-___regform-module__icon-mobile___S5fl0\",\"icon-move\":\"events-registration-client-styles-___regform-module__icon-move___zHFpb\",\"icon-new\":\"events-registration-client-styles-___regform-module__icon-new___ztXxM\",\"icon-next\":\"events-registration-client-styles-___regform-module__icon-next___TqPZM\",\"icon-no-camera\":\"events-registration-client-styles-___regform-module__icon-no-camera___QRCrL\",\"icon-numbered-list\":\"events-registration-client-styles-___regform-module__icon-numbered-list___FMjI-\",\"icon-package-download\":\"events-registration-client-styles-___regform-module__icon-package-download___+AALu\",\"icon-pagebreak\":\"events-registration-client-styles-___regform-module__icon-pagebreak___iPCbt\",\"icon-palette\":\"events-registration-client-styles-___regform-module__icon-palette___8Ad3S\",\"icon-phone\":\"events-registration-client-styles-___regform-module__icon-phone___mjNNN\",\"icon-play\":\"events-registration-client-styles-___regform-module__icon-play___kZdQk\",\"icon-plus\":\"events-registration-client-styles-___regform-module__icon-plus___I0p2w\",\"icon-prev\":\"events-registration-client-styles-___regform-module__icon-prev___rrWJK\",\"icon-price-tag\":\"events-registration-client-styles-___regform-module__icon-price-tag___n-Ahz\",\"icon-printer\":\"events-registration-client-styles-___regform-module__icon-printer___0X2pj\",\"icon-projector\":\"events-registration-client-styles-___regform-module__icon-projector___JJ+UA\",\"icon-puzzle\":\"events-registration-client-styles-___regform-module__icon-puzzle___JBeHk\",\"icon-qrcode\":\"events-registration-client-styles-___regform-module__icon-qrcode___u2d1U\",\"icon-question\":\"events-registration-client-styles-___regform-module__icon-question___G1SVz\",\"icon-quill\":\"events-registration-client-styles-___regform-module__icon-quill___cYbLJ\",\"icon-redo\":\"events-registration-client-styles-___regform-module__icon-redo___eenAn\",\"icon-remove\":\"events-registration-client-styles-___regform-module__icon-remove___zB1HO\",\"icon-rulers\":\"events-registration-client-styles-___regform-module__icon-rulers___YpZ9C\",\"icon-search\":\"events-registration-client-styles-___regform-module__icon-search___vBkPO\",\"icon-settings\":\"events-registration-client-styles-___regform-module__icon-settings___-RC8+\",\"icon-seven-segment9\":\"events-registration-client-styles-___regform-module__icon-seven-segment9___dMv7-\",\"icon-shield\":\"events-registration-client-styles-___regform-module__icon-shield___1gXDa\",\"icon-shrink\":\"events-registration-client-styles-___regform-module__icon-shrink___PcJku\",\"icon-sort\":\"events-registration-client-styles-___regform-module__icon-sort___E20Uw\",\"icon-sort-alpha-asc\":\"events-registration-client-styles-___regform-module__icon-sort-alpha-asc___t7MN5\",\"icon-sort-alpha-desc\":\"events-registration-client-styles-___regform-module__icon-sort-alpha-desc___DGUp4\",\"icon-split\":\"events-registration-client-styles-___regform-module__icon-split___kR9h-\",\"icon-stack\":\"events-registration-client-styles-___regform-module__icon-stack___Exo35\",\"icon-stack-minus\":\"events-registration-client-styles-___regform-module__icon-stack-minus___eiySZ\",\"icon-stack-plus\":\"events-registration-client-styles-___regform-module__icon-stack-plus___OIM17\",\"icon-stack-text\":\"events-registration-client-styles-___regform-module__icon-stack-text___T0hFV\",\"icon-star\":\"events-registration-client-styles-___regform-module__icon-star___VQDnr\",\"icon-star-empty\":\"events-registration-client-styles-___regform-module__icon-star-empty___rJq0O\",\"icon-stop\":\"events-registration-client-styles-___regform-module__icon-stop___rw-0z\",\"icon-switchoff\":\"events-registration-client-styles-___regform-module__icon-switchoff___Pr731\",\"icon-switchon\":\"events-registration-client-styles-___regform-module__icon-switchon___wdLJK\",\"icon-tag\":\"events-registration-client-styles-___regform-module__icon-tag___qBaj3\",\"icon-text-color\":\"events-registration-client-styles-___regform-module__icon-text-color___ddRre\",\"icon-textarea\":\"events-registration-client-styles-___regform-module__icon-textarea___3nbN1\",\"icon-textfield\":\"events-registration-client-styles-___regform-module__icon-textfield___zxLIK\",\"icon-ticket\":\"events-registration-client-styles-___regform-module__icon-ticket___cM2Di\",\"icon-tilde\":\"events-registration-client-styles-___regform-module__icon-tilde___zkQbA\",\"icon-time\":\"events-registration-client-styles-___regform-module__icon-time___4VKEZ\",\"icon-transmission\":\"events-registration-client-styles-___regform-module__icon-transmission___NWeMY\",\"icon-type\":\"events-registration-client-styles-___regform-module__icon-type___Df8xt\",\"icon-undo\":\"events-registration-client-styles-___regform-module__icon-undo___ySM-t\",\"icon-unlocked\":\"events-registration-client-styles-___regform-module__icon-unlocked___6WfEX\",\"icon-protection-public\":\"events-registration-client-styles-___regform-module__icon-protection-public___lk89M\",\"icon-upload\":\"events-registration-client-styles-___regform-module__icon-upload___rgQw9\",\"icon-user\":\"events-registration-client-styles-___regform-module__icon-user___websN\",\"icon-user-block\":\"events-registration-client-styles-___regform-module__icon-user-block___KvT93\",\"icon-user-chairperson\":\"events-registration-client-styles-___regform-module__icon-user-chairperson___uxY38\",\"icon-user-check\":\"events-registration-client-styles-___regform-module__icon-user-check___5dQk-\",\"icon-user-reading\":\"events-registration-client-styles-___regform-module__icon-user-reading___BEVFl\",\"icon-users\":\"events-registration-client-styles-___regform-module__icon-users___MDJP5\",\"icon-warning\":\"events-registration-client-styles-___regform-module__icon-warning___9bvHC\",\"icon-wrench\":\"events-registration-client-styles-___regform-module__icon-wrench___VL5eL\",\"icon-spinner\":\"events-registration-client-styles-___regform-module__icon-spinner___tLLm2\",\"icon-none\":\"events-registration-client-styles-___regform-module__icon-none___Tb7hM\",\"ellipsis\":\"events-registration-client-styles-___regform-module__ellipsis___jTFui\",\"setup-toolbar\":\"events-registration-client-styles-___regform-module__setup-toolbar___tu1Kv\",\"disabled-sections\":\"events-registration-client-styles-___regform-module__disabled-sections___TthNB\",\"actions\":\"events-registration-client-styles-___regform-module__actions___yuXgO\",\"content\":\"events-registration-client-styles-___regform-module__content___dKw31\",\"paid-disabled\":\"events-registration-client-styles-___regform-module__paid-disabled___e8zT-\",\"purged-disabled\":\"events-registration-client-styles-___regform-module__purged-disabled___oo16L\",\"label\":\"events-registration-client-styles-___regform-module__label___t11lD\",\"field\":\"events-registration-client-styles-___regform-module__field___mpG7J\",\"price-tag\":\"events-registration-client-styles-___regform-module__price-tag___pz3tt\",\"places-left\":\"events-registration-client-styles-___regform-module__places-left___6O4Ev\",\"greyed\":\"events-registration-client-styles-___regform-module__greyed___HZLen\",\"number-field\":\"events-registration-client-styles-___regform-module__number-field___LtuaG\",\"boolean-field\":\"events-registration-client-styles-___regform-module__boolean-field___0geJs\",\"date-field\":\"events-registration-client-styles-___regform-module__date-field___LToLh\",\"file-field\":\"events-registration-client-styles-___regform-module__file-field___1Nup7\",\"accommodation-field\":\"events-registration-client-styles-___regform-module__accommodation-field___WHQ+0\",\"date-picker\":\"events-registration-client-styles-___regform-module__date-picker___zVaWU\",\"accompanyingpersons-field\":\"events-registration-client-styles-___regform-module__accompanyingpersons-field___MUvS6\",\"light\":\"events-registration-client-styles-___regform-module__light___gdy5g\",\"summary\":\"events-registration-client-styles-___regform-module__summary___Krn7Y\",\"country-dropdown\":\"events-registration-client-styles-___regform-module__country-dropdown___Hhf-Y\",\"single-choice-dropdown\":\"events-registration-client-styles-___regform-module__single-choice-dropdown___tzmJ5\",\"dropdown-text\":\"events-registration-client-styles-___regform-module__dropdown-text___GB4OB\",\"caption\":\"events-registration-client-styles-___regform-module__caption___u54ZN\",\"labels\":\"events-registration-client-styles-___regform-module__labels___Zy8f7\",\"single-choice-radio-group\":\"events-registration-client-styles-___regform-module__single-choice-radio-group___E9qIt\",\"description\":\"events-registration-client-styles-___regform-module__description___abkAU\",\"header-wrapper\":\"events-registration-client-styles-___regform-module__header-wrapper___U6gJN\",\"manager-only\":\"events-registration-client-styles-___regform-module__manager-only___PQwvG\",\"section-actions\":\"events-registration-client-styles-___regform-module__section-actions___p3bRe\",\"dropdown-menu\":\"events-registration-client-styles-___regform-module__dropdown-menu___9uq+D\",\"dropdown-item\":\"events-registration-client-styles-___regform-module__dropdown-item___chpZW\"};","// 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 PropTypes from 'prop-types';\nimport React, {useEffect, useState} from 'react';\nimport {useSelector, useDispatch} from 'react-redux';\nimport {Icon, Modal, Popup, Segment} from 'semantic-ui-react';\n\nimport {RequestConfirmDelete} from 'indico/react/components';\nimport {Translate, Param} from 'indico/react/i18n';\n\nimport * as actions from './actions';\nimport {getDisabledSections} from './selectors';\n\nimport '../../styles/regform.module.scss';\n\nfunction DisabledSection({id, title}) {\n const dispatch = useDispatch();\n const [confirmDeleteActive, setConfirmDeleteActive] = useState(false);\n\n const handleEnableClick = () => {\n dispatch(actions.enableSection(id));\n };\n\n const handleRemoveClick = () => {\n setConfirmDeleteActive(true);\n };\n\n return (\n \n {title}\n
\n \n }\n />\n \n }\n />\n
\n dispatch(actions.removeSection(id))}\n onClose={() => setConfirmDeleteActive(false)}\n open={confirmDeleteActive}\n size=\"mini\"\n persistent\n >\n \n Are you sure you want to delete the section \"\n } />\n \"?\n \n \n
\n );\n}\n\nDisabledSection.propTypes = {\n id: PropTypes.number.isRequired,\n title: PropTypes.string.isRequired,\n};\n\nexport default function DisabledSectionsModal({onClose}) {\n const sections = useSelector(getDisabledSections);\n\n useEffect(() => {\n // auto-close when there are no disabled sections left\n if (!sections.length) {\n onClose();\n }\n }, [onClose, sections.length]);\n\n return (\n \n \n Disabled sections\n \n \n
\n {sections.length\n ? sections.map(section => )\n : Translate.string('There are no disabled sections.')}\n
\n
\n
\n );\n}\n\nDisabledSectionsModal.propTypes = {\n onClose: PropTypes.func.isRequired,\n};\n","// 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 PropTypes from 'prop-types';\nimport React from 'react';\nimport {useSelector, useDispatch} from 'react-redux';\n\nimport {FinalInput, FinalTextArea, FinalCheckbox} from 'indico/react/forms';\nimport {FinalModalForm} from 'indico/react/forms/final-form';\nimport {Translate, Param} from 'indico/react/i18n';\n\nimport * as actions from './actions';\nimport {getSectionById} from './selectors';\n\nimport '../../styles/regform.module.scss';\n\nexport default function SectionSettingsModal({id, onClose}) {\n const dispatch = useDispatch();\n const editing = id !== null;\n const {title, description, isPersonalData, isManagerOnly} = useSelector(state =>\n editing ? getSectionById(state, id) : {}\n );\n\n const handleSubmit = async formData => {\n const action = editing ? actions.updateSection(id, formData) : actions.createSection(formData);\n const rv = await dispatch(action);\n if (rv.error) {\n return rv.error;\n }\n onClose();\n };\n\n return (\n \n Configure section \"\"\n \n ) : (\n Add new section\n )\n }\n >\n \n You can use Markdown or basic HTML formatting tags.}\n />\n Whether the section is only visible for managers.}\n />\n \n );\n}\n\nSectionSettingsModal.propTypes = {\n id: PropTypes.number,\n onClose: PropTypes.func.isRequired,\n};\n\nSectionSettingsModal.defaultProps = {\n id: null,\n};\n","// 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 {createSelector} from 'reselect';\n\nimport {getItemById, getStaticData} from '../form/selectors';\n\nexport const getUserInfo = createSelector(\n getStaticData,\n staticData => staticData.userInfo\n);\n\n/** Indicates whether we are updating the registration */\nexport const getUpdateMode = createSelector(\n getStaticData,\n staticData => !!staticData.registrationUuid\n);\n\n/** Get the stored field values when editing a registration */\nexport const getRegistrationData = createSelector(\n getStaticData,\n staticData => staticData.registrationData\n);\n\n/** Indicates whether the registration is moderated */\nexport const getModeration = createSelector(\n getStaticData,\n staticData => staticData.moderated\n);\n\n/** Indicates whether this is rendered in the management area */\nexport const getManagement = createSelector(\n getStaticData,\n staticData => staticData.management || false\n);\n\n/** Indicates whether this registration has already been paid */\nexport const getPaid = createSelector(\n getStaticData,\n staticData => staticData.paid || false\n);\n\n/** Indicates the registration form's publishing to other participants mode */\nexport const getPublishToParticipants = createSelector(\n getStaticData,\n staticData => staticData.publishToParticipants\n);\n\n/** Indicates the registration form's public publishing mode */\nexport const getPublishToPublic = createSelector(\n getStaticData,\n staticData => staticData.publishToPublic\n);\n\n/** Get the stored value for a field when editing a registration */\nexport const getFieldValue = createSelector(\n getUpdateMode,\n getRegistrationData,\n (state, id) => getItemById(state, id),\n (updateMode, registrationData, field) =>\n updateMode ? registrationData[field.htmlName] : undefined\n);\n\nexport const isPaidItemLocked = createSelector(\n getPaid,\n (state, id) => getItemById(state, id),\n (state, id) => getFieldValue(state, id),\n (paid, field, value) => {\n if (!paid) {\n // nothing locked if the registration hasn't been paid yet\n return false;\n } else if (field.price > 0) {\n // easy for fields that have a price themselves\n return true;\n } else if (value !== undefined && field.choices) {\n // we assume that all fields with more complex options have them in `choices`,\n // and that a billable choice will have a `price`. if the old value is undefined,\n // we never disable the field altogether since some choices could in fact be free,\n // and we rely on the field to disable problematic choices\n let choiceIsSelected;\n if (typeof value === 'string') {\n choiceIsSelected = c => c.id === value;\n } else if (value.choice) {\n choiceIsSelected = c => c.id === value.choice;\n } else {\n choiceIsSelected = c => value[c.id] > 0;\n }\n return !!field.choices.find(c => c.price > 0 && choiceIsSelected(c));\n }\n return false;\n }\n);\n","// 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 PropTypes from 'prop-types';\nimport React from 'react';\nimport {Icon, Popup} from 'semantic-ui-react';\n\nimport {Translate} from 'indico/react/i18n';\n\nexport default function ChoiceLabel({paid, management, choice}) {\n let modWarning = null;\n let paymentWarning = null;\n // warning about modified/removed choice\n if (choice._deleted) {\n modWarning = (\n \n The currently chosen option is not available anymore. If you unselect it you won't be able\n to choose it back.\n \n );\n } else if (choice._modified) {\n modWarning = choice.price ? (\n \n The currently chosen option has been modified. If you unselect it you may not be able to\n select it again for the same price.\n \n ) : (\n \n The currently chosen option has been modified. If you unselect it you may not be able to\n select it again.\n \n );\n }\n // warning about price changes\n if (paid && !management) {\n paymentWarning = (\n This option could trigger a price change and has been blocked.\n );\n } else if (paid) {\n paymentWarning = Choosing this option will result in a price change.;\n }\n if (!modWarning && !paymentWarning) {\n return choice.caption;\n }\n return (\n <>\n {choice.caption}{' '}\n {modWarning && (\n }>{modWarning}\n )}\n {modWarning && paymentWarning && ' '}\n {paymentWarning && (\n }>{paymentWarning}\n )}\n \n );\n}\n\nChoiceLabel.propTypes = {\n paid: PropTypes.bool.isRequired,\n management: PropTypes.bool.isRequired,\n choice: PropTypes.shape({\n caption: PropTypes.string.isRequired,\n price: PropTypes.number,\n _deleted: PropTypes.bool,\n _modified: PropTypes.bool,\n }).isRequired,\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"choices-table\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__choices-table___w2Tu2\",\"table-sortable-handle\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__table-sortable-handle___D7vqk\",\"inactive\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__inactive___wCdAh\",\"icon-agreement\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-agreement___nmALU\",\"icon-alarm\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-alarm___t7iqH\",\"icon-arrow-down\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-arrow-down___NrkqT\",\"icon-arrow-left\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-arrow-left___rNexi\",\"icon-arrow-right-sparse\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-arrow-right-sparse___cr5iO\",\"icon-arrow-up\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-arrow-up___ByIUy\",\"icon-arrows-vert\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-arrows-vert___vG68W\",\"icon-attachment\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-attachment___oGF2X\",\"icon-bell\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-bell___X76yZ\",\"icon-bold\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-bold___prmRd\",\"icon-book\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-book___9tnF+\",\"icon-bookmark\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-bookmark___pv7pr\",\"icon-broadcast\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-broadcast___qf-By\",\"icon-bubble-quote\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-bubble-quote___jl-1b\",\"icon-bullhorn\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-bullhorn___D14QY\",\"icon-calendar\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-calendar___zIzzU\",\"icon-camera\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-camera___pKGBP\",\"icon-chart\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-chart___r7fWj\",\"icon-checkbox-checked\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-checkbox-checked___sKnSA\",\"icon-checkbox-unchecked\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-checkbox-unchecked___eft2d\",\"icon-checkmark\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-checkmark___r+GPo\",\"icon-circle-small\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-circle-small___siKEC\",\"icon-clipboard\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-clipboard___sQDRc\",\"icon-close\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-close___qxFQM\",\"icon-cloud2\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-cloud2___rRWgK\",\"icon-code\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-code___Fq1gs\",\"icon-coins\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-coins___gv5rf\",\"icon-collapse\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-collapse___CsUNU\",\"icon-compass2\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-compass2___RCRWN\",\"icon-copy\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-copy___HBYcT\",\"icon-copy1\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-copy1___uPeIt\",\"icon-cross\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-cross___l0hvO\",\"icon-disable\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-disable___9S2sA\",\"icon-drag-indicator\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-drag-indicator___XcMQz\",\"icon-dropmenu\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-dropmenu___2vBiW\",\"icon-earth\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-earth___F314m\",\"icon-edit\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-edit___uJuhh\",\"icon-enlarge\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-enlarge___FHy9U\",\"icon-enter\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-enter___0SS17\",\"icon-equalizer\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-equalizer___xeINk\",\"icon-exit\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-exit___ewu8g\",\"icon-expand\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-expand___gKiAf\",\"icon-eye\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-eye___msvMF\",\"icon-eye-blocked\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-eye-blocked___fJhRg\",\"icon-unlisted-event\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-unlisted-event___75SN9\",\"icon-file\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-file___Pq0G1\",\"icon-file-check\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-file-check___iP5we\",\"icon-file-content\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-file-content___bJ0zk\",\"icon-file-css\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-file-css___74LrQ\",\"icon-file-download\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-file-download___SlNrA\",\"icon-file-excel\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-file-excel___v8p1K\",\"icon-file-eye\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-file-eye___DAmkE\",\"icon-file-filled\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-file-filled___col0E\",\"icon-file-image\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-file-image___y76bD\",\"icon-file-music\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-file-music___Xkl+o\",\"icon-file-openoffice\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-file-openoffice___4++2q\",\"icon-file-pdf\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-file-pdf___wUjMR\",\"icon-file-play\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-file-play___Hwvvh\",\"icon-file-presentation\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-file-presentation___O+UBc\",\"icon-file-spreadsheet\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-file-spreadsheet___GXnBI\",\"icon-file-text\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-file-text___PJsvQ\",\"icon-file-video\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-file-video___DDsBU\",\"icon-file-word\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-file-word___v69ew\",\"icon-file-xml\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-file-xml___uw+nS\",\"icon-file-zip\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-file-zip___qSCrI\",\"icon-filter\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-filter___yAN7f\",\"icon-first\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-first___CHJ-S\",\"icon-floppy\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-floppy___3UvO1\",\"icon-folder\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-folder___jE5-l\",\"icon-folder-open\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-folder-open___04Mup\",\"icon-folder-plus\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-folder-plus___-cITX\",\"icon-font-size\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-font-size___13Te6\",\"icon-grid\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-grid___6n5oP\",\"icon-grid2\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-grid2___GaiOD\",\"icon-hammer\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-hammer___1+H7z\",\"icon-handle\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-handle___H7Mqf\",\"icon-home\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-home___vD5Gi\",\"icon-hour-glass2\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-hour-glass2___F+iw9\",\"icon-id-badge\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-id-badge___U4EBf\",\"icon-image\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-image___5zcyu\",\"icon-import\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-import___Cx701\",\"icon-info\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-info___02UAT\",\"icon-italic\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-italic___ZScZt\",\"icon-key\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-key___2Zxzt\",\"icon-key-a\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-key-a___+WojC\",\"icon-lamp\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-lamp___oc63i\",\"icon-lan\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-lan___7RLU6\",\"icon-last\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-last___2T+wv\",\"icon-layout\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-layout___e0d5E\",\"icon-link\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-link___m9Z1i\",\"icon-list\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-list___BlAme\",\"icon-location\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-location___-tCHn\",\"icon-lock\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-lock___U-vO0\",\"icon-protection-self\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-protection-self___MpSKc\",\"icon-lock-center\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-lock-center___qYKxD\",\"icon-loop\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-loop___9KivF\",\"icon-mail\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-mail___pFo3g\",\"icon-medal\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-medal___0dc8q\",\"icon-mic\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-mic___wurft\",\"icon-mobile\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-mobile___BxF5p\",\"icon-move\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-move___SLvPR\",\"icon-new\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-new___n9z4Y\",\"icon-next\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-next___AvWYw\",\"icon-no-camera\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-no-camera___vDqjd\",\"icon-numbered-list\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-numbered-list___cTEry\",\"icon-package-download\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-package-download___oo71i\",\"icon-pagebreak\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-pagebreak___5yvRp\",\"icon-palette\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-palette___z1Rjp\",\"icon-phone\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-phone___oGmit\",\"icon-play\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-play___ImfNw\",\"icon-plus\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-plus___ibFAy\",\"icon-prev\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-prev___8B8M5\",\"icon-price-tag\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-price-tag___g+rdM\",\"icon-printer\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-printer___Fy4pV\",\"icon-projector\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-projector___8FICJ\",\"icon-puzzle\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-puzzle___E1nUG\",\"icon-qrcode\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-qrcode___Xio8G\",\"icon-question\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-question___AWyd4\",\"icon-quill\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-quill___uf5I1\",\"icon-redo\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-redo___7ytdB\",\"icon-remove\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-remove___C+KFO\",\"icon-rulers\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-rulers___xvNS8\",\"icon-search\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-search___SBCGf\",\"icon-settings\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-settings___cuMm2\",\"icon-seven-segment9\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-seven-segment9___oaqrJ\",\"icon-shield\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-shield___Rydmk\",\"icon-shrink\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-shrink___E26np\",\"icon-sort\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-sort___Kwj3E\",\"icon-sort-alpha-asc\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-sort-alpha-asc___xLymH\",\"icon-sort-alpha-desc\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-sort-alpha-desc___7yV3S\",\"icon-split\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-split___uKSd-\",\"icon-stack\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-stack___Y9hok\",\"icon-stack-minus\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-stack-minus___kCG2z\",\"icon-stack-plus\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-stack-plus___PlsbB\",\"icon-stack-text\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-stack-text___w2V9o\",\"icon-star\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-star___vMZrU\",\"icon-star-empty\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-star-empty___pQRl6\",\"icon-stop\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-stop___YnWgH\",\"icon-switchoff\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-switchoff___Z7r2x\",\"icon-switchon\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-switchon___ZHhm4\",\"icon-tag\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-tag___abLsl\",\"icon-text-color\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-text-color___s3fFc\",\"icon-textarea\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-textarea___6fTN+\",\"icon-textfield\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-textfield___mQpzm\",\"icon-ticket\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-ticket___4tD0q\",\"icon-tilde\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-tilde___BB9dY\",\"icon-time\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-time___LJNSq\",\"icon-transmission\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-transmission___XFs0S\",\"icon-type\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-type___2-4nC\",\"icon-undo\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-undo___TXUWG\",\"icon-unlocked\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-unlocked___HlXmw\",\"icon-protection-public\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-protection-public___jTbsm\",\"icon-upload\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-upload___3Rk2L\",\"icon-user\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-user___FNwt2\",\"icon-user-block\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-user-block___ci9Lf\",\"icon-user-chairperson\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-user-chairperson___zAjyH\",\"icon-user-check\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-user-check___9wL94\",\"icon-user-reading\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-user-reading___hbKV9\",\"icon-users\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-users___yLwHq\",\"icon-warning\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-warning___jD1Mx\",\"icon-wrench\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-wrench___KQL6M\",\"icon-spinner\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-spinner___nLBG4\",\"icon-none\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__icon-none___7bgDo\",\"disabled\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__disabled___1DmMw\",\"ellipsis\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__ellipsis___web7E\",\"choices-table-wrapper\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__choices-table-wrapper___qY3fA\",\"empty-row\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__empty-row___OpJWg\",\"disabled-row\":\"events-registration-client-js-form-fields-___ChoicesSetup-module__disabled-row___fT9s2\"};","// 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 createDecorator from 'final-form-calculate';\nimport {nanoid} from 'nanoid';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport {useSelector} from 'react-redux';\nimport {Button, Input} from 'semantic-ui-react';\n\nimport {Translate, Param} from 'indico/react/i18n';\nimport {SortableWrapper, useSortableItem} from 'indico/react/sortable';\n\nimport {getCurrency} from '../../form/selectors';\n\nimport './ChoicesSetup.module.scss';\n\nexport const choiceShape = {\n id: PropTypes.string.isRequired,\n caption: PropTypes.string.isRequired,\n // XXX are those values always present?\n isEnabled: PropTypes.bool.isRequired,\n price: PropTypes.number.isRequired,\n placesLimit: PropTypes.number,\n maxExtraSlots: PropTypes.number,\n};\n\nexport function Choices({\n onFocus,\n onBlur,\n onChange,\n disabled,\n value,\n withExtraSlots,\n forAccommodation,\n}) {\n const currency = useSelector(getCurrency);\n const makeOnDelete = id => () => onChange(value.filter(choice => choice.id !== id));\n const makeOnChange = id => (field, val) =>\n onChange(value.map(choice => (choice.id !== id ? choice : {...choice, [field]: val})));\n const handleMove = (sourceIndex, targetIndex) => {\n const newValue = [...value];\n const sourceItem = newValue[sourceIndex];\n newValue.splice(sourceIndex, 1);\n newValue.splice(targetIndex, 0, sourceItem);\n onChange(newValue);\n };\n const handleAdd = () => {\n const newItem = {\n id: `new:${nanoid()}`,\n caption: '',\n isEnabled: true,\n price: 0,\n placesLimit: 0,\n };\n if (!forAccommodation) {\n newItem.maxExtraSlots = 0;\n }\n onChange([...value, newItem]);\n };\n\n // TODO: style this nicely, ideally ditch the table and find a better way to do this\n // one option could be showing just the text and settings (icons?), and using a more\n // explicit edit action on the individual entries (which could then use a modal to\n // edit the actual data)\n return (\n <>\n \n \n \n \n \n \n \n {withExtraSlots ? (\n \n ) : (\n \n \n \n {value.map((c, i) => (\n \n ))}\n \n
\n \n Caption\n \n \n Price ()\n \n \n Limit\n \n Max. extra slots\n \n )}\n
\n
\n {forAccommodation && (\n \n All prices are per night\n

\n )}\n \n \n );\n}\n\nChoices.propTypes = {\n onFocus: PropTypes.func.isRequired,\n onBlur: PropTypes.func.isRequired,\n onChange: PropTypes.func.isRequired,\n value: PropTypes.arrayOf(PropTypes.shape(choiceShape)).isRequired,\n disabled: PropTypes.bool.isRequired,\n withExtraSlots: PropTypes.bool,\n forAccommodation: PropTypes.bool,\n};\n\nChoices.defaultProps = {\n withExtraSlots: false,\n forAccommodation: false,\n};\n\nexport const choiceFieldsSettingsFormDecorator = createDecorator({\n field: 'choices',\n updates: choices => ({isPriceSet: choices.some(c => c.price)}),\n});\n\nfunction Choice({\n withExtraSlots,\n fieldProps,\n index,\n id,\n caption,\n price,\n placesLimit,\n maxExtraSlots,\n extraSlotsPay,\n isEnabled,\n isNoAccommodation,\n onChange,\n onMove,\n onDelete,\n}) {\n const [handleRef, itemRef, style] = useSortableItem({\n type: 'regform-item-choice',\n id,\n index,\n active: !fieldProps.disabled,\n separateHandle: true,\n moveItem: onMove,\n // nothing to do since we don't need to \"save\" at the end\n onDrop: () => null,\n });\n\n const makeOnChange = field => evt => {\n const elem = evt.target;\n if (elem.type === 'checkbox') {\n onChange(field, elem.checked);\n } else if (elem.type === 'number') {\n onChange(field, +elem.value);\n } else {\n onChange(field, elem.value);\n }\n };\n\n return (\n \n \n \n \n \n \n {!isNoAccommodation && (\n \n )}\n \n \n {!isNoAccommodation && (\n \n )}\n \n {!isNoAccommodation && withExtraSlots && (\n \n onChange('extraSlotsPay', !extraSlotsPay),\n }}\n style={{width: '7.5em'}}\n {...fieldProps}\n />\n \n )}\n \n {!isNoAccommodation && (\n \n )}\n {isEnabled ? (\n onChange('isEnabled', false)}\n />\n ) : (\n onChange('isEnabled', true)}\n />\n )}\n \n \n );\n}\n\nChoice.propTypes = {\n withExtraSlots: PropTypes.bool.isRequired,\n fieldProps: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n onMove: PropTypes.func.isRequired,\n onDelete: PropTypes.func.isRequired,\n ...choiceShape,\n};\n","// 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 PropTypes from 'prop-types';\nimport React from 'react';\nimport {Label} from 'semantic-ui-react';\n\nimport {Translate, PluralTranslate, Singular, Plural, Param} from 'indico/react/i18n';\n\nexport function PlacesLeft({placesLimit, placesUsed, isEnabled}) {\n const placesLeft = placesLimit - placesUsed;\n const color = placesLeft > 0 ? (isEnabled ? 'green' : 'grey') : 'red';\n\n return (\n \n );\n}\n\nPlacesLeft.propTypes = {\n placesLimit: PropTypes.number.isRequired,\n placesUsed: PropTypes.number.isRequired,\n isEnabled: PropTypes.bool.isRequired,\n};\n","// 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 _ from 'lodash';\nimport moment from 'moment';\nimport PropTypes from 'prop-types';\nimport React, {useState} from 'react';\nimport {useSelector} from 'react-redux';\nimport {Form, Label} from 'semantic-ui-react';\n\nimport {DatePeriodField, FinalDatePeriod} from 'indico/react/components';\nimport {FinalField} from 'indico/react/forms';\nimport {Translate} from 'indico/react/i18n';\nimport {serializeDate, toMoment} from 'indico/utils/date';\n\nimport {getCurrency} from '../../form/selectors';\nimport {getFieldValue, getManagement, getPaid} from '../../form_submission/selectors';\n\nimport ChoiceLabel from './ChoiceLabel';\nimport {Choices, choiceShape} from './ChoicesSetup';\nimport {PlacesLeft} from './PlacesLeftLabel';\n\nimport '../../../styles/regform.module.scss';\nimport './table.module.scss';\n\nfunction AccommodationInputComponent({\n id,\n existingValue,\n value,\n onChange,\n disabled,\n isPurged,\n choices,\n arrival,\n departure,\n placesUsed,\n}) {\n const paid = useSelector(getPaid);\n const management = useSelector(getManagement);\n const currency = useSelector(getCurrency);\n const selectedChoice = choices.find(c => c.id === value.choice);\n\n const [focusedDateField, setFocusedDateField] = useState(null);\n\n const arrivalDateFrom = toMoment(arrival.startDate, moment.HTML5_FMT.DATE);\n const arrivalDateTo = toMoment(arrival.endDate, moment.HTML5_FMT.DATE);\n const departureDateFrom = toMoment(departure.startDate, moment.HTML5_FMT.DATE);\n const departureDateTo = toMoment(departure.endDate, moment.HTML5_FMT.DATE);\n\n const makeHandleChange = choice => () => {\n const newValue = {...value, choice: choice.id, isNoAccommodation: choice.isNoAccommodation};\n if (choice.isNoAccommodation) {\n delete newValue.arrivalDate;\n delete newValue.departureDate;\n }\n onChange(newValue);\n };\n\n const handleDateChange = ({startDate, endDate}) => {\n onChange({...value, arrivalDate: startDate, departureDate: endDate});\n };\n\n const isDateDisabled = date => {\n // for the arrival date we allow selecting from the start date range, but for the\n // departure date we allow both ranges to avoid the highlighted range looking very\n // broken (disabled dates do not get any highlighting when included in the range)\n if (focusedDateField === 'startDate') {\n return !date.isBetween(arrivalDateFrom, arrivalDateTo, 'day', '[]');\n }\n return !date.isBetween(arrivalDateFrom, departureDateTo, 'day', '[]');\n };\n\n // calculate minimum days so the user can only select a departure date\n // in the allowed departure date range\n const minimumDays = !value.arrivalDate\n ? 1\n : Math.max(1, moment(departureDateFrom).diff(moment(value.arrivalDate), 'days') + 1);\n\n const nights =\n value.arrivalDate && value.departureDate\n ? moment(value.departureDate).diff(moment(value.arrivalDate), 'days')\n : 0;\n\n const isPaidChoice = choice => choice.price > 0 && paid;\n const isPaidChoiceLocked = choice => !management && isPaidChoice(choice);\n\n return (\n
\n \n \n {choices\n .filter(c => c.isEnabled || !c.isNoAccommodation)\n .map((c, index) => {\n return (\n \n \n \n \n \n );\n })}\n \n
\n \n ),\n }}\n key={c.id}\n value={c.id}\n disabled={\n !c.isEnabled ||\n disabled ||\n isPaidChoiceLocked(c) ||\n (c.placesLimit > 0 &&\n (placesUsed[c.id] || 0) >= c.placesLimit &&\n c.id !== existingValue.choice)\n }\n checked={!isPurged && c.id === value.choice}\n onChange={makeHandleChange(c)}\n />\n \n {c.isEnabled && !!c.price && (\n \n )}\n \n {c.placesLimit === 0 ? null : (\n \n )}\n
\n {value.choice !== null && !value.isNoAccommodation && (\n
\n undefined}\n onBlur={() => undefined}\n disabledDate={isDateDisabled}\n initialVisibleMonth={() => arrivalDateFrom}\n onFieldFocusChange={setFocusedDateField}\n minimumDays={minimumDays}\n value={{startDate: value.arrivalDate, endDate: value.departureDate}}\n extraPickerProps={{\n block: false,\n startDatePlaceholderText: Translate.string('Arrival'),\n endDatePlaceholderText: Translate.string('Departure'),\n }}\n />\n {!!selectedChoice.price && (\n \n )}\n
\n )}\n
\n );\n}\n\nAccommodationInputComponent.propTypes = {\n id: PropTypes.string.isRequired,\n value: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n disabled: PropTypes.bool.isRequired,\n isPurged: PropTypes.bool.isRequired,\n choices: PropTypes.arrayOf(PropTypes.shape(choiceShape)).isRequired,\n arrival: PropTypes.shape({\n startDate: PropTypes.string.isRequired,\n endDate: PropTypes.string.isRequired,\n }).isRequired,\n departure: PropTypes.shape({\n startDate: PropTypes.string.isRequired,\n endDate: PropTypes.string.isRequired,\n }).isRequired,\n placesUsed: PropTypes.objectOf(PropTypes.number).isRequired,\n existingValue: PropTypes.shape({choice: PropTypes.string}).isRequired,\n};\n\nexport default function AccommodationInput({\n id,\n htmlId,\n htmlName,\n disabled,\n isRequired,\n isPurged,\n choices,\n arrival,\n departure,\n placesUsed,\n}) {\n const existingValue = useSelector(state => getFieldValue(state, id)) || {choice: null};\n return (\n {\n if (value.choice === null) {\n return isRequired ? Translate.string('You must select an option') : undefined;\n } else if (!value.isNoAccommodation && (!value.arrivalDate || !value.departureDate)) {\n return Translate.string('You must select the arrival and departure date');\n }\n }}\n isEqual={_.isEqual}\n />\n );\n}\n\nAccommodationInput.propTypes = {\n id: PropTypes.number.isRequired,\n htmlId: PropTypes.string.isRequired,\n htmlName: PropTypes.string.isRequired,\n disabled: PropTypes.bool,\n isRequired: PropTypes.bool,\n isPurged: PropTypes.bool.isRequired,\n choices: PropTypes.arrayOf(PropTypes.shape(choiceShape)).isRequired,\n arrival: PropTypes.shape({\n startDate: PropTypes.string.isRequired,\n endDate: PropTypes.string.isRequired,\n }).isRequired,\n departure: PropTypes.shape({\n startDate: PropTypes.string.isRequired,\n endDate: PropTypes.string.isRequired,\n }).isRequired,\n placesUsed: PropTypes.objectOf(PropTypes.number).isRequired,\n};\n\nAccommodationInput.defaultProps = {\n disabled: false,\n isRequired: false,\n};\n\nexport const accommodationSettingsInitialData = staticData => ({\n choices: [\n {\n id: `new:no-accommodation`,\n caption: 'No accommodation',\n isEnabled: true,\n isNoAccommodation: true,\n price: 0,\n placesLimit: 0,\n },\n ],\n arrival: {\n startDate: serializeDate(\n toMoment(staticData.eventStartDate, moment.HTML5_FMT.DATE).subtract(2, 'days')\n ),\n endDate: serializeDate(toMoment(staticData.eventEndDate, moment.HTML5_FMT.DATE)),\n },\n departure: {\n startDate: serializeDate(\n toMoment(staticData.eventStartDate, moment.HTML5_FMT.DATE).add(1, 'days')\n ),\n endDate: serializeDate(toMoment(staticData.eventEndDate, moment.HTML5_FMT.DATE).add(3, 'days')),\n },\n});\n\nexport function accommodationSettingsFormValidator({arrival, departure}) {\n const arrivalDateFrom = toMoment(arrival.startDate, moment.HTML5_FMT.DATE);\n const arrivalDateTo = toMoment(arrival.endDate, moment.HTML5_FMT.DATE);\n const departureDateFrom = toMoment(departure.startDate, moment.HTML5_FMT.DATE);\n const departureDateTo = toMoment(departure.endDate, moment.HTML5_FMT.DATE);\n\n const errors = {};\n if (!arrivalDateFrom || !arrivalDateTo || !departureDateFrom || !departureDateTo) {\n // already covered by field-level validation\n return;\n }\n\n if (departureDateFrom.isBefore(arrivalDateFrom)) {\n errors.departure = Translate.string(\n 'The departure period cannot begin before the arrival period.'\n );\n }\n if (arrivalDateTo.isAfter(departureDateTo)) {\n errors.arrival = Translate.string('The arrival period cannot end after the departure period.');\n }\n return errors;\n}\n\nexport function AccommodationSettings() {\n return (\n <>\n false}\n extraPickerProps={{noBorder: true}}\n required\n />\n false}\n extraPickerProps={{noBorder: true}}\n required\n />\n {\n if (!val.some(c => c.isEnabled)) {\n return Translate.string('You need to have at least one enabled option.');\n }\n }}\n />\n \n );\n}\n","// 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 {nanoid} from 'nanoid';\nimport PropTypes from 'prop-types';\nimport React, {useState} from 'react';\nimport {useFormState} from 'react-final-form';\nimport {useSelector} from 'react-redux';\nimport {Button, Form, Label} from 'semantic-ui-react';\n\nimport {FinalCheckbox, FinalField, FinalInput, validators as v} from 'indico/react/forms';\nimport {FinalModalForm} from 'indico/react/forms/final-form';\nimport {Translate} from 'indico/react/i18n';\n\nimport {getCurrency, getItems} from '../selectors';\n\nimport {PlacesLeft} from './PlacesLeftLabel';\n\nimport '../../../styles/regform.module.scss';\n\nfunction AccompanyingPersonModal({value, header, onSubmit, onClose}) {\n return (\n \n \n \n \n );\n}\n\nAccompanyingPersonModal.propTypes = {\n value: PropTypes.shape({\n id: PropTypes.string.isRequired,\n firstName: PropTypes.string.isRequired,\n lastName: PropTypes.string.isRequired,\n }),\n header: PropTypes.string.isRequired,\n onSubmit: PropTypes.func.isRequired,\n onClose: PropTypes.func.isRequired,\n};\n\nAccompanyingPersonModal.defaultProps = {\n value: {\n id: null,\n firstName: null,\n lastName: null,\n },\n};\n\n// Gather all accompanying persons field's counts.\nfunction countAllAccompanyingPersons(items, formState) {\n const allAccompanyingPersonFieldNames = Object.values(items)\n .filter(f => f.inputType === 'accompanying_persons' && f.personsCountAgainstLimit)\n .map(apf => apf.htmlName);\n return allAccompanyingPersonFieldNames.reduce(\n (count, field) => count + formState.values[field]?.length || 0,\n 0\n );\n}\n\nfunction calculatePlaces(availablePlaces, maxPersons, personsInCurrentField, items, formState) {\n if (availablePlaces === null) {\n // Field does not count towards registration limit...\n if (!maxPersons) {\n // ...and has no person limit.\n return [null, Infinity];\n } else {\n // ...and has a person limit.\n return [personsInCurrentField, maxPersons];\n }\n } else {\n // Field counts towards registration limit...\n const personsInAllFieldsCount = countAllAccompanyingPersons(items, formState);\n\n if (!maxPersons || maxPersons >= availablePlaces - personsInAllFieldsCount) {\n // ...and has no person limit, or its person limit is greater than the registration limit.\n return [personsInAllFieldsCount, availablePlaces];\n } else {\n // ...and has a person limit lower than the registration limit.\n return [personsInCurrentField, maxPersons];\n }\n }\n}\n\nfunction AccompanyingPersonsComponent({\n id,\n value,\n disabled,\n onChange,\n price,\n availablePlaces,\n maxPersons,\n}) {\n const [operation, setOperation] = useState({type: null, person: null});\n const currency = useSelector(getCurrency);\n const totalPrice = (value.length * price).toFixed(2);\n const items = useSelector(getItems);\n const formState = useFormState();\n\n const [placesUsed, placesLimit] = calculatePlaces(\n availablePlaces,\n maxPersons,\n value.length,\n items,\n formState\n );\n\n const changeReducer = action => {\n switch (action.type) {\n case 'ADD':\n return [...value, {id: `new:${nanoid()}`, ...action.person}];\n case 'EDIT':\n return value.map(p => (p.id === action.person.id ? action.person : p));\n case 'REMOVE':\n return value.filter(p => p.id !== action.id);\n }\n };\n\n const handleAccompanyingPersonAdd = () => {\n setOperation({type: 'ADD', person: null});\n };\n\n const handleAccompanyingPersonEdit = personId => {\n setOperation({type: 'EDIT', person: value.find(p => p.id === personId)});\n };\n\n const handleAccompanyingPersonRemove = personId => {\n onChange(changeReducer({type: 'REMOVE', id: personId}));\n };\n\n const handleModalClose = () => {\n setOperation({type: null, person: null});\n };\n\n return (\n \n
    \n {!value.length && (\n
  • \n No accompanying persons registered\n
  • \n )}\n {value.map(person => (\n
  • \n \n {person.firstName} {person.lastName}\n \n
    \n handleAccompanyingPersonEdit(person.id)}\n />\n handleAccompanyingPersonRemove(person.id)}\n />\n
    \n
  • \n ))}\n
\n
\n \n Add accompanying person\n \n {!!price && (\n \n )}\n {placesLimit !== Infinity && (\n
\n \n
\n )}\n
\n {['ADD', 'EDIT'].includes(operation.type) && (\n {\n onChange(changeReducer({type: operation.type, person: formData}));\n handleModalClose();\n }}\n value={operation.person}\n onClose={handleModalClose}\n />\n )}\n
\n );\n}\n\nAccompanyingPersonsComponent.propTypes = {\n id: PropTypes.string.isRequired,\n value: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n firstName: PropTypes.string.isRequired,\n lastName: PropTypes.string.isRequired,\n })\n ).isRequired,\n disabled: PropTypes.bool,\n onChange: PropTypes.func.isRequired,\n price: PropTypes.number,\n availablePlaces: PropTypes.number,\n maxPersons: PropTypes.number,\n};\n\nAccompanyingPersonsComponent.defaultProps = {\n disabled: false,\n price: 0,\n availablePlaces: null,\n maxPersons: null,\n};\n\nexport default function AccompanyingPersonsInput({\n htmlId,\n htmlName,\n disabled,\n price,\n availablePlaces,\n maxPersons,\n}) {\n return (\n \n );\n}\n\nAccompanyingPersonsInput.propTypes = {\n htmlId: PropTypes.string.isRequired,\n htmlName: PropTypes.string.isRequired,\n disabled: PropTypes.bool,\n price: PropTypes.number,\n availablePlaces: PropTypes.number,\n maxPersons: PropTypes.number,\n};\n\nAccompanyingPersonsInput.defaultProps = {\n disabled: false,\n price: 0,\n availablePlaces: null,\n maxPersons: null,\n};\n\nexport const accompanyingPersonsSettingsInitialData = {\n maxPersons: 1,\n personsCountAgainstLimit: false,\n};\n\nexport function AccompanyingPersonsSettings() {\n return (\n <>\n val || ''}\n parse={val => +val || 0}\n />\n \n \n );\n}\n","// 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 PropTypes from 'prop-types';\nimport React from 'react';\nimport {useSelector} from 'react-redux';\nimport {Button, Label} from 'semantic-ui-react';\n\nimport {FinalDropdown, FinalField, FinalInput, validators as v} from 'indico/react/forms';\nimport {Translate} from 'indico/react/i18n';\n\nimport {getCurrency} from '../../form/selectors';\nimport {getFieldValue} from '../../form_submission/selectors';\n\nimport {PlacesLeft} from './PlacesLeftLabel';\n\nimport '../../../styles/regform.module.scss';\n\nfunction BooleanInputComponent({\n id,\n value,\n onChange,\n disabled,\n required,\n isPurged,\n price,\n placesLimit,\n placesUsed,\n}) {\n const currency = useSelector(getCurrency);\n const existingValue = useSelector(state => getFieldValue(state, id));\n\n const makeOnClick = newValue => () => {\n if (value === newValue && !required) {\n onChange(null);\n } else {\n onChange(newValue);\n }\n };\n\n return (\n
\n \n 0 && placesUsed >= placesLimit && !existingValue)}\n onClick={makeOnClick(true)}\n >\n Yes\n \n \n No\n \n \n {!!price && (\n \n )}\n {!!placesLimit && (\n
\n \n
\n )}\n
\n );\n}\n\nBooleanInputComponent.propTypes = {\n id: PropTypes.number.isRequired,\n value: PropTypes.bool,\n onChange: PropTypes.func.isRequired,\n disabled: PropTypes.bool.isRequired,\n required: PropTypes.bool.isRequired,\n isPurged: PropTypes.bool.isRequired,\n price: PropTypes.number.isRequired,\n placesLimit: PropTypes.number.isRequired,\n placesUsed: PropTypes.number.isRequired,\n};\n\nBooleanInputComponent.defaultProps = {\n value: null,\n};\n\nexport default function BooleanInput({\n id,\n htmlName,\n disabled,\n isRequired,\n isPurged,\n price,\n placesLimit,\n placesUsed,\n}) {\n const validateBoolean = value => {\n if (isRequired && value === null) {\n return Translate.string('This field is required.');\n }\n };\n\n return (\n \n );\n}\n\nBooleanInput.propTypes = {\n id: PropTypes.number.isRequired,\n htmlName: PropTypes.string.isRequired,\n disabled: PropTypes.bool,\n isRequired: PropTypes.bool,\n isPurged: PropTypes.bool.isRequired,\n price: PropTypes.number,\n placesLimit: PropTypes.number,\n placesUsed: PropTypes.number,\n};\n\nBooleanInput.defaultProps = {\n disabled: false,\n isRequired: false,\n price: 0,\n placesLimit: 0,\n placesUsed: 0,\n};\n\nexport function BooleanSettings() {\n const options = [\n {key: true, value: true, text: Translate.string('Yes')},\n {key: false, value: false, text: Translate.string('No')},\n ];\n return (\n <>\n (val === '' ? 0 : +val)}\n format={val => (val === 0 ? '' : val)}\n />\n \n \n );\n}\n","// 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 PropTypes from 'prop-types';\nimport React from 'react';\nimport {Field} from 'react-final-form';\nimport {useSelector} from 'react-redux';\nimport {Label} from 'semantic-ui-react';\n\nimport {FinalCheckbox, FinalInput, validators as v} from 'indico/react/forms';\nimport {Translate} from 'indico/react/i18n';\n\nimport {getCurrency} from '../../form/selectors';\nimport {getFieldValue} from '../../form_submission/selectors';\n\nimport {PlacesLeft} from './PlacesLeftLabel';\n\nimport styles from '../../../styles/regform.module.scss';\n\nexport default function CheckboxInput({\n id,\n htmlId,\n htmlName,\n disabled,\n title,\n isRequired,\n showAsRequired,\n price,\n placesLimit,\n placesUsed,\n retentionPeriodIcon,\n}) {\n const currency = useSelector(getCurrency);\n const existingValue = useSelector(state => getFieldValue(state, id));\n const checkboxId = `${htmlId}-checkbox`;\n\n return (\n 0 && placesUsed >= placesLimit && !existingValue)}\n required={isRequired}\n >\n {retentionPeriodIcon}\n {!!price && (\n \n {({input: {value: checked}}) => (\n \n )}\n \n )}\n {!!placesLimit && (\n
\n \n
\n )}\n \n );\n}\n\nCheckboxInput.propTypes = {\n id: PropTypes.number.isRequired,\n htmlId: PropTypes.string.isRequired,\n htmlName: PropTypes.string.isRequired,\n disabled: PropTypes.bool,\n title: PropTypes.string.isRequired,\n isRequired: PropTypes.bool.isRequired,\n showAsRequired: PropTypes.bool.isRequired,\n price: PropTypes.number,\n placesLimit: PropTypes.number.isRequired,\n placesUsed: PropTypes.number.isRequired,\n retentionPeriodIcon: PropTypes.element,\n};\n\nCheckboxInput.defaultProps = {\n disabled: false,\n price: 0,\n retentionPeriodIcon: null,\n};\n\nexport function CheckboxSettings() {\n return (\n (val === '' ? 0 : +val)}\n format={val => (val === 0 ? '' : val)}\n />\n );\n}\n","// 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 PropTypes from 'prop-types';\nimport React from 'react';\nimport {useSelector} from 'react-redux';\nimport {Dropdown} from 'semantic-ui-react';\n\nimport {FinalCheckbox, FinalField} from 'indico/react/forms';\nimport {Translate} from 'indico/react/i18n';\n\nimport '../../../styles/regform.module.scss';\n\nimport {getStaticData} from '../selectors';\n\nconst isoToFlag = country =>\n String.fromCodePoint(...country.split('').map(c => c.charCodeAt() + 0x1f1a5));\n\nfunction CountryInputComponent({value, onChange, disabled, choices, clearable}) {\n return (\n onChange(newValue)}\n options={choices.map(country => ({\n key: country.countryKey,\n value: country.countryKey,\n text: `${isoToFlag(country.countryKey)} ${country.caption}`,\n }))}\n />\n );\n}\n\nCountryInputComponent.propTypes = {\n value: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired,\n disabled: PropTypes.bool.isRequired,\n choices: PropTypes.arrayOf(PropTypes.objectOf(PropTypes.string)).isRequired,\n clearable: PropTypes.bool.isRequired,\n};\n\nexport default function CountryInput({htmlId, htmlName, disabled, isRequired, choices}) {\n return (\n x}\n />\n );\n}\n\nCountryInput.propTypes = {\n htmlId: PropTypes.string.isRequired,\n htmlName: PropTypes.string.isRequired,\n disabled: PropTypes.bool,\n isRequired: PropTypes.bool,\n choices: PropTypes.arrayOf(PropTypes.objectOf(PropTypes.string)).isRequired,\n};\n\nCountryInput.defaultProps = {\n disabled: false,\n isRequired: false,\n};\n\nexport function CountrySettings({htmlName}) {\n const {hasPredefinedAffiliations} = useSelector(getStaticData);\n if (htmlName !== 'country' || !hasPredefinedAffiliations) {\n return null;\n }\n return (\n \n );\n}\n\nCountrySettings.propTypes = {\n htmlName: PropTypes.string.isRequired,\n};\n","// 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 createDecorator from 'final-form-calculate';\nimport PropTypes from 'prop-types';\nimport TimePicker from 'rc-time-picker';\nimport React from 'react';\nimport {Field} from 'react-final-form';\nimport {Form, Input} from 'semantic-ui-react';\n\nimport {SingleDatePicker} from 'indico/react/components';\nimport {FinalDropdown, FinalField, parsers as p} from 'indico/react/forms';\nimport {Translate} from 'indico/react/i18n';\nimport {toMoment} from 'indico/utils/date';\n\nimport '../../../styles/regform.module.scss';\n\nfunction DateInputComponent({id, value, onChange, disabled, required, dateFormat, timeFormat}) {\n const dateValue = value.split('T')[0];\n const timeValue = value.includes('T') ? value.split('T')[1] : '';\n\n const handleDateChange = newDate => {\n const dateString = newDate ? newDate.toISOString().split('T')[0] : '';\n const timeString = timeFormat ? timeValue : '00:00:00';\n onChange(`${dateString}T${timeString}`);\n };\n const handleTimeChange = newTime =>\n onChange(newTime ? `${dateValue}T${newTime.format('HH:mm:00')}` : dateValue);\n\n return (\n \n \n false}\n verticalSpacing={10}\n enableOutsideDays\n />\n \n {timeFormat && (\n \n node}\n />\n \n )}\n \n );\n}\n\nDateInputComponent.propTypes = {\n id: PropTypes.string.isRequired,\n value: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired,\n disabled: PropTypes.bool.isRequired,\n required: PropTypes.bool.isRequired,\n dateFormat: PropTypes.oneOf([\n 'DD/MM/YYYY',\n 'DD.MM.YYYY',\n 'MM/DD/YYYY',\n 'MM.DD.YYYY',\n 'YYYY/MM/DD',\n 'YYYY.MM.DD',\n 'MM/YYYY',\n 'MM.YYYY',\n 'YYYY',\n ]).isRequired,\n timeFormat: PropTypes.oneOf(['12h', '24h']),\n};\n\nDateInputComponent.defaultProps = {\n timeFormat: null,\n};\n\nexport default function DateInput({\n htmlId,\n htmlName,\n disabled,\n isRequired,\n dateFormat,\n timeFormat,\n}) {\n const friendlyDateFormat = dateFormat.replace(\n /%([HMdmY])/g,\n (match, c) => ({H: 'HH', M: 'mm', d: 'DD', m: 'MM', Y: 'YYYY'}[c])\n );\n const validateDateTime = dateTime => {\n if (dateTime && !dateTime.match(/\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:00(.*)/)) {\n return Translate.string('The provided date is invalid.');\n }\n };\n\n if (dateFormat.includes('%d')) {\n return (\n \n );\n } else {\n const parseDate = date => {\n if (!date) {\n return date;\n }\n const regexps = {\n '%m/%Y': /^(?\\d{2})\\/(?\\d{4})$/,\n '%m.%Y': /^(?\\d{2})\\.(?\\d{4})$/,\n '%Y': /^(?\\d{4})$/,\n };\n const match = regexps[dateFormat].exec(date);\n const rv = match ? `${match.groups.year}-${match.groups.month ?? '01'}-01T00:00:00` : date;\n try {\n toMoment(rv, 'YYYY-MM-DDTHH:mm:ss', true);\n return rv;\n } catch (e) {\n return date;\n }\n };\n const formatDate = date => {\n if (!date || !date.includes('T')) {\n return date;\n }\n try {\n return toMoment(date, 'YYYY-MM-DDTHH:mm:ss', true).format(friendlyDateFormat);\n } catch (e) {\n return date;\n }\n };\n return (\n \n );\n }\n}\n\nDateInput.propTypes = {\n htmlId: PropTypes.string.isRequired,\n htmlName: PropTypes.string.isRequired,\n disabled: PropTypes.bool,\n isRequired: PropTypes.bool,\n dateFormat: PropTypes.oneOf([\n '%d/%m/%Y',\n '%d.%m.%Y',\n '%m/%d/%Y',\n '%m.%d.%Y',\n '%Y/%m/%d',\n '%Y.%m.%d',\n '%m/%Y',\n '%m.%Y',\n '%Y',\n ]).isRequired,\n timeFormat: PropTypes.oneOf(['12h', '24h']),\n};\n\nDateInput.defaultProps = {\n disabled: false,\n isRequired: false,\n timeFormat: null,\n};\n\nexport const dateSettingsFormDecorator = createDecorator({\n field: 'dateFormat',\n updates: dateFormat => {\n // clear the time format when it doesn't make sense for the selected date format\n if (!dateFormat.includes('%d')) {\n return {timeFormat: null};\n }\n return {};\n },\n});\n\nexport const dateSettingsInitialData = {\n dateFormat: '%d/%m/%Y',\n timeFormat: null,\n};\n\nexport function DateSettings() {\n const dateOptions = [\n '%d/%m/%Y',\n '%d.%m.%Y',\n '%m/%d/%Y',\n '%m.%d.%Y',\n '%Y/%m/%d',\n '%Y.%m.%d',\n '%m/%Y',\n '%m.%Y',\n '%Y',\n ].map(opt => ({\n key: opt,\n value: opt,\n text: opt.replace(\n /%([HMdmY])/g,\n (match, c) => ({H: 'hh', M: 'mm', d: 'DD', m: 'MM', Y: 'YYYY'}[c])\n ),\n }));\n const timeOptions = [\n {key: '12h', value: '12h', text: Translate.string('12 hours')},\n {key: '24h', value: '24h', text: Translate.string('24 hours')},\n ];\n return (\n \n \n \n {({input: {value: dateFormat}}) => (\n \n )}\n \n \n );\n}\n","// 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 validateEmailURL from 'indico-url:event_registration.check_email';\n\nimport PropTypes from 'prop-types';\nimport React, {useMemo, useState} from 'react';\nimport {useSelector} from 'react-redux';\nimport {Message} from 'semantic-ui-react';\n\nimport {FinalInput, validators as v} from 'indico/react/forms';\nimport {useDebouncedAsyncValidate} from 'indico/react/hooks';\nimport {Param, Translate} from 'indico/react/i18n';\nimport {indicoAxios, handleAxiosError} from 'indico/utils/axios';\n\nimport {getUpdateMode} from '../../form_submission/selectors';\nimport {getStaticData} from '../selectors';\n\nimport '../../../styles/regform.module.scss';\n\nexport default function EmailInput({htmlId, htmlName, disabled, isRequired}) {\n const isMainEmailField = htmlName === 'email';\n const [message, setMessage] = useState({status: '', message: '', forEmail: ''});\n const isUpdateMode = useSelector(getUpdateMode);\n const {eventId, regformId, registrationUuid, management} = useSelector(getStaticData);\n const invitationToken = useMemo(() => new URLSearchParams(location.search).get('invitation'), []);\n const url = useMemo(() => {\n const params = {event_id: eventId, reg_form_id: regformId};\n if (invitationToken) {\n params.invitation = invitationToken;\n }\n return validateEmailURL(params);\n }, [eventId, regformId, invitationToken]);\n const validateEmail = useDebouncedAsyncValidate(async email => {\n let msg, response;\n email = email.trim();\n if (!email) {\n // we disabled the regular required validator in order for this to always run\n msg = Translate.string('This field is required.');\n setMessage({\n status: 'error',\n forEmail: email,\n message: msg,\n });\n return msg;\n }\n setMessage({\n status: '',\n forEmail: email,\n message: Translate.string('Checking email address...'),\n });\n try {\n response = await indicoAxios.get(url, {\n params: isUpdateMode ? {email, management, update: registrationUuid} : {email, management},\n });\n } catch (error) {\n return handleAxiosError(error);\n }\n const data = response.data;\n const name = data.user ? $('', {text: data.user}).html() : null;\n if (data.conflict === 'email-already-registered') {\n msg = Translate.string('There is already a registration with this email address.');\n } else if (data.conflict === 'user-already-registered') {\n msg = Translate.string('The user associated with this email address is already registered.');\n } else if (data.conflict === 'no-user') {\n msg = Translate.string('There is no Indico user associated with this email address.');\n } else if (\n data.status === 'error' &&\n (data.conflict === 'email-other-user' || data.conflict === 'email-no-user')\n ) {\n msg = Translate.string('This email address is not associated with your Indico account.');\n } else if (data.conflict === 'email-other-user') {\n msg = (\n \n The registration will be re-associated to a different user (\n } value={name} />\n ).\n \n );\n } else if (data.conflict === 'email-no-user') {\n msg = (\n \n The registration will be disassociated from the current user (\n } value={name} />\n ).\n \n );\n } else if (data.conflict === 'email-invalid') {\n if (data.email_error === 'undeliverable') {\n msg = Translate.string('The domain used in the email address does not exist.');\n } else {\n msg = Translate.string('This email address is invalid.');\n }\n } else if (!data.user) {\n msg = Translate.string('The registration will not be associated with any Indico account.');\n } else if (data.self) {\n msg = Translate.string('The registration will be associated with your Indico account.');\n } else if (data.same) {\n msg = (\n \n The registration will remain associated with the Indico account{' '}\n } value={name} />.\n \n );\n } else {\n msg = (\n \n The registration will be associated with the Indico account{' '}\n } value={name} />.\n \n );\n }\n\n setMessage({status: data.status, message: msg, forEmail: email});\n if (data.status === 'error') {\n return msg;\n }\n }, 250);\n\n return (\n \n {isMainEmailField && !!message.forEmail && !!message.message && (\n \n {message.message}\n \n )}\n
\n );\n}\n\nEmailInput.propTypes = {\n htmlId: PropTypes.string.isRequired,\n htmlName: PropTypes.string.isRequired,\n disabled: PropTypes.bool,\n isRequired: PropTypes.bool.isRequired,\n};\n\nEmailInput.defaultProps = {\n disabled: false,\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"field-file-input\":\"events-registration-client-js-form-fields-___FileInput-module__field-file-input___UvzUm\",\"fileinput-label\":\"events-registration-client-js-form-fields-___FileInput-module__fileinput-label___mRG4Q\",\"fileinput-label-squarecorners\":\"events-registration-client-js-form-fields-___FileInput-module__fileinput-label-squarecorners___oXZ7p\"};","// 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 uploadFileURL from 'indico-url:event_registration.upload_registration_file';\n\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport {useSelector} from 'react-redux';\n\nimport {FinalSingleFileManager} from 'indico/react/components';\n\nimport {getUpdateMode} from '../../form_submission/selectors';\nimport {getStaticData} from '../selectors';\n\nimport '../../../styles/regform.module.scss';\nimport './FileInput.module.scss';\n\nexport default function FileInput({htmlName, disabled, isRequired}) {\n const {eventId, regformId, registrationUuid, fileData} = useSelector(getStaticData);\n const isUpdateMode = useSelector(getUpdateMode);\n const initialFileDetails = isUpdateMode ? fileData[htmlName] || null : null;\n\n const urlParams = {\n event_id: eventId,\n reg_form_id: regformId,\n };\n if (registrationUuid) {\n urlParams.token = registrationUuid;\n }\n\n return (\n
\n \n
\n );\n}\n\nFileInput.propTypes = {\n htmlName: PropTypes.string.isRequired,\n disabled: PropTypes.bool,\n isRequired: PropTypes.bool,\n};\n\nFileInput.defaultProps = {\n disabled: false,\n isRequired: false,\n};\n","// 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 PropTypes from 'prop-types';\nimport React from 'react';\n\nimport '../../../styles/regform.module.scss';\n\nexport default function LabelInput({title}) {\n return
{title}
;\n}\n\nLabelInput.propTypes = {\n title: PropTypes.string.isRequired,\n};\n","// 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 _ from 'lodash';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport {Field} from 'react-final-form';\nimport {useSelector} from 'react-redux';\nimport {Checkbox, Dropdown, Label} from 'semantic-ui-react';\n\nimport {FinalCheckbox, FinalField, FinalInput, validators as v} from 'indico/react/forms';\nimport {Translate, PluralTranslate} from 'indico/react/i18n';\n\nimport {getCurrency} from '../../form/selectors';\nimport {getFieldValue, getManagement, getPaid} from '../../form_submission/selectors';\n\nimport ChoiceLabel from './ChoiceLabel';\nimport {Choices, choiceShape} from './ChoicesSetup';\nimport {PlacesLeft} from './PlacesLeftLabel';\n\nimport '../../../styles/regform.module.scss';\nimport './table.module.scss';\n\nfunction MultiChoiceInputComponent({\n id,\n existingValue,\n value,\n onChange,\n onFocus,\n onBlur,\n disabled,\n choices,\n withExtraSlots,\n placesUsed,\n}) {\n const paid = useSelector(getPaid);\n const management = useSelector(getManagement);\n const currency = useSelector(getCurrency);\n\n const markTouched = () => {\n onFocus();\n onBlur();\n };\n\n const makeHandleChange = choice => () => {\n markTouched();\n if (value[choice.id]) {\n onChange(_.omit(value, choice.id));\n } else {\n onChange({...value, [choice.id]: +!value[choice.id]});\n }\n };\n const makeHandleSlotsChange = choice => (__, {value: newValue}) => {\n markTouched();\n if (!+newValue) {\n onChange(_.omit(value, choice.id));\n } else {\n onChange({...value, [choice.id]: +newValue});\n }\n };\n\n const formatPrice = choice => {\n const val = value[choice.id] || 0;\n return ((val === 0 ? 0 : choice.extraSlotsPay ? val : 1) * choice.price).toFixed(2);\n };\n\n const isPaidChoice = choice => choice.price > 0 && paid;\n const isPaidChoiceLocked = choice => !management && isPaidChoice(choice);\n\n return (\n \n \n {choices.map((choice, index) => {\n return (\n \n \n \n \n {withExtraSlots && (\n \n )}\n {withExtraSlots && (\n \n )}\n \n );\n })}\n \n
\n 0 &&\n (placesUsed[choice.id] || 0) >= choice.placesLimit &&\n !existingValue[choice.id])\n }\n checked={!!value[choice.id]}\n onChange={makeHandleChange(choice)}\n label={{\n children: (\n \n ),\n }}\n />\n \n {choice.isEnabled && !!choice.price && (\n \n )}\n \n {choice.placesLimit === 0 ? null : (\n \n )}\n \n {choice.isEnabled && (\n 0 &&\n (placesUsed[choice.id] || 0) - (existingValue[choice.id] || 0) >=\n choice.placesLimit)\n }\n value={value[choice.id] || 0}\n onChange={makeHandleSlotsChange(choice)}\n options={_.range(0, choice.maxExtraSlots + 2).map(i => ({\n key: i,\n value: i,\n text: i,\n disabled:\n choice.placesLimit > 0 &&\n (placesUsed[choice.id] || 0) - (existingValue[choice.id] || 0) + i >\n choice.placesLimit,\n }))}\n />\n )}\n \n {choice.isEnabled && !!choice.price && (\n \n )}\n
\n );\n}\n\nMultiChoiceInputComponent.propTypes = {\n id: PropTypes.string.isRequired,\n value: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n onFocus: PropTypes.func.isRequired,\n onBlur: PropTypes.func.isRequired,\n disabled: PropTypes.bool.isRequired,\n choices: PropTypes.arrayOf(PropTypes.shape(choiceShape)).isRequired,\n withExtraSlots: PropTypes.bool.isRequired,\n placesUsed: PropTypes.objectOf(PropTypes.number).isRequired,\n existingValue: PropTypes.objectOf(PropTypes.number).isRequired,\n};\n\nexport default function MultiChoiceInput({\n id,\n htmlId,\n htmlName,\n disabled,\n isRequired,\n choices,\n maxChoices,\n withExtraSlots,\n placesUsed,\n}) {\n const existingValue = useSelector(state => getFieldValue(state, id)) || {};\n return (\n {\n if (maxChoices && _.keys(value).length > maxChoices) {\n return PluralTranslate.string(\n 'At most {n} option can be selected',\n 'At most {n} options can be selected',\n maxChoices,\n {n: maxChoices}\n );\n }\n }}\n />\n );\n}\n\nMultiChoiceInput.propTypes = {\n id: PropTypes.number.isRequired,\n htmlId: PropTypes.string.isRequired,\n htmlName: PropTypes.string.isRequired,\n disabled: PropTypes.bool,\n isRequired: PropTypes.bool,\n choices: PropTypes.arrayOf(PropTypes.shape(choiceShape)).isRequired,\n maxChoices: PropTypes.number,\n withExtraSlots: PropTypes.bool,\n placesUsed: PropTypes.objectOf(PropTypes.number).isRequired,\n};\n\nMultiChoiceInput.defaultProps = {\n disabled: false,\n isRequired: false,\n maxChoices: null,\n withExtraSlots: false,\n};\n\nexport const multiChoiceSettingsInitialData = {\n choices: [],\n withExtraSlots: false,\n};\n\nexport function MultiChoiceSettings() {\n return (\n <>\n \n {({input: {value}}) => {\n const min = value.length > 0 ? 1 : 0;\n const max = value.length > 0 ? value.length : 0;\n return (\n \n );\n }}\n \n \n \n {({input: {value: withExtraSlots}}) => (\n \n )}\n \n \n );\n}\n","// 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 PropTypes from 'prop-types';\nimport React from 'react';\nimport {useSelector} from 'react-redux';\nimport {Form, Label} from 'semantic-ui-react';\n\nimport {FinalInput, FinalField, validators as v, parsers as p} from 'indico/react/forms';\nimport {Translate} from 'indico/react/i18n';\n\nimport {getCurrency} from '../../form/selectors';\n\nimport '../../../styles/regform.module.scss';\n\nfunction NumberInputComponent({id, value, onChange, disabled, price, minValue, maxValue}) {\n const currency = useSelector(getCurrency);\n const total = (value * price).toFixed(2);\n\n return (\n
\n onChange(evt.target.value ? +evt.target.value : null)}\n />\n {!!price && (\n \n )}\n
\n );\n}\n\nNumberInputComponent.propTypes = {\n id: PropTypes.string.isRequired,\n value: PropTypes.number,\n onChange: PropTypes.func.isRequired,\n disabled: PropTypes.bool.isRequired,\n price: PropTypes.number.isRequired,\n minValue: PropTypes.number.isRequired,\n maxValue: PropTypes.number,\n};\n\nNumberInputComponent.defaultProps = {\n value: null,\n maxValue: null,\n};\n\nexport default function NumberInput({\n htmlId,\n htmlName,\n disabled,\n isRequired,\n price,\n minValue,\n maxValue,\n}) {\n const validate = isRequired\n ? v.chain(v.required, v.number(), v.range(minValue, maxValue || Infinity))\n : v.chain(v.optional(), v.number(), v.range(minValue, maxValue || Infinity));\n return (\n \n );\n}\n\nNumberInput.propTypes = {\n htmlId: PropTypes.string.isRequired,\n htmlName: PropTypes.string.isRequired,\n disabled: PropTypes.bool,\n isRequired: PropTypes.bool,\n price: PropTypes.number,\n minValue: PropTypes.number,\n maxValue: PropTypes.number,\n};\n\nNumberInput.defaultProps = {\n disabled: false,\n isRequired: false,\n price: 0,\n minValue: 0,\n maxValue: 0,\n};\n\nexport function NumberSettings() {\n return (\n \n val || ''}\n parse={val => +val || 0}\n fluid\n />\n val || ''}\n parse={val => +val || 0}\n fluid\n />\n \n );\n}\n\nexport function numberSettingsFormValidator({minValue, maxValue}) {\n if (minValue && maxValue && minValue > maxValue) {\n const msg = Translate.string('The minimum value cannot be greater than the maximum value.');\n return {\n minValue: msg,\n maxValue: msg,\n };\n }\n}\n","// 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 PropTypes from 'prop-types';\nimport React from 'react';\n\nimport {FinalInput} from 'indico/react/forms';\n\nimport '../../../styles/regform.module.scss';\n\nexport default function PhoneInput({htmlId, htmlName, isRequired, disabled}) {\n return (\n \n );\n}\n\nPhoneInput.propTypes = {\n htmlId: PropTypes.string.isRequired,\n htmlName: PropTypes.string.isRequired,\n isRequired: PropTypes.bool.isRequired,\n disabled: PropTypes.bool,\n};\n\nPhoneInput.defaultProps = {\n disabled: false,\n};\n","// 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 managementPreviewURL from 'indico-url:event_registration.manage_registration_file';\nimport registrantPreviewURL from 'indico-url:event_registration.registration_picture';\nimport uploadURL from 'indico-url:event_registration.upload_registration_file';\n\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport {useSelector} from 'react-redux';\n\nimport {FinalPictureManager} from 'indico/react/components';\nimport {FinalInput, validators as v} from 'indico/react/forms';\nimport {Translate} from 'indico/react/i18n';\n\nimport {getManagement} from '../../form_submission/selectors';\nimport {getStaticData} from '../selectors';\n\nimport '../../../styles/regform.module.scss';\nimport './FileInput.module.scss';\n\nexport default function PictureInput({htmlName, disabled, isRequired, minPictureSize}) {\n const {eventId, regformId, registrationUuid, fileData} = useSelector(getStaticData);\n const initialPictureDetails = fileData ? fileData[htmlName] || null : null;\n const isManagement = useSelector(getManagement);\n const previewURL = isManagement ? managementPreviewURL : registrantPreviewURL;\n const uploadUrlParams = {\n event_id: eventId,\n reg_form_id: regformId,\n };\n if (registrationUuid) {\n uploadUrlParams.token = registrationUuid;\n }\n const previewUrlParams = initialPictureDetails ? initialPictureDetails.locator : null;\n\n return (\n
\n \n
\n );\n}\n\nPictureInput.propTypes = {\n htmlName: PropTypes.string.isRequired,\n disabled: PropTypes.bool,\n isRequired: PropTypes.bool,\n minPictureSize: PropTypes.number,\n};\n\nPictureInput.defaultProps = {\n disabled: false,\n isRequired: false,\n minPictureSize: null,\n};\n\nexport function PictureSettings() {\n return (\n val || ''}\n parse={val => +val || 0}\n />\n );\n}\n","// 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 createDecorator from 'final-form-calculate';\nimport _ from 'lodash';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport {Field} from 'react-final-form';\nimport {useSelector} from 'react-redux';\nimport {Form, Label, Dropdown} from 'semantic-ui-react';\n\nimport {FinalCheckbox, FinalDropdown, FinalField, parsers as p} from 'indico/react/forms';\nimport {Translate} from 'indico/react/i18n';\n\nimport {getCurrency} from '../../form/selectors';\nimport {getFieldValue, getManagement, getPaid} from '../../form_submission/selectors';\n\nimport ChoiceLabel from './ChoiceLabel';\nimport {Choices, choiceShape} from './ChoicesSetup';\nimport {PlacesLeft} from './PlacesLeftLabel';\n\nimport '../../../styles/regform.module.scss';\nimport './table.module.scss';\n\nfunction SingleChoiceDropdown({\n id,\n existingValue,\n value,\n onChange,\n disabled,\n isRequired,\n isPurged,\n choices,\n withExtraSlots,\n placesUsed,\n}) {\n const paid = useSelector(getPaid);\n const management = useSelector(getManagement);\n const currency = useSelector(getCurrency);\n const selectedChoice = choices.find(c => c.id in value) || {};\n\n const isPaidChoice = choice => choice.price > 0 && paid;\n const isPaidChoiceLocked = choice => !management && isPaidChoice(choice);\n\n let extraSlotsDropdown = null;\n if (withExtraSlots && selectedChoice && selectedChoice.maxExtraSlots > 0) {\n const options = _.range(1, selectedChoice.maxExtraSlots + 2).map(i => ({\n key: i,\n value: i,\n text: i,\n disabled:\n selectedChoice.placesLimit > 0 &&\n (placesUsed[selectedChoice.id] || 0) - (existingValue[selectedChoice.id] || 0) + i >\n selectedChoice.placesLimit,\n }));\n extraSlotsDropdown = (\n 0 &&\n (placesUsed[selectedChoice.id] || 0) - (existingValue[selectedChoice.id] || 0) >=\n selectedChoice.placesLimit)\n }\n value={value[selectedChoice.id]}\n onChange={(_evt, data) => onChange({[selectedChoice.id]: data.value})}\n fluid\n />\n );\n }\n\n const options = choices.map(c => ({\n key: c.id,\n value: c.id,\n disabled:\n !c.isEnabled ||\n isPaidChoiceLocked(c) ||\n (c.placesLimit > 0 && (placesUsed[c.id] || 0) >= c.placesLimit && !existingValue[c.id]),\n text: c.caption,\n content: (\n
\n
\n \n
\n
\n {!!c.price && (\n \n )}\n {c.placesLimit === 0 ? null : (\n \n )}\n
\n
\n ),\n }));\n\n return (\n \n \n onChange(data.value ? {[data.value]: 1} : {})}\n clearable={!isRequired}\n search\n selectOnNavigation={false}\n selectOnBlur={false}\n />\n \n {extraSlotsDropdown}\n {extraSlotsDropdown && !!selectedChoice.price && (\n \n )}\n \n );\n}\n\nSingleChoiceDropdown.propTypes = {\n id: PropTypes.string.isRequired,\n value: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n disabled: PropTypes.bool.isRequired,\n isRequired: PropTypes.bool.isRequired,\n isPurged: PropTypes.bool.isRequired,\n choices: PropTypes.arrayOf(PropTypes.shape(choiceShape)).isRequired,\n withExtraSlots: PropTypes.bool.isRequired,\n placesUsed: PropTypes.objectOf(PropTypes.number).isRequired,\n existingValue: PropTypes.objectOf(PropTypes.number).isRequired,\n};\n\nfunction SingleChoiceRadioGroup({\n id,\n existingValue,\n value,\n onChange,\n disabled,\n isRequired,\n isPurged,\n choices,\n withExtraSlots,\n placesUsed,\n}) {\n const paid = useSelector(getPaid);\n const management = useSelector(getManagement);\n const currency = useSelector(getCurrency);\n const selectedChoice = choices.find(c => c.id in value) || {id: ''};\n const radioChoices = [...choices];\n if (!isRequired) {\n radioChoices.unshift({id: '', isEnabled: true, caption: Translate.string('None')});\n }\n\n const handleChange = newValue => {\n if (newValue === '') {\n onChange({});\n } else {\n onChange({[newValue]: 1});\n }\n };\n\n const isChecked = currentChoice => currentChoice.id === selectedChoice.id;\n\n const isPaidChoice = choice => choice.price > 0 && paid;\n const isPaidChoiceLocked = choice => !management && isPaidChoice(choice);\n\n return (\n \n \n {radioChoices.map((c, index) => {\n return (\n \n \n \n \n {withExtraSlots && !!c.maxExtraSlots && selectedChoice.id === c.id && (\n <>\n \n \n \n )}\n \n );\n })}\n \n
\n \n ),\n }}\n key={c.id}\n value={c.id}\n disabled={\n !c.isEnabled ||\n disabled ||\n isPaidChoiceLocked(c) ||\n (c.placesLimit > 0 &&\n (placesUsed[c.id] || 0) - (existingValue[c.id] || 0) >= c.placesLimit)\n }\n checked={!isPurged && isChecked(c)}\n onChange={() => handleChange(c.id)}\n />\n \n {c.isEnabled && !!c.price && (\n \n )}\n \n {c.id !== '' && c.placesLimit !== 0 && (\n \n )}\n \n {c.isEnabled && (\n 0 &&\n (placesUsed[c.id] || 0) - (existingValue[c.id] || 0) >= c.placesLimit)\n }\n value={value[selectedChoice.id]}\n onChange={(e, data) => onChange({[selectedChoice.id]: data.value})}\n options={_.range(1, c.maxExtraSlots + 2).map(i => ({\n key: i,\n value: i,\n text: i,\n disabled:\n selectedChoice.placesLimit > 0 &&\n (placesUsed[selectedChoice.id] || 0) -\n (existingValue[selectedChoice.id] || 0) +\n i >\n selectedChoice.placesLimit,\n }))}\n />\n )}\n \n {c.isEnabled && !!c.price && (\n \n )}\n
\n );\n}\n\nSingleChoiceRadioGroup.propTypes = {\n id: PropTypes.string.isRequired,\n value: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n disabled: PropTypes.bool.isRequired,\n isRequired: PropTypes.bool.isRequired,\n isPurged: PropTypes.bool.isRequired,\n choices: PropTypes.arrayOf(PropTypes.shape(choiceShape)).isRequired,\n withExtraSlots: PropTypes.bool.isRequired,\n placesUsed: PropTypes.objectOf(PropTypes.number).isRequired,\n existingValue: PropTypes.objectOf(PropTypes.number).isRequired,\n};\n\nfunction SingleChoiceInputComponent({\n id,\n existingValue,\n value,\n onChange,\n disabled,\n isRequired,\n isPurged,\n itemType,\n choices,\n withExtraSlots,\n placesUsed,\n}) {\n let component = null;\n if (itemType === 'dropdown') {\n component = (\n \n );\n } else if (itemType === 'radiogroup') {\n component = (\n \n );\n } else {\n return `ERROR: Unknown type ${itemType}`;\n }\n\n return component;\n}\n\nSingleChoiceInputComponent.propTypes = {\n id: PropTypes.string.isRequired,\n disabled: PropTypes.bool.isRequired,\n isRequired: PropTypes.bool.isRequired,\n isPurged: PropTypes.bool.isRequired,\n itemType: PropTypes.oneOf(['dropdown', 'radiogroup']).isRequired,\n choices: PropTypes.arrayOf(PropTypes.shape(choiceShape)).isRequired,\n withExtraSlots: PropTypes.bool.isRequired,\n placesUsed: PropTypes.objectOf(PropTypes.number).isRequired,\n existingValue: PropTypes.objectOf(PropTypes.number).isRequired,\n};\n\nexport default function SingleChoiceInput({\n id,\n htmlId,\n htmlName,\n disabled,\n isRequired,\n isPurged,\n itemType,\n choices,\n withExtraSlots,\n placesUsed,\n}) {\n const existingValue = useSelector(state => getFieldValue(state, id)) || {};\n return (\n v || {}}\n required={isRequired}\n isRequired={isRequired}\n validate={v =>\n isRequired && (!v || !Object.keys(v).length)\n ? Translate.string('This field is required.')\n : undefined\n }\n disabled={disabled}\n isPurged={isPurged}\n itemType={itemType}\n choices={choices}\n withExtraSlots={withExtraSlots}\n placesUsed={placesUsed}\n existingValue={existingValue}\n isEqual={_.isEqual}\n />\n );\n}\n\nSingleChoiceInput.propTypes = {\n id: PropTypes.number.isRequired,\n htmlId: PropTypes.string.isRequired,\n htmlName: PropTypes.string.isRequired,\n disabled: PropTypes.bool,\n isRequired: PropTypes.bool,\n isPurged: PropTypes.bool.isRequired,\n itemType: PropTypes.oneOf(['dropdown', 'radiogroup']).isRequired,\n choices: PropTypes.arrayOf(PropTypes.shape(choiceShape)).isRequired,\n withExtraSlots: PropTypes.bool,\n placesUsed: PropTypes.objectOf(PropTypes.number).isRequired,\n};\n\nSingleChoiceInput.defaultProps = {\n disabled: false,\n isRequired: false,\n withExtraSlots: false,\n};\n\nexport const singleChoiceSettingsFormDecorator = createDecorator({\n field: 'choices',\n updates: (choices, __, {defaultItem}) => {\n // clear the default item when it's removed from the choices or disabled\n if (!choices.some(c => c.id === defaultItem && c.isEnabled)) {\n return {defaultItem: null};\n }\n return {};\n },\n});\n\nexport const singleChoiceSettingsInitialData = {\n choices: [],\n itemType: 'dropdown',\n defaultItem: null,\n withExtraSlots: false,\n};\n\nexport function SingleChoiceSettings() {\n return (\n <>\n \n \n {({input: {value: choices}}) => (\n c.isEnabled)\n .map(c => ({key: c.id, value: c.id, text: c.caption}))}\n disabled={!choices.some(c => c.isEnabled)}\n parse={p.nullIfEmpty}\n selection\n />\n )}\n \n \n \n {({input: {value: withExtraSlots}}) => (\n \n )}\n \n \n );\n}\n","// 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\nexport function mapPropsToAttributes(props, mapping, defaults) {\n const inputProps = {};\n Object.entries(mapping).forEach(([prop, attr]) => {\n const val = props[prop];\n if (val === null && prop in defaults) {\n inputProps[attr] = defaults[prop];\n } else if (val > 0) {\n inputProps[attr] = val;\n }\n });\n return inputProps;\n}\n","// 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 PropTypes from 'prop-types';\nimport React from 'react';\nimport {Form} from 'semantic-ui-react';\n\nimport {FinalInput, FinalTextArea, validators as v} from 'indico/react/forms';\nimport {Translate} from 'indico/react/i18n';\n\nimport '../../../styles/regform.module.scss';\n\nimport {mapPropsToAttributes} from './util';\n\nconst attributeMap = {\n numberOfRows: 'rows',\n};\n\nexport default function TextAreaInput({htmlId, htmlName, disabled, title, isRequired, ...props}) {\n const inputProps = mapPropsToAttributes(props, attributeMap, TextAreaInput.defaultProps);\n return (\n \n );\n}\n\nTextAreaInput.propTypes = {\n htmlId: PropTypes.string.isRequired,\n htmlName: PropTypes.string.isRequired,\n disabled: PropTypes.bool,\n numberOfRows: PropTypes.number,\n title: PropTypes.string.isRequired,\n isRequired: PropTypes.bool.isRequired,\n};\n\nTextAreaInput.defaultProps = {\n disabled: false,\n numberOfRows: 2,\n};\n\nexport function TextAreaSettings() {\n return (\n \n \n \n );\n}\n","// 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 PropTypes from 'prop-types';\nimport React from 'react';\nimport {Form} from 'semantic-ui-react';\n\nimport {FinalInput, validators as v} from 'indico/react/forms';\nimport {Translate} from 'indico/react/i18n';\n\nimport {mapPropsToAttributes} from './util';\n\nimport '../../../styles/regform.module.scss';\n\nconst attributeMap = {minLength: 'minLength', maxLength: 'maxLength'};\n\nexport default function TextInput({htmlId, htmlName, disabled, title, isRequired, ...props}) {\n const inputProps = mapPropsToAttributes(props, attributeMap, TextInput.defaultProps);\n return (\n \n );\n}\n\nTextInput.propTypes = {\n htmlId: PropTypes.string.isRequired,\n htmlName: PropTypes.string.isRequired,\n disabled: PropTypes.bool,\n title: PropTypes.string.isRequired,\n isRequired: PropTypes.bool.isRequired,\n minLength: PropTypes.number,\n maxLength: PropTypes.number,\n};\n\nTextInput.defaultProps = {\n disabled: false,\n minLength: 0,\n maxLength: 0,\n};\n\nexport function TextSettings() {\n return (\n \n {\n if (val === 0) {\n return v.STOP_VALIDATION;\n } else if (val === 1) {\n return Translate.string(\n 'If you want to make the field required, select the \"Required field\" checkbox. The minimum length only applies if the field is not empty.'\n );\n }\n }, v.min(2))\n )}\n format={val => val || ''}\n parse={val => +val || 0}\n fluid\n />\n val || ''}\n parse={val => +val || 0}\n fluid\n />\n \n );\n}\n\nexport function textSettingsFormValidator({minLength, maxLength}) {\n if (minLength && maxLength && minLength > maxLength) {\n const msg = Translate.string('The minimum length cannot be greater than the maximum length.');\n return {\n minLength: msg,\n maxLength: msg,\n };\n }\n}\n","// 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 {Translate} from 'indico/react/i18n';\nimport {getPluginObjects} from 'indico/utils/plugins';\n\nimport AccommodationInput, {\n AccommodationSettings,\n accommodationSettingsInitialData,\n accommodationSettingsFormValidator,\n} from './AccommodationInput';\nimport AccompanyingPersonsInput, {\n AccompanyingPersonsSettings,\n accompanyingPersonsSettingsInitialData,\n} from './AccompanyingPersonsInput';\nimport BooleanInput, {BooleanSettings} from './BooleanInput';\nimport CheckboxInput, {CheckboxSettings} from './CheckboxInput';\nimport {choiceFieldsSettingsFormDecorator} from './ChoicesSetup';\nimport CountryInput, {CountrySettings} from './CountryInput';\nimport DateInput, {\n DateSettings,\n dateSettingsFormDecorator,\n dateSettingsInitialData,\n} from './DateInput';\nimport EmailInput from './EmailInput';\nimport FileInput from './FileInput';\nimport LabelInput from './LabelInput';\nimport MultiChoiceInput, {\n MultiChoiceSettings,\n multiChoiceSettingsInitialData,\n} from './MultiChoiceInput';\nimport NumberInput, {NumberSettings, numberSettingsFormValidator} from './NumberInput';\nimport PhoneInput from './PhoneInput';\nimport PictureInput, {PictureSettings} from './PictureInput';\nimport SingleChoiceInput, {\n SingleChoiceSettings,\n singleChoiceSettingsFormDecorator,\n singleChoiceSettingsInitialData,\n} from './SingleChoiceInput';\nimport TextAreaInput, {TextAreaSettings} from './TextAreaInput';\nimport TextInput, {TextSettings, textSettingsFormValidator} from './TextInput';\n\n/*\nAvailable keys:\n- title: required; used to show the field type when adding a new field\n- icon: required; used in the add field dropdown (this uses an indico icon, not a SUI icon)\n- inputComponent: required; the component used to render the field\n- settingsComponent: optional; used if the field has custom settings\n- settingsModalSize: optional; used if the field has settings which benefit\n from a larger modal size than \"tiny\"\n- settingsFormDecorators: optional; the final-form decorators to apply to the\n settings form\n- settingsFormValidator: optional, a function for final-form's form-level validation\n- settingsFormInitialData: optional; initial data to use when creating a new\n field in case some of the settings need to be initialized. if it's a callable, the\n staticData from the state will be passed to it\n- noLabel: optional; render the field without a label on the left\n- noRequired: optional; hide the option to make the field required\n- alwaysRequired: optional; always display the field as required\n- hasPrice: optional; show price field if the whole field can have a price attached\n- noRetentionPeriod: optional; hide the retention period setting\n- renderAsFieldset: optional; whether the field should be rendered in a fieldset; applies\n to fields that use multiple controls, like radios, checkboxes, multi-button controls\n*/\n\nconst fieldRegistry = {\n label: {\n title: Translate.string('Label'),\n inputComponent: LabelInput,\n noRequired: true,\n noRetentionPeriod: true,\n noLabel: true,\n icon: 'tag',\n customFormItem: true,\n },\n text: {\n title: Translate.string('Text field'),\n inputComponent: TextInput,\n settingsComponent: TextSettings,\n settingsFormValidator: textSettingsFormValidator,\n icon: 'textfield',\n },\n textarea: {\n title: Translate.string('Text area'),\n inputComponent: TextAreaInput,\n settingsComponent: TextAreaSettings,\n icon: 'textarea',\n },\n number: {\n title: Translate.string('Number'),\n inputComponent: NumberInput,\n settingsComponent: NumberSettings,\n settingsFormValidator: numberSettingsFormValidator,\n hasPrice: true,\n icon: 'seven-segment9',\n },\n checkbox: {\n title: Translate.string('Checkbox'),\n inputComponent: CheckboxInput,\n settingsComponent: CheckboxSettings,\n noLabel: true,\n hasPrice: true,\n icon: 'checkbox-checked',\n customFormItem: true,\n },\n date: {\n title: Translate.string('Date'),\n inputComponent: DateInput,\n settingsComponent: DateSettings,\n settingsFormDecorators: [dateSettingsFormDecorator],\n settingsFormInitialData: dateSettingsInitialData,\n icon: 'calendar',\n },\n bool: {\n title: Translate.string('Yes/No'),\n inputComponent: BooleanInput,\n settingsComponent: BooleanSettings,\n hasPrice: true,\n icon: 'switchon',\n renderAsFieldset: true,\n },\n phone: {\n title: Translate.string('Phone'),\n inputComponent: PhoneInput,\n icon: 'phone',\n },\n country: {\n title: Translate.string('Country'),\n inputComponent: CountryInput,\n settingsComponent: CountrySettings,\n icon: 'earth',\n },\n file: {\n title: Translate.string('File'),\n inputComponent: FileInput,\n icon: 'upload',\n renderAsFieldset: true,\n },\n email: {\n title: Translate.string('Email'),\n inputComponent: EmailInput,\n icon: 'mail',\n },\n single_choice: {\n title: Translate.string('Single Choice'),\n inputComponent: SingleChoiceInput,\n settingsComponent: SingleChoiceSettings,\n settingsModalSize: 'small',\n settingsFormDecorators: [choiceFieldsSettingsFormDecorator, singleChoiceSettingsFormDecorator],\n settingsFormInitialData: singleChoiceSettingsInitialData,\n icon: 'dropmenu',\n renderAsFieldset: true,\n },\n multi_choice: {\n title: Translate.string('Multiple Choice'),\n inputComponent: MultiChoiceInput,\n settingsComponent: MultiChoiceSettings,\n settingsModalSize: 'small',\n settingsFormDecorators: [choiceFieldsSettingsFormDecorator],\n settingsFormInitialData: multiChoiceSettingsInitialData,\n icon: 'list',\n renderAsFieldset: true,\n },\n accommodation: {\n title: Translate.string('Accommodation'),\n inputComponent: AccommodationInput,\n settingsComponent: AccommodationSettings,\n settingsModalSize: 'small',\n settingsFormDecorators: [choiceFieldsSettingsFormDecorator],\n settingsFormInitialData: accommodationSettingsInitialData,\n settingsFormValidator: accommodationSettingsFormValidator,\n noRequired: true,\n alwaysRequired: true,\n icon: 'home',\n renderAsFieldset: true,\n },\n accompanying_persons: {\n title: Translate.string('Accompanying Persons'),\n inputComponent: AccompanyingPersonsInput,\n settingsComponent: AccompanyingPersonsSettings,\n settingsFormInitialData: accompanyingPersonsSettingsInitialData,\n settingsModalSize: 'tiny',\n noRequired: true,\n hasPrice: true,\n icon: 'user',\n renderAsFieldset: true,\n },\n picture: {\n title: Translate.string('Picture'),\n inputComponent: PictureInput,\n icon: 'image',\n settingsComponent: PictureSettings,\n },\n};\n\nexport function getFieldRegistry() {\n const pluginFields = Object.fromEntries(\n getPluginObjects('regformCustomFields').map(({name, ...rest}) => [name, rest])\n );\n if (Object.keys(pluginFields).some(x => !x.startsWith('ext__'))) {\n throw new Error('Field names from plugins must begin with `ext__`');\n }\n return {...fieldRegistry, ...pluginFields};\n}\n","// 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 PropTypes from 'prop-types';\nimport React from 'react';\nimport {useSelector} from 'react-redux';\nimport {Form, Icon, Popup} from 'semantic-ui-react';\n\nimport {PluralTranslate, Translate} from 'indico/react/i18n';\nimport {Markdown, toClasses} from 'indico/react/util';\nimport {renderPluginComponents} from 'indico/utils/plugins';\n\nimport {getManagement, getUpdateMode, isPaidItemLocked} from '../form_submission/selectors';\n\nimport {getFieldRegistry} from './fields/registry';\n\nimport '../../styles/regform.module.scss';\n\nfunction PaidItemLocked({management}) {\n const lockedMsg = (\n This field is locked since changing it could trigger a price change.\n );\n const msg = !management ? (\n lockedMsg\n ) : (\n <>\n {lockedMsg} As a manager you can modify it nonetheless.\n \n );\n\n return }>{msg};\n}\n\nPaidItemLocked.propTypes = {\n management: PropTypes.bool.isRequired,\n};\n\nfunction PurgedItemLocked({isUpdateMode}) {\n const purgedMsg = This field is locked due to an expired retention period.;\n const msg = !isUpdateMode ? (\n purgedMsg\n ) : (\n <>\n {purgedMsg} The associated registration data has been deleted.\n \n );\n return }>{msg};\n}\n\nPurgedItemLocked.propTypes = {\n isUpdateMode: PropTypes.bool.isRequired,\n};\n\nfunction ItemLocked({reason}) {\n return }>{reason};\n}\n\nItemLocked.propTypes = {\n reason: PropTypes.string.isRequired,\n};\n\nexport default function FormItem({\n title,\n description,\n retentionPeriod,\n inputType,\n isEnabled,\n isRequired,\n isPurged,\n lockedReason,\n sortHandle,\n setupMode,\n setupActions,\n ...rest\n}) {\n // TODO move outside like with setupActions etc?\n const paidItemLocked = useSelector(state => isPaidItemLocked(state, rest.id));\n const isManagement = useSelector(getManagement);\n const isUpdateMode = useSelector(getUpdateMode);\n\n const fieldRegistry = getFieldRegistry();\n const meta = fieldRegistry[inputType] || {};\n const InputComponent = meta.inputComponent;\n const inputProps = {title, description, isEnabled, ...rest};\n const showPurged = !setupMode && isPurged;\n const disabled = !isEnabled || showPurged || !!lockedReason || (paidItemLocked && !isManagement);\n\n let retentionPeriodIcon = null;\n if (setupMode && retentionPeriod) {\n retentionPeriodIcon = (\n \n );\n }\n\n const showAsRequired = meta.alwaysRequired || isRequired;\n const inputRequired = !isManagement && showAsRequired;\n const htmlId = `input-${inputProps.id}`;\n\n const fieldControls =\n InputComponent && !meta.customFormItem ? (\n <>\n {retentionPeriodIcon}\n \n \n ) : null;\n\n return (\n \n {sortHandle}\n
\n {InputComponent ? (\n meta.customFormItem ? (\n \n ) : (\n \n {meta.renderAsFieldset ? (\n
\n \n {title}\n \n {fieldControls}\n
\n ) : (\n <>\n \n {title}\n \n {fieldControls}\n \n )}\n
\n )\n ) : (\n `Unknown input type: ${inputType}`\n )}\n {description && (\n
\n {description}\n
\n )}\n {renderPluginComponents(`regform-${inputType}-field-item`, inputProps)}\n
\n {setupActions &&
{setupActions}
}\n {lockedReason && }\n {!lockedReason && showPurged && }\n {!lockedReason && !showPurged && paidItemLocked && (\n \n )}\n \n );\n}\n\nFormItem.propTypes = {\n id: PropTypes.number.isRequired,\n title: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired,\n isEnabled: PropTypes.bool.isRequired,\n position: PropTypes.number.isRequired,\n /** Whether the field is required during registration */\n isRequired: PropTypes.bool,\n /** Whether the field's registration data have been deleted due to an expired retention period */\n isPurged: PropTypes.bool.isRequired,\n /** If the field is locked for some external reason, the reason for it */\n lockedReason: PropTypes.string,\n /** The retention period of the field's data in weeks */\n retentionPeriod: PropTypes.number,\n /** Whether the field is a special \"personal data\" field */\n fieldIsPersonalData: PropTypes.bool,\n /** Whether the field cannot be disabled */\n fieldIsRequired: PropTypes.bool,\n /** The HTML input name of the field (empty in case of static text) */\n htmlName: PropTypes.string,\n /** The widget type of the field */\n inputType: PropTypes.string.isRequired,\n /** The handle to sort the section during setup */\n sortHandle: PropTypes.node,\n /** Whether the field is being shown during form setup */\n setupMode: PropTypes.bool,\n /** Actions available during form setup */\n setupActions: PropTypes.node,\n // ... and various other field-specific keys (billing, limited-places, other config)\n};\n\nFormItem.defaultProps = {\n fieldIsPersonalData: false,\n fieldIsRequired: false,\n isRequired: false,\n lockedReason: '',\n retentionPeriod: null,\n htmlName: null,\n sortHandle: null,\n setupMode: false,\n setupActions: null,\n};\n","// 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 PropTypes from 'prop-types';\nimport React from 'react';\nimport {Form, Popup} from 'semantic-ui-react';\n\nimport {Translate} from 'indico/react/i18n';\nimport {Markdown} from 'indico/react/util';\n\nimport FormItem from './FormItem';\n\nimport '../../styles/regform.module.scss';\n\nexport default function FormSection({\n title,\n description,\n isManagerOnly,\n items,\n sortHandle,\n itemComponent: ItemComponent,\n itemProps,\n setupMode,\n setupActions,\n}) {\n const enabledFields = items.filter(item => item.isEnabled);\n const disabledFields = setupMode ? items.filter(item => !item.isEnabled) : [];\n\n const managerPopup = (\n }\n />\n );\n\n return (\n
\n
\n {sortHandle}\n
\n
\n {isManagerOnly ? managerPopup : null}\n {title}\n
\n
\n {description}\n
\n
\n {setupActions && (\n
\n {setupActions}\n
\n )}\n
\n
\n {enabledFields.map((item, index) => (\n \n ))}\n {disabledFields.length > 0 && (\n <>\n
\n Disabled fields{' '}\n \n
\n {disabledFields.map((item, index) => (\n \n ))}\n \n )}\n \n
\n );\n}\n\nFormSection.propTypes = {\n id: PropTypes.number.isRequired,\n title: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired,\n enabled: PropTypes.bool.isRequired,\n position: PropTypes.number.isRequired,\n /** Whether the section is a special \"manager only\" section */\n isManagerOnly: PropTypes.bool.isRequired,\n /** Whether the section is the special \"personal data\" section */\n isPersonalData: PropTypes.bool.isRequired,\n /** The form items in the section */\n items: PropTypes.arrayOf(PropTypes.shape(FormItem.propTypes)).isRequired,\n /** The handle to sort the section during setup */\n sortHandle: PropTypes.node,\n /** The react component to render individual form items */\n itemComponent: PropTypes.elementType,\n /** Additional props passed to each item component */\n itemProps: PropTypes.object,\n /** Whether the registration form is currently being set up */\n setupMode: PropTypes.bool,\n /** Actions available during form setup */\n setupActions: PropTypes.node,\n};\n\nFormSection.defaultProps = {\n setupMode: false,\n setupActions: null,\n sortHandle: null,\n itemComponent: FormItem,\n itemProps: {},\n};\n","// 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 PropTypes from 'prop-types';\nimport React from 'react';\nimport {Dropdown} from 'semantic-ui-react';\n\nimport {Translate} from 'indico/react/i18n';\n\nimport {getFieldRegistry} from '../form/fields/registry';\n\nimport '../../styles/regform.module.scss';\n\nexport default function ItemTypeDropdown({newItemType, inModal, onClick}) {\n const fieldRegistry = getFieldRegistry();\n const dropdownText = newItemType\n ? fieldRegistry[newItemType].title\n : Translate.string('Choose type');\n\n let extraProps;\n if (inModal) {\n extraProps = {\n icon: 'dropdown',\n text: dropdownText,\n };\n } else {\n extraProps = {\n icon: null,\n className: 'hide-if-locked',\n trigger: ,\n };\n }\n\n const newItemTypeOptions = Object.entries(fieldRegistry)\n .filter(([name]) => name !== 'label')\n .map(([name, {title, icon}]) => ({\n key: name,\n value: name,\n text: title,\n icon,\n }));\n const middle = Math.ceil(newItemTypeOptions.length / 2);\n\n return (\n \n \n \n \n
\n
\n {newItemTypeOptions.slice(0, middle).map(({key, ...rest}) => (\n \n ))}\n
\n
\n {newItemTypeOptions.slice(middle).map(({key, ...rest}) => (\n \n ))}\n
\n
\n
\n
\n );\n}\n\nItemTypeDropdown.propTypes = {\n newItemType: PropTypes.string,\n inModal: PropTypes.bool.isRequired,\n onClick: PropTypes.func.isRequired,\n};\n\nItemTypeDropdown.defaultProps = {\n newItemType: null,\n};\n\nfunction DropdownItem({value, text, icon, centered, onClick}) {\n return (\n onClick(value)}\n >\n \n {text}\n \n );\n}\n\nDropdownItem.propTypes = {\n value: PropTypes.string.isRequired,\n text: PropTypes.string.isRequired,\n icon: PropTypes.string.isRequired,\n centered: PropTypes.bool,\n onClick: PropTypes.func.isRequired,\n};\n\nDropdownItem.defaultProps = {\n centered: false,\n};\n","// 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 _ from 'lodash';\nimport PropTypes from 'prop-types';\nimport React, {useState} from 'react';\nimport {FormSpy} from 'react-final-form';\nimport {useSelector, useDispatch} from 'react-redux';\nimport {Icon, Message} from 'semantic-ui-react';\n\nimport {\n FinalCheckbox,\n FinalInput,\n FinalTextArea,\n getValuesForFields,\n validators as v,\n parsers as p,\n} from 'indico/react/forms';\nimport {Fieldset} from 'indico/react/forms/fields';\nimport {FinalModalForm} from 'indico/react/forms/final-form';\nimport {Translate, Param} from 'indico/react/i18n';\nimport {renderPluginComponents} from 'indico/utils/plugins';\n\nimport {getFieldRegistry} from '../form/fields/registry';\nimport {getStaticData, getItemById} from '../form/selectors';\n\nimport * as actions from './actions';\nimport ItemTypeDropdown from './ItemTypeDropdown';\n\nconst EMPTY_DATA = {}; // avoid new object on every selector call since this triggers a warning\n\nexport default function ItemSettingsModal({id, sectionId, defaultNewItemType, onClose}) {\n const dispatch = useDispatch();\n const [newItemType, setNewItemType] = useState(defaultNewItemType);\n const editing = id !== null;\n const staticData = useSelector(getStaticData);\n const {inputType: existingInputType, fieldIsRequired, ...itemData} = useSelector(state =>\n editing ? getItemById(state, id) : EMPTY_DATA\n );\n const inputType = editing ? existingInputType : newItemType;\n const fieldRegistry = getFieldRegistry();\n const isUnsupportedField = !(inputType in fieldRegistry);\n const meta = fieldRegistry[inputType] || {};\n const SettingsComponent = meta.settingsComponent;\n\n const handleSubmit = async (formData, form) => {\n const data = getValuesForFields(formData, form);\n const action = editing\n ? actions.updateItem(id, data)\n : actions.createItem(sectionId, inputType, data);\n const rv = await dispatch(action);\n if (rv.error) {\n return rv.error;\n }\n onClose();\n };\n\n let initialValues = itemData;\n if (!editing) {\n initialValues = _.isFunction(meta.settingsFormInitialData)\n ? meta.settingsFormInitialData(staticData)\n : meta.settingsFormInitialData;\n if (meta.hasPrice) {\n initialValues = {...(initialValues || {}), price: 0};\n }\n }\n\n const handleChangeItemType = (dirty, value) => {\n if (\n newItemType &&\n dirty &&\n // eslint-disable-next-line no-alert\n !confirm('Changing the type will reset this form.')\n ) {\n return;\n }\n // this will force the FinalModalForm to re-render, so we do not need to\n // explicitly `restart()` the form\n setNewItemType(value);\n };\n\n return (\n \n Configure field \"\"\n \n ) : (\n <>\n Add new field\n
\n \n {({dirty}) => (\n handleChangeItemType(dirty, value)}\n />\n )}\n \n
\n \n )\n }\n >\n {!editing && !newItemType ? (\n \n Please choose a field type.\n \n ) : (\n <>\n \n You can use Markdown or basic HTML formatting tags.}\n />\n {meta.hasPrice && (\n p.number(val, true, 0)}\n label={Translate.string('Price')}\n />\n )}\n {!meta.noRequired && (\n \n )}\n {SettingsComponent && }\n {renderPluginComponents(`regform-${inputType}-field-settings`, {...itemData})}\n {!meta.noRetentionPeriod && !fieldIsRequired && (\n
\n \n \n {({values}) =>\n (!!values.price || values.isPriceSet) && !!values.retentionPeriod ? (\n \n \n \n \n Please note that invoice information will be lost as well once a field's\n retention period expires.\n \n \n \n ) : (\n ''\n )\n }\n \n
\n )}\n {isUnsupportedField && (\n \n Unknown input type: {inputType}.
\n Saving changes will most likely fail or result in some settings being lost.\n
\n )}\n \n )}\n \n );\n}\n\nItemSettingsModal.propTypes = {\n id: PropTypes.number,\n sectionId: PropTypes.number,\n defaultNewItemType: PropTypes.string,\n onClose: PropTypes.func.isRequired,\n};\n\nItemSettingsModal.defaultProps = {\n id: null,\n sectionId: null,\n defaultNewItemType: null,\n};\n","// 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 PropTypes from 'prop-types';\nimport React, {useState} from 'react';\nimport {useDispatch} from 'react-redux';\n\nimport {Translate} from 'indico/react/i18n';\n\nimport * as actions from './actions';\nimport ItemSettingsModal from './ItemSettingsModal';\nimport ItemTypeDropdown from './ItemTypeDropdown';\nimport SectionSettingsModal from './SectionSettingsModal';\n\nexport default function FormSectionSetupActions({id, isPersonalData}) {\n const [settingsModalActive, setSettingsModalActive] = useState(false);\n const [fieldModalActive, setFieldModalActive] = useState(false);\n const [newItemType, setNewItemType] = useState(null);\n const dispatch = useDispatch();\n\n const handleDisableClick = () => {\n dispatch(actions.disableSection(id));\n };\n\n const handleConfigureClick = () => {\n setSettingsModalActive(true);\n };\n\n return (\n <>\n {!isPersonalData && (\n \n )}\n \n {\n setNewItemType(value);\n setFieldModalActive(true);\n }}\n />\n {settingsModalActive && (\n setSettingsModalActive(false)} />\n )}\n {fieldModalActive && (\n setFieldModalActive(false)}\n />\n )}\n \n );\n}\n\nFormSectionSetupActions.propTypes = {\n id: PropTypes.number.isRequired,\n isPersonalData: PropTypes.bool.isRequired,\n};\n","// 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 PropTypes from 'prop-types';\nimport React, {useState} from 'react';\nimport {useDispatch} from 'react-redux';\n\nimport {RequestConfirmDelete} from 'indico/react/components';\nimport {Translate, Param} from 'indico/react/i18n';\n\nimport * as actions from './actions';\nimport ItemSettingsModal from './ItemSettingsModal';\n\nexport default function FormItemSetupActions({\n id,\n title,\n fieldIsRequired,\n fieldIsPersonalData,\n isEnabled,\n}) {\n const dispatch = useDispatch();\n const [settingsModalActive, setSettingsModalActive] = useState(false);\n const [confirmDeleteActive, setConfirmDeleteActive] = useState(false);\n\n const handleEnableClick = () => {\n dispatch(actions.enableItem(id));\n };\n\n const handleDisableClick = () => {\n dispatch(actions.disableItem(id));\n };\n\n const handleRemoveClick = () => {\n setConfirmDeleteActive(true);\n };\n\n const handleConfigureClick = () => {\n setSettingsModalActive(true);\n };\n\n return (\n <>\n {!fieldIsPersonalData && (\n \n )}\n {!isEnabled && (\n \n )}\n {!fieldIsRequired && isEnabled && (\n \n )}\n \n {settingsModalActive && (\n setSettingsModalActive(false)} />\n )}\n dispatch(actions.removeItem(id))}\n onClose={() => setConfirmDeleteActive(false)}\n open={confirmDeleteActive}\n persistent\n >\n \n Are you sure you want to delete the field \"\n } />\n \"?\n \n \n \n );\n}\n\nFormItemSetupActions.propTypes = {\n id: PropTypes.number.isRequired,\n title: PropTypes.string.isRequired,\n fieldIsRequired: PropTypes.bool.isRequired,\n fieldIsPersonalData: PropTypes.bool.isRequired,\n isEnabled: PropTypes.bool.isRequired,\n};\n","// 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 _ from 'lodash';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport {useDispatch} from 'react-redux';\n\nimport {useSortableItem} from 'indico/react/sortable';\n\nimport FormItem from '../form/FormItem';\n\nimport * as actions from './actions';\nimport FormItemSetupActions from './FormItemSetupActions';\n\nimport '../../styles/regform.module.scss';\n\nexport default function SetupFormItem({index, sectionId, ...rest}) {\n const {id, isEnabled} = rest;\n const dispatch = useDispatch();\n const [handleRef, itemRef, style] = useSortableItem({\n type: `regform-item@${sectionId}`,\n id,\n index,\n separateHandle: true,\n active: isEnabled,\n moveItem: (sourceIndex, targetIndex) => {\n dispatch(actions.moveItem(sectionId, sourceIndex, targetIndex));\n },\n onDrop: item => {\n if (item.index !== item.originalIndex) {\n dispatch(actions.saveItemPosition(sectionId, item.id, item.index, item.originalIndex));\n }\n },\n });\n\n return (\n
\n }\n setupActions={}\n {...rest}\n />\n
\n );\n}\n\nconst itemPropTypes = _.pick(\n FormItem.propTypes,\n 'inputType',\n 'isEnabled',\n ...Object.keys(FormItemSetupActions.propTypes)\n);\n\nSetupFormItem.propTypes = {\n sectionId: PropTypes.number.isRequired,\n index: PropTypes.number.isRequired,\n ...itemPropTypes,\n};\n\nSetupFormItem.defaultProps = _.pick(FormItem.defaultProps, Object.keys(itemPropTypes));\n","// 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 _ from 'lodash';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport {useDispatch} from 'react-redux';\n\nimport {SortableWrapper, useSortableItem} from 'indico/react/sortable';\n\nimport FormSection from '../form/FormSection';\n\nimport * as actions from './actions';\nimport FormSectionSetupActions from './FormSectionSetupActions';\nimport SetupFormItem from './SetupFormItem';\n\nimport '../../styles/regform.module.scss';\n\nexport default function SetupFormSection({index, ...rest}) {\n const {id} = rest;\n const dispatch = useDispatch();\n const [handleRef, itemRef, style] = useSortableItem({\n type: 'regform-section',\n id,\n index,\n separateHandle: true,\n moveItem: (sourceIndex, targetIndex) => {\n dispatch(actions.moveSection(sourceIndex, targetIndex));\n },\n onDrop: item => {\n if (item.index !== item.originalIndex) {\n dispatch(actions.saveSectionPosition(item.id, item.index, item.originalIndex));\n }\n },\n });\n\n return (\n
\n \n \n }\n setupActions={}\n itemComponent={SetupFormItem}\n itemProps={{sectionId: id}}\n {...rest}\n />\n \n
\n );\n}\n\nconst sectionPropTypes = _.pick(FormSection.propTypes, 'id');\n\nSetupFormSection.propTypes = {\n index: PropTypes.number.isRequired,\n ...sectionPropTypes,\n};\n","// 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 React, {useState} from 'react';\nimport {DndProvider} from 'react-dnd';\nimport {HTML5Backend} from 'react-dnd-html5-backend';\nimport {Form as FinalForm} from 'react-final-form';\nimport {useSelector} from 'react-redux';\nimport {Dimmer, Loader} from 'semantic-ui-react';\n\nimport {IButton} from 'indico/react/components';\nimport {Translate} from 'indico/react/i18n';\nimport {SortableWrapper} from 'indico/react/sortable';\n\nimport {getNestedSections, getItems} from '../form/selectors';\n\nimport DisabledSectionsModal from './DisabledSectionsModal';\nimport SectionSettingsModal from './SectionSettingsModal';\nimport {isUILocked, getDisabledSections} from './selectors';\nimport SetupFormSection from './SetupFormSection';\n\nimport '../../styles/regform.module.scss';\n\nexport default function RegistrationFormSetup() {\n const sections = useSelector(getNestedSections);\n const disabledSections = useSelector(getDisabledSections);\n const items = useSelector(getItems);\n const uiLocked = useSelector(isUILocked);\n const [disabledSectionModalActive, setDisabledSectionModalActive] = useState(false);\n const [addSectionModalActive, setAddSectionModalActive] = useState(false);\n\n const initialValues = Object.fromEntries(\n Object.entries(items).map(([, {htmlName, defaultValue}]) => [htmlName, defaultValue])\n );\n\n return (\n \n \n
\n setAddSectionModalActive(true)}>\n Add section\n \n {disabledSections.length > 0 && (\n setDisabledSectionModalActive(true)}>\n Disabled sections\n \n )}\n
\n\n {/* we need a dummy FinalForm so our fields don't break... */}\n undefined}\n >\n {fprops => {\n // FinalForm does not propagate changes to initialValues immediately.\n // The first render contains the old initialValues, which is a problem for\n // newly added fields whose initialValue becomes undefined.\n // Thus, we filter out all fields that have no corresponding value until\n // the updated initiaValues become available.\n const currentSections = sections.map(section => ({\n ...section,\n items: section.items.filter(item => item.htmlName in fprops.initialValues),\n }));\n\n return (\n \n {currentSections.map((section, index) => (\n \n ))}\n \n );\n }}\n \n
\n\n {addSectionModalActive && (\n setAddSectionModalActive(false)} />\n )}\n {disabledSectionModalActive && (\n setDisabledSectionModalActive(false)} />\n )}\n\n \n \n {/*\n XXX this loader and text may not be visible since it's vertically centered,\n inside the dimmable and in case of larger registration forms it may be outside\n the currently visible area.\n an alternative would be using the dimmer, but showing the save indicator in a\n static place on the page, e.g. like we do in the cornerMessage util\n */}\n Saving...\n \n \n
\n );\n}\n","// 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 React from 'react';\nimport ReactDOM from 'react-dom';\nimport {Provider} from 'react-redux';\n\nimport createReduxStore from 'indico/utils/redux';\n\nimport {setFormData} from './actions';\nimport reducers from './reducers';\nimport RegistrationFormSetup from './RegistrationFormSetup';\n\nexport default function setupRegformSetup(root) {\n const {\n eventId,\n eventStartDate,\n eventEndDate,\n regformId,\n currency,\n hasPredefinedAffiliations,\n formData,\n } = root.dataset;\n\n const initialData = {\n staticData: {\n eventId: parseInt(eventId, 10),\n regformId: parseInt(regformId, 10),\n hasPredefinedAffiliations: JSON.parse(hasPredefinedAffiliations),\n eventStartDate,\n eventEndDate,\n currency,\n },\n };\n const store = createReduxStore('regform-setup', reducers, initialData);\n store.dispatch(setFormData(JSON.parse(formData)));\n\n ReactDOM.render(\n \n \n ,\n root\n );\n}\n","// 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\nexport const SET_FORM_DATA = 'Set form data';\n\nexport function setFormData(data) {\n return {type: SET_FORM_DATA, items: data.items, sections: data.sections};\n}\n","// 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 {SET_FORM_DATA} from './actions';\n\nexport default {\n items: (state = {}, action) => {\n switch (action.type) {\n case SET_FORM_DATA:\n return action.items;\n default:\n return state;\n }\n },\n sections: (state = {}, action) => {\n switch (action.type) {\n case SET_FORM_DATA:\n return action.sections;\n default:\n return state;\n }\n },\n};\n","// 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 privacyNoticeURL from 'indico-url:events.display_privacy';\n\nimport _ from 'lodash';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport {Form as FinalForm} from 'react-final-form';\nimport {useSelector} from 'react-redux';\nimport {Form, Message} from 'semantic-ui-react';\n\nimport {Captcha} from 'indico/react/components';\nimport {\n FinalSubmitButton,\n handleSubmitError,\n FinalCheckbox,\n getChangedValues,\n} from 'indico/react/forms';\nimport {Param, Translate} from 'indico/react/i18n';\nimport {indicoAxios} from 'indico/utils/axios';\nimport {getPluginObjects, renderPluginComponents} from 'indico/utils/plugins';\n\nimport ConsentToPublishDropdown from '../components/ConsentToPublishDropdown';\nimport FormSection from '../form/FormSection';\nimport {getNestedSections, getStaticData} from '../form/selectors';\n\nimport {\n getUpdateMode,\n getModeration,\n getManagement,\n getPublishToParticipants,\n getPublishToPublic,\n} from './selectors';\n\nimport '../../styles/regform.module.scss';\n\nfunction PrivacyPolicy({url}) {\n const label = (\n \n );\n\n return (\n \n \n Privacy policy\n \n
\n \n \n
\n );\n}\n\nPrivacyPolicy.propTypes = {\n url: PropTypes.string.isRequired,\n};\n\nfunction ManagementOptions({isUpdateMode}) {\n return (\n \n \n Management Options\n \n
\n \n {!isUpdateMode && (\n \n )}\n
\n
\n );\n}\nManagementOptions.propTypes = {\n isUpdateMode: PropTypes.bool.isRequired,\n};\n\nfunction ConsentToPublish({publishToParticipants, publishToPublic}) {\n const isWarning = publishToParticipants === 'show_all' && publishToPublic === 'show_all';\n return (\n \n \n Participant list\n \n {(publishToParticipants === 'show_with_consent' ||\n publishToPublic === 'show_with_consent') && (\n

\n \n Specify whether you consent to being included in the event's list of participants\n \n

\n )}\n
\n \n \n
\n );\n}\n\nConsentToPublish.propTypes = {\n publishToParticipants: PropTypes.oneOf(['hide_all', 'show_with_consent', 'show_all']).isRequired,\n publishToPublic: PropTypes.oneOf(['hide_all', 'show_with_consent', 'show_all']).isRequired,\n};\n\nexport default function RegistrationFormSubmission() {\n const sections = useSelector(getNestedSections);\n const {\n eventId,\n submitUrl,\n registrationData,\n initialValues,\n captchaRequired,\n captchaSettings,\n policyAgreementRequired,\n } = useSelector(getStaticData);\n const isUpdateMode = useSelector(getUpdateMode);\n const isModerated = useSelector(getModeration);\n const isManagement = useSelector(getManagement);\n const publishToParticipants = useSelector(getPublishToParticipants);\n const publishToPublic = useSelector(getPublishToPublic);\n const showConsentToPublish = !isManagement && publishToParticipants !== 'hide_all';\n\n const onSubmit = async (data, form) => {\n // There is no need to store whether the user accepted the privacy policy\n // as it is not possible to submit the form without accepting it.\n data = _.omit(data, 'agreed_to_privacy_policy');\n let resp;\n const formData = isUpdateMode ? getChangedValues(data, form, ['notify_user']) : data;\n try {\n resp = await indicoAxios.post(submitUrl, formData);\n } catch (err) {\n return handleSubmitError(err);\n }\n\n if (resp.data.redirect) {\n location.href = resp.data.redirect;\n // never finish submitting to avoid fields being re-enabled\n await new Promise(() => {});\n }\n };\n\n return (\n \n {fprops => (\n
\n {renderPluginComponents('regformBeforeSections')}\n {sections.map(section => (\n \n ))}\n {renderPluginComponents('regformAfterSections')}\n
\n {isManagement && }\n {showConsentToPublish && (\n \n )}\n {captchaRequired && }\n {!isManagement && !isUpdateMode && policyAgreementRequired && (\n \n )}\n \n
\n \n )}\n \n );\n}\n","// 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 React from 'react';\nimport ReactDOM from 'react-dom';\nimport {Provider} from 'react-redux';\n\nimport createReduxStore from 'indico/utils/redux';\n\nimport {setFormData} from './actions';\nimport reducers from './reducers';\nimport RegistrationFormSubmission from './RegistrationFormSubmission';\n\nexport default function setupRegformSubmission(root) {\n const {\n eventId,\n regformId,\n currency,\n management,\n paid,\n moderated = false,\n submitUrl,\n formData,\n initialValues = null,\n registrationData = null,\n registrationUuid = null,\n fileData = null,\n publishToParticipants,\n publishToPublic,\n consentToPublish = null,\n policyAgreementRequired,\n captchaRequired = false,\n captchaSettings = null,\n ...extraData\n } = root.dataset;\n\n const initialData = {\n staticData: {\n eventId: parseInt(eventId, 10),\n regformId: parseInt(regformId, 10),\n management: JSON.parse(management),\n paid: paid ? JSON.parse(paid) : false,\n moderated: JSON.parse(moderated),\n initialValues: JSON.parse(initialValues),\n submitUrl,\n registrationData: registrationData\n ? {...JSON.parse(registrationData), consent_to_publish: consentToPublish}\n : {},\n registrationUuid,\n fileData: fileData ? JSON.parse(fileData) : {},\n currency,\n publishToParticipants,\n publishToPublic,\n policyAgreementRequired: JSON.parse(policyAgreementRequired),\n captchaRequired: JSON.parse(captchaRequired),\n captchaSettings: JSON.parse(captchaSettings),\n // XXX: do NOT use extraData for anything in the core; this is solely meant as a way to\n // pass data to plugins injecting custom stuff in the registration form. if you add\n // something in the core, handle it properly above!\n extraData,\n },\n };\n const store = createReduxStore('regform-submission', reducers, initialData);\n store.dispatch(setFormData(JSON.parse(formData)));\n\n ReactDOM.render(\n \n \n ,\n root\n );\n}\n","// 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\n/* global $T:false, alertPopup:false, handleAjaxError:false, ajaxDialog:false */\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport 'indico/react/components/AffiliationPopup';\n\nimport './invitations';\nimport './reglists';\n\nimport ConsentToPublishEditor from './components/ConsentToPublishEditor';\nimport RegistrationTagsEditableList from './components/RegistrationTagsEditableList';\nimport setupRegformSetup from './form_setup';\nimport setupRegformSubmission from './form_submission';\n\n(function(global) {\n $(document).ready(function() {\n setupRegistrationFormScheduleDialogs();\n setupRegistrationFormSummaryPage();\n });\n\n $(window).scroll(function() {\n IndicoUI.Effect.followScroll();\n });\n\n function setupRegistrationFormScheduleDialogs() {\n $('.js-regform-schedule-dialog').on('click', function(e) {\n e.preventDefault();\n ajaxDialog({\n url: $(this).data('href'),\n title: $(this).data('title'),\n onClose(data) {\n if (data) {\n location.reload();\n }\n },\n });\n });\n }\n\n function setupRegistrationFormSummaryPage() {\n $('.js-check-conditions').on('click', function(e) {\n const conditions = $('#conditions-accepted');\n if (conditions.length && !conditions.prop('checked')) {\n const msg =\n 'Please, confirm that you have read and accepted the Terms and Conditions before proceeding.';\n alertPopup($T.gettext(msg), $T.gettext('Terms and Conditions'));\n e.preventDefault();\n }\n });\n\n $('.js-highlight-payment').on('click', function() {\n $('#payment-summary').effect('highlight', 800);\n });\n }\n\n global.setupRegistrationFormListPage = function setupRegistrationFormListPage() {\n $('#payment-disabled-notice').on('indico:confirmed', '.js-enable-payments', function(evt) {\n evt.preventDefault();\n\n const $this = $(this);\n $.ajax({\n url: $this.data('href'),\n method: $this.data('method'),\n complete: IndicoUI.Dialogs.Util.progress(),\n error: handleAjaxError,\n success(data) {\n $('#payment-disabled-notice').remove();\n $('#event-side-menu').html(data.event_menu);\n },\n });\n });\n };\n\n function setupRegistrationTags() {\n const rootElement = document.getElementById('registration-detail-registration-tags-assign');\n\n if (rootElement) {\n const assignedTags = JSON.parse(rootElement.dataset.assignedTags);\n const allTags = JSON.parse(rootElement.dataset.allTags);\n const {eventId, regformId, registrationId} = rootElement.dataset;\n\n ReactDOM.render(\n ,\n rootElement\n );\n }\n }\n\n document.addEventListener('DOMContentLoaded', () => {\n setupRegistrationTags();\n $('#registration-details')\n .parent()\n .on('indico:htmlUpdated', setupRegistrationTags);\n });\n\n function setupConsentToPublish() {\n const rootElement = document.getElementById('registration-summary-consent-to-publish');\n\n if (rootElement) {\n const {\n locator,\n publishToParticipants,\n publishToPublic,\n initialConsentToPublish,\n } = rootElement.dataset;\n\n ReactDOM.render(\n ,\n rootElement\n );\n }\n }\n\n document.addEventListener('DOMContentLoaded', () => {\n setupConsentToPublish();\n $('#registration-info')\n .parent()\n .on('indico:htmlUpdated', setupConsentToPublish);\n });\n\n document.addEventListener('DOMContentLoaded', () => {\n const setupRootElement = document.getElementById('registration-form-setup-container');\n if (setupRootElement) {\n setupRegformSetup(setupRootElement);\n }\n\n const submissionRootElement = document.getElementById('registration-form-submission-container');\n if (submissionRootElement) {\n setupRegformSubmission(submissionRootElement);\n }\n });\n})(window);\n","var baseDifference = require('./_baseDifference'),\n baseFlatten = require('./_baseFlatten'),\n baseIteratee = require('./_baseIteratee'),\n baseRest = require('./_baseRest'),\n isArrayLikeObject = require('./isArrayLikeObject'),\n last = require('./last');\n\n/**\n * This method is like `_.difference` except that it accepts `iteratee` which\n * is invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * **Note:** Unlike `_.pullAllBy`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\nvar differenceBy = baseRest(function(array, values) {\n var iteratee = last(values);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), baseIteratee(iteratee, 2))\n : [];\n});\n\nmodule.exports = differenceBy;\n"],"names":["EmailPendingInvitations","_ref","metadataURL","previewURL","sendURL","onClose","sentCount","setSentCount","useState","data","loading","useIndicoAxios","senders","recipients","subject","defaultSubject","body","defaultBody","placeholders","React","Dimmer","active","page","inverted","Loader","EmailDialog","onSubmit","async","resp","indicoAxios","post","err","handleSubmitError","count","setTimeout","initialFormValues","sentEmailsCount","propTypes","PropTypes","isRequired","emailMetadataURL","_buildFlaskURL","bind","endpoint","rules","args","converters","event_id","reg_form_id","defaults","trace","isDynamic","emailPreviewURL","emailSendURL","EmailPendingInvitationsButton","eventId","regformId","hasPendingInvitations","open","setOpen","type","className","disabled","onClick","Translate","global","renderEmailInvitationsBtn","_ref2","container","document","getElementById","ReactDOM","window","setupInvitationPage","$","on","evt","preventDefault","$this","this","ajax","url","method","complete","IndicoUI","Dialogs","Util","progress","error","handleAjaxError","success","html","invitation_list","has_pending_invitations","ajaxDialog","setupRegistrationList","handleRegListRowSelection","toggleClass","length","trigger","setupListGenerator","title","$T","gettext","registration_id","getSelectedRows","val","selectedRows","msg","ngettext","format","confirmPrompt","then","i","fadeOut","remove","flag","handleSelectedRowHighlight","setupTableSorter","user","showUserSearch","withExternalUsers","single","alwaysConfirm","location","href","build_url","dialogClasses","publishModePropType","ConsentToPublishDropdown","publishToParticipants","publishToPublic","value","useFinalForms","extraProps","_objectWithoutProperties","_excluded","options","push","key","text","string","FinalDropdown","_extends","selection","required","fluid","Dropdown","defaultProps","registrationChangeConsent","ConsentToPublishEditor","locator","initialConsentToPublish","consentToPublish","setConsentToPublish","status","setStatus","onChange","consent_to_publish","handleAxiosError","editConsentToPublish","Icon","name","color","registrationTagAssign","RegistrationTagsEditableList","registrationId","assignedTags","allTags","tags","setTags","unassignedTags","_differenceBy","editRegistrationTags","add","IButton","style","marginRight","marginTop","map","tag","Label","size","filter","t","id","onRemove","PopoverDropdownMenu","onOpen","placement","Header","textAlign","Divider","margin","newTags","_sortBy","toLowerCase","onAdd","ownKeys","e","r","Object","keys","getOwnPropertySymbols","o","getOwnPropertyDescriptor","enumerable","apply","_objectSpread","arguments","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","getStaticData","state","staticData","getFlatSections","sections","getItems","items","getItemById","createSelector","__","itemId","fields","getCurrency","currency","getSections","values","s","enabled","getSectionItemMapping","mapping","Map","field","get","sectionId","getNestedSections","sortedSections","sectionFields","section","isUILocked","uiLocked","getDisabledSections","getSectionById","getSectionIdForItem","isItemStaticText","item","inputType","pickItemURL","isStaticText","textURL","fieldURL","getURLParams","undefined","params","section_id","field_id","addFieldURL","addSectionURL","addTextURL","modifyFieldURL","modifySectionURL","modifyTextURL","moveFieldURL","moveSectionURL","moveTextURL","toggleFieldURL","toggleSectionURL","toggleTextURL","LOCK_UI","UNLOCK_UI","SET_FORM_DATA","MOVE_SECTION","UPDATE_SECTION","TOGGLE_SECTION","REMOVE_SECTION","CREATE_SECTION","MOVE_ITEM","UPDATE_ITEM","REMOVE_ITEM","CREATE_ITEM","UPDATE_POSITIONS","lockingAjaxAction","requestFunc","_len","Array","_key","fn","ajaxAction","dispatch","updatePositions","moveSection","sourceIndex","targetIndex","_toggleSection","moveItem","_updateItem","removeSection","getStore","store","delete","_removeSection","updateSection","payload","changes","submitFormAction","patch","_updateSection","camelizeKeys","createSection","_createSection","removeItem","urlFunc","_removeItem","createItem","fieldData","input_type","_createItem","view_data","action","newState","entries","position","_omit","_omitBy","sorted","f","sourceItem","splice","enabledPos","disabledPos","isEnabled","_ref3","_ref4","sourceSection","DisabledSection","useDispatch","confirmDeleteActive","setConfirmDeleteActive","Segment","Popup","content","handleEnableClick","enable","positions","circular","handleRemoveClick","RequestConfirmDelete","actions","persistent","Param","wrapper","DisabledSectionsModal","useSelector","useEffect","Modal","closeIcon","Content","SectionSettingsModal","editing","description","isPersonalData","isManagerOnly","FinalModalForm","formData","rv","initialValues","is_manager_only","header","FinalInput","label","autoFocus","FinalTextArea","FinalCheckbox","userInfo","getUpdateMode","registrationUuid","getRegistrationData","registrationData","getModeration","moderated","getManagement","management","getPaid","paid","getPublishToParticipants","getPublishToPublic","getFieldValue","updateMode","htmlName","isPaidItemLocked","price","choices","choiceIsSelected","c","choice","find","ChoiceLabel","modWarning","paymentWarning","_deleted","_modified","caption","choiceShape","placesLimit","maxExtraSlots","Choices","onFocus","onBlur","withExtraSlots","forAccommodation","makeOnDelete","handleMove","newValue","SortableWrapper","accept","width","colSpan","Choice","index","onDelete","onMove","fieldProps","marginBottom","Button","handleAdd","newItem","nanoid","choiceFieldsSettingsFormDecorator","createDecorator","updates","isPriceSet","some","extraSlotsPay","isNoAccommodation","handleRef","itemRef","useSortableItem","separateHandle","onDrop","makeOnChange","elem","target","checked","ref","_getClassName","_styleModuleImportMap","placeholder","min","step","Input","icon","link","PlacesLeft","placesUsed","placesLeft","whiteSpace","PluralTranslate","Singular","Plural","AccommodationInputComponent","existingValue","isPurged","arrival","departure","selectedChoice","focusedDateField","setFocusedDateField","arrivalDateFrom","toMoment","startDate","moment","DATE","arrivalDateTo","endDate","departureDateFrom","departureDateTo","minimumDays","arrivalDate","Math","max","diff","nights","departureDate","isPaidChoice","isPaidChoiceLocked","role","Form","Radio","pointerEvents","children","pointing","toFixed","DatePeriodField","disabledDate","date","isBetween","initialVisibleMonth","onFieldFocusChange","extraPickerProps","block","startDatePlaceholderText","endDatePlaceholderText","total","AccommodationInput","htmlId","FinalField","component","validate","isEqual","_isEqual","AccompanyingPersonModal","calculatePlaces","availablePlaces","maxPersons","personsInCurrentField","formState","Infinity","personsInAllFieldsCount","personsCountAgainstLimit","apf","reduce","_formState$values$fie","countAllAccompanyingPersons","AccompanyingPersonsComponent","operation","setOperation","person","totalPrice","useFormState","changeReducer","p","handleModalClose","Group","firstName","lastName","handleAccompanyingPersonEdit","personId","handleAccompanyingPersonRemove","handleAccompanyingPersonAdd","basic","includes","AccompanyingPersonsInput","BooleanInputComponent","makeOnClick","marginLeft","BooleanInput","allowNull","CheckboxInput","showAsRequired","retentionPeriodIcon","checkboxId","styles","Field","subscription","input","display","isoToFlag","country","String","fromCodePoint","split","charCodeAt","CountryInputComponent","clearable","search","selectOnBlur","selectOnNavigation","_","countryKey","CountryInput","parse","x","CountrySettings","hasPredefinedAffiliations","DateInputComponent","dateFormat","timeFormat","dateValue","timeValue","SingleDatePicker","onDateChange","newDate","dateString","toISOString","displayFormat","isOutsideRange","verticalSpacing","enableOutsideDays","TimePicker","showSecond","focusOnOpen","newTime","use12Hours","allowEmpty","getPopupContainer","node","DateInput","friendlyDateFormat","replace","match","H","M","d","m","Y","validateDateTime","dateTime","parseDate","_match$groups$month","_wrapRegExp","month","year","exec","groups","formatDate","dateSettingsFormDecorator","validateEmailURL","EmailInput","isMainEmailField","message","setMessage","forEmail","isUpdateMode","invitationToken","useMemo","URLSearchParams","invitation","validateEmail","useDebouncedAsyncValidate","response","email","trim","update","conflict","email_error","self","same","v","hideValidationError","loaderWhileValidating","Message","visible","warning","positive","uploadFileURL","FileInput","fileData","initialFileDetails","urlParams","token","FinalSingleFileManager","uploadURL","LabelInput","MultiChoiceInputComponent","markTouched","makeHandleChange","makeHandleSlotsChange","formatPrice","Checkbox","_range","MultiChoiceInput","maxChoices","_keys","n","NumberInputComponent","minValue","maxValue","NumberInput","chain","number","range","optional","PhoneInput","managementPreviewURL","field_data_id","registrantPreviewURL","PictureInput","minPictureSize","initialPictureDetails","uploadUrlParams","previewUrlParams","FinalPictureManager","SingleChoiceDropdown","extraSlotsDropdown","Select","_evt","opacity","SingleChoiceRadioGroup","radioChoices","unshift","currentChoice","handleChange","SingleChoiceInputComponent","itemType","SingleChoiceInput","singleChoiceSettingsFormDecorator","_ref5","defaultItem","mapPropsToAttributes","props","inputProps","prop","attr","attributeMap","numberOfRows","TextAreaInput","resize","minLength","maxLength","TextInput","fieldRegistry","inputComponent","noRequired","noRetentionPeriod","noLabel","customFormItem","settingsComponent","widths","STOP_VALIDATION","settingsFormValidator","textarea","hasPrice","checkbox","dateOptions","opt","timeOptions","nullIfEmpty","settingsFormDecorators","settingsFormInitialData","bool","renderAsFieldset","phone","file","single_choice","_ref6","_ref7","settingsModalSize","multi_choice","accommodation","FinalDatePeriod","noBorder","serializeDate","eventStartDate","subtract","eventEndDate","errors","isBefore","isAfter","alwaysRequired","accompanying_persons","picture","getFieldRegistry","pluginFields","fromEntries","getPluginObjects","startsWith","Error","PaidItemLocked","lockedMsg","PurgedItemLocked","purgedMsg","ItemLocked","reason","FormItem","retentionPeriod","lockedReason","sortHandle","setupMode","setupActions","rest","paidItemLocked","isManagement","meta","InputComponent","showPurged","inputRequired","fieldControls","toClasses","htmlFor","Markdown","renderPluginComponents","fieldIsPersonalData","fieldIsRequired","FormSection","itemComponent","ItemComponent","itemProps","enabledFields","disabledFields","managerPopup","as","ItemTypeDropdown","newItemType","inModal","dropdownText","newItemTypeOptions","middle","ceil","Menu","DropdownItem","centered","slice","_excluded2","EMPTY_DATA","ItemSettingsModal","defaultNewItemType","setNewItemType","_useSelector","existingInputType","itemData","isUnsupportedField","SettingsComponent","_isFunction","form","getValuesForFields","initialValuesEqual","unloadPrompt","decorators","float","FormSpy","dirty","handleChangeItemType","confirm","Fieldset","legend","compact","info","FormSectionSetupActions","settingsModalActive","setSettingsModalActive","fieldModalActive","setFieldModalActive","handleDisableClick","handleConfigureClick","FormItemSetupActions","SetupFormItem","originalIndex","oldPosition","endPos","itemPropTypes","_pick","SetupFormSection","sectionPropTypes","RegistrationFormSetup","disabledSections","disabledSectionModalActive","setDisabledSectionModalActive","addSectionModalActive","setAddSectionModalActive","defaultValue","Dimmable","dimmed","DndProvider","backend","HTML5Backend","FinalForm","fprops","currentSections","setupRegformSetup","root","dataset","initialData","parseInt","JSON","createReduxStore","reducers","Provider","privacyNoticeURL","PrivacyPolicy","rel","toggle","ManagementOptions","ConsentToPublish","isWarning","RegistrationFormSubmission","submitUrl","captchaRequired","captchaSettings","policyAgreementRequired","isModerated","showConsentToPublish","getChangedValues","redirect","Promise","handleSubmit","Captcha","settings","FinalSubmitButton","disabledUntilChange","disabledIfInvalid","setupRegformSubmission","_root$dataset","extraData","setupRegistrationTags","rootElement","setupConsentToPublish","ready","reload","conditions","alertPopup","effect","scroll","Effect","followScroll","setupRegistrationFormListPage","event_menu","addEventListener","parent","setupRootElement","submissionRootElement","baseDifference","baseFlatten","baseIteratee","baseRest","isArrayLikeObject","last","differenceBy","array","iteratee","module","exports"],"sourceRoot":""}