@themarioga/grid-editor 6.0.0 → 7.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/AUTO_SAVE.md +2 -2
- package/BUILDING.md +45 -29
- package/CHANGELOG.md +59 -0
- package/README.md +163 -87
- package/UPGRADING.md +119 -0
- package/dist/grideditor.bundle.min.js +14 -0
- package/dist/grideditor.d.ts +335 -0
- package/dist/grideditor.esm.js +3977 -0
- package/dist/grideditor.jquery.js +253 -0
- package/dist/grideditor.jquery.min.js +1 -0
- package/dist/grideditor.jquery.min.js.map +7 -0
- package/dist/grideditor.js +3983 -0
- package/dist/grideditor.min.js +6 -0
- package/dist/grideditor.min.js.map +7 -0
- package/dist/locales/grideditor.es.esm.js +158 -0
- package/dist/locales/grideditor.es.js +164 -168
- package/dist/locales/grideditor.es.min.js +6 -2
- package/dist/locales/grideditor.es.min.js.map +7 -1
- package/dist/plugins/grideditor.accordion.esm.js +294 -0
- package/dist/plugins/grideditor.accordion.js +286 -180
- package/dist/plugins/grideditor.accordion.min.js +1 -2
- package/dist/plugins/grideditor.accordion.min.js.map +7 -1
- package/dist/plugins/grideditor.alignment.esm.js +55 -0
- package/dist/plugins/grideditor.alignment.js +58 -77
- package/dist/plugins/grideditor.alignment.min.js +1 -2
- package/dist/plugins/grideditor.alignment.min.js.map +7 -1
- package/dist/plugins/grideditor.card.esm.js +73 -0
- package/dist/plugins/grideditor.card.js +74 -64
- package/dist/plugins/grideditor.card.min.js +1 -2
- package/dist/plugins/grideditor.card.min.js.map +7 -1
- package/dist/plugins/grideditor.ckeditor.esm.js +500 -0
- package/dist/plugins/grideditor.ckeditor.js +484 -449
- package/dist/plugins/grideditor.ckeditor.min.js +1 -2
- package/dist/plugins/grideditor.ckeditor.min.js.map +7 -1
- package/dist/plugins/grideditor.clipboard.esm.js +326 -0
- package/dist/plugins/grideditor.clipboard.js +298 -235
- package/dist/plugins/grideditor.clipboard.min.js +1 -2
- package/dist/plugins/grideditor.clipboard.min.js.map +7 -1
- package/dist/plugins/grideditor.codemirror-inline.esm.js +205 -0
- package/dist/plugins/grideditor.codemirror-inline.js +188 -168
- package/dist/plugins/grideditor.codemirror-inline.min.js +1 -2
- package/dist/plugins/grideditor.codemirror-inline.min.js.map +7 -1
- package/dist/plugins/grideditor.codemirror.esm.js +63 -0
- package/dist/plugins/grideditor.codemirror.js +60 -71
- package/dist/plugins/grideditor.codemirror.min.js +1 -2
- package/dist/plugins/grideditor.codemirror.min.js.map +7 -1
- package/dist/plugins/grideditor.elements.esm.js +271 -0
- package/dist/plugins/grideditor.elements.js +256 -149
- package/dist/plugins/grideditor.elements.min.js +1 -2
- package/dist/plugins/grideditor.elements.min.js.map +7 -1
- package/dist/plugins/grideditor.float.esm.js +34 -0
- package/dist/plugins/grideditor.float.js +37 -52
- package/dist/plugins/grideditor.float.min.js +1 -2
- package/dist/plugins/grideditor.float.min.js.map +7 -1
- package/dist/plugins/grideditor.gutters.esm.js +143 -0
- package/dist/plugins/grideditor.gutters.js +134 -131
- package/dist/plugins/grideditor.gutters.min.js +1 -2
- package/dist/plugins/grideditor.gutters.min.js.map +7 -1
- package/dist/plugins/grideditor.order.esm.js +189 -0
- package/dist/plugins/grideditor.order.js +170 -182
- package/dist/plugins/grideditor.order.min.js +1 -2
- package/dist/plugins/grideditor.order.min.js.map +7 -1
- package/dist/plugins/grideditor.popup.esm.js +187 -0
- package/dist/plugins/grideditor.popup.js +183 -134
- package/dist/plugins/grideditor.popup.min.js +1 -2
- package/dist/plugins/grideditor.popup.min.js.map +7 -1
- package/dist/plugins/grideditor.sections.esm.js +271 -0
- package/dist/plugins/grideditor.sections.js +250 -173
- package/dist/plugins/grideditor.sections.min.js +1 -2
- package/dist/plugins/grideditor.sections.min.js.map +7 -1
- package/dist/plugins/grideditor.spacing.esm.js +318 -0
- package/dist/plugins/grideditor.spacing.js +296 -272
- package/dist/plugins/grideditor.spacing.min.js +1 -2
- package/dist/plugins/grideditor.spacing.min.js.map +7 -1
- package/dist/plugins/grideditor.summernote.esm.js +509 -0
- package/dist/plugins/grideditor.summernote.js +493 -427
- package/dist/plugins/grideditor.summernote.min.js +1 -2
- package/dist/plugins/grideditor.summernote.min.js.map +7 -1
- package/dist/plugins/grideditor.tabs.esm.js +237 -0
- package/dist/plugins/grideditor.tabs.js +233 -139
- package/dist/plugins/grideditor.tabs.min.js +1 -2
- package/dist/plugins/grideditor.tabs.min.js.map +7 -1
- package/dist/plugins/grideditor.textalign.esm.js +40 -0
- package/dist/plugins/grideditor.textalign.js +43 -56
- package/dist/plugins/grideditor.textalign.min.js +1 -2
- package/dist/plugins/grideditor.textalign.min.js.map +7 -1
- package/dist/plugins/grideditor.tinymce.esm.js +519 -0
- package/dist/plugins/grideditor.tinymce.js +502 -490
- package/dist/plugins/grideditor.tinymce.min.js +1 -2
- package/dist/plugins/grideditor.tinymce.min.js.map +7 -1
- package/dist/plugins/grideditor.visibility.esm.js +158 -0
- package/dist/plugins/grideditor.visibility.js +140 -149
- package/dist/plugins/grideditor.visibility.min.js +1 -2
- package/dist/plugins/grideditor.visibility.min.js.map +7 -1
- package/docs/events.md +47 -21
- package/docs/locale-keys.md +6 -0
- package/docs/plugins.md +47 -25
- package/example/adapter.html +112 -0
- package/example/attributes.html +89 -62
- package/example/autocols.html +9 -9
- package/example/autosave.html +18 -16
- package/example/basic.html +8 -6
- package/example/breakpoints.html +5 -6
- package/example/ckeditor.html +4 -5
- package/example/clipboard.html +15 -11
- package/example/codemirror.html +13 -8
- package/example/containers.html +11 -9
- package/example/custom_editor.html +53 -34
- package/example/elements.html +14 -12
- package/example/index.html +16 -2
- package/example/locale.html +6 -7
- package/example/plugins.html +44 -29
- package/example/summernote.html +6 -5
- package/example/utilities.html +17 -13
- package/example/wrap_content.html +13 -10
- package/package.json +44 -12
- package/src/js/dom.js +401 -0
- package/src/js/grideditor.classic.js +16 -0
- package/src/js/grideditor.jquery.js +325 -0
- package/src/js/{jquery.grideditor.js → grideditor.js} +1284 -1124
- package/src/js/locales/grideditor.es.js +163 -156
- package/src/js/plugins/grideditor.accordion.js +97 -77
- package/src/js/plugins/grideditor.alignment.js +5 -7
- package/src/js/plugins/grideditor.card.js +23 -23
- package/src/js/plugins/grideditor.ckeditor.js +107 -106
- package/src/js/plugins/grideditor.clipboard.js +49 -37
- package/src/js/plugins/grideditor.codemirror-inline.js +50 -37
- package/src/js/plugins/grideditor.codemirror.js +9 -10
- package/src/js/plugins/grideditor.elements.js +57 -33
- package/src/js/plugins/grideditor.float.js +4 -6
- package/src/js/plugins/grideditor.gutters.js +20 -15
- package/src/js/plugins/grideditor.order.js +28 -25
- package/src/js/plugins/grideditor.popup.js +63 -51
- package/src/js/plugins/grideditor.sections.js +39 -32
- package/src/js/plugins/grideditor.spacing.js +42 -45
- package/src/js/plugins/grideditor.summernote.js +112 -76
- package/src/js/plugins/grideditor.tabs.js +65 -57
- package/src/js/plugins/grideditor.textalign.js +4 -6
- package/src/js/plugins/grideditor.tinymce.js +148 -140
- package/src/js/plugins/grideditor.visibility.js +24 -25
- package/src/js/register.js +18 -0
- package/src/js/text/grideditor.text.js +77 -56
- package/types/grideditor.d.ts +335 -0
- package/dist/jquery.grideditor.bundle.min.js +0 -10
- package/dist/jquery.grideditor.js +0 -4927
- package/dist/jquery.grideditor.min.js +0 -2
- package/dist/jquery.grideditor.min.js.map +0 -1
|
@@ -1,169 +1,176 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Spanish strings for grid-editor.
|
|
3
3
|
*
|
|
4
|
-
* Load after the
|
|
4
|
+
* Load after the editor and select with `locale: 'es'`:
|
|
5
5
|
*
|
|
6
|
-
* <script src="dist/
|
|
6
|
+
* <script src="dist/grideditor.min.js"></script>
|
|
7
7
|
* <script src="dist/locales/grideditor.es.js"></script>
|
|
8
|
-
* <script
|
|
8
|
+
* <script>new GridEditor('#myGrid', { locale: 'es' });</script>
|
|
9
|
+
*
|
|
10
|
+
* or, as a module, `import '@themarioga/grid-editor/locales/es'`.
|
|
9
11
|
*
|
|
10
12
|
* This is one of the two locales grid-editor ships, so it is held to complete
|
|
11
|
-
* coverage of
|
|
13
|
+
* coverage of `GridEditor.locales.en`: test/locales.js fails when a key
|
|
12
14
|
* is missing. Add the Spanish string in the same change that adds the English
|
|
13
15
|
* one, and keep the wording short enough to fit the tooltip or the dropdown
|
|
14
16
|
* item it appears in.
|
|
15
17
|
*/
|
|
16
|
-
|
|
18
|
+
import { GridEditor } from '../grideditor.js';
|
|
17
19
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
20
|
+
GridEditor.locales.es = {
|
|
21
|
+
'tool.move': 'Mover',
|
|
22
|
+
'tool.settings': 'Configuración',
|
|
23
|
+
'tool.add_row': 'Añadir fila',
|
|
24
|
+
'tool.delete_text': 'Quitar texto',
|
|
25
|
+
'tool.delete_plain': 'Quitar contenido',
|
|
26
|
+
'tool.edit_html': 'Editar html',
|
|
27
|
+
'codemirror.apply': 'Aplicar',
|
|
28
|
+
'codemirror.cancel': 'Cancelar',
|
|
29
|
+
'tool.convert_type': 'Editar como texto de {editor}',
|
|
30
|
+
'text.add': 'Texto',
|
|
31
|
+
'text.add_type': 'Texto ({editor})',
|
|
32
|
+
'text.no_editor': 'No hay cargado ningún editor de texto "{type}": este texto se puede mover y borrar, pero no editar',
|
|
33
|
+
'text.tinymce': 'tinyMCE',
|
|
34
|
+
'text.ckeditor': 'CKEditor',
|
|
35
|
+
'text.summernote': 'Summernote',
|
|
36
|
+
'tool.add_column': 'Añadir columna\n(mantén pulsado para elegir el ancho)',
|
|
37
|
+
'tool.column_size': '{size} de 12',
|
|
38
|
+
'tool.column_equal': 'Igual: reparte lo que queda de la fila',
|
|
39
|
+
'tool.column_auto': 'Auto: tan ancha como su contenido',
|
|
40
|
+
'tool.delete_row': 'Borrar fila',
|
|
41
|
+
'tool.delete_column': 'Borrar columna',
|
|
42
|
+
'tool.delete_element': 'Borrar elemento',
|
|
43
|
+
'tool.delete_container': 'Borrar contenedor',
|
|
44
|
+
'tool.delete_pane': 'Borrar panel',
|
|
45
|
+
'tool.rename': 'Haz doble clic para renombrar',
|
|
46
|
+
'tool.toggle_popup': 'Plegar esta ventana mientras editas',
|
|
47
|
+
'tool.element_info': 'Elemento: {name}',
|
|
48
|
+
'tool.column_narrower': 'Estrechar columna\n(Mayús para el mínimo)',
|
|
49
|
+
'tool.column_wider': 'Ensanchar columna\n(Mayús para el máximo)',
|
|
50
|
+
'tool.indent_decrease': 'Reducir sangría\n(Mayús para quitarla)',
|
|
51
|
+
'tool.indent_increase': 'Aumentar sangría\n(Mayús para el máximo)',
|
|
52
|
+
'tool.edit_source': 'Editar el código fuente',
|
|
53
|
+
'tool.preview': 'Vista previa',
|
|
54
|
+
'panel.title': 'Ajustes: {kind}',
|
|
55
|
+
'panel.close': 'Cerrar',
|
|
56
|
+
'panel.done': 'Hecho',
|
|
57
|
+
'panel.id': 'Id',
|
|
58
|
+
'panel.classes': 'Clases',
|
|
59
|
+
'panel.editor': 'Editor',
|
|
60
|
+
'panel.kind_row': 'Fila',
|
|
61
|
+
'panel.kind_column': 'Columna',
|
|
62
|
+
'panel.kind_text': 'Texto',
|
|
63
|
+
'panel.kind_element': 'Elemento',
|
|
64
|
+
'panel.kind_section': 'Sección',
|
|
65
|
+
'panel.kind_tab': 'Pestaña',
|
|
66
|
+
'panel.kind_accordion_item': 'Elemento de acordeón',
|
|
67
|
+
'tool.id_placeholder': 'id',
|
|
68
|
+
'tool.id_title': 'Asignar un identificador único',
|
|
69
|
+
'tool.classes_placeholder': 'clases',
|
|
70
|
+
'tool.classes_title': 'Clases css, separadas por espacios',
|
|
71
|
+
'tool.toggle_class': 'Aplicar o quitar el estilo "{label}"',
|
|
72
|
+
'row.add': 'Añadir fila {layout}',
|
|
73
|
+
'row.add_row_cols': 'Añadir una fila de {columns} columnas, {counts} por fila',
|
|
74
|
+
'container.add_tabs': 'Pestañas',
|
|
75
|
+
'container.add_tab': 'Añadir pestaña',
|
|
76
|
+
'container.tab_label': 'Pestaña {number}',
|
|
77
|
+
'container.add_accordion': 'Acordeón',
|
|
78
|
+
'container.add_accordion_item': 'Añadir apartado',
|
|
79
|
+
'container.accordion_label': 'Apartado {number}',
|
|
80
|
+
'container.add_popup': 'Ventana emergente',
|
|
81
|
+
'container.popup_title': 'Título',
|
|
82
|
+
'container.popup_trigger': 'Abrir',
|
|
83
|
+
'container.add_card': 'Tarjeta',
|
|
84
|
+
'container.card_title': 'Título de la tarjeta',
|
|
85
|
+
'container.card_footer': 'Pie de la tarjeta',
|
|
86
|
+
'confirm.title': 'Confirmar',
|
|
87
|
+
'confirm.ok': 'Borrar',
|
|
88
|
+
'confirm.cancel': 'Cancelar',
|
|
89
|
+
'confirm.delete_row': '¿Seguro que quieres borrar esta fila?',
|
|
90
|
+
'confirm.delete_column': '¿Seguro que quieres borrar esta columna?',
|
|
91
|
+
'confirm.delete_text': '¿Seguro que quieres borrar este texto?',
|
|
92
|
+
'confirm.delete_plain': '¿Seguro que quieres borrar este contenido?',
|
|
93
|
+
'confirm.delete_element': '¿Seguro que quieres borrar este elemento?',
|
|
94
|
+
'confirm.delete_container': '¿Seguro que quieres borrar este contenedor y todo su contenido?',
|
|
95
|
+
'confirm.delete_tab': '¿Seguro que quieres borrar esta pestaña y todo su contenido?',
|
|
96
|
+
'confirm.delete_accordion_item': '¿Seguro que quieres borrar este apartado y todo su contenido?',
|
|
97
|
+
'view.all': 'Todos los tamaños',
|
|
98
|
+
'view.xs': 'Móvil',
|
|
99
|
+
'view.sm': 'Tablet',
|
|
100
|
+
'view.md': 'Escritorio pequeño',
|
|
101
|
+
'view.lg': 'Escritorio',
|
|
102
|
+
'view.xl': 'Escritorio grande',
|
|
103
|
+
'view.xxl': 'Pantalla panorámica',
|
|
104
|
+
'utility.section': 'Responsive: {view}',
|
|
105
|
+
'utility.col_width': 'Ancho',
|
|
106
|
+
'utility.col_equal': 'Igual',
|
|
107
|
+
'utility.col_auto': 'Auto',
|
|
108
|
+
'section.add': 'Sección',
|
|
109
|
+
'section.width': 'Ancho',
|
|
110
|
+
'section.fixed': 'Fijo',
|
|
111
|
+
'section.fluid': 'Ancho completo',
|
|
112
|
+
'section.from': 'Fijo desde {breakpoint}',
|
|
113
|
+
'tool.add_row_to_section': 'Añadir fila',
|
|
114
|
+
'tool.delete_section': 'Quitar sección',
|
|
115
|
+
'confirm.delete_section': '¿Seguro que quieres borrar esta sección y todo su contenido?',
|
|
116
|
+
'tool.copy': 'Copiar',
|
|
117
|
+
'tool.paste': 'Pegar',
|
|
118
|
+
'clipboard.paste_row': 'Pegar fila',
|
|
119
|
+
'clipboard.paste_section': 'Pegar sección',
|
|
120
|
+
'utility.col_from_row': 'De la fila: {count}',
|
|
121
|
+
'utility.row_cols': 'Columnas por fila',
|
|
122
|
+
'badge.row_cols': '{count} por fila',
|
|
123
|
+
'badge.row_cols_auto': 'Tan anchas como su contenido',
|
|
124
|
+
'utility.default': 'Por defecto',
|
|
125
|
+
'utility.inherit': 'Hereda: {value} (de {breakpoint})',
|
|
126
|
+
'utility.varies': 'Cambia en {breakpoints}; elegir aquí lo sustituye',
|
|
127
|
+
'utility.visibility': 'Visibilidad',
|
|
128
|
+
'utility.visibility_hidden': 'Oculto',
|
|
129
|
+
'utility.visibility_shown': 'Visible',
|
|
130
|
+
'tool.hide_in_view': 'Ocultar en esta vista',
|
|
131
|
+
'tool.show_in_view': 'Mostrar en esta vista',
|
|
132
|
+
'badge.hidden_in': 'Oculto en {breakpoints}',
|
|
133
|
+
'utility.order': 'Orden',
|
|
134
|
+
'utility.order_first': 'Primero',
|
|
135
|
+
'utility.order_last': 'Último',
|
|
136
|
+
'tool.order_earlier': 'Antes en esta vista',
|
|
137
|
+
'tool.order_later': 'Después en esta vista',
|
|
138
|
+
'badge.order': 'Orden: {value}',
|
|
139
|
+
'utility.justify_content': 'Justificar columnas',
|
|
140
|
+
'utility.align_items': 'Alinear columnas',
|
|
141
|
+
'utility.align_self': 'Alinearse',
|
|
142
|
+
'utility.gutters': 'Espaciado entre columnas',
|
|
143
|
+
'utility.gutters_x': 'Espaciado horizontal',
|
|
144
|
+
'utility.gutters_y': 'Espaciado vertical',
|
|
145
|
+
'utility.padding': 'Relleno',
|
|
146
|
+
'utility.margin': 'Margen',
|
|
147
|
+
'utility.side_all': 'Todos los lados',
|
|
148
|
+
'utility.side_x': 'Izquierda y derecha',
|
|
149
|
+
'utility.side_y': 'Arriba y abajo',
|
|
150
|
+
'utility.side_t': 'Arriba',
|
|
151
|
+
'utility.side_b': 'Abajo',
|
|
152
|
+
'utility.side_s': 'Inicio',
|
|
153
|
+
'utility.side_e': 'Fin',
|
|
154
|
+
'utility.text_align': 'Alineación del texto',
|
|
155
|
+
'utility.text_start': 'Inicio',
|
|
156
|
+
'utility.text_center': 'Centro',
|
|
157
|
+
'utility.text_end': 'Fin',
|
|
158
|
+
'utility.float': 'Flotar',
|
|
159
|
+
'utility.float_start': 'Inicio',
|
|
160
|
+
'utility.float_end': 'Fin',
|
|
161
|
+
'utility.float_none': 'Ninguno',
|
|
162
|
+
'utility.spacing_gutter': 'El relleno lateral de una columna es su espaciado: cambiarlo cambia el espacio entre columnas',
|
|
163
|
+
'error.sortable_missing': '¡SortableJS no está disponible! Asegúrate de haber cargado el archivo js de Sortable; sin él no se puede arrastrar.',
|
|
164
|
+
'warning.setting_removed': 'El ajuste {setting} se eliminó en la 4.0. Usa {replacement} en su lugar.',
|
|
165
|
+
'warning.already_editing': 'Este elemento ya tiene un editor: se devuelve ese, con las opciones con las que se creó.',
|
|
166
|
+
'warning.destroyed': 'Se ha llamado a {method}() en un editor destruido, y no hace nada.',
|
|
167
|
+
'warning.duplicate_build': 'grideditor.js se ha cargado dos veces: se mantiene el primer GridEditor.',
|
|
168
|
+
'warning.plugin_6x': 'El plugin "{name}" está escrito para grid-editor 6 y no se carga. Desde la 7.0 los plugins se registran en GridEditor: consulta UPGRADING.md.',
|
|
169
|
+
'warning.adapter_no_jquery': 'grideditor.jquery.js necesita jQuery 4 y la página no tiene jQuery: la API de jQuery no está disponible.',
|
|
170
|
+
'warning.oninit_removed': 'La opción oninit de tinyMCE se eliminó en la 7.0 y se ignora: usa init_instance_callback.',
|
|
171
|
+
'error.tinymce_missing': '¡tinyMCE no está disponible! Asegúrate de haber cargado el archivo js de tinyMCE.',
|
|
172
|
+
'error.ckeditor_missing': '¡CKEditor no está disponible! Asegúrate de haber cargado el archivo js de CKEditor.',
|
|
173
|
+
'error.codemirror_missing': '¡CodeMirror no está disponible! Asegúrate de haber cargado el archivo js de CodeMirror; sin él el código se edita en un textarea normal.',
|
|
174
|
+
'error.summernote_missing': '¡Summernote no está disponible! Asegúrate de haber cargado jQuery y el archivo js de Summernote.',
|
|
175
|
+
};
|
|
168
176
|
|
|
169
|
-
})(jQuery);
|
|
@@ -5,68 +5,85 @@
|
|
|
5
5
|
* an accordion. What it can ask the editor for is the handle its factory is
|
|
6
6
|
* called with, described in docs/plugins.md.
|
|
7
7
|
*
|
|
8
|
-
* <script src="dist/
|
|
8
|
+
* <script src="dist/grideditor.min.js"></script>
|
|
9
9
|
* <script src="dist/plugins/grideditor.accordion.min.js"></script>
|
|
10
10
|
*/
|
|
11
|
-
|
|
11
|
+
import { GridEditor } from '../grideditor.js';
|
|
12
|
+
import * as dom from '../dom.js';
|
|
12
13
|
|
|
13
|
-
|
|
14
|
+
Object.assign(GridEditor.locales.en, {
|
|
14
15
|
'container.add_accordion': 'Accordion',
|
|
15
16
|
'container.add_accordion_item': 'Add item',
|
|
16
17
|
'container.accordion_label': 'Item {number}',
|
|
17
18
|
'confirm.delete_accordion_item': 'Delete this item and everything in it?',
|
|
18
19
|
});
|
|
19
20
|
|
|
20
|
-
|
|
21
|
+
GridEditor.containers.accordion = function(ge) {
|
|
22
|
+
|
|
23
|
+
// The buttons whose clicks the editor answers itself, bound once each
|
|
24
|
+
var answered = new WeakSet();
|
|
25
|
+
|
|
26
|
+
function collapseOf(item) {
|
|
27
|
+
return dom.child(item, '.accordion-collapse');
|
|
28
|
+
}
|
|
21
29
|
|
|
22
30
|
function staysOpen(container, ignore) {
|
|
23
|
-
var items =
|
|
31
|
+
var items = dom.all(container, ':scope > .accordion > .accordion-item > .accordion-collapse');
|
|
24
32
|
|
|
25
|
-
if (ignore) {
|
|
33
|
+
if (ignore) {
|
|
34
|
+
var ignored = collapseOf(ignore);
|
|
35
|
+
items = items.filter(function(collapse) { return collapse !== ignored; });
|
|
36
|
+
}
|
|
26
37
|
|
|
27
|
-
return items.length > 0 && !items.filter(
|
|
38
|
+
return items.length > 0 && !items.filter(function(collapse) {
|
|
39
|
+
return collapse.hasAttribute('data-bs-parent');
|
|
40
|
+
}).length;
|
|
28
41
|
}
|
|
29
42
|
|
|
30
43
|
function addAccordionItemTo(container, options) {
|
|
31
44
|
options = options || {};
|
|
32
45
|
|
|
33
|
-
var accordion =
|
|
46
|
+
var accordion = dom.child(container, '.accordion');
|
|
34
47
|
var id = ge.containerId('acc-item');
|
|
35
|
-
var number =
|
|
48
|
+
var number = dom.children(accordion, '.accordion-item').length + 1;
|
|
36
49
|
var open = options.open === undefined ? number === 1 : !!options.open;
|
|
37
50
|
var stayOpen = options.stay_open === undefined ? staysOpen(container) : !!options.stay_open;
|
|
38
51
|
|
|
39
|
-
var item =
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
;
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
52
|
+
var item = accordion.appendChild(dom.element('div', { 'class': 'accordion-item ge-accordion-item' }));
|
|
53
|
+
|
|
54
|
+
var header = item.appendChild(dom.element('h2', { 'class': 'accordion-header' }));
|
|
55
|
+
var button = header.appendChild(dom.element('button', {
|
|
56
|
+
'class': 'accordion-button',
|
|
57
|
+
type: 'button',
|
|
58
|
+
'data-bs-toggle': 'collapse',
|
|
59
|
+
'data-bs-target': '#' + id,
|
|
60
|
+
'aria-expanded': open ? 'true' : 'false',
|
|
61
|
+
}));
|
|
62
|
+
dom.toggleClass(button, 'collapsed', !open);
|
|
63
|
+
button.appendChild(dom.element('span', { 'class': 'ge-pane-label' },
|
|
64
|
+
options.label || ge.t('container.accordion_label', { number: number })));
|
|
65
|
+
|
|
66
|
+
var collapse = item.appendChild(dom.element('div', {
|
|
67
|
+
'class': 'accordion-collapse collapse',
|
|
68
|
+
id: id,
|
|
69
|
+
'data-ge-open': open ? 'true' : 'false',
|
|
70
|
+
}));
|
|
71
|
+
dom.toggleClass(collapse, 'show', open);
|
|
72
|
+
|
|
73
|
+
if (!stayOpen) { collapse.setAttribute('data-bs-parent', '#' + accordion.getAttribute('id')); }
|
|
74
|
+
|
|
75
|
+
var body = collapse.appendChild(dom.element('div', { 'class': 'accordion-body' }));
|
|
76
|
+
body.appendChild(ge.defaultRegion());
|
|
77
|
+
return body;
|
|
61
78
|
}
|
|
62
79
|
|
|
63
80
|
function toggleAccordionItem(container, item) {
|
|
64
|
-
var collapse = item
|
|
65
|
-
var opening = collapse.
|
|
81
|
+
var collapse = collapseOf(item);
|
|
82
|
+
var opening = collapse.getAttribute('data-ge-open') !== 'true';
|
|
66
83
|
|
|
67
84
|
if (opening && !staysOpen(container)) {
|
|
68
|
-
|
|
69
|
-
setAccordionItemOpen(
|
|
85
|
+
dom.all(container, ':scope > .accordion > .accordion-item').forEach(function(other) {
|
|
86
|
+
if (other !== item) { setAccordionItemOpen(other, false); }
|
|
70
87
|
});
|
|
71
88
|
}
|
|
72
89
|
|
|
@@ -74,26 +91,29 @@ $.fn.gridEditor.containers.accordion = function(ge) {
|
|
|
74
91
|
}
|
|
75
92
|
|
|
76
93
|
function setAccordionItemOpen(item, open) {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
.
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
94
|
+
var collapse = collapseOf(item);
|
|
95
|
+
if (collapse) {
|
|
96
|
+
collapse.setAttribute('data-ge-open', open ? 'true' : 'false');
|
|
97
|
+
dom.toggleClass(collapse, 'show', open);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
dom.all(item, ':scope > .accordion-header .accordion-button').forEach(function(button) {
|
|
101
|
+
dom.toggleClass(button, 'collapsed', !open);
|
|
102
|
+
button.setAttribute('aria-expanded', open ? 'true' : 'false');
|
|
103
|
+
});
|
|
85
104
|
}
|
|
86
105
|
|
|
87
106
|
function reparentAccordionItem(container, item) {
|
|
88
107
|
var accordion = item.closest('.accordion');
|
|
89
|
-
var collapse = item
|
|
108
|
+
var collapse = collapseOf(item);
|
|
109
|
+
if (!collapse) { return; }
|
|
90
110
|
|
|
91
111
|
// The item that just arrived still carries the parent it had
|
|
92
112
|
// where it came from, so it is not asked what this accordion does
|
|
93
113
|
if (staysOpen(container, item)) {
|
|
94
|
-
collapse.
|
|
114
|
+
collapse.removeAttribute('data-bs-parent');
|
|
95
115
|
} else {
|
|
96
|
-
collapse.
|
|
116
|
+
collapse.setAttribute('data-bs-parent', '#' + accordion.getAttribute('id'));
|
|
97
117
|
}
|
|
98
118
|
}
|
|
99
119
|
|
|
@@ -102,7 +122,7 @@ $.fn.gridEditor.containers.accordion = function(ge) {
|
|
|
102
122
|
|
|
103
123
|
// Items sort within their accordion and into any other one
|
|
104
124
|
onSortable: function(sortable) {
|
|
105
|
-
sortable(ge.canvas
|
|
125
|
+
sortable(dom.all(ge.canvas, '.ge-container-accordion > .accordion'), {
|
|
106
126
|
draggable: '.ge-accordion-item',
|
|
107
127
|
group: 'accordion',
|
|
108
128
|
});
|
|
@@ -111,14 +131,11 @@ $.fn.gridEditor.containers.accordion = function(ge) {
|
|
|
111
131
|
paneKind: 'accordion-item',
|
|
112
132
|
|
|
113
133
|
create: function(options) {
|
|
114
|
-
var container =
|
|
134
|
+
var container = dom.element('div', { 'data-ge-container': 'accordion' });
|
|
115
135
|
var labels = options.labels || [];
|
|
116
136
|
var count = options.items || labels.length || 2;
|
|
117
137
|
|
|
118
|
-
|
|
119
|
-
.attr('id', ge.containerId('accordion'))
|
|
120
|
-
.appendTo(container)
|
|
121
|
-
;
|
|
138
|
+
container.appendChild(dom.element('div', { 'class': 'accordion', id: ge.containerId('accordion') }));
|
|
122
139
|
|
|
123
140
|
for (var i = 0; i < count; i++) {
|
|
124
141
|
addAccordionItemTo(container, {
|
|
@@ -134,39 +151,42 @@ $.fn.gridEditor.containers.accordion = function(ge) {
|
|
|
134
151
|
addPane: addAccordionItemTo,
|
|
135
152
|
|
|
136
153
|
mark: function(container) {
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
var collapse = item
|
|
154
|
+
dom.all(container, ':scope > .accordion > .accordion-item').forEach(function(item) {
|
|
155
|
+
dom.addClass(item, 'ge-accordion-item');
|
|
156
|
+
var collapse = collapseOf(item);
|
|
140
157
|
|
|
141
158
|
// What the author wanted, before Bootstrap's own
|
|
142
159
|
// toggles get a chance to change it while editing.
|
|
143
160
|
// Every item is shown while editing (the stylesheet
|
|
144
161
|
// does that), so this is the only record of it.
|
|
145
|
-
if (collapse.
|
|
146
|
-
collapse.
|
|
162
|
+
if (collapse && !collapse.hasAttribute('data-ge-open')) {
|
|
163
|
+
collapse.setAttribute('data-ge-open', dom.hasClass(collapse, 'show') ? 'true' : 'false');
|
|
147
164
|
}
|
|
148
165
|
|
|
149
|
-
var button =
|
|
166
|
+
var button = dom.one(item, ':scope > .accordion-header .accordion-button');
|
|
150
167
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
168
|
+
if (button) {
|
|
169
|
+
// Bootstrap's collapse stays out of it, and the editor
|
|
170
|
+
// answers the click itself
|
|
171
|
+
ge.suspendToggles(button);
|
|
172
|
+
ge.makeLabelEditable(ge.labelIn(button));
|
|
155
173
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
174
|
+
if (!answered.has(button)) {
|
|
175
|
+
answered.add(button);
|
|
176
|
+
button.addEventListener('click', function(e) {
|
|
177
|
+
if (ge.labelIn(button).getAttribute('contenteditable') === 'true') { return; }
|
|
159
178
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
179
|
+
e.preventDefault();
|
|
180
|
+
toggleAccordionItem(container, item);
|
|
181
|
+
});
|
|
182
|
+
}
|
|
163
183
|
}
|
|
164
184
|
|
|
165
|
-
if (
|
|
185
|
+
if (dom.child(item, '.ge-tools-drawer')) { return; }
|
|
166
186
|
|
|
167
187
|
ge.createPaneControls(item, 'accordion-item', ge.settings.accordion_tools,
|
|
168
188
|
ge.t('confirm.delete_accordion_item'), function(removed) {
|
|
169
|
-
|
|
189
|
+
dom.slideUp(item, 200, removed);
|
|
170
190
|
});
|
|
171
191
|
});
|
|
172
192
|
},
|
|
@@ -174,13 +194,15 @@ $.fn.gridEditor.containers.accordion = function(ge) {
|
|
|
174
194
|
unmark: function(container) {
|
|
175
195
|
ge.resumeToggles(container);
|
|
176
196
|
|
|
177
|
-
// What the
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
197
|
+
// What the canvas was showing is what the page ships
|
|
198
|
+
dom.all(container, ':scope > .accordion > .accordion-item').forEach(function(item) {
|
|
199
|
+
var collapse = collapseOf(item);
|
|
200
|
+
setAccordionItemOpen(item, !!collapse && collapse.getAttribute('data-ge-open') === 'true');
|
|
181
201
|
});
|
|
182
202
|
|
|
183
|
-
|
|
203
|
+
dom.all(container, '.ge-accordion-item').forEach(function(item) {
|
|
204
|
+
dom.removeClass(item, 'ge-accordion-item');
|
|
205
|
+
});
|
|
184
206
|
ge.unwrapLabels(container);
|
|
185
207
|
},
|
|
186
208
|
|
|
@@ -189,5 +211,3 @@ $.fn.gridEditor.containers.accordion = function(ge) {
|
|
|
189
211
|
},
|
|
190
212
|
};
|
|
191
213
|
};
|
|
192
|
-
|
|
193
|
-
})(jQuery);
|