{"version":3,"file":"js/1431-b05d696108f3b57ba79a.js","mappings":"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","sources":["webpack:///./app/javascript/espace-pro-app/espace-pro-images/info.inline.svg","webpack:///./app/javascript/main-app/images/icon-success.inline.svg","webpack:///./app/javascript/_shared/ReviewToolbar/ToolbarButton.js","webpack:///./app/javascript/_shared/ReviewToolbar/AnswerButton.jsx","webpack:///./app/javascript/_shared/ReviewToolbar/AnswerForm.jsx","webpack:///./app/javascript/_shared/ReviewToolbar/ReviewToolbar.jsx","webpack:///./app/javascript/espace-pro-app/src/components/_common/Form/index.js","webpack:///./app/javascript/espace-pro-app/src/constants/breakpoints.js","webpack:///./app/javascript/main-app/components/TextareaCounter/TextareaCounter.jsx","webpack:///./app/javascript/main-app/components/fields/Textareafield.jsx","webpack:///./app/javascript/main-app/components/messages/Success.jsx","webpack:///./app/javascript/main-app/components/window/Report.jsx","webpack:///./app/javascript/main-app/utils/clipboard.js","webpack:///./app/javascript/main-app/components/window/ShareLink.jsx","webpack:///./app/javascript/main-app/images/icon-horn--avis-solution.svg","webpack:///./app/javascript/main-app/images/icon-horn.svg","webpack:///./app/javascript/main-app/images/icon-pencil.svg","webpack:///./app/javascript/main-app/images/icon-share--avis-solution.svg","webpack:///./app/javascript/main-app/images/icon-share.svg"],"sourcesContent":["import React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" {...props}><path d=\"M8 .615A7.367 7.367 0 00.615 8 7.367 7.367 0 008 15.385 7.367 7.367 0 0015.385 8 7.367 7.367 0 008 .615zm0 3.723c.523 0 .923.4.923.924 0 .523-.4.923-.923.923a.907.907 0 01-.923-.923c0-.524.4-.924.923-.924zM9.538 10.8c0 .154-.123.277-.307.277H6.769c-.154 0-.307-.092-.307-.277v-.615c0-.154.123-.339.307-.339.154 0 .308-.092.308-.277V8.34c0-.154-.123-.339-.308-.339-.154 0-.307-.092-.307-.277v-.615c0-.154.123-.339.307-.339h1.846c.154 0 .308.154.308.339V9.57c0 .154.123.277.308.277.154 0 .307.154.307.339v.615z\" /></svg>);","import React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => <svg xmlnsXlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 56 56\" {...props}><defs><filter id=\"icon-success-a\" width=\"129.2%\" height=\"129.2%\" x=\"-14.6%\" y=\"-10.4%\" filterUnits=\"objectBoundingBox\"><feOffset dy=\"2\" in=\"SourceAlpha\" result=\"shadowOffsetOuter1\" /><feGaussianBlur in=\"shadowOffsetOuter1\" result=\"shadowBlurOuter1\" stdDeviation=\"2\" /><feColorMatrix in=\"shadowBlurOuter1\" values=\"0 0 0 0 0.607843137 0 0 0 0 0.517647059 0 0 0 0 0.529411765 0 0 0 0.05 0\" /></filter><path id=\"icon-success-b\" d=\"M24.1 48c-6.4-.1-14.3-.7-18.7-5.2C.8 38.4.1 30.5 0 24.1.1 17.7.7 9.8 5.2 5.4 9.6.8 17.5.1 23.9 0c6.4.1 14.3.7 18.7 5.2 4.6 4.4 5.3 12.3 5.4 18.6-.1 6.4-.7 14.3-5.2 18.7-4.4 4.7-12.3 5.4-18.7 5.5z\" /></defs><g fill=\"none\"><g transform=\"translate(4 2)\"><use fill=\"#000\" filter=\"url(#icon-success-a)\" xlinkHref=\"#icon-success-b\" /><use fill=\"#51E3AE\" xlinkHref=\"#icon-success-b\" /></g><path fill=\"#FFF\" d=\"M24.798 29.25l11.86-10.733a2 2 0 112.684 2.966l-13.26 12a2 2 0 01-2.745-.058l-6.74-6.637a2 2 0 012.806-2.85l5.395 5.312z\" /></g></svg>);","import styled from 'styled-components';\n\nimport { FONT_FAMILY_MAIN } from '../../main-app/theme';\n\nexport const ToolbarButton = styled.button`\n display: flex;\n align-items: center;\n font-size: 14px;\n line-height: 1.29;\n letter-spacing: -0.1px;\n color: ${({ isAvisSolution }) => isAvisSolution ? '#313b82' : '#4a90e2'};\n border: none;\n background: none;\n padding: 0;\n cursor: pointer;\n font-family: ${FONT_FAMILY_MAIN};\n \n ${(props) => props.bold\n && `\n font-weight: bold;\n `};\n`;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { ToolbarButton } from './ToolbarButton';\n\nconst AnswerButton = ({ onAnswerClick }) => (\n <ToolbarButton bold onClick={onAnswerClick}>\n Répondre\n </ToolbarButton>\n);\n\nAnswerButton.propTypes = {\n onAnswerClick: PropTypes.func.isRequired,\n};\n\nexport { AnswerButton };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { ErrorMessage } from '@espacePro/components/_common/Form';\nimport Btn from '../../main-app/components/buttons/Btn';\nimport { ToolbarButton } from './ToolbarButton';\nimport { FONT_FAMILY_MAIN } from '../../main-app/theme';\n\nconst AnswerBoxContainer = styled.div`\n background-color: #eef1f6;\n padding: 12px 24px 16px;\n margin-left: 18px;\n border-radius: 8px;\n margin-bottom: 17px;\n position: relative;\n`;\n\nconst AnswerBoxArrowLeft = styled.svg`\n position: absolute;\n top: 10px;\n left: -18px;\n`;\n\nconst AnswerBoxTitle = styled.div`\n font-size: 18px;\n font-weight: bold;\n line-height: 1.44;\n letter-spacing: 0.2px;\n color: #354354;\n margin-bottom: 16px;\n`;\n\nconst AnswerBoxField = styled.textarea`\n width: 100%;\n resize: vertical;\n margin-bottom: 18px;\n padding: 14px 16px 5px;\n font-size: 16px;\n line-height: 1.25;\n letter-spacing: 0.2px;\n color: #354354;\n outline: none;\n border: 1px solid #cecece;\n border-radius: 2px;\n font-family: ${FONT_FAMILY_MAIN};\n\n &:focus {\n border: 1px solid #23c4f8;\n }\n`;\n\nconst AnswerBoxFormToolbar = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 22px;\n`;\n\nconst AnswerBoxButton = styled(Btn)`\n background-color: #4a90e2;\n border-radius: 4px;\n font-size: 16px;\n font-weight: bold;\n color: #ffffff;\n padding: 12px 24px;\n border: none;\n`;\n\nconst AnswerForm = ({\n value, onChange, onSubmit, isSending, onCancel, hasError, isModifyView,\n}) => (\n <AnswerBoxContainer>\n <AnswerBoxArrowLeft\n width=\"19\"\n height=\"25\"\n viewBox=\"0 0 19 25\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill=\"#eef1f6\"\n d=\"M0 .024c6.37.117 12.545 1.023 18.432 2.622.111-.395.111 7.056 0 22.354-1.148-11.2-8.636-20.374-18.432-24.976z\"\n />\n </AnswerBoxArrowLeft>\n <AnswerBoxTitle>Votre réponse</AnswerBoxTitle>\n <AnswerBoxField\n value={value}\n onChange={onChange}\n rows=\"8\"\n />\n {hasError && <ErrorMessage>Une erreur est survenue, veuillez réessayer</ErrorMessage>}\n <AnswerBoxFormToolbar>\n <AnswerBoxButton\n onClick={onSubmit}\n isLoading={isSending}\n text={isModifyView ? 'Enregistrer' : 'Répondre'}\n />\n <ToolbarButton bold onClick={onCancel}>\n Annuler\n </ToolbarButton>\n </AnswerBoxFormToolbar>\n </AnswerBoxContainer>\n);\n\nAnswerForm.propTypes = {\n value: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n isSending: PropTypes.bool,\n onCancel: PropTypes.func.isRequired,\n hasError: PropTypes.bool,\n isModifyView: PropTypes.bool,\n};\n\nAnswerForm.defaultProps = {\n value: '',\n isSending: false,\n hasError: false,\n isModifyView: false,\n};\n\nexport { AnswerForm };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { NOTES_COLOR } from '../../main-app/theme';\nimport hornIcon from '../../main-app/images/icon-horn.svg';\nimport hornIconAvisSolution from '../../main-app/images/icon-horn--avis-solution.svg';\nimport shareIcon from '../../main-app/images/icon-share.svg';\nimport pencilIcon from '../../main-app/images/icon-pencil.svg';\nimport shareIconAvisSolution from '../../main-app/images/icon-share--avis-solution.svg';\nimport { AnswerButton } from './AnswerButton';\nimport { AnswerForm } from './AnswerForm';\nimport { ToolbarButton } from './ToolbarButton';\n\nconst TOOLBAR_BUTTON_MARGIN = 17;\n\nconst Container = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 13px;\n`;\n\nconst LeftSide = styled.div`\n display: flex;\n align-items: center;\n`;\n\nconst RightSide = styled.div`\n display: flex;\n align-items: center;\n`;\n\nconst ToolbarButtonReport = styled(ToolbarButton)`\n padding-left: 23px;\n background: url(${({ isAvisSolution }) => isAvisSolution ? hornIconAvisSolution : hornIcon}) no-repeat 0 50%;\n background-size: 20px 20px;\n height: 20px;\n`;\n\nconst ToolbarButtonShare = styled(ToolbarButton)`\n padding-left: 23px;\n background: url(${({ isAvisSolution }) => isAvisSolution ? shareIconAvisSolution : shareIcon}) no-repeat 0 50%;\n background-size: 20px 20px;\n height: 20px;\n margin-left: ${TOOLBAR_BUTTON_MARGIN}px;\n`;\n\nconst AnswerBoxContainer = styled.div`\n background-color: #eef1f6;\n padding: 12px 24px 16px;\n margin-left: 18px;\n border-radius: 8px;\n margin-bottom: 17px;\n position: relative;\n`;\n\nconst AnswerBoxArrowLeft = styled.svg`\n position: absolute;\n top: 10px;\n left: -18px;\n`;\n\nconst AnswerTitle = styled.div`\n font-size: 12px;\n line-height: 1.17;\n letter-spacing: 0.1px;\n color: ${NOTES_COLOR};\n margin-bottom: 8px;\n`;\n\nconst AnswerContent = styled.div`\n font-size: 16px;\n line-height: 1.25;\n letter-spacing: 0.1px;\n color: #354354;\n white-space: pre-line;\n`;\n\nconst AnswerUpdateButton = styled(ToolbarButton)`\n padding-left: 23px;\n background: url(${pencilIcon}) no-repeat 0 50%;\n background-size: 18px 18px;\n \n height: 20px;\n margin-top: ${TOOLBAR_BUTTON_MARGIN}px;\n`;\n\nconst ReviewToolbar = (props) => {\n const {\n answer, onAnswerClick, hasAnswerForm, hasAnswerButton, hasUpdateButton, onAnswerChange, onAnswerSubmit, isAvisSolution,\n onAnswerCancel, isAnswerSending, showReportWindow, showShareLinkWindow, isServiceButtonsSectionVisible,\n isAnswerError, isSchool, answerValue, isModifyView,\n } = props;\n\n return (\n <>\n {!hasAnswerForm && answer && (\n <AnswerBoxContainer>\n <AnswerBoxArrowLeft\n width=\"19\"\n height=\"25\"\n viewBox=\"0 0 19 25\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill=\"#eef1f6\"\n d=\"M0 .024c6.37.117 12.545 1.023 18.432 2.622.111-.395.111 7.056 0 22.354-1.148-11.2-8.636-20.374-18.432-24.976z\"\n />\n </AnswerBoxArrowLeft>\n <AnswerTitle>{`Réponse ${isSchool ? 'de l\\'auto-école' : 'du centre d\\'examen'}`}</AnswerTitle>\n <AnswerContent>{answer}</AnswerContent>\n {\n isSchool && hasUpdateButton && <AnswerUpdateButton onClick={onAnswerClick}>Modifier la réponse</AnswerUpdateButton>\n }\n </AnswerBoxContainer>\n )}\n {hasAnswerForm && (\n <AnswerForm\n value={answerValue}\n onChange={onAnswerChange}\n onSubmit={onAnswerSubmit}\n onCancel={onAnswerCancel}\n isSending={isAnswerSending}\n hasError={isAnswerError}\n isModifyView={isModifyView}\n />\n )}\n <Container>\n <LeftSide>{hasAnswerButton && <AnswerButton onAnswerClick={onAnswerClick} />}</LeftSide>\n {\n isServiceButtonsSectionVisible && (\n <RightSide>\n <ToolbarButtonReport onClick={showReportWindow} isAvisSolution={isAvisSolution}>\n Signaler\n </ToolbarButtonReport>\n <ToolbarButtonShare onClick={showShareLinkWindow} isAvisSolution={isAvisSolution}>\n Partager\n </ToolbarButtonShare>\n </RightSide>\n )\n }\n </Container>\n </>\n );\n};\n\nReviewToolbar.propTypes = {\n answer: PropTypes.string,\n answerValue: PropTypes.string,\n onAnswerClick: PropTypes.func,\n hasAnswerForm: PropTypes.bool,\n hasAnswerButton: PropTypes.bool,\n hasUpdateButton: PropTypes.bool,\n onAnswerChange: PropTypes.func,\n onAnswerSubmit: PropTypes.func,\n onAnswerCancel: PropTypes.func,\n isAnswerSending: PropTypes.bool,\n showReportWindow: PropTypes.func.isRequired,\n showShareLinkWindow: PropTypes.func.isRequired,\n isServiceButtonsSectionVisible: PropTypes.bool,\n isAnswerError: PropTypes.bool,\n isAvisSolution: PropTypes.bool,\n isSchool: PropTypes.bool,\n isModifyView: PropTypes.bool,\n};\n\nReviewToolbar.defaultProps = {\n answer: '',\n answerValue: '',\n onAnswerClick: () => {},\n hasAnswerForm: false,\n hasAnswerButton: false,\n hasUpdateButton: false,\n onAnswerChange: () => {},\n onAnswerSubmit: () => {},\n onAnswerCancel: () => {},\n isAnswerSending: false,\n isServiceButtonsSectionVisible: true,\n isAnswerError: false,\n isAvisSolution: false,\n isSchool: true,\n isModifyView: true,\n};\n\nexport { ReviewToolbar };\n","import styled from 'styled-components';\nimport {\n MAIN_BLUE, RAVEN, WATERMELON as ERROR_COLOR, WATERMELON,\n} from '@espacePro/constants/admin-theme';\nimport Info from '@espaceProImages/info.inline.svg';\nimport { DEVICES } from '@espacePro/constants/breakpoints';\n\nexport const Title = styled.h2`\n font-size: 32px;\n font-weight: 800;\n letter-spacing: 0.2px;\n margin: 0;\n`;\n\nexport const Subtitle = styled.p`\n font-size: 14px;\n line-height: 1.29;\n letter-spacing: -0.1px;\n color: ${RAVEN};\n margin: 8px 0 0;\n`;\n\nexport const FormBody = styled.div`\n margin: 32px 0;\n`;\n\nexport const Label = styled.label`\n font-size: 14px;\n font-weight: 600;\n line-height: 1.57;\n margin: 24px 0 8px;\n display: block;\n`;\n\nexport const InputsGroupTitle = styled.h4`\n font-size: 18px;\n font-weight: 600;\n line-height: 1.33;\n letter-spacing: 0.2px;\n margin: 0 0 4px;\n`;\n\nexport const InputsHint = styled.p`\n font-size: 14px;\n margin: 4px 0 16px;\n line-height: 1.29;\n letter-spacing: -0.1px;\n color: ${RAVEN};\n`;\n\nexport const MultipleInputsRow = styled.div`\n display: flex;\n flex-wrap: wrap;\n margin: 0 -8px 32px 0;\n`;\n\nexport const InputCell = styled.div`\n margin: 8px 8px 0 0;\n`;\n\nexport const CheckboxRow = styled.div`\n margin-top: 16px;\n`;\n\nexport const LargeInputContainer = styled.div`\n max-width: 524px;\n`;\n\nexport const XLargeInputContainer = styled.div`\n max-width: 778px;\n`;\n\nexport const MediumInputContainer = styled.div`\n max-width: 426px;\n`;\n\nexport const SmallInputContainer = styled.div`\n width: 100%;\n\n @media ${DEVICES.LARGE} {\n max-width: 376px;\n margin-right: 12px;\n }\n`;\n\nexport const XSmallInputContainer = styled.div`\n width: 100%;\n\n @media ${DEVICES.LARGE} {\n max-width: 296px;\n margin-right: 12px;\n }\n`;\n\nexport const InputGroupRow = styled.div`\n margin-top: 32px;\n`;\n\nexport const ButtonContainer = styled.div`\n margin-top: 24px;\n`;\n\nexport const InfoIcon = styled(Info)`\n width: 16px;\n height: 16px;\n fill: ${MAIN_BLUE};\n margin-left: 6px;\n`;\n\nexport const InputWithHintRow = styled.div`\n display: flex;\n align-items: center;\n`;\n\nexport const ErrorMessage = styled.div`\n color: ${WATERMELON};\n font-size: 14px;\n font-weight: 600;\n line-height: 1.57;\n letter-spacing: 0.3px;\n margin-top: 4px;\n`;\n\nexport const ErrorMessageContainer = styled.div`\n color: ${ERROR_COLOR};\n font-size: 12px;\n line-height: 1.17;\n margin-top: 3px;\n`;\n","const RESOLUTION = {\n SMALL: 576,\n MEDIUM: 768,\n LARGE: 992,\n EXTRA_LARGE: 1200,\n};\n\nconst SIZES = {\n SMALL: `${RESOLUTION.SMALL}px`,\n MEDIUM: `${RESOLUTION.MEDIUM}px`,\n LARGE: `${RESOLUTION.LARGE}px`,\n EXTRA_LARGE: `${RESOLUTION.EXTRA_LARGE}px`,\n};\n\nconst DEVICES = {\n SMALL: `screen and (min-width: ${SIZES.SMALL})`,\n MEDIUM: `screen and (min-width: ${SIZES.MEDIUM})`,\n LARGE: `screen and (min-width: ${SIZES.LARGE})`,\n EXTRA_LARGE: `screen and (min-width: ${SIZES.EXTRA_LARGE})`,\n};\n\nexport { RESOLUTION, SIZES, DEVICES };\n","import React from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport { ERROR_COLOR, SUCCESS_COLOR } from '../../theme';\n\nconst CounterValue = styled.span`\n &.success {\n color: ${SUCCESS_COLOR}\n }\n &.error {\n color: ${ERROR_COLOR}\n }\n`;\n\nconst TextareaCounter = ({ value, minLength }) => (\n <>\n <CounterValue className={value.length >= minLength ? 'success' : 'error'}>\n {value.length}\n {' '}\n caractère(s)\n </CounterValue>\n {` (minimum ${minLength})`}\n </>\n);\n\nTextareaCounter.propTypes = {\n value: PropTypes.string.isRequired,\n minLength: PropTypes.number.isRequired,\n};\n\nexport { TextareaCounter };\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport { FieldLabel } from '@shared/fields';\nimport { FONT_FAMILY_MAIN, NOTES_COLOR } from '../../theme';\nimport media from '../../utils/mediaQueries';\nimport { TextareaCounter } from '../TextareaCounter';\n\nconst InputContainer = styled.div`\n display: flex;\n flex-direction: column;\n margin-bottom: 3px;\n`;\n\nconst Textarea = styled.textarea`\n padding: 13px 16px;\n border-radius: 2px;\n border: solid 1px rgba(0, 0, 0, 0.07);\n background-color: ${(props) => props.backgroundColor};\n outline: none;\n font-size: 14px;\n line-height: 1.43;\n letter-spacing: 0.2px;\n color: ${(props) => props.inputTextColor};\n transition: all 0.2s;\n resize: ${(props) => props.resize};\n font-family: ${FONT_FAMILY_MAIN};\n\n &::placeholder {\n color: #ccd0d4;\n }\n &:focus {\n border-color: #23c4f8 !important;\n }\n ${(props) => props.disabled\n ? `\n border: dashed 1px rgba(0, 0, 0, 0.07);\n color: #9aa1a9;\n &:hover {\n cursor: not-allowed;\n }\n `\n : `\n &:hover {\n border-color: rgba(41, 83, 102, 0.3);\n }\n `}\n ${(props) => props.valid === true\n && `\n border-color: #51e3ae !important;\n `}\n ${(props) => props.valid === false\n && `\n border-color: #f74656 !important;\n color: #f74656;\n `}\n width: ${(props) => (props.width ? props.width : 'auto')};\n\n ${media.mobile`\n font-size: 16px;\n \n &:focus {\n font-size: 16px;\n }\n `}\n`;\n\nconst ErrorMessage = styled.div`\n font-size: 12px;\n height: 20px;\n color: #f74656;\n`;\n\nconst Helpers = styled.div`\n display: flex;\n justify-content: space-between;\n margin-bottom: 8px;\n font-size: 14px;\n line-height: 1.29;\n letter-spacing: -0.1px;\n color: ${(props) => props?.theme?.colors?.notesColor || NOTES_COLOR};\n\n ${media.mobile`\n flex-direction: column;\n `}\n`;\n\nconst Textareafield = ({\n label,\n rows,\n cols,\n placeholder,\n disabled,\n valid,\n optionalLink,\n optionalText,\n width,\n tabIndex,\n name,\n onChange,\n onBlur,\n value,\n errorMessage,\n minLength,\n supplementaryInfo,\n textareaRef,\n labelTextColor,\n inputTextColor,\n backgroundColor,\n resize,\n}) => (\n <InputContainer>\n <FieldLabel\n label={label}\n optionalLink={optionalLink}\n optionalText={optionalText}\n valid={valid}\n labelTextColor={labelTextColor}\n />\n {(minLength || supplementaryInfo) && (\n <Helpers>\n {minLength && (\n <div>\n <TextareaCounter minLength={minLength} value={value} />\n </div>\n )}\n {supplementaryInfo && <div>{supplementaryInfo}</div>}\n </Helpers>\n )}\n <Textarea\n rows={rows}\n cols={cols}\n tabIndex={tabIndex}\n placeholder={placeholder}\n disabled={disabled}\n valid={valid}\n width={width}\n name={name}\n onChange={onChange}\n onBlur={onBlur}\n value={value}\n data-test-selector={`form-field-${name}`}\n ref={textareaRef}\n backgroundColor={backgroundColor}\n inputTextColor={inputTextColor}\n resize={resize}\n />\n {errorMessage && <ErrorMessage>{errorMessage}</ErrorMessage>}\n </InputContainer>\n);\n\nTextareafield.propTypes = {\n label: PropTypes.string,\n placeholder: PropTypes.string,\n rows: PropTypes.string,\n cols: PropTypes.string,\n optionalLink: PropTypes.string,\n optionalText: PropTypes.string,\n disabled: PropTypes.bool,\n valid: PropTypes.bool,\n width: PropTypes.string,\n name: PropTypes.string,\n onChange: PropTypes.func,\n onBlur: PropTypes.func,\n value: PropTypes.any,\n errorMessage: PropTypes.string,\n tabIndex: PropTypes.string,\n minLength: PropTypes.number,\n supplementaryInfo: PropTypes.node,\n textareaRef: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.instanceOf(Element) }),\n ]),\n labelTextColor: PropTypes.string,\n inputTextColor: PropTypes.string,\n backgroundColor: PropTypes.string,\n resize: PropTypes.string,\n};\n\nTextareafield.defaultProps = {\n label: '',\n placeholder: '',\n rows: '5',\n cols: '',\n disabled: false,\n valid: null,\n width: '',\n optionalLink: '',\n optionalText: '',\n name: '',\n onChange: () => {},\n onBlur: () => {},\n value: '',\n errorMessage: '',\n tabIndex: null,\n minLength: null,\n supplementaryInfo: null,\n textareaRef: null,\n labelTextColor: '#354354',\n inputTextColor: '#354354',\n backgroundColor: '#f4f7f9',\n resize: 'none',\n};\n\nexport default Textareafield;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from 'styled-components';\n\nimport SuccessIcon from '../../images/icon-success.inline.svg';\n\nconst Container = styled.section`\n display: flex;\n flex-direction: column;\n align-items: center;\n padding: 24px 16px;\n`;\n\nconst Icon = styled(SuccessIcon)`\n margin-bottom: 16px;\n`;\n\nconst Text = styled.div`\n font-size: 18px;\n line-height: 1.33;\n letter-spacing: 0.2px;\n text-align: center;\n color: #354354;\n`;\n\nclass Success extends Component {\n render() {\n const { message } = this.props;\n\n return (\n <Container>\n <Icon\n width=\"56\"\n height=\"56\"\n viewBox=\"0 0 56 56\"\n />\n <Text>{message}</Text>\n </Container>\n );\n }\n}\n\nSuccess.propTypes = {\n message: PropTypes.string,\n};\n\nSuccess.defaultProps = {\n message: 'Message text',\n};\n\nexport { Success };\n","import React, { Component } from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport { observer } from 'mobx-react';\nimport { Formik, Form } from 'formik';\nimport * as Yup from 'yup';\nimport isEmpty from 'lodash/isEmpty';\nimport { Combobox } from '@shared/fields';\nimport RadioGroup from '@shared/fields/RadioGroup';\nimport media from '../../utils/mediaQueries';\n\nimport Btn from '../buttons/Btn';\nimport Field from '../fields/Field';\nimport Textarea from '../fields/Textareafield';\nimport Loader from '../loader';\nimport { Success } from '../messages/Success';\n\nimport stores from '../../stores';\nimport { MAIN_BLUE } from '../../theme';\n\nconst options = [\n {\n text: 'Oui',\n value: 'true',\n },\n {\n text: 'Non',\n value: 'false',\n },\n];\n\nconst ReportSchema = Yup.object().shape({\n name: Yup.string()\n .matches(\n /^[A-Za-z\\u00C0-\\u00FF\\-\\ ]+$/,\n 'Ce champ ne peut contenir que des lettres, des espaces ou un tiret (-).',\n )\n .required('Ce champ est obligatoire.'),\n email: Yup.string()\n .trim('Ce champ ne peut pas inclure d\\'espace au début et à la fin')\n .strict(true)\n .email('Merci de renseigner une adresse email valide.')\n .required('Ce champ est obligatoire.'),\n reason: Yup.string().required('Ce champ est obligatoire.'),\n});\n\nconst Overlay = styled.div`\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: rgba(0, 0, 0, 0.4);\n z-index: 999999999;\n`;\n\nconst Modal = styled.div`\n position: relative;\n border-radius: 12px;\n box-shadow: 0 -1px 1px 0 rgba(0, 0, 0, 0.02),\n 0 2px 4px 0 rgba(155, 132, 135, 0.06), 0 4px 12px 0 rgba(119, 94, 98, 0.05);\n background-color: #ffffff;\n width: 400px;\n overflow: hidden !important;\n ${media.mobile`\n width: 100%;\n margin: 10px;\n `}\n`;\n\nconst Content = styled.div`\n overflow-y: auto;\n padding: 20px 24px 24px;\n height: calc(100vh - 30px);\n max-height: 758px;\n ${media.mobile`\n height: calc(100vh - 30px);\n `}\n`;\n\nconst CloseButton = styled.button`\n width: 16px;\n height: 16px;\n position: absolute;\n top: 8px;\n right: 15px;\n border: none;\n background: none;\n padding: 0;\n outline: none;\n ${media.mobile`\n right: 5px;\n `}\n`;\n\nconst Title = styled.div`\n font-size: 18px;\n font-weight: 800;\n line-height: 1.44;\n letter-spacing: 0.2px;\n color: #354354;\n`;\n\nconst Text = styled.div`\n font-size: 16px;\n color: #354354;\n margin-bottom: 16px;\n`;\n\nconst Link = styled.a`\n font-size: 16px;\n line-height: 1.33;\n letter-spacing: 0.2px;\n color: ${({ isAvisSolution }) => isAvisSolution ? '#313b82' : MAIN_BLUE};\n text-decoration: none;\n &:hover,\n &:focus,\n &:active,\n &:visited {\n text-decoration: none;\n color: ${({ isAvisSolution }) => isAvisSolution ? '#313b82' : MAIN_BLUE};\n }\n`;\n\nclass ReportClassComponent extends Component {\n constructor(props) {\n super(props);\n this.state = {\n selectedOption: options[0].value,\n };\n }\n\n componentDidMount = () => {\n const { isSchool } = this.props;\n stores.reviewsStore.getReasons(isSchool);\n };\n\n onOptionChange = (option) => {\n this.setState({\n selectedOption: option,\n });\n };\n\n onFormSubmit = (values, formikBag) => {\n const { reviewId, isSchool, isAvisSolution } = this.props;\n const { selectedOption } = this.state;\n const data = {\n author_name: values.name,\n author_email: values.email,\n is_employee: JSON.parse(selectedOption),\n description: values.description,\n };\n\n if (isSchool) {\n data.rating_id = reviewId;\n data.review_report_reason_id = values.reason;\n if (isAvisSolution) {\n data.partner = 'avis-solution';\n }\n } else {\n data.exam_center_review_id = reviewId;\n data.exam_center_review_report_reason_id = values.reason;\n }\n\n stores.reviewsStore.report(data, formikBag, isSchool);\n };\n\n render() {\n const { onClose, isSchool, isAvisSolution } = this.props;\n const { selectedOption } = this.state;\n const {\n reportReasons,\n isLoading,\n isSending,\n reportResult,\n } = stores.reviewsStore;\n\n return (\n <Overlay>\n <Modal>\n {isEmpty(reportReasons) ? (\n isLoading && <Loader containerHeight={400} />\n ) : (\n <>\n <CloseButton onClick={onClose}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n >\n <path\n fill=\"#CCD0D4\"\n d=\"M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0zm2.924 5.062a.545.545 0 0 0-.771 0l-2.07 2.153-2.25-2.182a.545.545 0 1 0-.757.785l2.237 2.153-2.237 2.153a.545.545 0 1 0 .757.785l2.25-2.182 2.07 2.153a.545.545 0 1 0 .785-.756L8.855 7.942l2.083-2.182a.545.545 0 0 0-.014-.698z\"\n />\n </svg>\n </CloseButton>\n <Content>\n {reportResult === true ? (\n <Success message=\"Votre signalement a été transmis.\" />\n ) : (\n <Formik\n initialValues={{\n name: '',\n email: '',\n reasonId: '',\n description: '',\n }}\n validationSchema={ReportSchema}\n onSubmit={this.onFormSubmit}\n >\n {({\n values,\n errors,\n touched,\n handleChange,\n handleBlur,\n }) => (\n <Form>\n <Title>Signaler un avis</Title>\n <section>\n <Text>\n Merci de renseigner les informations suivantes\n </Text>\n <Field\n type=\"text\"\n placeholder=\"Votre nom\"\n name=\"name\"\n onChange={handleChange}\n onBlur={handleBlur}\n value={values.name}\n valid={touched.name && !errors.name}\n errorMessage={\n errors.name && touched.name ? errors.name : null\n }\n />\n <Field\n type=\"text\"\n placeholder=\"Votre email\"\n name=\"email\"\n onChange={handleChange}\n onBlur={handleBlur}\n value={values.email}\n valid={touched.email && !errors.email}\n errorMessage={\n errors.email && touched.email\n ? errors.email\n : null\n }\n />\n </section>\n <section>\n <Text>\n Travaillez-vous pour\n {' '}\n {isSchool ? 'l’auto-école' : 'le centre d\\'examen'}\n {' '}\n concernée par cet\n avis\n </Text>\n <RadioGroup\n options={options}\n small\n currentOption={selectedOption}\n onOptionChange={this.onOptionChange}\n activeBackgroundColor={isAvisSolution ? '#313b82' : MAIN_BLUE}\n />\n </section>\n <section>\n <Text>\n Pour être supprimé, l’avis doit être contraire aux \n <Link href={isAvisSolution ? '/a-propos/conditions-particulieres-avis?partner=avis-solution' : '/legal#avis'} target=\"_blank\" rel=\"noopener noreferrer\" isAvisSolution={isAvisSolution}>\n Conditions générales d’Utilisation\n </Link>\n . Merci de consulter ces dernières et de préciser\n quel critère de publication vous semble avoir été\n enfreint.\n </Text>\n <Combobox\n placeholder=\"Motif du signalement\"\n name=\"reason\"\n options={reportReasons}\n onChange={handleChange}\n onBlur={handleBlur}\n value={values.reason}\n valid={touched.reason && !errors.reason}\n errorMessage={\n errors.reason && touched.reason\n ? errors.reason\n : null\n }\n />\n <Textarea\n placeholder=\"Précisez le (ou les) passage(s) concernés\"\n name=\"description\"\n onChange={handleChange}\n onBlur={handleBlur}\n value={values.description}\n />\n </section>\n <Btn small isLoading={isSending} text=\"Envoyer\" color={isAvisSolution ? '#313b82' : MAIN_BLUE} />\n </Form>\n )}\n </Formik>\n )}\n </Content>\n </>\n )}\n </Modal>\n </Overlay>\n );\n }\n}\n\nReportClassComponent.propTypes = {\n reviewId: PropTypes.string,\n onClose: PropTypes.func,\n isSchool: PropTypes.bool,\n isAvisSolution: PropTypes.bool,\n};\n\nReportClassComponent.defaultProps = {\n reviewId: '',\n onClose: () => {},\n isSchool: true,\n isAvisSolution: false,\n};\n\nconst Report = observer(ReportClassComponent);\n\nexport default Report;\n","const isOS = () => navigator.userAgent.match(/ipad|iphone/i);\n\nexport default {\n isOS,\n selectText: (target) => {\n let range;\n let selection;\n\n if (isOS()) {\n range = document.createRange();\n range.selectNodeContents(target);\n selection = window.getSelection();\n selection.removeAllRanges();\n selection.addRange(range);\n target.setSelectionRange(0, 999999);\n } else {\n target.select();\n }\n },\n copyToClipboard: () => {\n document.execCommand('copy');\n },\n};\n","import React, { Component } from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport media from '../../utils/mediaQueries';\n\nimport Btn from '../buttons/Btn';\nimport Clipboard from '../../utils/clipboard';\nimport { MAIN_BLUE } from '../../theme';\n\nconst copyButtonTexts = {\n normal: 'Copier le lien',\n coppied: 'Lien copié',\n};\n\nconst Modal = styled.div`\n position: absolute;\n bottom: -110px;\n right: 0;\n background: #ffffff;\n z-index: 100;\n padding: 20px 24px 12px;\n border-radius: 12px;\n overflow: hidden;\n box-shadow: 0 -1px 1px 0 rgba(0, 0, 0, 0.02),\n 0 2px 4px 0 rgba(155, 132, 135, 0.06), 0 4px 12px 0 rgba(119, 94, 98, 0.05);\n ${media.mobile`\n width: 100%;\n bottom: -110px;\n `}\n`;\n\nconst CloseButton = styled.button`\n width: 18px;\n height: 18px;\n position: absolute;\n top: 8px;\n right: 8px;\n background: none;\n padding: 0;\n outline: none;\n border-radius: 50%;\n border: 1px solid #ffffff;\n &:focus {\n border-color: #b7c2ce;\n }\n`;\n\nconst Title = styled.div`\n font-size: 16px;\n color: #354354;\n margin-bottom: 4px;\n`;\n\nconst Input = styled.input`\n width: 400px;\n border: none;\n background: transparent;\n font-size: 14px;\n color: ${({ isAvisSolution }) => isAvisSolution ? '#313b82' : MAIN_BLUE};\n margin-bottom: 8px;\n outline: none;\n ${media.mobile`\n width: 100%;\n `}\n`;\n\nclass ShareLink extends Component {\n constructor(props) {\n super(props);\n\n this.textInput = React.createRef();\n this.state = {\n isCoppied: false,\n };\n }\n\n copyToClipboard = () => {\n Clipboard.selectText(this.textInput.current);\n Clipboard.copyToClipboard();\n\n this.setState({\n isCoppied: true,\n });\n\n const timer = setTimeout(() => {\n this.setState({\n isCoppied: false,\n });\n clearTimeout(timer);\n }, 2000);\n };\n\n render() {\n const {\n reviewId, isSchool, onClose, isAvisSolution,\n } = this.props;\n const { isCoppied } = this.state;\n const hostUrl = document.location.origin;\n\n return (\n <Modal>\n <CloseButton onClick={onClose}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n >\n <path\n fill=\"#CCD0D4\"\n d=\"M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0zm2.924 5.062a.545.545 0 0 0-.771 0l-2.07 2.153-2.25-2.182a.545.545 0 1 0-.757.785l2.237 2.153-2.237 2.153a.545.545 0 1 0 .757.785l2.25-2.182 2.07 2.153a.545.545 0 1 0 .785-.756L8.855 7.942l2.083-2.182a.545.545 0 0 0-.014-.698z\"\n />\n </svg>\n </CloseButton>\n <Title>Partagez cet avis en copiant le lien ci-dessous</Title>\n <Input\n type=\"text\"\n readonly\n ref={this.textInput}\n defaultValue={`${hostUrl}/${isSchool ? 'avis' : 'avis-code-de-la-route'}/${reviewId}${isAvisSolution ? '?partner=avis-solution' : ''}`}\n isAvisSolution={isAvisSolution}\n />\n <Btn\n type=\"button\"\n small\n text={isCoppied ? copyButtonTexts.coppied : copyButtonTexts.normal}\n onClick={this.copyToClipboard}\n color={isAvisSolution ? '#313b82' : MAIN_BLUE}\n />\n </Modal>\n );\n }\n}\n\nShareLink.propTypes = {\n reviewId: PropTypes.string,\n onClose: PropTypes.func,\n isSchool: PropTypes.bool,\n isAvisSolution: PropTypes.bool,\n};\n\nShareLink.defaultProps = {\n reviewId: '',\n onClose: () => {},\n isSchool: true,\n isAvisSolution: false,\n};\n\nexport default ShareLink;\n","export default __webpack_public_path__ + \"ecebc9d9985cae19ec4369eb7722220d.svg\";","export default __webpack_public_path__ + \"85cf592113e28eac997b01245415beec.svg\";","export default __webpack_public_path__ + \"ee46bc77555c135551135eef89b74da7.svg\";","export default __webpack_public_path__ + \"ebf381f4b37fdc8407dd31387e1d07c4.svg\";","export default __webpack_public_path__ + \"c65ed88a9666fab1c6f0f27c11ee5e2c.svg\";"],"names":["styles","props","xmlns","viewBox","d","xmlnsXlink","id","width","height","x","y","filterUnits","dy","in","result","stdDeviation","values","fill","transform","filter","xlinkHref","ToolbarButton","styled","button","isAvisSolution","FONT_FAMILY_MAIN","bold","AnswerButton","onAnswerClick","onClick","AnswerBoxContainer","div","AnswerBoxArrowLeft","svg","AnswerBoxTitle","AnswerBoxField","textarea","AnswerBoxFormToolbar","AnswerBoxButton","Btn","AnswerForm","value","onChange","onSubmit","isSending","onCancel","hasError","isModifyView","rows","isLoading","text","defaultProps","Container","LeftSide","RightSide","ToolbarButtonReport","hornIconAvisSolution","hornIcon","ToolbarButtonShare","shareIconAvisSolution","shareIcon","AnswerTitle","NOTES_COLOR","AnswerContent","AnswerUpdateButton","pencilIcon","ReviewToolbar","answer","hasAnswerForm","hasAnswerButton","hasUpdateButton","onAnswerChange","onAnswerSubmit","onAnswerCancel","isAnswerSending","showReportWindow","showShareLinkWindow","isServiceButtonsSectionVisible","isAnswerError","isSchool","answerValue","h2","p","RAVEN","Label","label","InputsHint","h4","MultipleInputsRow","InputCell","CheckboxRow","LargeInputContainer","XLargeInputContainer","MediumInputContainer","SmallInputContainer","DEVICES","LARGE","XSmallInputContainer","ButtonContainer","ErrorMessage","Info","MAIN_BLUE","WATERMELON","ErrorMessageContainer","ERROR_COLOR","RESOLUTION","SMALL","MEDIUM","EXTRA_LARGE","CounterValue","span","SUCCESS_COLOR","TextareaCounter","minLength","className","length","InputContainer","Textarea","backgroundColor","inputTextColor","resize","disabled","valid","media","mobile","Helpers","theme","colors","notesColor","Textareafield","cols","placeholder","optionalLink","optionalText","tabIndex","name","onBlur","errorMessage","supplementaryInfo","textareaRef","labelTextColor","ref","section","Icon","SuccessIcon","Text","Success","Component","render","message","this","options","ReportSchema","Yup","shape","matches","required","email","trim","strict","reason","Overlay","Modal","Content","CloseButton","Title","Link","a","ReportClassComponent","constructor","super","stores","reviewsStore","getReasons","option","setState","selectedOption","formikBag","reviewId","state","data","author_name","author_email","is_employee","JSON","parse","description","rating_id","review_report_reason_id","partner","exam_center_review_id","exam_center_review_report_reason_id","report","onClose","reportReasons","reportResult","isEmpty","containerHeight","initialValues","reasonId","validationSchema","onFormSubmit","errors","touched","handleChange","handleBlur","type","small","currentOption","onOptionChange","activeBackgroundColor","href","target","rel","color","observer","isOS","navigator","userAgent","match","range","selection","document","createRange","selectNodeContents","window","getSelection","removeAllRanges","addRange","setSelectionRange","select","execCommand","copyButtonTexts","Input","input","ShareLink","Clipboard","textInput","current","isCoppied","timer","setTimeout","clearTimeout","React","hostUrl","location","origin","readonly","defaultValue","copyToClipboard"],"sourceRoot":""}