@igo2/core 1.10.0 → 1.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/__ivy_ngcc__/locale/en.auth.json +29 -29
  2. package/__ivy_ngcc__/locale/en.common.json +43 -43
  3. package/__ivy_ngcc__/locale/en.context.json +198 -198
  4. package/__ivy_ngcc__/locale/en.core.json +29 -29
  5. package/__ivy_ngcc__/locale/en.geo.json +727 -709
  6. package/__ivy_ngcc__/locale/en.integration.json +105 -105
  7. package/__ivy_ngcc__/locale/en.json +23 -5
  8. package/__ivy_ngcc__/locale/fr.auth.json +32 -32
  9. package/__ivy_ngcc__/locale/fr.common.json +43 -43
  10. package/__ivy_ngcc__/locale/fr.context.json +198 -198
  11. package/__ivy_ngcc__/locale/fr.core.json +29 -29
  12. package/__ivy_ngcc__/locale/fr.geo.json +727 -709
  13. package/__ivy_ngcc__/locale/fr.integration.json +107 -107
  14. package/__ivy_ngcc__/locale/fr.json +19 -1
  15. package/bundles/igo2-core.umd.js +54 -34
  16. package/bundles/igo2-core.umd.js.map +1 -1
  17. package/esm2015/lib/activity/activity.interceptor.js +1 -1
  18. package/esm2015/lib/activity/activity.module.js +1 -1
  19. package/esm2015/lib/activity/activity.service.js +1 -1
  20. package/esm2015/lib/activity/index.js +1 -1
  21. package/esm2015/lib/analytics/index.js +1 -1
  22. package/esm2015/lib/analytics/shared/analytics.interface.js +1 -1
  23. package/esm2015/lib/analytics/shared/analytics.service.js +1 -1
  24. package/esm2015/lib/analytics/shared/index.js +1 -1
  25. package/esm2015/lib/config/config.interface.js +1 -1
  26. package/esm2015/lib/config/config.module.js +1 -1
  27. package/esm2015/lib/config/config.provider.js +1 -1
  28. package/esm2015/lib/config/config.service.js +1 -1
  29. package/esm2015/lib/config/index.js +1 -1
  30. package/esm2015/lib/config/version.js +3 -3
  31. package/esm2015/lib/core.module.js +1 -1
  32. package/esm2015/lib/gesture/gesture.module.js +1 -1
  33. package/esm2015/lib/gesture/gesture.provider.js +1 -1
  34. package/esm2015/lib/language/index.js +1 -1
  35. package/esm2015/lib/language/language.module.js +1 -1
  36. package/esm2015/lib/language/shared/index.js +1 -1
  37. package/esm2015/lib/language/shared/language.interface.js +1 -1
  38. package/esm2015/lib/language/shared/language.loader.js +1 -1
  39. package/esm2015/lib/language/shared/language.provider.js +1 -1
  40. package/esm2015/lib/language/shared/language.service.js +1 -1
  41. package/esm2015/lib/language/shared/missing-translation.guard.js +2 -2
  42. package/esm2015/lib/media/index.js +1 -1
  43. package/esm2015/lib/media/media.enum.js +1 -1
  44. package/esm2015/lib/media/media.service.js +1 -1
  45. package/esm2015/lib/message/index.js +1 -1
  46. package/esm2015/lib/message/message.module.js +3 -3
  47. package/esm2015/lib/message/shared/index.js +1 -1
  48. package/esm2015/lib/message/shared/message.enum.js +1 -1
  49. package/esm2015/lib/message/shared/message.interface.js +1 -1
  50. package/esm2015/lib/message/shared/message.service.js +14 -8
  51. package/esm2015/lib/network/index.js +1 -1
  52. package/esm2015/lib/network/network.interfaces.js +1 -1
  53. package/esm2015/lib/network/network.service.js +11 -3
  54. package/esm2015/lib/request/error.interceptor.js +1 -1
  55. package/esm2015/lib/request/error.module.js +1 -1
  56. package/esm2015/lib/request/index.js +1 -1
  57. package/esm2015/lib/request/logging.interceptor.js +2 -2
  58. package/esm2015/lib/request/logging.module.js +1 -1
  59. package/esm2015/lib/route/route.interface.js +1 -1
  60. package/esm2015/lib/route/route.service.js +1 -1
  61. package/esm2015/lib/storage/index.js +1 -1
  62. package/esm2015/lib/storage/storage.interface.js +1 -1
  63. package/esm2015/lib/storage/storage.service.js +1 -1
  64. package/esm2015/public_api.js +1 -1
  65. package/fesm2015/igo2-core.js +40 -26
  66. package/fesm2015/igo2-core.js.map +1 -1
  67. package/lib/message/shared/message.service.d.ts +5 -3
  68. package/lib/network/network.service.d.ts +1 -0
  69. package/locale/en.auth.json +29 -29
  70. package/locale/en.common.json +43 -43
  71. package/locale/en.context.json +198 -198
  72. package/locale/en.core.json +29 -29
  73. package/locale/en.geo.json +727 -709
  74. package/locale/en.integration.json +105 -105
  75. package/locale/en.json +23 -5
  76. package/locale/fr.auth.json +32 -32
  77. package/locale/fr.common.json +43 -43
  78. package/locale/fr.context.json +198 -198
  79. package/locale/fr.core.json +29 -29
  80. package/locale/fr.geo.json +727 -709
  81. package/locale/fr.integration.json +107 -107
  82. package/locale/fr.json +19 -1
  83. package/package.json +2 -2
  84. package/style/all.theming.scss +5 -5
  85. package/style/core.theming.scss +9 -9
  86. package/style/foreground.scss +20 -20
  87. package/style/index.theming.scss +756 -740
  88. package/style/material.font.scss +9 -9
  89. package/style/partial/core.variables.scss +4 -4
  90. package/style/partial/media.scss +80 -80
  91. package/style/themes/blue.theme.scss +19 -19
  92. package/style/themes/bluedq.theme.scss +52 -52
  93. package/style/themes/bluegrey.theme.scss +16 -16
  94. package/style/themes/dark.theme.scss +16 -16
  95. package/style/themes/deeppurple.theme.scss +16 -16
  96. package/style/themes/indigo.theme.scss +16 -16
  97. package/style/themes/orange.theme.scss +16 -16
  98. package/style/themes/teal.theme.scss +16 -16
  99. package/style/theming.scss +7 -7
  100. package/style/typography.scss +15 -15
