desy-html 13.0.1 → 14.0.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/docs/_include.template-header.njk +5 -0
- package/docs/_macro.example-render.njk +5 -0
- package/docs/componentes.html +3 -0
- package/docs/ds/_ds.example.checkboxes.njk +1 -1
- package/docs/ds/_ds.example.date-input.njk +3 -3
- package/docs/ds/_ds.example.file-upload.njk +1 -1
- package/docs/ds/_ds.example.input-group.njk +1 -1
- package/docs/ds/_ds.example.input.njk +5 -5
- package/docs/ds/_ds.example.radios.njk +1 -1
- package/docs/ds/_ds.example.searchbar.njk +1 -1
- package/docs/ds/_ds.example.select.njk +5 -5
- package/docs/ds/_ds.example.textarea.njk +7 -7
- package/docs/examples-treegrid.html +8 -0
- package/docs/index.html +8 -0
- package/gulpfile.js +15 -1
- package/package.json +2 -1
- package/src/css/styles.css +1 -0
- package/src/js/aria/MenuNavigation.js +12 -3
- package/src/js/aria/tree.js +320 -31
- package/src/js/aria/treegrid.js +508 -0
- package/src/js/aria/treeitem.js +25 -19
- package/src/js/desy-html.js +37 -31
- package/src/js/index.js +12 -10
- package/src/templates/components/character-count/_examples.character-count.njk +3 -15
- package/src/templates/components/checkboxes/_examples.checkboxes.njk +67 -86
- package/src/templates/components/date-input/_examples.date-input.njk +15 -15
- package/src/templates/components/datepicker/_examples.datepicker.njk +7 -6
- package/src/templates/components/datepicker/_template.datepicker.njk +0 -1
- package/src/templates/components/description-list/_examples.description-list.njk +2 -2
- package/src/templates/components/dialog/_examples.dialog.njk +2 -2
- package/src/templates/components/dropdown/_examples.dropdown.njk +3 -3
- package/src/templates/components/error-message/_examples.error-message.njk +4 -2
- package/src/templates/components/error-summary/params.error-summary.yaml +0 -3
- package/src/templates/components/fieldset/_examples.fieldset.njk +2 -29
- package/src/templates/components/file-upload/_examples.file-upload.njk +4 -15
- package/src/templates/components/header-advanced/_template.header-advanced.njk +1 -0
- package/src/templates/components/hint/params.hint.yaml +0 -14
- package/src/templates/components/input/_examples.input.njk +9 -45
- package/src/templates/components/input-group/_examples.input-group.njk +19 -18
- package/src/templates/components/item/_examples.item.njk +1 -0
- package/src/templates/components/media-object/_examples.media-object.njk +6 -5
- package/src/templates/components/menubar/_template.menubar.njk +2 -2
- package/src/templates/components/menubar/params.menubar.yaml +0 -10
- package/src/templates/components/modal/_examples.modal.njk +1 -1
- package/src/templates/components/notification/_examples.notification.njk +8 -2
- package/src/templates/components/pill/_examples.pill.njk +2 -1
- package/src/templates/components/radios/_examples.radios.njk +56 -91
- package/src/templates/components/searchbar/_examples.searchbar.njk +2 -1
- package/src/templates/components/select/_examples.select.njk +3 -29
- package/src/templates/components/status-item/_examples.status-item.njk +1 -0
- package/src/templates/components/table-advanced/params.table-advanced.yaml +1 -1
- package/src/templates/components/textarea/_examples.textarea.njk +3 -14
- package/src/templates/components/tree/_examples.tree.njk +157 -3
- package/src/templates/components/tree/_template.tree.njk +112 -101
- package/src/templates/components/tree/params.tree.yaml +4 -0
- package/src/templates/components/treegrid/_examples.treegrid.njk +1240 -0
- package/src/templates/components/treegrid/_macro.treegrid.njk +3 -0
- package/src/templates/components/treegrid/_styles.treegrid.css +39 -0
- package/src/templates/components/treegrid/_template.treegrid.njk +91 -0
- package/src/templates/components/treegrid/params.treegrid.yaml +132 -0
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
{% set examples = [
|
|
3
3
|
{
|
|
4
4
|
"name": "por defecto",
|
|
5
|
+
"description": "Recuerda que los pills, por accesibilidad, deben estar rodeados de una etiqueta semántica, normalmente un <code><li></code>.",
|
|
5
6
|
"data": {
|
|
6
7
|
"text": "Pill por defecto"
|
|
7
8
|
}
|
|
@@ -49,7 +50,7 @@
|
|
|
49
50
|
},
|
|
50
51
|
{
|
|
51
52
|
"name": "Peque",
|
|
52
|
-
"description": "Usa las clases de tamaño de texto para establecer el tamaño.",
|
|
53
|
+
"description": "Usa las clases de tamaño de texto para establecer el tamaño. Recuerda que los pills, por accesibilidad, deben estar rodeados de una etiqueta semántica, normalmente un <code><li></code>",
|
|
53
54
|
"data": {
|
|
54
55
|
"text": "Peque pill",
|
|
55
56
|
"classes": "text-sm"
|
|
@@ -1,37 +1,65 @@
|
|
|
1
|
+
{% from "components/fieldset/_macro.fieldset.njk" import componentFieldset %}
|
|
1
2
|
{% from "components/input/_macro.input.njk" import componentInput %}
|
|
2
3
|
{% from "components/radios/_macro.radios.njk" import componentRadios %}
|
|
3
4
|
|
|
4
5
|
{% macro telefonoContent(id='id') %}
|
|
5
|
-
{
|
|
6
|
-
"
|
|
7
|
-
"text": "
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
{% call componentFieldset({
|
|
7
|
+
"legend": {
|
|
8
|
+
"text": "¿Cuál es tu número de teléfono fijo?",
|
|
9
|
+
"classes": "mb-sm sr-only"
|
|
10
|
+
}
|
|
11
|
+
}) %}
|
|
12
|
+
<div class="c-form-group">
|
|
13
|
+
{{ componentInput({
|
|
14
|
+
"label": {
|
|
15
|
+
"text": "Número de teléfono fijo"
|
|
16
|
+
},
|
|
17
|
+
"id": "telefono-" + id,
|
|
18
|
+
"name": "telefono-name-" + id
|
|
19
|
+
}) }}
|
|
20
|
+
</div>
|
|
21
|
+
{% endcall %}
|
|
12
22
|
{% endmacro %}
|
|
13
23
|
|
|
14
24
|
{% macro mobileContent(id='id') %}
|
|
15
|
-
{
|
|
16
|
-
"
|
|
17
|
-
"text": "
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
25
|
+
{% call componentFieldset({
|
|
26
|
+
"legend": {
|
|
27
|
+
"text": "¿Cuál es tu número de teléfono móvil?",
|
|
28
|
+
"classes": "mb-sm sr-only"
|
|
29
|
+
}
|
|
30
|
+
}) %}
|
|
31
|
+
<div class="c-form-group">
|
|
32
|
+
{{ componentInput({
|
|
33
|
+
"label": {
|
|
34
|
+
"text": "Número de teléfono móvil"
|
|
35
|
+
},
|
|
36
|
+
"id": "mobile-" + id,
|
|
37
|
+
"name": "mobile-name-" + id
|
|
38
|
+
}) }}
|
|
39
|
+
</div>
|
|
40
|
+
{% endcall %}
|
|
22
41
|
{% endmacro %}
|
|
23
42
|
|
|
24
43
|
{% macro mobileErrorContent(id='id') %}
|
|
25
|
-
{
|
|
26
|
-
"
|
|
27
|
-
"text": "
|
|
28
|
-
|
|
29
|
-
"id": "input-with-error-message-" + id,
|
|
30
|
-
"name": "test-name-" + id,
|
|
31
|
-
"errorMessage": {
|
|
32
|
-
"text": "Error: Este campo no puede estar vacío"
|
|
44
|
+
{% call componentFieldset({
|
|
45
|
+
"legend": {
|
|
46
|
+
"text": "¿Cuál es tu número de teléfono móvil?",
|
|
47
|
+
"classes": "mb-sm sr-only"
|
|
33
48
|
}
|
|
34
|
-
|
|
49
|
+
}) %}
|
|
50
|
+
<div class="c-form-group">
|
|
51
|
+
{{ componentInput({
|
|
52
|
+
"label": {
|
|
53
|
+
"text": "Número de teléfono móvil"
|
|
54
|
+
},
|
|
55
|
+
"id": "input-with-error-message-" + id,
|
|
56
|
+
"name": "test-name-" + id,
|
|
57
|
+
"errorMessage": {
|
|
58
|
+
"text": "Este campo no puede estar vacío"
|
|
59
|
+
}
|
|
60
|
+
}) }}
|
|
61
|
+
</div>
|
|
62
|
+
{% endcall %}
|
|
35
63
|
{% endmacro %}
|
|
36
64
|
|
|
37
65
|
{% macro grandchildContent(id='id') %}
|
|
@@ -357,6 +385,7 @@
|
|
|
357
385
|
},
|
|
358
386
|
{
|
|
359
387
|
"name": "sin fieldset",
|
|
388
|
+
"description": "Usa este ejemplo si vas a escribir tú mismo un fieldset, rodeándolo. Recuerda que el uso de fieldset es necesario por accesibilidad.",
|
|
360
389
|
"data": {
|
|
361
390
|
"idPrefix": "without-fieldset",
|
|
362
391
|
"name": "without-fieldset",
|
|
@@ -382,7 +411,7 @@
|
|
|
382
411
|
"idPrefix": "fieldset-and-error",
|
|
383
412
|
"name": "fieldset-and-error",
|
|
384
413
|
"errorMessage": {
|
|
385
|
-
"text": "
|
|
414
|
+
"text": "Tienes que seleccionar al menos una opción"
|
|
386
415
|
},
|
|
387
416
|
"fieldset": {
|
|
388
417
|
"legend": {
|
|
@@ -411,7 +440,7 @@
|
|
|
411
440
|
"text": "Nullam id dolor id nibh ultricies vehicula ut id elit."
|
|
412
441
|
},
|
|
413
442
|
"errorMessage": {
|
|
414
|
-
"text": "
|
|
443
|
+
"text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit."
|
|
415
444
|
},
|
|
416
445
|
"fieldset": {
|
|
417
446
|
"legend": {
|
|
@@ -436,6 +465,7 @@
|
|
|
436
465
|
},
|
|
437
466
|
{
|
|
438
467
|
"name": "con items condicionales",
|
|
468
|
+
"description": "El contenido de cada condicional es una agrupación, y como tal, se deben agrupar con una etiqueta <code><fieldset></code> o bien de una etiqueta <code><div></code> con <code>role=\"group\"</code> que tenga un <code>aria-label</code> o <code>aria-labelledby</code>.",
|
|
439
469
|
"data": {
|
|
440
470
|
"idPrefix": "conditional-items",
|
|
441
471
|
"name": "conditional-items",
|
|
@@ -467,74 +497,9 @@
|
|
|
467
497
|
]
|
|
468
498
|
}
|
|
469
499
|
},
|
|
470
|
-
{
|
|
471
|
-
"name": "con items condicionales anidados",
|
|
472
|
-
"data": {
|
|
473
|
-
"idPrefix": "with-conditional-nested-items",
|
|
474
|
-
"name": "with-conditional-nested-items",
|
|
475
|
-
"fieldset": {
|
|
476
|
-
"legend": {
|
|
477
|
-
"text": "¿Cómo quieres que te contactemos?"
|
|
478
|
-
}
|
|
479
|
-
},
|
|
480
|
-
"items": [
|
|
481
|
-
{
|
|
482
|
-
"value": "presencial",
|
|
483
|
-
"text": "Presencial",
|
|
484
|
-
"checked": true,
|
|
485
|
-
"conditional": {
|
|
486
|
-
"html": nestedContent('1').val
|
|
487
|
-
}
|
|
488
|
-
},
|
|
489
|
-
{
|
|
490
|
-
"value": "telefono",
|
|
491
|
-
"text": "Por teléfono"
|
|
492
|
-
}
|
|
493
|
-
]
|
|
494
|
-
}
|
|
495
|
-
},
|
|
496
|
-
{
|
|
497
|
-
"name": "en línea con items condicionales",
|
|
498
|
-
"data": {
|
|
499
|
-
"classes": "flex",
|
|
500
|
-
"idPrefix": "inline-with-conditional",
|
|
501
|
-
"name": "inline-with-conditional",
|
|
502
|
-
"fieldset": {
|
|
503
|
-
"legend": {
|
|
504
|
-
"text": "¿Cómo quieres que te contactemos?"
|
|
505
|
-
}
|
|
506
|
-
},
|
|
507
|
-
"items": [
|
|
508
|
-
{
|
|
509
|
-
"value": "correo-electronico",
|
|
510
|
-
"text": "Correo electrónico",
|
|
511
|
-
"classes": "mr-sm",
|
|
512
|
-
"conditional": {
|
|
513
|
-
"html": telefonoContent('3').val
|
|
514
|
-
}
|
|
515
|
-
},
|
|
516
|
-
{
|
|
517
|
-
"value": "telefono",
|
|
518
|
-
"text": "Teléfono",
|
|
519
|
-
"classes": "mr-sm",
|
|
520
|
-
"checked": true,
|
|
521
|
-
"conditional": {
|
|
522
|
-
"html": mobileContent('3').val
|
|
523
|
-
}
|
|
524
|
-
},
|
|
525
|
-
{
|
|
526
|
-
"value": "mensaje-SMS",
|
|
527
|
-
"text": "Mensaje SMS",
|
|
528
|
-
"classes": "mr-sm",
|
|
529
|
-
"conditional": {
|
|
530
|
-
"html": mobileContent('4').val
|
|
531
|
-
}
|
|
532
|
-
}
|
|
533
|
-
]
|
|
534
|
-
}
|
|
535
|
-
},
|
|
536
500
|
{
|
|
537
501
|
"name": "con item condicional seleccionado",
|
|
502
|
+
"description": "Usa el parámetro <code>'checked': true</code> para mostrar un item condicional seleccionado. El contenido de cada condicional es una agrupación, y como tal, se deben agrupar con una etiqueta <code><fieldset></code> o bien de una etiqueta <code><div></code> con <code>role=\"group\"</code> que tenga un <code>aria-label</code> o <code>aria-labelledby</code>.",
|
|
538
503
|
"data": {
|
|
539
504
|
"idPrefix": "conditional-item-checked",
|
|
540
505
|
"name": "conditional-item-checked",
|
|
@@ -32,13 +32,14 @@
|
|
|
32
32
|
},
|
|
33
33
|
{
|
|
34
34
|
"name": "Con mensaje de error",
|
|
35
|
+
"description": "Por accesibilidad, los mensajes de error deben incluir la palabra \"error\", para que no recaiga tan sólo en el color el hecho de que es un mensaje de error.",
|
|
35
36
|
"data": {
|
|
36
37
|
"id": "searchbar-4",
|
|
37
38
|
"label": {
|
|
38
39
|
"text": "Buscar"
|
|
39
40
|
},
|
|
40
41
|
"errorMessage": {
|
|
41
|
-
"text": "
|
|
42
|
+
"text": "Esto es un mensaje de error",
|
|
42
43
|
"classes": "mt-xs"
|
|
43
44
|
}
|
|
44
45
|
}
|
|
@@ -162,6 +162,7 @@
|
|
|
162
162
|
},
|
|
163
163
|
{
|
|
164
164
|
"name": "con pista y mensaje de error",
|
|
165
|
+
"description": "Por accesibilidad, los mensajes de error deben incluir la palabra \"error\", para que no recaiga tan sólo en el color el hecho de que es un mensaje de error.",
|
|
165
166
|
"data": {
|
|
166
167
|
"id": "select-3",
|
|
167
168
|
"name": "select-3",
|
|
@@ -172,7 +173,7 @@
|
|
|
172
173
|
"text": "Esto es una pista."
|
|
173
174
|
},
|
|
174
175
|
"errorMessage": {
|
|
175
|
-
"text": "
|
|
176
|
+
"text": "Esto es un mensaje de error"
|
|
176
177
|
},
|
|
177
178
|
"items": [
|
|
178
179
|
{
|
|
@@ -190,33 +191,6 @@
|
|
|
190
191
|
]
|
|
191
192
|
}
|
|
192
193
|
},
|
|
193
|
-
{
|
|
194
|
-
"name": "con label como encabezado",
|
|
195
|
-
"data": {
|
|
196
|
-
"id": "select-4",
|
|
197
|
-
"name": "select-4",
|
|
198
|
-
"label": {
|
|
199
|
-
"text": "Esto es un label",
|
|
200
|
-
"isPageHeading": true
|
|
201
|
-
},
|
|
202
|
-
"items": [
|
|
203
|
-
{
|
|
204
|
-
"value": 1,
|
|
205
|
-
"text": "Opción 1"
|
|
206
|
-
},
|
|
207
|
-
{
|
|
208
|
-
"value": 2,
|
|
209
|
-
"text": "Opción 2",
|
|
210
|
-
"selected": true
|
|
211
|
-
},
|
|
212
|
-
{
|
|
213
|
-
"value": 3,
|
|
214
|
-
"text": "Opción 3",
|
|
215
|
-
"disabled": true
|
|
216
|
-
}
|
|
217
|
-
]
|
|
218
|
-
}
|
|
219
|
-
},
|
|
220
194
|
{
|
|
221
195
|
"name": "con anchura completa",
|
|
222
196
|
"data": {
|
|
@@ -259,7 +233,7 @@
|
|
|
259
233
|
"classes": "lg:flex lg:flex-wrap lg:items-center lg:gap-x-base"
|
|
260
234
|
},
|
|
261
235
|
"errorMessage": {
|
|
262
|
-
"text": "
|
|
236
|
+
"text": "Esto es un mensaje de error",
|
|
263
237
|
"classes": "order-1 w-full pt-sm"
|
|
264
238
|
},
|
|
265
239
|
"items": [
|
|
@@ -150,7 +150,7 @@ params:
|
|
|
150
150
|
description: HTML attributes (for example data attributes) to add to the table container.
|
|
151
151
|
|
|
152
152
|
accessibilityCriteria: |
|
|
153
|
-
|
|
153
|
+
## Las tablas deben:
|
|
154
154
|
1. Debe tener al menos una celda de encabezado (TH) en las filas o columnas exteriores.
|
|
155
155
|
2. Si la tabla tiene más de un nivel de encabezado (si hay elementos th en dos filas o en dos columnas) las celdas de datos y de encabezado deben estar asociadas con los atributos id (en los th) /headers (en los td).
|
|
156
156
|
3. El título de la tabla debe estar marcado como <caption>
|
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
},
|
|
30
30
|
{
|
|
31
31
|
"name": "con mensaje de error",
|
|
32
|
+
"description": "Por accesibilidad, los mensajes de error deben incluir la palabra \"error\", para que no recaiga tan sólo en el color el hecho de que es un mensaje de error.",
|
|
32
33
|
"data": {
|
|
33
34
|
"name": "no-ni-reason",
|
|
34
35
|
"id": "no-ni-reason",
|
|
@@ -36,7 +37,7 @@
|
|
|
36
37
|
"text": "Esto es un label"
|
|
37
38
|
},
|
|
38
39
|
"errorMessage": {
|
|
39
|
-
"text": "
|
|
40
|
+
"text": "Esto es un mensaje de error"
|
|
40
41
|
}
|
|
41
42
|
}
|
|
42
43
|
},
|
|
@@ -62,18 +63,6 @@
|
|
|
62
63
|
"rows": 8
|
|
63
64
|
}
|
|
64
65
|
},
|
|
65
|
-
{
|
|
66
|
-
"name": "con label como encabezado",
|
|
67
|
-
"description": "Utiliza el parámetro <code>'isPageheading': true</code> para que el label esté dentro de un encabezado. Usa el parámetro <code>'headingLevel'</code> para establecer el nivel del encabezado. Por ejemplo: <code>'headingLevel': 3</code> creará un encabezado <code><h3></code>.",
|
|
68
|
-
"data": {
|
|
69
|
-
"id": "textarea-with-page-heading-a",
|
|
70
|
-
"name": "address",
|
|
71
|
-
"label": {
|
|
72
|
-
"text": "Esto es un label dentro de un encabezado <h1>",
|
|
73
|
-
"isPageHeading": true
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
},
|
|
77
66
|
{
|
|
78
67
|
"name": "con clases de form-group opcionales",
|
|
79
68
|
"data": {
|
|
@@ -123,7 +112,7 @@
|
|
|
123
112
|
"id": "classes-applied-b",
|
|
124
113
|
"name": "classes-applied-b",
|
|
125
114
|
"errorMessage": {
|
|
126
|
-
"text": "
|
|
115
|
+
"text": "Esto es un mensaje de error",
|
|
127
116
|
"classes": "order-1 w-full pt-sm"
|
|
128
117
|
},
|
|
129
118
|
"classes": "lg:flex-1"
|
|
@@ -607,7 +607,7 @@
|
|
|
607
607
|
"text": "Selecciona el organismo al que perteneces."
|
|
608
608
|
},
|
|
609
609
|
"errorMessage": {
|
|
610
|
-
"text": "
|
|
610
|
+
"text": "No tienes permiso para seleccionar ese organismo."
|
|
611
611
|
},
|
|
612
612
|
"idPrefix": "with-hint-and-error",
|
|
613
613
|
"items": [
|
|
@@ -1797,7 +1797,7 @@
|
|
|
1797
1797
|
},
|
|
1798
1798
|
"placeholder": "Buscar organismo",
|
|
1799
1799
|
"errorMessage": {
|
|
1800
|
-
"text": "
|
|
1800
|
+
"text": "Introduce al menos un carácter",
|
|
1801
1801
|
"classes": "mt-xs"
|
|
1802
1802
|
}
|
|
1803
1803
|
},
|
|
@@ -2675,5 +2675,159 @@
|
|
|
2675
2675
|
}
|
|
2676
2676
|
]
|
|
2677
2677
|
}
|
|
2678
|
+
},
|
|
2679
|
+
{
|
|
2680
|
+
"name": "lazy rendering",
|
|
2681
|
+
"description": "No pinta los nodos hijos hasta que el usuario no lo pide desplegando un nodo padre. Usalo sólo si el arbol tiene una cantidad enorme de items.",
|
|
2682
|
+
"data": {
|
|
2683
|
+
"name": "type-lazy-rendering",
|
|
2684
|
+
"classes": "mt-base",
|
|
2685
|
+
"type": "checkbox",
|
|
2686
|
+
"fieldset": {
|
|
2687
|
+
"legend": {
|
|
2688
|
+
"text": "Selecciona organismo"
|
|
2689
|
+
}
|
|
2690
|
+
},
|
|
2691
|
+
"idPrefix": "type-lazy-rendering",
|
|
2692
|
+
"lazyRendering": true,
|
|
2693
|
+
"items": [
|
|
2694
|
+
{
|
|
2695
|
+
"text": "Item A",
|
|
2696
|
+
"id": "item-a",
|
|
2697
|
+
"sub": {
|
|
2698
|
+
"items": [
|
|
2699
|
+
{
|
|
2700
|
+
"text": "Subitem A1",
|
|
2701
|
+
"value": "subitem-a1",
|
|
2702
|
+
"sub": {
|
|
2703
|
+
"items": [
|
|
2704
|
+
{
|
|
2705
|
+
"text": "SubSubitem A1.1",
|
|
2706
|
+
"value": "subsubitem-a1-1",
|
|
2707
|
+
"sub": {
|
|
2708
|
+
"items": [
|
|
2709
|
+
{
|
|
2710
|
+
"text": "Level 4 A1.1.1",
|
|
2711
|
+
"value": "lvl4-a1-1-1",
|
|
2712
|
+
"sub": {
|
|
2713
|
+
"items": [
|
|
2714
|
+
{
|
|
2715
|
+
"text": "Level 5 A1.1.1.1",
|
|
2716
|
+
"value": "lvl5-a1-1-1-1"
|
|
2717
|
+
},
|
|
2718
|
+
{
|
|
2719
|
+
"text": "Level 5 A1.1.1.2",
|
|
2720
|
+
"value": "lvl5-a1-1-1-2"
|
|
2721
|
+
}
|
|
2722
|
+
]
|
|
2723
|
+
}
|
|
2724
|
+
},
|
|
2725
|
+
{
|
|
2726
|
+
"text": "Level 4 A1.1.2",
|
|
2727
|
+
"value": "lvl4-a1-1-2"
|
|
2728
|
+
}
|
|
2729
|
+
]
|
|
2730
|
+
}
|
|
2731
|
+
},
|
|
2732
|
+
{
|
|
2733
|
+
"text": "SubSubitem A1.2",
|
|
2734
|
+
"value": "subsubitem-a1-2"
|
|
2735
|
+
}
|
|
2736
|
+
]
|
|
2737
|
+
}
|
|
2738
|
+
},
|
|
2739
|
+
{
|
|
2740
|
+
"text": "Subitem A2",
|
|
2741
|
+
"value": "subitem-a2"
|
|
2742
|
+
},
|
|
2743
|
+
{
|
|
2744
|
+
"text": "Subitem A3",
|
|
2745
|
+
"value": "subitem-a3"
|
|
2746
|
+
}
|
|
2747
|
+
]
|
|
2748
|
+
}
|
|
2749
|
+
},
|
|
2750
|
+
{
|
|
2751
|
+
"text": "Item B",
|
|
2752
|
+
"id": "item-b",
|
|
2753
|
+
"sub": {
|
|
2754
|
+
"items": [
|
|
2755
|
+
{
|
|
2756
|
+
"text": "Subitem B1",
|
|
2757
|
+
"value": "subitem-b1",
|
|
2758
|
+
"sub": {
|
|
2759
|
+
"items": [
|
|
2760
|
+
{
|
|
2761
|
+
"text": "SubSubitem B1.1",
|
|
2762
|
+
"value": "subsubitem-b1-1",
|
|
2763
|
+
"sub": {
|
|
2764
|
+
"items": [
|
|
2765
|
+
{
|
|
2766
|
+
"text": "Level 4 B1.1.1",
|
|
2767
|
+
"value": "lvl4-b1-1-1"
|
|
2768
|
+
},
|
|
2769
|
+
{
|
|
2770
|
+
"text": "Level 4 B1.1.2",
|
|
2771
|
+
"value": "lvl4-b1-1-2"
|
|
2772
|
+
},
|
|
2773
|
+
{
|
|
2774
|
+
"text": "Level 4 B1.1.3",
|
|
2775
|
+
"value": "lvl4-b1-1-3"
|
|
2776
|
+
}
|
|
2777
|
+
]
|
|
2778
|
+
}
|
|
2779
|
+
}
|
|
2780
|
+
]
|
|
2781
|
+
}
|
|
2782
|
+
},
|
|
2783
|
+
{
|
|
2784
|
+
"text": "Subitem B2",
|
|
2785
|
+
"value": "subitem-b2"
|
|
2786
|
+
},
|
|
2787
|
+
{
|
|
2788
|
+
"text": "Subitem B3",
|
|
2789
|
+
"value": "subitem-b3"
|
|
2790
|
+
}
|
|
2791
|
+
]
|
|
2792
|
+
}
|
|
2793
|
+
},
|
|
2794
|
+
{
|
|
2795
|
+
"text": "Item C",
|
|
2796
|
+
"id": "item-c",
|
|
2797
|
+
"sub": {
|
|
2798
|
+
"items": [
|
|
2799
|
+
{
|
|
2800
|
+
"text": "Subitem C1",
|
|
2801
|
+
"value": "subitem-c1",
|
|
2802
|
+
"sub": {
|
|
2803
|
+
"items": [
|
|
2804
|
+
{
|
|
2805
|
+
"text": "SubSubitem C1.1",
|
|
2806
|
+
"value": "subsubitem-c1-1"
|
|
2807
|
+
},
|
|
2808
|
+
{
|
|
2809
|
+
"text": "SubSubitem C1.2",
|
|
2810
|
+
"value": "subsubitem-c1-2"
|
|
2811
|
+
},
|
|
2812
|
+
{
|
|
2813
|
+
"text": "SubSubitem C1.3",
|
|
2814
|
+
"value": "subsubitem-c1-3"
|
|
2815
|
+
}
|
|
2816
|
+
]
|
|
2817
|
+
}
|
|
2818
|
+
},
|
|
2819
|
+
{
|
|
2820
|
+
"text": "Subitem C2",
|
|
2821
|
+
"value": "subitem-c2"
|
|
2822
|
+
},
|
|
2823
|
+
{
|
|
2824
|
+
"text": "Subitem C3",
|
|
2825
|
+
"value": "subitem-c3"
|
|
2826
|
+
}
|
|
2827
|
+
]
|
|
2828
|
+
}
|
|
2829
|
+
}
|
|
2830
|
+
]
|
|
2831
|
+
}
|
|
2678
2832
|
}
|
|
2679
|
-
] %}
|
|
2833
|
+
] %}
|