{"version":3,"file":"static/components/2453-3a00d63e823d7a2b2018.mjs?cv=7","mappings":"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","sources":["webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/notifications/components/common/notifications.config.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/lib/components/utils/url.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/globalContext/reducers.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/lib/components/utils/axios.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/activity/components/common/api.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/globalContext/actions/index.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/allPages/ios.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/genericComponents/grid.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/notifications/components/common/api.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/lib/components/utils/dom.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/genericComponents/Card.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/app/utils.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/allPages/android.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/app/hooks.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/globalContext/QueryStringParamsActions.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/globalContext/GlobalContext.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/genericComponents/Button/utils.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/authentication/common.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/app/routes.components.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/app/routes.config.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/activity/components/common/helpers.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/agir/front/components/offline/hooks.js"],"sourcesContent":["import {\n  NEWSLETTER_OPTIONS,\n  getNewsletterOptions,\n} from \"@agir/front/authentication/common\";\n\nconst PERSON_NOTIFICATIONS = [\n  {\n    id: \"campaign_news\",\n    type: \"Mon compte Action Populaire\",\n    icon: \"rss\",\n    subtype: \"Nouveautés\",\n    label: \"Informations importantes de la campagne\",\n    hasEmail: false,\n    hasPush: true,\n    activityTypes: [],\n  },\n  {\n    id: \"person_related_news\",\n    type: \"Mon compte Action Populaire\",\n    icon: \"rss\",\n    subtype: \"Nouveautés\",\n    label: \"Nouveautés qui me concernent\",\n    hasEmail: true,\n    hasPush: true,\n    activityTypes: [\"referral-accepted\"],\n  },\n  {\n    id: \"security_and_payment_alerts\",\n    type: \"Compte et sécurité\",\n    icon: \"lock\",\n    subtype: \"Compte et sécurité\",\n    label: \"Alertes de sécurité et de paiement\",\n    hasEmail: false,\n    hasPush: false,\n    activityTypes: [],\n  },\n  {\n    id: \"donation_reminders\",\n    type: \"Compte et sécurité\",\n    icon: \"lock\",\n    subtype: \"Compte et sécurité\",\n    label: \"Rappels de don\",\n    hasEmail: false,\n    hasPush: true,\n    activityTypes: [],\n  },\n  {\n    id: \"person_task_reminders\",\n    type: \"Compte et sécurité\",\n    icon: \"lock\",\n    subtype: \"Mes tâches à faire\",\n    label: \"Me rappeler mes tâches à faire régulièrement\",\n    hasEmail: false,\n    hasPush: true,\n    activityTypes: [],\n  },\n  {\n    id: \"event_suggestions\",\n    type: \"Événements\",\n    icon: \"calendar\",\n    subtype: \"Suggestions\",\n    label: \"Suggestion d'événement\",\n    hasEmail: false,\n    hasPush: true,\n    activityTypes: [\"event-suggestion\"],\n  },\n  {\n    id: \"event_updates\",\n    type: \"Événements\",\n    icon: \"calendar\",\n    subtype: \"Événements auxquels je participe\",\n    label: \"Mise à jour d'événement\",\n    hasEmail: true,\n    hasPush: true,\n    activityTypes: [\"event-update\"],\n  },\n  {\n    id: \"event_reminders\",\n    type: \"Événements\",\n    icon: \"calendar\",\n    subtype: \"Événements auxquels je participe\",\n    label: \"Rappel d'événement\",\n    hasEmail: false,\n    hasPush: true,\n    activityTypes: [\"reminder-upcoming-event-start\"],\n  },\n  {\n    id: \"online_event_reminders\",\n    type: \"Événements\",\n    icon: \"calendar\",\n    subtype: \"Événements auxquels je participe\",\n    label: \"Lien de connexion à la visio-conférence 5mn avant\",\n    hasEmail: false,\n    hasPush: true,\n    activityTypes: [],\n  },\n  {\n    id: \"event_rsvp_notifications\",\n    type: \"Événements\",\n    icon: \"calendar\",\n    subtype: \"Événements que j'organise\",\n    label: \"Nouveaux participant·es\",\n    hasEmail: true,\n    hasPush: true,\n    activityTypes: [\"new-attendee\"],\n  },\n  {\n    id: \"event_group_attendee_notifications\",\n    type: \"Événements\",\n    icon: \"calendar\",\n    subtype: \"Événements que j'organise\",\n    label: \"Nouveaux groupes participants\",\n    hasEmail: false,\n    hasPush: true,\n    activityTypes: [\"new-group-attendee\"],\n  },\n  {\n    id: \"event_task_reminders\",\n    type: \"Événements\",\n    icon: \"calendar\",\n    subtype: \"Événements que j'organise\",\n    label: \"Tâches à effectuer \",\n    hasEmail: false,\n    hasPush: true,\n    activityTypes: [\n      \"waiting-location-event\",\n      \"reminder-docs-event-eve\",\n      \"reminder-docs-event-nextday\",\n    ],\n  },\n  {\n    id: \"event_organizer_updates\",\n    type: \"Événements\",\n    icon: \"calendar\",\n    subtype: \"Événements que j'organise\",\n    label: \"Mises à jour pour les organisateur·ices\",\n    hasEmail: false,\n    hasPush: true,\n    activityTypes: [],\n  },\n].filter((notification) => notification.activityTypes.length > 0);\n\nconst GROUP_NOTIFICATIONS = [\n  {\n    id: \"group_join_event\",\n    type: \"Groupes\",\n    icon: \"users\",\n    subtype: \"Événements\",\n    label: \"Participation à un événement\",\n    hasEmail: false,\n    hasPush: true,\n    isActive: (group) => !group.isReferent,\n    activityTypes: [\"new-event-participation-mygroups\"],\n  },\n  {\n    id: \"group_event_coorganization-info\",\n    type: \"Groupes\",\n    icon: \"users\",\n    subtype: \"Événements\",\n    label: \"Gestion des co-organisations des événements\",\n    hasEmail: true,\n    hasPush: true,\n    isActive: (group) => group.isManager,\n    activityTypes: [\"group-coorganization-info\", \"group-coorganization-accepted\", \"group-coorganization-invite\"]\n  },\n  {\n    id: \"group_event_notifications\",\n    type: \"Groupes\",\n    icon: \"users\",\n    subtype: \"Mises à jour du groupe\",\n    label: \"Nouvel événement du groupe\",\n    hasEmail: true,\n    hasPush: true,\n    isActive: true,\n    activityTypes: [\"new-event-mygroups\"],\n  },\n  {\n    id: \"group_event_report_notifications\",\n    type: \"Groupes\",\n    icon: \"users\",\n    subtype: \"Mises à jour du groupe\",\n    label: \"Compte rendu d'un événement du groupe\",\n    hasEmail: true,\n    hasPush: true,\n    isActive: true,\n    activityTypes: [\"new-report\"],\n  },\n  {\n    id: \"group_updates\",\n    type: \"Groupes\",\n    icon: \"users\",\n    subtype: \"Mises à jour du groupe\",\n    label: \"Mise à jour du groupe\",\n    hasEmail: true,\n    hasPush: true,\n    isActive: true,\n    activityTypes: [\"group-info-update\"],\n  },\n  {\n    id: \"group_message_notifications\",\n    type: \"Groupes\",\n    icon: \"users\",\n    subtype: \"Discussions\",\n    label: \"Nouvelle discussion\",\n    hasEmail: true,\n    hasPush: true,\n    isActive: true,\n    activityTypes: [\"new-message\"],\n  },\n  {\n    id: \"group_comment_notifications\",\n    type: \"Groupes\",\n    icon: \"users\",\n    subtype: \"Discussions\",\n    label: \"Réponses à toutes les discussions\",\n    hasEmail: false,\n    hasPush: true,\n    isActive: true,\n    activityTypes: [\"new-comment\"],\n  },\n  {\n    id: \"group_restricted_comment_notifications\",\n    type: \"Groupes\",\n    icon: \"users\",\n    subtype: \"Discussions\",\n    label: \"Réponses aux discussions auxquelles je participe\",\n    hasEmail: true,\n    hasPush: true,\n    isActive: true,\n    activityTypes: [\"new-comment-restricted\"],\n  },\n  {\n    id: \"group_member_notifications\",\n    type: \"Groupes\",\n    icon: \"users\",\n    subtype: \"Gestion de mon groupe\",\n    label: \"Nouveaux membres\",\n    hasEmail: true,\n    hasPush: true,\n    isActive: (group) => group.isManager,\n    activityTypes: [\n      \"new-follower\",\n      \"new-member\",\n      \"accepted-invitation-member\",\n      \"group-membership-limit-reminder\",\n      \"new-members-through-transfer\",\n    ],\n  },\n  {\n    id: \"group_task_reminders\",\n    type: \"Groupes\",\n    icon: \"users\",\n    subtype: \"Gestion de mon groupe\",\n    label: \"Actions à faire\",\n    hasEmail: false,\n    hasPush: true,\n    isActive: (group) => group.isManager,\n    activityTypes: [\"waiting-location-group\", \"group-coorganization-invite\"],\n  },\n  {\n    id: \"group_manager_updates\",\n    type: \"Groupes\",\n    icon: \"users\",\n    subtype: \"Gestion de mon groupe\",\n    label: \"Mises à jour pour les gestionnaires\",\n    hasEmail: false,\n    hasPush: true,\n    isActive: (group) => group.isManager,\n    activityTypes: [\n      \"group-creation-confirmation\",\n      \"group-coorganization-accepted\",\n    ],\n  },\n].filter((notification) => notification.activityTypes.length > 0);\n\nconst getNotificationId = (notificationId, groupId) => {\n  if (groupId) {\n    return `${notificationId}__${groupId}`;\n  }\n  return notificationId;\n};\n\nconst getSingleGroupNotifications = (group) =>\n  GROUP_NOTIFICATIONS.filter((notification) => {\n    if (typeof notification.isActive === \"function\") {\n      return notification.isActive(group);\n    }\n    return notification.isActive;\n  }).map((notification) => ({\n    ...notification,\n    id: getNotificationId(notification.id, group.id),\n    type: group.name,\n    group: group.id,\n  }));\n\nconst getGroupNotifications = (groups = []) =>\n  groups.reduce(\n    (arr, group) => [...arr, ...getSingleGroupNotifications(group)],\n    [],\n  );\n\nconst getNewsletterNotifications = (user) => {\n  if (!user) {\n    return [];\n  }\n\n  return getNewsletterOptions(user).map((option) => ({\n    id: option.value,\n    label: option.label,\n    active: option.active,\n    type: \"Lettres d'information\",\n    icon: \"rss\",\n    subtype: \"Newsletter\",\n    hasEmail: true,\n    hasPush: false,\n    isNewsletter: true,\n  }));\n};\n\nexport const getAllNotifications = (user) => [\n  ...getNewsletterNotifications(user),\n  ...PERSON_NOTIFICATIONS,\n  ...getGroupNotifications(user?.groups),\n];\n\nexport const getNewsletterStatus = (newsletters) => {\n  if (!newsletters || !Array.isArray(newsletters)) {\n    return {};\n  }\n  let newsletterStatus = {};\n  Object.values(NEWSLETTER_OPTIONS).forEach((opt) => {\n    if (!opt.value) {\n      return;\n    }\n    newsletterStatus = {\n      ...newsletterStatus,\n      [opt.value]: { email: newsletters.includes(opt.value) },\n    };\n  });\n  return newsletterStatus;\n};\n\nexport const getNotificationStatus = (activeNotifications) => {\n  const active = {};\n\n  if (!Array.isArray(activeNotifications) || activeNotifications.length === 0) {\n    return active;\n  }\n\n  activeNotifications.forEach((activeNotification) => {\n    let notificationId = null;\n    const notification = activeNotification.group\n      ? GROUP_NOTIFICATIONS.find((groupNotification) =>\n          groupNotification.activityTypes.includes(\n            activeNotification.activityType,\n          ),\n        )\n      : PERSON_NOTIFICATIONS.find((notification) =>\n          notification.activityTypes.includes(activeNotification.activityType),\n        );\n    if (!notification) {\n      return;\n    }\n    notificationId = getNotificationId(\n      notification.id,\n      activeNotification.group,\n    );\n    active[notificationId] = active[notificationId] || {\n      email: false,\n      push: false,\n    };\n    active[notificationId][activeNotification.type] =\n      active[notificationId][activeNotification.type] || [];\n    active[notificationId][activeNotification.type].push(activeNotification.id);\n  });\n  return active;\n};\n\nexport function getDefaultNotifications() {\n  return [\n      ...PERSON_NOTIFICATIONS.filter((notification) =>\n          notification.hasPush && notification.id !== \"event_rsvp_notifications\")\n  ]\n}","export const parseURL = (url) =>\n  new URL(url, window.location && window.location.origin);\n\nexport const relativeToAbsoluteURL = ((a) => (url) => {\n  a.href = url;\n  return a.href;\n})(document.createElement(\"a\"));\n\nexport const stringifyQueryStringParams = (params = {}) => {\n  if (\n    !params ||\n    typeof params !== \"object\" ||\n    Object.keys(params).length === 0\n  ) {\n    return \"\";\n  }\n\n  return new URLSearchParams(\n    Object.entries(params).filter(([_, value]) => typeof value !== \"undefined\"),\n  ).toString();\n};\n\nexport const addQueryStringParams = (url, params = {}, relative = false) => {\n  if (!url) {\n    return \"\";\n  }\n  if (\n    !params ||\n    typeof params !== \"object\" ||\n    Object.keys(params).length === 0\n  ) {\n    return url;\n  }\n  try {\n    let parsedURL = url;\n    parsedURL = parseURL(url);\n    Object.entries(params).forEach(([key, value]) => {\n      if (typeof value !== \"undefined\") {\n        parsedURL.searchParams.set(key, value);\n      }\n    });\n    parsedURL = parsedURL.toString();\n    if (window?.location && relative) {\n      parsedURL = parsedURL.replace(window.location.origin, \"\");\n    }\n    return parsedURL;\n  } catch (e) {\n    return url;\n  }\n};\n\nexport const parseQueryStringParams = (url) => {\n  const params = Object.create(null);\n  let queryString = url ? url.split(\"?\")[1] : window.location.search.slice(1);\n  if (!queryString) {\n    return params;\n  }\n\n  queryString = queryString.split(\"#\")[0];\n  queryString.split(\"&\").forEach((entry) => {\n    // separate the keys and the values\n    let [key, value] = entry.split(\"=\");\n    value = typeof value === \"undefined\" ? true : value;\n\n    if (key.match(/\\[(\\d+)?\\]$/)) {\n      const name = key.replace(/\\[(\\d+)?\\]/, \"\");\n      params[name] = params[name] || [];\n      if (name.match(/\\[\\d+\\]$/)) {\n        var index = /\\[(\\d+)\\]/.exec(key)[1];\n        params[name][index] = value;\n      } else {\n        params[name].push(value);\n      }\n    } else {\n      if (!params[key]) {\n        params[key] = value;\n      } else if (params[key] && typeof params[key] === \"string\") {\n        params[key] = [params[key]];\n        params[key].push(value);\n      } else {\n        params[key].push(value);\n      }\n    }\n  });\n\n  return params;\n};\n\nexport const slugify = (string, separator = \"-\") => {\n  separator = separator.trim();\n  return (\n    string\n      .toString()\n      .normalize(\"NFD\")\n      .toLowerCase()\n      // remove all chars not letters, numbers, current separator and spaces (to be replaced)\n      .replace(new RegExp(`[^a-z0-9${separator} ]`, \"g\"), \"\")\n      .trim()\n      .replace(/\\s+/g, separator)\n  );\n};\n","import shortUUID from \"short-uuid\";\nimport ACTION_TYPE from \"@agir/front/globalContext/actionTypes\";\n\nimport { AUTHENTICATION } from \"@agir/front/authentication/common\";\n\nexport const hasRouter = (state = false, action) => {\n  if (action.type === ACTION_TYPE.INIT_ACTION) {\n    return !!action.hasRouter;\n  }\n  return state;\n};\n\nexport const isSessionLoaded = (state = false, action) => {\n  if (action.type === ACTION_TYPE.SET_SESSION_CONTEXT_ACTION) {\n    return true;\n  }\n  return state;\n};\n\nexport const isPoliticalSupport = (state = false, action) => {\n  if (action.type === ACTION_TYPE.SET_SESSION_CONTEXT_ACTION) {\n    return !!action.user && action.user.isPoliticalSupport;\n  }\n  if (action.type === ACTION_TYPE.SET_IS_POLITICAL_SUPPORT_ACTION) {\n    return true;\n  }\n  return state;\n};\n\nexport const user = (state = null, action) => {\n  if (action.type === ACTION_TYPE.SET_SESSION_CONTEXT_ACTION) {\n    return action.user;\n  }\n  return state;\n};\n\nexport const authentication = (state = AUTHENTICATION.NONE, action) => {\n  if (action.type === ACTION_TYPE.SET_SESSION_CONTEXT_ACTION) {\n    return action.authentication || state;\n  }\n  return state;\n};\n\nexport const bookmarkedEmails = (state = [], action) => {\n  if (action.type === ACTION_TYPE.SET_SESSION_CONTEXT_ACTION) {\n    return action.bookmarkedEmails || state;\n  }\n  return state;\n};\n\nexport const routes = (state = {}, action) => {\n  if (\n    action.type === ACTION_TYPE.INIT_ACTION ||\n    action.type === ACTION_TYPE.SET_SESSION_CONTEXT_ACTION\n  ) {\n    // Merge state and action payload since different actions can define different route properties.\n    return {\n      ...state,\n      ...(action.routes || {}),\n    };\n  }\n  return state;\n};\n\nexport const toasts = (state = [], action) => {\n  if (\n    action.type === ACTION_TYPE.INIT_ACTION ||\n    action.type === ACTION_TYPE.SET_SESSION_CONTEXT_ACTION ||\n    action.type === ACTION_TYPE.ADD_TOASTS\n  ) {\n    if (!Array.isArray(action.toasts)) {\n      return state;\n    }\n    const newState = [...state];\n    action.toasts.forEach((toast) => {\n      if (toast.toastId && newState.some((t) => t.toastId === toast.toastId)) {\n        return;\n      }\n      newState.push({\n        toastId: toast.toastId || shortUUID.generate(),\n        ...toast,\n      });\n    });\n    return newState;\n  }\n  if (action.type === ACTION_TYPE.CLEAR_TOAST) {\n    return state.filter(({ toastId }) => toastId !== action.toastId);\n  }\n  if (action.type === ACTION_TYPE.CLEAR_ALL_TOASTS) {\n    return [];\n  }\n  return state;\n};\n\nexport const pageTitle = (state = \"\", action) => {\n  if (action.type === ACTION_TYPE.SET_PAGE_TITLE) {\n    return action.title || \"\";\n  }\n  return state;\n};\n\nexport const backLink = (state = null, action) => {\n  if (action.type === ACTION_TYPE.INIT_ACTION) {\n    return action.backLink || state;\n  }\n  if (action.type === ACTION_TYPE.SET_BACK_LINK_ACTION) {\n    return action.backLink || null;\n  }\n  return state;\n};\n\nexport const topBarRightLink = (state = null, action) => {\n  if (action.type === ACTION_TYPE.INIT_ACTION) {\n    return action.topBarRightLink || state;\n  }\n  if (action.type === ACTION_TYPE.SET_TOP_BAR_RIGHT_LINK_ACTION) {\n    return action.topBarRightLink || null;\n  }\n  return state;\n};\n\nexport const adminLink = (state = null, action) => {\n  if (action.type === ACTION_TYPE.INIT_ACTION) {\n    return action.adminLink || state;\n  }\n  if (action.type === ACTION_TYPE.SET_ADMIN_LINK_ACTION) {\n    return action.adminLink || null;\n  }\n  return state;\n};\n\nexport const messages = (state = {}, action) => {\n  switch (action.type) {\n    case ACTION_TYPE.SET_MESSAGES_ACTION: {\n      if (!Array.isArray(action.messages)) {\n        return state;\n      }\n      const newState = { ...state };\n      action.messages.forEach((message) => {\n        newState[message.id] =\n          typeof newState[message.id] === \"undefined\"\n            ? message\n            : newState[message.id];\n      });\n      return newState;\n    }\n    case ACTION_TYPE.CLEAR_MESSAGES_ACTION:\n      return {};\n    case ACTION_TYPE.SET_MESSAGE_ACTION: {\n      return action.message\n        ? {\n            [action.message.id]: action.message,\n          }\n        : {};\n    }\n    case ACTION_TYPE.CREATED_MESSAGE_ACTION: {\n      return !action.error && action.message && action.message.id\n        ? { [action.message.id]: action.message, ...state }\n        : state;\n    }\n    case ACTION_TYPE.UPDATED_MESSAGE_ACTION: {\n      if (!action.error && action.message && action.message.id) {\n        const newState = { ...state };\n        newState[action.message.id] = action.message;\n        return newState;\n      }\n      return state;\n    }\n    case ACTION_TYPE.DELETED_MESSAGE_ACTION: {\n      if (!action.error && action.message && action.message.id) {\n        const newState = { ...state };\n        newState[action.message.id] = null;\n        return newState;\n      }\n      return state;\n    }\n    case ACTION_TYPE.CREATED_COMMENT_ACTION: {\n      if (\n        !action.error &&\n        action.message &&\n        action.message.id &&\n        action.comment\n      ) {\n        const newState = { ...state };\n        const newMessage = newState[action.message.id];\n        if (newMessage) {\n          newState[newMessage.id] = {\n            ...newMessage,\n            lastUpdate: Date.now(),\n            comments: Array.isArray(newMessage.comments)\n              ? [...newMessage.comments, action.comment]\n              : [...newMessage.recentComments, action.comment],\n          };\n          if (typeof newState[newMessage.id].commentCount === \"number\") {\n            newState[newMessage.id].commentCount += 1;\n          }\n        }\n        return newState;\n      }\n      return state;\n    }\n    case ACTION_TYPE.DELETED_COMMENT_ACTION: {\n      if (\n        !action.error &&\n        action.message &&\n        action.message.id &&\n        action.comment\n      ) {\n        const newState = { ...state };\n        const newMessage = newState[action.message.id];\n        if (newMessage) {\n          newState[newMessage.id] = {\n            ...newMessage,\n            lastUpdate: Date.now(),\n            comments: Array.isArray(newMessage.comments)\n              ? newMessage.comments\n              : newMessage.recentComments,\n          };\n          newState[newMessage.id].comments = newState[\n            newMessage.id\n          ].comments.filter((c) => c.id !== action.comment.id);\n          if (typeof newState[newMessage.id].commentCount === \"number\") {\n            newState[newMessage.id].commentCount -= 1;\n          }\n        }\n        return newState;\n      }\n      return state;\n    }\n    default:\n      return state;\n  }\n};\n\nexport const isLoadingMessages = (state = false, action) => {\n  switch (action.type) {\n    case ACTION_TYPE.LOADING_MESSAGES_ACTION:\n    case ACTION_TYPE.REFRESHING_MESSAGES_ACTION:\n      return true;\n    case ACTION_TYPE.SET_MESSAGES_ACTION:\n    case ACTION_TYPE.SET_MESSAGE_ACTION:\n    case ACTION_TYPE.REFRESHED_MESSAGES_ACTION:\n      return false;\n    default:\n      return state;\n  }\n};\nexport const isUpdatingMessages = (state = false, action) => {\n  switch (action.type) {\n    case ACTION_TYPE.CREATING_MESSAGE_ACTION:\n    case ACTION_TYPE.UPDATING_MESSAGE_ACTION:\n    case ACTION_TYPE.DELETING_MESSAGE_ACTION:\n    case ACTION_TYPE.REPORTING_MESSAGE_ACTION:\n    case ACTION_TYPE.CREATING_COMMENT_ACTION:\n    case ACTION_TYPE.DELETING_COMMENT_ACTION:\n    case ACTION_TYPE.REPORTING_COMMENT_ACTION:\n      return true;\n    case ACTION_TYPE.CREATED_MESSAGE_ACTION:\n    case ACTION_TYPE.UPDATED_MESSAGE_ACTION:\n    case ACTION_TYPE.DELETED_MESSAGE_ACTION:\n    case ACTION_TYPE.REPORTED_MESSAGE_ACTION:\n    case ACTION_TYPE.CREATED_COMMENT_ACTION:\n    case ACTION_TYPE.DELETED_COMMENT_ACTION:\n    case ACTION_TYPE.REPORTED_COMMENT_ACTION:\n      return false;\n    default:\n      return state;\n  }\n};\n\nexport const getHasRouter = (state) => state.hasRouter;\n\nexport const getIsSessionLoaded = (state) => state.isSessionLoaded;\n\nexport const getisPoliticalSupport = (state) => state.isPoliticalSupport;\n\nexport const getUser = (state) => state.user;\nexport const getIsConnected = (state) => !!state.user;\nexport const getAuthentication = (state) => state.authentication;\nexport const getBookmarkedEmails = (state) => state.bookmarkedEmails;\n\nexport const getRoutes = (state) => state.routes;\nexport const getRouteById = (state, id) => state.routes[id] || null;\n\nexport const getToasts = (state) => state.toasts;\n\nexport const getPageTitle = (state) => state.pageTitle;\n\nexport const getBackLink = (state) => {\n  if (!state.backLink) return null;\n  if (state.backLink.isProtected && state.isSessionLoaded && !state.user)\n    return null;\n  return state.backLink;\n};\n\nexport const getTopBarRightLink = (state) => {\n  if (!state.topBarRightLink) return null;\n  if (state.topBarRightLink.isProtected && state.isSessionLoaded && !state.user)\n    return null;\n  return state.topBarRightLink;\n};\n\nexport const getAdminLink = (state) => {\n  if (!state.adminLink) return null;\n  return state.adminLink;\n};\n\nexport const getMessages = (state) =>\n  Object.values(state.messages).filter(Boolean);\nexport const getMessageById = (state, id) =>\n  (state.messages && state.messages[id]) || null;\nexport const getIsLoadingMessages = (state) => state.isLoadingMessages;\nexport const getIsUpdatingMessages = (state) => state.isUpdatingMessages;\n\n// Root reducer\nconst reducers = {\n  hasRouter,\n  isSessionLoaded,\n  isPoliticalSupport,\n  user,\n  authentication,\n  bookmarkedEmails,\n  routes,\n  toasts,\n  pageTitle,\n  backLink,\n  topBarRightLink,\n  adminLink,\n  messages,\n  isLoadingMessages,\n  isUpdatingMessages,\n};\nconst rootReducer = (state, action) => {\n  let newState = state;\n  Object.keys(reducers).forEach((key) => {\n    const currentValue = newState[key];\n    const reducer = reducers[key];\n    const nextValue =\n      typeof reducer === \"function\" ? reducer(currentValue, action) : reducer;\n    if (nextValue !== currentValue) {\n      newState = {\n        ...newState,\n        [key]: nextValue,\n      };\n    }\n  });\n  return newState;\n};\n\nexport default rootReducer;\n","import axios from \"axios\";\nimport Cookies from \"js-cookie\";\n\nconst client = axios.create({\n  xsrfCookieName: \"csrftoken\",\n  xsrfHeaderName: \"X-CSRFToken\",\n});\n\nlet CSRFPromise = null;\n\nfunction updateCSRF() {\n  if (CSRFPromise) {\n    return CSRFPromise;\n  }\n\n  CSRFPromise = client.get(\"/api/csrf/\");\n  return CSRFPromise;\n}\n\nclient.interceptors.request.use(async function (config) {\n  if (\n    !Cookies.get(\"csrftoken\") &&\n    config.url !== \"/api/csrf/\" &&\n    config.method !== \"get\"\n  ) {\n    await updateCSRF();\n  }\n\n  return config;\n});\n\nexport default client;\n","import { mutate } from \"swr\";\n\nimport axios from \"@agir/lib/utils/axios\";\nimport logger from \"@agir/lib/utils/logger\";\n\nimport { ACTIVITY_STATUS } from \"@agir/activity/common/helpers\";\n\nconst log = logger(__filename);\n\nexport const ENDPOINT = {\n  activities: \"/api/user/activities/?page=:page&page_size=:pageSize\",\n  activity: \"/api/activity/:activityId/\",\n  bulkUpdateActivityStatus: \"/api/activity/bulk/update-status/\",\n  setAllActivitiesRead: \"/api/activity/bulk/mark-all-read/\",\n  announcements: \"/api/announcements/\",\n  customAnnouncement: \"/api/user/announcements/custom/:slug/\",\n  unreadActivityCount: \"/api/user/activities/unread-count/\",\n};\n\nexport const getActivityEndpoint = (key, params) => {\n  let endpoint = ENDPOINT[key] || \"\";\n  if (params) {\n    Object.entries(params).forEach(([key, value]) => {\n      endpoint = endpoint.replace(`:${key}`, value);\n    });\n  }\n  return endpoint;\n};\n\nexport const updateActivityStatus = async (\n  activityId,\n  status = ACTIVITY_STATUS.STATUS_INTERACTED,\n  fromPush = false,\n) => {\n  let result = false;\n  if (!activityId) {\n    return result;\n  }\n  const url = getActivityEndpoint(\"activity\", { activityId });\n  const data = fromPush ? { pushStatus: status } : { status };\n  let res = null;\n  try {\n    res = await axios.put(url, data);\n    result = !!res && res.status === 200;\n  } catch (e) {\n    log.debug(e);\n    result = false;\n  }\n\n  return result;\n};\n\nexport const setActivityAsInteracted = (activityId, fromPush) =>\n  updateActivityStatus(activityId, ACTIVITY_STATUS.STATUS_INTERACTED, fromPush);\n\nexport const setActivityAsDisplayed = (activityId) =>\n  updateActivityStatus(activityId, ACTIVITY_STATUS.STATUS_DISPLAYED);\n\nexport const setActivitiesAsDisplayed = async (ids = []) => {\n  let result = false;\n  if (!Array.isArray(ids) || ids.length === 0) {\n    return result;\n  }\n  const url = getActivityEndpoint(\"bulkUpdateActivityStatus\");\n  const data = {\n    status: ACTIVITY_STATUS.STATUS_DISPLAYED,\n    ids,\n  };\n  let res = null;\n  try {\n    res = await axios.post(url, data);\n    result = !!res && res.status === 204;\n  } catch (e) {\n    log.debug(e);\n    result = false;\n  }\n\n  return result;\n};\n\n// Set all activities @ids as read\nexport const setCurrentActivitiesAsRead = async (ids = []) => {\n  const success = await setActivitiesAsDisplayed(ids);\n  if (!success) return;\n\n  await mutate(\"/api/session/\", (session) => ({\n    ...session,\n    hasUnreadActivities: false,\n  }));\n};\n\n// Set all activities of user as read\nexport const setAllActivitiesAsRead = async () => {\n  let result = false;\n\n  const url = getActivityEndpoint(\"setAllActivitiesRead\");\n\n  try {\n    let res = await axios.get(url);\n    result = !!res && res.status === 204;\n  } catch (e) {\n    log.debug(e);\n    result = false;\n  }\n\n  if (!result) return;\n\n  mutate(\"/api/session/\", (session) => ({\n    ...session,\n    hasUnreadActivities: false,\n  }));\n\n  return result;\n};\n","import ACTION_TYPE from \"@agir/front/globalContext/actionTypes\";\nimport nonReactRoutes from \"@agir/front/globalContext/nonReactRoutes.config\";\n\nexport const init = (hasRouter = false) => {\n  let globalContextData = {\n    hasRouter,\n    routes: nonReactRoutes,\n  };\n\n  return {\n    type: ACTION_TYPE.INIT_ACTION,\n    ...globalContextData,\n  };\n};\n\nexport const setSessionContext = (data) => ({\n  type: ACTION_TYPE.SET_SESSION_CONTEXT_ACTION,\n  ...data,\n});\n\nexport const setisPoliticalSupport = () => ({\n  type: ACTION_TYPE.SET_IS_POLITICAL_SUPPORT_ACTION,\n});\n\n// TOASTS\nexport const addToasts = (toasts = []) => ({\n  type: ACTION_TYPE.ADD_TOASTS,\n  toasts: Array.isArray(toasts) ? toasts : [toasts],\n});\nexport const clearToast = (toastId) => ({\n  type: ACTION_TYPE.CLEAR_TOAST,\n  toastId,\n});\nexport const clearAllToasts = () => ({\n  type: ACTION_TYPE.CLEAR_ALL_TOASTS,\n});\n\n// PAGE TITLE\nexport const setPageTitle = (title) => ({\n  type: ACTION_TYPE.SET_PAGE_TITLE,\n  title,\n});\n\n// BACK LINK\nexport const setBackLink = (backLink) => ({\n  type: ACTION_TYPE.SET_BACK_LINK_ACTION,\n  backLink,\n});\n\n// TOP BAR RIGHT LINK\nexport const setTopBarRightLink = (topBarRightLink) => ({\n  type: ACTION_TYPE.SET_TOP_BAR_RIGHT_LINK_ACTION,\n  topBarRightLink,\n});\n\n// ADMIN LINK\nexport const setAdminLink = (adminLink) => ({\n  type: ACTION_TYPE.SET_ADMIN_LINK_ACTION,\n  adminLink,\n});\n\nconst createDispatch = (dispatchFunction) => (action) => {\n  if (typeof action === \"function\") {\n    return action(dispatchFunction);\n  }\n  return dispatchFunction(action);\n};\n\nexport default createDispatch;\n","import {useCallback, useEffect, useRef, useState} from \"react\";\nimport {setupDefaultNotification} from \"@agir/notifications/common/api\";\n\nimport logger from \"@agir/lib/utils/logger\";\nimport {useLocalStorage} from \"@agir/lib/utils/hooks\";\n\nconst log = logger(__filename);\n\nwindow.iOSNativeMessage = (data) => {\n  let event = new CustomEvent(\"iOSMessage\", {\n    detail: {\n      data: JSON.parse(data),\n    },\n  });\n\n  log.debug(\"got message\", data);\n\n  window.dispatchEvent(event);\n};\n\nconst iosAction= {\n  SET_NOTIFICATION_STATE: 'setNotificationState',\n  GET_NOTIFICATION_STATE: 'getNotificationState',\n  ENABLE_NOTIFICATIONS: 'enableNotifications'\n};\n\nexport const useIOSNotificationGrant = (onNotificationGrant) => {\n  const [notificationIsGranted, setNotificationIsGranted] = useState(false)\n  const [fcmToken] = useLocalStorage(\"AP_FCMToken\", null);\n\n  const iosMessageHandler = useCallback(async ({action, noPermission}) => {\n    if (action === iosAction.SET_NOTIFICATION_STATE && noPermission === \"false\") {\n      setNotificationIsGranted(true);\n      onNotificationGrant?.()\n    }\n  }, []);\n\n  const postMessage = useIOSMessages(iosMessageHandler);\n\n  useEffect(() => {\n    postMessage && postMessage({ action: iosAction.GET_NOTIFICATION_STATE });\n  }, [postMessage]);\n\n  const grantNotification = useCallback(() => {\n    if (postMessage) {\n      postMessage && postMessage({ action: iosAction.ENABLE_NOTIFICATIONS });\n    } else {\n      console.error(\"postMessage not found !\")\n    }\n  }, [postMessage])\n\n  return {\n    grantNotification,\n    notificationIsGranted,\n    hasUpdate: fcmToken !== null\n  }\n}\n\nexport const useIOSMessages = (cb) => {\n  const savedCallback = useRef();\n\n  useEffect(() => {\n    savedCallback.current = cb;\n  }, [cb]);\n\n  useEffect(() => {\n    const eventListener = (event) =>\n      savedCallback.current && savedCallback.current(event.detail.data);\n\n    window.addEventListener(\"iOSMessage\", eventListener);\n\n    return () => {\n      window.removeEventListener(\"iOSMessage\", eventListener);\n    };\n  }, []);\n\n  const postMessage = useCallback((data) => {\n    window.webkit?.messageHandlers?.main?.postMessage(data);\n  }, []);\n\n  if (!window.webkit?.messageHandlers?.main) {\n    return;\n  }\n\n  return postMessage;\n};\n","import PropTypes from \"prop-types\";\nimport React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport styled, { useTheme } from \"styled-components\";\n\nimport { useDownloadBanner } from \"../app/hooks\";\nimport Card from \"./Card\";\n\n/**\n * Accessibility\n */\n\nexport const SROnly = styled.span`\n  border: 0 !important;\n  clip: rect(1px, 1px, 1px, 1px) !important;\n  -webkit-clip-path: inset(50%) !important;\n  clip-path: inset(50%) !important;\n  height: 1px !important;\n  overflow: hidden !important;\n  padding: 0 !important;\n  position: absolute !important;\n  width: 1px !important;\n  white-space: nowrap !important;\n`;\n\n/**\n * Text\n */\nexport const Center = styled.div`\n  text-align: center;\n`;\n\nexport const Right = styled.div`\n  text-align: right;\n`;\n\nexport const PullRight = styled.div`\n  float: right;\n`;\n\n/**\n * Media queries\n */\nexport const Hide = styled.div.attrs(({ $under, $over, theme }) => ({\n  $under: $under\n    ? `max-width: ${typeof $under === \"number\" ? $under : theme.collapse}px`\n    : \"width <= 0\",\n  $over: $over\n    ? `min-width: ${typeof $over === \"number\" ? $over : theme.collapse}px`\n    : \"width <= 0\",\n}))`\n  min-width: 0;\n\n  @media (${(props) => props.$under}) {\n    display: none !important;\n  }\n\n  @media (${(props) => props.$over}) {\n    display: none !important;\n  }\n`;\n\n/**\n * Grid\n */\n\nconst gutter = 16;\n\nexport const GrayBackground = styled.div`\n  background-color: ${(props) => props.theme.text25};\n`;\n\nexport const Column = styled.div.withConfig({\n  shouldForwardProp: (prop) =>\n    [\"collapse\", \"grow\", \"stack\"].includes(prop) === false,\n})`\n  flex-basis: ${({ width, grow }) =>\n    width || grow\n      ? (Array.isArray(width) && width[1] ? width[1] : width) || \"1px\"\n      : \"auto\"};\n  flex-grow: ${({ grow }) => (grow ? 1 : 0)};\n  & > ${Card} {\n    margin-bottom: 16px;\n  }\n\n  @media (max-width: ${(props) => props.collapse || props.theme.collapse}px) {\n    flex-basis: ${(props) =>\n      Array.isArray(props.width) && props.width[0] ? props.width[0] : \"100%\"};\n    padding-left: 0;\n    padding-right: 0;\n\n    & > & > ${Card} {\n      ${(props) => (props.stack ? \"margin-bottom: 0px;\" : \"\")}\n    }\n  }\n`;\n\nColumn.propTypes = {\n  width: PropTypes.oneOfType([\n    PropTypes.string,\n    PropTypes.arrayOf(PropTypes.string),\n  ]), // can be anything like \"50%\" \"400px\"\n  // if array first is mobile size, second is desktop\n  grow: PropTypes.bool, // does the column fill the remaining space\n  collapse: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n};\n\nexport const Row = styled.div.withConfig({\n  shouldForwardProp: (prop) =>\n    [\"gutter\", \"align\", \"justify\"].includes(prop) === false,\n})`\n  margin-left: -${(props) => (typeof props.gutter === \"undefined\" ? gutter : props.gutter)}px;\n  margin-right: -${(props) => (typeof props.gutter === \"undefined\" ? gutter : props.gutter)}px;\n  display: flex;\n  flex-wrap: wrap;\n  align-items: ${({ align }) => align || \"stretch\"};\n  justify-content: ${({ justify }) => justify || \"start\"};\n  gap: ${(props) => props.gap}px;\n\n  & > ${Column} {\n    padding-left: ${(props) =>\n      typeof props.gutter === \"undefined\" ? gutter : props.gutter}px;\n    padding-right: ${(props) =>\n      typeof props.gutter === \"undefined\" ? gutter : props.gutter}px;\n  }\n\n  & > ${Column} > section {\n    margin-left: -${(props) => (typeof props.gutter === \"undefined\" ? gutter : props.gutter)}px;\n    margin-right: -${(props) => (typeof props.gutter === \"undefined\" ? gutter : props.gutter)}px;\n    border-radius: 0px;\n  }\n\n  @media (max-width: ${(props) => props.collapse || props.theme.collapse}px) {\n    & > ${Column} > ${Card} {\n      margin-left: -${(props) => (typeof props.gutter === \"undefined\" ? gutter : props.gutter)}px;\n      margin-right: -${(props) => (typeof props.gutter === \"undefined\" ? gutter : props.gutter)}px;\n      border-radius: 0px;\n    }\n  }\n`;\n\nRow.propTypes = {\n  children: PropTypes.node,\n  align: PropTypes.oneOf([\n    \"stretch\",\n    \"baseline\",\n    \"center\",\n    \"flex-start\",\n    \"flex-end\",\n  ]), // align-items CSS property\n  justify: PropTypes.oneOf([\n    \"flex-start\",\n    \"flex-end\",\n    \"center\",\n    \"space-between\",\n    \"space-around\",\n    \"space-evenly\",\n  ]), // justify-content CSS property\n};\n\nexport const Container = styled.section`\n  width: ${1400 + gutter * 2}px;\n  max-width: 100%;\n  margin: 0 auto;\n  padding-left: ${gutter}px;\n  padding-right: ${gutter}px;\n\n  & > ${Row} {\n    margin-left: -${gutter}px;\n    margin-right: -${gutter}px;\n  }\n`;\n\nexport const useIsDesktop = (breakpoint) => {\n  const theme = useTheme();\n  breakpoint = breakpoint || theme.collapse;\n  const [isDesktop, setDesktop] = useState(window.innerWidth > breakpoint);\n\n  let refresh = useCallback(\n    () => setDesktop(window.innerWidth > breakpoint),\n    [breakpoint],\n  );\n\n  useEffect(() => {\n    window.addEventListener(\"resize\", refresh);\n\n    return function cleanup() {\n      window.removeEventListener(\"resize\", refresh);\n    };\n  }, [refresh]);\n\n  return isDesktop;\n};\n\nexport const ResponsiveLayout = ({\n  MobileLayout,\n  DesktopLayout,\n  breakpoint,\n  ...props\n}) => {\n  const isDesktop = useIsDesktop(breakpoint);\n\n  return isDesktop ? <DesktopLayout {...props} /> : <MobileLayout {...props} />;\n};\nResponsiveLayout.propTypes = {\n  MobileLayout: PropTypes.oneOfType([PropTypes.element, PropTypes.func])\n    .isRequired,\n  DesktopLayout: PropTypes.oneOfType([PropTypes.element, PropTypes.func])\n    .isRequired,\n  breakpoint: PropTypes.number,\n};\n\nexport const useResponsiveMemo = (mobileValue, desktopValue, breakpoint) => {\n  const isDesktop = useIsDesktop(breakpoint);\n\n  const value = useMemo(\n    () => (isDesktop ? desktopValue : mobileValue),\n    [isDesktop, mobileValue, desktopValue],\n  );\n\n  return value;\n};\n\nexport const ResponsiveSpan = styled(\n  ({ small, large, breakpoint, ...props }) => {\n    const value = useResponsiveMemo(small, large, breakpoint);\n    return <span {...props}>{value}</span>;\n  },\n)``;\n\nResponsiveSpan.propTypes = {\n  small: PropTypes.string,\n  large: PropTypes.string,\n  breakpoint: PropTypes.number,\n};\n\nexport const useStickyOffset = (extraOffset = 0) => {\n  const hasDownloadBanner = useDownloadBanner();\n  const stickyOffset = useResponsiveMemo(hasDownloadBanner ? 134 : 54, 72);\n\n  return stickyOffset + extraOffset;\n};\n\nconst StickyDiv = styled.div.attrs((props) => ({\n  $offset:\n    typeof props.offset === \"number\" ? `${props.offset}px` : props.offset || 0,\n  $extra:\n    typeof props.extra === \"number\" ? `${props.extra}px` : props.extra || 0,\n}))`\n  position: sticky;\n  top: calc(${(props) => props.$offset} + ${(props) => props.$extra});\n`;\n\nexport const Sticky = ({ extraOffset, ...rest }) => {\n  const stickyOffset = useStickyOffset();\n  return <StickyDiv offset={stickyOffset} extra={extraOffset} {...rest} />;\n};\n\nSticky.propTypes = {\n  extraOffset: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n};\n","import axios from \"@agir/lib/utils/axios\";\nimport {getDefaultNotifications} from \"@agir/notifications/common/notifications.config\";\n\nexport const ENDPOINT = {\n  getSubscriptions: \"/api/notifications/subscriptions/\",\n  createSubscriptions: \"/api/notifications/subscriptions/\",\n  deleteSubscriptions: \"/api/notifications/subscriptions/\",\n};\n\nexport const createSubscriptions = async (subscriptions) => {\n  const result = {\n    success: false,\n    error: null,\n  };\n  const url = ENDPOINT.createSubscriptions;\n  try {\n    const response = await axios.post(url, subscriptions);\n    result.success = response.status === 201;\n    result.data = response.data || null;\n  } catch (e) {\n    result.error = (e.response && e.response.data) || e.message;\n  }\n\n  return result;\n};\n\nexport const deleteSubscriptions = async (subscriptions) => {\n  const result = {\n    success: false,\n    error: null,\n  };\n  const url = ENDPOINT.deleteSubscriptions;\n  try {\n    const response = await axios.delete(url, { data: subscriptions });\n    result.success = response.status === 201;\n    result.data = response.data || null;\n  } catch (e) {\n    result.error = (e.response && e.response.data) || e.message;\n  }\n\n  return result;\n};\n\nexport async function setupDefaultNotification() {\n  /**\n   * we must send subscribe for each notification type because if\n   * we send as a list, and there is only one which is already registered, the API will trigger a constraint and ignore the other ones.\n   */\n  const subscriptionRequest = getDefaultNotifications().map((notification) => {\n    return notification.activityTypes.map((type) =>\n        createSubscriptions([{\n          activityType: type,\n          type: \"push\",\n        }]));\n  });\n  await Promise.all(subscriptionRequest.flat(2))\n}","export const getScrollableParent = (element) => {\n  if (element === window) {\n    return element;\n  }\n\n  const regex = /(auto|scroll)/;\n  const parents = (_node, ps) => {\n    if (_node.parentNode === null) {\n      return ps;\n    }\n    return parents(_node.parentNode, ps.concat([_node]));\n  };\n\n  const style = (_node, prop) =>\n    getComputedStyle(_node, null).getPropertyValue(prop);\n  const overflow = (_node) =>\n    style(_node, \"overflow\") +\n    style(_node, \"overflow-y\") +\n    style(_node, \"overflow-x\");\n  const scroll = (_node) => regex.test(overflow(_node));\n\n  const scrollParent = (_node) => {\n    if (!(_node instanceof HTMLElement || _node instanceof SVGElement)) {\n      return;\n    }\n\n    const ps = parents(_node.parentNode, []);\n\n    for (let i = 0; i < ps.length; i += 1) {\n      if (scroll(ps[i])) {\n        return ps[i];\n      }\n    }\n\n    return document.scrollingElement || document.documentElement;\n  };\n\n  return scrollParent(element);\n};\n\nconst INTERACTIVE_ELEMENT = {\n  A: (element) => element.hasAttribute(\"href\"),\n  AUDIO: (element) => element.hasAttribute(\"controls\"),\n  BUTTON: true,\n  DETAILS: true,\n  EMBED: true,\n  IFRAME: true,\n  KEYGEN: true,\n  LABEL: true,\n  SELECT: true,\n  TEXTAREA: true,\n  VIDEO: (element) => element.hasAttribute(\"controls\"),\n};\n\nexport function isInteractiveElement(element) {\n  const { nodeName } = element;\n  if (element instanceof HTMLInputElement && element.type !== \"hidden\") {\n    return true;\n  }\n  if (element.hasAttribute(\"tabindex\") && element.tabIndex > -1) {\n    return true;\n  }\n  if (!INTERACTIVE_ELEMENT[nodeName]) {\n    return false;\n  }\n  if (typeof INTERACTIVE_ELEMENT[nodeName] === \"function\") {\n    return INTERACTIVE_ELEMENT[nodeName](element);\n  }\n  return INTERACTIVE_ELEMENT[nodeName] === true;\n}\n\nexport const handleEventExceptForInteractiveChild = (event, callback) => {\n  if (!callback) {\n    return;\n  }\n  for (\n    let target = event.target;\n    target !== event.currentTarget;\n    target = target.parentElement\n  ) {\n    if (isInteractiveElement(target)) {\n      return;\n    }\n  }\n  callback(event);\n};\n","import isPropValid from \"@emotion/is-prop-valid\";\nimport PropTypes from \"prop-types\";\nimport styled from \"styled-components\";\n\nconst cardTypes = {\n  default: {\n    backgroundColor: \"background0\",\n    borderRadius: 0,\n  },\n  primary: {\n    backgroundColor: \"primary100\",\n  },\n  alert: {\n    backgroundImage: `linear-gradient(90deg, transparent 0, transparent 3px, ${(props) => props.theme.background0} 3px)`,\n    backgroundColor: \"background0\",\n  },\n  alert_dismissed: {\n    backgroundImage: `linear-gradient(90deg, transparent 0, transparent 3px, ${(props) => props.theme.background0} 3px)`,\n    backgroundColor: \"background0\",\n  },\n  error: {\n    backgroundImage: `linear-gradient(90deg, transparent 0, transparent 8px, ${(props) => props.theme.background0} 8px)`,\n    backgroundColor: \"error500\",\n  },\n};\n\nconst Card = styled.div\n  .withConfig({\n    shouldForwardProp: isPropValid,\n  })\n  .attrs(({ type, ...props }) => ({\n    ...props,\n    config: type && cardTypes[type] ? cardTypes[type] : cardTypes.default,\n  }))`\n  background-image: ${({ config }) => config.backgroundImage || \"none\"};\n  background-color: ${({ config, theme }) =>\n    theme[config.backgroundColor] || config.backgroundColor};\n  padding: 1.5rem;\n  font-weight: 500;\n  cursor: ${({ onClick }) => (onClick ? \"pointer\" : \"default\")};\n  border: 1px solid;\n  border-color: ${(props) => props.theme.text100};\n  transition:\n    border-color,\n    background-color 300ms;\n  border-radius: ${(props) => props.theme.borderRadius};\n\n  &:hover {\n    ${({ onClick }) =>\n      onClick\n        ? `\n      border-color: ${(props) => props.theme.text100};\n    `\n        : \"\"}\n  }\n\n  @media (max-width: ${(props) => props.theme.collapse}px) {\n    padding: 1rem;\n    ${(props) =>\n      !props.bordered\n        ? `\n      border: none;\n      box-shadow: ${(props) => props.theme.elaborateShadow};\n      border-radius: 0;\n    `\n        : \"\"}\n  }\n\n  & p {\n    font-weight: 400;\n\n    & > strong,\n    & > a {\n      font-weight: bolder;\n    }\n    & > a {\n      color: inherit;\n      text-decoration: underline;\n    }\n  }\n`;\nCard.propTypes = {\n  type: PropTypes.oneOf(Object.keys(cardTypes)),\n};\nCard.defaultProps = {\n  type: \"default\",\n};\nexport default Card;\n","import React, { lazy as reactLazy, useEffect, useMemo, useState } from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport { useIsOffline } from \"@agir/front/offline/hooks\";\nimport { getScrollableParent } from \"@agir/lib/utils/dom\";\n\nexport const lazy = (lazyImport, fallback) => {\n  const LazyComponent = (props) => {\n    const isOffline = useIsOffline();\n    const [error, setError] = useState(null);\n\n    const Lazy = useMemo(\n      () =>\n        reactLazy(async () => {\n          try {\n            return await lazyImport();\n          } catch (err) {\n            if (err.name !== \"ChunkLoadError\") {\n              if (err instanceof Error) {\n                throw err;\n              }\n              const message = err?.message\n                ? err.message\n                : typeof err === \"string\"\n                  ? err\n                  : \"Lazy loading failed.\";\n              throw new Error(message);\n            }\n            setError(err.toString());\n            const Fallback = () =>\n              typeof fallback !== \"undefined\" ? (\n                fallback\n              ) : (\n                <div>\n                  <h2>Erreur</h2>\n                  <p>\n                    {process.env.NODE_ENV === \"production\"\n                      ? \"Nous n'avons pas pu charger cette page.\"\n                      : err.toString()}\n                  </p>\n                </div>\n              );\n            return {\n              default: Fallback,\n            };\n          }\n        }),\n      //eslint-disable-next-line\n      [lazyImport, error, fallback],\n    );\n\n    useEffect(() => {\n      error && !isOffline && setError(null);\n    }, [error, isOffline]);\n\n    return <Lazy {...props} />;\n  };\n\n  LazyComponent.displayName = `LazyComponent`;\n  LazyComponent.preload = async () => {\n    try {\n      return await lazyImport();\n    } catch (err) {\n      if (err.name !== \"ChunkLoadError\" && err instanceof Error) {\n        throw err;\n      }\n    }\n  };\n\n  return LazyComponent;\n};\n\nexport const scrollToElement = (\n  targetElement,\n  scrollerElement,\n  marginTop = 30,\n) => {\n  if (!targetElement || !scrollerElement) {\n    return;\n  }\n\n  const scrollableElement = getScrollableParent(scrollerElement);\n\n  targetElement &&\n    scrollableElement &&\n    scrollableElement.scrollTo({\n      top: targetElement.offsetTop - marginTop,\n      behavior: \"smooth\",\n    });\n};\n\nexport function getFirstElementFromError(errors) {\n  const keys = Object.entries(errors)\n      .filter(([_, v]) => !!v)\n      .map(([k]) => k);\n\n  let errorElement = null;\n  for (let i = 0; i < keys.length; i += 1) {\n    let elt = document.querySelector(\n        `[data-scroll=\"${keys[i]}\"], [name=\"${keys[i]}\"]`,\n    );\n    if (!elt) {\n      continue;\n    }\n    if (!errorElement) {\n      errorElement = elt;\n      continue;\n    }\n    if (elt.getBoundingClientRect().top < errorElement.getBoundingClientRect().top) {\n      errorElement = elt;\n    }\n  }\n  return errorElement\n}\n\nexport const scrollToError = (errors, scrollerElement, marginTop = 30) => {\n  if (!errors) {\n    return;\n  }\n\n  if (!scrollerElement || !Object.values(errors).some(Boolean)) {\n    return;\n  }\n\n  scrollToElement(getFirstElementFromError(errors), scrollerElement, marginTop);\n};\n\nexport const useCurrentLocation = () => {\n  const [pathname, setPathname] = useState(window.location.pathname);\n  const history = useHistory();\n\n  useEffect(() => {\n    history?.listen((location) => {\n      setPathname(location.pathname);\n    }) || setPathname(window.location.pathname);\n  }, [history]);\n\n  return pathname;\n};\n","import React, {useCallback, useEffect, useState} from \"react\";\nimport {useMobileApp} from \"@agir/front/app/hooks\";\nimport {setupDefaultNotification} from \"@agir/notifications/common/api\";\n\nexport function androidNotificationPermissionIsGranted() {\n    return window.androidApp?.notificationPermissionIsGranted() ?? false;\n}\n\nexport function askNotificationPermission() {\n    window.androidApp?.setupNotificationPermission();\n}\n\nlet grantObservers = [];\nexport function useAndroidNotificationGrant(onNotificationGrant) {\n    const [androidNotificationGranted, setAndroidNotificationGranted] = useState(androidNotificationPermissionIsGranted())\n    const {isMobileApp} = useMobileApp();\n\n    const grantNotification = useCallback(() => {\n        askNotificationPermission();\n    }, [isMobileApp])\n\n    const onAndroidMessage = useCallback((message) => {\n        if (message.channel === \"NOTIFICATION\" && message.value === \"granted\") {\n            onNotificationGrant?.()\n            grantObservers.forEach((obs) => obs(true));\n        }\n    }, []);\n\n\n    useEffect(() => {\n        if (!window.onAndroidMessage) {\n            window.onAndroidMessage = onAndroidMessage\n        }\n        grantObservers.push(setAndroidNotificationGranted)\n        return () => {\n            const observerIndex = grantObservers.findIndex((obs) => obs === setAndroidNotificationGranted)\n            grantObservers.splice(observerIndex, 1);\n            if (grantObservers.length === 0) {\n                window.onAndroidMessage = undefined\n            }\n        }\n    }, []);\n\n\n    return {\n        notificationIsGranted: isMobileApp && androidNotificationGranted,\n        grantNotification,\n        hasUpdate: window.androidApp !== undefined\n    }\n\n}","import querystring from \"query-string\";\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { useHistory, useLocation } from \"react-router-dom\";\nimport { createGlobalState } from \"react-use\";\n\nimport { getRouteByPathname, routeConfig } from \"@agir/front/app/routes.config\";\nimport { useIsDesktop } from \"@agir/front/genericComponents/grid\";\nimport { useSelector } from \"@agir/front/globalContext/GlobalContext\";\nimport { getHasRouter, getRoutes } from \"@agir/front/globalContext/reducers\";\nimport { useLocalStorage } from \"@agir/lib/utils/hooks\";\nimport { parseQueryStringParams } from \"@agir/lib/utils/url\";\nimport {getDefaultNotifications} from \"../../../notifications/components/common/notifications.config\";\nimport {createSubscriptions, setupDefaultNotification} from \"../../../notifications/components/common/api\";\nimport {useIOSNotificationGrant} from \"@agir/front/allPages/ios\";\nimport {useAndroidNotificationGrant} from \"@agir/front/allPages/android\"\n\nexport const useCustomBackNavigation = (callback) => {\n  const history = useHistory();\n\n  useEffect(() => {\n    let unblock = undefined;\n    if (history && typeof callback === \"function\") {\n      unblock = history.block(() => {\n        callback();\n        return false;\n      });\n    }\n    return unblock;\n  }, [callback, history]);\n};\n\n/**\n * Custom hook to check if current page is inside a iOS or Android app webview\n * based on current or past URL querystring params [ios=[0|1], android=[0|1]]\n * @return {object} the result object\n * @property {boolean} isIOS - the page is inside an iOS app webview\n * @property {boolean} isAndroid - the page is inside an Android app webview\n * @property {boolean} isMobileApp - the page is inside an app webview\n */\nexport const useMobileApp = () => {\n  const [isAndroid, setIsAndroid] = useLocalStorage(\"AP_isAndroid\", \"0\");\n  const [isIOS, setIsIOS] = useLocalStorage(\"AP_isIOS\", \"0\");\n  const params = parseQueryStringParams();\n\n  const ios = isIOS === \"1\" || params.ios === \"1\";\n  const android = isAndroid === \"1\" || params.android === \"1\";\n\n  return {\n    isIOS: ios,\n    isAndroid: android,\n    isMobileApp: ios || android\n  };\n};\n\n\nexport function useNotificationGrant() {\n  const {isMobileApp, isAndroid, isIOS} = useMobileApp();\n  const [alreadyGrant, setAlreadyGrant] = useLocalStorage(\"AP_notification_already_grant\", false)\n\n  const onNotificationGrant = useCallback(() => {\n    if (!alreadyGrant) {\n      setupDefaultNotification();\n      setAlreadyGrant(true);\n    }\n  }, [alreadyGrant])\n\n  const {\n    hasUpdate: hasUpdateAndroid,\n    notificationIsGranted: notificationGrantedAndroid,\n    grantNotification: grantNotificationAndroid\n  } = useAndroidNotificationGrant(onNotificationGrant)\n\n  const {\n    hasUpdate: hasUpdateIOS,\n    notificationIsGranted: notificationGrantedIOS,\n    grantNotification: grantNotificationIOS\n  } = useIOSNotificationGrant(onNotificationGrant)\n\n  return {\n    notificationIsGranted: notificationGrantedAndroid || notificationGrantedIOS,\n    grantNotification: isMobileApp ? (isAndroid ? grantNotificationAndroid : grantNotificationIOS) : null,\n    hasUpdate: hasUpdateAndroid || hasUpdateIOS\n  }\n\n}\n\nconst useHasDownloadBanner = createGlobalState(undefined);\nexport const useDownloadBanner = () => {\n  const [bannerCount, setBannerCount] = useLocalStorage(\"BANNER_count\", 0);\n  const [visitCount] = useLocalStorage(\"AP_vcount\", 0);\n\n  const isDesktop = useIsDesktop();\n  const { isMobileApp } = useMobileApp();\n\n  const [hasBanner, setHasBanner] = useHasDownloadBanner();\n\n  useEffect(() => {\n    if (\n      hasBanner !== false &&\n      !isMobileApp &&\n      !isDesktop &&\n      bannerCount <= visitCount\n    ) {\n      setHasBanner(true);\n    }\n  }, [\n    hasBanner,\n    isMobileApp,\n    isDesktop,\n    bannerCount,\n    visitCount,\n    setHasBanner,\n  ]);\n\n  const hide = useCallback(() => {\n    setHasBanner(false);\n    setBannerCount(visitCount + 25);\n  }, [setBannerCount, visitCount, setHasBanner]);\n\n  return [!!hasBanner, hide];\n};\n\n/**\n * Custom React hook to hide the application loader\n * @param  {Boolean} [isReady=true]               whether the loader can be hidden or not\n */\nexport const useAppLoader = (isReady = true) => {\n  const [loader, setLoader] = useState(\n    isReady ? document.getElementById(\"app_loader\") : null,\n  );\n\n  useEffect(() => {\n    isReady !== null && setLoader(document.getElementById(\"app_loader\"));\n  }, [isReady]);\n\n  useEffect(() => {\n    if (!loader) {\n      return;\n    }\n\n    loader.addEventListener(\"transitionend\", () => {\n      const loader = document.getElementById(\"app_loader\");\n      loader && loader.remove();\n    });\n    loader.style.opacity = \"0\";\n    loader.style.zIndex = -1;\n\n    setLoader(null);\n  }, [loader]);\n};\n\nexport const useRoute = (route, routeParams) => {\n  const routes = useSelector(getRoutes);\n  const hasRouter = useSelector(getHasRouter);\n\n  if (!route) {\n    return {\n      route: null,\n      isInternal: false,\n    };\n  }\n\n  if (routes && routes[route]) {\n    return {\n      url: routes[route],\n      isInternal: !!hasRouter && !!getRouteByPathname(routes[route]),\n    };\n  }\n\n  if (routeConfig[route]) {\n    return {\n      url: routeParams\n        ? routeConfig[route].getLink(routeParams)\n        : routeConfig[route].getLink(),\n      isInternal: !!hasRouter,\n    };\n  }\n\n  return {\n    url: route,\n    isInternal: false,\n  };\n};\n\nexport const useLocationState = (singleParamKey = null) => {\n  const { search, pathname } = useLocation();\n  const history = useHistory();\n\n  const params = useMemo(\n    () => querystring.parse(search, { arrayFormat: \"comma\" }),\n    [search],\n  );\n\n  const setParams = useCallback(\n    (key, value) => {\n      history.replace({\n        pathname,\n        search: querystring.stringify(\n          {\n            ...params,\n            [key]: value,\n          },\n          { arrayFormat: \"comma\" },\n        ),\n      });\n    },\n    [pathname, history, params],\n  );\n\n  const setSingleParam = useCallback(\n    (value) => singleParamKey && setParams(singleParamKey, value),\n    [singleParamKey, setParams],\n  );\n\n  const clearParams = useCallback(() => {\n    history.replace({\n      pathname,\n      search: querystring.stringify({}, { arrayFormat: \"comma\" }),\n    });\n  }, [pathname, history]);\n\n  return singleParamKey\n    ? [\n        params[singleParamKey],\n        setSingleParam,\n        !!search ? clearParams : undefined,\n      ]\n    : [params, setParams, !!search ? clearParams : undefined];\n};\n","import { useCallback, useEffect, useRef } from \"react\";\n\nimport { setActivityAsInteracted } from \"@agir/activity/common/api\";\nimport { parseQueryStringParams } from \"@agir/lib/utils/url\";\nimport logger from \"@agir/lib/utils/logger\";\n\nconst log = logger(__filename);\n\nconst QueryStringParamsActions = ({ user }) => {\n  const params = parseQueryStringParams();\n\n  const fromActivityUpdated = useRef(false);\n\n  const handleFromActivity = useCallback(async (activityId) => {\n    fromActivityUpdated.current = true;\n    try {\n      await setActivityAsInteracted(activityId, true);\n    } catch (e) {\n      log.debug(e);\n    }\n  }, []);\n\n  useEffect(() => {\n    if (user && !fromActivityUpdated.current && params?.from_activity) {\n      handleFromActivity(params.from_activity);\n    }\n  }, [user, params, handleFromActivity]);\n\n  return null;\n};\n\nexport default QueryStringParamsActions;\n","import PropTypes from \"prop-types\";\nimport React, { useContext, useEffect, useMemo, Suspense } from \"react\";\nimport { StateInspector, useReducer } from \"reinspect\";\nimport useSWR from \"swr\";\n\nimport QueryStringParamsActions from \"./QueryStringParamsActions\";\nimport ThemeProvider, { getTheme } from \"@agir/front/theme/ThemeProvider\";\n\nimport rootReducer from \"@agir/front/globalContext/reducers\";\nimport createDispatch, {\n  init,\n  setSessionContext,\n} from \"@agir/front/globalContext/actions\";\n\nimport logger from \"@agir/lib/utils/logger\";\nimport { lazy } from \"@agir/front/app/utils\";\n\nconst log = logger(__filename);\n\nconst Toasts = lazy(() => import(\"@agir/front/globalContext/Toast\"), null);\n\nconst GlobalContext = React.createContext({});\n\nconst ProdProvider = ({\n  hasRouter = false,\n  hasToasts = false,\n  colorScheme,\n  children,\n}) => {\n  const [state, dispatch] = useReducer(\n    rootReducer,\n    rootReducer({}, init(hasRouter)),\n    (state) => state,\n    \"GC\",\n  );\n\n  const doDispatch = useMemo(() => createDispatch(dispatch), [dispatch]);\n\n  const { data: sessionContext } = useSWR(\"/api/session/\");\n\n  useEffect(() => {\n    if (!sessionContext) return;\n\n    if (!sessionContext.user) {\n      self.caches?.delete(\"session\").catch((err) => {\n        if (err.name !== \"SecurityError\") {\n          if (err instanceof Error) {\n            throw err;\n          }\n          const message = err?.message\n            ? err.message\n            : typeof err === \"string\"\n              ? err\n              : \"Session cache deletion failed.\";\n          throw new Error(message);\n        }\n      });\n    }\n\n    doDispatch(setSessionContext(sessionContext));\n    log.debug(\"Update session context\", sessionContext);\n  }, [doDispatch, sessionContext]);\n\n  return (\n    <GlobalContext.Provider value={{ state, dispatch: doDispatch }}>\n      <ThemeProvider\n        theme={(colorScheme && getTheme(colorScheme)) || undefined}\n      >\n        <QueryStringParamsActions user={sessionContext?.user} />\n        {children}\n        {hasToasts && state.toasts?.length > 0 ? (\n          <Suspense fallback={null}>\n            <Toasts />\n          </Suspense>\n        ) : null}\n      </ThemeProvider>\n    </GlobalContext.Provider>\n  );\n};\nconst DevProvider = (props) => {\n  return (\n    <StateInspector name=\"actionpopulaire\">\n      <ProdProvider {...props} />\n    </StateInspector>\n  );\n};\nDevProvider.propTypes = ProdProvider.propTypes = {\n  children: PropTypes.node,\n  hasToasts: PropTypes.bool,\n  hasRouter: PropTypes.bool,\n};\n\nexport const GlobalContextProvider =\n  process.env.NODE_ENV === \"production\" ? ProdProvider : DevProvider;\n\nexport const TestGlobalContextProvider = ({\n  hasRouter = false,\n  children,\n  value,\n}) => {\n  const [state] = useReducer(rootReducer, rootReducer({}, init()));\n  const doDispatch = useMemo(() => () => {}, []);\n  const currentState = useMemo(\n    () => ({\n      state: {\n        hasRouter,\n        ...state,\n        ...value,\n      },\n      dispatch: doDispatch,\n    }),\n    [hasRouter, state, value, doDispatch],\n  );\n\n  return (\n    <GlobalContext.Provider value={currentState}>\n      {children}\n    </GlobalContext.Provider>\n  );\n};\nTestGlobalContextProvider.propTypes = {\n  hasRouter: PropTypes.bool,\n  children: PropTypes.node,\n  value: PropTypes.object,\n};\n\nexport const useGlobalContext = () => useContext(GlobalContext);\nexport const useSelector = (selector) => {\n  const { state } = useContext(GlobalContext);\n  return selector(state);\n};\nexport const useDispatch = () => {\n  const { dispatch } = useContext(GlobalContext);\n  return dispatch;\n};\n\nexport default GlobalContextProvider;\n","import { icons } from \"feather-icons\";\n\nexport const ICONS = icons;\nexport const getIconDataUrl =\n  ({\n    color = \"black\",\n    fill,\n    width,\n    height,\n    strokeWidth,\n    strokeLineCap,\n    strokeLineJoin,\n  }) =>\n  ({ icon }) => {\n    const svg = ICONS[icon]\n      ? ICONS[icon]\n          .toSvg({\n            width,\n            height,\n            strokeWidth,\n            strokeLineCap,\n            strokeLineJoin,\n            color: encodeURI(color),\n            fill: fill ? \"currentColor\" : \"none\",\n          })\n          .replace(/#/g, \"%23\")\n      : \"\";\n    return svg && `url('data:image/svg+xml;utf8,${svg}')`;\n  };\n","import Cookies from \"js-cookie\";\n\nexport const AUTHENTICATION = {\n  NONE: 0,\n  SOFT: 1,\n  HARD: 2,\n};\n\nconst BOOKMARKED_EMAILS_COOKIE_NAME = \"AP_bookmarkedEmails\";\nconst BOOKMARKED_EMAILS_COOKIE_OPTIONS = {\n  expires: 365,\n  secure: process.env.NODE_ENV !== \"development\",\n  sameSite: \"Strict\",\n};\n\nexport const NEWSLETTERS = {\n  LFI_reguliere: {\n    label:\n      \"Les informations régulières de la France insoumise, dont la lettre d'information hébdomadaire\",\n    value: \"LFI_reguliere\",\n    selected: true,\n    visible: true,\n  },\n  LFI_exceptionnelle: {\n    label: \"Les informations exceptionnelles de la France insoumise\",\n    value: \"LFI_exceptionnelle\",\n    selected: true,\n    visible: true,\n  },\n  ELUES: {\n    label: \"Les informations destinées aux élu·es\",\n    value: \"ELUES\",\n    visible: (person) =>\n      !!person &&\n      (person.newsletters.includes(\"ELUES\") || person.membreReseauElus),\n  },\n  LFI_jeunes_insoumise: {\n    label: \"Les informations destinées aux Jeunes insoumis·es\",\n    value: \"LFI_jeunes_insoumises\",\n    selected: false,\n    visible: true,\n  },\n  LFI_liaisons: {\n    label: \"Relais insoumis\",\n    value: \"LFI_liaisons\",\n    visible: false,\n  },\n  ILB: {\n    label: \"Les informations de l'Institut La Boétie\",\n    value: \"ILB\",\n    selected: false,\n    visible: true,\n  },\n};\n\nexport const LIAISON_NEWSLETTER = NEWSLETTERS.LFI_liaisons;\n\nexport const NEWSLETTER_OPTIONS = Object.values(NEWSLETTERS);\n\nexport const getNewsletterOptions = (person) =>\n  Object.values(NEWSLETTER_OPTIONS).filter((n) =>\n    typeof n.visible === \"function\" ? n.visible(person) : !!n.visible,\n  );\n\nexport const getBookmarkedEmails = () => {\n  let cookieData = Cookies.get(BOOKMARKED_EMAILS_COOKIE_NAME);\n  cookieData = cookieData && JSON.parse(cookieData);\n  return cookieData || [];\n};\n\nexport const bookmarkEmails = (emails) => {\n  Cookies.set(\n    BOOKMARKED_EMAILS_COOKIE_NAME,\n    JSON.stringify(emails),\n    BOOKMARKED_EMAILS_COOKIE_OPTIONS,\n  );\n\n  return emails;\n};\n\nexport const bookmarkEmail = (email) => {\n  const bookmarkedEmails = getBookmarkedEmails();\n  const cookieData = JSON.stringify([\n    email,\n    ...bookmarkedEmails.filter((e) => e !== email),\n  ]);\n\n  Cookies.set(\n    BOOKMARKED_EMAILS_COOKIE_NAME,\n    cookieData,\n    BOOKMARKED_EMAILS_COOKIE_OPTIONS,\n  );\n\n  return cookieData;\n};\n\nexport const getMobileOS = () => {\n  let userAgent = navigator.userAgent || navigator.vendor || window.opera;\n\n  // Windows Phone must come first because its UA also contains \"Android\"\n  if (/windows phone/i.test(userAgent)) {\n    return \"Windows Phone\";\n  }\n  if (/android/i.test(userAgent)) {\n    return \"android\";\n  }\n  if (/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream) {\n    return \"iOS\";\n  }\n  return \"unknown\";\n};\n","import { lazy } from \"./utils\";\n\nconst Routes = {\n  HomePage: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-homepage\" */ \"@agir/front/app/Homepage/Home\"\n      ),\n  ),\n  AgendaPage: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-agendapage\" */ \"@agir/events/agendaPage/Agenda\"\n      ),\n  ),\n  CalendarPage: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-calendar\" */ \"@agir/events/calendarPage/Calendar\"\n      ),\n  ),\n  EventMap: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-eventmap\" */ \"@agir/carte/page__eventMap/EventMap\"\n      ),\n  ),\n  GroupUpcomingEventPage: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-groupupcomingevent\" */ \"@agir/events/groupUpcomingEventPage/GroupUpcomingEventPage\"\n      ),\n  ),\n  GroupUpcomingEventRedirectPage: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-groupupcomingeventredirect\" */ \"@agir/events/groupUpcomingEventPage/GroupUpcomingEventRedirectPage\"\n      ),\n  ),\n  EventPage: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-eventpage\" */ \"@agir/events/eventPage/EventPage\"\n      ),\n  ),\n  MissingDocumentsPage: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-missingdocumentspage\" */ \"@agir/events/eventRequiredDocuments/MissingDocuments/MissingDocumentsPage\"\n      ),\n  ),\n  EventRequiredDocuments: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-eventrequireddocuments\" */ \"@agir/events/eventRequiredDocuments/EventRequiredDocumentsPage\"\n      ),\n  ),\n  GroupsPage: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-groupspage\" */ \"@agir/groups/groupsPage/GroupsPage\"\n      ),\n  ),\n  CreateEvent: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-createevent\" */ \"@agir/events/createEventPage/CreateEvent\"\n      ),\n  ),\n  FullGroupPage: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-fullgrouppage\" */ \"@agir/groups/fullGroupPage/FullGroupPage\"\n      ),\n  ),\n  GroupPage: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-grouppage\" */ \"@agir/groups/groupPage/GroupPage\"\n      ),\n  ),\n  GroupMap: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-groupmap\" */ \"@agir/carte/page__groupMap/GroupMap\"\n      ),\n  ),\n  ThematicGroups: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-thematicgroups\" */ \"@agir/groups/thematicGroupPage/ThematicGroupPage\"\n      ),\n  ),\n  ActivityPage: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-activitypage\" */ \"@agir/activity/ActivityPage/ActivityPage\"\n      ),\n  ),\n  NavigationPage: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-navigationpage\" */ \"@agir/front/navigationPage/NavigationPage\"\n      ),\n  ),\n  SignupPage: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-signuppage\" */ \"@agir/front/authentication/Connexion/SignupPage\"\n      ),\n  ),\n  LoginPage: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-loginpage\" */ \"@agir/front/authentication/Connexion/LoginPage\"\n      ),\n  ),\n  CodeLoginPage: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-codeloginpage\" */ \"@agir/front/authentication/Connexion/Code/CodeLogin\"\n      ),\n  ),\n  CodeSignupPage: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-codesignuppage\" */ \"@agir/front/authentication/Connexion/Code/CodeSignup\"\n      ),\n  ),\n  TellMorePage: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-tellmorepage\" */ \"@agir/front/authentication/Connexion/TellMore/TellMorePage\"\n      ),\n  ),\n  LogoutPage: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-logoutpage\" */ \"@agir/front/authentication/Connexion/Logout\"\n      ),\n  ),\n  MessagePage: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-messagepage\" */ \"@agir/msgs/MessagePage/MessagePage\"\n      ),\n  ),\n  CreateContactPage: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-createcontactpage\" */ \"@agir/people/contacts/CreateContactPage\"\n      ),\n  ),\n  DonationLandingPage: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-donationlandingpage\" */ \"@agir/donations/DonationLandingPage\"\n      ),\n  ),\n  ExternalDonationPage: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-externalDonationPage\" */ \"@agir/donations/externalDonationPage/ExternalDonationPage\"\n      ),\n  ),\n  DonationSuccessPage: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-donationSuccessPage\" */ \"@agir/donations/DonationSuccessPage\"\n      ),\n  ),\n  ChequeValidationPage: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-chequeValidationPage\" */\n        \"@agir/donations/validation/ChequeValidation\"\n      ),\n  ),\n  ContributionSuccessPage: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-contributionSuccessPage\" */ \"@agir/donations/ContributionSuccessPage\"\n      ),\n  ),\n  ContributionRenewalPage: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-contributionrenewalpage\" */ \"@agir/donations/contributionRenewalPage/ContributionRenewalPage\"\n      ),\n  ),\n  ActionToolsPage: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-actiontoolspage\" */ \"@agir/front/ActionToolsPage/ActionToolsPage\"\n      ),\n  ),\n  SearchPage: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-searchpage\" */ \"@agir/front/SearchPage/SearchPage\"\n      ),\n  ),\n  SearchGroupPage: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-searchgrouppage\" */ \"@agir/front/SearchPage/SearchGroupPage\"\n      ),\n  ),\n  SearchEventPage: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-searcheventpage\" */ \"@agir/front/SearchPage/SearchEventPage\"\n      ),\n  ),\n  VotingProxyLandingPage: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-votingproxylandingpage\" */ \"@agir/voting_proxies/VotingProxyLandingPage\"\n      ),\n  ),\n  NewVotingProxyRequest: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-newvotingproxyrequest\" */ \"@agir/voting_proxies/VotingProxyRequest/NewVotingProxyRequest\"\n      ),\n  ),\n  NewVotingProxy: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-newvotingproxy\" */ \"@agir/voting_proxies/VotingProxy/NewVotingProxy\"\n      ),\n  ),\n  ReplyToVotingProxyRequests: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-replytovotingproxyrequests\" */ \"@agir/voting_proxies/VotingProxy/ReplyToVotingProxyRequests\"\n      ),\n  ),\n  ReplyToSingleVotingProxyRequest: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-replytosinglevotingproxyrequest\" */ \"@agir/voting_proxies/VotingProxy/ReplyToVotingProxyRequests/ReplyToSingleVotingProxyRequest\"\n      ),\n  ),\n  VotingProxyRequestForProxy: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-votingproxyrequestsforproxy\" */ \"@agir/voting_proxies/VotingProxy/VotingProxyRequestForProxyPage\"\n      ),\n  ),\n  VotingProxyRequestDetails: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-votingproxyrequestdetails\" */ \"@agir/voting_proxies/VotingProxyRequest/VotingProxyRequestDetails\"\n      ),\n  ),\n  TestErrorPage: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-testerrorpage\" */ \"@agir/front/errorPage/TestErrorPage\"\n      ),\n  ),\n  TokTokPreview: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-toktokpreview\" */ \"@agir/events/TokTok/TokTokPreview\"\n      ),\n  ),\n  NewPollingStationOfficer: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-newpollingstationofficer\" */ \"@agir/elections/PollingStationOfficer/NewPollingStationOfficer\"\n      ),\n  ),\n  EventSpeakerPage: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-eventspeakerpage\" */ \"@agir/event_requests/EventSpeakerPage/EventSpeakerPage\"\n      ),\n  ),\n  FaIcons: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-faicons\" */ \"@agir/front/genericComponents/FaIcons\"\n      ),\n  ),\n  CreateSpendingRequest: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-createspendingrequest\" */ \"@agir/donations/spendingRequest/createSpendingRequestPage\"\n      ),\n  ),\n  EditSpendingRequest: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-editspendingrequest\" */ \"@agir/donations/spendingRequest/editSpendingRequestPage\"\n      ),\n  ),\n  SpendingRequestDetails: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-spendingrequestdetails\" */ \"@agir/donations/spendingRequest/spendingRequestPage\"\n      ),\n  ),\n  SpendingRequestHistory: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-spendingrequesthistory\" */ \"@agir/donations/spendingRequest/spendingRequestPage/SpendingRequestHistoryPage\"\n      ),\n  ),\n  GroupFinanceHistory: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-groupfinancehistory\" */ \"@agir/groups/groupPage/GroupSettings/GroupFinancePage/GroupFinanceHistoryPage\"\n      ),\n  ),\n  SoutienPage: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-soutienpage\" */ \"@agir/presidentielle2027/SoutienPage/SoutienPage\"\n      ),\n  ),\n  SoutienPageFinalize: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-soutienpagefinalize\" */ \"@agir/presidentielle2027/SoutienPage/FinalizeRedirectionPage\"\n      ),\n  ),\n  SoutienRejoindreActionPopulaire: lazy(\n    () =>\n      import(\n        /* webpackChunkName: \"r-soutienrejoindreactionpopulaire\" */ \"@agir/presidentielle2027/SoutienPage/SoutienRejoindreActionPopulaire\"\n      ),\n  ),\n};\n\nexport default Routes;\n","import pathToRegexp from \"path-to-regexp-es\";\n\nimport logger from \"@agir/lib/utils/logger\";\n\nimport { AUTHENTICATION } from \"@agir/front/authentication/common\";\nimport { relativeToAbsoluteURL } from \"@agir/lib/utils/url\";\n\nimport RouteComponents from \"./routes.components\";\nexport const BASE_PATH = \"/\";\n\nconst log = logger(__filename);\n\nexport class RouteConfig {\n  constructor(props) {\n    Object.keys(props).forEach((key) => (this[key] = props[key]));\n\n    this.__keys__ = [];\n    const path = Array.isArray(this.path) ? this.path[0] : this.path;\n    this.__re__ = pathToRegexp(this.path, this.__keys__, {\n      end: this.exact === false ? false : true,\n    });\n    this.__toPath__ = pathToRegexp.compile(path);\n\n    this.match = this.match.bind(this);\n    this.getLink = this.getLink.bind(this);\n  }\n\n  /**\n   * Method to match a pathname string against the RouteConfig path\n   * @param  {string} pathname The pathname to match against the RouteConfig path\n   * @return {boolean} True if the argument path matches, false otherwise\n   */\n  match(pathname) {\n    return !!pathname && !!this.__re__.exec(pathname);\n  }\n\n  /**\n   * Method to build a link to the RouteConfig pathname with optional URL parameters\n   * @param  {object} params An object mapping the path parameters value\n   * @param  {absolute} absolute Whether to return an absolute or relative link\n   * @return {string} The link path string\n   */\n  getLink(params, absolute = false) {\n    try {\n      params = {\n        ...(this.params || {}),\n        ...(params || {}),\n      };\n      const link = this.__toPath__(params);\n      return absolute ? relativeToAbsoluteURL(link) : link;\n    } catch (e) {\n      log.error(\"Failed to generate path\", e);\n      return Array.isArray(this.path) ? this.path[0] : this.path;\n    }\n  }\n}\n\nconst notificationSettingRoute = new RouteConfig({\n  id: \"notificationSettings\",\n  path: \"/:root*/parametres/\",\n  exact: true,\n  neededAuthentication: AUTHENTICATION.HARD,\n  label: \"Paramètres de notification\",\n  params: { root: \"activite\" },\n  isPartial: true,\n});\n\nexport const routeConfig = {\n  agenda: new RouteConfig({\n    id: \"agenda\",\n    path: \"/agenda/:agendaSlug\",\n    neededAuthentication: AUTHENTICATION.NONE,\n    label: \"Agenda\",\n    exact: true,\n    hasLayout: true,\n    Component: RouteComponents.CalendarPage,\n  }),\n  events: new RouteConfig({\n    id: \"events\",\n    path: [\"/\", \"/documents-justificatifs/\"],\n    exact: true,\n    neededAuthentication: AUTHENTICATION.SOFT,\n    label: \"Liste des événements\",\n    Component: RouteComponents.AgendaPage,\n    hasLayout: true,\n    layoutProps: {\n      $smallBackgroundColor: \"text25\",\n    },\n    hideFeedbackButton: true,\n    keepScroll: true,\n    hideFooterBanner: true,\n    AnonymousComponent: RouteComponents.HomePage,\n    anonymousConfig: {\n      hasLayout: false,\n    },\n  }),\n  missingEventDocumentsModal: new RouteConfig({\n    id: \"missingEventDocuments\",\n    path: \"/documents-justificatifs/\",\n    exact: true,\n    neededAuthentication: AUTHENTICATION.SOFT,\n    label: \"Documents justificatifs\",\n    hideFeedbackButton: true,\n    isPartial: true,\n  }),\n  missingEventDocuments: new RouteConfig({\n    id: \"missingEventDocuments\",\n    path: \"/evenements/documents-justificatifs/\",\n    exact: true,\n    neededAuthentication: AUTHENTICATION.HARD,\n    label: \"Documents justificatifs\",\n    Component: RouteComponents.MissingDocumentsPage,\n    hideFeedbackButton: true,\n    hasLayout: false,\n    backLink: {\n      route: \"events\",\n      label: \"Liste des événements\",\n      isProtected: true,\n    },\n  }),\n  eventMap: new RouteConfig({\n    id: \"eventMap\",\n    path: \"/evenements/carte/\",\n    exact: true,\n    neededAuthentication: AUTHENTICATION.NONE,\n    label: \"Carte des événements\",\n    Component: RouteComponents.EventMap,\n    hideFooter: true,\n    hideFeedbackButton: true,\n  }),\n  mapEventDetails: new RouteConfig({\n    id: \"mapEventDetails\",\n    path: \"/evenements/carte/:eventPk/\",\n    exact: true,\n    neededAuthentication: AUTHENTICATION.NONE,\n    label: \"Carte des événements\",\n    redirectTo: (_, routeParams) => ({\n      route: \"eventDetails\",\n      routeParams,\n      backLink: \"eventMap\",\n      push: false,\n    }),\n  }),\n  groupUpcomingEventRedirect: new RouteConfig({\n    id: \"groupUpcomingEventRedirect\",\n    path: \"/evenements/groupes/:groupPk/\",\n    exact: true,\n    neededAuthentication: AUTHENTICATION.SOFT,\n    label: \"Agenda des groupes d'action\",\n    Component: RouteComponents.GroupUpcomingEventRedirectPage,\n  }),\n  groupUpcomingEvents: new RouteConfig({\n    id: \"groupUpcomingEvents\",\n    path: \"/evenements/groupes/\",\n    exact: true,\n    neededAuthentication: AUTHENTICATION.SOFT,\n    label: \"Agenda des groupes d'action\",\n    Component: RouteComponents.GroupUpcomingEventPage,\n  }),\n  createEvent: new RouteConfig({\n    id: \"createEvent\",\n    path: \"/evenements/creer/\",\n    exact: false,\n    neededAuthentication: AUTHENTICATION.SOFT,\n    label: \"Nouvel événement\",\n    hideFeedbackButton: true,\n    Component: RouteComponents.CreateEvent,\n    hideFooter: true,\n  }),\n  eventSettings: new RouteConfig({\n    id: \"eventSettings\",\n    path: \"/evenements/:eventPk/gestion/:activePanel?/\",\n    params: { eventPk: null, activePanel: null },\n    exact: true,\n    isPartial: true,\n    neededAuthentication: AUTHENTICATION.HARD,\n    Component: RouteComponents.EventPage,\n    hideFeedbackButton: true,\n  }),\n  eventRequiredDocuments: new RouteConfig({\n    id: \"eventRequiredDocuments\",\n    path: \"/evenements/:eventPk/documents/\",\n    exact: true,\n    neededAuthentication: AUTHENTICATION.HARD,\n    label: \"Documents de l'événement\",\n    Component: RouteComponents.EventRequiredDocuments,\n    backLink: {\n      route: \"events\",\n      label: \"Liste des événements\",\n      isProtected: true,\n    },\n  }),\n  eventSpeaker: new RouteConfig({\n    id: \"eventSpeaker\",\n    path: \"/evenements/demandes/intervenant-e/\",\n    exact: true,\n    neededAuthentication: AUTHENTICATION.SOFT,\n    label: \"Demandes d'événements\",\n    Component: RouteComponents.EventSpeakerPage,\n    hasLayout: false,\n    hideFeedbackButton: true,\n  }),\n  eventDetails: new RouteConfig({\n    id: \"eventDetails\",\n    path: \"/evenements/:eventPk/\",\n    exact: false,\n    neededAuthentication: AUTHENTICATION.NONE,\n    label: \"Page de l'événement\",\n    Component: RouteComponents.EventPage,\n  }),\n  groups: new RouteConfig({\n    id: \"groups\",\n    path: \"/mes-groupes/\",\n    exact: true,\n    neededAuthentication: AUTHENTICATION.SOFT,\n    label: \"Liste des groupes\",\n    Component: RouteComponents.GroupsPage,\n    hasLayout: true,\n    layoutProps: {\n      $smallBackgroundColor: \"text25\",\n    },\n    keepScroll: true,\n  }),\n  groupMap: new RouteConfig({\n    id: \"groupMap\",\n    path: \"/groupes/carte/\",\n    exact: true,\n    neededAuthentication: AUTHENTICATION.NONE,\n    label: \"Carte des groupes\",\n    Component: RouteComponents.GroupMap,\n    hideFooter: true,\n    hideFeedbackButton: true,\n  }),\n  mapGroupDetails: new RouteConfig({\n    id: \"mapGroupDetails\",\n    path: \"/groupes/carte/:groupPk/\",\n    exact: true,\n    neededAuthentication: AUTHENTICATION.NONE,\n    redirectTo: (_, routeParams) => ({\n      route: \"groupDetails\",\n      routeParams,\n      backLink: \"groupMap\",\n      push: false,\n    }),\n  }),\n  fullGroup: new RouteConfig({\n    id: \"fullGroup\",\n    path: \"/groupes/:groupPk/complet/\",\n    exact: true,\n    neededAuthentication: AUTHENTICATION.NONE,\n    label: \"Groupe complet\",\n    Component: RouteComponents.FullGroupPage,\n    hasLayout: false,\n  }),\n  groupFinanceHistory: new RouteConfig({\n    id: \"groupFinanceHistory\",\n    path: \"/groupes/:groupPk/finance/history/\",\n    exact: true,\n    neededAuthentication: AUTHENTICATION.HARD,\n    label: \"Historique du budget\",\n    Component: RouteComponents.GroupFinanceHistory,\n  }),\n  groupSettings: new RouteConfig({\n    id: \"groupSettings\",\n    path: \"/groupes/:groupPk/:activeTab?/gestion/:activePanel?/\",\n    params: { activeTab: null, activePanel: null },\n    exact: true,\n    neededAuthentication: AUTHENTICATION.HARD,\n    Component: RouteComponents.GroupPage,\n    isPartial: true,\n  }),\n  createGroupSpendingRequest: new RouteConfig({\n    id: \"createGroupSpendingRequest\",\n    path: \"/groupes/:groupPk/depenses/creer/\",\n    exact: true,\n    neededAuthentication: AUTHENTICATION.HARD,\n    label: \"Nouvelle dépense\",\n    Component: RouteComponents.CreateSpendingRequest,\n    hideFeedbackButton: true,\n    backLink: {\n      label: \"Gestion du groupe\",\n      route: \"groupSettings\",\n      routeParams: {\n        activePanel: \"finance\",\n      },\n    },\n  }),\n  groupDetailsGestion: new RouteConfig({\n    id: \"groupDetailsGestion\",\n    path: \"/groupes/:groupPk/gestion/:any?/:action?\",\n    exact: false,\n    neededAuthentication: AUTHENTICATION.HARD,\n    label: \"Page gestion du groupe\",\n    Component: RouteComponents.GroupPage,\n    hideTopBar: true,\n    backLink: {\n      route: \"groups\",\n      isProtected: true,\n    },\n  }),\n  groupDetails: new RouteConfig({\n    id: \"groupDetails\",\n    path: \"/groupes/:groupPk/:activeTab?/\",\n    exact: false,\n    neededAuthentication: AUTHENTICATION.NONE,\n    label: \"Page du groupe\",\n    Component: RouteComponents.GroupPage,\n    backLink: {\n      route: \"groups\",\n      isProtected: true,\n    },\n  }),\n  thematicGroups: new RouteConfig({\n    id: \"thematicGroups\",\n    path: \"/groupes-thematiques/\",\n    exact: true,\n    neededAuthentication: AUTHENTICATION.NONE,\n    label: \"Les groupes thématiques\",\n    Component: RouteComponents.ThematicGroups,\n  }),\n  spendingRequestDetails: new RouteConfig({\n    id: \"spendingRequestDetails\",\n    path: \"/financement/demande/:spendingRequestPk/\",\n    exact: true,\n    neededAuthentication: AUTHENTICATION.HARD,\n    label: \"Détails de la demande\",\n    Component: RouteComponents.SpendingRequestDetails,\n  }),\n  spendingRequestHistory: new RouteConfig({\n    id: \"spendingRequestDetails\",\n    path: \"/financement/demande/:spendingRequestPk/historique/\",\n    exact: true,\n    neededAuthentication: AUTHENTICATION.HARD,\n    label: \"Historique de la demande\",\n    Component: RouteComponents.SpendingRequestHistory,\n    backLink: {\n      label: \"Détails de la demande\",\n      route: \"spendingRequestDetails\",\n    },\n  }),\n  editSpendingRequest: new RouteConfig({\n    id: \"editGroupSpendingRequest\",\n    path: \"/financement/demande/:spendingRequestPk/modifier/\",\n    exact: true,\n    neededAuthentication: AUTHENTICATION.HARD,\n    label: \"Modification de la dépense\",\n    Component: RouteComponents.EditSpendingRequest,\n    hideFeedbackButton: true,\n    backLink: {\n      label: \"Détail de la demande\",\n      route: \"spendingRequestDetails\",\n    },\n  }),\n  activities: new RouteConfig({\n    id: \"activities\",\n    path: [\"/activite/\", \"/activite/parametres/\"],\n    exact: true,\n    neededAuthentication: AUTHENTICATION.SOFT,\n    label: \"Notifications\",\n    Component: RouteComponents.ActivityPage,\n    hasLayout: true,\n    layoutProps: {\n      $smallBackgroundColor: \"text25\",\n    },\n    topBarRightLink: {\n      label: notificationSettingRoute.label,\n      to: notificationSettingRoute.getLink({ root: \"activite\" }),\n      protected: true,\n    },\n    keepScroll: true,\n  }),\n  actionTools: new RouteConfig({\n    id: \"actionTools\",\n    path: \"/agir/\",\n    exact: true,\n    neededAuthentication: AUTHENTICATION.SOFT,\n    label: \"Agir\",\n    Component: RouteComponents.ActionToolsPage,\n    hasLayout: false,\n    hideFeedbackButton: true,\n  }),\n  notificationSettings: notificationSettingRoute,\n  menu: new RouteConfig({\n    id: \"menu\",\n    path: \"/navigation/\",\n    exact: true,\n    neededAuthentication: AUTHENTICATION.SOFT,\n    label: \"Menu\",\n    Component: RouteComponents.NavigationPage,\n    hasLayout: true,\n    displayFooterOnMobileApp: true,\n    layoutProps: {\n      style: { paddingBottom: 0 },\n    },\n  }),\n  login: new RouteConfig({\n    id: \"login\",\n    path: \"/connexion/\",\n    exact: true,\n    neededAuthentication: AUTHENTICATION.NONE,\n    label: \"Connexion\",\n    description: \"Connectez-vous à Action Populaire\",\n    Component: RouteComponents.LoginPage,\n    hideTopBar: true,\n    hideFeedbackButton: true,\n    hideFooter: true,\n  }),\n  signup: new RouteConfig({\n    id: \"signup\",\n    path: \"/inscription/\",\n    exact: true,\n    neededAuthentication: AUTHENTICATION.NONE,\n    label: \"Inscription\",\n    description: \"Rejoignez Action Populaire\",\n    Component: () => {\n      window.location.href = \"https://melenchon2027.fr\";\n      return null;\n    },\n    hideTopBar: true,\n    hideFeedbackButton: true,\n    hideFooter: true,\n  }),\n  codeLogin: new RouteConfig({\n    id: \"codeLogin\",\n    path: \"/connexion/code/\",\n    exact: true,\n    neededAuthentication: AUTHENTICATION.NONE,\n    label: \"Connexion\",\n    description: \"Connectez-vous à Action Populaire\",\n    Component: RouteComponents.CodeLoginPage,\n    hideTopBar: true,\n    hideFeedbackButton: true,\n    hideFooter: true,\n  }),\n  codeSignup: new RouteConfig({\n    id: \"codeSignup\",\n    path: \"/inscription/code/\",\n    exact: true,\n    neededAuthentication: AUTHENTICATION.NONE,\n    label: \"Inscription\",\n    description: \"Rejoignez Action Populaire\",\n    Component: () => {\n      window.location.href = \"https://melenchon2027.fr\";\n      return null;\n    },\n    hideTopBar: true,\n    hideFeedbackButton: true,\n    hideFooter: true,\n  }),\n  tellMore: new RouteConfig({\n    id: \"tellMore\",\n    path: \"/bienvenue/\",\n    exact: true,\n    neededAuthentication: AUTHENTICATION.NONE,\n    label: \"J'en dis plus\",\n    Component: RouteComponents.TellMorePage,\n    hideTopBar: true,\n    hideFeedbackButton: true,\n    hidePushModal: true,\n    hideFooter: true,\n  }),\n  logout: new RouteConfig({\n    id: \"logout\",\n    path: \"/deconnexion/\",\n    exact: true,\n    neededAuthentication: AUTHENTICATION.NONE,\n    label: \"Déconnexion\",\n    Component: RouteComponents.LogoutPage,\n  }),\n  messages: new RouteConfig({\n    id: \"messages\",\n    path: [\"/messages/:messagePk?/\", \"/messages/:messagePk/parametres/\"],\n    params: { messagePk: null },\n    exact: true,\n    neededAuthentication: AUTHENTICATION.HARD,\n    label: \"Messages\",\n    Component: RouteComponents.MessagePage,\n    hasLayout: false,\n    hideFeedbackButton: true,\n    hideFooter: true,\n    topBarRightLink: {\n      messageSettings: true,\n    },\n  }),\n  createContact: new RouteConfig({\n    id: \"createContact\",\n    path: \"/contacts/creer/:step?/\",\n    params: { step: null },\n    exact: true,\n    neededAuthentication: AUTHENTICATION.SOFT,\n    label: \"Nouveau contact\",\n    Component: RouteComponents.CreateContactPage,\n    hasLayout: false,\n    hideFeedbackButton: true,\n    hideFooter: true,\n  }),\n  soutienFinalize: new RouteConfig({\n    id: \"soutienFinalizePage\",\n    path: \"/soutien/f/:code\",\n    exact: true,\n    neededAuthentication: AUTHENTICATION.NONE,\n    label: \"Soutien\",\n    Component: RouteComponents.SoutienPageFinalize,\n    hasLayout: false,\n    hideFeedbackButton: true,\n    hideFooter: true,\n    appOnlyTopBar: true,\n  }),\n  soutienRejoindreActionPopulaire: new RouteConfig({\n    id: \"soutienRejoindreActionPopulaire\",\n    path: \"/soutien/rejoindre-action-populaire/\",\n    neededAuthentication: AUTHENTICATION.NONE,\n    label: \"Rejoindre Action populaire\",\n    Component: RouteComponents.SoutienRejoindreActionPopulaire,\n    hasLayout: false,\n    hideFeedbackButton: true,\n    hideFooter: false,\n  }),\n  soutien: new RouteConfig({\n    id: \"soutienPage\",\n    path: \"/soutien/*\",\n    exact: true,\n    neededAuthentication: AUTHENTICATION.NONE,\n    label: \"Soutien\",\n    Component: RouteComponents.SoutienPage,\n    hasLayout: false,\n    hideFeedbackButton: true,\n    hideFooter: true,\n    appOnlyTopBar: true,\n  }),\n  donationLanding: new RouteConfig({\n    id: \"donationLanding\",\n    path: \"/financer/\",\n    exact: true,\n    neededAuthentication: AUTHENTICATION.NONE,\n    label: \"Financer\",\n    Component: RouteComponents.DonationLandingPage,\n    hasLayout: false,\n    hideFeedbackButton: true,\n    hideFooter: true,\n    appOnlyTopBar: true,\n  }),\n  donationSuccess: new RouteConfig({\n    id: \"donationSuccess\",\n    params: { type: null },\n    path: \"/:type?/dons/remerciement/\",\n    exact: true,\n    neededAuthentication: AUTHENTICATION.NONE,\n    label: \"Faire un don\",\n    Component: RouteComponents.DonationSuccessPage,\n    hasLayout: false,\n    hideFeedbackButton: true,\n    hideFooter: true,\n    appOnlyTopBar: true,\n  }),\n  chequeValidation: new RouteConfig({\n    id: \"chequeValidation\",\n    params: { paymentId: null },\n    path: \"/paiement/cheque/:paymentId\",\n    exact: true,\n    neededAuthentication: AUTHENTICATION.NONE,\n    label: \"Merci pour votre don\",\n    Component: RouteComponents.ChequeValidationPage,\n    hasLayout: false,\n    hideFeedbackButton: true,\n    hideFooter: true,\n    appOnlyTopBar: true,\n  }),\n  externalDonation: new RouteConfig({\n    id: \"externalDonation\",\n    params: { type: null },\n    path: [\"/:type?/dons/informations/\", \"/:type?/dons-mensuels/informations/\"],\n    exact: true,\n    neededAuthentication: AUTHENTICATION.NONE,\n    label: \"Faire un don\",\n    Component: RouteComponents.ExternalDonationPage,\n    hasLayout: false,\n    hideFeedbackButton: true,\n    hideFooter: true,\n    appOnlyTopBar: true,\n  }),\n  donations: new RouteConfig({\n    id: \"donations\",\n    path: \"/:type?/dons/:step?/\",\n    params: { type: null, step: null },\n    exact: true,\n    neededAuthentication: AUTHENTICATION.NONE,\n    label: \"Faire un don\",\n    Component: RouteComponents.DonationLandingPage,\n    hasLayout: false,\n    hideFeedbackButton: true,\n    hideFooter: true,\n    appOnlyTopBar: true,\n  }),\n  contributionSuccess: new RouteConfig({\n    id: \"contributionSuccess\",\n    path: \"/contributions/remerciement/\",\n    exact: true,\n    neededAuthentication: AUTHENTICATION.NONE,\n    label: \"Devenir financeur·euse de la France insoumise\",\n    Component: RouteComponents.ContributionSuccessPage,\n    hasLayout: false,\n    hideFeedbackButton: true,\n    hideFooter: true,\n    appOnlyTopBar: true,\n  }),\n  contributionRenewal: new RouteConfig({\n    id: \"contributionRenewal\",\n    path: \"/contributions/renouvelement/\",\n    exact: true,\n    neededAuthentication: AUTHENTICATION.HARD,\n    label: \"Renouveler le financement à la France insoumise\",\n    Component: RouteComponents.ContributionRenewalPage,\n    hasLayout: false,\n    hideFeedbackButton: true,\n  }),\n  contributions: new RouteConfig({\n    id: \"contributions\",\n    path: \"/contributions/:step?/\",\n    params: { step: null },\n    exact: true,\n    neededAuthentication: AUTHENTICATION.NONE,\n    label: \"Devenir financeur·euse de la France insoumise\",\n    Component: RouteComponents.DonationLandingPage,\n    hasLayout: false,\n    hideFeedbackButton: true,\n    hideFooter: true,\n    appOnlyTopBar: true,\n  }),\n  search: new RouteConfig({\n    id: \"search\",\n    path: \"/recherche/\",\n    exact: true,\n    neededAuthentication: AUTHENTICATION.NONE,\n    Component: RouteComponents.SearchPage,\n    label: \"Rechercher\",\n    hasLayout: false,\n    hideFeedbackButton: true,\n  }),\n  searchGroup: new RouteConfig({\n    id: \"searchGroup\",\n    path: \"/recherche/groupes/\",\n    neededAuthentication: AUTHENTICATION.NONE,\n    Component: RouteComponents.SearchGroupPage,\n    label: \"Rechercher un groupe\",\n    hasLayout: false,\n    hideFeedbackButton: true,\n  }),\n  searchEvent: new RouteConfig({\n    id: \"searchEvent\",\n    path: \"/recherche/evenements/\",\n    neededAuthentication: AUTHENTICATION.NONE,\n    Component: RouteComponents.SearchEventPage,\n    label: \"Rechercher un événement\",\n    hasLayout: false,\n    hideFeedbackButton: true,\n  }),\n  testErrorPage: new RouteConfig({\n    id: \"testErrorPage\",\n    path: \"/500/\",\n    neededAuthentication: AUTHENTICATION.NONE,\n    Component: RouteComponents.TestErrorPage,\n    label: \"Une erreur est survenue\",\n    hideFeedbackButton: true,\n    hideFooter: true,\n  }),\n  toktokPreview: new RouteConfig({\n    id: \"toktokPreview\",\n    path: \"/toktok/\",\n    exact: true,\n    neededAuthentication: AUTHENTICATION.SOFT,\n    label: \"TokTok\",\n    Component: RouteComponents.TokTokPreview,\n    hasLayout: false,\n    hideFeedbackButton: true,\n    hideFooter: true,\n  }),\n  faIcons: new RouteConfig({\n    id: \"faIcons\",\n    path: \"/test/fontawesome/\",\n    exact: true,\n    neededAuthentication: AUTHENTICATION.NONE,\n    label: \"Icônes Font Awesome\",\n    Component: RouteComponents.FaIcons,\n    hideFeedbackButton: true,\n  }),\n  newVotingProxyRequest: new RouteConfig({\n    id: \"newVotingProxyRequest\",\n    path: \"/procuration/donner-ma-procuration/\",\n    exact: true,\n    neededAuthentication: AUTHENTICATION.NONE,\n    label: \"Donner ma procuration de vote\",\n    Component: RouteComponents.NewVotingProxyRequest,\n    hasLayout: false,\n    hideFeedbackButton: true,\n    hideFooter: true,\n    appOnlyTopBar: true,\n  }),\n  votingProxyLandingPage: new RouteConfig({\n    id: \"votingProxyLandingPage\",\n    path: \"/procuration/\",\n    exact: true,\n    neededAuthentication: AUTHENTICATION.NONE,\n    label: \"Espace procurations de vote\",\n    Component: RouteComponents.VotingProxyLandingPage,\n    hasLayout: false,\n    hideFeedbackButton: true,\n    hideFooter: true,\n    appOnlyTopBar: true,\n  }),\n  newVotingProxy: new RouteConfig({\n    id: \"newVotingProxy\",\n    path: \"/procuration/prendre-une-procuration/\",\n    exact: true,\n    neededAuthentication: AUTHENTICATION.NONE,\n    label: \"Prendre une procuration de vote\",\n    Component: RouteComponents.NewVotingProxy,\n    hasLayout: false,\n    hideFeedbackButton: true,\n    hideFooter: true,\n    appOnlyTopBar: true,\n  }),\n  replyToSingleVotingProxyRequest: new RouteConfig({\n    id: \"replyToSingleVotingProxyRequest\",\n    path: \"/procuration/prendre-une-procuration/demande/:votingProxyRequestPk/\",\n    params: { votingProxyRequestPk: null },\n    exact: true,\n    neededAuthentication: AUTHENTICATION.NONE,\n    label: \"Prendre une procuration de vote\",\n    Component: RouteComponents.ReplyToSingleVotingProxyRequest,\n    hasLayout: false,\n    hideFeedbackButton: true,\n    hideFooter: true,\n    appOnlyTopBar: true,\n  }),\n  replyToVotingProxyRequests: new RouteConfig({\n    id: \"replyToVotingProxyRequests\",\n    path: \"/procuration/prendre-une-procuration/:votingProxyPk/\",\n    params: { votingProxyPk: null },\n    exact: true,\n    neededAuthentication: AUTHENTICATION.NONE,\n    label: \"Prendre une procuration de vote\",\n    Component: RouteComponents.ReplyToVotingProxyRequests,\n    hasLayout: false,\n    hideFeedbackButton: true,\n    hideFooter: true,\n    appOnlyTopBar: true,\n  }),\n  acceptedVotingProxyRequests: new RouteConfig({\n    id: \"acceptedVotingProxyRequests\",\n    path: \"/procuration/prendre-une-procuration/:votingProxyPk/acceptees/\",\n    params: { votingProxyPk: null },\n    exact: true,\n    neededAuthentication: AUTHENTICATION.NONE,\n    label: \"Prendre une procuration de vote\",\n    Component: RouteComponents.ReplyToVotingProxyRequests,\n    hasLayout: false,\n    hideFeedbackButton: true,\n    hideFooter: true,\n    appOnlyTopBar: true,\n  }),\n  votingProxyRequestsForProxy: new RouteConfig({\n    id: \"votingProxyRequestsForProxy\",\n    path: \"/procuration/prendre-une-procuration/:votingProxyPk/demandes/\",\n    params: { votingProxyPk: null },\n    exact: true,\n    neededAuthentication: AUTHENTICATION.NONE,\n    label: \"Prendre une procuration de vote\",\n    Component: RouteComponents.VotingProxyRequestForProxy,\n    hasLayout: false,\n    hideFeedbackButton: true,\n    hideFooter: true,\n    appOnlyTopBar: true,\n  }),\n  votingProxyRequestDetails: new RouteConfig({\n    id: \"votingProxyRequestDetails\",\n    path: \"/procuration/reponse/\",\n    exact: true,\n    neededAuthentication: AUTHENTICATION.NONE,\n    label: \"Procuration de vote\",\n    Component: RouteComponents.VotingProxyRequestDetails,\n    hasLayout: false,\n    hideFeedbackButton: true,\n    hideFooter: true,\n    appOnlyTopBar: true,\n  }),\n  newPollingStationOfficer: new RouteConfig({\n    id: \"newPollingStationOfficer\",\n    path: \"/elections/assesseures-deleguees/\",\n    exact: true,\n    neededAuthentication: AUTHENTICATION.NONE,\n    label: \"Devenir assesseur·e ou délégué·e\",\n    Component: RouteComponents.NewPollingStationOfficer,\n    hasLayout: false,\n    hideFeedbackButton: true,\n    hideFooter: true,\n    appOnlyTopBar: true,\n  }),\n};\n\nexport const getRouteByPathname = (pathname) => {\n  return Object.values(routeConfig).find(\n    (route) => route.path === pathname || route.match(pathname),\n  );\n};\n\nconst routes = Object.values(routeConfig).filter((route) => !route.isPartial);\n\nexport default routes;\n","export const ACTIVITY_STATUS = {\n  STATUS_UNDISPLAYED: \"U\",\n  STATUS_DISPLAYED: \"S\",\n  STATUS_INTERACTED: \"I\",\n};\n\nexport const CHANGED_DATA_LABEL = {\n  name: \"nom\",\n  start_time: \"date\",\n  end_time: \"date\",\n  contact_name: \"contact\",\n  contact_email: \"contact\",\n  contact_phone: \"contact\",\n  location_name: \"lieu\",\n  location_address1: \"lieu\",\n  location_address2: \"lieu\",\n  location_city: \"lieu\",\n  location_zip: \"lieu\",\n  location_country: \"lieu\",\n  description: \"présentation\",\n  facebook: \"lien facebook\",\n};\n\nexport const getUnread = (data) => {\n  return Array.isArray(data)\n    ? data.filter(\n        (activity) => activity.status === ACTIVITY_STATUS.STATUS_UNDISPLAYED,\n      )\n    : [];\n};\n\nexport const getUnreadCount = (data) => {\n  return getUnread(data).length;\n};\n\nexport const getUninteracted = (data) => {\n  return Array.isArray(data)\n    ? data.filter(\n        (activity) => activity.status !== ACTIVITY_STATUS.STATUS_INTERACTED,\n      )\n    : [];\n};\n\nexport const getUninteractedCount = (data) => {\n  return getUninteracted(data).length;\n};\n","import { useEffect, useState } from \"react\";\nimport useSWR from \"swr\";\n\nconst pinger = async (url) => {\n  try {\n    const res = await fetch(url, { method: \"HEAD\", credentials: \"omit\" });\n    return res.ok;\n  } catch (e) {\n    return false;\n  }\n};\n\nconst pingerConfig = {\n  refreshInterval: 10000,\n  dedupingInterval: 10000,\n  focusThrottleInterval: 10000,\n  refreshWhenOffline: true,\n  shouldRetryOnError: false,\n  revalidateIfStale: false,\n};\n\nexport const useIsOffline = () => {\n  const { data: isOnline } = useSWR(\"/api/ping/\", pinger, pingerConfig);\n\n  const [isUnloading, setIsUnloading] = useState(false);\n\n  useEffect(() => {\n    let handleBeforeUnload = () => setIsUnloading(true);\n    window.addEventListener(\"beforeunload\", handleBeforeUnload);\n    return () => {\n      window.removeEventListener(\"beforeunload\", handleBeforeUnload);\n    };\n  }, []);\n\n  return !isUnloading && typeof isOnline === \"boolean\" ? !isOnline : null;\n};\n"],"names":["PERSON_NOTIFICATIONS","id","type","icon","subtype","label","hasEmail","hasPush","activityTypes","filter","notification","length","GROUP_NOTIFICATIONS","isActive","group","isReferent","isManager","getNotificationId","notificationId","groupId","concat","getGroupNotifications","arguments","undefined","reduce","arr","_toConsumableArray","map","_objectSpread","name","getSingleGroupNotifications","getAllNotifications","user","getNewsletterOptions","option","value","active","isNewsletter","getNewsletterNotifications","groups","getNewsletterStatus","newsletters","Array","isArray","newsletterStatus","Object","values","NEWSLETTER_OPTIONS","forEach","opt","_defineProperty","email","includes","getNotificationStatus","activeNotifications","activeNotification","find","groupNotification","activityType","push","getDefaultNotifications","a","relativeToAbsoluteURL","document","createElement","url","href","addQueryStringParams","params","relative","_typeof","keys","_window","parsedURL","URL","window","location","origin","parseURL","entries","_ref3","_ref4","_slicedToArray","key","searchParams","set","toString","replace","e","parseQueryStringParams","create","queryString","split","search","slice","entry","_entry$split","_entry$split2","match","index","exec","slugify","string","separator","trim","normalize","toLowerCase","RegExp","getHasRouter","state","hasRouter","getIsSessionLoaded","isSessionLoaded","getUser","getIsConnected","getAuthentication","authentication","getBookmarkedEmails","bookmarkedEmails","getRoutes","routes","getToasts","toasts","getPageTitle","pageTitle","getBackLink","backLink","isProtected","getTopBarRightLink","topBarRightLink","getAdminLink","adminLink","getMessages","messages","Boolean","getIsLoadingMessages","isLoadingMessages","getIsUpdatingMessages","isUpdatingMessages","reducers","action","ACTION_TYPE","isPoliticalSupport","SET_IS_POLITICAL_SUPPORT_ACTION","AUTHENTICATION","NONE","newState","toast","toastId","some","t","shortUUID","_ref","title","message","error","comment","newMessage","lastUpdate","Date","now","comments","recentComments","commentCount","c","currentValue","reducer","nextValue","client","axios","xsrfCookieName","xsrfHeaderName","CSRFPromise","interceptors","request","use","_asyncToGenerator","_regeneratorRuntime","_callee","config","_context","prev","next","Cookies","get","method","abrupt","stop","_x","apply","log","logger","ENDPOINT","activities","activity","bulkUpdateActivityStatus","setAllActivitiesRead","announcements","customAnnouncement","unreadActivityCount","getActivityEndpoint","endpoint","_ref2","updateActivityStatus","activityId","status","fromPush","result","data","res","_args","ACTIVITY_STATUS","STATUS_INTERACTED","pushStatus","put","sent","t0","debug","setActivityAsInteracted","setAllActivitiesAsRead","_ref6","_callee4","_context4","mutate","session","hasUnreadActivities","init","globalContextData","nonReactRoutes","setSessionContext","addToasts","clearToast","setPageTitle","setBackLink","setTopBarRightLink","setAdminLink","dispatchFunction","iOSNativeMessage","event","CustomEvent","detail","JSON","parse","dispatchEvent","iosAction","useIOSNotificationGrant","onNotificationGrant","_useState","useState","_useState2","notificationIsGranted","setNotificationIsGranted","_useLocalStorage","useLocalStorage","fcmToken","iosMessageHandler","useCallback","noPermission","postMessage","useIOSMessages","useEffect","grantNotification","console","hasUpdate","cb","_window$webkit2","savedCallback","useRef","current","eventListener","addEventListener","removeEventListener","_window$webkit","webkit","messageHandlers","main","Hide","styled","div","attrs","$under","$over","theme","collapse","props","gutter","Column","withConfig","shouldForwardProp","prop","width","grow","Card","stack","propTypes","PropTypes","Row","align","_ref5","justify","gap","children","Container","section","useIsDesktop","breakpoint","useTheme","innerWidth","isDesktop","setDesktop","refresh","ResponsiveLayout","MobileLayout","DesktopLayout","_objectWithoutProperties","_excluded","React","useResponsiveMemo","mobileValue","desktopValue","useMemo","ResponsiveSpan","_ref7","small","large","_excluded2","getSubscriptions","createSubscriptions","deleteSubscriptions","subscriptions","response","success","post","_callee2","_context2","_x2","setupDefaultNotification","_setupDefaultNotification","_callee3","subscriptionRequest","_context3","Promise","all","flat","getScrollableParent","element","regex","parents","_node","ps","parentNode","style","getComputedStyle","getPropertyValue","scroll","test","overflow","HTMLElement","SVGElement","i","scrollingElement","documentElement","scrollParent","INTERACTIVE_ELEMENT","A","hasAttribute","AUDIO","BUTTON","DETAILS","EMBED","IFRAME","KEYGEN","LABEL","SELECT","TEXTAREA","VIDEO","handleEventExceptForInteractiveChild","callback","target","currentTarget","parentElement","nodeName","HTMLInputElement","tabIndex","cardTypes","default","backgroundColor","borderRadius","primary","alert","backgroundImage","background0","alert_dismissed","isPropValid","onClick","text100","bordered","elaborateShadow","defaultProps","lazy","lazyImport","fallback","LazyComponent","isOffline","useIsOffline","setError","Lazy","reactLazy","Fallback","Error","displayName","preload","scrollToElement","targetElement","scrollerElement","marginTop","scrollableElement","scrollTo","top","offsetTop","behavior","getFirstElementFromError","errors","errorElement","elt","querySelector","getBoundingClientRect","scrollToError","useCurrentLocation","_useState3","pathname","_useState4","setPathname","history","useHistory","listen","grantObservers","useAndroidNotificationGrant","_window$androidApp$no","_window$androidApp","androidApp","notificationPermissionIsGranted","androidNotificationGranted","setAndroidNotificationGranted","isMobileApp","useMobileApp","_window$androidApp2","setupNotificationPermission","onAndroidMessage","channel","obs","observerIndex","findIndex","splice","_useLocalStorage2","isAndroid","_useLocalStorage3","_useLocalStorage4","isIOS","ios","android","useNotificationGrant","_useMobileApp","_useLocalStorage5","_useLocalStorage6","alreadyGrant","setAlreadyGrant","_useAndroidNotificati","hasUpdateAndroid","notificationGrantedAndroid","grantNotificationAndroid","_useIOSNotificationGr","hasUpdateIOS","notificationGrantedIOS","grantNotificationIOS","useHasDownloadBanner","createGlobalState","useDownloadBanner","_useLocalStorage7","_useLocalStorage8","bannerCount","setBannerCount","_useLocalStorage9","visitCount","_useHasDownloadBanner","_useHasDownloadBanner2","hasBanner","setHasBanner","hide","useAppLoader","isReady","getElementById","loader","setLoader","remove","opacity","zIndex","useRoute","route","routeParams","useSelector","isInternal","getRouteByPathname","routeConfig","getLink","useLocationState","singleParamKey","_useLocation","useLocation","querystring","arrayFormat","setParams","stringify","setSingleParam","clearParams","fromActivityUpdated","handleFromActivity","from_activity","Toasts","GlobalContext","ProdProvider","_state$toasts","_ref$hasRouter","_ref$hasToasts","hasToasts","colorScheme","_useReducer","useReducer","rootReducer","_useReducer2","dispatch","doDispatch","createDispatch","sessionContext","useSWR","_self$caches","self","caches","err","Provider","ThemeProvider","getTheme","QueryStringParamsActions","Suspense","GlobalContextProvider","selector","useContext","useDispatch","ICONS","icons","getIconDataUrl","_ref$color","color","fill","height","strokeWidth","strokeLineCap","strokeLineJoin","svg","toSvg","encodeURI","SOFT","HARD","BOOKMARKED_EMAILS_COOKIE_NAME","BOOKMARKED_EMAILS_COOKIE_OPTIONS","expires","secure","process","sameSite","NEWSLETTERS","LFI_reguliere","selected","visible","LFI_exceptionnelle","ELUES","person","membreReseauElus","LFI_jeunes_insoumise","LFI_liaisons","ILB","n","cookieData","bookmarkEmails","emails","bookmarkEmail","getMobileOS","userAgent","navigator","vendor","opera","MSStream","HomePage","AgendaPage","CalendarPage","EventMap","GroupUpcomingEventPage","GroupUpcomingEventRedirectPage","EventPage","MissingDocumentsPage","EventRequiredDocuments","GroupsPage","CreateEvent","FullGroupPage","GroupPage","GroupMap","ThematicGroups","ActivityPage","NavigationPage","SignupPage","LoginPage","CodeLoginPage","CodeSignupPage","TellMorePage","LogoutPage","MessagePage","CreateContactPage","DonationLandingPage","ExternalDonationPage","DonationSuccessPage","ChequeValidationPage","ContributionSuccessPage","ContributionRenewalPage","ActionToolsPage","SearchPage","SearchGroupPage","SearchEventPage","VotingProxyLandingPage","NewVotingProxyRequest","NewVotingProxy","ReplyToVotingProxyRequests","ReplyToSingleVotingProxyRequest","VotingProxyRequestForProxy","VotingProxyRequestDetails","TestErrorPage","TokTokPreview","NewPollingStationOfficer","EventSpeakerPage","FaIcons","CreateSpendingRequest","EditSpendingRequest","SpendingRequestDetails","SpendingRequestHistory","GroupFinanceHistory","SoutienPage","SoutienPageFinalize","SoutienRejoindreActionPopulaire","BASE_PATH","RouteConfig","_createClass","_this","_classCallCheck","this","__keys__","path","__re__","pathToRegexp","end","exact","__toPath__","bind","absolute","link","notificationSettingRoute","neededAuthentication","root","isPartial","agenda","hasLayout","Component","RouteComponents","events","layoutProps","$smallBackgroundColor","hideFeedbackButton","keepScroll","hideFooterBanner","AnonymousComponent","anonymousConfig","missingEventDocumentsModal","missingEventDocuments","eventMap","hideFooter","mapEventDetails","redirectTo","_","groupUpcomingEventRedirect","groupUpcomingEvents","createEvent","eventSettings","eventPk","activePanel","eventRequiredDocuments","eventSpeaker","eventDetails","groupMap","mapGroupDetails","fullGroup","groupFinanceHistory","groupSettings","activeTab","createGroupSpendingRequest","groupDetailsGestion","hideTopBar","groupDetails","thematicGroups","spendingRequestDetails","spendingRequestHistory","editSpendingRequest","to","protected","actionTools","notificationSettings","menu","displayFooterOnMobileApp","paddingBottom","login","description","signup","codeLogin","codeSignup","tellMore","hidePushModal","logout","messagePk","messageSettings","createContact","step","soutienFinalize","appOnlyTopBar","soutienRejoindreActionPopulaire","soutien","donationLanding","donationSuccess","chequeValidation","paymentId","externalDonation","donations","contributionSuccess","contributionRenewal","contributions","searchGroup","searchEvent","testErrorPage","toktokPreview","faIcons","newVotingProxyRequest","votingProxyLandingPage","newVotingProxy","replyToSingleVotingProxyRequest","votingProxyRequestPk","replyToVotingProxyRequests","votingProxyPk","acceptedVotingProxyRequests","votingProxyRequestsForProxy","votingProxyRequestDetails","newPollingStationOfficer","STATUS_UNDISPLAYED","STATUS_DISPLAYED","CHANGED_DATA_LABEL","start_time","end_time","contact_name","contact_email","contact_phone","location_name","location_address1","location_address2","location_city","location_zip","location_country","facebook","getUnread","pinger","fetch","credentials","ok","pingerConfig","refreshInterval","dedupingInterval","focusThrottleInterval","refreshWhenOffline","shouldRetryOnError","revalidateIfStale","isOnline","isUnloading","setIsUnloading","handleBeforeUnload"],"sourceRoot":""}