@@ -1,107 +1,107 @@
1
- {
2
- "igo": {
3
- "integration": {
4
- "tools": {
5
- "catalog": "Catalogue",
6
- "contexts": "Contextes",
7
- "directions": "Itinéraire",
8
- "draw": "Dessin",
9
- "importExport": "Importer et exporter",
10
- "ogcFilter": "Filtrer par",
11
- "map": "Carte",
12
- "layers": "Couches",
13
- "legend": "Légende",
14
- "measurer": "Mesurer",
15
- "print": "Imprimer",
16
- "searchResults": "Résultats de recherche",
17
- "shareMap": "Partager",
18
- "timeFilter": "Filtre temporel",
19
- "about": "À propos",
20
- "spatialFilter": "Filtre spatial",
21
- "advancedMap": "Outils avancés"
22
- },
23
- "searchResultsTool": {
24
- "noResults": "Aucun résultat",
25
- "doSearch": "Veuillez effectuer une recherche dans la barre de recherche ci-dessus.",
26
- "examples": "<b>Permet de rechercher des adresses, des lieux, des coordonnées ou des couches</b>.<br><br>Les recherches d'<u>adresses</u> peuvent être effectuées selon une combinaison: <ul><li>du no. immeuble</li><li>du nom de la rue</li><li>de la ville</li><li>du code postal</li></ul> Exemples pour les <u>lieux</u>: <ul><li>Lac Poulin</li><li>Mcdo Lévis</li><li>Saint-Isidore</li></ul> Vous pouvez aussi utiliser des mots clés pour préciser votre recherche. Exemples: <ul><li>#mun québec (pour rechercher une municipalité)</li><li>#sante Lévis (pour rechercher un établissement de santé)</li><li>#cpe joyeux (pour rechercher un centre de la petite enfance)</li><li>#intersection liégois + église (pour rechercher une intersection, le #+ peut aussi être utilisé)</li></ul>*Les mots clés apparaissent au survol d'un type dans l'onglet des paramètres de recherche -> iCherche -> Type de résultat.<br><br>Exemple pour les <u>coordonnées</u> :<ul><li>Degré décimal (-68.165547, 48.644546)</li><li>Degré minute seconde (-68 9 56, 48 38 40)</li><li>Degré minute décimal (-68 9.56, 48 38.40)</li><li>Projeté (UTM-19 561466.861, 5388278.862)</li><li>BELL (Lat: 48 38 40N Long: 68 9 56W UNC:100 CONF:90)</li><li>Metre Metre (111594.63, 445854.74;32198)</li></ul>Pour plus d'informations sur la recherche par coordonnées : <a href='https://igo2.readthedocs.io/fr/next/properties.html#coordonnees' target='_blank'>Consulter la documentation d'IGO2</a>",
27
- "zoomOnFeatureTooltip": "Zoomer sur l'entité sélectionnée.",
28
- "zoomOnFeatureTooltipOutOfView": "L'entité est hors de la vue. Zoomer sur l'entité sélectionnée."
29
- },
30
- "aboutTool": {
31
- "headerHtml": "",
32
- "html": "<style>#about .bold_class{font-weight: bold;}#about .red{color: red;}#about .tool_name{border-top: 1px solid; padding-top: 10px;}#about .titre_outil{font-weight: bold; font-size: 18px; padding-bottom: 8px;}#about .subtitle{font-size: 20px; padding-bottom: 10px;}#about .align_right{text-align: right;}#about .describe{text-align: justify;}#about a img{color: black; text-decoration: none;}</style><body> <div id='about'> <div class='bold_class subtitle'>Aperçu des fonctionnalités</div><div class='tool_name'> <div class='titre_outil'> <mat-icon class='mat-icon'> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%' preserveAspectRatio='xMidYMid meet' focusable='false'> <path d='M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z'> </path> </svg></mat-icon> Recherche </div><div class='describe'> Située dans la portion supérieure gauche de l’interface, la barre de <span class='bold_class'>Recherche</span> permet de se positionner à l’aide d’une adresse, d’un lieu ou de coordonnées GPS et peut également servir à rechercher une couche. <br><br> Il est également possible de rechercher un élément par type de résultats en utilisant le hashtag « # » (par exemple, #municipalites québec). Les accents et les lettres majuscules n'importent pas lors de l'utilisation du hashtag et n'ont pas d'impact sur les <span class='bold_class'>Résultats de recherche</span>.</div></div><br><div class='tool_name'> <div class='titre_outil'> <mat-icon class='mat-icon'> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%' preserveAspectRatio='xMidYMid meet' focusable='false'> <path d='M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z'></path> </svg></mat-icon> Contextes </div><div class='describe'> Les <span class='bold_class'>Contextes</span> permettent de visualiser des regroupements de couches faits par thème ou par contexte de travail. Lorsqu'un contexte est sélectionné, toutes les couches qu'il contient se retrouvent alors dans la <span class='bold_class'>Carte</span>. Il est possible d'ajouter d’autres couches à partir du <span class='bold_class'>Catalogue</span> ou de l’outil <span class='bold_class'>Recherche.</span> </div><br><div class='red'> <span class='bold_class'>ATTENTION :</span> Si un nouveau contexte est sélectionné, toutes les couches affichées dans la <span class='bold_class'>Carte</span> seront remplacées par celles de ce nouveau contexte. </div><br><div class='tool_name'> <div class='titre_outil'> <mat-icon class='mat-icon'> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%' preserveAspectRatio='xMidYMid meet' focusable='false'> <path d='M15,19L9,16.89V5L15,7.11M20.5,3C20.44,3 20.39,3 20.34,3L15,5.1L9,3L3.36,4.9C3.15,4.97 3,5.15 3,5.38V20.5A0.5,0.5 0 0,0 3.5,21C3.55,21 3.61,21 3.66,20.97L9,18.9L15,21L20.64,19.1C20.85,19 21,18.85 21,18.62V3.5A0.5,0.5 0 0,0 20.5,3Z'> </path> </svg></mat-icon> Carte </div><div class='describe'> Il est possible de personnaliser la <span class='bold_class'>Carte</span> à partir du <span class='bold_class'>Catalogue</span> ou de l’outil <span class='bold_class'>Recherche.</span> Cet espace permet entre autres d’ajouter, de supprimer, d’interroger, de filtrer et de trier les couches présentées. Il est également possible d'afficher les légendes des couches.</div><br></div><div class='tool_name'><div class='titre_outil'><mat-icon class='mat-icon'><svg viewBox='0 0 24 24' fit='' height='100%' width='100%' preserveAspectRatio='xMidYMid meet' focusable='false'><path d='M2 4C2 2.89 2.9 2 4 2H7V4H4V7H2V4M22 4V7H20V4H17V2H20C21.1 2 22 2.89 22 4M2 20V17H4V20H7V22H4C2.9 22 2 21.11 2 20M10 2H14V4H10V2M10 20H14V22H10V20M2 10H4V14H2V10M18.5 13C20.4 13 22 14.6 22 16.5C22 19.1 18.5 23 18.5 23C18.5 23 15 19.1 15 16.5C15 14.6 16.6 13 18.5 13M18.5 17.8C19.2 17.8 19.8 17.2 19.7 16.6C19.7 16 19.1 15.4 18.5 15.4C17.9 15.4 17.3 15.9 17.3 16.6C17.3 17.2 17.8 17.8 18.5 17.8M20 10H22V12.34C21.42 11.84 20.74 11.45 20 11.23V10Z'></path></svg></mat-icon> Filtre spatial </div><div class='describe'> Le <span class='bold_class'>Filtre spatial</span> permet de rechercher des adresses ou des thématiques selon des zones prédéfinies (par exemple, par arrondissement ou par MRC) ou selon un dessin réalisé par l'utilisateur. Les résultats du filtre peuvent être exportés à l'aide de l'outil <span class='bold_class'>Importer et exporter</span>. </div><br></div><div class='tool_name'> <div class='titre_outil'> <mat-icon class='mat-icon'> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%' preserveAspectRatio='xMidYMid meet' focusable='false'> <path d='M1.39,18.36L3.16,16.6L4.58,18L5.64,16.95L4.22,15.54L5.64,14.12L8.11,16.6L9.17,15.54L6.7,13.06L8.11,11.65L9.53,13.06L10.59,12L9.17,10.59L10.59,9.17L13.06,11.65L14.12,10.59L11.65,8.11L13.06,6.7L14.47,8.11L15.54,7.05L14.12,5.64L15.54,4.22L18,6.7L19.07,5.64L16.6,3.16L18.36,1.39L22.61,5.64L5.64,22.61L1.39,18.36Z'> </path> </svg></mat-icon> Mesurer </div><div class='describe'> Cet outil permet de <span class='bold_class'>Mesurer</span> des distances ou des superficies directement sur la carte. </div><br></div><div class='tool_name'><div class='titre_outil'><mat-icon class='mat-icon'><svg viewBox='0 0 24 24' fit='' height='100%' width='100%' preserveAspectRatio='xMidYMid meet' focusable='false'><path d='M9.75 20.85C11.53 20.15 11.14 18.22 10.24 17C9.35 15.75 8.12 14.89 6.88 14.06C6 13.5 5.19 12.8 4.54 12C4.26 11.67 3.69 11.06 4.27 10.94C4.86 10.82 5.88 11.4 6.4 11.62C7.31 12 8.21 12.44 9.05 12.96L10.06 11.26C8.5 10.23 6.5 9.32 4.64 9.05C3.58 8.89 2.46 9.11 2.1 10.26C1.78 11.25 2.29 12.25 2.87 13.03C4.24 14.86 6.37 15.74 7.96 17.32C8.3 17.65 8.71 18.04 8.91 18.5C9.12 18.94 9.07 18.97 8.6 18.97C7.36 18.97 5.81 18 4.8 17.36L3.79 19.06C5.32 20 7.88 21.47 9.75 20.85M20.84 5.25C21.06 5.03 21.06 4.67 20.84 4.46L19.54 3.16C19.33 2.95 18.97 2.95 18.76 3.16L17.74 4.18L19.82 6.26M11 10.92V13H13.08L19.23 6.85L17.15 4.77L11 10.92Z'></path></svg></mat-icon> Dessin </div><div class='describe'> L'outil <span class='bold_class'>Dessin</span> permet de dessiner des entités ponctuelles, linéaires, polygonales ou circulaires accompagnées ou non d'étiquettes. La couleur de remplissage et du contour des entités peuvent être choisies à l'aide des sélecteurs correspondants. <br><br> Une couche Dessins peut être exportée à l'aide de l'outil <span class='bold_class'>Importer et exporter</span>. </div><br></div><div class='tool_name'> <div class='titre_outil'> <mat-icon class='mat-icon'> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%' preserveAspectRatio='xMidYMid meet' focusable='false'> <path d='M14,14.5V12H10V15H8V11A1,1 0 0,1 9,10H14V7.5L17.5,11M21.71,11.29L12.71,2.29H12.7C12.31,1.9 11.68,1.9 11.29,2.29L2.29,11.29C1.9,11.68 1.9,12.32 2.29,12.71L11.29,21.71C11.68,22.09 12.31,22.1 12.71,21.71L21.71,12.71C22.1,12.32 22.1,11.68 21.71,11.29Z'> </path> </svg></mat-icon> Itinéraire </div><div class='describe'> Il est possible de construire un <span class='bold_class'>Itinéraire</span> entre deux points en sélectionnant un point de départ et un point d'arrivée dans la carte ou en recherchant des adresses. Il est ensuite possible d'ajouter des points d'arrêt intermédiaires et de copier la description ou le lien de l'itinéraire dans le presse-papier. </div><br></div><div class='tool_name'> <div class='titre_outil'> <mat-icon class='mat-icon'> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%' preserveAspectRatio='xMidYMid meet' focusable='false'> <path d='M17,14H19V17H22V19H19V22H17V19H14V17H17V14M11,16L2,9L11,2L20,9L11,16M11,18.54L12,17.75V18C12,18.71 12.12,19.39 12.35,20L11,21.07L2,14.07L3.62,12.81L11,18.54Z'></path> </svg></mat-icon> Catalogue </div><div class='describe'> Le <span class='bold_class'>Catalogue</span> contient toutes les couches qui peuvent être ajoutées à la <span class='bold_class'>Carte</span>. L'utilisateur doit cliquer sur + de la couche désirée afin de l’ajouter à la <span class='bold_class'>Carte</span>. </div><br></div><div class='tool_name'> <div class='titre_outil'> <mat-icon class='mat-icon'> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%' preserveAspectRatio='xMidYMid meet' focusable='false'> <path d='M14,17H18V14L23,18.5L18,23V20H14V17M13,9H18.5L13,3.5V9M6,2H14L20,8V12.34C19.37,12.12 18.7,12 18,12A6,6 0 0,0 12,18C12,19.54 12.58,20.94 13.53,22H6C4.89,22 4,21.1 4,20V4A2,2 0 0,1 6,2Z'></path> </svg></mat-icon> Importer et exporter </div><div class='describe'> Il est possible d'<span class='bold_class'>Importer</span> un fichier vectoriel tout en spécifiant un système de coordonnées ou une projection. <br><br> Il est possible d'<span class='bold_class'>Exporter</span> une ou plusieurs couches dans plusieurs formats courants. <br><br> Il est également possible d'<span class='bold_class'>Importer</span> ou d'<span class='bold_class'>Exporter</span> un contexte localement. Cette dernière fonctionnalité permet ainsi de sauvegarder des contextes en mode non-authentifié ou anonyme. </div><br></div><div class='tool_name'> <div class='titre_outil'> <mat-icon class='mat-icon'> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%' preserveAspectRatio='xMidYMid meet' focusable='false'> <path d='M18,3H6V7H18M19,12A1,1 0 0,1 18,11A1,1 0 0,1 19,10A1,1 0 0,1 20,11A1,1 0 0,1 19,12M16,19H8V14H16M19,8H5A3,3 0 0,0 2,11V17H6V21H18V17H22V11A3,3 0 0,0 19,8Z'></path> </svg></mat-icon> Imprimer </div><div class='describe'> Cet outil permet d'<span class='bold_class'>Imprimer</span> la carte affichée à l’écran en spécifiant plusieurs options telles qu'un titre, un commentaire, le format de sortie, le format du papier et l'orientation de l'impression. </div><br></div><div class='tool_name'> <div class='titre_outil'> <mat-icon class='mat-icon'> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%' preserveAspectRatio='xMidYMid meet' focusable='false'> <path d='M18,16.08C17.24,16.08 16.56,16.38 16.04,16.85L8.91,12.7C8.96,12.47 9,12.24 9,12C9,11.76 8.96,11.53 8.91,11.3L15.96,7.19C16.5,7.69 17.21,8 18,8A3,3 0 0,0 21,5A3,3 0 0,0 18,2A3,3 0 0,0 15,5C15,5.24 15.04,5.47 15.09,5.7L8.04,9.81C7.5,9.31 6.79,9 6,9A3,3 0 0,0 3,12A3,3 0 0,0 6,15C6.79,15 7.5,14.69 8.04,14.19L15.16,18.34C15.11,18.55 15.08,18.77 15.08,19C15.08,20.61 16.39,21.91 18,21.91C19.61,21.91 20.92,20.61 20.92,19A2.92,2.92 0 0,0 18,16.08Z'> </path> </svg></mat-icon> Partager </div><div class='describe'> L'outil <span class='bold_class'>Partager</span> permet de créer une adresse URL qui redirige vers une représentation exacte de la <span class='bold_class'>Carte</span> affichée à l’écran. Ce lien peut, par exemple, être partagé ou diffusé dans un document, permettant ainsi de «&nbspsauvegarder » la carte pour une utilisation ultérieure. </div><br></div><div class='tool_name'> <p> <a href='http://igouverte.org/' target='_blank'><img src='./assets/igo2/core/logo.png' alt='IGO' height=32>IGO2</a> est une solution Web libre géomatique développée en mode collaboratif par des spécialistes provenant de plusieurs ministères et organismes du gouvernement du Québec.</p><p>Version: {{version.lib}}</p></div>",
33
- "trainingGuide": "Guide de formation",
34
- "trainingGuideTooltip": "Cliquez ici pour accéder au guide d'autoformation de IGO2"
35
- },
36
- "mapTool": {
37
- "empty": "La carte ne contient aucune couche de données.",
38
- "customize": "Personnalisez-là en ajoutant des couches à partir des outils suivants : ",
39
- "search-tool": "Recherche",
40
- "catalog-tool": "Catalogue de données",
41
- "context-tool": "Gestionnaire de contextes",
42
- "noLayersVisible": "Aucune couche visible.",
43
- "noLayersInRange": "Aucune couche visible dans la plage d'échelle active. Veuillez zoomer ou dézoomer pour découvrir ces couches."
44
- },
45
- "importExportTool": {
46
- "importExportData": "Couche",
47
- "importExportContext": "Contexte"
48
- },
49
- "workspace": {
50
- "toggleWorkspace": "Ouvrir/fermer la vue tabulaire",
51
- "ogcFilter.close": "Fermer",
52
- "ogcFilter.title": "Filtres",
53
- "ogcFilter.tooltip": "Appliquer des filtres sur la couche",
54
- "download.title": "Télécharger les données associées",
55
- "download.tooltip": "Télécharger les données associées",
56
- "inMapExtent.title": "Montrer les entités contenues dans la carte",
57
- "inMapExtent.active.tooltip": "Montrer les entités contenues dans la carte",
58
- "inMapExtent.inactive.tooltip": "Montrer toutes les entités",
59
- "zoomAuto.title": "Zoom auto",
60
- "zoomAuto.tooltip": "Zoom auto",
61
- "selected.title": "Montrer les entités sélectionnées",
62
- "selected.tooltip": "Montrer les entités sélectionnées",
63
- "clearSelection.title": "Tout désélectionner",
64
- "clearSelection.tooltip": "Désélectionner les enregistrements sélectionnés",
65
- "maximize": "Agrandir",
66
- "maximizeTooltip": "Agrandir la fenêtre",
67
- "standardExtent": "Réduire",
68
- "standardExtentTooltip": "Réduire la fenêtre"
69
- },
70
- "directions": {
71
- "warning": {
72
- "title": "Avertissement",
73
- "message": "L'itinéraire proposé dans cet outil ne tient pas compte des conditions routières actuelles, de la congestion routière, des entraves présente sur le réseau et des horaires de traversiers (ouverture quotidienne et saisonnière)."
74
- }
75
- },
76
- "advanced-map-tool": {
77
- "advanced-swipe":{
78
- "swipe-select": "Choisir les couches à comparer",
79
- "selectAll": "Tout sélectionner",
80
- "empty": "La carte ne contient aucune couche de données.",
81
- "customize": "Personnalisez-là en ajoutant des couches à partir des outils suivants : ",
82
- "search-tool": "Recherche",
83
- "catalog-tool": "Catalogue de données",
84
- "context-tool": "Gestionnaire de contextes",
85
- "swipe": "Activer",
86
- "swipe-tool": "Outil de comparaison"
87
- },
88
- "advanced-coordinates": {
89
- "copy": "Copier",
90
- "lon": "Longitude",
91
- "lat": "Latitude",
92
- "nord": "Nord",
93
- "est": "Est",
94
- "coordinates": "Coordonnées du centre de la carte",
95
- "copyMsg": "Coordonnées copiées",
96
- "copyTitle": "Coordonnées du centre",
97
- "center": "Centre",
98
- "coordSystem": "Système de coordonnées",
99
- "zoom": "Niveau de zoom courant: ",
100
- "scale": "Échelle cartographique: ",
101
- "resolution": "Résolution cartographique: "
102
- }
103
-
104
- }
105
- }
106
- }
107
- }
1
+ {
2
+ "igo": {
3
+ "integration": {
4
+ "tools": {
5
+ "catalog": "Catalogue",
6
+ "contexts": "Contextes",
7
+ "directions": "Itinéraire",
8
+ "draw": "Dessin",
9
+ "importExport": "Importer et exporter",
10
+ "ogcFilter": "Filtrer par",
11
+ "map": "Carte",
12
+ "layers": "Couches",
13
+ "legend": "Légende",
14
+ "measurer": "Mesurer",
15
+ "print": "Imprimer",
16
+ "searchResults": "Résultats de recherche",
17
+ "shareMap": "Partager",
18
+ "timeFilter": "Filtre temporel",
19
+ "about": "À propos",
20
+ "spatialFilter": "Filtre spatial",
21
+ "advancedMap": "Outils avancés"
22
+ },
23
+ "searchResultsTool": {
24
+ "noResults": "Aucun résultat",
25
+ "doSearch": "Veuillez effectuer une recherche dans la barre de recherche ci-dessus.",
26
+ "examples": "<b>Permet de rechercher des adresses, des lieux, des coordonnées ou des couches</b>.<br><br>Les recherches d'<u>adresses</u> peuvent être effectuées selon une combinaison: <ul><li>du no. immeuble</li><li>du nom de la rue</li><li>de la ville</li><li>du code postal</li></ul> Exemples pour les <u>lieux</u>: <ul><li>Lac Poulin</li><li>Mcdo Lévis</li><li>Saint-Isidore</li></ul> Vous pouvez aussi utiliser des mots clés pour préciser votre recherche. Exemples: <ul><li>#mun québec (pour rechercher une municipalité)</li><li>#sante Lévis (pour rechercher un établissement de santé)</li><li>#cpe joyeux (pour rechercher un centre de la petite enfance)</li><li>#intersection liégois + église (pour rechercher une intersection, le #+ peut aussi être utilisé)</li></ul>*Les mots clés apparaissent au survol d'un type dans l'onglet des paramètres de recherche -> iCherche -> Type de résultat.<br><br>Exemple pour les <u>coordonnées</u> :<ul><li>Degré décimal (-68.165547, 48.644546)</li><li>Degré minute seconde (-68 9 56, 48 38 40)</li><li>Degré minute décimal (-68 9.56, 48 38.40)</li><li>Projeté (UTM-19 561466.861, 5388278.862)</li><li>BELL (Lat: 48 38 40N Long: 68 9 56W UNC:100 CONF:90)</li><li>Metre Metre (111594.63, 445854.74;32198)</li></ul>Pour plus d'informations sur la recherche par coordonnées : <a href='https://igo2.readthedocs.io/fr/next/properties.html#coordonnees' target='_blank'>Consulter la documentation d'IGO2</a>",
27
+ "zoomOnFeatureTooltip": "Zoomer sur l'entité sélectionnée.",
28
+ "zoomOnFeatureTooltipOutOfView": "L'entité est hors de la vue. Zoomer sur l'entité sélectionnée."
29
+ },
30
+ "aboutTool": {
31
+ "headerHtml": "",
32
+ "html": "<style>#about .bold_class{font-weight: bold;}#about .red{color: red;}#about .tool_name{border-top: 1px solid; padding-top: 10px;}#about .titre_outil{font-weight: bold; font-size: 18px; padding-bottom: 8px;}#about .subtitle{font-size: 20px; padding-bottom: 10px;}#about .align_right{text-align: right;}#about .describe{text-align: justify;}#about a img{color: black; text-decoration: none;}</style><body> <div id='about'> <div class='bold_class subtitle'>Aperçu des fonctionnalités</div><div class='tool_name'> <div class='titre_outil'> <mat-icon class='mat-icon'> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%' preserveAspectRatio='xMidYMid meet' focusable='false'> <path d='M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z'> </path> </svg></mat-icon> Recherche </div><div class='describe'> Située dans la portion supérieure gauche de l’interface, la barre de <span class='bold_class'>Recherche</span> permet de se positionner à l’aide d’une adresse, d’un lieu ou de coordonnées GPS et peut également servir à rechercher une couche. <br><br> Il est également possible de rechercher un élément par type de résultats en utilisant le hashtag « # » (par exemple, #municipalites québec). Les accents et les lettres majuscules n'importent pas lors de l'utilisation du hashtag et n'ont pas d'impact sur les <span class='bold_class'>Résultats de recherche</span>.</div></div><br><div class='tool_name'> <div class='titre_outil'> <mat-icon class='mat-icon'> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%' preserveAspectRatio='xMidYMid meet' focusable='false'> <path d='M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z'></path> </svg></mat-icon> Contextes </div><div class='describe'> Les <span class='bold_class'>Contextes</span> permettent de visualiser des regroupements de couches faits par thème ou par contexte de travail. Lorsqu'un contexte est sélectionné, toutes les couches qu'il contient se retrouvent alors dans la <span class='bold_class'>Carte</span>. Il est possible d'ajouter d’autres couches à partir du <span class='bold_class'>Catalogue</span> ou de l’outil <span class='bold_class'>Recherche.</span> </div><br><div class='red'> <span class='bold_class'>ATTENTION :</span> Si un nouveau contexte est sélectionné, toutes les couches affichées dans la <span class='bold_class'>Carte</span> seront remplacées par celles de ce nouveau contexte. </div><br><div class='tool_name'> <div class='titre_outil'> <mat-icon class='mat-icon'> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%' preserveAspectRatio='xMidYMid meet' focusable='false'> <path d='M15,19L9,16.89V5L15,7.11M20.5,3C20.44,3 20.39,3 20.34,3L15,5.1L9,3L3.36,4.9C3.15,4.97 3,5.15 3,5.38V20.5A0.5,0.5 0 0,0 3.5,21C3.55,21 3.61,21 3.66,20.97L9,18.9L15,21L20.64,19.1C20.85,19 21,18.85 21,18.62V3.5A0.5,0.5 0 0,0 20.5,3Z'> </path> </svg></mat-icon> Carte </div><div class='describe'> Il est possible de personnaliser la <span class='bold_class'>Carte</span> à partir du <span class='bold_class'>Catalogue</span> ou de l’outil <span class='bold_class'>Recherche.</span> Cet espace permet entre autres d’ajouter, de supprimer, d’interroger, de filtrer et de trier les couches présentées. Il est également possible d'afficher les légendes des couches.</div><br></div><div class='tool_name'><div class='titre_outil'><mat-icon class='mat-icon'><svg viewBox='0 0 24 24' fit='' height='100%' width='100%' preserveAspectRatio='xMidYMid meet' focusable='false'><path d='M2 4C2 2.89 2.9 2 4 2H7V4H4V7H2V4M22 4V7H20V4H17V2H20C21.1 2 22 2.89 22 4M2 20V17H4V20H7V22H4C2.9 22 2 21.11 2 20M10 2H14V4H10V2M10 20H14V22H10V20M2 10H4V14H2V10M18.5 13C20.4 13 22 14.6 22 16.5C22 19.1 18.5 23 18.5 23C18.5 23 15 19.1 15 16.5C15 14.6 16.6 13 18.5 13M18.5 17.8C19.2 17.8 19.8 17.2 19.7 16.6C19.7 16 19.1 15.4 18.5 15.4C17.9 15.4 17.3 15.9 17.3 16.6C17.3 17.2 17.8 17.8 18.5 17.8M20 10H22V12.34C21.42 11.84 20.74 11.45 20 11.23V10Z'></path></svg></mat-icon> Filtre spatial </div><div class='describe'> Le <span class='bold_class'>Filtre spatial</span> permet de rechercher des adresses ou des thématiques selon des zones prédéfinies (par exemple, par arrondissement ou par MRC) ou selon un dessin réalisé par l'utilisateur. Les résultats du filtre peuvent être exportés à l'aide de l'outil <span class='bold_class'>Importer et exporter</span>. </div><br></div><div class='tool_name'> <div class='titre_outil'> <mat-icon class='mat-icon'> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%' preserveAspectRatio='xMidYMid meet' focusable='false'> <path d='M1.39,18.36L3.16,16.6L4.58,18L5.64,16.95L4.22,15.54L5.64,14.12L8.11,16.6L9.17,15.54L6.7,13.06L8.11,11.65L9.53,13.06L10.59,12L9.17,10.59L10.59,9.17L13.06,11.65L14.12,10.59L11.65,8.11L13.06,6.7L14.47,8.11L15.54,7.05L14.12,5.64L15.54,4.22L18,6.7L19.07,5.64L16.6,3.16L18.36,1.39L22.61,5.64L5.64,22.61L1.39,18.36Z'> </path> </svg></mat-icon> Mesurer </div><div class='describe'> Cet outil permet de <span class='bold_class'>Mesurer</span> des distances ou des superficies directement sur la carte. </div><br></div><div class='tool_name'><div class='titre_outil'><mat-icon class='mat-icon'><svg viewBox='0 0 24 24' fit='' height='100%' width='100%' preserveAspectRatio='xMidYMid meet' focusable='false'><path d='M9.75 20.85C11.53 20.15 11.14 18.22 10.24 17C9.35 15.75 8.12 14.89 6.88 14.06C6 13.5 5.19 12.8 4.54 12C4.26 11.67 3.69 11.06 4.27 10.94C4.86 10.82 5.88 11.4 6.4 11.62C7.31 12 8.21 12.44 9.05 12.96L10.06 11.26C8.5 10.23 6.5 9.32 4.64 9.05C3.58 8.89 2.46 9.11 2.1 10.26C1.78 11.25 2.29 12.25 2.87 13.03C4.24 14.86 6.37 15.74 7.96 17.32C8.3 17.65 8.71 18.04 8.91 18.5C9.12 18.94 9.07 18.97 8.6 18.97C7.36 18.97 5.81 18 4.8 17.36L3.79 19.06C5.32 20 7.88 21.47 9.75 20.85M20.84 5.25C21.06 5.03 21.06 4.67 20.84 4.46L19.54 3.16C19.33 2.95 18.97 2.95 18.76 3.16L17.74 4.18L19.82 6.26M11 10.92V13H13.08L19.23 6.85L17.15 4.77L11 10.92Z'></path></svg></mat-icon> Dessin </div><div class='describe'> L'outil <span class='bold_class'>Dessin</span> permet de dessiner des entités ponctuelles, linéaires, polygonales ou circulaires accompagnées ou non d'étiquettes. La couleur de remplissage et du contour des entités peuvent être choisies à l'aide des sélecteurs correspondants. <br><br> Une couche Dessins peut être exportée à l'aide de l'outil <span class='bold_class'>Importer et exporter</span>. </div><br></div><div class='tool_name'> <div class='titre_outil'> <mat-icon class='mat-icon'> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%' preserveAspectRatio='xMidYMid meet' focusable='false'> <path d='M14,14.5V12H10V15H8V11A1,1 0 0,1 9,10H14V7.5L17.5,11M21.71,11.29L12.71,2.29H12.7C12.31,1.9 11.68,1.9 11.29,2.29L2.29,11.29C1.9,11.68 1.9,12.32 2.29,12.71L11.29,21.71C11.68,22.09 12.31,22.1 12.71,21.71L21.71,12.71C22.1,12.32 22.1,11.68 21.71,11.29Z'> </path> </svg></mat-icon> Itinéraire </div><div class='describe'> Il est possible de construire un <span class='bold_class'>Itinéraire</span> entre deux points en sélectionnant un point de départ et un point d'arrivée dans la carte ou en recherchant des adresses. Il est ensuite possible d'ajouter des points d'arrêt intermédiaires et de copier la description ou le lien de l'itinéraire dans le presse-papier. </div><br></div><div class='tool_name'> <div class='titre_outil'> <mat-icon class='mat-icon'> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%' preserveAspectRatio='xMidYMid meet' focusable='false'> <path d='M17,14H19V17H22V19H19V22H17V19H14V17H17V14M11,16L2,9L11,2L20,9L11,16M11,18.54L12,17.75V18C12,18.71 12.12,19.39 12.35,20L11,21.07L2,14.07L3.62,12.81L11,18.54Z'></path> </svg></mat-icon> Catalogue </div><div class='describe'> Le <span class='bold_class'>Catalogue</span> contient toutes les couches qui peuvent être ajoutées à la <span class='bold_class'>Carte</span>. L'utilisateur doit cliquer sur + de la couche désirée afin de l’ajouter à la <span class='bold_class'>Carte</span>. </div><br></div><div class='tool_name'> <div class='titre_outil'> <mat-icon class='mat-icon'> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%' preserveAspectRatio='xMidYMid meet' focusable='false'> <path d='M14,17H18V14L23,18.5L18,23V20H14V17M13,9H18.5L13,3.5V9M6,2H14L20,8V12.34C19.37,12.12 18.7,12 18,12A6,6 0 0,0 12,18C12,19.54 12.58,20.94 13.53,22H6C4.89,22 4,21.1 4,20V4A2,2 0 0,1 6,2Z'></path> </svg></mat-icon> Importer et exporter </div><div class='describe'> Il est possible d'<span class='bold_class'>Importer</span> un fichier vectoriel tout en spécifiant un système de coordonnées ou une projection. <br><br> Il est possible d'<span class='bold_class'>Exporter</span> une ou plusieurs couches dans plusieurs formats courants. <br><br> Il est également possible d'<span class='bold_class'>Importer</span> ou d'<span class='bold_class'>Exporter</span> un contexte localement. Cette dernière fonctionnalité permet ainsi de sauvegarder des contextes en mode non-authentifié ou anonyme. </div><br></div><div class='tool_name'> <div class='titre_outil'> <mat-icon class='mat-icon'> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%' preserveAspectRatio='xMidYMid meet' focusable='false'> <path d='M18,3H6V7H18M19,12A1,1 0 0,1 18,11A1,1 0 0,1 19,10A1,1 0 0,1 20,11A1,1 0 0,1 19,12M16,19H8V14H16M19,8H5A3,3 0 0,0 2,11V17H6V21H18V17H22V11A3,3 0 0,0 19,8Z'></path> </svg></mat-icon> Imprimer </div><div class='describe'> Cet outil permet d'<span class='bold_class'>Imprimer</span> la carte affichée à l’écran en spécifiant plusieurs options telles qu'un titre, un commentaire, le format de sortie, le format du papier et l'orientation de l'impression. </div><br></div><div class='tool_name'> <div class='titre_outil'> <mat-icon class='mat-icon'> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%' preserveAspectRatio='xMidYMid meet' focusable='false'> <path d='M18,16.08C17.24,16.08 16.56,16.38 16.04,16.85L8.91,12.7C8.96,12.47 9,12.24 9,12C9,11.76 8.96,11.53 8.91,11.3L15.96,7.19C16.5,7.69 17.21,8 18,8A3,3 0 0,0 21,5A3,3 0 0,0 18,2A3,3 0 0,0 15,5C15,5.24 15.04,5.47 15.09,5.7L8.04,9.81C7.5,9.31 6.79,9 6,9A3,3 0 0,0 3,12A3,3 0 0,0 6,15C6.79,15 7.5,14.69 8.04,14.19L15.16,18.34C15.11,18.55 15.08,18.77 15.08,19C15.08,20.61 16.39,21.91 18,21.91C19.61,21.91 20.92,20.61 20.92,19A2.92,2.92 0 0,0 18,16.08Z'> </path> </svg></mat-icon> Partager </div><div class='describe'> L'outil <span class='bold_class'>Partager</span> permet de créer une adresse URL qui redirige vers une représentation exacte de la <span class='bold_class'>Carte</span> affichée à l’écran. Ce lien peut, par exemple, être partagé ou diffusé dans un document, permettant ainsi de «&nbspsauvegarder » la carte pour une utilisation ultérieure. </div><br></div><div class='tool_name'> <p> <a href='http://igouverte.org/' target='_blank'><img src='./assets/igo2/core/logo.png' alt='IGO' height=32>IGO2</a> est une solution Web libre géomatique développée en mode collaboratif par des spécialistes provenant de plusieurs ministères et organismes du gouvernement du Québec.</p><p>Version: {{version.lib}}</p></div>",
33
+ "trainingGuide": "Guide de formation",
34
+ "trainingGuideTooltip": "Cliquez ici pour accéder au guide d'autoformation de IGO2"
35
+ },
36
+ "mapTool": {
37
+ "empty": "La carte ne contient aucune couche de données.",
38
+ "customize": "Personnalisez-là en ajoutant des couches à partir des outils suivants : ",
39
+ "search-tool": "Recherche",
40
+ "catalog-tool": "Catalogue de données",
41
+ "context-tool": "Gestionnaire de contextes",
42
+ "noLayersVisible": "Aucune couche visible.",
43
+ "noLayersInRange": "Aucune couche visible dans la plage d'échelle active. Veuillez zoomer ou dézoomer pour découvrir ces couches."
44
+ },
45
+ "importExportTool": {
46
+ "importExportData": "Couche",
47
+ "importExportContext": "Contexte"
48
+ },
49
+ "workspace": {
50
+ "toggleWorkspace": "Ouvrir/fermer la vue tabulaire",
51
+ "ogcFilter.close": "Fermer",
52
+ "ogcFilter.title": "Filtres",
53
+ "ogcFilter.tooltip": "Appliquer des filtres sur la couche",
54
+ "download.title": "Télécharger les données associées",
55
+ "download.tooltip": "Télécharger les données associées",
56
+ "inMapExtent.title": "Montrer les entités contenues dans la carte",
57
+ "inMapExtent.active.tooltip": "Montrer les entités contenues dans la carte",
58
+ "inMapExtent.inactive.tooltip": "Montrer toutes les entités",
59
+ "zoomAuto.title": "Zoom auto",
60
+ "zoomAuto.tooltip": "Zoom auto",
61
+ "selected.title": "Montrer les entités sélectionnées",
62
+ "selected.tooltip": "Montrer les entités sélectionnées",
63
+ "clearSelection.title": "Tout désélectionner",
64
+ "clearSelection.tooltip": "Désélectionner les enregistrements sélectionnés",
65
+ "maximize": "Agrandir",
66
+ "maximizeTooltip": "Agrandir la fenêtre",
67
+ "standardExtent": "Réduire",
68
+ "standardExtentTooltip": "Réduire la fenêtre"
69
+ },
70
+ "directions": {
71
+ "warning": {
72
+ "title": "Avertissement",
73
+ "message": "L'itinéraire proposé dans cet outil ne tient pas compte des conditions routières actuelles, de la congestion routière, des entraves présente sur le réseau et des horaires de traversiers (ouverture quotidienne et saisonnière)."
74
+ }
75
+ },
76
+ "advanced-map-tool": {
77
+ "advanced-swipe":{
78
+ "swipe-select": "Choisir les couches à comparer",
79
+ "selectAll": "Tout sélectionner",
80
+ "empty": "La carte ne contient aucune couche de données.",
81
+ "customize": "Personnalisez-là en ajoutant des couches à partir des outils suivants : ",
82
+ "search-tool": "Recherche",
83
+ "catalog-tool": "Catalogue de données",
84
+ "context-tool": "Gestionnaire de contextes",
85
+ "swipe": "Activer",
86
+ "swipe-tool": "Outil de comparaison"
87
+ },
88
+ "advanced-coordinates": {
89
+ "copy": "Copier",
90
+ "lon": "Longitude",
91
+ "lat": "Latitude",
92
+ "nord": "Nord",
93
+ "est": "Est",
94
+ "coordinates": "Coordonnées du centre de la carte",
95
+ "copyMsg": "Coordonnées copiées",
96
+ "copyTitle": "Coordonnées du centre",
97
+ "center": "Centre",
98
+ "coordSystem": "Système de coordonnées",
99
+ "zoom": "Niveau de zoom courant: ",
100
+ "scale": "Échelle cartographique: ",
101
+ "resolution": "Résolution cartographique: "
102
+ }
103
+
104
+ }
105
+ }
106
+ }
107
+ }
@@ -472,7 +472,7 @@
472
472
  "selectField": "Choisir un champ"
