{"version":3,"file":"js/9022-210c3561b28bb64ae3c3.js","mappings":"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","sources":["webpack:///./app/javascript/main-app/components/ReviewForm/SchoolReviewForm/FunderReviewFormFootnote.tsx","webpack:///./app/javascript/main-app/components/ReviewForm/SchoolReviewForm/FunderReviewFormComponent.tsx","webpack:///./app/javascript/main-app/components/ReviewForm/SchoolReviewForm/FunderReviewForm.tsx","webpack:///./app/javascript/main-app/components/ReviewForm/SchoolReviewForm/constants.js","webpack:///./app/javascript/main-app/components/ReviewForm/SchoolReviewForm/mappers.ts","webpack:///./app/javascript/main-app/components/ReviewForm/SchoolReviewForm/reviewerTypes.ts","webpack:///./app/javascript/main-app/components/ReviewForm/TextareaHints/TextareaHints.tsx","webpack:///./app/javascript/main-app/enums/ReviewerType.ts","webpack:///./app/javascript/main-app/enums/Annonces.ts"],"sourcesContent":["import React from 'react';\nimport styled from 'styled-components';\n\nimport { BLUE_GREY } from '../../../theme';\n\nconst Container = styled.div`\n font-size: 12px;\n line-height: 1.17;\n letter-spacing: -0.1px;\n color: ${BLUE_GREY};\n`;\n\nconst FunderReviewFormFootnote = () => (\n <Container>\n Les donneÌes de ce formulaire font l’objet de traitements dont le responsable est Vroom France - 13 rue Olier 75015 Paris.\n Elles sont utiliseÌes pour permettre aÌ€ l’auto-eÌcole de respecter le criteÌ€re 7.2 du label « QualiteÌ des formations au sein des eÌcoles de conduite ».\n Elles ne font l’objet d’aucune utilisation commerciale. Elles sont conserveÌes pour une dureÌe maximale de cinq (5) ans.\n Vous disposez d’un droit d’acceÌ€s, de rectification, de limitation, de portabiliteÌ, d’opposition, de suppression et vous pouvez deÌfinir\n des directives post mortem relatives aÌ€ vos donneÌes. Vous pouvez exercer vos droits en envoyant un email aÌ€\n {' '}\n <a href=\"mailto:contact@vroomvroom.fr\">contact@vroomvroom.fr</a>\n {' '}\n ou en contactant le DeÌleÌgueÌ aÌ€ la protection des donneÌes de Vroom France. Pour en savoir plus, vous pouvez consulter notre\n {' '}\n <a href=\"/a-propos/donnees-personnelles\" target=\"_blank\" rel=\"noopener noreferrer\">\n politique de protection des données.\n </a>\n </Container>\n);\n\nexport { FunderReviewFormFootnote };\n","import React, { useCallback } from 'react';\nimport { connect, ErrorMessage, FormikContextType } from 'formik';\nimport styled from 'styled-components';\n\nimport { Switcher, Combobox } from '@shared/fields';\nimport { withScrollToError } from '../../../hocs/withScrollToError';\nimport { LabeledField } from '../../LabeledField';\nimport { StarRating } from '../../StarRating';\nimport Textareafield from '../../fields/Textareafield';\nimport { Checkbox } from '../../fields/Checkbox';\nimport { CheckboxLabel } from '../CheckboxLabel';\nimport Btn from '../../buttons/Btn';\nimport {\n BLUE_GREY, ERROR_COLOR, FONT_FAMILY_MAIN,\n} from '../../../theme';\nimport { TextareaHints } from '../TextareaHints';\nimport media from '../../../utils/mediaQueries';\nimport { FunderReviewFormFootnote } from './FunderReviewFormFootnote';\nimport stores from '../../../stores';\nimport { FunderFormValues } from './types/FunderFormValues';\nimport Field from '../../fields/Field';\nimport { ReviewerType } from '../../../enums';\n\nconst Form = styled.form`\n font-size: 14px;\n`;\n\nconst ErrorMessageContainer = styled.div`\n font-family: ${FONT_FAMILY_MAIN};\n color: ${ERROR_COLOR};\n font-size: 12px;\n line-height: 1.17;\n margin-top: 3px;\n`;\n\nconst FieldComment = styled.div`\n font-family: ${FONT_FAMILY_MAIN};\n font-size: 12px;\n line-height: 1.17;\n letter-spacing: -0.1px;\n color: ${BLUE_GREY};\n margin-top: 8px;\n`;\n\nconst ButtonContainer = styled.div`\n margin: 16px 0 24px;\n width: 242px;\n\n ${media.mobile`\n max-width: none;\n `}\n`;\n\nconst GroupedField = styled.div`\n ${(props) => props.hidden && 'display: none;'}\n \n & + & {\n margin-top: 16px;\n }\n`;\n\nconst FieldNote = styled.div`\n color: ${BLUE_GREY};\n margin-top: 8px;\n font-size: 12px;\n line-height: 1.17;\n letter-spacing: -0.1px;\n font-weight: 400;\n`;\n\ntype FormProps = {\n setReviewerType(type: string): void;\n reviewersOptions: Array<{\n id: ReviewerType,\n name: string\n }>;\n reviewTextRef: React.RefObject<HTMLTextAreaElement>;\n userSchools?: Array<{\n id: string,\n title: string,\n placeId: string\n }>;\n isReferral?: boolean;\n minCommentLength?: number;\n};\n\ntype FormikProps = {\n formik: FormikContextType<FunderFormValues>;\n};\n\nconst ReviewForm = ({\n formik, reviewersOptions, setReviewerType, reviewTextRef, userSchools, isReferral, minCommentLength,\n}: FormProps & FormikProps) => {\n const {\n values, errors, touched, handleChange, handleSubmit, handleBlur, isSubmitting, status, setFieldValue,\n } = formik;\n\n const handleReviewerTypeChange = useCallback((e: React.ChangeEvent<HTMLSelectElement>, setValue: (field: string, value: string) => void) => {\n setReviewerType(e.currentTarget.value);\n setValue(e.currentTarget.name, e.currentTarget.value);\n }, []);\n\n const handleSchoolChange = (e: React.ChangeEvent<HTMLSelectElement>, setValue: (field: string, value: string) => void) => {\n const { schoolReviewStore } = stores;\n const selectedSchool = userSchools.find((school) => school.id === e.currentTarget.value);\n schoolReviewStore.setPlaceId(selectedSchool.placeId);\n setValue(e.currentTarget.name, e.currentTarget.value);\n };\n\n return (\n <Form onSubmit={handleSubmit} data-testid=\"funder-review-form\">\n {userSchools.length\n ? (\n <LabeledField label=\"Auto-école\">\n <Combobox\n name=\"selectedSchoolId\"\n width=\"100%\"\n options={userSchools}\n onChange={(e) => handleSchoolChange(e, setFieldValue)}\n onBlur={handleBlur}\n value={values.selectedSchoolId || userSchools[0].id}\n />\n </LabeledField>\n )\n : ''}\n {!isReferral && (\n <LabeledField label=\"Vous êtes\" isRequired error={errors.reviewerType && touched.reviewerType}>\n <Combobox\n name=\"reviewerType\"\n width=\"100%\"\n options={reviewersOptions}\n onChange={(e) => handleReviewerTypeChange(e, setFieldValue)}\n onBlur={handleBlur}\n value={values.reviewerType}\n />\n </LabeledField>\n )}\n <LabeledField isRequired label=\"Note globale\" error={errors.stars && touched.stars}>\n <StarRating\n selectedStars={values.stars}\n onStarClick={handleChange}\n name=\"stars\"\n />\n <ErrorMessage component={ErrorMessageContainer} name=\"stars\" />\n </LabeledField>\n <LabeledField label=\"Offre de formation\">\n <Switcher\n items={['1', '2', '3', '4', '5']}\n name=\"offer\"\n activeItem={values.offer}\n onChange={handleChange}\n />\n <FieldComment>Notre offre de formation est-elle accessible et claire ?</FieldComment>\n </LabeledField>\n <LabeledField label=\"Devis\">\n <Switcher\n items={['1', '2', '3', '4', '5']}\n name=\"estimate\"\n activeItem={values.estimate}\n onChange={handleChange}\n />\n <FieldComment>Les devis transmis pour les prestations de formations eÌtaient-ils suffisamment deÌtailleÌs ?</FieldComment>\n </LabeledField>\n <LabeledField label=\"Documents administratifs\">\n <Switcher\n items={['1', '2', '3', '4', '5']}\n name=\"documents\"\n activeItem={values.documents}\n onChange={handleChange}\n />\n <FieldComment>Suite aÌ€ une formation, avez-vous reçu de la part de notre organisme les documents administratifs qui vous sont neÌcessaires ?</FieldComment>\n </LabeledField>\n <LabeledField label=\"Délais\">\n <Switcher\n items={['1', '2', '3', '4', '5']}\n name=\"indulgence\"\n activeItem={values.indulgence}\n onChange={handleChange}\n />\n <FieldComment>Nos deÌlais de traitement sont-ils conformes aÌ€ vos attentes ?</FieldComment>\n </LabeledField>\n <LabeledField label=\"Facturation\">\n <Switcher\n items={['1', '2', '3', '4', '5']}\n name=\"billing\"\n activeItem={values.billing}\n onChange={handleChange}\n />\n <FieldComment>La facturation de la formation dispenseÌe est-elle en adeÌquation avec le devis eÌtabli ?</FieldComment>\n </LabeledField>\n <LabeledField\n label=\"Commentaire\"\n isRequired\n error={errors.comment && touched.comment}\n labelAddition={(\n <TextareaHints\n content=\"Parlez de la qualité des relations que vous avez eues avec l'auto-école, de la clarté du devis, de l'offre de formation et de la facturation.\"\n value={values.comment}\n minLength={minCommentLength || 200}\n />\n )}\n >\n <Textareafield\n name=\"comment\"\n value={values.comment}\n onChange={handleChange}\n onBlur={handleBlur}\n valid={touched.comment && !errors.comment}\n textareaRef={reviewTextRef}\n resize=\"vertical\"\n />\n <ErrorMessage component={ErrorMessageContainer} name=\"comment\" />\n <FieldComment>\n <a href=\"/a-propos/conditions-particulieres-avis\" target=\"_blank\" rel=\"noopener noreferrer\">\n Voir les critères de publication des avis\n </a>\n <div>Attention, les avis sont publiés et référencés, soyez courtois, ne citez pas le nom des personnes dans votre commentaire.</div>\n </FieldComment>\n </LabeledField>\n {!isReferral && (\n <LabeledField\n label=\"Contact\"\n labelAddition={<FieldNote>Vous gardez l’anonymat et ne serez jamais spammé</FieldNote>}\n isRequired\n error={(errors.lastName && touched.lastName) || (errors.firstName && touched.firstName) || (errors.email && touched.email)}\n >\n <GroupedField>\n <Field\n placeholder=\"Nom\"\n name=\"lastName\"\n value={values.lastName}\n onChange={handleChange}\n onBlur={handleBlur}\n valid={touched.lastName && !errors.lastName}\n />\n <ErrorMessage component={ErrorMessageContainer} name=\"lastName\" />\n </GroupedField>\n <GroupedField>\n <Field\n placeholder=\"Prénom\"\n name=\"firstName\"\n value={values.firstName}\n onChange={handleChange}\n onBlur={handleBlur}\n valid={touched.firstName && !errors.firstName}\n />\n <ErrorMessage component={ErrorMessageContainer} name=\"firstName\" />\n </GroupedField>\n <GroupedField>\n <Field\n placeholder=\"Email\"\n name=\"email\"\n type=\"email\"\n value={values.email}\n onChange={handleChange}\n onBlur={handleBlur}\n valid={touched.email && !errors.email}\n />\n <ErrorMessage component={ErrorMessageContainer} name=\"email\" />\n </GroupedField>\n </LabeledField>\n )}\n <LabeledField label=\"\">\n <Checkbox\n name=\"conditionsAccepted\"\n label={<CheckboxLabel />}\n isChecked={values.conditionsAccepted}\n onChange={handleChange}\n error={errors.conditionsAccepted && touched.conditionsAccepted}\n />\n <ErrorMessage component={ErrorMessageContainer} name=\"conditionsAccepted\" />\n\n <ButtonContainer>\n <Btn type=\"submit\" text=\"Publier l'avis\" isLoading={isSubmitting} disabled={isSubmitting} block name=\"submitReview\" />\n {!!status && !status.success && <ErrorMessageContainer>Une erreur est survenue.</ErrorMessageContainer>}\n {errors.message && <ErrorMessageContainer>{errors.message}</ErrorMessageContainer>}\n </ButtonContainer>\n </LabeledField>\n <FunderReviewFormFootnote />\n </Form>\n );\n};\n\nReviewForm.defaultProps = {\n userSchools: [],\n isReferral: false,\n minCommentLength: 200,\n};\n\nconst FunderReviewFormComponent = withScrollToError(connect(ReviewForm));\n\nexport { FunderReviewFormComponent };\n","import React from 'react';\nimport * as Yup from 'yup';\nimport { Formik, FormikHelpers } from 'formik';\n\nimport { FunderReviewFormComponent } from './FunderReviewFormComponent';\nimport { ReviewerOption } from './types/ReviewerOption';\nimport { UserSchool } from './types/UserSchool';\nimport { FunderFormValues } from './types/FunderFormValues';\nimport { ReviewerType } from '../../../enums';\nimport { MESSAGE_MIN_LENGTH, MESSAGE_MAX_LENGTH } from './constants';\n\nconst validationSchema = (minCommentLength: number) => Yup.object().shape({\n stars: Yup.string()\n .required('Ce champ est obligatoire.'),\n offer: Yup.number().min(0).nullable(),\n estimate: Yup.number().min(0).nullable(),\n documents: Yup.number().min(0).nullable(),\n indulgence: Yup.number().min(0).nullable(),\n billing: Yup.number().min(0).nullable(),\n comment: Yup.string()\n .trim()\n .required('Ce champ est obligatoire.')\n .min(minCommentLength, `Veuillez fournir au moins ${minCommentLength} caractères.`)\n .max(MESSAGE_MAX_LENGTH, `Votre avis est trop long ! Nous limitons la longueur des avis à ${MESSAGE_MAX_LENGTH} caractères… essayez de le raccourcir un peu.`),\n lastName: Yup.string()\n .required('Ce champ est obligatoire.'),\n firstName: Yup.string()\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('Veuillez fournir une adresse électronique valide.')\n .required('Ce champ est obligatoire.'),\n conditionsAccepted: Yup.bool()\n .oneOf([true], 'Veuillez accepter les Conditions générales de publication des avis.'),\n});\n\nconst referralValidationSchema = (minCommentLength: number) => Yup.object().shape({\n stars: Yup.string()\n .required('Ce champ est obligatoire.'),\n offer: Yup.number().min(0).nullable(),\n estimate: Yup.number().min(0).nullable(),\n documents: Yup.number().min(0).nullable(),\n indulgence: Yup.number().min(0).nullable(),\n billing: Yup.number().min(0).nullable(),\n comment: Yup.string()\n .trim()\n .required('Ce champ est obligatoire.')\n .min(minCommentLength, `Veuillez fournir au moins ${minCommentLength} caractères.`)\n .max(MESSAGE_MAX_LENGTH, `Votre avis est trop long ! Nous limitons la longueur des avis à ${MESSAGE_MAX_LENGTH} caractères… essayez de le raccourcir un peu.`),\n conditionsAccepted: Yup.bool()\n .oneOf([true], 'Veuillez accepter les Conditions générales de publication des avis.'),\n});\n\nconst commonInitialValues = {\n stars: '',\n offer: null,\n estimate: null,\n documents: null,\n indulgence: null,\n billing: null,\n conditionsAccepted: false,\n comment: '',\n};\n\nconst contactInitialValues = {\n firstName: '',\n lastName: '',\n email: '',\n};\n\ntype FormProps = {\n setReviewerType?(type: ReviewerType): void;\n reviewersOptions?: ReviewerOption[];\n reviewTextRef: React.RefObject<HTMLTextAreaElement>;\n reviewerType: ReviewerType;\n onFormSubmit(values: FunderFormValues, {\n setErrors, setStatus, setSubmitting,\n }: FormikHelpers<FunderFormValues>): void;\n userSchools?: UserSchool[];\n isReferral?: boolean\n minCommentLength?: number;\n};\n\nconst FunderReviewForm = ({\n reviewerType, onFormSubmit, setReviewerType, reviewersOptions, reviewTextRef, userSchools, isReferral, minCommentLength,\n}: FormProps) => {\n let initialValues = {};\n if (isReferral) {\n initialValues = commonInitialValues;\n } else {\n initialValues = {\n ...commonInitialValues,\n ...contactInitialValues,\n reviewerType,\n };\n }\n\n return (\n <Formik\n initialValues={initialValues}\n onSubmit={onFormSubmit}\n validationSchema={isReferral\n ? referralValidationSchema(minCommentLength || 200)\n : validationSchema(minCommentLength || 200)}\n >\n <FunderReviewFormComponent\n reviewerType={reviewerType}\n setReviewerType={setReviewerType}\n reviewersOptions={reviewersOptions}\n reviewTextRef={reviewTextRef}\n userSchools={userSchools}\n isReferral={isReferral}\n minCommentLength={minCommentLength}\n />\n </Formik>\n );\n};\n\nFunderReviewForm.defaultProps = {\n isReferral: false,\n setReviewerType: () => {},\n reviewersOptions: null,\n userSchools: [],\n minCommentLength: MESSAGE_MIN_LENGTH,\n};\n\nexport { FunderReviewForm };\n","export const MESSAGE_MIN_LENGTH = 200;\nexport const MESSAGE_MAX_LENGTH = 10000;\n","import { format } from 'date-fns';\nimport { ReviewPayload } from '../../../api/school_review';\nimport { ReviewerType } from '../../../enums';\nimport { FunderFormValues } from './types/FunderFormValues';\nimport { StudentFormValues } from './types/StudentFormValues';\n\nexport const valuesToPayload = (schoolId: string, values: FunderFormValues | StudentFormValues): ReviewPayload => {\n if (values.reviewerType === ReviewerType.Student) {\n const valuesData = values as StudentFormValues;\n const {\n stars,\n textareaField,\n firstName,\n lastName,\n email,\n reception,\n information,\n teaching,\n availability,\n quality,\n licenseType,\n isAgreed,\n drivingLessons,\n drivingExams,\n theoryExams,\n fullCost,\n selectedSchoolId,\n practicalExamDate,\n allowMaifProposal,\n reviewerType,\n } = valuesData;\n const examDate = format(practicalExamDate, 'yyyy-MM-dd');\n\n return {\n allow_maif_proposal: allowMaifProposal,\n availability,\n comment: textareaField,\n conditions_accepted: isAgreed ? '1' : '0',\n email,\n firstname: firstName,\n full_cost: fullCost,\n information,\n lastname: lastName,\n license_type: licenseType,\n nb_of_driving_exam: drivingExams,\n nb_of_driving_lesson: drivingLessons,\n nb_of_theory_exam: theoryExams,\n practical_exam_date: examDate,\n quality,\n reception,\n school_id: selectedSchoolId || schoolId,\n stars,\n teaching,\n reviewer_type: reviewerType,\n };\n }\n\n const valuesData = values as FunderFormValues;\n const {\n stars,\n offer,\n estimate,\n documents,\n indulgence,\n billing,\n comment,\n conditionsAccepted,\n reviewerType,\n selectedSchoolId,\n lastName,\n firstName,\n email,\n } = valuesData;\n return {\n stars,\n offer,\n estimate,\n documents,\n indulgence,\n billing,\n comment,\n conditions_accepted: conditionsAccepted ? '1' : '0',\n school_id: selectedSchoolId || schoolId,\n lastname: lastName,\n firstname: firstName,\n email,\n reviewer_type: reviewerType,\n };\n};\n","import { ReviewerType } from '../../../enums';\n\nexport const REVIEWERS_TITLES: Record<ReviewerType, string> = {\n [ReviewerType.Student]: 'Élève',\n [ReviewerType.Parent]: 'Parent ou famille',\n [ReviewerType.Employer]: 'Employeur',\n [ReviewerType.MissionLocale]: 'Mission locale',\n [ReviewerType.EmploymentCenter]: 'Pôle emploi',\n [ReviewerType.Depository]: 'Caisse des dépôts',\n [ReviewerType.Other]: 'Autre financeur',\n};\n","import React from 'react';\nimport styled from 'styled-components';\n\nimport { Tooltip } from '@shared/Tooltip';\nimport { isMobile } from '../../../constants';\nimport Info from '../../../images/info.inline.svg';\nimport { LINKS_COLOR, NOTES_COLOR } from '../../../theme';\nimport { TextareaCounter } from '../../TextareaCounter';\n\nconst Container = styled.div`\n font-size: 14px;\n font-weight: 400;\n color: ${NOTES_COLOR};\n margin-top: 8px;\n`;\n\nconst Content = styled.div`\n display: flex;\n align-items: center;\n`;\n\nconst InfoIcon = styled(Info)`\n width: 24px;\n height: 24px;\n display: block;\n fill: ${LINKS_COLOR};\n`;\n\ntype TextareaHintsTypes = {\n value: string;\n minLength: number;\n content?: string;\n};\n\nconst TextareaHints = ({ value, minLength, content }: TextareaHintsTypes) => (\n <Container>\n <TextareaCounter value={value} minLength={minLength} />\n <Content>\n En manque d'inspiration\n <Tooltip\n position=\"bottom right\"\n trigger={isMobile ? 'click' : 'hover'}\n content={content}\n width={200}\n >\n <InfoIcon />\n </Tooltip>\n </Content>\n </Container>\n);\n\nTextareaHints.defaultProps = {\n content: 'Parlez de la qualité de la pédagogie des moniteurs, les locaux, l\\'accueil, les temps d\\'attente, le prix etc',\n};\n\nexport { TextareaHints };\n","export enum ReviewerType {\n Student = 'student',\n Parent = 'parent',\n Employer = 'employer',\n MissionLocale = 'mission_locale',\n EmploymentCenter = 'employment_center',\n Depository = 'depository',\n Other = 'other',\n}\n","export enum AnnonceCategory {\n TeacherJobOffer = 'teacher',\n AdministrativeJobOffer = 'secretary',\n MotoTrackOffer = 'motorcycle_track',\n DrivingSchoolSaleOffer = 'sale',\n DrivingSimulatorOffer = 'simulator',\n EquipmentOffer = 'equipment',\n DrivingSchoolVehiclesOffer = 'car',\n}\n"],"names":["Container","styled","div","BLUE_GREY","FunderReviewFormFootnote","href","target","rel","Form","form","ErrorMessageContainer","FONT_FAMILY_MAIN","ERROR_COLOR","FieldComment","ButtonContainer","media","mobile","GroupedField","props","hidden","FieldNote","ReviewForm","formik","reviewersOptions","setReviewerType","reviewTextRef","userSchools","isReferral","minCommentLength","values","errors","touched","handleChange","handleSubmit","handleBlur","isSubmitting","status","setFieldValue","handleReviewerTypeChange","useCallback","e","setValue","currentTarget","value","name","onSubmit","length","LabeledField","label","width","options","onChange","schoolReviewStore","stores","selectedSchool","find","school","id","setPlaceId","placeId","handleSchoolChange","onBlur","selectedSchoolId","isRequired","error","reviewerType","stars","StarRating","selectedStars","onStarClick","component","items","activeItem","offer","estimate","documents","indulgence","billing","comment","labelAddition","TextareaHints","content","minLength","Textareafield","valid","textareaRef","resize","lastName","firstName","email","Field","placeholder","type","Checkbox","CheckboxLabel","isChecked","conditionsAccepted","Btn","text","isLoading","disabled","block","success","message","defaultProps","FunderReviewFormComponent","withScrollToError","connect","validationSchema","Yup","shape","required","min","nullable","trim","max","MESSAGE_MAX_LENGTH","strict","oneOf","referralValidationSchema","commonInitialValues","contactInitialValues","FunderReviewForm","onFormSubmit","initialValues","MESSAGE_MIN_LENGTH","valuesToPayload","schoolId","ReviewerType","Student","valuesData","textareaField","reception","information","teaching","availability","quality","licenseType","isAgreed","drivingLessons","drivingExams","theoryExams","fullCost","practicalExamDate","allowMaifProposal","allow_maif_proposal","conditions_accepted","firstname","full_cost","lastname","license_type","nb_of_driving_exam","nb_of_driving_lesson","nb_of_theory_exam","practical_exam_date","format","school_id","reviewer_type","REVIEWERS_TITLES","Parent","Employer","MissionLocale","EmploymentCenter","Depository","Other","NOTES_COLOR","Content","InfoIcon","Info","LINKS_COLOR","TextareaCounter","Tooltip","position","trigger","isMobile","AnnonceCategory"],"sourceRoot":""}