@1024pix/epreuves-components 4.1.0 → 4.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/dist/Button.ce-Dvxeebpx.js +31 -0
  2. package/dist/{ButtonTooltip.ce-BnJlaEqx.js → ButtonTooltip.ce-WwOarMJq.js} +1 -1
  3. package/dist/Cross.ce.vue_vue_type_script_setup_true_lang-DVLRq2sO.js +53 -0
  4. package/dist/Feedback.ce-CnZRBGWf.js +26 -0
  5. package/dist/{FocusManager.ce-DHXwg6WZ.js → FocusManager.ce-Cv3wYF9s.js} +2 -2
  6. package/dist/{LLMMessage.ce-jLEqjxsl.js → LLMMessage.ce-B7EwoHy2.js} +4 -4
  7. package/dist/{Loading.ce-DDtlSLlu.js → Loading.ce-Dv2gEjXm.js} +1 -1
  8. package/dist/{NavigationButton.ce-BnnVUwGr.js → NavigationButton.ce-D8_YC96l.js} +2 -2
  9. package/dist/{PixMailMessage.ce-oCccQFGV.js → PixMailMessage.ce-TnjyOfiH.js} +141 -137
  10. package/dist/{Popin.ce-Co12R3C8.js → Popin.ce-BPnBZykQ.js} +3 -3
  11. package/dist/{Retry-C7C78Wpj.js → Retry-C3g7zhz8.js} +1 -1
  12. package/dist/{Stepper.ce-Dttf3Dsf.js → Stepper.ce-DEMN02yr.js} +1 -1
  13. package/dist/{_plugin-vue_export-helper-B-lVMTio.js → _plugin-vue_export-helper-Dz58mCLm.js} +4 -4
  14. package/dist/components/analyse-mails-phishing.ce.js.js +9 -8
  15. package/dist/components/button.ce.js.js +4 -0
  16. package/dist/components/calcul-impact.ce.js.js +8 -8
  17. package/dist/components/capacity-calculation.ce.js.js +124 -137
  18. package/dist/components/clickable-image.ce.js.js +1 -1
  19. package/dist/components/complete-phrase.ce.js.js +12 -12
  20. package/dist/components/feedback.ce.js.js +4 -0
  21. package/dist/components/flip-cards.ce.js.js +7 -7
  22. package/dist/components/image-quiz.ce.js.js +3 -3
  23. package/dist/components/image-quizzes.ce.js.js +3 -3
  24. package/dist/components/llm-compare-messages.ce.js.js +3 -3
  25. package/dist/components/llm-messages.ce.js.js +3 -3
  26. package/dist/components/llm-prompt-select.ce.js.js +6 -6
  27. package/dist/components/mdp-classement.ce.js.js +20 -19
  28. package/dist/components/message-conversation.ce.js.js +10 -10
  29. package/dist/components/mobile-shell.ce.js.js +1 -1
  30. package/dist/components/phishing-message.ce.js.js +60 -61
  31. package/dist/components/phishing-notification.ce.js.js +4 -4
  32. package/dist/components/pix-anonymisation.ce.js.js +79 -85
  33. package/dist/components/pix-article.ce.js.js +2 -2
  34. package/dist/components/pix-carousel.ce.js.js +4 -4
  35. package/dist/components/pix-combinaisons.ce.js.js +96 -96
  36. package/dist/components/pix-cursor.ce.js.js +10 -10
  37. package/dist/components/pix-mail-message.ce.js.js +4 -4
  38. package/dist/components/proteger-mail-spam.ce.js.js +15 -14
  39. package/dist/components/qcm-deepfake.ce.js.js +41 -41
  40. package/dist/components/quiz-stepper.ce.js.js +30 -29
  41. package/dist/components/select-conversation.ce.js.js +6 -6
  42. package/dist/components/template-mail.ce.js.js +4 -4
  43. package/dist/components/test-top-mdp.ce.js.js +11 -12
  44. package/dist/components/trouver-mdp-rs.ce.js.js +97 -96
  45. package/dist/components/usages-donnees.ce.js.js +183 -0
  46. package/dist/{i18n-CsT7k7zW.js → i18n-H4HokXDX.js} +1 -1
  47. package/dist/{i18n-lite-BIJ2LVs6.js → i18n-lite-CzqISEWm.js} +1 -1
  48. package/dist/{image-quiz.ce-BK6-8YF1.js → image-quiz.ce-C-iI27gD.js} +49 -44
  49. package/dist/{index-BaI3Qosp.js → index-BUPiE5WR.js} +1 -1
  50. package/dist/index.js +2 -1
  51. package/dist/metadata.js +11 -7
  52. package/dist/nl-euPrf5s3.js +21 -0
  53. package/dist/props.examples.js +36 -33
  54. package/dist/schema.js +38 -29
  55. package/dist/{shadow-dom-Bouq869n.js → shadow-dom-D54WF-WZ.js} +1 -1
  56. package/package.json +1 -1
  57. package/dist/Button.ce-DZ8jDtW5.js +0 -27
  58. package/dist/Cross.ce.vue_vue_type_script_setup_true_lang-l4hAa4eW.js +0 -75
  59. package/dist/nl-Bonww6Q2.js +0 -13