473
473
  },
474
474
  "filter": {
475
- "resetFilters": "(Appliquer aucun filtre)",
475
+ "resetFilters": "Réinitialiser les valeurs par défaut",
476
476
  "addFilter": "Ajouter un filtre vide à la liste courante",
477
477
  "removeFilter": "Supprimer le présent filtre à la liste des filtres",
478
478
  "toggleFilterState": "Activer/désactiver le présent filtre",
@@ -549,6 +549,7 @@
549
549
  "mapButtons": {
550
550
  "baselayerSwitcher": "Changer le fond de carte",
551
551
  "geolocate": "Afficher votre position",
552
+ "home-extent": "Aller à l'étendue de la carte",
552
553
  "offline": "Passer en mode hors-ligne",
553
554
  "online": "Passer en mode en ligne",
554
555
  "zoomIn": "Zoomer ({{zoom}})",
@@ -985,8 +986,25 @@
985
986
  }
986
987
  },
987
988
  "workspace": {
989
+ "deleteConfirmation": "Voulez-vous vraiment supprimer cette entité?",
990
+ "addConfirmation": "Voulez-vous vraiment ajouter une entité?",
991
+ "modifyConfirmation": "Voulez-vous vraiment modifier une entité?",
992
+ "deleteSuccess": "L'entité a été supprimée.",
993
+ "addSuccess": "L'entité a été ajoutée.",
994
+ "modifySuccess": "L'entité a été modifiée.",
995
+ "deleteError": "Un problème est survenu. L'entité n'a pas pu être supprimée.",
996
+ "addError": "Un problème est survenu. L'entité n'a pas pu être ajoutée.",
997
+ "modifyError": "Un problème est survenu. L'entité n'a pas pu être modifiée.",
998
+ "cancel": "Annuler",
988
999
  "inMapExtent.active.tooltip": "Ne montrer que les enregistrements contenus dans la carte",
989
1000
  "inMapExtent.inactive.tooltip": "Montrer tous les enregistrements"
1001
+ },
1002
+ "formValidation": {
1003
+ "mandatory": "{{column}}est un champ obligatoire",
1004
+ "minValue": "{{column}} doit être plus grand que {{value}}",
1005
+ "maxValue": "{{column}}doit être plus petit que {{value}}",
1006
+ "minLength": "{{column}} doit être plus long que {{value}} caractères",
1007
+ "maxLength": "{{column}} doit être plus court que {{value}} caractères"
990
1008
  }
