@zeitune-sasu/risk-form 0.0.0-stage → 0.1.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.
- package/LICENSE +4 -0
- package/README.md +40 -3
- package/fesm2022/zeitune-sasu-risk-form.mjs +1385 -0
- package/fesm2022/zeitune-sasu-risk-form.mjs.map +1 -0
- package/package.json +42 -3
- package/types/zeitune-sasu-risk-form.d.ts +266 -0
|
@@ -0,0 +1,1385 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { inject, Input, ViewEncapsulation, ChangeDetectionStrategy, Component, ElementRef, Renderer2, RendererStyleFlags2, Directive, ContentChild, EventEmitter, Output, ViewChildren } from '@angular/core';
|
|
3
|
+
import { DomSanitizer } from '@angular/platform-browser';
|
|
4
|
+
import { NgTemplateOutlet } from '@angular/common';
|
|
5
|
+
|
|
6
|
+
// Fichier généré par scripts/gen-icons.mjs : ne pas modifier à la main.
|
|
7
|
+
/** Nom stable -> contenu SVG (viewBox 24, trait 2, arrondi). */
|
|
8
|
+
const ICON_SVG = {
|
|
9
|
+
"activite": "<path d=\"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2\"></path>",
|
|
10
|
+
"administrateur": "<path d=\"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z\"></path><path d=\"M6.376 18.91a6 6 0 0 1 11.249.003\"></path><circle cx=\"12\" cy=\"11\" r=\"4\"></circle>",
|
|
11
|
+
"adresse": "<path d=\"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0\"></path><circle cx=\"12\" cy=\"10\" r=\"3\"></circle>",
|
|
12
|
+
"ajouter": "<path d=\"M5 12h14\"></path><path d=\"M12 5v14\"></path>",
|
|
13
|
+
"ajusterhauteur": "<path d=\"M12 2v20\"></path><path d=\"m8 18 4 4 4-4\"></path><path d=\"m8 6 4-4 4 4\"></path>",
|
|
14
|
+
"ajusterlargeur": "<path d=\"m18 8 4 4-4 4\"></path><path d=\"M2 12h20\"></path><path d=\"m6 8-4 4 4 4\"></path>",
|
|
15
|
+
"alerte": "<path d=\"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3\"></path><path d=\"M12 9v4\"></path><path d=\"M12 17h.01\"></path>",
|
|
16
|
+
"ambulance": "<path d=\"M10 10H6\"></path><path d=\"M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2\"></path><path d=\"M19 18h2a1 1 0 0 0 1-1v-3.28a1 1 0 0 0-.684-.948l-1.923-.641a1 1 0 0 1-.578-.502l-1.539-3.076A1 1 0 0 0 16.382 8H14\"></path><path d=\"M8 8v4\"></path><path d=\"M9 18h6\"></path><circle cx=\"17\" cy=\"18\" r=\"2\"></circle><circle cx=\"7\" cy=\"18\" r=\"2\"></circle>",
|
|
17
|
+
"animal": "<circle cx=\"11\" cy=\"4\" r=\"2\"></circle><circle cx=\"18\" cy=\"8\" r=\"2\"></circle><circle cx=\"20\" cy=\"16\" r=\"2\"></circle><path d=\"M9 10a5 5 0 0 1 5 5v3.5a3.5 3.5 0 0 1-6.84 1.045Q6.52 17.48 4.46 16.84A3.5 3.5 0 0 1 5.5 10Z\"></path>",
|
|
18
|
+
"anniversaire": "<path d=\"M20 21v-8a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v8\"></path><path d=\"M4 16s.5-1 2-1 2.5 2 4 2 2.5-2 4-2 2.5 2 4 2 2-1 2-1\"></path><path d=\"M2 21h20\"></path><path d=\"M7 8v3\"></path><path d=\"M12 8v3\"></path><path d=\"M17 8v3\"></path><path d=\"M7 4h.01\"></path><path d=\"M12 4h.01\"></path><path d=\"M17 4h.01\"></path>",
|
|
19
|
+
"annulee": "<path d=\"M4.929 4.929 19.07 19.071\"></path><circle cx=\"12\" cy=\"12\" r=\"10\"></circle>",
|
|
20
|
+
"annuler": "<path d=\"M9 14 4 9l5-5\"></path><path d=\"M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11\"></path>",
|
|
21
|
+
"arbre": "<path d=\"m17 14 3 3.3a1 1 0 0 1-.7 1.7H4.7a1 1 0 0 1-.7-1.7L7 14h-.3a1 1 0 0 1-.7-1.7L9 9h-.2A1 1 0 0 1 8 7.3L12 3l4 4.3a1 1 0 0 1-.8 1.7H15l3 3.3a1 1 0 0 1-.7 1.7H17Z\"></path><path d=\"M12 22v-3\"></path>",
|
|
22
|
+
"avenant": "<path d=\"M12.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v9.34\"></path><path d=\"M14 2v5a1 1 0 0 0 1 1h5\"></path><path d=\"M10.378 12.622a1 1 0 0 1 3 3.003L8.36 20.637a2 2 0 0 1-.854.506l-2.867.837a.5.5 0 0 1-.62-.62l.836-2.869a2 2 0 0 1 .506-.853z\"></path>",
|
|
23
|
+
"avion": "<path d=\"M17.8 19.2 16 11l3.5-3.5C21 6 21.5 4 21 3c-1-.5-3 0-4.5 1.5L13 8 4.8 6.2c-.5-.1-.9.1-1.1.5l-.3.5c-.2.5-.1 1 .3 1.3L9 12l-2 3H4l-1 1 3 2 2 3 1-1v-3l3-2 3.5 5.3c.3.4.8.5 1.3.3l.5-.2c.4-.3.6-.7.5-1.2z\"></path>",
|
|
24
|
+
"balance": "<path d=\"m16 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z\"></path><path d=\"m2 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z\"></path><path d=\"M7 21h10\"></path><path d=\"M12 3v18\"></path><path d=\"M3 7h2c2 0 5-1 7-2 2 1 5 2 7 2h2\"></path>",
|
|
25
|
+
"banque": "<path d=\"M10 18v-7\"></path><path d=\"M11.12 2.198a2 2 0 0 1 1.76.006l7.866 3.847c.476.233.31.949-.22.949H3.474c-.53 0-.695-.716-.22-.949z\"></path><path d=\"M14 18v-7\"></path><path d=\"M18 18v-7\"></path><path d=\"M3 22h18\"></path><path d=\"M6 18v-7\"></path>",
|
|
26
|
+
"bateau": "<path d=\"M12 10.189V14\"></path><path d=\"M12 2v3\"></path><path d=\"M19 13V7a2 2 0 0 0-2-2H7a2 2 0 0 0-2 2v6\"></path><path d=\"M19.38 20A11.6 11.6 0 0 0 21 14l-8.188-3.639a2 2 0 0 0-1.624 0L3 14a11.6 11.6 0 0 0 2.81 7.76\"></path><path d=\"M2 21c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1s1.2 1 2.5 1c2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1\"></path>",
|
|
27
|
+
"bebe": "<path d=\"M10 16c.5.3 1.2.5 2 .5s1.5-.2 2-.5\"></path><path d=\"M15 12h.01\"></path><path d=\"M19.38 6.813A9 9 0 0 1 20.8 10.2a2 2 0 0 1 0 3.6 9 9 0 0 1-17.6 0 2 2 0 0 1 0-3.6A9 9 0 0 1 12 3c2 0 3.5 1.1 3.5 2.5s-.9 2.5-2 2.5c-.8 0-1.5-.4-1.5-1\"></path><path d=\"M9 12h.01\"></path>",
|
|
28
|
+
"bijou": "<path d=\"M10.5 3 8 9l4 13 4-13-2.5-6\"></path><path d=\"M17 3a2 2 0 0 1 1.6.8l3 4a2 2 0 0 1 .013 2.382l-7.99 10.986a2 2 0 0 1-3.247 0l-7.99-10.986A2 2 0 0 1 2.4 7.8l2.998-3.997A2 2 0 0 1 7 3z\"></path><path d=\"M2 9h20\"></path>",
|
|
29
|
+
"billet": "<path d=\"M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z\"></path><path d=\"M13 5v2\"></path><path d=\"M13 17v2\"></path><path d=\"M13 11v2\"></path>",
|
|
30
|
+
"bloque": "<path d=\"M4.929 4.929 19.07 19.071\"></path><circle cx=\"12\" cy=\"12\" r=\"10\"></circle>",
|
|
31
|
+
"bouclier": "<path d=\"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z\"></path><path d=\"m9 12 2 2 4-4\"></path>",
|
|
32
|
+
"boutique": "<path d=\"M15 21v-5a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v5\"></path><path d=\"M17.774 10.31a1.12 1.12 0 0 0-1.549 0 2.5 2.5 0 0 1-3.451 0 1.12 1.12 0 0 0-1.548 0 2.5 2.5 0 0 1-3.452 0 1.12 1.12 0 0 0-1.549 0 2.5 2.5 0 0 1-3.77-3.248l2.889-4.184A2 2 0 0 1 7 2h10a2 2 0 0 1 1.653.873l2.895 4.192a2.5 2.5 0 0 1-3.774 3.244\"></path><path d=\"M4 10.95V19a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8.05\"></path>",
|
|
33
|
+
"bus": "<path d=\"M8 6v6\"></path><path d=\"M15 6v6\"></path><path d=\"M2 12h19.6\"></path><path d=\"M18 18h3s.5-1.7.8-2.8c.1-.4.2-.8.2-1.2 0-.4-.1-.8-.2-1.2l-1.4-5C20.1 6.8 19.1 6 18 6H4a2 2 0 0 0-2 2v10h3\"></path><circle cx=\"7\" cy=\"18\" r=\"2\"></circle><path d=\"M9 18h5\"></path><circle cx=\"16\" cy=\"18\" r=\"2\"></circle>",
|
|
34
|
+
"cabinet": "<path d=\"M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16\"></path><rect width=\"20\" height=\"14\" x=\"2\" y=\"6\" rx=\"2\"></rect>",
|
|
35
|
+
"calculer": "<rect width=\"16\" height=\"20\" x=\"4\" y=\"2\" rx=\"2\"></rect><line x1=\"8\" x2=\"16\" y1=\"6\" y2=\"6\"></line><line x1=\"16\" x2=\"16\" y1=\"14\" y2=\"18\"></line><path d=\"M16 10h.01\"></path><path d=\"M12 10h.01\"></path><path d=\"M8 10h.01\"></path><path d=\"M12 14h.01\"></path><path d=\"M8 14h.01\"></path><path d=\"M12 18h.01\"></path><path d=\"M8 18h.01\"></path>",
|
|
36
|
+
"calendrier": "<path d=\"M8 2v4\"></path><path d=\"M16 2v4\"></path><rect width=\"18\" height=\"18\" x=\"3\" y=\"4\" rx=\"2\"></rect><path d=\"M3 10h18\"></path>",
|
|
37
|
+
"camion": "<path d=\"M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2\"></path><path d=\"M15 18H9\"></path><path d=\"M19 18h2a1 1 0 0 0 1-1v-3.65a1 1 0 0 0-.22-.624l-3.48-4.35A1 1 0 0 0 17.52 8H14\"></path><circle cx=\"17\" cy=\"18\" r=\"2\"></circle><circle cx=\"7\" cy=\"18\" r=\"2\"></circle>",
|
|
38
|
+
"campagne": "<path d=\"M11 6a13 13 0 0 0 8.4-2.8A1 1 0 0 1 21 4v12a1 1 0 0 1-1.6.8A13 13 0 0 0 11 14H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2z\"></path><path d=\"M6 14a12 12 0 0 0 2.4 7.2 2 2 0 0 0 3.2-2.4A8 8 0 0 1 10 14\"></path><path d=\"M8 6v8\"></path>",
|
|
39
|
+
"carburant": "<path d=\"M14 13h2a2 2 0 0 1 2 2v2a2 2 0 0 0 4 0v-6.998a2 2 0 0 0-.59-1.42L18 5\"></path><path d=\"M14 21V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v16\"></path><path d=\"M2 21h13\"></path><path d=\"M3 9h11\"></path>",
|
|
40
|
+
"carte": "<rect width=\"20\" height=\"14\" x=\"2\" y=\"5\" rx=\"2\"></rect><line x1=\"2\" x2=\"22\" y1=\"10\" y2=\"10\"></line>",
|
|
41
|
+
"carte2": "<path d=\"M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z\"></path><path d=\"M15 5.764v15\"></path><path d=\"M9 3.236v15\"></path>",
|
|
42
|
+
"categorie": "<path d=\"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z\"></path><circle cx=\"7.5\" cy=\"7.5\" r=\".5\" fill=\"currentColor\"></circle>",
|
|
43
|
+
"cible": "<circle cx=\"12\" cy=\"12\" r=\"10\"></circle><circle cx=\"12\" cy=\"12\" r=\"6\"></circle><circle cx=\"12\" cy=\"12\" r=\"2\"></circle>",
|
|
44
|
+
"cle": "<path d=\"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4\"></path><path d=\"m21 2-9.6 9.6\"></path><circle cx=\"7.5\" cy=\"15.5\" r=\"5.5\"></circle>",
|
|
45
|
+
"coeur": "<path d=\"M2 9.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5l-5.492 5.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5\"></path>",
|
|
46
|
+
"commande": "<circle cx=\"8\" cy=\"21\" r=\"1\"></circle><circle cx=\"19\" cy=\"21\" r=\"1\"></circle><path d=\"M2.05 2.05h2l2.66 12.42a2 2 0 0 0 2 1.58h9.78a2 2 0 0 0 1.95-1.57l1.65-7.43H5.12\"></path>",
|
|
47
|
+
"commission": "<path d=\"M11 15h2a2 2 0 1 0 0-4h-3c-.6 0-1.1.2-1.4.6L3 17\"></path><path d=\"m7 21 1.6-1.4c.3-.4.8-.6 1.4-.6h4c1.1 0 2.1-.4 2.8-1.2l4.6-4.4a2 2 0 0 0-2.75-2.91l-4.2 3.9\"></path><path d=\"m2 16 6 6\"></path><circle cx=\"16\" cy=\"9\" r=\"2.9\"></circle><circle cx=\"6\" cy=\"5\" r=\"3\"></circle>",
|
|
48
|
+
"conteneur": "<path d=\"M22 7.7c0-.6-.4-1.2-.8-1.5l-6.3-3.9a1.72 1.72 0 0 0-1.7 0l-10.3 6c-.5.2-.9.8-.9 1.4v6.6c0 .5.4 1.2.8 1.5l6.3 3.9a1.72 1.72 0 0 0 1.7 0l10.3-6c.5-.3.9-1 .9-1.5Z\"></path><path d=\"M10 21.9V14L2.1 9.1\"></path><path d=\"m10 14 11.9-6.9\"></path><path d=\"M14 19.8v-8.1\"></path><path d=\"M18 17.5V9.4\"></path>",
|
|
49
|
+
"copier": "<rect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\" ry=\"2\"></rect><path d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\"></path>",
|
|
50
|
+
"couleur": "<path d=\"M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z\"></path><circle cx=\"13.5\" cy=\"6.5\" r=\".5\" fill=\"currentColor\"></circle><circle cx=\"17.5\" cy=\"10.5\" r=\".5\" fill=\"currentColor\"></circle><circle cx=\"6.5\" cy=\"12.5\" r=\".5\" fill=\"currentColor\"></circle><circle cx=\"8.5\" cy=\"7.5\" r=\".5\" fill=\"currentColor\"></circle>",
|
|
51
|
+
"courriel": "<path d=\"m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7\"></path><rect x=\"2\" y=\"4\" width=\"20\" height=\"16\" rx=\"2\"></rect>",
|
|
52
|
+
"croissant": "<path d=\"m5 12 7-7 7 7\"></path><path d=\"M12 19V5\"></path>",
|
|
53
|
+
"date": "<path d=\"M12 6v6l4 2\"></path><circle cx=\"12\" cy=\"12\" r=\"10\"></circle>",
|
|
54
|
+
"deconnecter": "<path d=\"m16 17 5-5-5-5\"></path><path d=\"M21 12H9\"></path><path d=\"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4\"></path>",
|
|
55
|
+
"decroissant": "<path d=\"M12 5v14\"></path><path d=\"m19 12-7 7-7-7\"></path>",
|
|
56
|
+
"delier": "<path d=\"m18.84 12.25 1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71\"></path><path d=\"m5.17 11.75-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71\"></path><line x1=\"8\" x2=\"8\" y1=\"2\" y2=\"5\"></line><line x1=\"2\" x2=\"5\" y1=\"8\" y2=\"8\"></line><line x1=\"16\" x2=\"16\" y1=\"19\" y2=\"22\"></line><line x1=\"19\" x2=\"22\" y1=\"16\" y2=\"16\"></line>",
|
|
57
|
+
"demander": "<circle cx=\"12\" cy=\"12\" r=\"10\"></circle><path d=\"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\"></path><path d=\"M12 17h.01\"></path>",
|
|
58
|
+
"deplacer": "<circle cx=\"9\" cy=\"12\" r=\"1\"></circle><circle cx=\"9\" cy=\"5\" r=\"1\"></circle><circle cx=\"9\" cy=\"19\" r=\"1\"></circle><circle cx=\"15\" cy=\"12\" r=\"1\"></circle><circle cx=\"15\" cy=\"5\" r=\"1\"></circle><circle cx=\"15\" cy=\"19\" r=\"1\"></circle>",
|
|
59
|
+
"deplier": "<path d=\"m6 9 6 6 6-6\"></path>",
|
|
60
|
+
"desaffecter": "<path d=\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\"></path><circle cx=\"9\" cy=\"7\" r=\"4\"></circle><line x1=\"22\" x2=\"16\" y1=\"11\" y2=\"11\"></line>",
|
|
61
|
+
"descendre": "<path d=\"m6 9 6 6 6-6\"></path>",
|
|
62
|
+
"deverrouille": "<rect width=\"18\" height=\"11\" x=\"3\" y=\"11\" rx=\"2\" ry=\"2\"></rect><path d=\"M7 11V7a5 5 0 0 1 9.9-1\"></path>",
|
|
63
|
+
"dezoomer": "<circle cx=\"11\" cy=\"11\" r=\"8\"></circle><line x1=\"21\" x2=\"16.65\" y1=\"21\" y2=\"16.65\"></line><line x1=\"8\" x2=\"14\" y1=\"11\" y2=\"11\"></line>",
|
|
64
|
+
"discuter": "<path d=\"M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719\"></path>",
|
|
65
|
+
"document": "<path d=\"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z\"></path><path d=\"M14 2v5a1 1 0 0 0 1 1h5\"></path><path d=\"M10 9H8\"></path><path d=\"M16 13H8\"></path><path d=\"M16 17H8\"></path>",
|
|
66
|
+
"dossier": "<path d=\"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z\"></path>",
|
|
67
|
+
"drapeau": "<path d=\"M4 22V4a1 1 0 0 1 .4-.8A6 6 0 0 1 8 2c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10a1 1 0 0 1-.4.8A6 6 0 0 1 16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528\"></path>",
|
|
68
|
+
"duree": "<path d=\"M5 22h14\"></path><path d=\"M5 2h14\"></path><path d=\"M17 22v-4.172a2 2 0 0 0-.586-1.414L12 12l-4.414 4.414A2 2 0 0 0 7 17.828V22\"></path><path d=\"M7 2v4.172a2 2 0 0 0 .586 1.414L12 12l4.414-4.414A2 2 0 0 0 17 6.172V2\"></path>",
|
|
69
|
+
"eau": "<path d=\"M7 16.3c2.2 0 4-1.83 4-4.05 0-1.16-.57-2.26-1.71-3.19S7.29 6.75 7 5.3c-.29 1.45-1.14 2.84-2.29 3.76S3 11.1 3 12.25c0 2.22 1.8 4.05 4 4.05z\"></path><path d=\"M12.56 6.6A10.97 10.97 0 0 0 14 3.02c.5 2.5 2 4.9 4 6.5s3 3.5 3 5.5a6.98 6.98 0 0 1-11.91 4.97\"></path>",
|
|
70
|
+
"ecran": "<rect width=\"20\" height=\"14\" x=\"2\" y=\"3\" rx=\"2\"></rect><line x1=\"8\" x2=\"16\" y1=\"21\" y2=\"21\"></line><line x1=\"12\" x2=\"12\" y1=\"17\" y2=\"21\"></line>",
|
|
71
|
+
"elevage": "<path d=\"M16.4 13.7A6.5 6.5 0 1 0 6.28 6.6c-1.1 3.13-.78 3.9-3.18 6.08A3 3 0 0 0 5 18c4 0 8.4-1.8 11.4-4.3\"></path><path d=\"m18.5 6 2.19 4.5a6.48 6.48 0 0 1-2.29 7.2C15.4 20.2 11 22 7 22a3 3 0 0 1-2.68-1.66L2.4 16.5\"></path><circle cx=\"12.5\" cy=\"8.5\" r=\"2.5\"></circle>",
|
|
72
|
+
"encaisser": "<rect width=\"20\" height=\"12\" x=\"2\" y=\"6\" rx=\"2\"></rect><circle cx=\"12\" cy=\"12\" r=\"2\"></circle><path d=\"M6 12h.01M18 12h.01\"></path>",
|
|
73
|
+
"engin": "<path d=\"M12 12H5a2 2 0 0 0-2 2v5\"></path><circle cx=\"13\" cy=\"19\" r=\"2\"></circle><circle cx=\"5\" cy=\"19\" r=\"2\"></circle><path d=\"M8 19h3m5-17v17h6M6 12V7c0-1.1.9-2 2-2h3l5 5\"></path>",
|
|
74
|
+
"enregistrer": "<path d=\"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z\"></path><path d=\"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7\"></path><path d=\"M7 3v4a1 1 0 0 0 1 1h7\"></path>",
|
|
75
|
+
"ensemble": "<path d=\"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z\"></path><path d=\"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12\"></path><path d=\"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17\"></path>",
|
|
76
|
+
"entree": "<circle cx=\"12\" cy=\"12\" r=\"10\"></circle><path d=\"M12 8v8\"></path><path d=\"m8 12 4 4 4-4\"></path>",
|
|
77
|
+
"entrepot": "<path d=\"M18 21V10a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1v11\"></path><path d=\"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V8a2 2 0 0 1 1.132-1.803l7.95-3.974a2 2 0 0 1 1.837 0l7.948 3.974A2 2 0 0 1 22 8z\"></path><path d=\"M6 13h12\"></path><path d=\"M6 17h12\"></path>",
|
|
78
|
+
"entreprise": "<path d=\"M10 12h4\"></path><path d=\"M10 8h4\"></path><path d=\"M14 21v-3a2 2 0 0 0-4 0v3\"></path><path d=\"M6 10H4a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-2\"></path><path d=\"M6 21V5a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v16\"></path>",
|
|
79
|
+
"envoyer": "<path d=\"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z\"></path><path d=\"m21.854 2.147-10.94 10.939\"></path>",
|
|
80
|
+
"erreur": "<circle cx=\"12\" cy=\"12\" r=\"10\"></circle><path d=\"m15 9-6 6\"></path><path d=\"m9 9 6 6\"></path>",
|
|
81
|
+
"etoile": "<path d=\"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z\"></path>",
|
|
82
|
+
"evenement": "<path d=\"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z\"></path>",
|
|
83
|
+
"expirebientot": "<line x1=\"10\" x2=\"14\" y1=\"2\" y2=\"2\"></line><line x1=\"12\" x2=\"15\" y1=\"14\" y2=\"11\"></line><circle cx=\"12\" cy=\"14\" r=\"8\"></circle>",
|
|
84
|
+
"expiree": "<path d=\"M18 6 6 18\"></path><path d=\"m6 6 12 12\"></path>",
|
|
85
|
+
"facture": "<path d=\"M13 16H8\"></path><path d=\"M14 8H8\"></path><path d=\"M16 12H8\"></path><path d=\"M4 3a1 1 0 0 1 1-1 1.3 1.3 0 0 1 .7.2l.933.6a1.3 1.3 0 0 0 1.4 0l.934-.6a1.3 1.3 0 0 1 1.4 0l.933.6a1.3 1.3 0 0 0 1.4 0l.933-.6a1.3 1.3 0 0 1 1.4 0l.934.6a1.3 1.3 0 0 0 1.4 0l.933-.6A1.3 1.3 0 0 1 19 2a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1 1.3 1.3 0 0 1-.7-.2l-.933-.6a1.3 1.3 0 0 0-1.4 0l-.934.6a1.3 1.3 0 0 1-1.4 0l-.933-.6a1.3 1.3 0 0 0-1.4 0l-.933.6a1.3 1.3 0 0 1-1.4 0l-.934-.6a1.3 1.3 0 0 0-1.4 0l-.933.6a1.3 1.3 0 0 1-.7.2 1 1 0 0 1-1-1z\"></path>",
|
|
86
|
+
"fermer": "<path d=\"M18 6 6 18\"></path><path d=\"m6 6 12 12\"></path>",
|
|
87
|
+
"feu": "<path d=\"M12 3q1 4 4 6.5t3 5.5a1 1 0 0 1-14 0 5 5 0 0 1 1-3 1 1 0 0 0 5 0c0-2-1.5-3-1.5-5q0-2 2.5-4\"></path>",
|
|
88
|
+
"filtrer": "<path d=\"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z\"></path>",
|
|
89
|
+
"fonction": "<rect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\" ry=\"2\"></rect><path d=\"M9 17c2 0 2.8-1 2.8-2.8V10c0-2 1-3.3 3.2-3\"></path><path d=\"M9 11.2h5.7\"></path>",
|
|
90
|
+
"formation": "<path d=\"M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0z\"></path><path d=\"M22 10v6\"></path><path d=\"M6 12.5V16a6 3 0 0 0 12 0v-3.5\"></path>",
|
|
91
|
+
"garantie": "<path d=\"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z\"></path>",
|
|
92
|
+
"globe": "<circle cx=\"12\" cy=\"12\" r=\"10\"></circle><path d=\"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20\"></path><path d=\"M2 12h20\"></path>",
|
|
93
|
+
"groupe": "<path d=\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\"></path><path d=\"M16 3.128a4 4 0 0 1 0 7.744\"></path><path d=\"M22 21v-2a4 4 0 0 0-3-3.87\"></path><circle cx=\"9\" cy=\"7\" r=\"4\"></circle>",
|
|
94
|
+
"hierarchie": "<rect x=\"16\" y=\"16\" width=\"6\" height=\"6\" rx=\"1\"></rect><rect x=\"2\" y=\"16\" width=\"6\" height=\"6\" rx=\"1\"></rect><rect x=\"9\" y=\"2\" width=\"6\" height=\"6\" rx=\"1\"></rect><path d=\"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3\"></path><path d=\"M12 12V8\"></path>",
|
|
95
|
+
"historique": "<path d=\"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8\"></path><path d=\"M3 3v5h5\"></path><path d=\"M12 7v5l4 2\"></path>",
|
|
96
|
+
"hopital": "<path d=\"M12 7v4\"></path><path d=\"M14 21v-3a2 2 0 0 0-4 0v3\"></path><path d=\"M14 9h-4\"></path><path d=\"M18 11h2a2 2 0 0 1 2 2v6a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-9a2 2 0 0 1 2-2h2\"></path><path d=\"M18 21V5a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v16\"></path>",
|
|
97
|
+
"hypothese": "<path d=\"M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2\"></path><path d=\"M6.453 15h11.094\"></path><path d=\"M8.5 2h7\"></path>",
|
|
98
|
+
"idee": "<path d=\"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5\"></path><path d=\"M9 18h6\"></path><path d=\"M10 22h4\"></path>",
|
|
99
|
+
"immeuble": "<path d=\"M12 10h.01\"></path><path d=\"M12 14h.01\"></path><path d=\"M12 6h.01\"></path><path d=\"M16 10h.01\"></path><path d=\"M16 14h.01\"></path><path d=\"M16 6h.01\"></path><path d=\"M8 10h.01\"></path><path d=\"M8 14h.01\"></path><path d=\"M8 6h.01\"></path><path d=\"M9 22v-3a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v3\"></path><rect x=\"4\" y=\"2\" width=\"16\" height=\"20\" rx=\"2\"></rect>",
|
|
100
|
+
"impaye": "<path d=\"M13 18H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5\"></path><path d=\"m17 17 5 5\"></path><path d=\"M18 12h.01\"></path><path d=\"m22 17-5 5\"></path><path d=\"M6 12h.01\"></path><circle cx=\"12\" cy=\"12\" r=\"2\"></circle>",
|
|
101
|
+
"imprimer": "<path d=\"M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2\"></path><path d=\"M6 9V3a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v6\"></path><rect x=\"6\" y=\"14\" width=\"12\" height=\"8\" rx=\"1\"></rect>",
|
|
102
|
+
"information": "<circle cx=\"12\" cy=\"12\" r=\"10\"></circle><path d=\"M12 16v-4\"></path><path d=\"M12 8h.01\"></path>",
|
|
103
|
+
"lien": "<path d=\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"></path><path d=\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"></path>",
|
|
104
|
+
"liste": "<path d=\"M3 5h.01\"></path><path d=\"M3 12h.01\"></path><path d=\"M3 19h.01\"></path><path d=\"M8 5h13\"></path><path d=\"M8 12h13\"></path><path d=\"M8 19h13\"></path>",
|
|
105
|
+
"livrer": "<path d=\"M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2\"></path><path d=\"M15 18H9\"></path><path d=\"M19 18h2a1 1 0 0 0 1-1v-3.65a1 1 0 0 0-.22-.624l-3.48-4.35A1 1 0 0 0 17.52 8H14\"></path><circle cx=\"17\" cy=\"18\" r=\"2\"></circle><circle cx=\"7\" cy=\"18\" r=\"2\"></circle>",
|
|
106
|
+
"lotannule": "<path d=\"M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14\"></path><path d=\"m7.5 4.27 9 5.15\"></path><polyline points=\"3.29 7 12 12 20.71 7\"></polyline><line x1=\"12\" x2=\"12\" y1=\"22\" y2=\"12\"></line><path d=\"m17 13 5 5m-5 0 5-5\"></path>",
|
|
107
|
+
"machine": "<path d=\"M11 10.27 7 3.34\"></path><path d=\"m11 13.73-4 6.93\"></path><path d=\"M12 22v-2\"></path><path d=\"M12 2v2\"></path><path d=\"M14 12h8\"></path><path d=\"m17 20.66-1-1.73\"></path><path d=\"m17 3.34-1 1.73\"></path><path d=\"M2 12h2\"></path><path d=\"m20.66 17-1.73-1\"></path><path d=\"m20.66 7-1.73 1\"></path><path d=\"m3.34 17 1.73-1\"></path><path d=\"m3.34 7 1.73 1\"></path><circle cx=\"12\" cy=\"12\" r=\"2\"></circle><circle cx=\"12\" cy=\"12\" r=\"8\"></circle>",
|
|
108
|
+
"maison": "<path d=\"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8\"></path><path d=\"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\"></path>",
|
|
109
|
+
"masquer": "<path d=\"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49\"></path><path d=\"M14.084 14.158a3 3 0 0 1-4.242-4.242\"></path><path d=\"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143\"></path><path d=\"m2 2 20 20\"></path>",
|
|
110
|
+
"materiel": "<path d=\"M18 5a2 2 0 0 1 2 2v8.526a2 2 0 0 0 .212.897l1.068 2.127a1 1 0 0 1-.9 1.45H3.62a1 1 0 0 1-.9-1.45l1.068-2.127A2 2 0 0 0 4 15.526V7a2 2 0 0 1 2-2z\"></path><path d=\"M20.054 15.987H3.946\"></path>",
|
|
111
|
+
"medicament": "<path d=\"m10.5 20.5 10-10a4.95 4.95 0 1 0-7-7l-10 10a4.95 4.95 0 1 0 7 7Z\"></path><path d=\"m8.5 8.5 7 7\"></path>",
|
|
112
|
+
"mobile": "<rect width=\"14\" height=\"20\" x=\"5\" y=\"2\" rx=\"2\" ry=\"2\"></rect><path d=\"M12 18h.01\"></path>",
|
|
113
|
+
"mobilier": "<path d=\"M19 9V6a2 2 0 0 0-2-2H7a2 2 0 0 0-2 2v3\"></path><path d=\"M3 16a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-5a2 2 0 0 0-4 0v1.5a.5.5 0 0 1-.5.5h-9a.5.5 0 0 1-.5-.5V11a2 2 0 0 0-4 0z\"></path><path d=\"M5 18v2\"></path><path d=\"M19 18v2\"></path>",
|
|
114
|
+
"modifiee": "<path d=\"M8 3 4 7l4 4\"></path><path d=\"M4 7h16\"></path><path d=\"m16 21 4-4-4-4\"></path><path d=\"M20 17H4\"></path>",
|
|
115
|
+
"modifier": "<path d=\"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z\"></path><path d=\"m15 5 4 4\"></path>",
|
|
116
|
+
"monnaie": "<circle cx=\"8\" cy=\"8\" r=\"6\"></circle><path d=\"M18.09 10.37A6 6 0 1 1 10.34 18\"></path><path d=\"M7 6h1v4\"></path><path d=\"m16.71 13.88.7.71-2.82 2.82\"></path>",
|
|
117
|
+
"monter": "<path d=\"m18 15-6-6-6 6\"></path>",
|
|
118
|
+
"moto": "<circle cx=\"18.5\" cy=\"17.5\" r=\"3.5\"></circle><circle cx=\"5.5\" cy=\"17.5\" r=\"3.5\"></circle><circle cx=\"15\" cy=\"5\" r=\"1\"></circle><path d=\"M12 17.5V14l-3-3 4-3 2 3h2\"></path>",
|
|
119
|
+
"naviguer": "<path d=\"m9 18 6-6-6-6\"></path>",
|
|
120
|
+
"neutre": "<circle cx=\"12\" cy=\"12\" r=\"10\"></circle>",
|
|
121
|
+
"notation": "<path d=\"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z\"></path>",
|
|
122
|
+
"note": "<path d=\"M21 9a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 15 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2z\"></path><path d=\"M15 3v5a1 1 0 0 0 1 1h5\"></path>",
|
|
123
|
+
"numero": "<line x1=\"4\" x2=\"20\" y1=\"9\" y2=\"9\"></line><line x1=\"4\" x2=\"20\" y1=\"15\" y2=\"15\"></line><line x1=\"10\" x2=\"8\" y1=\"3\" y2=\"21\"></line><line x1=\"16\" x2=\"14\" y1=\"3\" y2=\"21\"></line>",
|
|
124
|
+
"options": "<circle cx=\"12\" cy=\"12\" r=\"1\"></circle><circle cx=\"12\" cy=\"5\" r=\"1\"></circle><circle cx=\"12\" cy=\"19\" r=\"1\"></circle>",
|
|
125
|
+
"orage": "<path d=\"M6 16.326A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 .5 8.973\"></path><path d=\"m13 12-3 5h4l-3 5\"></path>",
|
|
126
|
+
"outil": "<path d=\"m15 12-9.373 9.373a1 1 0 0 1-3.001-3L12 9\"></path><path d=\"m18 15 4-4\"></path><path d=\"m21.5 11.5-1.914-1.914A2 2 0 0 1 19 8.172v-.344a2 2 0 0 0-.586-1.414l-1.657-1.657A6 6 0 0 0 12.516 3H9l1.243 1.243A6 6 0 0 1 12 8.485V10l2 2h1.172a2 2 0 0 1 1.414.586L18.5 14.5\"></path>",
|
|
127
|
+
"ouvrir": "<path d=\"M15 3h6v6\"></path><path d=\"M10 14 21 3\"></path><path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"></path>",
|
|
128
|
+
"parametrer": "<path d=\"M14 17H5\"></path><path d=\"M19 7h-9\"></path><circle cx=\"17\" cy=\"17\" r=\"3\"></circle><circle cx=\"7\" cy=\"7\" r=\"3\"></circle>",
|
|
129
|
+
"parapluie": "<path d=\"M12 13v7a2 2 0 0 0 4 0\"></path><path d=\"M12 2v2\"></path><path d=\"M20.992 13a1 1 0 0 0 .97-1.274 10.284 10.284 0 0 0-19.923 0A1 1 0 0 0 3 13z\"></path>",
|
|
130
|
+
"partenariat": "<path d=\"m11 17 2 2a1 1 0 1 0 3-3\"></path><path d=\"m14 14 2.5 2.5a1 1 0 1 0 3-3l-3.88-3.88a3 3 0 0 0-4.24 0l-.88.88a1 1 0 1 1-3-3l2.81-2.81a5.79 5.79 0 0 1 7.06-.87l.47.28a2 2 0 0 0 1.42.25L21 4\"></path><path d=\"m21 3 1 11h-2\"></path><path d=\"M3 3 2 14l6.5 6.5a1 1 0 1 0 3-3\"></path><path d=\"M3 4h8\"></path>",
|
|
131
|
+
"pasencore": "<path d=\"M16 14v2.2l1.6 1\"></path><path d=\"M16 2v4\"></path><path d=\"M21 7.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.5\"></path><path d=\"M3 10h5\"></path><path d=\"M8 2v4\"></path><circle cx=\"16\" cy=\"16\" r=\"6\"></circle>",
|
|
132
|
+
"personne": "<path d=\"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2\"></path><circle cx=\"12\" cy=\"7\" r=\"4\"></circle>",
|
|
133
|
+
"photographier": "<path d=\"M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z\"></path><circle cx=\"12\" cy=\"13\" r=\"3\"></circle>",
|
|
134
|
+
"piece": "<path d=\"M16 10h2\"></path><path d=\"M16 14h2\"></path><path d=\"M6.17 15a3 3 0 0 1 5.66 0\"></path><circle cx=\"9\" cy=\"11\" r=\"2\"></circle><rect x=\"2\" y=\"5\" width=\"20\" height=\"14\" rx=\"2\"></rect>",
|
|
135
|
+
"plafond": "<path d=\"M5 3h14\"></path><path d=\"m18 13-6-6-6 6\"></path><path d=\"M12 7v14\"></path>",
|
|
136
|
+
"plante": "<path d=\"M14 9.536V7a4 4 0 0 1 4-4h1.5a.5.5 0 0 1 .5.5V5a4 4 0 0 1-4 4 4 4 0 0 0-4 4c0 2 1 3 1 5a5 5 0 0 1-1 3\"></path><path d=\"M4 9a5 5 0 0 1 8 4 5 5 0 0 1-8-4\"></path><path d=\"M5 21h14\"></path>",
|
|
137
|
+
"poisson": "<path d=\"M6.5 12c.94-3.46 4.94-6 8.5-6 3.56 0 6.06 2.54 7 6-.94 3.47-3.44 6-7 6s-7.56-2.53-8.5-6Z\"></path><path d=\"M18 12v.5\"></path><path d=\"M16 17.93a9.77 9.77 0 0 1 0-11.86\"></path><path d=\"M7 10.67C7 8 5.58 5.97 2.73 5.5c-1 1.5-1 5 .23 6.5-1.24 1.5-1.24 5-.23 6.5C5.58 18.03 7 16 7 13.33\"></path><path d=\"M10.46 7.26C10.2 5.88 9.17 4.24 8 3h5.8a2 2 0 0 1 1.98 1.67l.23 1.4\"></path><path d=\"m16.01 17.93-.23 1.4A2 2 0 0 1 13.8 21H9.5a5.96 5.96 0 0 0 1.49-3.98\"></path>",
|
|
138
|
+
"portefeuille": "<path d=\"M19 7V4a1 1 0 0 0-1-1H5a2 2 0 0 0 0 4h15a1 1 0 0 1 1 1v4h-3a2 2 0 0 0 0 4h3a1 1 0 0 0 1-1v-2a1 1 0 0 0-1-1\"></path><path d=\"M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4\"></path>",
|
|
139
|
+
"pourcentage": "<line x1=\"19\" x2=\"5\" y1=\"5\" y2=\"19\"></line><circle cx=\"6.5\" cy=\"6.5\" r=\"2.5\"></circle><circle cx=\"17.5\" cy=\"17.5\" r=\"2.5\"></circle>",
|
|
140
|
+
"precedent": "<path d=\"m15 18-6-6 6-6\"></path>",
|
|
141
|
+
"production": "<path d=\"M12 12h.01\"></path><path d=\"M16 6V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v2\"></path><path d=\"M22 13a18.15 18.15 0 0 1-20 0\"></path><rect width=\"20\" height=\"14\" x=\"2\" y=\"6\" rx=\"2\"></rect>",
|
|
142
|
+
"produit": "<path d=\"M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z\"></path><path d=\"m7 16.5-4.74-2.85\"></path><path d=\"m7 16.5 5-3\"></path><path d=\"M7 16.5v5.17\"></path><path d=\"M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z\"></path><path d=\"m17 16.5-5-3\"></path><path d=\"m17 16.5 4.74-2.85\"></path><path d=\"M17 16.5v5.17\"></path><path d=\"M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z\"></path><path d=\"M12 8 7.26 5.15\"></path><path d=\"m12 8 4.74-2.85\"></path><path d=\"M12 13.5V8\"></path>",
|
|
143
|
+
"qrcode": "<rect width=\"5\" height=\"5\" x=\"3\" y=\"3\" rx=\"1\"></rect><rect width=\"5\" height=\"5\" x=\"16\" y=\"3\" rx=\"1\"></rect><rect width=\"5\" height=\"5\" x=\"3\" y=\"16\" rx=\"1\"></rect><path d=\"M21 16h-3a2 2 0 0 0-2 2v3\"></path><path d=\"M21 21v.01\"></path><path d=\"M12 7v3a2 2 0 0 1-2 2H7\"></path><path d=\"M3 12h.01\"></path><path d=\"M12 3h.01\"></path><path d=\"M12 16v.01\"></path><path d=\"M16 12h1\"></path><path d=\"M21 12v.01\"></path><path d=\"M12 21v-1\"></path>",
|
|
144
|
+
"quittance": "<path d=\"M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z\"></path><path d=\"M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8\"></path><path d=\"M12 17.5v-11\"></path>",
|
|
145
|
+
"rafraichir": "<path d=\"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8\"></path><path d=\"M21 3v5h-5\"></path><path d=\"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16\"></path><path d=\"M8 16H3v5\"></path>",
|
|
146
|
+
"rappel": "<path d=\"M10.268 21a2 2 0 0 0 3.464 0\"></path><path d=\"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326\"></path>",
|
|
147
|
+
"reception": "<polyline points=\"22 12 16 12 14 15 10 15 8 12 2 12\"></polyline><path d=\"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z\"></path>",
|
|
148
|
+
"rechercher": "<path d=\"m21 21-4.34-4.34\"></path><circle cx=\"11\" cy=\"11\" r=\"8\"></circle>",
|
|
149
|
+
"recolte": "<path d=\"M2 22 16 8\"></path><path d=\"M3.47 12.53 5 11l1.53 1.53a3.5 3.5 0 0 1 0 4.94L5 19l-1.53-1.53a3.5 3.5 0 0 1 0-4.94Z\"></path><path d=\"M7.47 8.53 9 7l1.53 1.53a3.5 3.5 0 0 1 0 4.94L9 15l-1.53-1.53a3.5 3.5 0 0 1 0-4.94Z\"></path><path d=\"M11.47 4.53 13 3l1.53 1.53a3.5 3.5 0 0 1 0 4.94L13 11l-1.53-1.53a3.5 3.5 0 0 1 0-4.94Z\"></path><path d=\"M20 2h2v2a4 4 0 0 1-4 4h-2V6a4 4 0 0 1 4-4Z\"></path><path d=\"M11.47 17.47 13 19l-1.53 1.53a3.5 3.5 0 0 1-4.94 0L5 19l1.53-1.53a3.5 3.5 0 0 1 4.94 0Z\"></path><path d=\"M15.47 13.47 17 15l-1.53 1.53a3.5 3.5 0 0 1-4.94 0L9 15l1.53-1.53a3.5 3.5 0 0 1 4.94 0Z\"></path><path d=\"M19.47 9.47 21 11l-1.53 1.53a3.5 3.5 0 0 1-4.94 0L13 11l1.53-1.53a3.5 3.5 0 0 1 4.94 0Z\"></path>",
|
|
150
|
+
"recours": "<path d=\"m2 9 3-3 3 3\"></path><path d=\"M13 18H7a2 2 0 0 1-2-2V6\"></path><path d=\"m22 15-3 3-3-3\"></path><path d=\"M11 6h6a2 2 0 0 1 2 2v10\"></path>",
|
|
151
|
+
"recurrent": "<path d=\"m17 2 4 4-4 4\"></path><path d=\"M3 11v-1a4 4 0 0 1 4-4h14\"></path><path d=\"m7 22-4-4 4-4\"></path><path d=\"M21 13v1a4 4 0 0 1-4 4H3\"></path>",
|
|
152
|
+
"regle": "<path d=\"m16 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z\"></path><path d=\"m2 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z\"></path><path d=\"M7 21h10\"></path><path d=\"M12 3v18\"></path><path d=\"M3 7h2c2 0 5-1 7-2 2 1 5 2 7 2h2\"></path>",
|
|
153
|
+
"remplacee": "<path d=\"M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8\"></path><path d=\"M3 3v5h5\"></path><path d=\"M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16\"></path><path d=\"M16 16h5v5\"></path>",
|
|
154
|
+
"remplacer": "<path d=\"M8 3 4 7l4 4\"></path><path d=\"M4 7h16\"></path><path d=\"m16 21 4-4-4-4\"></path><path d=\"M20 17H4\"></path>",
|
|
155
|
+
"renouveler": "<path d=\"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8\"></path><path d=\"M3 3v5h5\"></path>",
|
|
156
|
+
"reparation": "<path d=\"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z\"></path>",
|
|
157
|
+
"reprendre": "<path d=\"M9 9.003a1 1 0 0 1 1.517-.859l4.997 2.997a1 1 0 0 1 0 1.718l-4.997 2.997A1 1 0 0 1 9 14.996z\"></path><circle cx=\"12\" cy=\"12\" r=\"10\"></circle>",
|
|
158
|
+
"reseau": "<path d=\"M12 20h.01\"></path><path d=\"M2 8.82a15 15 0 0 1 20 0\"></path><path d=\"M5 12.859a10 10 0 0 1 14 0\"></path><path d=\"M8.5 16.429a5 5 0 0 1 7 0\"></path>",
|
|
159
|
+
"resiliee": "<path d=\"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z\"></path><path d=\"M14 2v5a1 1 0 0 0 1 1h5\"></path><path d=\"m14.5 12.5-5 5\"></path><path d=\"m9.5 12.5 5 5\"></path>",
|
|
160
|
+
"retiree": "<circle cx=\"12\" cy=\"12\" r=\"10\"></circle><path d=\"M8 12h8\"></path>",
|
|
161
|
+
"retirer": "<path d=\"M16 5H3\"></path><path d=\"M11 12H3\"></path><path d=\"M16 19H3\"></path><path d=\"M21 12h-6\"></path>",
|
|
162
|
+
"retour": "<path d=\"m12 19-7-7 7-7\"></path><path d=\"M19 12H5\"></path>",
|
|
163
|
+
"retrait": "<path d=\"M16 16h6\"></path><path d=\"M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14\"></path><path d=\"m7.5 4.27 9 5.15\"></path><polyline points=\"3.29 7 12 12 20.71 7\"></polyline><line x1=\"12\" x2=\"12\" y1=\"22\" y2=\"12\"></line>",
|
|
164
|
+
"risque": "<path d=\"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z\"></path><path d=\"M12 8v4\"></path><path d=\"M12 16h.01\"></path>",
|
|
165
|
+
"sante": "<path d=\"M2 9.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5l-5.492 5.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5\"></path><path d=\"M3.22 13H9.5l.5-1 2 4.5 2-7 1.5 3.5h5.27\"></path>",
|
|
166
|
+
"sigle": "<path d=\"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z\"></path><circle cx=\"7.5\" cy=\"7.5\" r=\".5\" fill=\"currentColor\"></circle>",
|
|
167
|
+
"signature": "<path d=\"M13 21h8\"></path><path d=\"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z\"></path>",
|
|
168
|
+
"somme": "<path d=\"M18 7V5a1 1 0 0 0-1-1H6.5a.5.5 0 0 0-.4.8l4.5 6a2 2 0 0 1 0 2.4l-4.5 6a.5.5 0 0 0 .4.8H17a1 1 0 0 0 1-1v-2\"></path>",
|
|
169
|
+
"sortie": "<circle cx=\"12\" cy=\"12\" r=\"10\"></circle><path d=\"m16 12-4-4-4 4\"></path><path d=\"M12 16V8\"></path>",
|
|
170
|
+
"sousniveau": "<path d=\"m15 10 5 5-5 5\"></path><path d=\"M4 4v7a4 4 0 0 0 4 4h12\"></path>",
|
|
171
|
+
"statistiques": "<path d=\"M3 3v16a2 2 0 0 0 2 2h16\"></path><path d=\"M18 17V9\"></path><path d=\"M13 17V5\"></path><path d=\"M8 17v-3\"></path>",
|
|
172
|
+
"stethoscope": "<path d=\"M11 2v2\"></path><path d=\"M5 2v2\"></path><path d=\"M5 3H4a2 2 0 0 0-2 2v4a6 6 0 0 0 12 0V5a2 2 0 0 0-2-2h-1\"></path><path d=\"M8 15a6 6 0 0 0 12 0v-3\"></path><circle cx=\"20\" cy=\"10\" r=\"2\"></circle>",
|
|
173
|
+
"stock": "<path d=\"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z\"></path><path d=\"M12 22V12\"></path><polyline points=\"3.29 7 12 12 20.71 7\"></polyline><path d=\"m7.5 4.27 9 5.15\"></path>",
|
|
174
|
+
"succes": "<circle cx=\"12\" cy=\"12\" r=\"10\"></circle><path d=\"m9 12 2 2 4-4\"></path>",
|
|
175
|
+
"suivant": "<path d=\"M5 12h14\"></path><path d=\"m12 5 7 7-7 7\"></path>",
|
|
176
|
+
"supprimer": "<path d=\"M10 11v6\"></path><path d=\"M14 11v6\"></path><path d=\"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6\"></path><path d=\"M3 6h18\"></path><path d=\"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\"></path>",
|
|
177
|
+
"surveillance": "<path d=\"M16.75 12h3.632a1 1 0 0 1 .894 1.447l-2.034 4.069a1 1 0 0 1-1.708.134l-2.124-2.97\"></path><path d=\"M17.106 9.053a1 1 0 0 1 .447 1.341l-3.106 6.211a1 1 0 0 1-1.342.447L3.61 12.3a2.92 2.92 0 0 1-1.3-3.91L3.69 5.6a2.92 2.92 0 0 1 3.92-1.3z\"></path><path d=\"M2 19h3.76a2 2 0 0 0 1.8-1.1L9 15\"></path><path d=\"M2 21v-4\"></path><path d=\"M7 9h.01\"></path>",
|
|
178
|
+
"suspendre": "<circle cx=\"12\" cy=\"12\" r=\"10\"></circle><line x1=\"10\" x2=\"10\" y1=\"15\" y2=\"9\"></line><line x1=\"14\" x2=\"14\" y1=\"15\" y2=\"9\"></line>",
|
|
179
|
+
"suspendue": "<circle cx=\"12\" cy=\"12\" r=\"10\"></circle><line x1=\"10\" x2=\"10\" y1=\"15\" y2=\"9\"></line><line x1=\"14\" x2=\"14\" y1=\"15\" y2=\"9\"></line>",
|
|
180
|
+
"synchroniser": "<path d=\"M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8\"></path><path d=\"M3 3v5h5\"></path><path d=\"M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16\"></path><path d=\"M16 16h5v5\"></path>",
|
|
181
|
+
"tableur": "<path d=\"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z\"></path><path d=\"M14 2v5a1 1 0 0 0 1 1h5\"></path><path d=\"M8 13h2\"></path><path d=\"M14 13h2\"></path><path d=\"M8 17h2\"></path><path d=\"M14 17h2\"></path>",
|
|
182
|
+
"tampon": "<path d=\"M14 13V8.5C14 7 15 7 15 5a3 3 0 0 0-6 0c0 2 1 2 1 3.5V13\"></path><path d=\"M20 15.5a2.5 2.5 0 0 0-2.5-2.5h-11A2.5 2.5 0 0 0 4 15.5V17a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1z\"></path><path d=\"M5 22h14\"></path>",
|
|
183
|
+
"telecharger": "<path d=\"M12 15V3\"></path><path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"></path><path d=\"m7 10 5 5 5-5\"></path>",
|
|
184
|
+
"telephone": "<path d=\"M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384\"></path>",
|
|
185
|
+
"televerser": "<path d=\"M12 3v12\"></path><path d=\"m17 8-5-5-5 5\"></path><path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"></path>",
|
|
186
|
+
"texte": "<path d=\"M12 4v16\"></path><path d=\"M4 7V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2\"></path><path d=\"M9 20h6\"></path>",
|
|
187
|
+
"toutdeplier": "<path d=\"m7 15 5 5 5-5\"></path><path d=\"m7 9 5-5 5 5\"></path>",
|
|
188
|
+
"toutreplier": "<path d=\"m7 20 5-5 5 5\"></path><path d=\"m7 4 5 5 5-5\"></path>",
|
|
189
|
+
"tracteur": "<path d=\"m10 11 11 .9a1 1 0 0 1 .8 1.1l-.665 4.158a1 1 0 0 1-.988.842H20\"></path><path d=\"M16 18h-5\"></path><path d=\"M18 5a1 1 0 0 0-1 1v5.573\"></path><path d=\"M3 4h8.129a1 1 0 0 1 .99.863L13 11.246\"></path><path d=\"M4 11V4\"></path><path d=\"M7 15h.01\"></path><path d=\"M8 10.1V4\"></path><circle cx=\"18\" cy=\"18\" r=\"2\"></circle><circle cx=\"7\" cy=\"15\" r=\"5\"></circle>",
|
|
190
|
+
"train": "<rect width=\"16\" height=\"16\" x=\"4\" y=\"3\" rx=\"2\"></rect><path d=\"M4 11h16\"></path><path d=\"M12 3v8\"></path><path d=\"m8 19-2 3\"></path><path d=\"m18 22-2-3\"></path><path d=\"M8 15h.01\"></path><path d=\"M16 15h.01\"></path>",
|
|
191
|
+
"trancher": "<path d=\"M18 11V6a2 2 0 0 0-2-2a2 2 0 0 0-2 2\"></path><path d=\"M14 10V4a2 2 0 0 0-2-2a2 2 0 0 0-2 2v2\"></path><path d=\"M10 10.5V6a2 2 0 0 0-2-2a2 2 0 0 0-2 2v8\"></path><path d=\"M18 8a2 2 0 1 1 4 0v6a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.86-5.99-2.34l-3.6-3.6a2 2 0 0 1 2.83-2.82L7 15\"></path>",
|
|
192
|
+
"trier": "<path d=\"m21 16-4 4-4-4\"></path><path d=\"M17 20V4\"></path><path d=\"m3 8 4-4 4 4\"></path><path d=\"M7 4v16\"></path>",
|
|
193
|
+
"usine": "<path d=\"M12 16h.01\"></path><path d=\"M16 16h.01\"></path><path d=\"M3 19a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V8.5a.5.5 0 0 0-.769-.422l-4.462 2.844A.5.5 0 0 1 15 10.5v-2a.5.5 0 0 0-.769-.422L9.77 10.922A.5.5 0 0 1 9 10.5V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2z\"></path><path d=\"M8 16h.01\"></path>",
|
|
194
|
+
"valide": "<path d=\"M20 6 9 17l-5-5\"></path>",
|
|
195
|
+
"vehicule": "<path d=\"M19 17h2c.6 0 1-.4 1-1v-3c0-.9-.7-1.7-1.5-1.9C18.7 10.6 16 10 16 10s-1.3-1.4-2.2-2.3c-.5-.4-1.1-.7-1.8-.7H5c-.6 0-1.1.4-1.4.9l-1.4 2.9A3.7 3.7 0 0 0 2 12v4c0 .6.4 1 1 1h2\"></path><circle cx=\"7\" cy=\"17\" r=\"2\"></circle><path d=\"M9 17h6\"></path><circle cx=\"17\" cy=\"17\" r=\"2\"></circle>",
|
|
196
|
+
"verifie": "<path d=\"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z\"></path><path d=\"m9 12 2 2 4-4\"></path>",
|
|
197
|
+
"verrouille": "<rect width=\"18\" height=\"11\" x=\"3\" y=\"11\" rx=\"2\" ry=\"2\"></rect><path d=\"M7 11V7a5 5 0 0 1 10 0v4\"></path>",
|
|
198
|
+
"vide": "<path d=\"m13.5 8.5-5 5\"></path><path d=\"m8.5 8.5 5 5\"></path><circle cx=\"11\" cy=\"11\" r=\"8\"></circle><path d=\"m21 21-4.3-4.3\"></path>",
|
|
199
|
+
"voilier": "<path d=\"M10 2v15\"></path><path d=\"M7 22a4 4 0 0 1-4-4 1 1 0 0 1 1-1h16a1 1 0 0 1 1 1 4 4 0 0 1-4 4z\"></path><path d=\"M9.159 2.46a1 1 0 0 1 1.521-.193l9.977 8.98A1 1 0 0 1 20 13H4a1 1 0 0 1-.824-1.567z\"></path>",
|
|
200
|
+
"voir": "<path d=\"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0\"></path><circle cx=\"12\" cy=\"12\" r=\"3\"></circle>",
|
|
201
|
+
"voiture": "<path d=\"m21 8-2 2-1.5-3.7A2 2 0 0 0 15.646 5H8.4a2 2 0 0 0-1.903 1.257L5 10 3 8\"></path><path d=\"M7 14h.01\"></path><path d=\"M17 14h.01\"></path><rect width=\"18\" height=\"8\" x=\"3\" y=\"10\" rx=\"2\"></rect><path d=\"M5 18v2\"></path><path d=\"M19 18v2\"></path>",
|
|
202
|
+
"voyage": "<path d=\"M6 20a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2\"></path><path d=\"M8 18V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v14\"></path><path d=\"M10 20h4\"></path><circle cx=\"16\" cy=\"20\" r=\"2\"></circle><circle cx=\"8\" cy=\"20\" r=\"2\"></circle>",
|
|
203
|
+
"webhook": "<path d=\"M18 16.98h-5.99c-1.1 0-1.95.94-2.48 1.9A4 4 0 0 1 2 17c.01-.7.2-1.4.57-2\"></path><path d=\"m6 17 3.13-5.78c.53-.97.1-2.18-.5-3.1a4 4 0 1 1 6.89-4.06\"></path><path d=\"m12 6 3.13 5.73C15.66 12.7 16.9 13 18 13a4 4 0 0 1 0 8\"></path>",
|
|
204
|
+
"zoomer": "<circle cx=\"11\" cy=\"11\" r=\"8\"></circle><line x1=\"21\" x2=\"16.65\" y1=\"21\" y2=\"16.65\"></line><line x1=\"11\" x2=\"11\" y1=\"8\" y2=\"14\"></line><line x1=\"8\" x2=\"14\" y1=\"11\" y2=\"11\"></line>"
|
|
205
|
+
};
|
|
206
|
+
/** Les pictogrammes proposés dans l'éditeur, regroupés comme dans le catalogue. */
|
|
207
|
+
const ICON_CATALOG = [
|
|
208
|
+
{
|
|
209
|
+
"name": "maison",
|
|
210
|
+
"label": "Maison",
|
|
211
|
+
"keywords": "habitation logement domicile"
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
"name": "immeuble",
|
|
215
|
+
"label": "Immeuble",
|
|
216
|
+
"keywords": "bâtiment bureau"
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
"name": "entreprise",
|
|
220
|
+
"label": "Entreprise",
|
|
221
|
+
"keywords": "société agence compagnie"
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
"name": "usine",
|
|
225
|
+
"label": "Usine",
|
|
226
|
+
"keywords": "industrie production"
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
"name": "boutique",
|
|
230
|
+
"label": "Commerce",
|
|
231
|
+
"keywords": "magasin boutique"
|
|
232
|
+
},
|
|
233
|
+
{
|
|
234
|
+
"name": "entrepot",
|
|
235
|
+
"label": "Entrepôt",
|
|
236
|
+
"keywords": "stock dépôt magasin"
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
"name": "mobilier",
|
|
240
|
+
"label": "Mobilier",
|
|
241
|
+
"keywords": "meuble fauteuil"
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
"name": "materiel",
|
|
245
|
+
"label": "Matériel",
|
|
246
|
+
"keywords": "ordinateur informatique équipement"
|
|
247
|
+
},
|
|
248
|
+
{
|
|
249
|
+
"name": "ecran",
|
|
250
|
+
"label": "Écran",
|
|
251
|
+
"keywords": "télévision moniteur"
|
|
252
|
+
},
|
|
253
|
+
{
|
|
254
|
+
"name": "outil",
|
|
255
|
+
"label": "Outil",
|
|
256
|
+
"keywords": "marteau chantier travaux"
|
|
257
|
+
},
|
|
258
|
+
{
|
|
259
|
+
"name": "machine",
|
|
260
|
+
"label": "Machine",
|
|
261
|
+
"keywords": "engrenage mécanique"
|
|
262
|
+
},
|
|
263
|
+
{
|
|
264
|
+
"name": "bijou",
|
|
265
|
+
"label": "Bijou",
|
|
266
|
+
"keywords": "valeur diamant précieux"
|
|
267
|
+
},
|
|
268
|
+
{
|
|
269
|
+
"name": "surveillance",
|
|
270
|
+
"label": "Surveillance",
|
|
271
|
+
"keywords": "caméra alarme sécurité"
|
|
272
|
+
},
|
|
273
|
+
{
|
|
274
|
+
"name": "vehicule",
|
|
275
|
+
"label": "Véhicule",
|
|
276
|
+
"keywords": "voiture auto automobile"
|
|
277
|
+
},
|
|
278
|
+
{
|
|
279
|
+
"name": "voiture",
|
|
280
|
+
"label": "Voiture de face",
|
|
281
|
+
"keywords": "auto accident"
|
|
282
|
+
},
|
|
283
|
+
{
|
|
284
|
+
"name": "moto",
|
|
285
|
+
"label": "Moto",
|
|
286
|
+
"keywords": "deux roues vélo"
|
|
287
|
+
},
|
|
288
|
+
{
|
|
289
|
+
"name": "camion",
|
|
290
|
+
"label": "Camion",
|
|
291
|
+
"keywords": "poids lourd transport marchandises"
|
|
292
|
+
},
|
|
293
|
+
{
|
|
294
|
+
"name": "bus",
|
|
295
|
+
"label": "Bus",
|
|
296
|
+
"keywords": "autocar transport"
|
|
297
|
+
},
|
|
298
|
+
{
|
|
299
|
+
"name": "train",
|
|
300
|
+
"label": "Train",
|
|
301
|
+
"keywords": "rail chemin de fer"
|
|
302
|
+
},
|
|
303
|
+
{
|
|
304
|
+
"name": "tracteur",
|
|
305
|
+
"label": "Tracteur",
|
|
306
|
+
"keywords": "agricole engin"
|
|
307
|
+
},
|
|
308
|
+
{
|
|
309
|
+
"name": "engin",
|
|
310
|
+
"label": "Engin",
|
|
311
|
+
"keywords": "chariot chantier manutention"
|
|
312
|
+
},
|
|
313
|
+
{
|
|
314
|
+
"name": "bateau",
|
|
315
|
+
"label": "Bateau",
|
|
316
|
+
"keywords": "navire maritime"
|
|
317
|
+
},
|
|
318
|
+
{
|
|
319
|
+
"name": "voilier",
|
|
320
|
+
"label": "Voilier",
|
|
321
|
+
"keywords": "plaisance bateau"
|
|
322
|
+
},
|
|
323
|
+
{
|
|
324
|
+
"name": "avion",
|
|
325
|
+
"label": "Avion",
|
|
326
|
+
"keywords": "aérien voyage"
|
|
327
|
+
},
|
|
328
|
+
{
|
|
329
|
+
"name": "conteneur",
|
|
330
|
+
"label": "Conteneur",
|
|
331
|
+
"keywords": "fret marchandises"
|
|
332
|
+
},
|
|
333
|
+
{
|
|
334
|
+
"name": "carburant",
|
|
335
|
+
"label": "Carburant",
|
|
336
|
+
"keywords": "essence énergie pompe"
|
|
337
|
+
},
|
|
338
|
+
{
|
|
339
|
+
"name": "personne",
|
|
340
|
+
"label": "Personne",
|
|
341
|
+
"keywords": "assuré individu client"
|
|
342
|
+
},
|
|
343
|
+
{
|
|
344
|
+
"name": "groupe",
|
|
345
|
+
"label": "Groupe",
|
|
346
|
+
"keywords": "personnes équipe famille"
|
|
347
|
+
},
|
|
348
|
+
{
|
|
349
|
+
"name": "bebe",
|
|
350
|
+
"label": "Enfant",
|
|
351
|
+
"keywords": "bébé mineur"
|
|
352
|
+
},
|
|
353
|
+
{
|
|
354
|
+
"name": "sante",
|
|
355
|
+
"label": "Santé",
|
|
356
|
+
"keywords": "cœur médical"
|
|
357
|
+
},
|
|
358
|
+
{
|
|
359
|
+
"name": "coeur",
|
|
360
|
+
"label": "Cœur",
|
|
361
|
+
"keywords": "vie décès"
|
|
362
|
+
},
|
|
363
|
+
{
|
|
364
|
+
"name": "hopital",
|
|
365
|
+
"label": "Hôpital",
|
|
366
|
+
"keywords": "clinique soins"
|
|
367
|
+
},
|
|
368
|
+
{
|
|
369
|
+
"name": "ambulance",
|
|
370
|
+
"label": "Ambulance",
|
|
371
|
+
"keywords": "urgence secours"
|
|
372
|
+
},
|
|
373
|
+
{
|
|
374
|
+
"name": "stethoscope",
|
|
375
|
+
"label": "Médecin",
|
|
376
|
+
"keywords": "consultation soins"
|
|
377
|
+
},
|
|
378
|
+
{
|
|
379
|
+
"name": "medicament",
|
|
380
|
+
"label": "Médicament",
|
|
381
|
+
"keywords": "pharmacie traitement"
|
|
382
|
+
},
|
|
383
|
+
{
|
|
384
|
+
"name": "formation",
|
|
385
|
+
"label": "Études",
|
|
386
|
+
"keywords": "école formation diplôme"
|
|
387
|
+
},
|
|
388
|
+
{
|
|
389
|
+
"name": "voyage",
|
|
390
|
+
"label": "Voyage",
|
|
391
|
+
"keywords": "valise bagage séjour"
|
|
392
|
+
},
|
|
393
|
+
{
|
|
394
|
+
"name": "plante",
|
|
395
|
+
"label": "Culture",
|
|
396
|
+
"keywords": "agricole semis plante"
|
|
397
|
+
},
|
|
398
|
+
{
|
|
399
|
+
"name": "recolte",
|
|
400
|
+
"label": "Récolte",
|
|
401
|
+
"keywords": "céréale blé agricole"
|
|
402
|
+
},
|
|
403
|
+
{
|
|
404
|
+
"name": "elevage",
|
|
405
|
+
"label": "Élevage",
|
|
406
|
+
"keywords": "bétail bovin animal"
|
|
407
|
+
},
|
|
408
|
+
{
|
|
409
|
+
"name": "animal",
|
|
410
|
+
"label": "Animal",
|
|
411
|
+
"keywords": "patte animaux"
|
|
412
|
+
},
|
|
413
|
+
{
|
|
414
|
+
"name": "poisson",
|
|
415
|
+
"label": "Pêche",
|
|
416
|
+
"keywords": "poisson maritime"
|
|
417
|
+
},
|
|
418
|
+
{
|
|
419
|
+
"name": "arbre",
|
|
420
|
+
"label": "Forêt",
|
|
421
|
+
"keywords": "arbre bois"
|
|
422
|
+
},
|
|
423
|
+
{
|
|
424
|
+
"name": "feu",
|
|
425
|
+
"label": "Incendie",
|
|
426
|
+
"keywords": "feu flamme"
|
|
427
|
+
},
|
|
428
|
+
{
|
|
429
|
+
"name": "eau",
|
|
430
|
+
"label": "Dégât des eaux",
|
|
431
|
+
"keywords": "eau inondation fuite"
|
|
432
|
+
},
|
|
433
|
+
{
|
|
434
|
+
"name": "orage",
|
|
435
|
+
"label": "Orage",
|
|
436
|
+
"keywords": "foudre tempête intempérie"
|
|
437
|
+
},
|
|
438
|
+
{
|
|
439
|
+
"name": "evenement",
|
|
440
|
+
"label": "Événement",
|
|
441
|
+
"keywords": "éclair choc"
|
|
442
|
+
},
|
|
443
|
+
{
|
|
444
|
+
"name": "risque",
|
|
445
|
+
"label": "Risque",
|
|
446
|
+
"keywords": "danger menace"
|
|
447
|
+
},
|
|
448
|
+
{
|
|
449
|
+
"name": "alerte",
|
|
450
|
+
"label": "Alerte",
|
|
451
|
+
"keywords": "attention danger"
|
|
452
|
+
},
|
|
453
|
+
{
|
|
454
|
+
"name": "reparation",
|
|
455
|
+
"label": "Réparation",
|
|
456
|
+
"keywords": "clé atelier dommage"
|
|
457
|
+
},
|
|
458
|
+
{
|
|
459
|
+
"name": "garantie",
|
|
460
|
+
"label": "Garantie",
|
|
461
|
+
"keywords": "protection bouclier"
|
|
462
|
+
},
|
|
463
|
+
{
|
|
464
|
+
"name": "bouclier",
|
|
465
|
+
"label": "Couvert",
|
|
466
|
+
"keywords": "protégé validé"
|
|
467
|
+
},
|
|
468
|
+
{
|
|
469
|
+
"name": "portefeuille",
|
|
470
|
+
"label": "Portefeuille",
|
|
471
|
+
"keywords": "argent"
|
|
472
|
+
},
|
|
473
|
+
{
|
|
474
|
+
"name": "monnaie",
|
|
475
|
+
"label": "Pièces",
|
|
476
|
+
"keywords": "argent prime somme"
|
|
477
|
+
},
|
|
478
|
+
{
|
|
479
|
+
"name": "encaisser",
|
|
480
|
+
"label": "Billet",
|
|
481
|
+
"keywords": "argent paiement"
|
|
482
|
+
},
|
|
483
|
+
{
|
|
484
|
+
"name": "commission",
|
|
485
|
+
"label": "Commission",
|
|
486
|
+
"keywords": "main argent"
|
|
487
|
+
},
|
|
488
|
+
{
|
|
489
|
+
"name": "carte",
|
|
490
|
+
"label": "Carte",
|
|
491
|
+
"keywords": "paiement bancaire"
|
|
492
|
+
},
|
|
493
|
+
{
|
|
494
|
+
"name": "banque",
|
|
495
|
+
"label": "Banque",
|
|
496
|
+
"keywords": "institution"
|
|
497
|
+
},
|
|
498
|
+
{
|
|
499
|
+
"name": "calculer",
|
|
500
|
+
"label": "Calcul",
|
|
501
|
+
"keywords": "calculatrice formule"
|
|
502
|
+
},
|
|
503
|
+
{
|
|
504
|
+
"name": "pourcentage",
|
|
505
|
+
"label": "Pourcentage",
|
|
506
|
+
"keywords": "taux remise"
|
|
507
|
+
},
|
|
508
|
+
{
|
|
509
|
+
"name": "balance",
|
|
510
|
+
"label": "Balance",
|
|
511
|
+
"keywords": "règle équilibre justice"
|
|
512
|
+
},
|
|
513
|
+
{
|
|
514
|
+
"name": "document",
|
|
515
|
+
"label": "Document",
|
|
516
|
+
"keywords": "fichier texte page"
|
|
517
|
+
},
|
|
518
|
+
{
|
|
519
|
+
"name": "piece",
|
|
520
|
+
"label": "Pièce d’identité",
|
|
521
|
+
"keywords": "carte identité badge"
|
|
522
|
+
},
|
|
523
|
+
{
|
|
524
|
+
"name": "facture",
|
|
525
|
+
"label": "Facture",
|
|
526
|
+
"keywords": "reçu quittance"
|
|
527
|
+
},
|
|
528
|
+
{
|
|
529
|
+
"name": "dossier",
|
|
530
|
+
"label": "Dossier",
|
|
531
|
+
"keywords": "classeur"
|
|
532
|
+
},
|
|
533
|
+
{
|
|
534
|
+
"name": "note",
|
|
535
|
+
"label": "Note",
|
|
536
|
+
"keywords": "mémo commentaire"
|
|
537
|
+
},
|
|
538
|
+
{
|
|
539
|
+
"name": "signature",
|
|
540
|
+
"label": "Signature",
|
|
541
|
+
"keywords": "stylo signer"
|
|
542
|
+
},
|
|
543
|
+
{
|
|
544
|
+
"name": "tampon",
|
|
545
|
+
"label": "Tampon",
|
|
546
|
+
"keywords": "cachet visa"
|
|
547
|
+
},
|
|
548
|
+
{
|
|
549
|
+
"name": "liste",
|
|
550
|
+
"label": "Liste",
|
|
551
|
+
"keywords": "énumération"
|
|
552
|
+
},
|
|
553
|
+
{
|
|
554
|
+
"name": "categorie",
|
|
555
|
+
"label": "Étiquette",
|
|
556
|
+
"keywords": "catégorie classe"
|
|
557
|
+
},
|
|
558
|
+
{
|
|
559
|
+
"name": "numero",
|
|
560
|
+
"label": "Numéro",
|
|
561
|
+
"keywords": "référence dièse"
|
|
562
|
+
},
|
|
563
|
+
{
|
|
564
|
+
"name": "texte",
|
|
565
|
+
"label": "Texte",
|
|
566
|
+
"keywords": "saisie libre"
|
|
567
|
+
},
|
|
568
|
+
{
|
|
569
|
+
"name": "adresse",
|
|
570
|
+
"label": "Adresse",
|
|
571
|
+
"keywords": "lieu localisation situation"
|
|
572
|
+
},
|
|
573
|
+
{
|
|
574
|
+
"name": "carte2",
|
|
575
|
+
"label": "Carte géographique",
|
|
576
|
+
"keywords": "plan zone territoire"
|
|
577
|
+
},
|
|
578
|
+
{
|
|
579
|
+
"name": "globe",
|
|
580
|
+
"label": "Monde",
|
|
581
|
+
"keywords": "pays international"
|
|
582
|
+
},
|
|
583
|
+
{
|
|
584
|
+
"name": "drapeau",
|
|
585
|
+
"label": "Drapeau",
|
|
586
|
+
"keywords": "pays marqueur"
|
|
587
|
+
},
|
|
588
|
+
{
|
|
589
|
+
"name": "telephone",
|
|
590
|
+
"label": "Téléphone",
|
|
591
|
+
"keywords": "appel contact"
|
|
592
|
+
},
|
|
593
|
+
{
|
|
594
|
+
"name": "mobile",
|
|
595
|
+
"label": "Mobile",
|
|
596
|
+
"keywords": "portable"
|
|
597
|
+
},
|
|
598
|
+
{
|
|
599
|
+
"name": "courriel",
|
|
600
|
+
"label": "Courriel",
|
|
601
|
+
"keywords": "email message"
|
|
602
|
+
},
|
|
603
|
+
{
|
|
604
|
+
"name": "reseau",
|
|
605
|
+
"label": "Réseau",
|
|
606
|
+
"keywords": "connexion"
|
|
607
|
+
},
|
|
608
|
+
{
|
|
609
|
+
"name": "information",
|
|
610
|
+
"label": "Information",
|
|
611
|
+
"keywords": "détail aide"
|
|
612
|
+
},
|
|
613
|
+
{
|
|
614
|
+
"name": "date",
|
|
615
|
+
"label": "Date",
|
|
616
|
+
"keywords": "heure horloge"
|
|
617
|
+
},
|
|
618
|
+
{
|
|
619
|
+
"name": "calendrier",
|
|
620
|
+
"label": "Calendrier",
|
|
621
|
+
"keywords": "date jour"
|
|
622
|
+
},
|
|
623
|
+
{
|
|
624
|
+
"name": "duree",
|
|
625
|
+
"label": "Durée",
|
|
626
|
+
"keywords": "temps sablier"
|
|
627
|
+
},
|
|
628
|
+
{
|
|
629
|
+
"name": "etoile",
|
|
630
|
+
"label": "Étoile",
|
|
631
|
+
"keywords": "note favori"
|
|
632
|
+
},
|
|
633
|
+
{
|
|
634
|
+
"name": "cle",
|
|
635
|
+
"label": "Clé",
|
|
636
|
+
"keywords": "accès"
|
|
637
|
+
},
|
|
638
|
+
{
|
|
639
|
+
"name": "verrouille",
|
|
640
|
+
"label": "Cadenas",
|
|
641
|
+
"keywords": "verrou sécurité"
|
|
642
|
+
},
|
|
643
|
+
{
|
|
644
|
+
"name": "idee",
|
|
645
|
+
"label": "Idée",
|
|
646
|
+
"keywords": "ampoule"
|
|
647
|
+
},
|
|
648
|
+
{
|
|
649
|
+
"name": "parapluie",
|
|
650
|
+
"label": "Parapluie",
|
|
651
|
+
"keywords": "abri protection"
|
|
652
|
+
},
|
|
653
|
+
{
|
|
654
|
+
"name": "lien",
|
|
655
|
+
"label": "Lien",
|
|
656
|
+
"keywords": "rattaché"
|
|
657
|
+
},
|
|
658
|
+
{
|
|
659
|
+
"name": "statistiques",
|
|
660
|
+
"label": "Statistiques",
|
|
661
|
+
"keywords": "graphique chiffres"
|
|
662
|
+
},
|
|
663
|
+
{
|
|
664
|
+
"name": "photographier",
|
|
665
|
+
"label": "Photo",
|
|
666
|
+
"keywords": "appareil image"
|
|
667
|
+
},
|
|
668
|
+
{
|
|
669
|
+
"name": "stock",
|
|
670
|
+
"label": "Colis",
|
|
671
|
+
"keywords": "paquet article"
|
|
672
|
+
},
|
|
673
|
+
{
|
|
674
|
+
"name": "produit",
|
|
675
|
+
"label": "Produit",
|
|
676
|
+
"keywords": "caisses catalogue"
|
|
677
|
+
},
|
|
678
|
+
{
|
|
679
|
+
"name": "cabinet",
|
|
680
|
+
"label": "Cabinet",
|
|
681
|
+
"keywords": "mallette courtier"
|
|
682
|
+
},
|
|
683
|
+
{
|
|
684
|
+
"name": "hierarchie",
|
|
685
|
+
"label": "Hiérarchie",
|
|
686
|
+
"keywords": "arborescence"
|
|
687
|
+
}
|
|
688
|
+
];
|
|
689
|
+
|
|
690
|
+
/**
|
|
691
|
+
* Les noms d'icônes Material encore posés dans d'anciens modèles : ils s'affichent sous leur équivalent. Un nom inconnu
|
|
692
|
+
* rend `document`, jamais un carré vide. Même table que celle de l'application métier, pour que rien ne change à l'écran.
|
|
693
|
+
*/
|
|
694
|
+
const LEGACY = {
|
|
695
|
+
badge: 'piece', numbers: 'piece', license: 'piece', tag: 'categorie', confirmation_number: 'document', how_to_reg: 'personne',
|
|
696
|
+
history: 'historique', block: 'bloque', sell: 'categorie', undo: 'annuler', call: 'telephone', smartphone: 'mobile',
|
|
697
|
+
};
|
|
698
|
+
/** Le nom stable d'une icône du modèle : lui-même s'il existe, son équivalent s'il est ancien, `document` sinon ; null s'il est vide. */
|
|
699
|
+
function resolveRiskIcon(name) {
|
|
700
|
+
if (!name)
|
|
701
|
+
return null;
|
|
702
|
+
if (name in ICON_SVG)
|
|
703
|
+
return name;
|
|
704
|
+
const legacy = LEGACY[name];
|
|
705
|
+
return legacy && legacy in ICON_SVG ? legacy : 'document';
|
|
706
|
+
}
|
|
707
|
+
const cache = new Map();
|
|
708
|
+
/** Le SVG complet d'une icône, à la taille du texte. */
|
|
709
|
+
function riskIconSvg(name) {
|
|
710
|
+
const stable = resolveRiskIcon(name);
|
|
711
|
+
if (!stable)
|
|
712
|
+
return '';
|
|
713
|
+
let svg = cache.get(stable);
|
|
714
|
+
if (!svg) {
|
|
715
|
+
svg = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="100%" height="100%" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">'
|
|
716
|
+
+ ICON_SVG[stable] + '</svg>';
|
|
717
|
+
cache.set(stable, svg);
|
|
718
|
+
}
|
|
719
|
+
return svg;
|
|
720
|
+
}
|
|
721
|
+
/** Un pictogramme embarqué : aucun jeu d'icônes à charger, il suit la couleur et la taille du texte. */
|
|
722
|
+
class RfIconComponent {
|
|
723
|
+
sanitizer = inject(DomSanitizer);
|
|
724
|
+
html = '';
|
|
725
|
+
set name(value) { this.html = this.sanitizer.bypassSecurityTrustHtml(riskIconSvg(value)); }
|
|
726
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.26", ngImport: i0, type: RfIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
727
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.26", type: RfIconComponent, isStandalone: true, selector: "rf-icon", inputs: { name: "name" }, ngImport: i0, template: '<span class="rf-icon__svg" [innerHTML]="html"></span>', isInline: true, styles: ["rf-icon{display:inline-flex;align-items:center;width:var(--rf-icon-size,1rem);height:var(--rf-icon-size,1rem);flex:0 0 auto}.rf-icon__svg{display:inline-flex;width:100%;height:100%}.rf-icon__svg>svg{width:100%;height:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
728
|
+
}
|
|
729
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.26", ngImport: i0, type: RfIconComponent, decorators: [{
|
|
730
|
+
type: Component,
|
|
731
|
+
args: [{ selector: 'rf-icon', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '<span class="rf-icon__svg" [innerHTML]="html"></span>', styles: ["rf-icon{display:inline-flex;align-items:center;width:var(--rf-icon-size,1rem);height:var(--rf-icon-size,1rem);flex:0 0 auto}.rf-icon__svg{display:inline-flex;width:100%;height:100%}.rf-icon__svg>svg{width:100%;height:100%}\n"] }]
|
|
732
|
+
}], propDecorators: { name: [{
|
|
733
|
+
type: Input
|
|
734
|
+
}] } });
|
|
735
|
+
|
|
736
|
+
const DEFAULT_COLUMNS = 4;
|
|
737
|
+
const MAX_COLUMNS = 12;
|
|
738
|
+
/** Les colonnes d'une section : celles qu'elle déclare (1 à 12), 4 sinon. */
|
|
739
|
+
function sectionColumns(section) {
|
|
740
|
+
const n = section?.columns;
|
|
741
|
+
return n && n >= 1 && n <= MAX_COLUMNS ? n : DEFAULT_COLUMNS;
|
|
742
|
+
}
|
|
743
|
+
/**
|
|
744
|
+
* Le nombre de colonnes qu'occupe un champ : sa largeur, sinon un identifiant prend 4, un texte ou une liste 2, le reste 1.
|
|
745
|
+
* Un champ ne dépasse jamais la grille de sa section.
|
|
746
|
+
*/
|
|
747
|
+
function fieldSpan(field, columns = DEFAULT_COLUMNS) {
|
|
748
|
+
const span = field.width && field.width >= 1 && field.width <= MAX_COLUMNS ? field.width
|
|
749
|
+
: field.identifier ? 4
|
|
750
|
+
: field.valueType === 'TEXTE' || field.valueType === 'LISTE' || field.valueType === 'LISTE_MULTIPLE' ? 2 : 1;
|
|
751
|
+
return Math.min(span, columns);
|
|
752
|
+
}
|
|
753
|
+
/** La part d'une rangée de 2 colonnes (écran moyen) : un champ pleine largeur prend la rangée, les autres une colonne. */
|
|
754
|
+
function midSpan(span, columns) {
|
|
755
|
+
return span >= columns ? 2 : 1;
|
|
756
|
+
}
|
|
757
|
+
/**
|
|
758
|
+
* Range les champs (déjà triés et filtrés) par section : la section par défaut en tête, puis les sections dans l'ordre du
|
|
759
|
+
* modèle. `keepEmpty` garde les sections sans champ (l'éditeur les montre pour qu'on y dépose des champs).
|
|
760
|
+
*/
|
|
761
|
+
function buildGroups(fields, sections, sectionOf, keepEmpty = false) {
|
|
762
|
+
const ordered = [...(sections ?? [])].sort((a, b) => a.position - b.position);
|
|
763
|
+
const known = new Set(ordered.map(s => s.code));
|
|
764
|
+
const build = (code, title, icon, columns, own) => ({
|
|
765
|
+
code, title, icon, columns,
|
|
766
|
+
toggles: own.filter(f => f.presentation?.style === 'TOGGLE'),
|
|
767
|
+
options: own.filter(f => f.presentation?.style === 'OPTION'),
|
|
768
|
+
fields: own.filter(f => f.presentation?.style !== 'TOGGLE' && f.presentation?.style !== 'OPTION'),
|
|
769
|
+
});
|
|
770
|
+
const groups = [build(null, null, null, DEFAULT_COLUMNS, fields.filter(f => { const s = sectionOf(f); return !s || !known.has(s); }))];
|
|
771
|
+
for (const section of ordered) {
|
|
772
|
+
groups.push(build(section.code, section.title, resolveRiskIcon(section.icon), sectionColumns(section), fields.filter(f => sectionOf(f) === section.code)));
|
|
773
|
+
}
|
|
774
|
+
const size = (g) => g.fields.length + g.toggles.length + g.options.length;
|
|
775
|
+
// L'éditeur garde les sections vides, mais la section par défaut seulement si elle porte des champs.
|
|
776
|
+
return keepEmpty ? groups.filter((g, i) => i > 0 || size(g) > 0) : groups.filter(g => size(g) > 0);
|
|
777
|
+
}
|
|
778
|
+
const FRACTIONS = [[1 / 4, '¼'], [1 / 3, '⅓'], [1 / 2, '½'], [2 / 3, '⅔'], [3 / 4, '¾']];
|
|
779
|
+
/** Le libellé d'une largeur : une fraction usuelle, sinon « n/m ». */
|
|
780
|
+
function widthLabel(span, columns) {
|
|
781
|
+
if (span >= columns)
|
|
782
|
+
return 'Pleine';
|
|
783
|
+
const ratio = span / columns;
|
|
784
|
+
const known = FRACTIONS.find(([f]) => Math.abs(f - ratio) < 1e-9);
|
|
785
|
+
return known ? known[1] : `${span}/${columns}`;
|
|
786
|
+
}
|
|
787
|
+
/**
|
|
788
|
+
* Les largeurs offertes pour une grille de `columns` colonnes : les fractions qui tombent juste (¼ ½ ¾ pleine pour 4,
|
|
789
|
+
* ⅓ ½ ⅔ pleine pour 6 ou 12…) ; une section de 3 colonnes ou moins offre chaque colonne. `current` s'ajoute s'il n'y est pas.
|
|
790
|
+
*/
|
|
791
|
+
function widthChoices(columns, current) {
|
|
792
|
+
const spans = new Set();
|
|
793
|
+
if (columns <= 3) {
|
|
794
|
+
for (let s = 1; s <= columns; s++)
|
|
795
|
+
spans.add(s);
|
|
796
|
+
}
|
|
797
|
+
else {
|
|
798
|
+
for (const [f] of FRACTIONS) {
|
|
799
|
+
const s = columns * f;
|
|
800
|
+
if (Math.abs(s - Math.round(s)) < 1e-9 && Math.round(s) >= 1)
|
|
801
|
+
spans.add(Math.round(s));
|
|
802
|
+
}
|
|
803
|
+
spans.add(columns);
|
|
804
|
+
}
|
|
805
|
+
if (current && current >= 1 && current <= columns)
|
|
806
|
+
spans.add(current);
|
|
807
|
+
return [...spans].sort((a, b) => a - b).map(span => ({ span, label: widthLabel(span, columns) }));
|
|
808
|
+
}
|
|
809
|
+
/** Une largeur gardée dans la même part de la ligne quand la section change de nombre de colonnes (2 sur 4 → 3 sur 6). */
|
|
810
|
+
function rescaleSpan(span, from, to) {
|
|
811
|
+
return Math.min(to, Math.max(1, Math.round(span * to / from)));
|
|
812
|
+
}
|
|
813
|
+
const sameGroup = (a, b) => a.code === b.code && a.title === b.title && a.icon === b.icon && a.columns === b.columns
|
|
814
|
+
&& ['toggles', 'fields', 'options'].every(k => a[k].length === b[k].length && a[k].every((f, i) => f === b[k][i]));
|
|
815
|
+
/**
|
|
816
|
+
* Garde les objets d'avant quand rien n'a changé : un formulaire recalcule ses sections à chaque vérification, et un
|
|
817
|
+
* composant qui reçoit chaque fois de nouveaux objets se redessine pour rien (et Angular s'en plaint en développement).
|
|
818
|
+
*/
|
|
819
|
+
function stableGroups(previous, next) {
|
|
820
|
+
if (!previous)
|
|
821
|
+
return next;
|
|
822
|
+
const kept = next.map((g, i) => (previous[i] && sameGroup(previous[i], g) ? previous[i] : g));
|
|
823
|
+
return kept.length === previous.length && kept.every((g, i) => g === previous[i]) ? previous : kept;
|
|
824
|
+
}
|
|
825
|
+
/** Un champ absent du vrai formulaire : calculé, ou interne (rempli par le système). L'éditeur le montre, l'essai non. */
|
|
826
|
+
function isHiddenInForm(field) {
|
|
827
|
+
return !!field.computed || !!field.internal;
|
|
828
|
+
}
|
|
829
|
+
|
|
830
|
+
/**
|
|
831
|
+
* Replie un conteneur (grille, rangée d'options) dès que TOUS les champs qu'il contient sont masqués par l'hôte
|
|
832
|
+
* (classe `.access-hidden` posée par la gestion des actes). Un conteneur sans aucun champ n'est jamais replié.
|
|
833
|
+
* Même règle que la directive du front métier, pour que le rendu partagé ne laisse ni vide ni filet.
|
|
834
|
+
*/
|
|
835
|
+
class RfCollapseDirective {
|
|
836
|
+
static FIELD_SELECTOR = '[formcontrolname], .access-governed';
|
|
837
|
+
el = inject(ElementRef);
|
|
838
|
+
renderer = inject(Renderer2);
|
|
839
|
+
last;
|
|
840
|
+
ngAfterViewChecked() {
|
|
841
|
+
const collapsed = this.allHidden();
|
|
842
|
+
if (collapsed === this.last)
|
|
843
|
+
return;
|
|
844
|
+
this.last = collapsed;
|
|
845
|
+
this.apply(collapsed);
|
|
846
|
+
}
|
|
847
|
+
ngOnDestroy() { this.apply(false); }
|
|
848
|
+
allHidden() {
|
|
849
|
+
const host = this.el.nativeElement;
|
|
850
|
+
if (!host || typeof host.querySelectorAll !== 'function')
|
|
851
|
+
return false;
|
|
852
|
+
const fields = host.querySelectorAll(RfCollapseDirective.FIELD_SELECTOR);
|
|
853
|
+
if (fields.length === 0)
|
|
854
|
+
return false;
|
|
855
|
+
for (let i = 0; i < fields.length; i++)
|
|
856
|
+
if (!fields[i].closest('.access-hidden'))
|
|
857
|
+
return false;
|
|
858
|
+
return true;
|
|
859
|
+
}
|
|
860
|
+
apply(collapsed) {
|
|
861
|
+
const host = this.el.nativeElement;
|
|
862
|
+
if (collapsed) {
|
|
863
|
+
this.renderer.setStyle(host, 'display', 'none', RendererStyleFlags2.Important);
|
|
864
|
+
this.renderer.setAttribute(host, 'aria-hidden', 'true');
|
|
865
|
+
}
|
|
866
|
+
else {
|
|
867
|
+
this.renderer.removeStyle(host, 'display');
|
|
868
|
+
this.renderer.removeAttribute(host, 'aria-hidden');
|
|
869
|
+
}
|
|
870
|
+
}
|
|
871
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.26", ngImport: i0, type: RfCollapseDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
872
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.26", type: RfCollapseDirective, isStandalone: true, selector: "[rfCollapse]", ngImport: i0 });
|
|
873
|
+
}
|
|
874
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.26", ngImport: i0, type: RfCollapseDirective, decorators: [{
|
|
875
|
+
type: Directive,
|
|
876
|
+
args: [{ selector: '[rfCollapse]', standalone: true }]
|
|
877
|
+
}] });
|
|
878
|
+
|
|
879
|
+
/** Le gabarit d'un champ : `<ng-template rfField let-field let-span="span" let-mid="mid">`. */
|
|
880
|
+
class RfFieldTemplateDirective {
|
|
881
|
+
template;
|
|
882
|
+
constructor(template) {
|
|
883
|
+
this.template = template;
|
|
884
|
+
}
|
|
885
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.26", ngImport: i0, type: RfFieldTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
886
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.26", type: RfFieldTemplateDirective, isStandalone: true, selector: "ng-template[rfField]", ngImport: i0 });
|
|
887
|
+
}
|
|
888
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.26", ngImport: i0, type: RfFieldTemplateDirective, decorators: [{
|
|
889
|
+
type: Directive,
|
|
890
|
+
args: [{ selector: 'ng-template[rfField]', standalone: true }]
|
|
891
|
+
}], ctorParameters: () => [{ type: i0.TemplateRef }] });
|
|
892
|
+
/** Ce qui s'ajoute à droite du titre (bascules, modes de saisie…). */
|
|
893
|
+
class RfHeaderTemplateDirective {
|
|
894
|
+
template;
|
|
895
|
+
constructor(template) {
|
|
896
|
+
this.template = template;
|
|
897
|
+
}
|
|
898
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.26", ngImport: i0, type: RfHeaderTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
899
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.26", type: RfHeaderTemplateDirective, isStandalone: true, selector: "ng-template[rfHeader]", ngImport: i0 });
|
|
900
|
+
}
|
|
901
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.26", ngImport: i0, type: RfHeaderTemplateDirective, decorators: [{
|
|
902
|
+
type: Directive,
|
|
903
|
+
args: [{ selector: 'ng-template[rfHeader]', standalone: true }]
|
|
904
|
+
}], ctorParameters: () => [{ type: i0.TemplateRef }] });
|
|
905
|
+
/** Ce qui suit la grille, avant les options (une alerte, par exemple). */
|
|
906
|
+
class RfAfterTemplateDirective {
|
|
907
|
+
template;
|
|
908
|
+
constructor(template) {
|
|
909
|
+
this.template = template;
|
|
910
|
+
}
|
|
911
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.26", ngImport: i0, type: RfAfterTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
912
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.26", type: RfAfterTemplateDirective, isStandalone: true, selector: "ng-template[rfAfter]", ngImport: i0 });
|
|
913
|
+
}
|
|
914
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.26", ngImport: i0, type: RfAfterTemplateDirective, decorators: [{
|
|
915
|
+
type: Directive,
|
|
916
|
+
args: [{ selector: 'ng-template[rfAfter]', standalone: true }]
|
|
917
|
+
}], ctorParameters: () => [{ type: i0.TemplateRef }] });
|
|
918
|
+
/** Ce qui paraît quand la section n'a aucun champ (l'éditeur y invite à déposer). */
|
|
919
|
+
class RfEmptyTemplateDirective {
|
|
920
|
+
template;
|
|
921
|
+
constructor(template) {
|
|
922
|
+
this.template = template;
|
|
923
|
+
}
|
|
924
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.26", ngImport: i0, type: RfEmptyTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
925
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.26", type: RfEmptyTemplateDirective, isStandalone: true, selector: "ng-template[rfEmpty]", ngImport: i0 });
|
|
926
|
+
}
|
|
927
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.26", ngImport: i0, type: RfEmptyTemplateDirective, decorators: [{
|
|
928
|
+
type: Directive,
|
|
929
|
+
args: [{ selector: 'ng-template[rfEmpty]', standalone: true }]
|
|
930
|
+
}], ctorParameters: () => [{ type: i0.TemplateRef }] });
|
|
931
|
+
/**
|
|
932
|
+
* Une section du formulaire d'un risque : une carte, son icône et son titre, puis la grille de ses champs. C'est le seul
|
|
933
|
+
* rendu de la structure : le vrai formulaire (front métier) et l'éditeur (admin) l'utilisent tous les deux, avec chacun
|
|
934
|
+
* son propre contenu de champ.
|
|
935
|
+
*/
|
|
936
|
+
class RfSectionComponent {
|
|
937
|
+
group;
|
|
938
|
+
/** Montre toujours la grille déclarée, quelle que soit la largeur de la carte (l'éditeur). */
|
|
939
|
+
forceGrid = false;
|
|
940
|
+
fieldTpl;
|
|
941
|
+
headerTpl;
|
|
942
|
+
afterTpl;
|
|
943
|
+
emptyTpl;
|
|
944
|
+
contexts = new Map();
|
|
945
|
+
/** Un champ avec sa part de grille. Le même objet revient tant que rien ne change : le gabarit ne se redessine pas pour rien. */
|
|
946
|
+
context(field, kind) {
|
|
947
|
+
const span = fieldSpan(this.spanSource ? this.spanSource(field) : field, this.group.columns);
|
|
948
|
+
const mid = midSpan(span, this.group.columns);
|
|
949
|
+
const known = this.contexts.get(field);
|
|
950
|
+
if (known && known.span === span && known.mid === mid && known.kind === kind && known.group === this.group)
|
|
951
|
+
return known;
|
|
952
|
+
const next = { $implicit: field, group: this.group, span, mid, kind };
|
|
953
|
+
this.contexts.set(field, next);
|
|
954
|
+
return next;
|
|
955
|
+
}
|
|
956
|
+
/** Remplace la largeur lue sur le champ (la largeur d'une autre place, selon une condition). */
|
|
957
|
+
spanSource;
|
|
958
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.26", ngImport: i0, type: RfSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
959
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.26", type: RfSectionComponent, isStandalone: true, selector: "rf-section", inputs: { group: "group", forceGrid: "forceGrid", spanSource: "spanSource" }, host: { properties: { "class.rf-section--plain": "!group.title", "class.rf-section--forced": "forceGrid", "attr.data-section": "group.code" }, classAttribute: "rf-section" }, queries: [{ propertyName: "fieldTpl", first: true, predicate: RfFieldTemplateDirective, descendants: true }, { propertyName: "headerTpl", first: true, predicate: RfHeaderTemplateDirective, descendants: true }, { propertyName: "afterTpl", first: true, predicate: RfAfterTemplateDirective, descendants: true }, { propertyName: "emptyTpl", first: true, predicate: RfEmptyTemplateDirective, descendants: true }], ngImport: i0, template: `
|
|
960
|
+
@if (group.title) {
|
|
961
|
+
<header class="rf-section__header">
|
|
962
|
+
<div class="rf-section__heading">
|
|
963
|
+
@if (group.icon) {<span class="rf-section__icon"><rf-icon [name]="group.icon" /></span>}
|
|
964
|
+
<h3 class="rf-section__title">{{ group.title }}</h3>
|
|
965
|
+
</div>
|
|
966
|
+
@if (headerTpl) {<ng-container *ngTemplateOutlet="headerTpl.template; context: { $implicit: group }" />}
|
|
967
|
+
</header>
|
|
968
|
+
}
|
|
969
|
+
<div rfCollapse class="rf-grid" [style.--cols]="group.columns" [attr.data-rf-grid]="group.code ?? ''" [attr.data-columns]="group.columns">
|
|
970
|
+
@for (field of group.fields; track field) {
|
|
971
|
+
@if (fieldTpl) {<ng-container *ngTemplateOutlet="fieldTpl.template; context: context(field, 'field')" />}
|
|
972
|
+
}
|
|
973
|
+
</div>
|
|
974
|
+
@if (!group.fields.length && !group.options.length && emptyTpl) {<ng-container *ngTemplateOutlet="emptyTpl.template; context: { $implicit: group }" />}
|
|
975
|
+
@if (afterTpl) {<ng-container *ngTemplateOutlet="afterTpl.template; context: { $implicit: group }" />}
|
|
976
|
+
@if (group.options.length) {
|
|
977
|
+
<div rfCollapse class="rf-options">
|
|
978
|
+
@for (field of group.options; track field) {
|
|
979
|
+
@if (fieldTpl) {<ng-container *ngTemplateOutlet="fieldTpl.template; context: context(field, 'option')" />}
|
|
980
|
+
}
|
|
981
|
+
</div>
|
|
982
|
+
}
|
|
983
|
+
`, isInline: true, styles: [".rf-section{container-type:inline-size;display:flex;min-width:0;flex-direction:column;gap:1.125rem;overflow:hidden;padding:1.25rem;border:1px solid var(--border);border-radius:calc(var(--radius) + .25rem);background:var(--card);box-shadow:0 1px 2px color-mix(in oklch,var(--foreground),transparent 94%)}.rf-section--plain{overflow:visible}.rf-section__header{display:flex;min-width:0;align-items:center;justify-content:space-between;gap:.75rem}.rf-section__heading{display:flex;min-width:0;align-items:center;gap:.75rem}.rf-section__icon{display:inline-flex;width:2.25rem;height:2.25rem;flex:0 0 2.25rem;align-items:center;justify-content:center;border:1px solid color-mix(in oklch,var(--primary),transparent 72%);border-radius:calc(var(--radius) - .125rem);background:color-mix(in oklch,var(--primary),transparent 88%);color:var(--primary)}.rf-section__title{min-width:0;margin:0;font-size:.9375rem;font-weight:700;line-height:1.35;text-wrap:balance}.rf-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem 1.25rem;width:100%;align-items:start}.rf-grid>*{min-width:0}@container (min-width: 36rem){.rf-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rf-grid>*{grid-column:span var(--mid, 1)}}@container (min-width: 58rem){.rf-grid{grid-template-columns:repeat(var(--cols, 4),minmax(0,1fr))}.rf-grid>*{grid-column:span var(--span, 2)}}.rf-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,11.5rem),1fr));gap:.625rem;padding-top:1rem;border-top:1px solid var(--border)}@container (max-width: 48rem){.rf-section__header{align-items:flex-start;flex-direction:column}}@media(max-width:40rem){.rf-section{padding:1rem}}.rf-section--forced .rf-grid{grid-template-columns:repeat(var(--cols, 4),minmax(0,1fr))}.rf-section--forced .rf-grid>*{grid-column:span var(--span, 2)}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: RfIconComponent, selector: "rf-icon", inputs: ["name"] }, { kind: "directive", type: RfCollapseDirective, selector: "[rfCollapse]" }], changeDetection: i0.ChangeDetectionStrategy.Eager, encapsulation: i0.ViewEncapsulation.None });
|
|
984
|
+
}
|
|
985
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.26", ngImport: i0, type: RfSectionComponent, decorators: [{
|
|
986
|
+
type: Component,
|
|
987
|
+
args: [{ selector: 'rf-section', standalone: true, imports: [NgTemplateOutlet, RfIconComponent, RfCollapseDirective], changeDetection: ChangeDetectionStrategy.Default, encapsulation: ViewEncapsulation.None, host: { class: 'rf-section', '[class.rf-section--plain]': '!group.title', '[class.rf-section--forced]': 'forceGrid', '[attr.data-section]': 'group.code' }, template: `
|
|
988
|
+
@if (group.title) {
|
|
989
|
+
<header class="rf-section__header">
|
|
990
|
+
<div class="rf-section__heading">
|
|
991
|
+
@if (group.icon) {<span class="rf-section__icon"><rf-icon [name]="group.icon" /></span>}
|
|
992
|
+
<h3 class="rf-section__title">{{ group.title }}</h3>
|
|
993
|
+
</div>
|
|
994
|
+
@if (headerTpl) {<ng-container *ngTemplateOutlet="headerTpl.template; context: { $implicit: group }" />}
|
|
995
|
+
</header>
|
|
996
|
+
}
|
|
997
|
+
<div rfCollapse class="rf-grid" [style.--cols]="group.columns" [attr.data-rf-grid]="group.code ?? ''" [attr.data-columns]="group.columns">
|
|
998
|
+
@for (field of group.fields; track field) {
|
|
999
|
+
@if (fieldTpl) {<ng-container *ngTemplateOutlet="fieldTpl.template; context: context(field, 'field')" />}
|
|
1000
|
+
}
|
|
1001
|
+
</div>
|
|
1002
|
+
@if (!group.fields.length && !group.options.length && emptyTpl) {<ng-container *ngTemplateOutlet="emptyTpl.template; context: { $implicit: group }" />}
|
|
1003
|
+
@if (afterTpl) {<ng-container *ngTemplateOutlet="afterTpl.template; context: { $implicit: group }" />}
|
|
1004
|
+
@if (group.options.length) {
|
|
1005
|
+
<div rfCollapse class="rf-options">
|
|
1006
|
+
@for (field of group.options; track field) {
|
|
1007
|
+
@if (fieldTpl) {<ng-container *ngTemplateOutlet="fieldTpl.template; context: context(field, 'option')" />}
|
|
1008
|
+
}
|
|
1009
|
+
</div>
|
|
1010
|
+
}
|
|
1011
|
+
`, styles: [".rf-section{container-type:inline-size;display:flex;min-width:0;flex-direction:column;gap:1.125rem;overflow:hidden;padding:1.25rem;border:1px solid var(--border);border-radius:calc(var(--radius) + .25rem);background:var(--card);box-shadow:0 1px 2px color-mix(in oklch,var(--foreground),transparent 94%)}.rf-section--plain{overflow:visible}.rf-section__header{display:flex;min-width:0;align-items:center;justify-content:space-between;gap:.75rem}.rf-section__heading{display:flex;min-width:0;align-items:center;gap:.75rem}.rf-section__icon{display:inline-flex;width:2.25rem;height:2.25rem;flex:0 0 2.25rem;align-items:center;justify-content:center;border:1px solid color-mix(in oklch,var(--primary),transparent 72%);border-radius:calc(var(--radius) - .125rem);background:color-mix(in oklch,var(--primary),transparent 88%);color:var(--primary)}.rf-section__title{min-width:0;margin:0;font-size:.9375rem;font-weight:700;line-height:1.35;text-wrap:balance}.rf-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem 1.25rem;width:100%;align-items:start}.rf-grid>*{min-width:0}@container (min-width: 36rem){.rf-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rf-grid>*{grid-column:span var(--mid, 1)}}@container (min-width: 58rem){.rf-grid{grid-template-columns:repeat(var(--cols, 4),minmax(0,1fr))}.rf-grid>*{grid-column:span var(--span, 2)}}.rf-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,11.5rem),1fr));gap:.625rem;padding-top:1rem;border-top:1px solid var(--border)}@container (max-width: 48rem){.rf-section__header{align-items:flex-start;flex-direction:column}}@media(max-width:40rem){.rf-section{padding:1rem}}.rf-section--forced .rf-grid{grid-template-columns:repeat(var(--cols, 4),minmax(0,1fr))}.rf-section--forced .rf-grid>*{grid-column:span var(--span, 2)}\n"] }]
|
|
1012
|
+
}], propDecorators: { group: [{
|
|
1013
|
+
type: Input,
|
|
1014
|
+
args: [{ required: true }]
|
|
1015
|
+
}], forceGrid: [{
|
|
1016
|
+
type: Input
|
|
1017
|
+
}], fieldTpl: [{
|
|
1018
|
+
type: ContentChild,
|
|
1019
|
+
args: [RfFieldTemplateDirective]
|
|
1020
|
+
}], headerTpl: [{
|
|
1021
|
+
type: ContentChild,
|
|
1022
|
+
args: [RfHeaderTemplateDirective]
|
|
1023
|
+
}], afterTpl: [{
|
|
1024
|
+
type: ContentChild,
|
|
1025
|
+
args: [RfAfterTemplateDirective]
|
|
1026
|
+
}], emptyTpl: [{
|
|
1027
|
+
type: ContentChild,
|
|
1028
|
+
args: [RfEmptyTemplateDirective]
|
|
1029
|
+
}], spanSource: [{
|
|
1030
|
+
type: Input
|
|
1031
|
+
}] } });
|
|
1032
|
+
|
|
1033
|
+
/** Le texte que montre un champ vide : ses bornes, ses premiers choix, ou son format. */
|
|
1034
|
+
function fieldHint(field) {
|
|
1035
|
+
switch (field.valueType) {
|
|
1036
|
+
case 'NUMERIQUE':
|
|
1037
|
+
if (field.min && field.max)
|
|
1038
|
+
return `${field.min} à ${field.max}`;
|
|
1039
|
+
if (field.min)
|
|
1040
|
+
return `≥ ${field.min}`;
|
|
1041
|
+
if (field.max)
|
|
1042
|
+
return `≤ ${field.max}`;
|
|
1043
|
+
return '0';
|
|
1044
|
+
case 'LISTE':
|
|
1045
|
+
case 'LISTE_MULTIPLE': return (field.options ?? []).map(o => o.label).slice(0, 3).join(' · ') || 'Choisir…';
|
|
1046
|
+
case 'DATE': return 'jj/mm/aaaa';
|
|
1047
|
+
default: return '';
|
|
1048
|
+
}
|
|
1049
|
+
}
|
|
1050
|
+
/**
|
|
1051
|
+
* Un champ du formulaire d'un risque, dessiné comme dans le vrai formulaire : l'étiquette au-dessus, un contrôle de la
|
|
1052
|
+
* hauteur commune, l'icône à gauche. Il sert à l'éditeur (contrôles inertes) et à son essai (contrôles actifs).
|
|
1053
|
+
*/
|
|
1054
|
+
class RfFieldPreviewComponent {
|
|
1055
|
+
field;
|
|
1056
|
+
/** Obligatoire maintenant (le champ le dit, ou une condition). */
|
|
1057
|
+
required = false;
|
|
1058
|
+
/** Contrôles actifs (l'essai) ; sinon inertes. */
|
|
1059
|
+
interactive = false;
|
|
1060
|
+
invalid = false;
|
|
1061
|
+
/** Non modifiable (rempli par une fiche, calculé, en lecture seule, verrouillé) : un seul aspect, quelle que soit la cause. */
|
|
1062
|
+
locked = false;
|
|
1063
|
+
value = null;
|
|
1064
|
+
valueChange = new EventEmitter();
|
|
1065
|
+
get style() { return this.field.presentation?.style; }
|
|
1066
|
+
get iconName() { return this.field.presentation?.icon ?? null; }
|
|
1067
|
+
get placeholder() { return this.field.presentation?.placeholder ?? null; }
|
|
1068
|
+
get hint() { return fieldHint(this.field); }
|
|
1069
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.26", ngImport: i0, type: RfFieldPreviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1070
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.26", type: RfFieldPreviewComponent, isStandalone: true, selector: "rf-field-preview", inputs: { field: "field", required: "required", interactive: "interactive", invalid: "invalid", locked: "locked", value: "value" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: `
|
|
1071
|
+
@if (field.valueType === 'BOOLEEN' && style === 'OPTION') {
|
|
1072
|
+
<div class="rfp-option" [class.rfp-option--locked]="locked">
|
|
1073
|
+
<input type="checkbox" class="rfp-check" [disabled]="!interactive" [checked]="value === true" (change)="valueChange.emit($any($event.target).checked)" />
|
|
1074
|
+
@if (iconName) {<rf-icon [name]="iconName" />}
|
|
1075
|
+
<span class="rfp-option__label">{{ field.label }}@if (required) {<span aria-hidden="true"> *</span>}</span>
|
|
1076
|
+
</div>
|
|
1077
|
+
} @else if (field.valueType === 'BOOLEEN' && style === 'SWITCH') {
|
|
1078
|
+
<div class="rfp-switch" [class.rfp-switch--locked]="locked">
|
|
1079
|
+
<span class="rfp-switch__label">@if (iconName) {<rf-icon [name]="iconName" />}{{ field.label }}</span>
|
|
1080
|
+
<span class="rfp-switch__track" [class.is-on]="value === true" (click)="interactive && valueChange.emit(value !== true)"><span class="rfp-switch__thumb"></span></span>
|
|
1081
|
+
</div>
|
|
1082
|
+
} @else {
|
|
1083
|
+
<div class="rfp" [class.rfp--bare]="!iconName" [class.rfp--invalid]="invalid" [class.rf--locked]="locked">
|
|
1084
|
+
@if (field.valueType !== 'BOOLEEN') {
|
|
1085
|
+
<label class="rfp__label">{{ field.label || 'Sans libellé' }}@if (required) {<span aria-hidden="true"> *</span>}</label>
|
|
1086
|
+
}
|
|
1087
|
+
<div class="rfp__box">
|
|
1088
|
+
@switch (field.valueType) {
|
|
1089
|
+
@case ('BOOLEEN') {
|
|
1090
|
+
<div class="rfp-bool">
|
|
1091
|
+
<input type="checkbox" class="rfp-check" [disabled]="!interactive" [checked]="value === true" (change)="valueChange.emit($any($event.target).checked)" />
|
|
1092
|
+
<span>{{ field.label || 'Sans libellé' }}@if (required) {<span aria-hidden="true"> *</span>}</span>
|
|
1093
|
+
</div>
|
|
1094
|
+
}
|
|
1095
|
+
@case ('LISTE') {
|
|
1096
|
+
@if (interactive) {
|
|
1097
|
+
<select class="rfp-control" (change)="valueChange.emit($any($event.target).value)">
|
|
1098
|
+
<option value=""></option>
|
|
1099
|
+
@for (o of field.options ?? []; track o.value) {<option [value]="o.value">{{ o.label }}</option>}
|
|
1100
|
+
</select>
|
|
1101
|
+
<rf-icon class="rfp__chev" name="deplier" />
|
|
1102
|
+
} @else {
|
|
1103
|
+
<div class="rfp-control rfp-select"><span class="rfp-select__text">{{ hint }}</span><rf-icon class="rfp-chevron" name="deplier" /></div>
|
|
1104
|
+
}
|
|
1105
|
+
}
|
|
1106
|
+
@case ('LISTE_MULTIPLE') {
|
|
1107
|
+
@if (interactive) {
|
|
1108
|
+
<select class="rfp-control rfp-multiple" multiple (change)="valueChange.emit($any($event.target).value)">
|
|
1109
|
+
@for (o of field.options ?? []; track o.value) {<option [value]="o.value">{{ o.label }}</option>}
|
|
1110
|
+
</select>
|
|
1111
|
+
} @else {
|
|
1112
|
+
<div class="rfp-control rfp-select"><span class="rfp-select__text">{{ hint }}</span><rf-icon class="rfp-chevron" name="deplier" /></div>
|
|
1113
|
+
}
|
|
1114
|
+
}
|
|
1115
|
+
@case ('DATE') {
|
|
1116
|
+
@if (interactive) {
|
|
1117
|
+
<input class="rfp-control rfp-date" type="text" [attr.placeholder]="field.label" (input)="valueChange.emit($any($event.target).value)" />
|
|
1118
|
+
<rf-icon class="rfp__cal" name="calendrier" />
|
|
1119
|
+
} @else {
|
|
1120
|
+
<div class="rfp-control rfp-select"><rf-icon name="calendrier" /><span class="rfp-select__text">{{ hint }}</span></div>
|
|
1121
|
+
}
|
|
1122
|
+
}
|
|
1123
|
+
@default {
|
|
1124
|
+
@if (interactive) {
|
|
1125
|
+
<input class="rfp-control" [attr.type]="field.valueType === 'NUMERIQUE' ? 'number' : 'text'" [attr.placeholder]="placeholder" (input)="valueChange.emit($any($event.target).value)" />
|
|
1126
|
+
} @else {
|
|
1127
|
+
<div class="rfp-control rfp-input"><span class="rfp-input__text">{{ placeholder || hint }}</span></div>
|
|
1128
|
+
}
|
|
1129
|
+
}
|
|
1130
|
+
}
|
|
1131
|
+
@if (iconName && field.valueType !== 'BOOLEEN') {<rf-icon class="rfp__icon" [name]="iconName" />}
|
|
1132
|
+
@if (locked && field.valueType !== 'BOOLEEN') {<rf-icon class="rfp__lock" name="verrouille" />}
|
|
1133
|
+
</div>
|
|
1134
|
+
</div>
|
|
1135
|
+
}
|
|
1136
|
+
`, isInline: true, styles: [".rfp{position:relative;min-width:0}.rfp__label{display:inline-flex;gap:.5rem;margin-bottom:.4375rem;color:var(--foreground);font-size:.8125rem;font-weight:600;line-height:1.25rem}.rfp-control{display:flex;width:100%;min-width:0;height:var(--vehicle-control-height, 2.25rem);box-sizing:border-box;align-items:center;gap:.5rem;padding:0 2.5rem 0 2.25rem;border:1px solid var(--input);border-radius:var(--radius);background:var(--vehicle-control-bg);color:var(--foreground);font:inherit;font-size:.875rem;font-weight:600;line-height:1.25rem}.rfp--bare .rfp-control{padding-left:.75rem}.rfp--invalid .rfp-control{border-color:var(--destructive)}.rfp-input__text,.rfp-select__text{min-width:0;flex:1 1 auto;overflow:hidden;color:var(--muted-foreground);font-weight:400;text-overflow:ellipsis;white-space:nowrap}.rfp-select{padding-left:.75rem;padding-right:.75rem;justify-content:space-between}.rfp-select rf-icon{color:var(--muted-foreground)}.rfp-multiple{height:auto;min-height:4.5rem;padding:.25rem}input.rfp-control::placeholder{color:var(--muted-foreground);font-weight:400}.rfp__box{position:relative;min-width:0}.rfp__box>.rfp__icon,.rfp__box>.rfp__lock{position:absolute;top:50%;z-index:1;transform:translateY(-50%);pointer-events:none}.rfp__box>.rfp__icon{left:.75rem;color:var(--muted-foreground)}.rfp__box>.rfp__lock{right:.75rem;color:var(--muted-foreground)}.rfp-bool{display:flex;min-height:var(--vehicle-control-height, 2.25rem);align-items:center;gap:.5rem;font-size:.875rem;font-weight:500}.rfp-check{width:1rem;height:1rem;margin:0;accent-color:var(--primary)}.rfp-option{display:flex;min-width:0;min-height:var(--vehicle-control-height, 2.25rem);align-items:center;gap:.5rem;padding:.375rem .625rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--vehicle-control-bg);font-size:.8125rem}.rfp-option>rf-icon{color:var(--primary)}.rfp-option__label{font-weight:500}.rfp-switch{display:flex;min-width:0;min-height:var(--vehicle-control-height, 2.25rem);align-items:center;justify-content:space-between;gap:.75rem;padding:0 .75rem;border:1px solid var(--input);border-radius:var(--radius);background:var(--vehicle-control-bg)}.rfp-switch__label{display:flex;min-width:0;align-items:center;gap:.75rem;overflow:hidden;font-size:.875rem;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.rfp-switch__track{position:relative;width:2rem;height:1.125rem;flex:0 0 2rem;border-radius:999px;background:var(--input);transition:background-color .15s ease}.rfp-switch__track.is-on{background:var(--primary)}.rfp-switch__thumb{position:absolute;top:.125rem;left:.125rem;width:.875rem;height:.875rem;border-radius:50%;background:var(--card);transition:transform .15s ease}.rfp-switch__track.is-on .rfp-switch__thumb{transform:translate(.875rem)}select.rfp-control{appearance:none;-webkit-appearance:none;padding-left:.75rem}.rfp__box>.rfp__chev,.rfp__box>.rfp__cal{position:absolute;top:50%;right:.75rem;z-index:1;transform:translateY(-50%);color:var(--muted-foreground);pointer-events:none}.rfp-date{padding-left:.75rem;font-weight:400}\n"], dependencies: [{ kind: "component", type: RfIconComponent, selector: "rf-icon", inputs: ["name"] }], changeDetection: i0.ChangeDetectionStrategy.Eager, encapsulation: i0.ViewEncapsulation.None });
|
|
1137
|
+
}
|
|
1138
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.26", ngImport: i0, type: RfFieldPreviewComponent, decorators: [{
|
|
1139
|
+
type: Component,
|
|
1140
|
+
args: [{ selector: 'rf-field-preview', standalone: true, imports: [RfIconComponent], changeDetection: ChangeDetectionStrategy.Default, encapsulation: ViewEncapsulation.None, template: `
|
|
1141
|
+
@if (field.valueType === 'BOOLEEN' && style === 'OPTION') {
|
|
1142
|
+
<div class="rfp-option" [class.rfp-option--locked]="locked">
|
|
1143
|
+
<input type="checkbox" class="rfp-check" [disabled]="!interactive" [checked]="value === true" (change)="valueChange.emit($any($event.target).checked)" />
|
|
1144
|
+
@if (iconName) {<rf-icon [name]="iconName" />}
|
|
1145
|
+
<span class="rfp-option__label">{{ field.label }}@if (required) {<span aria-hidden="true"> *</span>}</span>
|
|
1146
|
+
</div>
|
|
1147
|
+
} @else if (field.valueType === 'BOOLEEN' && style === 'SWITCH') {
|
|
1148
|
+
<div class="rfp-switch" [class.rfp-switch--locked]="locked">
|
|
1149
|
+
<span class="rfp-switch__label">@if (iconName) {<rf-icon [name]="iconName" />}{{ field.label }}</span>
|
|
1150
|
+
<span class="rfp-switch__track" [class.is-on]="value === true" (click)="interactive && valueChange.emit(value !== true)"><span class="rfp-switch__thumb"></span></span>
|
|
1151
|
+
</div>
|
|
1152
|
+
} @else {
|
|
1153
|
+
<div class="rfp" [class.rfp--bare]="!iconName" [class.rfp--invalid]="invalid" [class.rf--locked]="locked">
|
|
1154
|
+
@if (field.valueType !== 'BOOLEEN') {
|
|
1155
|
+
<label class="rfp__label">{{ field.label || 'Sans libellé' }}@if (required) {<span aria-hidden="true"> *</span>}</label>
|
|
1156
|
+
}
|
|
1157
|
+
<div class="rfp__box">
|
|
1158
|
+
@switch (field.valueType) {
|
|
1159
|
+
@case ('BOOLEEN') {
|
|
1160
|
+
<div class="rfp-bool">
|
|
1161
|
+
<input type="checkbox" class="rfp-check" [disabled]="!interactive" [checked]="value === true" (change)="valueChange.emit($any($event.target).checked)" />
|
|
1162
|
+
<span>{{ field.label || 'Sans libellé' }}@if (required) {<span aria-hidden="true"> *</span>}</span>
|
|
1163
|
+
</div>
|
|
1164
|
+
}
|
|
1165
|
+
@case ('LISTE') {
|
|
1166
|
+
@if (interactive) {
|
|
1167
|
+
<select class="rfp-control" (change)="valueChange.emit($any($event.target).value)">
|
|
1168
|
+
<option value=""></option>
|
|
1169
|
+
@for (o of field.options ?? []; track o.value) {<option [value]="o.value">{{ o.label }}</option>}
|
|
1170
|
+
</select>
|
|
1171
|
+
<rf-icon class="rfp__chev" name="deplier" />
|
|
1172
|
+
} @else {
|
|
1173
|
+
<div class="rfp-control rfp-select"><span class="rfp-select__text">{{ hint }}</span><rf-icon class="rfp-chevron" name="deplier" /></div>
|
|
1174
|
+
}
|
|
1175
|
+
}
|
|
1176
|
+
@case ('LISTE_MULTIPLE') {
|
|
1177
|
+
@if (interactive) {
|
|
1178
|
+
<select class="rfp-control rfp-multiple" multiple (change)="valueChange.emit($any($event.target).value)">
|
|
1179
|
+
@for (o of field.options ?? []; track o.value) {<option [value]="o.value">{{ o.label }}</option>}
|
|
1180
|
+
</select>
|
|
1181
|
+
} @else {
|
|
1182
|
+
<div class="rfp-control rfp-select"><span class="rfp-select__text">{{ hint }}</span><rf-icon class="rfp-chevron" name="deplier" /></div>
|
|
1183
|
+
}
|
|
1184
|
+
}
|
|
1185
|
+
@case ('DATE') {
|
|
1186
|
+
@if (interactive) {
|
|
1187
|
+
<input class="rfp-control rfp-date" type="text" [attr.placeholder]="field.label" (input)="valueChange.emit($any($event.target).value)" />
|
|
1188
|
+
<rf-icon class="rfp__cal" name="calendrier" />
|
|
1189
|
+
} @else {
|
|
1190
|
+
<div class="rfp-control rfp-select"><rf-icon name="calendrier" /><span class="rfp-select__text">{{ hint }}</span></div>
|
|
1191
|
+
}
|
|
1192
|
+
}
|
|
1193
|
+
@default {
|
|
1194
|
+
@if (interactive) {
|
|
1195
|
+
<input class="rfp-control" [attr.type]="field.valueType === 'NUMERIQUE' ? 'number' : 'text'" [attr.placeholder]="placeholder" (input)="valueChange.emit($any($event.target).value)" />
|
|
1196
|
+
} @else {
|
|
1197
|
+
<div class="rfp-control rfp-input"><span class="rfp-input__text">{{ placeholder || hint }}</span></div>
|
|
1198
|
+
}
|
|
1199
|
+
}
|
|
1200
|
+
}
|
|
1201
|
+
@if (iconName && field.valueType !== 'BOOLEEN') {<rf-icon class="rfp__icon" [name]="iconName" />}
|
|
1202
|
+
@if (locked && field.valueType !== 'BOOLEEN') {<rf-icon class="rfp__lock" name="verrouille" />}
|
|
1203
|
+
</div>
|
|
1204
|
+
</div>
|
|
1205
|
+
}
|
|
1206
|
+
`, styles: [".rfp{position:relative;min-width:0}.rfp__label{display:inline-flex;gap:.5rem;margin-bottom:.4375rem;color:var(--foreground);font-size:.8125rem;font-weight:600;line-height:1.25rem}.rfp-control{display:flex;width:100%;min-width:0;height:var(--vehicle-control-height, 2.25rem);box-sizing:border-box;align-items:center;gap:.5rem;padding:0 2.5rem 0 2.25rem;border:1px solid var(--input);border-radius:var(--radius);background:var(--vehicle-control-bg);color:var(--foreground);font:inherit;font-size:.875rem;font-weight:600;line-height:1.25rem}.rfp--bare .rfp-control{padding-left:.75rem}.rfp--invalid .rfp-control{border-color:var(--destructive)}.rfp-input__text,.rfp-select__text{min-width:0;flex:1 1 auto;overflow:hidden;color:var(--muted-foreground);font-weight:400;text-overflow:ellipsis;white-space:nowrap}.rfp-select{padding-left:.75rem;padding-right:.75rem;justify-content:space-between}.rfp-select rf-icon{color:var(--muted-foreground)}.rfp-multiple{height:auto;min-height:4.5rem;padding:.25rem}input.rfp-control::placeholder{color:var(--muted-foreground);font-weight:400}.rfp__box{position:relative;min-width:0}.rfp__box>.rfp__icon,.rfp__box>.rfp__lock{position:absolute;top:50%;z-index:1;transform:translateY(-50%);pointer-events:none}.rfp__box>.rfp__icon{left:.75rem;color:var(--muted-foreground)}.rfp__box>.rfp__lock{right:.75rem;color:var(--muted-foreground)}.rfp-bool{display:flex;min-height:var(--vehicle-control-height, 2.25rem);align-items:center;gap:.5rem;font-size:.875rem;font-weight:500}.rfp-check{width:1rem;height:1rem;margin:0;accent-color:var(--primary)}.rfp-option{display:flex;min-width:0;min-height:var(--vehicle-control-height, 2.25rem);align-items:center;gap:.5rem;padding:.375rem .625rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--vehicle-control-bg);font-size:.8125rem}.rfp-option>rf-icon{color:var(--primary)}.rfp-option__label{font-weight:500}.rfp-switch{display:flex;min-width:0;min-height:var(--vehicle-control-height, 2.25rem);align-items:center;justify-content:space-between;gap:.75rem;padding:0 .75rem;border:1px solid var(--input);border-radius:var(--radius);background:var(--vehicle-control-bg)}.rfp-switch__label{display:flex;min-width:0;align-items:center;gap:.75rem;overflow:hidden;font-size:.875rem;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.rfp-switch__track{position:relative;width:2rem;height:1.125rem;flex:0 0 2rem;border-radius:999px;background:var(--input);transition:background-color .15s ease}.rfp-switch__track.is-on{background:var(--primary)}.rfp-switch__thumb{position:absolute;top:.125rem;left:.125rem;width:.875rem;height:.875rem;border-radius:50%;background:var(--card);transition:transform .15s ease}.rfp-switch__track.is-on .rfp-switch__thumb{transform:translate(.875rem)}select.rfp-control{appearance:none;-webkit-appearance:none;padding-left:.75rem}.rfp__box>.rfp__chev,.rfp__box>.rfp__cal{position:absolute;top:50%;right:.75rem;z-index:1;transform:translateY(-50%);color:var(--muted-foreground);pointer-events:none}.rfp-date{padding-left:.75rem;font-weight:400}\n"] }]
|
|
1207
|
+
}], propDecorators: { field: [{
|
|
1208
|
+
type: Input,
|
|
1209
|
+
args: [{ required: true }]
|
|
1210
|
+
}], required: [{
|
|
1211
|
+
type: Input
|
|
1212
|
+
}], interactive: [{
|
|
1213
|
+
type: Input
|
|
1214
|
+
}], invalid: [{
|
|
1215
|
+
type: Input
|
|
1216
|
+
}], locked: [{
|
|
1217
|
+
type: Input
|
|
1218
|
+
}], value: [{
|
|
1219
|
+
type: Input
|
|
1220
|
+
}], valueChange: [{
|
|
1221
|
+
type: Output
|
|
1222
|
+
}] } });
|
|
1223
|
+
|
|
1224
|
+
/** Un oui / non en deux boutons, tel qu'il paraît dans l'en-tête d'une section. */
|
|
1225
|
+
class RfToggleComponent {
|
|
1226
|
+
value = true;
|
|
1227
|
+
yesLabel;
|
|
1228
|
+
noLabel;
|
|
1229
|
+
yesIcon = 'succes';
|
|
1230
|
+
noIcon = 'information';
|
|
1231
|
+
disabled = false;
|
|
1232
|
+
valueChange = new EventEmitter();
|
|
1233
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.26", ngImport: i0, type: RfToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1234
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.26", type: RfToggleComponent, isStandalone: true, selector: "rf-toggle", inputs: { value: "value", yesLabel: "yesLabel", noLabel: "noLabel", yesIcon: "yesIcon", noIcon: "noIcon", disabled: "disabled" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: `
|
|
1235
|
+
<div class="rf-toggle">
|
|
1236
|
+
<button type="button" class="rf-toggle__button" [class.is-active]="value" [disabled]="disabled" (click)="valueChange.emit(true)">
|
|
1237
|
+
<rf-icon [name]="yesIcon" />{{ yesLabel || 'Oui' }}
|
|
1238
|
+
</button>
|
|
1239
|
+
<button type="button" class="rf-toggle__button" [class.is-active]="!value" [disabled]="disabled" (click)="valueChange.emit(false)">
|
|
1240
|
+
<rf-icon [name]="noIcon" />{{ noLabel || 'Non' }}
|
|
1241
|
+
</button>
|
|
1242
|
+
</div>
|
|
1243
|
+
`, isInline: true, styles: ["rf-toggle{display:block;min-width:0}.rf-toggle{display:grid;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;min-width:0;padding:.25rem;border:1px solid var(--border);border-radius:calc(var(--radius) + .125rem);background:var(--muted)}.rf-toggle__button{display:inline-flex;min-width:0;min-height:var(--vehicle-control-height, 2.25rem);align-items:center;justify-content:center;gap:.25rem;padding:.375rem .75rem;border:0;border-radius:var(--radius);background:transparent;color:var(--muted-foreground);font:inherit;font-size:.8125rem;font-weight:600;line-height:1.25;cursor:pointer;transition:background-color .15s ease,color .15s ease,box-shadow .15s ease}.rf-toggle__button.is-active{background:var(--card);color:var(--foreground);box-shadow:0 1px 2px color-mix(in oklch,var(--foreground),transparent 90%)}.rf-toggle__button:disabled{cursor:not-allowed;opacity:.55}\n"], dependencies: [{ kind: "component", type: RfIconComponent, selector: "rf-icon", inputs: ["name"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
1244
|
+
}
|
|
1245
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.26", ngImport: i0, type: RfToggleComponent, decorators: [{
|
|
1246
|
+
type: Component,
|
|
1247
|
+
args: [{ selector: 'rf-toggle', standalone: true, imports: [RfIconComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: `
|
|
1248
|
+
<div class="rf-toggle">
|
|
1249
|
+
<button type="button" class="rf-toggle__button" [class.is-active]="value" [disabled]="disabled" (click)="valueChange.emit(true)">
|
|
1250
|
+
<rf-icon [name]="yesIcon" />{{ yesLabel || 'Oui' }}
|
|
1251
|
+
</button>
|
|
1252
|
+
<button type="button" class="rf-toggle__button" [class.is-active]="!value" [disabled]="disabled" (click)="valueChange.emit(false)">
|
|
1253
|
+
<rf-icon [name]="noIcon" />{{ noLabel || 'Non' }}
|
|
1254
|
+
</button>
|
|
1255
|
+
</div>
|
|
1256
|
+
`, styles: ["rf-toggle{display:block;min-width:0}.rf-toggle{display:grid;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;min-width:0;padding:.25rem;border:1px solid var(--border);border-radius:calc(var(--radius) + .125rem);background:var(--muted)}.rf-toggle__button{display:inline-flex;min-width:0;min-height:var(--vehicle-control-height, 2.25rem);align-items:center;justify-content:center;gap:.25rem;padding:.375rem .75rem;border:0;border-radius:var(--radius);background:transparent;color:var(--muted-foreground);font:inherit;font-size:.8125rem;font-weight:600;line-height:1.25;cursor:pointer;transition:background-color .15s ease,color .15s ease,box-shadow .15s ease}.rf-toggle__button.is-active{background:var(--card);color:var(--foreground);box-shadow:0 1px 2px color-mix(in oklch,var(--foreground),transparent 90%)}.rf-toggle__button:disabled{cursor:not-allowed;opacity:.55}\n"] }]
|
|
1257
|
+
}], propDecorators: { value: [{
|
|
1258
|
+
type: Input
|
|
1259
|
+
}], yesLabel: [{
|
|
1260
|
+
type: Input
|
|
1261
|
+
}], noLabel: [{
|
|
1262
|
+
type: Input
|
|
1263
|
+
}], yesIcon: [{
|
|
1264
|
+
type: Input
|
|
1265
|
+
}], noIcon: [{
|
|
1266
|
+
type: Input
|
|
1267
|
+
}], disabled: [{
|
|
1268
|
+
type: Input
|
|
1269
|
+
}], valueChange: [{
|
|
1270
|
+
type: Output
|
|
1271
|
+
}] } });
|
|
1272
|
+
|
|
1273
|
+
/**
|
|
1274
|
+
* Le conteneur du formulaire d'un risque : les sections s'y empilent, avec les mesures communes des contrôles
|
|
1275
|
+
* (`--vehicle-control-*`). `themed` pose des valeurs par défaut pour les jetons de couleur, quand l'hôte n'a pas
|
|
1276
|
+
* le thème du front métier (l'admin).
|
|
1277
|
+
*/
|
|
1278
|
+
class RfFormComponent {
|
|
1279
|
+
themed = false;
|
|
1280
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.26", ngImport: i0, type: RfFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1281
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.26", type: RfFormComponent, isStandalone: true, selector: "rf-form", inputs: { themed: "themed" }, host: { properties: { "class.rf-theme": "themed" }, classAttribute: "rf-form" }, ngImport: i0, template: '<ng-content />', isInline: true, styles: ["rf-form.rf-form{--vehicle-control-height: 2.25rem;--vehicle-control-bg: color-mix(in oklch, var(--card), var(--foreground) 2.5%);--vehicle-control-locked-bg: color-mix(in oklch, var(--card), var(--foreground) 5%);display:flex;min-width:0;flex-direction:column;gap:1rem;color:var(--foreground)}rf-form.rf-theme{--radius: .5rem;--foreground: #1e293b;--card: #ffffff;--muted: #f1f5f9;--muted-foreground: #64748b;--border: #e2e8f0;--input: #cbd5e1;--primary: #9bd564;--destructive: #dc2626;--popover: #ffffff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Noto Sans,Arial,sans-serif;font-size:14px;line-height:1.5}\n", ".rfp.rf--locked .rfp-control{border:1px solid var(--rfv-border, var(--border));border-radius:var(--rfv-radius, var(--radius));background:var(--rfv-locked-bg, color-mix(in oklch, var(--card), var(--foreground) 5%));color:var(--rfv-locked-fg, var(--foreground));-webkit-text-fill-color:var(--rfv-locked-fg, var(--foreground));opacity:1;padding-right:2.5rem}.rfp.rf--locked .rfp-input__text,.rfp.rf--locked .rfp-select__text,.rfp.rf--locked .rfp__box>rf-icon{color:var(--rfv-locked-fg, var(--foreground));font-weight:600}.rfp.rf--locked .rfp-chevron{display:none}.rfp-option--locked,.rfp-switch--locked{background:var(--rfv-locked-bg, color-mix(in oklch, var(--card), var(--foreground) 5%));border-color:var(--rfv-border, var(--border));opacity:1}.rf:not(:has(input,select,textarea,button,[role=combobox],hlm-select-trigger,hlm-combobox,hlm-checkbox,hlm-switch,app-date-picker,app-formatted-input)){display:none}\n", ".rf--locked>input[hlmInput],.rf--locked .rf-picker{box-sizing:border-box;height:var(--rfv-control-height, 2.25rem);font-size:.875rem;font-weight:600}.rf--locked>input[hlmInput],.rf--locked .rf-picker,.rf--locked hlm-select-trigger,.rf--locked app-date-picker input{border:1px solid var(--rfv-border, var(--border));border-radius:var(--rfv-radius, var(--radius));background:var(--rfv-locked-bg, color-mix(in oklch, var(--card), var(--foreground) 5%));color:var(--rfv-locked-fg, var(--foreground));-webkit-text-fill-color:var(--rfv-locked-fg, var(--foreground));opacity:1!important;cursor:not-allowed}.rf--locked.rf-option{min-height:var(--rfv-control-height, 2.25rem);border:1px solid var(--rfv-border, var(--border));border-radius:var(--rfv-radius, var(--radius));background:var(--rfv-locked-bg, color-mix(in oklch, var(--card), var(--foreground) 5%));color:var(--rfv-locked-fg, var(--foreground));opacity:1!important;cursor:not-allowed}.rf--locked hlm-select-trigger{display:flex;box-sizing:border-box;width:100%;height:var(--rfv-control-height, 2.25rem);align-items:center}.rf--locked hlm-select-trigger *,.rf--locked .rf-picker *,.rf--locked.rf-option *{opacity:1!important;color:var(--rfv-locked-fg, var(--foreground));-webkit-text-fill-color:var(--rfv-locked-fg, var(--foreground))}.rf--locked .rf__lock--cover{right:.75rem;background:var(--rfv-locked-bg, color-mix(in oklch, var(--card), var(--foreground) 5%));box-shadow:0 0 0 .3rem var(--rfv-locked-bg, color-mix(in oklch, var(--card), var(--foreground) 5%))}.rf--locked .rf__icon,.rf--locked .rf__lock{color:var(--rfv-locked-fg, var(--foreground))}.rfv-suggest{position:relative;z-index:20;box-sizing:border-box;max-height:16rem;margin-top:.25rem;padding:.25rem;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;border:1px solid var(--rfv-border, var(--border));border-radius:var(--rfv-radius, var(--radius));background:var(--card);color:var(--foreground);box-shadow:0 6px 16px -4px color-mix(in oklch,var(--foreground),transparent 85%)}.rfv-suggest__item{display:grid;width:100%;gap:.125rem;padding:.5rem .75rem;border:0;border-radius:calc(var(--rfv-radius, var(--radius)) - .125rem);background:transparent;color:var(--foreground);font:inherit;text-align:left;cursor:pointer;scroll-margin:.25rem}.rfv-suggest__item:hover,.rfv-suggest__item.is-active{background:var(--rfv-tint, color-mix(in oklch, var(--primary) 12%, var(--card)));color:var(--foreground)}.rfv-suggest__item.is-active{box-shadow:inset 2px 0 0 var(--primary)}.rfv-suggest__title{font-size:.875rem;font-weight:600;line-height:1.25rem}.rfv-suggest__line{color:var(--muted-foreground);font-size:.8125rem;line-height:1.125rem}.rfv-suggest__note{display:flex;align-items:center;gap:.5rem;margin:0;padding:.625rem .75rem;color:var(--muted-foreground);font-size:.875rem}.rfv-suggest__spinner{width:1rem;height:1rem;flex:0 0 1rem;border:2px solid color-mix(in oklch,var(--primary),transparent 70%);border-top-color:var(--primary);border-radius:50%;animation:rfv-spin .7s linear infinite}@keyframes rfv-spin{to{transform:rotate(360deg)}}.rfv-record{display:flex;min-width:0;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.625rem;padding:.75rem;border:1px solid color-mix(in oklch,var(--primary),transparent 62%);border-radius:var(--rfv-radius, var(--radius));background:color-mix(in oklch,var(--primary),var(--card) 94%)}.rfv-record__eyebrow{margin-bottom:.25rem;color:var(--primary);font-size:.6875rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase}.rfv-record__key{color:var(--foreground);font-weight:600}.rfv-record__line{color:var(--muted-foreground);font-size:.875rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
1282
|
+
}
|
|
1283
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.26", ngImport: i0, type: RfFormComponent, decorators: [{
|
|
1284
|
+
type: Component,
|
|
1285
|
+
args: [{ selector: 'rf-form', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: 'rf-form', '[class.rf-theme]': 'themed' }, template: '<ng-content />', styles: ["rf-form.rf-form{--vehicle-control-height: 2.25rem;--vehicle-control-bg: color-mix(in oklch, var(--card), var(--foreground) 2.5%);--vehicle-control-locked-bg: color-mix(in oklch, var(--card), var(--foreground) 5%);display:flex;min-width:0;flex-direction:column;gap:1rem;color:var(--foreground)}rf-form.rf-theme{--radius: .5rem;--foreground: #1e293b;--card: #ffffff;--muted: #f1f5f9;--muted-foreground: #64748b;--border: #e2e8f0;--input: #cbd5e1;--primary: #9bd564;--destructive: #dc2626;--popover: #ffffff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Noto Sans,Arial,sans-serif;font-size:14px;line-height:1.5}\n", ".rfp.rf--locked .rfp-control{border:1px solid var(--rfv-border, var(--border));border-radius:var(--rfv-radius, var(--radius));background:var(--rfv-locked-bg, color-mix(in oklch, var(--card), var(--foreground) 5%));color:var(--rfv-locked-fg, var(--foreground));-webkit-text-fill-color:var(--rfv-locked-fg, var(--foreground));opacity:1;padding-right:2.5rem}.rfp.rf--locked .rfp-input__text,.rfp.rf--locked .rfp-select__text,.rfp.rf--locked .rfp__box>rf-icon{color:var(--rfv-locked-fg, var(--foreground));font-weight:600}.rfp.rf--locked .rfp-chevron{display:none}.rfp-option--locked,.rfp-switch--locked{background:var(--rfv-locked-bg, color-mix(in oklch, var(--card), var(--foreground) 5%));border-color:var(--rfv-border, var(--border));opacity:1}.rf:not(:has(input,select,textarea,button,[role=combobox],hlm-select-trigger,hlm-combobox,hlm-checkbox,hlm-switch,app-date-picker,app-formatted-input)){display:none}\n", ".rf--locked>input[hlmInput],.rf--locked .rf-picker{box-sizing:border-box;height:var(--rfv-control-height, 2.25rem);font-size:.875rem;font-weight:600}.rf--locked>input[hlmInput],.rf--locked .rf-picker,.rf--locked hlm-select-trigger,.rf--locked app-date-picker input{border:1px solid var(--rfv-border, var(--border));border-radius:var(--rfv-radius, var(--radius));background:var(--rfv-locked-bg, color-mix(in oklch, var(--card), var(--foreground) 5%));color:var(--rfv-locked-fg, var(--foreground));-webkit-text-fill-color:var(--rfv-locked-fg, var(--foreground));opacity:1!important;cursor:not-allowed}.rf--locked.rf-option{min-height:var(--rfv-control-height, 2.25rem);border:1px solid var(--rfv-border, var(--border));border-radius:var(--rfv-radius, var(--radius));background:var(--rfv-locked-bg, color-mix(in oklch, var(--card), var(--foreground) 5%));color:var(--rfv-locked-fg, var(--foreground));opacity:1!important;cursor:not-allowed}.rf--locked hlm-select-trigger{display:flex;box-sizing:border-box;width:100%;height:var(--rfv-control-height, 2.25rem);align-items:center}.rf--locked hlm-select-trigger *,.rf--locked .rf-picker *,.rf--locked.rf-option *{opacity:1!important;color:var(--rfv-locked-fg, var(--foreground));-webkit-text-fill-color:var(--rfv-locked-fg, var(--foreground))}.rf--locked .rf__lock--cover{right:.75rem;background:var(--rfv-locked-bg, color-mix(in oklch, var(--card), var(--foreground) 5%));box-shadow:0 0 0 .3rem var(--rfv-locked-bg, color-mix(in oklch, var(--card), var(--foreground) 5%))}.rf--locked .rf__icon,.rf--locked .rf__lock{color:var(--rfv-locked-fg, var(--foreground))}.rfv-suggest{position:relative;z-index:20;box-sizing:border-box;max-height:16rem;margin-top:.25rem;padding:.25rem;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;border:1px solid var(--rfv-border, var(--border));border-radius:var(--rfv-radius, var(--radius));background:var(--card);color:var(--foreground);box-shadow:0 6px 16px -4px color-mix(in oklch,var(--foreground),transparent 85%)}.rfv-suggest__item{display:grid;width:100%;gap:.125rem;padding:.5rem .75rem;border:0;border-radius:calc(var(--rfv-radius, var(--radius)) - .125rem);background:transparent;color:var(--foreground);font:inherit;text-align:left;cursor:pointer;scroll-margin:.25rem}.rfv-suggest__item:hover,.rfv-suggest__item.is-active{background:var(--rfv-tint, color-mix(in oklch, var(--primary) 12%, var(--card)));color:var(--foreground)}.rfv-suggest__item.is-active{box-shadow:inset 2px 0 0 var(--primary)}.rfv-suggest__title{font-size:.875rem;font-weight:600;line-height:1.25rem}.rfv-suggest__line{color:var(--muted-foreground);font-size:.8125rem;line-height:1.125rem}.rfv-suggest__note{display:flex;align-items:center;gap:.5rem;margin:0;padding:.625rem .75rem;color:var(--muted-foreground);font-size:.875rem}.rfv-suggest__spinner{width:1rem;height:1rem;flex:0 0 1rem;border:2px solid color-mix(in oklch,var(--primary),transparent 70%);border-top-color:var(--primary);border-radius:50%;animation:rfv-spin .7s linear infinite}@keyframes rfv-spin{to{transform:rotate(360deg)}}.rfv-record{display:flex;min-width:0;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.625rem;padding:.75rem;border:1px solid color-mix(in oklch,var(--primary),transparent 62%);border-radius:var(--rfv-radius, var(--radius));background:color-mix(in oklch,var(--primary),var(--card) 94%)}.rfv-record__eyebrow{margin-bottom:.25rem;color:var(--primary);font-size:.6875rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase}.rfv-record__key{color:var(--foreground);font-weight:600}.rfv-record__line{color:var(--muted-foreground);font-size:.875rem}\n"] }]
|
|
1286
|
+
}], propDecorators: { themed: [{
|
|
1287
|
+
type: Input
|
|
1288
|
+
}] } });
|
|
1289
|
+
|
|
1290
|
+
/**
|
|
1291
|
+
* La liste de suggestions d'un champ à recherche dans un registre. Une seule source de vérité visuelle : les classes
|
|
1292
|
+
* `.rfv-suggest*` de `risk-form-visual-rules.scss` (aucune dépendance à Tailwind ni à spartan). Le champ garde le focus ;
|
|
1293
|
+
* la navigation au clavier passe par {@link move} et {@link pickActive}, appelées par le champ.
|
|
1294
|
+
*/
|
|
1295
|
+
class RiskSuggestionsComponent {
|
|
1296
|
+
_items = [];
|
|
1297
|
+
set items(value) { this._items = value ?? []; this.active = -1; }
|
|
1298
|
+
get items() { return this._items; }
|
|
1299
|
+
busy = false;
|
|
1300
|
+
picked = new EventEmitter();
|
|
1301
|
+
entries;
|
|
1302
|
+
/** L'entrée active (clavier ou survol) ; -1 : aucune. */
|
|
1303
|
+
active = -1;
|
|
1304
|
+
/** Descend (+1) ou monte (-1) d'une entrée, en boucle, et la garde visible. */
|
|
1305
|
+
move(delta) {
|
|
1306
|
+
if (!this._items.length)
|
|
1307
|
+
return;
|
|
1308
|
+
this.active = (this.active + delta + this._items.length) % this._items.length;
|
|
1309
|
+
this.entries.get(this.active)?.nativeElement.scrollIntoView({ block: 'nearest' });
|
|
1310
|
+
}
|
|
1311
|
+
/** Choisit l'entrée active ; faux s'il n'y en a pas (le champ fait alors sa recherche exacte). */
|
|
1312
|
+
pickActive() {
|
|
1313
|
+
const item = this._items[this.active];
|
|
1314
|
+
if (!item)
|
|
1315
|
+
return false;
|
|
1316
|
+
this.picked.emit(item);
|
|
1317
|
+
return true;
|
|
1318
|
+
}
|
|
1319
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.26", ngImport: i0, type: RiskSuggestionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1320
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.26", type: RiskSuggestionsComponent, isStandalone: true, selector: "app-risk-suggestions", inputs: { items: "items", busy: "busy" }, outputs: { picked: "picked" }, viewQueries: [{ propertyName: "entries", predicate: ["entry"], descendants: true }], ngImport: i0, template: `
|
|
1321
|
+
<div class="rfv-suggest" role="listbox" [attr.aria-busy]="busy">
|
|
1322
|
+
@if (busy) {
|
|
1323
|
+
<div class="rfv-suggest__note" role="status"><span class="rfv-suggest__spinner" aria-hidden="true"></span>Recherche…</div>
|
|
1324
|
+
}
|
|
1325
|
+
@if (!busy && items.length === 0) {
|
|
1326
|
+
<p class="rfv-suggest__note" role="status">Aucun résultat</p>
|
|
1327
|
+
}
|
|
1328
|
+
<!-- mousedown retenu : le champ garde le focus, sinon sa sortie fermerait la liste avant le clic. -->
|
|
1329
|
+
@for (item of items; track item.key; let i = $index) {
|
|
1330
|
+
<button #entry type="button" role="option" class="rfv-suggest__item" [class.is-active]="i === active" [attr.aria-selected]="i === active"
|
|
1331
|
+
(mousedown)="$event.preventDefault()" (mouseenter)="active = i" (click)="picked.emit(item)">
|
|
1332
|
+
@for (line of item.lines; track $index) {
|
|
1333
|
+
<span [class]="$first ? 'rfv-suggest__title' : 'rfv-suggest__line'">{{ line }}</span>
|
|
1334
|
+
}
|
|
1335
|
+
</button>
|
|
1336
|
+
}
|
|
1337
|
+
</div>`, isInline: true });
|
|
1338
|
+
}
|
|
1339
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.26", ngImport: i0, type: RiskSuggestionsComponent, decorators: [{
|
|
1340
|
+
type: Component,
|
|
1341
|
+
args: [{
|
|
1342
|
+
selector: 'app-risk-suggestions',
|
|
1343
|
+
standalone: true,
|
|
1344
|
+
template: `
|
|
1345
|
+
<div class="rfv-suggest" role="listbox" [attr.aria-busy]="busy">
|
|
1346
|
+
@if (busy) {
|
|
1347
|
+
<div class="rfv-suggest__note" role="status"><span class="rfv-suggest__spinner" aria-hidden="true"></span>Recherche…</div>
|
|
1348
|
+
}
|
|
1349
|
+
@if (!busy && items.length === 0) {
|
|
1350
|
+
<p class="rfv-suggest__note" role="status">Aucun résultat</p>
|
|
1351
|
+
}
|
|
1352
|
+
<!-- mousedown retenu : le champ garde le focus, sinon sa sortie fermerait la liste avant le clic. -->
|
|
1353
|
+
@for (item of items; track item.key; let i = $index) {
|
|
1354
|
+
<button #entry type="button" role="option" class="rfv-suggest__item" [class.is-active]="i === active" [attr.aria-selected]="i === active"
|
|
1355
|
+
(mousedown)="$event.preventDefault()" (mouseenter)="active = i" (click)="picked.emit(item)">
|
|
1356
|
+
@for (line of item.lines; track $index) {
|
|
1357
|
+
<span [class]="$first ? 'rfv-suggest__title' : 'rfv-suggest__line'">{{ line }}</span>
|
|
1358
|
+
}
|
|
1359
|
+
</button>
|
|
1360
|
+
}
|
|
1361
|
+
</div>`,
|
|
1362
|
+
}]
|
|
1363
|
+
}], propDecorators: { items: [{
|
|
1364
|
+
type: Input
|
|
1365
|
+
}], busy: [{
|
|
1366
|
+
type: Input
|
|
1367
|
+
}], picked: [{
|
|
1368
|
+
type: Output
|
|
1369
|
+
}], entries: [{
|
|
1370
|
+
type: ViewChildren,
|
|
1371
|
+
args: ['entry']
|
|
1372
|
+
}] } });
|
|
1373
|
+
|
|
1374
|
+
/** Tout ce qu'un composant (ou un module) importe pour dessiner le formulaire d'un risque. */
|
|
1375
|
+
const RISK_FORM_IMPORTS = [
|
|
1376
|
+
RfFormComponent, RfSectionComponent, RfFieldTemplateDirective, RfHeaderTemplateDirective, RfAfterTemplateDirective,
|
|
1377
|
+
RfEmptyTemplateDirective, RfFieldPreviewComponent, RfToggleComponent, RfIconComponent, RiskSuggestionsComponent,
|
|
1378
|
+
];
|
|
1379
|
+
|
|
1380
|
+
/**
|
|
1381
|
+
* Generated bundle index. Do not edit.
|
|
1382
|
+
*/
|
|
1383
|
+
|
|
1384
|
+
export { DEFAULT_COLUMNS, ICON_CATALOG, ICON_SVG, MAX_COLUMNS, RISK_FORM_IMPORTS, RfAfterTemplateDirective, RfEmptyTemplateDirective, RfFieldPreviewComponent, RfFieldTemplateDirective, RfFormComponent, RfHeaderTemplateDirective, RfIconComponent, RfSectionComponent, RfToggleComponent, RiskSuggestionsComponent, buildGroups, fieldHint, fieldSpan, isHiddenInForm, midSpan, rescaleSpan, resolveRiskIcon, riskIconSvg, sectionColumns, stableGroups, widthChoices, widthLabel };
|
|
1385
|
+
//# sourceMappingURL=zeitune-sasu-risk-form.mjs.map
|