@@ -0,0 +1,183 @@
1
+ import { _ as j, s as P, o as n, c as l, a as t, v, l as C, t as w, B as D, x as o, b as M, h as O, r as B, K as U, F as m, e as h, f as x, m as y, D as V, E as k, g as d, n as G, d as K } from "../_plugin-vue_export-helper-Dz58mCLm.js";
2
+ import { u as Z, i as S } from "../i18n-lite-CzqISEWm.js";
3
+ import { B as H } from "../Button.ce-Dvxeebpx.js";
4
+ const J = {
5
+ "usages-donnees": { "instruction-step-1": "Parmi les éléments suivants, séléctionnez ceux qui correspondent à ce que vous avez sur votre appareil.", "instruction-step-2": "Parmi les éléments suivants, séléctionnez ceux qui correspondent à ce que vous faites en ligne.", "step-a11y": "Étape {{currentStep}} sur {{total}}", next: "Suivant", result: "Voir mon bilan", "locale-choice-title": "Ce que vous avez sur votre appareil", "cloud-choice-title": "Ce que vous faites en ligne", "last-step": { "title-1": "Données et usages avec plus de valeur", "title-2": "Données et usages avec moins de valeur", content: { "line-1": "Certaines données et certains usages ont beaucoup de valeur pour les pirates, d’autres ont moins de valeur.", "line-2": "Par exemple, en accédant à ces informations, les pirates peuvent : {{bold1}} à vos différents services en ligne ou vous demander {{bold2}} (une rançon) pour réparer les dégâts qu'ils ont causés.", "bold-1": "récupérer des données importantes, accéder", "bold-2": "de l'argent" } } }
6
+ }, Q = "data:image/svg+xml,%3csvg%20width='11'%20height='8'%20viewBox='0%200%2011%208'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M3.61484%205.80617L9.19317%200.227833C9.34506%200.0759442%209.52317%200%209.7275%200C9.93184%200%2010.11%200.0759442%2010.262%200.227833C10.4139%200.379833%2010.4898%200.560111%2010.4898%200.768667C10.4898%200.977222%2010.4139%201.1575%2010.262%201.3095L4.14934%207.43483C3.99734%207.58672%203.81917%207.66267%203.61484%207.66267C3.41051%207.66267%203.23234%207.58672%203.08034%207.43483L0.221671%204.57617C0.0697825%204.42417%20-0.00405093%204.24389%200.000171293%204.03533C0.00439352%203.82678%200.0824491%203.6465%200.234338%203.4945C0.386338%203.34261%200.566616%203.26667%200.775171%203.26667C0.983727%203.26667%201.164%203.34261%201.316%203.4945L3.61484%205.80617Z'%20fill='%23212A37'/%3e%3c/svg%3e", W = "label[data-v-e33c94f6]{position:relative;display:flex;align-items:center;gap:6px;border-radius:8px}label[data-v-e33c94f6]:not(.readonly):hover{cursor:pointer}label .custom-input[data-v-e33c94f6]{display:flex;justify-content:center;align-items:center;min-width:16px;aspect-ratio:1;background-color:#fff;border:1px solid #000}label .custom-input img[data-v-e33c94f6]{width:10px}label input:focus~.custom-input[data-v-e33c94f6]{outline:2px solid black}.variant-a[data-v-e33c94f6]{background:#eaf1ff;padding:14px}.variant-a.is-checked[data-v-e33c94f6]{background:#2c75ff;color:#fff}.variant-b[data-v-e33c94f6],.variant-c[data-v-e33c94f6]{border-left:4px solid #c8cfd9;background:#f9f9f9;padding:8px 12px}.variant-b.is-checked[data-v-e33c94f6]{border-left:4px solid #ffdc76;background:#fffaeb}.variant-c.is-checked[data-v-e33c94f6]{border-left:4px solid #72a3ff;background:#eaf1ff}", X = ["for"], Y = ["id", "checked", "readonly"], ee = ["src"], te = {
7
+ __name: "CustomCheckbox.ce",
8
+ props: {
9
+ label: String,
10
+ isSelected: Boolean,
11
+ index: Number,
12
+ variant: {
13
+ type: String,
14
+ default: "a"
15
+ },
16
+ readonly: {
17
+ type: Boolean,
18
+ default: !1
19
+ }
20
+ },
21
+ emits: ["select"],
22
+ setup(a, { emit: b }) {
23
+ const c = P(), p = b;
24
+ function s(r) {
25
+ a.readonly || p("select", r.target.checked, a.index);
26
+ }
27
+ return (r, $) => (n(), l("label", {
28
+ for: v(c),
29
+ class: w({ "is-checked": a.isSelected, [`variant-${a.variant}`]: !0, readonly: a.readonly })
30
+ }, [
31
+ t("input", {
32
+ id: v(c),
33
+ checked: a.isSelected,
34
+ readonly: a.readonly,
35
+ type: "checkbox",
36
+ class: "sr-only",
37
+ onChange: s
38
+ }, null, 40, Y),
39
+ t("span", {
40
+ class: w(["custom-input", { "is-checked": a.isSelected }])
41
+ }, [
42
+ a.isSelected ? (n(), l("img", {
43
+ key: 0,
44
+ src: v(Q),
45
+ alt: ""
46
+ }, null, 8, ee)) : C("", !0)
47
+ ], 2),
48
+ D(" " + o(a.label), 1)
49
+ ], 10, X));
50
+ }
51
+ }, _ = /* @__PURE__ */ j(te, [["styles", [W]], ["__scopeId", "data-v-e33c94f6"]]), ae = {
52
+ key: 0,
53
+ class: "instruction"
54
+ }, se = { key: 1 }, ne = { class: "title" }, oe = { class: "stepper" }, le = { class: "sr-only" }, re = { "aria-hidden": "true" }, ce = { class: "checkbox-group" }, ie = {
55
+ key: 2,
56
+ class: "result"
57
+ }, de = {
58
+ class: "legend",
59
+ style: { "--color": "#ffcb33" }
60
+ }, ue = { class: "title" }, fe = { class: "checkbox-group" }, pe = {
61
+ class: "legend",
62
+ style: { "--color": "#2c75ff" }
63
+ }, be = { class: "title" }, ge = { class: "checkbox-group" }, ve = {
64
+ key: 3,
65
+ class: "feedback"
66
+ }, me = /* @__PURE__ */ M({
67
+ __name: "UsagesDonnees.ce",
68
+ props: {
69
+ localeChoices: { type: Array },
70
+ cloudChoices: { type: Array }
71
+ },
72
+ setup(a, { expose: b }) {
73
+ const { t: c } = Z(), p = O("wrapper"), s = B(1), r = B({
74
+ 1: a.localeChoices.map((e) => ({ ...e, isSelected: !1 })),
75
+ 2: a.cloudChoices.map((e) => ({ ...e, isSelected: !1 }))
76
+ }), $ = d(() => Object.values(r.value).flatMap((e) => e).filter((e) => e.hasValue).sort(z)), N = d(() => Object.values(r.value).flatMap((e) => e).filter((e) => !e.hasValue).sort(z)), q = d(() => s.value === 1 ? c("usages-donnees.locale-choice-title") : c("usages-donnees.cloud-choice-title")), R = d(() => s.value === 1 ? c("usages-donnees.next") : c("usages-donnees.result")), A = d(() => c(`usages-donnees.instruction-step-${s.value}`)), g = d(() => s.value === 3), L = d(() => !r.value[s.value]?.some(({ isSelected: e }) => e));
77
+ function z(e, u) {
78
+ return e.isSelected && u.isSelected ? 0 : e.isSelected ? -1 : u.isSelected ? 1 : 0;
79
+ }
80
+ function E() {
81
+ r.value = {
82
+ 1: a.localeChoices.map((e) => ({ ...e, isSelected: !1 })),
83
+ 2: a.cloudChoices.map((e) => ({ ...e, isSelected: !1 }))
84
+ }, s.value = 1;
85
+ }
86
+ function T(e, u) {
87
+ r.value[s.value][u].isSelected = e;
88
+ }
89
+ async function F() {
90
+ s.value++, await G(), p.value.focus();
91
+ }
92
+ return b({
93
+ reset: E
94
+ }), (e, u) => {
95
+ const I = U("i18n");
96
+ return n(), l("div", {
97
+ ref_key: "wrapper",
98
+ ref: p,
99
+ class: w(["wrapper", [`step-${s.value}`]]),
100
+ tabindex: "-1"
101
+ }, [
102
+ g.value ? C("", !0) : (n(), l("p", ae, o(A.value), 1)),
103
+ g.value ? (n(), l("form", ie, [
104
+ t("fieldset", null, [
105
+ t("legend", de, [
106
+ t("span", ue, o(e.$t("usages-donnees.last-step.title-1")), 1)
107
+ ]),
108
+ t("div", fe, [
109
+ (n(!0), l(m, null, h($.value, (i, f) => (n(), x(_, y({
110
+ key: i.label
111
+ }, { ref_for: !0 }, i, {
112
+ readonly: !0,
113
+ index: f,
114
+ variant: "b"
115
+ }), null, 16, ["index"]))), 128))
116
+ ])
117
+ ]),
118
+ t("fieldset", null, [
119
+ t("legend", pe, [
120
+ t("span", be, o(e.$t("usages-donnees.last-step.title-2")), 1)
121
+ ]),
122
+ t("div", ge, [
123
+ (n(!0), l(m, null, h(N.value, (i, f) => (n(), x(_, y({
124
+ key: i.label
125
+ }, { ref_for: !0 }, i, {
126
+ readonly: !0,
127
+ index: f,
128
+ variant: "c"
129
+ }), null, 16, ["index"]))), 128))
130
+ ])
131
+ ])
132
+ ])) : (n(), l("form", se, [
133
+ t("fieldset", null, [
134
+ t("legend", null, [
135
+ t("span", ne, o(q.value), 1),
136
+ t("span", oe, [
137
+ t("span", le, o(e.$t("usages-donnees.step-a11y", { currentStep: s.value, total: 2 })), 1),
138
+ t("span", re, o(s.value) + "/2", 1)
139
+ ])
140
+ ]),
141
+ t("div", ce, [
142
+ (n(!0), l(m, null, h(r.value[s.value], (i, f) => (n(), x(_, y({
143
+ key: i.label
144
+ }, { ref_for: !0 }, i, {
145
+ index: f,
146
+ onSelect: T
147
+ }), null, 16, ["index"]))), 128))
148
+ ])
149
+ ]),
150
+ V(H, {
151
+ class: "pix-button",
152
+ onClick: F,
153
+ "is-disabled": L.value
154
+ }, {
155
+ default: k(() => [
156
+ D(o(R.value), 1)
157
+ ]),
158
+ _: 1
159
+ }, 8, ["is-disabled"])
160
+ ])),
161
+ g.value ? (n(), l("p", ve, [
162
+ t("span", null, o(e.$t("usages-donnees.last-step.content.line-1")), 1),
163
+ V(I, { t: "usages-donnees.last-step.content.line-2" }, {
164
+ bold1: k(() => [
165
+ t("strong", null, o(e.$t("usages-donnees.last-step.content.bold-1")), 1)
166
+ ]),
167
+ bold2: k(() => [
168
+ t("strong", null, o(e.$t("usages-donnees.last-step.content.bold-2")), 1)
169
+ ]),
170
+ _: 1
171
+ })
172
+ ])) : C("", !0)
173
+ ], 2);
174
+ };
175
+ }
176
+ }), he = "*{--text-blue: #122647;--background-blue: #253858;font-family:Nunito,Roboto,sans-serif;font-size:14px}h1,h2,h3,h4,h5,h6{color:var(--text-blue);font-family:Nunito,sans-serif}h2{color:var(--text-blue);font-size:20px}p,a,span,li{color:var(--text-blue);font-family:Roboto,sans-serif}button{border-radius:8px;background:var(--background-blue);font-weight:700;font-size:16px}button:disabled{background:#c8cfd9}input{border-radius:10px;border:#cdd1d9;background:#f4f5f7}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}ol,ul{list-style:none}table{border-collapse:collapse;border-spacing:0}*{box-sizing:border-box;font-family:Nunito,Roboto,sans-serif;color:#122647}", xe = '.wrapper[data-v-aef3c1bd]{padding:0 24px 24px}.wrapper.step-3[data-v-aef3c1bd]{padding-top:24px}.instruction[data-v-aef3c1bd]{margin:0 0 24px}form[data-v-aef3c1bd]{padding:16px 24px;border-radius:16px;background-color:#fff;box-shadow:0 2px 5px #4a3aff40,0 -2px 5px #4a3aff26 inset,0 1px 1px #ffffff1a inset,0 3px 4px #dfeeff1a inset}fieldset[data-v-aef3c1bd]{border:none;padding:0}legend[data-v-aef3c1bd]{width:100%;display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}legend .title[data-v-aef3c1bd]{font-size:1.25rem;font-weight:800}legend .stepper[data-v-aef3c1bd]{display:flex;justify-content:center;align-items:center;align-self:center;border-radius:50%;background:#bde4ff;min-width:38px;aspect-ratio:1;font-family:Roboto,sans-serif;font-size:.875rem;font-weight:700}.checkbox-group[data-v-aef3c1bd]{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:24px}.pix-button[data-v-aef3c1bd]{display:block;margin:0 auto}.result fieldset[data-v-aef3c1bd]:first-child{margin-bottom:24px}.result .legend[data-v-aef3c1bd]{justify-content:start;gap:8px}.result .legend[data-v-aef3c1bd]:before{content:"";position:relative;top:2px;background-color:var(--color);border-radius:50%;min-width:12px;aspect-ratio:1;align-self:center}.result .checkbox-group[data-v-aef3c1bd]{grid-template-columns:repeat(4,1fr)}.feedback[data-v-aef3c1bd]{border-radius:8px;background:#eaf1ff;padding:8px;margin:16px 0 0}.feedback[data-v-aef3c1bd],.feedback span[data-v-aef3c1bd]{font-family:Roboto,sans-serif;font-size:.75rem;line-height:1.125rem}.feedback span[data-v-aef3c1bd]{display:block;margin-bottom:.4rem}@media screen and (max-width:874px){.result .checkbox-group[data-v-aef3c1bd]{grid-template-columns:repeat(2,1fr)}}@media screen and (max-width:576px){.checkbox-group[data-v-aef3c1bd]{grid-template-columns:1fr;gap:8px}.result .checkbox-group[data-v-aef3c1bd]{grid-template-columns:1fr}}', ye = /* @__PURE__ */ j(me, [["styles", [he, xe]], ["__scopeId", "data-v-aef3c1bd"]]);
177
+ S.addTranslationsFromGlobResults(/* @__PURE__ */ Object.assign({ "./locales/fr.json": J }));
178
+ const ke = K(ye, {
179
+ configureApp(a) {
180
+ S.changeLanguage(document?.documentElement?.lang || navigator.language), a.use(S);
181
+ }
182
+ });
183
+ window.customElements.define("usages-donnees", ke);
@@ -1,4 +1,4 @@
1
- import { n as Re, b as Ce, A as Pe, i as $e } from "./_plugin-vue_export-helper-B-lVMTio.js";
1
+ import { n as Re, b as Ce, A as Pe, i as $e } from "./_plugin-vue_export-helper-Dz58mCLm.js";
2
2
  const d = (a) => typeof a == "string", K = () => {
3
3
  let a, e;
4
4
  const t = new Promise((i, s) => {
@@ -1,4 +1,4 @@
1
- import { b as f, i as g } from "./_plugin-vue_export-helper-B-lVMTio.js";
1
+ import { b as f, i as g } from "./_plugin-vue_export-helper-Dz58mCLm.js";
2
2
  const c = /* @__PURE__ */ Symbol("i18n-lite"), o = /* @__PURE__ */ Symbol("isPluralized"), a = /\{\{\s*(\w+)\s*}}/g;
3
3
  class l {
4
4
  static #s = "fr";
@@ -1,6 +1,6 @@
1
- import { b as j, s as P, o, c as m, N as x, y as v, v as s, t as z, a as b, m as F, x as C, r as k, _ as q, w as Q, h as D, l as M, F as H, e as K, f as R, g as c, d as N } from "./_plugin-vue_export-helper-B-lVMTio.js";
1
+ import { b as P, s as k, o, c as m, N as x, y, v as s, t as z, a as v, m as F, x as C, r as q, _ as B, w as Q, h as D, l as M, F as H, e as K, f as R, g as c, d as N } from "./_plugin-vue_export-helper-Dz58mCLm.js";
2
2
  import { s as G } from "./shuffled-B8VGTceh.js";
3
- import { u as Z, i as g } from "./i18n-lite-BIJ2LVs6.js";
3
+ import { u as Z, i as g } from "./i18n-lite-CzqISEWm.js";
4
4
  import { a as w, u as J, b as U } from "./normalize-props-DH0oPBss.js";
5
5
  const W = {}, X = {
6
6
  "image-quiz": { multipleInstruction: "Select several answers.", multipleValidity: "To validate, select at least two answers. Otherwise, skip.", validity: "To validate, select an answer. Otherwise, skip." }
@@ -8,13 +8,13 @@ const W = {}, X = {
8
8
  "image-quiz": { multipleInstruction: "Seleccione varias respuestas.", multipleValidity: "Para validar, seleccione al menos dos respuestas. Si no es así, sáltese.", validity: "Para confirmar, seleccione una respuesta. De lo contrario, salte." }
9
9
  }, ee = {
10
10
  "image-quiz": { multipleInstruction: "Seleccione varias respuestas.", multipleValidity: "Para validar, seleccione al menos dos respuestas. Si no es así, sáltese.", validity: "Para confirmar, seleccione una respuesta. De lo contrario, salte." }
11
- }, ie = {}, te = {
11
+ }, ie = {}, ae = {
12
12
  "image-quiz": { multipleInstruction: "Sélectionnez plusieurs réponses.", multipleValidity: "Pour valider, sélectionnez au moins deux réponses. Sinon, passez.", validity: "Pour valider, sélectionnez une réponse. Sinon, passez." }
13
- }, ae = {
13
+ }, te = {
14
14
  "image-quiz": { multipleInstruction: "Selezionare diverse risposte.", multipleValidity: "Per convalidare, selezionare almeno due risposte. In caso contrario, saltare.", validity: "Per confermare, selezionare una risposta. Altrimenti, saltare." }
15
15
  }, ne = {
16
16
  "image-quiz": { multipleInstruction: "Selecteer meerdere antwoorden.", multipleValidity: "Selecteer ten minste twee antwoorden om te bevestigen. Zo niet, sla dan over.", validity: "Selecteer een antwoord om te bevestigen. Sla anders over." }
17
- }, oe = ["aria-labelledby", "aria-selected", "tabindex"], se = { key: 0 }, le = ["id"], re = ["id"], ce = /* @__PURE__ */ j({
17
+ }, oe = ["aria-labelledby", "aria-selected", "readonly", "aria-readonly", "tabindex"], se = { key: 0 }, le = ["id"], re = ["id"], ce = /* @__PURE__ */ P({
18
18
  __name: "ImageOption.ce",
19
19
  props: {
20
20
  choice: { type: Object },
@@ -22,37 +22,40 @@ const W = {}, X = {
22
22
  imageClass: { type: String },
23
23
  nameClass: { type: String },
24
24
  selected: { type: Boolean },
25
- tabFocusable: { type: Boolean }
25
+ tabFocusable: { type: Boolean },
26
+ readonly: { type: Boolean }
26
27
  },
27
28
  emits: ["toggle", "next", "previous"],
28
29
  setup(e, { expose: n }) {
29
- const y = e, p = k();
30
+ const b = e, p = q();
30
31
  function f() {
31
32
  p.value.focus();
32
33
  }
33
34
  n({ focus: f });
34
- const u = P();
35
- return (a, t) => (o(), m("div", {
35
+ const u = k();
36
+ return (t, a) => (o(), m("div", {
36
37
  ref_key: "el",
37
38
  ref: p,
38
39
  role: "option",
39
- class: z(["image-option", `image-option--max${y.maxChoicesPerLine}`]),
40
+ class: z(["image-option", `image-option--max${b.maxChoicesPerLine}`]),
40
41
  "aria-labelledby": s(u),
41
42
  "aria-selected": e.selected,
43
+ readonly: e.readonly,
44
+ "aria-readonly": e.readonly,
42
45
  tabindex: e.tabFocusable ? 0 : -1,
43
- onClick: t[0] || (t[0] = v((l) => a.$emit("toggle"), ["stop"])),
46
+ onClick: a[0] || (a[0] = y((l) => t.$emit("toggle"), ["stop"])),
44
47
  onKeydown: [
45
- t[1] || (t[1] = x(v((l) => a.$emit("toggle"), ["stop", "prevent"]), ["space"])),
46
- t[2] || (t[2] = x(v((l) => a.$emit("previous"), ["stop", "prevent"]), ["up", "left"])),
47
- t[3] || (t[3] = x(v((l) => a.$emit("next"), ["stop", "prevent"]), ["down", "right"]))
48
+ a[1] || (a[1] = x(y((l) => t.$emit("toggle"), ["stop", "prevent"]), ["space"])),
49
+ a[2] || (a[2] = x(y((l) => t.$emit("previous"), ["stop", "prevent"]), ["up", "left"])),
50
+ a[3] || (a[3] = x(y((l) => t.$emit("next"), ["stop", "prevent"]), ["down", "right"]))
48
51
  ]
49
52
  }, [
50
53
  e.choice.image ? (o(), m("figure", se, [
51
- b("img", F(e.choice.image, {
54
+ v("img", F(e.choice.image, {
52
55
  class: e.imageClass,
53
56
  alt: ""
54
57
  }), null, 16),
55
- b("figcaption", {
58
+ v("figcaption", {
56
59
  class: z(e.nameClass),
57
60
  id: s(u)
58
61
  }, C(e.choice.name), 11, le)
@@ -62,7 +65,7 @@ const W = {}, X = {
62
65
  }, C(e.choice.name), 9, re))
63
66
  ], 42, oe));
64
67
  }
65
- }), me = '.image-option{display:flex;position:relative;flex-direction:column;align-items:center;justify-content:center;margin:.5rem;border:solid 2px #c1c7d0;border-radius:10px;background:#fff;width:calc(20% - 2em);min-width:150px;padding:1rem}.image-option--max4{width:calc(25% - 2em);min-width:175px}.image-option--max3{width:calc(33% - 2em)}.image-option--max2{width:calc(50% - 2em);min-width:300px}.image-option--max1{width:calc(100% - 4em);min-width:300px}.image-option:hover{cursor:pointer;box-shadow:0 3px 10px #0000001a;transform:scale(1.04);transition:transform ease-in .1s}.image-option:focus{outline:none;box-shadow:5px 5px #ffbe00,-5px 5px #ffbe00,5px -5px #ffbe00,-5px -5px #ffbe00}.image-option[aria-selected=true]{border-color:#3d68ff}.image-option[aria-selected=true]:after{content:"";position:absolute;width:calc(100% + 2px);height:calc(100% + 2px);background:#3d68ff4d;border-radius:10px;z-index:3}.image-option figure{align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center;margin:0;text-align:center;width:100%}.image-option figure img{max-width:100%;height:auto}.image-option figure img.icon{max-height:100px;width:auto}.image-option figure img.medium{max-width:50%;height:auto}.image-option figure figcaption{margin:1ex}', ue = /* @__PURE__ */ q(ce, [["styles", [me]]]), de = { class: "image-quiz-container" }, ge = ["id", "innerHTML"], pe = ["id"], fe = ["aria-multiselectable", "aria-labelledby", "aria-describedby"], he = /* @__PURE__ */ j({
68
+ }), me = '.image-option{display:flex;position:relative;flex-direction:column;align-items:center;justify-content:center;margin:.5rem;border:solid 2px #c1c7d0;border-radius:10px;background:#fff;width:calc(20% - 2em);min-width:150px;padding:1rem}.image-option--max4{width:calc(25% - 2em);min-width:175px}.image-option--max3{width:calc(33% - 2em)}.image-option--max2{width:calc(50% - 2em);min-width:300px}.image-option--max1{width:calc(100% - 4em);min-width:300px}.image-option:hover{cursor:pointer;box-shadow:0 3px 10px #0000001a;transform:scale(1.04);transition:transform ease-in .1s}.image-option:focus{outline:none;box-shadow:5px 5px #ffbe00,-5px 5px #ffbe00,5px -5px #ffbe00,-5px -5px #ffbe00}.image-option[aria-selected=true]{border-color:#3d68ff}.image-option[aria-selected=true]:after{content:"";position:absolute;width:calc(100% + 2px);height:calc(100% + 2px);background:#3d68ff4d;border-radius:10px;z-index:3}.image-option figure{align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center;margin:0;text-align:center;width:100%}.image-option figure img{max-width:100%;height:auto}.image-option figure img.icon{max-height:100px;width:auto}.image-option figure img.medium{max-width:50%;height:auto}.image-option figure figcaption{margin:1ex}', ue = /* @__PURE__ */ B(ce, [["styles", [me]]]), de = { class: "image-quiz-container" }, ge = ["id", "innerHTML"], pe = ["id"], fe = ["aria-multiselectable", "aria-labelledby", "aria-describedby"], he = /* @__PURE__ */ P({
66
69
  __name: "ImageQuiz.ce",
67
70
  props: {
68
71
  multiple: { type: Boolean, default: !1 },
@@ -73,37 +76,38 @@ const W = {}, X = {
73
76
  orderChoices: { type: Boolean },
74
77
  imageChoicesSize: { default: "icon", type: String },
75
78
  showName: { type: Boolean, default: !1 },
76
- context: { type: String }
79
+ context: { type: String },
80
+ readonly: { type: Boolean, default: !1 }
77
81
  },
78
82
  emits: ["answer"],
79
83
  setup(e, { emit: n }) {
80
- const y = n, p = c(() => e.hideChoicesName ? "sr-only" : ""), f = c(() => e.orderChoices ? e.choices : G(e.choices)), u = c(() => e.multiple && e.context !== "pix-junior"), a = k(new Array(e.choices.length).fill(!1)), t = c(() => f.value.filter((i, d) => a.value[d])), { t: l } = Z(), E = c(() => {
84
+ const b = n, p = c(() => e.hideChoicesName ? "sr-only" : ""), f = c(() => e.orderChoices ? e.choices : G(e.choices)), u = c(() => e.multiple && e.context !== "pix-junior"), t = q(new Array(e.choices.length).fill(!1)), a = c(() => f.value.filter((i, d) => t.value[d])), { t: l } = Z(), E = c(() => {
81
85
  if (e.multiple)
82
- return t.value.length < 2 ? { answer: "", validity: l("image-quiz.multipleValidity") } : {
83
- answer: t.value.map((d) => d.response ?? d.name).sort().join(","),
86
+ return a.value.length < 2 ? { answer: "", validity: l("image-quiz.multipleValidity") } : {
87
+ answer: a.value.map((d) => d.response ?? d.name).sort().join(","),
84
88
  validity: ""
85
89
  };
86
- const i = t.value[0];
90
+ const i = a.value[0];
87
91
  return i ? {
88
92
  answer: i?.response ?? i?.name ?? "",
89
93
  validity: ""
90
94
  } : { answer: "", validity: l("image-quiz.validity") };
91
- }), h = P();
95
+ }), h = k();
92
96
  Q(() => {
93
- y("answer", E.value);
97
+ b("answer", E.value);
94
98
  });
95
99
  const O = c(() => {
96
- const i = a.value.indexOf(!0);
100
+ const i = t.value.indexOf(!0);
97
101
  return i === -1 ? 0 : i;
98
102
  }), S = D("options");
99
103
  function $(i) {
100
- e.multiple || a.value.fill(!1), a.value[i] = !a.value[i];
104
+ e.readonly || (e.multiple || t.value.fill(!1), t.value[i] = !t.value[i]);
101
105
  }
102
106
  function I(i) {
103
107
  i = (i + e.choices.length) % e.choices.length, e.multiple || $(i), S.value[i].focus();
104
108
  }
105
109
  return (i, d) => (o(), m("div", de, [
106
- b("label", {
110
+ v("label", {
107
111
  id: s(h),
108
112
  class: z(["image-quiz-label", { "sr-only": !e.showName }]),
109
113
  innerHTML: e.name
@@ -113,7 +117,7 @@ const W = {}, X = {
113
117
  class: "image-quiz-multiple-instruction",
114
118
  id: `${s(h)}-instruction`
115
119
  }, C(i.$t("image-quiz.multipleInstruction")), 9, pe)) : M("", !0),
116
- b("div", {
120
+ v("div", {
117
121
  role: "listbox",
118
122
  class: "image-quiz",
119
123
  "aria-multiselectable": e.multiple,
@@ -130,18 +134,19 @@ const W = {}, X = {
130
134
  key: r,
131
135
  "name-class": p.value,
132
136
  "image-class": e.imageChoicesSize,
133
- selected: a.value[r],
137
+ selected: t.value[r],
138
+ readonly: e.readonly,
134
139
  "tab-focusable": r === O.value,
135
- onToggle: (_) => $(r),
136
- onNext: (_) => I(r + 1),
137
- onPrevious: (_) => I(r - 1)
138
- }, null, 8, ["choice", "max-choices-per-line", "name-class", "image-class", "selected", "tab-focusable", "onToggle", "onNext", "onPrevious"]))), 128))
140
+ onToggle: (j) => $(r),
141
+ onNext: (j) => I(r + 1),
142
+ onPrevious: (j) => I(r - 1)
143
+ }, null, 8, ["choice", "max-choices-per-line", "name-class", "image-class", "selected", "readonly", "tab-focusable", "onToggle", "onNext", "onPrevious"]))), 128))
139
144
  ], 8, fe)
140
145
  ]));
141
146
  }
142
- }), ve = "*{box-sizing:border-box}.image-quiz-label{font-size:1.25rem;margin:1rem 0;display:inline-block}.image-quiz-multiple-instruction{font-size:14px;margin:0 16px 5px}.image-quiz-container{padding:10px 0}.image-quiz{display:flex;flex-wrap:wrap;justify-content:space-around}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);border:0}", B = /* @__PURE__ */ q(he, [["styles", [ve]]]);
143
- g.addTranslationsFromGlobResults(/* @__PURE__ */ Object.assign({ "./locales/de-AT.json": W, "./locales/en.json": X, "./locales/es-419.json": Y, "./locales/es.json": ee, "./locales/fr-BE.json": ie, "./locales/fr.json": te, "./locales/it.json": ae, "./locales/nl.json": ne }));
144
- function L(e) {
147
+ }), ye = "*{box-sizing:border-box}.image-quiz-label{font-size:1.25rem;margin:1rem 0;display:inline-block}.image-quiz-multiple-instruction{font-size:14px;margin:0 16px 5px}.image-quiz-container{padding:10px 0}.image-quiz{display:flex;flex-wrap:wrap;justify-content:space-around}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);border:0}", L = /* @__PURE__ */ B(he, [["styles", [ye]]]);
148
+ g.addTranslationsFromGlobResults(/* @__PURE__ */ Object.assign({ "./locales/de-AT.json": W, "./locales/en.json": X, "./locales/es-419.json": Y, "./locales/es.json": ee, "./locales/fr-BE.json": ie, "./locales/fr.json": ae, "./locales/it.json": te, "./locales/nl.json": ne }));
149
+ function _(e) {
145
150
  return {
146
151
  ...e,
147
152
  maxChoicesPerLine: U(e.maxChoicesPerLine),
@@ -154,29 +159,29 @@ function L(e) {
154
159
  }))
155
160
  };
156
161
  }
157
- const T = N(B, {
162
+ const T = N(L, {
158
163
  configureApp(e) {
159
164
  g.changeLanguage(document?.documentElement?.lang || navigator.language), e.use(g);
160
165
  }
161
166
  });
162
- T.prototype.normalizeProps = L;
167
+ T.prototype.normalizeProps = _;
163
168
  window.customElements.define("image-quiz", T);
164
- const V = N(B, {
169
+ const V = N(L, {
165
170
  configureApp(e) {
166
171
  g.changeLanguage(document?.documentElement?.lang || navigator.language), e.use(g);
167
172
  }
168
173
  });
169
- V.prototype.normalizeProps = L;
174
+ V.prototype.normalizeProps = _;
170
175
  window.customElements.define("qcu-image", V);
171
176
  export {
172
- B as I,
177
+ L as I,
173
178
  ne as _,
174
- ae as a,
175
- te as b,
179
+ te as a,
180
+ ae as b,
176
181
  ie as c,
177
182
  ee as d,
178
183
  Y as e,
179
184
  X as f,
180
185
  W as g,
181
- L as n
186
+ _ as n
182
187
  };
@@ -1,4 +1,4 @@
1
- import { i as o } from "./i18n-lite-BIJ2LVs6.js";
1
+ import { i as o } from "./i18n-lite-CzqISEWm.js";
2
2
  const s = {}, _ = {}, t = {}, e = {}, l = {}, n = { step: "Étape {{step}} sur {{stepsCount}}" }, c = {
3
3
  stepper: n
4
4
  }, a = {}, i = {};
package/dist/index.js CHANGED
@@ -4,7 +4,7 @@ import "./components/capacity-calculation.ce.js.js";
4
4
  import "./components/clickable-image.ce.js.js";
5
5
  import "./components/complete-phrase.ce.js.js";
6
6
  import "./components/flip-cards.ce.js.js";
7
- import "./image-quiz.ce-BK6-8YF1.js";
7
+ import "./image-quiz.ce-C-iI27gD.js";
8
8
  import "./components/image-quizzes.ce.js.js";
9
9
  import "./components/message-conversation.ce.js.js";
10
10
  import "./components/mdp-classement.ce.js.js";
@@ -26,3 +26,4 @@ import "./components/select-conversation.ce.js.js";
26
26
  import "./components/template-mail.ce.js.js";
27
27
  import "./components/test-top-mdp.ce.js.js";
28
28
  import "./components/trouver-mdp-rs.ce.js.js";
29
+ import "./components/usages-donnees.ce.js.js";
package/dist/metadata.js CHANGED
@@ -15,10 +15,10 @@ const e = "usable", c = {
15
15
  accessibility: y,
16
16
  isInteractive: v,
17
17
  mobileUsability: $
18
- }, p = "accessible", I = !0, U = "not-recommended", g = {
18
+ }, p = "accessible", I = !0, g = "not-recommended", U = {
19
19
  accessibility: p,
20
20
  isInteractive: I,
21
- mobileUsability: U
21
+ mobileUsability: g
22
22
  }, d = "accessible", j = !0, h = "usable", f = {
23
23
  accessibility: d,
24
24
  isInteractive: j,
@@ -71,9 +71,9 @@ const e = "usable", c = {
71
71
  accessibility: $i,
72
72
  isInteractive: ui,
73
73
  mobileUsability: pi
74
- }, Ui = "accessible", gi = !1, di = "usable", ji = {
75
- accessibility: Ui,
76
- isInteractive: gi,
74
+ }, gi = "accessible", Ui = !1, di = "usable", ji = {
75
+ accessibility: gi,
76
+ isInteractive: Ui,
77
77
  mobileUsability: di
78
78
  }, hi = "accessible", fi = !0, xi = "usable", qi = {
79
79
  accessibility: hi,
@@ -111,10 +111,14 @@ const e = "usable", c = {
111
111
  accessibility: ss,
112
112
  isInteractive: ts,
113
113
  mobileUsability: es
114
- }, as = /* @__PURE__ */ Object.assign({ "./analyse-mails-phishing/analyse-mails-phishing.metadata.json": c, "./calcul-impact/calcul-impact.metadata.json": b, "./capacity-calculation/capacity-calculation.metadata.json": r, "./clickable-image/clickable-image.metadata.json": u, "./complete-phrase/complete-phrase.metadata.json": g, "./flip-cards/flip-cards.metadata.json": f, "./image-quiz/image-quiz.metadata.json": z, "./image-quiz/image-quizzes.metadata.json": A, "./mdp-classement/mdp-classement.metadata.json": F, "./message-conversation/message-conversation.metadata.json": K, "./phishing-message/phishing-message.metadata.json": P, "./phishing-notification/phishing-notification.metadata.json": T, "./pix-anonymisation/pix-anonymisation.metadata.json": Y, "./pix-article/pix-article.metadata.json": ti, "./pix-carousel/pix-carousel.metadata.json": li, "./pix-combinaisons/pix-combinaisons.metadata.json": mi, "./pix-cursor/pix-cursor.metadata.json": vi, "./pix-llm/llm-compare-messages.metadata.json": Ii, "./pix-llm/llm-messages.metadata.json": ji, "./pix-llm/llm-prompt-select.metadata.json": qi, "./pix-mail-message/pix-mail-message.metadata.json": Ei, "./proteger-mail-spam/proteger-mail-spam.metadata.json": Ci, "./qcm-deepfake/qcm-deepfake.metadata.json": Hi, "./quiz-stepper/quiz-stepper.metadata.json": Mi, "./select-conversation/select-conversation.metadata.json": Ri, "./template-mail/template-mail.metadata.json": Wi, "./test-top-mdp/test-top-mdp.metadata.json": is, "./trouver-mdp-rs/trouver-mdp-rs.metadata.json": cs }), ls = Object.fromEntries(Object.entries(as).map(([i, s]) => [
114
+ }, as = "accessible", ls = !0, os = "usable", bs = {
115
+ accessibility: as,
116
+ isInteractive: ls,
117
+ mobileUsability: os
118
+ }, ns = /* @__PURE__ */ Object.assign({ "./analyse-mails-phishing/analyse-mails-phishing.metadata.json": c, "./calcul-impact/calcul-impact.metadata.json": b, "./capacity-calculation/capacity-calculation.metadata.json": r, "./clickable-image/clickable-image.metadata.json": u, "./complete-phrase/complete-phrase.metadata.json": U, "./flip-cards/flip-cards.metadata.json": f, "./image-quiz/image-quiz.metadata.json": z, "./image-quiz/image-quizzes.metadata.json": A, "./mdp-classement/mdp-classement.metadata.json": F, "./message-conversation/message-conversation.metadata.json": K, "./phishing-message/phishing-message.metadata.json": P, "./phishing-notification/phishing-notification.metadata.json": T, "./pix-anonymisation/pix-anonymisation.metadata.json": Y, "./pix-article/pix-article.metadata.json": ti, "./pix-carousel/pix-carousel.metadata.json": li, "./pix-combinaisons/pix-combinaisons.metadata.json": mi, "./pix-cursor/pix-cursor.metadata.json": vi, "./pix-llm/llm-compare-messages.metadata.json": Ii, "./pix-llm/llm-messages.metadata.json": ji, "./pix-llm/llm-prompt-select.metadata.json": qi, "./pix-mail-message/pix-mail-message.metadata.json": Ei, "./proteger-mail-spam/proteger-mail-spam.metadata.json": Ci, "./qcm-deepfake/qcm-deepfake.metadata.json": Hi, "./quiz-stepper/quiz-stepper.metadata.json": Mi, "./select-conversation/select-conversation.metadata.json": Ri, "./template-mail/template-mail.metadata.json": Wi, "./test-top-mdp/test-top-mdp.metadata.json": is, "./trouver-mdp-rs/trouver-mdp-rs.metadata.json": cs, "./usages-donnees/usages-donnees.metadata.json": bs }), ms = Object.fromEntries(Object.entries(ns).map(([i, s]) => [
115
119
  i.replace(/^.*\/([^/]+)\.metadata\.json$/, "$1"),
116
120
  s
117
121
  ]));
118
122
  export {
119
- ls as metadata
123
+ ms as metadata
120
124
  };
@@ -0,0 +1,21 @@
1
+ const e = {
2
+ "pix-mail-message": { actions: { blockSender: "Absender blockieren", delete: "Löschen", forward: "Transfer", markAsUnread: "Als ungelesen markieren", menu: "Menü", reply: "Antworten", reportSpam: "Als unerwünscht melden", return: "zurück" }, details: "Details anzeigen", previousHeader: "Die {{ date }} unter {{time}}, {{ name }}", toMe: "An mich" }
3
+ }, r = {
4
+ "pix-mail-message": { actions: { blockSender: "Block sender", delete: "Delete", forward: "Forward", markAsUnread: "Mark as unread", menu: "Menu", reply: "Reply", reportSpam: "Report as unwanted", return: "back" }, details: "View details", previousHeader: "Visit {{ date }} at {{time}}, {{ name }}", toMe: "To me" }
5
+ }, a = {}, n = {
6
+ "pix-mail-message": { actions: { blockSender: "Bloquear al remitente", delete: "Eliminar", forward: "Reenviar", markAsUnread: "Marcar como no leído", menu: "menú", reply: "Responder", reportSpam: "Informar como indeseable", return: "volver" }, details: "Mostrar detalles", previousHeader: "Visite {{ date }} en {{time}}, {{ name }}", toMe: "A mí" }
7
+ }, t = {}, o = {
8
+ "pix-mail-message": { actions: { reply: "Répondre", forward: "Transférer", menu: "menu", delete: "Supprimer", blockSender: "Bloquer l’expéditeur", markAsUnread: "Marquer comme non lu", reportSpam: "Signaler comme indésirable", return: "Retour" }, toMe: "À moi", details: "Afficher les détails", previousHeader: "Le {{ date }} à {{time}}, {{ name }}" }
9
+ }, i = {
10
+ "pix-mail-message": { actions: { blockSender: "Bloccare il mittente", delete: "Cancellare", forward: "Trasferimenti", markAsUnread: "Segna come non letto", menu: "menu", reply: "Rispondi a", reportSpam: "Segnalazione come indesiderabile", return: "ritorna" }, details: "Mostra i dettagli", previousHeader: "Visitate {{ date }} su {{time}}, {{ name }}", toMe: "Per me" }
11
+ }, s = {};
12
+ export {
13
+ s as _,
14
+ i as a,
15
+ o as b,
16
+ t as c,
17
+ n as d,
18
+ a as e,
19
+ r as f,
20
+ e as g
21
+ };