991
1009
  },
992
1010
  "integration": {
@@ -2,7 +2,7 @@
2
2
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@angular/common/http'), require('rxjs/operators'), require('rxjs'), require('@igo2/utils'), require('@ngx-translate/core'), require('ngx-toastr'), require('@angular/material/icon'), require('@angular/platform-browser'), require('@angular/router'), require('@angular/cdk/layout')) :
3
3
  typeof define === 'function' && define.amd ? define('@igo2/core', ['exports', '@angular/core', '@angular/common', '@angular/common/http', 'rxjs/operators', 'rxjs', '@igo2/utils', '@ngx-translate/core', 'ngx-toastr', '@angular/material/icon', '@angular/platform-browser', '@angular/router', '@angular/cdk/layout'], factory) :
4
4
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.igo2 = global.igo2 || {}, global.igo2.core = {}), global.ng.core, global.ng.common, global.ng.common.http, global.rxjs.operators, global.rxjs, global.utils, global["ngxt-core"], global.ngxToastr, global.ng.material.icon, global.ng.platformBrowser, global.ng.router, global.ng.cdk.layout));
5
- })(this, (function (exports, i0, common, http, operators, rxjs, utils, i1, i2, i1$1, i2$1, i1$2, i1$3) { 'use strict';
5
+ })(this, (function (exports, i0, common, http, operators, rxjs, utils, i1, i1$1, i1$2, i2, i1$3, i1$4) { 'use strict';
6
6
 
7
7
  function _interopNamespace(e) {
8
8
  if (e && e.__esModule) return e;
@@ -24,11 +24,11 @@
24
24
 
25
25
  var i0__namespace = /*#__PURE__*/_interopNamespace(i0);
26
26
  var i1__namespace = /*#__PURE__*/_interopNamespace(i1);
27
- var i2__namespace = /*#__PURE__*/_interopNamespace(i2);
28
27
  var i1__namespace$1 = /*#__PURE__*/_interopNamespace(i1$1);
29
- var i2__namespace$1 = /*#__PURE__*/_interopNamespace(i2$1);
30
28
  var i1__namespace$2 = /*#__PURE__*/_interopNamespace(i1$2);
29
+ var i2__namespace = /*#__PURE__*/_interopNamespace(i2);
31
30
  var i1__namespace$3 = /*#__PURE__*/_interopNamespace(i1$3);
31
+ var i1__namespace$4 = /*#__PURE__*/_interopNamespace(i1$4);
32
32
 
33
33
  var ActivityService = /** @class */ (function () {
34
34
  function ActivityService() {
@@ -124,8 +124,8 @@
124
124
  })();
125
125
 
126
126
  var version = {
127
- lib: '1.10.0',
128
- releaseDate: 1639407270981
127
+ lib: '1.11.0',
128
+ releaseDate: 1648648424505
129
129
  };
130
130
 
131
131
  var ConfigService = /** @class */ (function () {
@@ -590,7 +590,7 @@
590
590
  }
591
591
  IgoMissingTranslationHandler.prototype.handle = function (params) {
592
592
  if (!params.translateService.langs.length) {
593
- var error = 'Translations are not yet loaded. \
593
+ var error = 'Translations are not yet loaded. \
594
594
  Check that the LanguageService is injected.';
595
595
  throw new Error(error);
596
596
  }
@@ -658,7 +658,7 @@
658
658
  IgoMessageModule.ɵfac = function IgoMessageModule_Factory(t) { return new (t || IgoMessageModule)(); };
659
659
  IgoMessageModule.ɵmod = /*@__PURE__*/ i0__namespace.ɵɵdefineNgModule({ type: IgoMessageModule });
660
660
  IgoMessageModule.ɵinj = /*@__PURE__*/ i0__namespace.ɵɵdefineInjector({ imports: [[common.CommonModule,
661
- i2.ToastrModule.forRoot({
661
+ i1$1.ToastrModule.forRoot({
662
662
  positionClass: 'toast-bottom-right',
663
663
  timeOut: 10000,
664
664
  extendedTimeOut: 10000,
@@ -670,7 +670,7 @@
670
670
  maxOpened: 4,
671
671
  preventDuplicates: true,
672
672
  resetTimeoutOnDuplicate: true,
673
- countDuplicates: true,
673
+ countDuplicates: false,
674
674
  includeTitleDuplicates: true
675
675
  })]] });
676
676
  (function () {
@@ -678,7 +678,7 @@
678
678
  type: i0.NgModule,
679
679
  args: [{
680
680
  imports: [common.CommonModule,
681
- i2.ToastrModule.forRoot({
681
+ i1$1.ToastrModule.forRoot({
682
682
  positionClass: 'toast-bottom-right',
683
683
  timeOut: 10000,
684
684
  extendedTimeOut: 10000,
@@ -690,7 +690,7 @@
690
690
  maxOpened: 4,
691
691
  preventDuplicates: true,
692
692
  resetTimeoutOnDuplicate: true,
693
- countDuplicates: true,
693
+ countDuplicates: false,
694
694
  includeTitleDuplicates: true
695
695
  })],
696
696
  declarations: [],
@@ -698,7 +698,7 @@
698
698
  }]
699
699
  }], null, null);
700
700
  })();
701
- (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0__namespace.ɵɵsetNgModuleScope(IgoMessageModule, { imports: [common.CommonModule, i2__namespace.ToastrModule] }); })();
701
+ (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0__namespace.ɵɵsetNgModuleScope(IgoMessageModule, { imports: [common.CommonModule, i1__namespace$1.ToastrModule] }); })();
702
702
 
703
703
  var LanguageService = /** @class */ (function () {
704
704
  function LanguageService(translate) {
@@ -738,13 +738,20 @@
738
738
  })(exports.MessageType || (exports.MessageType = {}));
739
739
 
740
740
  var MessageService = /** @class */ (function () {
741
- function MessageService(configService, toastr, languageService) {
741
+ function MessageService(injector, configService, languageService) {
742
+ this.injector = injector;
742
743
  this.configService = configService;
743
- this.toastr = toastr;
744
744
  this.languageService = languageService;
745
745
  this.messages$ = new rxjs.BehaviorSubject([]);
746
746
  this.options = this.configService.getConfig('message') || {};
747
747
  }
748
+ Object.defineProperty(MessageService.prototype, "toastr", {
749
+ get: function () {
750
+ return this.injector.get(i1$1.ToastrService);
751
+ },
752
+ enumerable: false,
753
+ configurable: true
754
+ });
748
755
  MessageService.prototype.showError = function (httpError) {
749
756
  httpError.error.caught = true;
750
757
  return this.error(httpError.error.message, httpError.error.title);
@@ -850,7 +857,7 @@
850
857
  };
851
858
  return MessageService;
852
859
  }());
853
- MessageService.ɵfac = function MessageService_Factory(t) { return new (t || MessageService)(i0__namespace.ɵɵinject(ConfigService), i0__namespace.ɵɵinject(i2__namespace.ToastrService), i0__namespace.ɵɵinject(LanguageService)); };
860
+ MessageService.ɵfac = function MessageService_Factory(t) { return new (t || MessageService)(i0__namespace.ɵɵinject(i0.Injector), i0__namespace.ɵɵinject(ConfigService), i0__namespace.ɵɵinject(LanguageService)); };
854
861
  MessageService.ɵprov = /*@__PURE__*/ i0__namespace.ɵɵdefineInjectable({ token: MessageService, factory: MessageService.ɵfac, providedIn: 'root' });
855
862
  (function () {
856
863
  (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassMetadata(MessageService, [{
@@ -858,7 +865,12 @@
858
865
  args: [{
859
866
  providedIn: 'root'
860
867
  }]
861
- }], function () { return [{ type: ConfigService }, { type: i2__namespace.ToastrService }, { type: LanguageService }]; }, null);
868
+ }], function () {
869
+ return [{ type: i0__namespace.Injector, decorators: [{
870
+ type: i0.Inject,
871
+ args: [i0.Injector]
872
+ }] }, { type: ConfigService }, { type: LanguageService }];
873
+ }, null);
862
874
  })();
863
875
 
864
876
  var ErrorInterceptor = /** @class */ (function () {
@@ -972,7 +984,7 @@
972
984
  };
973
985
  return IgoCoreModule;
974
986
  }());
975
- IgoCoreModule.ɵfac = function IgoCoreModule_Factory(t) { return new (t || IgoCoreModule)(i0__namespace.ɵɵinject(i1__namespace$1.MatIconRegistry), i0__namespace.ɵɵinject(i2__namespace$1.DomSanitizer)); };
987
+ IgoCoreModule.ɵfac = function IgoCoreModule_Factory(t) { return new (t || IgoCoreModule)(i0__namespace.ɵɵinject(i1__namespace$2.MatIconRegistry), i0__namespace.ɵɵinject(i2__namespace.DomSanitizer)); };
976
988
  IgoCoreModule.ɵmod = /*@__PURE__*/ i0__namespace.ɵɵdefineNgModule({ type: IgoCoreModule });
977
989
  IgoCoreModule.ɵinj = /*@__PURE__*/ i0__namespace.ɵɵdefineInjector({ imports: [[
978
990
  common.CommonModule,
@@ -1009,7 +1021,7 @@
1009
1021
  IgoMessageModule
1010
1022
  ]
1011
1023
  }]
1012
- }], function () { return [{ type: i1__namespace$1.MatIconRegistry }, { type: i2__namespace$1.DomSanitizer }]; }, null);
1024
+ }], function () { return [{ type: i1__namespace$2.MatIconRegistry }, { type: i2__namespace.DomSanitizer }]; }, null);
1013
1025
  })();
1014
1026
  (function () {
1015
1027
  (typeof ngJitMode === "undefined" || ngJitMode) && i0__namespace.ɵɵsetNgModuleScope(IgoCoreModule, { imports: [common.CommonModule,
@@ -1031,7 +1043,7 @@
1031
1043
  return mc;
1032
1044
  };
1033
1045
  return IgoGestureConfig;
1034
- }(i2$1.HammerGestureConfig));
1046
+ }(i2.HammerGestureConfig));
1035
1047
  IgoGestureConfig.ɵfac = /*@__PURE__*/ function () { var ɵIgoGestureConfig_BaseFactory; return function IgoGestureConfig_Factory(t) { return (ɵIgoGestureConfig_BaseFactory || (ɵIgoGestureConfig_BaseFactory = i0__namespace.ɵɵgetInheritedFactory(IgoGestureConfig)))(t || IgoGestureConfig); }; }();
1036
1048
  IgoGestureConfig.ɵprov = /*@__PURE__*/ i0__namespace.ɵɵdefineInjectable({ token: IgoGestureConfig, factory: IgoGestureConfig.ɵfac });
1037
1049
  (function () {
@@ -1048,7 +1060,7 @@
1048
1060
  ngModule: IgoGestureModule,
1049
1061
  providers: [
1050
1062
  {
1051
- provide: i2$1.HAMMER_GESTURE_CONFIG,
1063
+ provide: i2.HAMMER_GESTURE_CONFIG,
1052
1064
  useClass: IgoGestureConfig
1053
1065
  }
1054
1066
  ]
@@ -1058,18 +1070,18 @@
1058
1070
  }());
1059
1071
  IgoGestureModule.ɵfac = function IgoGestureModule_Factory(t) { return new (t || IgoGestureModule)(); };
1060
1072
  IgoGestureModule.ɵmod = /*@__PURE__*/ i0__namespace.ɵɵdefineNgModule({ type: IgoGestureModule });
1061
- IgoGestureModule.ɵinj = /*@__PURE__*/ i0__namespace.ɵɵdefineInjector({ imports: [[i2$1.HammerModule]] });
1073
+ IgoGestureModule.ɵinj = /*@__PURE__*/ i0__namespace.ɵɵdefineInjector({ imports: [[i2.HammerModule]] });
1062
1074
  (function () {
1063
1075
  (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassMetadata(IgoGestureModule, [{
1064
1076
  type: i0.NgModule,
1065
1077
  args: [{
1066
- imports: [i2$1.HammerModule],
1078
+ imports: [i2.HammerModule],
1067
1079
  declarations: [],
1068
1080
  exports: []
1069
1081
  }]
1070
1082
  }], null, null);
1071
1083
  })();
1072
- (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0__namespace.ɵɵsetNgModuleScope(IgoGestureModule, { imports: [i2$1.HammerModule] }); })();
1084
+ (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0__namespace.ɵɵsetNgModuleScope(IgoGestureModule, { imports: [i2.HammerModule] }); })();
1073
1085
 
1074
1086
  var LoggingInterceptor = /** @class */ (function () {
1075
1087
  function LoggingInterceptor() {
@@ -1190,7 +1202,7 @@
1190
1202
  });
1191
1203
  return RouteService;
1192
1204
  }());
1193
- RouteService.ɵfac = function RouteService_Factory(t) { return new (t || RouteService)(i0__namespace.ɵɵinject(i1__namespace$2.Router), i0__namespace.ɵɵinject(i1__namespace$2.ActivatedRoute), i0__namespace.ɵɵinject(ROUTE_SERVICE_OPTIONS, 8)); };
1205
+ RouteService.ɵfac = function RouteService_Factory(t) { return new (t || RouteService)(i0__namespace.ɵɵinject(i1__namespace$3.Router), i0__namespace.ɵɵinject(i1__namespace$3.ActivatedRoute), i0__namespace.ɵɵinject(ROUTE_SERVICE_OPTIONS, 8)); };
1194
1206
  RouteService.ɵprov = /*@__PURE__*/ i0__namespace.ɵɵdefineInjectable({ token: RouteService, factory: RouteService.ɵfac, providedIn: 'root' });
1195
1207
  (function () {
1196
1208
  (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassMetadata(RouteService, [{
@@ -1199,7 +1211,7 @@
1199
1211
  providedIn: 'root'
1200
1212
  }]
1201
1213
  }], function () {
1202
- return [{ type: i1__namespace$2.Router }, { type: i1__namespace$2.ActivatedRoute }, { type: undefined, decorators: [{
1214
+ return [{ type: i1__namespace$3.Router }, { type: i1__namespace$3.ActivatedRoute }, { type: undefined, decorators: [{
1203
1215
  type: i0.Inject,
1204
1216
  args: [ROUTE_SERVICE_OPTIONS]
1205
1217
  }, {
@@ -1305,38 +1317,38 @@
1305
1317
  this.media$ = new rxjs.BehaviorSubject(undefined);
1306
1318
  this.orientation$ = new rxjs.BehaviorSubject(undefined);
1307
1319
  breakpointObserver
1308
- .observe([i1$3.Breakpoints.HandsetLandscape])
1320
+ .observe([i1$4.Breakpoints.HandsetLandscape])
1309
1321
  .subscribe(function (res) {
1310
1322
  if (res.matches) {
1311
1323
  _this.media$.next(exports.Media.Mobile);
1312
1324
  _this.orientation$.next(exports.MediaOrientation.Landscape);
1313
1325
  }
1314
1326
  });
1315
- breakpointObserver.observe([i1$3.Breakpoints.HandsetPortrait]).subscribe(function (res) {
1327
+ breakpointObserver.observe([i1$4.Breakpoints.HandsetPortrait]).subscribe(function (res) {
1316
1328
  if (res.matches) {
1317
1329
  _this.media$.next(exports.Media.Mobile);
1318
1330
  _this.orientation$.next(exports.MediaOrientation.Portrait);
1319
1331
  }
1320
1332
  });
1321
- breakpointObserver.observe([i1$3.Breakpoints.TabletLandscape]).subscribe(function (res) {
1333
+ breakpointObserver.observe([i1$4.Breakpoints.TabletLandscape]).subscribe(function (res) {
1322
1334
  if (res.matches) {
1323
1335
  _this.media$.next(exports.Media.Tablet);
1324
1336
  _this.orientation$.next(exports.MediaOrientation.Landscape);
1325
1337
  }
1326
1338
  });
1327
- breakpointObserver.observe([i1$3.Breakpoints.TabletPortrait]).subscribe(function (res) {
1339
+ breakpointObserver.observe([i1$4.Breakpoints.TabletPortrait]).subscribe(function (res) {
1328
1340
  if (res.matches) {
1329
1341
  _this.media$.next(exports.Media.Tablet);
1330
1342
  _this.orientation$.next(exports.MediaOrientation.Portrait);
1331
1343
  }
1332
1344
  });
1333
- breakpointObserver.observe([i1$3.Breakpoints.WebLandscape]).subscribe(function (res) {
1345
+ breakpointObserver.observe([i1$4.Breakpoints.WebLandscape]).subscribe(function (res) {
1334
1346
  if (res.matches) {
1335
1347
  _this.media$.next(exports.Media.Desktop);
1336
1348
  _this.orientation$.next(exports.MediaOrientation.Landscape);
1337
1349
  }
1338
1350
  });
1339
- breakpointObserver.observe([i1$3.Breakpoints.WebPortrait]).subscribe(function (res) {
1351
+ breakpointObserver.observe([i1$4.Breakpoints.WebPortrait]).subscribe(function (res) {
1340
1352
  if (res.matches) {
1341
1353
  _this.media$.next(exports.Media.Desktop);
1342
1354
  _this.orientation$.next(exports.MediaOrientation.Portrait);
@@ -1362,7 +1374,7 @@
1362
1374
  };
1363
1375
  return MediaService;
1364
1376
  }());
1365
- MediaService.ɵfac = function MediaService_Factory(t) { return new (t || MediaService)(i0__namespace.ɵɵinject(i1__namespace$3.BreakpointObserver)); };
1377
+ MediaService.ɵfac = function MediaService_Factory(t) { return new (t || MediaService)(i0__namespace.ɵɵinject(i1__namespace$4.BreakpointObserver)); };
1366
1378
  MediaService.ɵprov = /*@__PURE__*/ i0__namespace.ɵɵdefineInjectable({ token: MediaService, factory: MediaService.ɵfac, providedIn: 'root' });
1367
1379
  (function () {
1368
1380
  (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassMetadata(MediaService, [{
@@ -1370,7 +1382,7 @@
1370
1382
  args: [{
1371
1383
  providedIn: 'root'
1372
1384
  }]
1373
- }], function () { return [{ type: i1__namespace$3.BreakpointObserver }]; }, null);
1385
+ }], function () { return [{ type: i1__namespace$4.BreakpointObserver }]; }, null);
1374
1386
  })();
1375
1387
 
1376
1388
  exports.StorageScope = void 0;
@@ -1480,18 +1492,26 @@
1480
1492
  NetworkService.prototype.checkNetworkState = function () {
1481
1493
  var _this = this;
1482
1494
  this.onlineSubscription = rxjs.fromEvent(window, 'online').subscribe(function () {
1495
+ if (_this.previousMessageId) {
1496
+ _this.messageService.remove(_this.previousMessageId);
1497
+ }
1483
1498
  var translate = _this.injector.get(LanguageService).translate;
1484
1499
  var message = translate.instant('igo.core.network.online.message');
1485
1500
  var title = translate.instant('igo.core.network.online.title');
1486
- _this.messageService.info(message, title);
1501
+ var messageObj = _this.messageService.info(message, title);
1502
+ _this.previousMessageId = messageObj.toastId;
1487
1503
  _this.state.connection = true;
1488
1504
  _this.emitEvent();
1489
1505
  });
1490
1506
  this.offlineSubscription = rxjs.fromEvent(window, 'offline').subscribe(function () {
1507
+ if (_this.previousMessageId) {
1508
+ _this.messageService.remove(_this.previousMessageId);
1509
+ }
1491
1510
  var translate = _this.injector.get(LanguageService).translate;
1492
1511
  var message = translate.instant('igo.core.network.offline.message');
1493
1512
  var title = translate.instant('igo.core.network.offline.title');
1494
- _this.messageService.info(message, title);
1513
+ var messageObj = _this.messageService.info(message, title);
1514
+ _this.previousMessageId = messageObj.toastId;
1495
1515
  _this.state.connection = false;
1496
1516
  _this.emitEvent();
1497
1517
  });