@themarioga/grid-editor 8.0.0-beta.2 → 8.0.0-beta.3

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.
@@ -3,4 +3,4 @@
3
3
  (May\xFAs para el m\xEDnimo)`,"tool.column_wider":`Ensanchar columna
4
4
  (May\xFAs para el m\xE1ximo)`,"tool.indent_decrease":`Reducir sangr\xEDa
5
5
  (May\xFAs para quitarla)`,"tool.indent_increase":`Aumentar sangr\xEDa
6
- (May\xFAs para el m\xE1ximo)`,"tool.edit_source":"Editar el c\xF3digo fuente","tool.preview":"Vista previa","panel.title":"Ajustes: {kind}","panel.close":"Cerrar","panel.done":"Hecho","panel.id":"Id","panel.classes":"Clases","panel.editor":"Editor","panel.kind_row":"Fila","panel.kind_column":"Columna","panel.kind_text":"Texto","panel.kind_element":"Elemento","panel.kind_section":"Secci\xF3n","panel.kind_tab":"Pesta\xF1a","panel.kind_accordion_item":"Elemento de acorde\xF3n","tool.id_placeholder":"id","tool.id_title":"Asignar un identificador \xFAnico","tool.classes_placeholder":"clases","tool.classes_title":"Clases css, separadas por espacios","tool.toggle_class":'Aplicar o quitar el estilo "{label}"',"row.add":"A\xF1adir fila {layout}","row.add_row_cols":"A\xF1adir una fila de {columns} columnas, {counts} por fila","container.add_tabs":"Pesta\xF1as","container.add_tab":"A\xF1adir pesta\xF1a","container.tab_label":"Pesta\xF1a {number}","container.add_accordion":"Acorde\xF3n","container.add_accordion_item":"A\xF1adir apartado","container.accordion_label":"Apartado {number}","container.add_popup":"Ventana emergente","container.popup_title":"T\xEDtulo","container.popup_trigger":"Abrir","container.add_card":"Tarjeta","container.card_title":"T\xEDtulo de la tarjeta","container.card_footer":"Pie de la tarjeta","confirm.title":"Confirmar","confirm.ok":"Borrar","confirm.cancel":"Cancelar","confirm.delete_row":"\xBFSeguro que quieres borrar esta fila?","confirm.delete_column":"\xBFSeguro que quieres borrar esta columna?","confirm.delete_text":"\xBFSeguro que quieres borrar este texto?","confirm.delete_plain":"\xBFSeguro que quieres borrar este contenido?","confirm.delete_element":"\xBFSeguro que quieres borrar este elemento?","confirm.delete_container":"\xBFSeguro que quieres borrar este contenedor y todo su contenido?","confirm.delete_tab":"\xBFSeguro que quieres borrar esta pesta\xF1a y todo su contenido?","confirm.delete_accordion_item":"\xBFSeguro que quieres borrar este apartado y todo su contenido?","view.all":"Todos los tama\xF1os","view.xs":"M\xF3vil","view.sm":"Tablet","view.md":"Escritorio peque\xF1o","view.lg":"Escritorio","view.xl":"Escritorio grande","view.xxl":"Pantalla panor\xE1mica","utility.section":"Responsive: {view}","utility.col_width":"Ancho","utility.col_equal":"Igual","utility.col_auto":"Auto","section.add":"Secci\xF3n","section.width":"Ancho","section.fixed":"Fijo","section.fluid":"Ancho completo","section.from":"Fijo desde {breakpoint}","tool.add_row_to_section":"A\xF1adir fila","tool.delete_section":"Quitar secci\xF3n","confirm.delete_section":"\xBFSeguro que quieres borrar esta secci\xF3n y todo su contenido?","tool.copy":"Copiar","tool.paste":"Pegar","clipboard.paste_row":"Pegar fila","clipboard.paste_section":"Pegar secci\xF3n","utility.col_from_row":"De la fila: {count}","utility.row_cols":"Columnas por fila","badge.row_cols":"{count} por fila","badge.row_cols_auto":"Tan anchas como su contenido","utility.default":"Por defecto","utility.inherit":"Hereda: {value} (de {breakpoint})","utility.varies":"Cambia en {breakpoints}; elegir aqu\xED lo sustituye","utility.display":"Display","utility.visibility_hidden":"Oculto","tool.hide_in_view":"Ocultar en esta vista","tool.show_in_view":"Mostrar en esta vista","badge.hidden_in":"Oculto en {breakpoints}","utility.order":"Orden","utility.order_first":"Primero","utility.order_last":"\xDAltimo","tool.order_earlier":"Antes en esta vista","tool.order_later":"Despu\xE9s en esta vista","badge.order":"Orden: {value}","utility.justify_content":"Justificar columnas","utility.align_items":"Alinear columnas","utility.align_content":"Alinear l\xEDneas","utility.flex_direction":"Direcci\xF3n","utility.flex_wrap":"Salto de l\xEDnea","utility.gap":"Separaci\xF3n","utility.row_gap":"Separaci\xF3n entre filas","utility.column_gap":"Separaci\xF3n entre columnas","utility.flex_fill":"Rellenar","utility.flex_grow":"Crecer","utility.flex_shrink":"Encoger","utility.sticky":"Fijo al desplazar","utility.align_self":"Alinearse","utility.gutters":"Espaciado entre columnas","utility.gutters_x":"Espaciado horizontal","utility.gutters_y":"Espaciado vertical","utility.padding":"Relleno","utility.margin":"Margen","utility.side_all":"Todos los lados","utility.side_x":"Izquierda y derecha","utility.side_y":"Arriba y abajo","utility.side_t":"Arriba","utility.side_b":"Abajo","utility.side_s":"Inicio","utility.side_e":"Fin","utility.text_align":"Alineaci\xF3n del texto","utility.text_start":"Inicio","utility.text_center":"Centro","utility.text_end":"Fin","utility.float":"Flotar","utility.float_start":"Inicio","utility.float_end":"Fin","utility.float_none":"Ninguno","utility.spacing_gutter":"El relleno lateral de una columna es su espaciado: cambiarlo cambia el espacio entre columnas","style.section_title":"Estilo","style.dialog_title":"Estilo: {kind}","style.section_size":"Tama\xF1o","style.section_spacing":"Espaciado","style.section_border":"Borde","style.section_background":"Fondo","style.section_text":"Texto","style.section_typography":"Tipograf\xEDa","style.section_display":"Visualizaci\xF3n","style.section_flex":"Flex","style.section_position":"Posici\xF3n","style.section_custom":"CSS libre","style.all_sizes":"Se aplica a todos los tama\xF1os","style.overridden":"La clase {class} tiene prioridad sobre este valor","style.invalid":"Esta propiedad no acepta ese valor","style.catalog":"Clases de Bootstrap","style.shadow_x":"X","style.shadow_y":"Y","style.shadow_blur":"Desenfoque","style.shadow_spread":"Extensi\xF3n","style.shadow_color":"Color","style.shadow_inset":"Interior","style.shadow_text_mode":"Editar como texto","style.prop_width":"Ancho","style.prop_height":"Alto","style.prop_min_width":"Ancho m\xEDnimo","style.prop_min_height":"Alto m\xEDnimo","style.prop_max_width":"Ancho m\xE1ximo","style.prop_max_height":"Alto m\xE1ximo","style.prop_margin_top":"Margen superior","style.prop_margin_right":"Margen derecho","style.prop_margin_bottom":"Margen inferior","style.prop_margin_left":"Margen izquierdo","style.prop_padding_top":"Relleno superior","style.prop_padding_right":"Relleno derecho","style.prop_padding_bottom":"Relleno inferior","style.prop_padding_left":"Relleno izquierdo","style.prop_border_width":"Grosor del borde","style.prop_border_style":"Estilo del borde","style.prop_border_color":"Color del borde","style.prop_border_radius":"Radio del borde","style.prop_box_shadow":"Sombra","style.prop_background_color":"Color de fondo","style.prop_background_image":"Imagen de fondo","style.prop_background_size":"Tama\xF1o del fondo","style.prop_background_position":"Posici\xF3n del fondo","style.prop_background_repeat":"Repetici\xF3n del fondo","style.prop_color":"Color","style.prop_font_size":"Tama\xF1o de letra","style.prop_text_align":"Alineaci\xF3n","style.prop_text_shadow":"Sombra del texto","style.prop_font_family":"Fuente","style.prop_font_weight":"Grosor de letra","style.prop_font_style":"Estilo de letra","style.prop_line_height":"Interlineado","style.prop_letter_spacing":"Espaciado entre letras","style.prop_text_transform":"May\xFAsculas","style.prop_text_decoration":"Decoraci\xF3n","style.prop_display":"Display","style.prop_opacity":"Opacidad","style.prop_overflow":"Desbordamiento","style.prop_visibility":"Visibilidad","style.prop_position":"Posici\xF3n","style.prop_top":"Arriba","style.prop_right":"Derecha","style.prop_bottom":"Abajo","style.prop_left":"Izquierda","style.prop_z_index":"Z-index","error.sortable_missing":"\xA1SortableJS no est\xE1 disponible! Aseg\xFArate de haber cargado el archivo js de Sortable; sin \xE9l no se puede arrastrar.","warning.already_editing":"Este elemento ya tiene un editor: se devuelve ese, con las opciones con las que se cre\xF3.","warning.destroyed":"Se ha llamado a {method}() en un editor destruido, y no hace nada.","warning.duplicate_build":"grideditor.js se ha cargado dos veces: se mantiene el primer GridEditor.","warning.adapter_no_jquery":"grideditor.jquery.js necesita jQuery 4 y la p\xE1gina no tiene jQuery: la API de jQuery no est\xE1 disponible.","error.tinymce_missing":"\xA1tinyMCE no est\xE1 disponible! Aseg\xFArate de haber cargado el archivo js de tinyMCE.","error.ckeditor_missing":"\xA1CKEditor 5 no est\xE1 disponible! Aseg\xFArate de haber cargado su archivo ckeditor5.umd.js.","error.ckeditor_start":"CKEditor no ha podido arrancar: {message}","warning.ckeditor_plugin":"CKEditor no tiene ning\xFAn plugin llamado {name}, as\xED que se deja fuera.","error.codemirror_missing":"\xA1CodeMirror no est\xE1 disponible! Aseg\xFArate de haber cargado el archivo js de CodeMirror; sin \xE9l el c\xF3digo se edita en un textarea normal.","error.summernote_missing":"\xA1Summernote no est\xE1 disponible! Aseg\xFArate de haber cargado jQuery y el archivo js de Summernote."};})();
6
+ (May\xFAs para el m\xE1ximo)`,"tool.edit_source":"Editar el c\xF3digo fuente","tool.preview":"Vista previa","panel.title":"Ajustes: {kind}","panel.close":"Cerrar","panel.done":"Hecho","panel.id":"Id","panel.classes":"Clases","panel.editor":"Editor","panel.kind_row":"Fila","panel.kind_column":"Columna","panel.kind_text":"Texto","panel.kind_element":"Elemento","panel.kind_section":"Secci\xF3n","panel.kind_tab":"Pesta\xF1a","panel.kind_accordion_item":"Elemento de acorde\xF3n","tool.id_placeholder":"id","tool.id_title":"Asignar un identificador \xFAnico","tool.classes_placeholder":"clases","tool.classes_title":"Clases css, separadas por espacios","tool.toggle_class":'Aplicar o quitar el estilo "{label}"',"row.add":"A\xF1adir fila {layout}","row.add_row_cols":"A\xF1adir una fila de {columns} columnas, {counts} por fila","container.add_tabs":"Pesta\xF1as","container.add_tab":"A\xF1adir pesta\xF1a","container.tab_label":"Pesta\xF1a {number}","container.tabs_section":"Pesta\xF1as","container.tabs_style":"Estilo","container.tabs_style_tabs":"Pesta\xF1as","container.tabs_style_pills":"Pills","container.tabs_style_underline":"Subrayado","container.tabs_width":"Ancho","container.tabs_width_natural":"Natural","container.tabs_width_fill":"Rellenar","container.tabs_width_justified":"Justificado","container.tabs_align":"Alineaci\xF3n","container.tabs_align_start":"Inicio","container.tabs_align_center":"Centro","container.tabs_align_end":"Fin","container.tabs_layout":"Disposici\xF3n","container.tabs_layout_horizontal":"Horizontal","container.tabs_layout_vertical":"Vertical","container.tabs_layout_vertical_from":"Vertical desde {breakpoint}","container.add_accordion":"Acorde\xF3n","container.add_accordion_item":"A\xF1adir apartado","container.accordion_label":"Apartado {number}","container.add_popup":"Ventana emergente","container.popup_title":"T\xEDtulo","container.popup_trigger":"Abrir","container.add_card":"Tarjeta","container.card_title":"T\xEDtulo de la tarjeta","container.card_footer":"Pie de la tarjeta","confirm.title":"Confirmar","confirm.ok":"Borrar","confirm.cancel":"Cancelar","confirm.delete_row":"\xBFSeguro que quieres borrar esta fila?","confirm.delete_column":"\xBFSeguro que quieres borrar esta columna?","confirm.delete_text":"\xBFSeguro que quieres borrar este texto?","confirm.delete_plain":"\xBFSeguro que quieres borrar este contenido?","confirm.delete_element":"\xBFSeguro que quieres borrar este elemento?","confirm.delete_container":"\xBFSeguro que quieres borrar este contenedor y todo su contenido?","confirm.delete_tab":"\xBFSeguro que quieres borrar esta pesta\xF1a y todo su contenido?","confirm.delete_accordion_item":"\xBFSeguro que quieres borrar este apartado y todo su contenido?","view.all":"Todos los tama\xF1os","view.xs":"M\xF3vil","view.sm":"Tablet","view.md":"Escritorio peque\xF1o","view.lg":"Escritorio","view.xl":"Escritorio grande","view.xxl":"Pantalla panor\xE1mica","utility.section":"Responsive: {view}","utility.col_width":"Ancho","utility.col_equal":"Igual","utility.col_auto":"Auto","section.add":"Secci\xF3n","section.width":"Ancho","section.fixed":"Fijo","section.fluid":"Ancho completo","section.from":"Fijo desde {breakpoint}","tool.add_row_to_section":"A\xF1adir fila","tool.delete_section":"Quitar secci\xF3n","confirm.delete_section":"\xBFSeguro que quieres borrar esta secci\xF3n y todo su contenido?","tool.copy":"Copiar","tool.paste":"Pegar","clipboard.paste_row":"Pegar fila","clipboard.paste_section":"Pegar secci\xF3n","utility.col_from_row":"De la fila: {count}","utility.row_cols":"Columnas por fila","badge.row_cols":"{count} por fila","badge.row_cols_auto":"Tan anchas como su contenido","utility.default":"Por defecto","utility.inherit":"Hereda: {value} (de {breakpoint})","utility.varies":"Cambia en {breakpoints}; elegir aqu\xED lo sustituye","utility.display":"Display","utility.visibility_hidden":"Oculto","tool.hide_in_view":"Ocultar en esta vista","tool.show_in_view":"Mostrar en esta vista","badge.hidden_in":"Oculto en {breakpoints}","utility.order":"Orden","utility.order_first":"Primero","utility.order_last":"\xDAltimo","tool.order_earlier":"Antes en esta vista","tool.order_later":"Despu\xE9s en esta vista","badge.order":"Orden: {value}","utility.justify_content":"Justificar columnas","utility.align_items":"Alinear columnas","utility.align_content":"Alinear l\xEDneas","utility.flex_direction":"Direcci\xF3n","utility.flex_wrap":"Salto de l\xEDnea","utility.gap":"Separaci\xF3n","utility.row_gap":"Separaci\xF3n entre filas","utility.column_gap":"Separaci\xF3n entre columnas","utility.flex_fill":"Rellenar","utility.flex_grow":"Crecer","utility.flex_shrink":"Encoger","utility.sticky":"Fijo al desplazar","utility.align_self":"Alinearse","utility.gutters":"Espaciado entre columnas","utility.gutters_x":"Espaciado horizontal","utility.gutters_y":"Espaciado vertical","utility.padding":"Relleno","utility.margin":"Margen","utility.side_all":"Todos los lados","utility.side_x":"Izquierda y derecha","utility.side_y":"Arriba y abajo","utility.side_t":"Arriba","utility.side_b":"Abajo","utility.side_s":"Inicio","utility.side_e":"Fin","utility.text_align":"Alineaci\xF3n del texto","utility.text_start":"Inicio","utility.text_center":"Centro","utility.text_end":"Fin","utility.float":"Flotar","utility.float_start":"Inicio","utility.float_end":"Fin","utility.float_none":"Ninguno","utility.spacing_gutter":"El relleno lateral de una columna es su espaciado: cambiarlo cambia el espacio entre columnas","style.section_title":"Estilo","style.dialog_title":"Estilo: {kind}","style.section_size":"Tama\xF1o","style.section_spacing":"Espaciado","style.section_border":"Borde","style.section_background":"Fondo","style.section_text":"Texto","style.section_typography":"Tipograf\xEDa","style.section_display":"Visualizaci\xF3n","style.section_flex":"Flex","style.section_position":"Posici\xF3n","style.section_custom":"CSS libre","style.all_sizes":"Se aplica a todos los tama\xF1os","style.overridden":"La clase {class} tiene prioridad sobre este valor","style.invalid":"Esta propiedad no acepta ese valor","style.catalog":"Clases de Bootstrap","style.shadow_x":"X","style.shadow_y":"Y","style.shadow_blur":"Desenfoque","style.shadow_spread":"Extensi\xF3n","style.shadow_color":"Color","style.shadow_inset":"Interior","style.shadow_text_mode":"Editar como texto","style.prop_width":"Ancho","style.prop_height":"Alto","style.prop_min_width":"Ancho m\xEDnimo","style.prop_min_height":"Alto m\xEDnimo","style.prop_max_width":"Ancho m\xE1ximo","style.prop_max_height":"Alto m\xE1ximo","style.prop_margin_top":"Margen superior","style.prop_margin_right":"Margen derecho","style.prop_margin_bottom":"Margen inferior","style.prop_margin_left":"Margen izquierdo","style.prop_padding_top":"Relleno superior","style.prop_padding_right":"Relleno derecho","style.prop_padding_bottom":"Relleno inferior","style.prop_padding_left":"Relleno izquierdo","style.prop_border_width":"Grosor del borde","style.prop_border_style":"Estilo del borde","style.prop_border_color":"Color del borde","style.prop_border_radius":"Radio del borde","style.prop_box_shadow":"Sombra","style.prop_background_color":"Color de fondo","style.prop_background_image":"Imagen de fondo","style.prop_background_size":"Tama\xF1o del fondo","style.prop_background_position":"Posici\xF3n del fondo","style.prop_background_repeat":"Repetici\xF3n del fondo","style.prop_color":"Color","style.prop_font_size":"Tama\xF1o de letra","style.prop_text_align":"Alineaci\xF3n","style.prop_text_shadow":"Sombra del texto","style.prop_font_family":"Fuente","style.prop_font_weight":"Grosor de letra","style.prop_font_style":"Estilo de letra","style.prop_line_height":"Interlineado","style.prop_letter_spacing":"Espaciado entre letras","style.prop_text_transform":"May\xFAsculas","style.prop_text_decoration":"Decoraci\xF3n","style.prop_display":"Display","style.prop_opacity":"Opacidad","style.prop_overflow":"Desbordamiento","style.prop_visibility":"Visibilidad","style.prop_position":"Posici\xF3n","style.prop_top":"Arriba","style.prop_right":"Derecha","style.prop_bottom":"Abajo","style.prop_left":"Izquierda","style.prop_z_index":"Z-index","error.sortable_missing":"\xA1SortableJS no est\xE1 disponible! Aseg\xFArate de haber cargado el archivo js de Sortable; sin \xE9l no se puede arrastrar.","warning.already_editing":"Este elemento ya tiene un editor: se devuelve ese, con las opciones con las que se cre\xF3.","warning.destroyed":"Se ha llamado a {method}() en un editor destruido, y no hace nada.","warning.duplicate_build":"grideditor.js se ha cargado dos veces: se mantiene el primer GridEditor.","warning.adapter_no_jquery":"grideditor.jquery.js necesita jQuery 4 y la p\xE1gina no tiene jQuery: la API de jQuery no est\xE1 disponible.","error.tinymce_missing":"\xA1tinyMCE no est\xE1 disponible! Aseg\xFArate de haber cargado el archivo js de tinyMCE.","error.ckeditor_missing":"\xA1CKEditor 5 no est\xE1 disponible! Aseg\xFArate de haber cargado su archivo ckeditor5.umd.js.","error.ckeditor_start":"CKEditor no ha podido arrancar: {message}","warning.ckeditor_plugin":"CKEditor no tiene ning\xFAn plugin llamado {name}, as\xED que se deja fuera.","error.codemirror_missing":"\xA1CodeMirror no est\xE1 disponible! Aseg\xFArate de haber cargado el archivo js de CodeMirror; sin \xE9l el c\xF3digo se edita en un textarea normal.","error.summernote_missing":"\xA1Summernote no est\xE1 disponible! Aseg\xFArate de haber cargado jQuery y el archivo js de Summernote."};})();
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/js/register.js", "../../src/js/locales/grideditor.es.js"],
4
- "sourcesContent": ["/**\n * What a plugin's or a locale's classic script imports in place of the\n * editor: the GridEditor the page already loaded.\n *\n * The build points `import { GridEditor } from '../grideditor.js'` here for\n * the classic scripts, so each registers on the editor the page has rather\n * than bringing its own. Loaded before the editor there is nothing to\n * register on, and saying so is better than a TypeError three calls later.\n */\nvar GridEditor = window.GridEditor;\n\nif (!GridEditor || typeof GridEditor.get !== 'function') {\n throw new Error('grid-editor: load grideditor.js (or grideditor.bundle.min.js) before its plugins, ' +\n 'its locales and grideditor.jquery.js');\n}\n\nexport { GridEditor };\nexport default GridEditor;\n", "/**\n * Spanish strings for grid-editor.\n *\n * Load after the editor and select with `locale: 'es'`:\n *\n * <script src=\"dist/grideditor.min.js\"></script>\n * <script src=\"dist/locales/grideditor.es.js\"></script>\n * <script>new GridEditor('#myGrid', { locale: 'es' });</script>\n *\n * or, as a module, `import '@themarioga/grid-editor/locales/es'`.\n *\n * This is one of the two locales grid-editor ships, so it is held to complete\n * coverage of `GridEditor.locales.en`: test/locales.js fails when a key\n * is missing. Add the Spanish string in the same change that adds the English\n * one, and keep the wording short enough to fit the tooltip or the dropdown\n * item it appears in.\n */\nimport { GridEditor } from '../grideditor.js';\n\nGridEditor.locales.es = {\n 'tool.move': 'Mover',\n 'tool.settings': 'Configuraci\u00F3n',\n 'tool.add_row': 'A\u00F1adir fila',\n 'tool.delete_text': 'Quitar texto',\n 'tool.delete_plain': 'Quitar contenido',\n 'tool.edit_html': 'Editar html',\n 'codemirror.apply': 'Aplicar',\n 'codemirror.cancel': 'Cancelar',\n 'tool.convert_type': 'Editar como texto de {editor}',\n 'text.add': 'Texto',\n 'text.add_type': 'Texto ({editor})',\n 'text.no_editor': 'No hay cargado ning\u00FAn editor de texto \"{type}\": este texto se puede mover y borrar, pero no editar',\n 'text.tinymce': 'tinyMCE',\n 'text.ckeditor': 'CKEditor',\n 'text.summernote': 'Summernote',\n 'tool.add_column': 'A\u00F1adir columna\\n(mant\u00E9n pulsado para elegir el ancho)',\n 'tool.column_size': '{size} de 12',\n 'tool.column_equal': 'Igual: reparte lo que queda de la fila',\n 'tool.column_auto': 'Auto: tan ancha como su contenido',\n 'tool.delete_row': 'Borrar fila',\n 'tool.delete_column': 'Borrar columna',\n 'tool.delete_element': 'Borrar elemento',\n 'tool.delete_container': 'Borrar contenedor',\n 'tool.delete_pane': 'Borrar panel',\n 'tool.rename': 'Haz doble clic para renombrar',\n 'tool.toggle_popup': 'Plegar esta ventana mientras editas',\n 'tool.element_info': 'Elemento: {name}',\n 'tool.column_narrower': 'Estrechar columna\\n(May\u00FAs para el m\u00EDnimo)',\n 'tool.column_wider': 'Ensanchar columna\\n(May\u00FAs para el m\u00E1ximo)',\n 'tool.indent_decrease': 'Reducir sangr\u00EDa\\n(May\u00FAs para quitarla)',\n 'tool.indent_increase': 'Aumentar sangr\u00EDa\\n(May\u00FAs para el m\u00E1ximo)',\n 'tool.edit_source': 'Editar el c\u00F3digo fuente',\n 'tool.preview': 'Vista previa',\n 'panel.title': 'Ajustes: {kind}',\n 'panel.close': 'Cerrar',\n 'panel.done': 'Hecho',\n 'panel.id': 'Id',\n 'panel.classes': 'Clases',\n 'panel.editor': 'Editor',\n 'panel.kind_row': 'Fila',\n 'panel.kind_column': 'Columna',\n 'panel.kind_text': 'Texto',\n 'panel.kind_element': 'Elemento',\n 'panel.kind_section': 'Secci\u00F3n',\n 'panel.kind_tab': 'Pesta\u00F1a',\n 'panel.kind_accordion_item': 'Elemento de acorde\u00F3n',\n 'tool.id_placeholder': 'id',\n 'tool.id_title': 'Asignar un identificador \u00FAnico',\n 'tool.classes_placeholder': 'clases',\n 'tool.classes_title': 'Clases css, separadas por espacios',\n 'tool.toggle_class': 'Aplicar o quitar el estilo \"{label}\"',\n 'row.add': 'A\u00F1adir fila {layout}',\n 'row.add_row_cols': 'A\u00F1adir una fila de {columns} columnas, {counts} por fila',\n 'container.add_tabs': 'Pesta\u00F1as',\n 'container.add_tab': 'A\u00F1adir pesta\u00F1a',\n 'container.tab_label': 'Pesta\u00F1a {number}',\n 'container.add_accordion': 'Acorde\u00F3n',\n 'container.add_accordion_item': 'A\u00F1adir apartado',\n 'container.accordion_label': 'Apartado {number}',\n 'container.add_popup': 'Ventana emergente',\n 'container.popup_title': 'T\u00EDtulo',\n 'container.popup_trigger': 'Abrir',\n 'container.add_card': 'Tarjeta',\n 'container.card_title': 'T\u00EDtulo de la tarjeta',\n 'container.card_footer': 'Pie de la tarjeta',\n 'confirm.title': 'Confirmar',\n 'confirm.ok': 'Borrar',\n 'confirm.cancel': 'Cancelar',\n 'confirm.delete_row': '\u00BFSeguro que quieres borrar esta fila?',\n 'confirm.delete_column': '\u00BFSeguro que quieres borrar esta columna?',\n 'confirm.delete_text': '\u00BFSeguro que quieres borrar este texto?',\n 'confirm.delete_plain': '\u00BFSeguro que quieres borrar este contenido?',\n 'confirm.delete_element': '\u00BFSeguro que quieres borrar este elemento?',\n 'confirm.delete_container': '\u00BFSeguro que quieres borrar este contenedor y todo su contenido?',\n 'confirm.delete_tab': '\u00BFSeguro que quieres borrar esta pesta\u00F1a y todo su contenido?',\n 'confirm.delete_accordion_item': '\u00BFSeguro que quieres borrar este apartado y todo su contenido?',\n 'view.all': 'Todos los tama\u00F1os',\n 'view.xs': 'M\u00F3vil',\n 'view.sm': 'Tablet',\n 'view.md': 'Escritorio peque\u00F1o',\n 'view.lg': 'Escritorio',\n 'view.xl': 'Escritorio grande',\n 'view.xxl': 'Pantalla panor\u00E1mica',\n 'utility.section': 'Responsive: {view}',\n 'utility.col_width': 'Ancho',\n 'utility.col_equal': 'Igual',\n 'utility.col_auto': 'Auto',\n 'section.add': 'Secci\u00F3n',\n 'section.width': 'Ancho',\n 'section.fixed': 'Fijo',\n 'section.fluid': 'Ancho completo',\n 'section.from': 'Fijo desde {breakpoint}',\n 'tool.add_row_to_section': 'A\u00F1adir fila',\n 'tool.delete_section': 'Quitar secci\u00F3n',\n 'confirm.delete_section': '\u00BFSeguro que quieres borrar esta secci\u00F3n y todo su contenido?',\n 'tool.copy': 'Copiar',\n 'tool.paste': 'Pegar',\n 'clipboard.paste_row': 'Pegar fila',\n 'clipboard.paste_section': 'Pegar secci\u00F3n',\n 'utility.col_from_row': 'De la fila: {count}',\n 'utility.row_cols': 'Columnas por fila',\n 'badge.row_cols': '{count} por fila',\n 'badge.row_cols_auto': 'Tan anchas como su contenido',\n 'utility.default': 'Por defecto',\n 'utility.inherit': 'Hereda: {value} (de {breakpoint})',\n 'utility.varies': 'Cambia en {breakpoints}; elegir aqu\u00ED lo sustituye',\n 'utility.display': 'Display',\n 'utility.visibility_hidden': 'Oculto',\n 'tool.hide_in_view': 'Ocultar en esta vista',\n 'tool.show_in_view': 'Mostrar en esta vista',\n 'badge.hidden_in': 'Oculto en {breakpoints}',\n 'utility.order': 'Orden',\n 'utility.order_first': 'Primero',\n 'utility.order_last': '\u00DAltimo',\n 'tool.order_earlier': 'Antes en esta vista',\n 'tool.order_later': 'Despu\u00E9s en esta vista',\n 'badge.order': 'Orden: {value}',\n 'utility.justify_content': 'Justificar columnas',\n 'utility.align_items': 'Alinear columnas',\n 'utility.align_content': 'Alinear l\u00EDneas',\n 'utility.flex_direction': 'Direcci\u00F3n',\n 'utility.flex_wrap': 'Salto de l\u00EDnea',\n 'utility.gap': 'Separaci\u00F3n',\n 'utility.row_gap': 'Separaci\u00F3n entre filas',\n 'utility.column_gap': 'Separaci\u00F3n entre columnas',\n 'utility.flex_fill': 'Rellenar',\n 'utility.flex_grow': 'Crecer',\n 'utility.flex_shrink': 'Encoger',\n 'utility.sticky': 'Fijo al desplazar',\n 'utility.align_self': 'Alinearse',\n 'utility.gutters': 'Espaciado entre columnas',\n 'utility.gutters_x': 'Espaciado horizontal',\n 'utility.gutters_y': 'Espaciado vertical',\n 'utility.padding': 'Relleno',\n 'utility.margin': 'Margen',\n 'utility.side_all': 'Todos los lados',\n 'utility.side_x': 'Izquierda y derecha',\n 'utility.side_y': 'Arriba y abajo',\n 'utility.side_t': 'Arriba',\n 'utility.side_b': 'Abajo',\n 'utility.side_s': 'Inicio',\n 'utility.side_e': 'Fin',\n 'utility.text_align': 'Alineaci\u00F3n del texto',\n 'utility.text_start': 'Inicio',\n 'utility.text_center': 'Centro',\n 'utility.text_end': 'Fin',\n 'utility.float': 'Flotar',\n 'utility.float_start': 'Inicio',\n 'utility.float_end': 'Fin',\n 'utility.float_none': 'Ninguno',\n 'utility.spacing_gutter': 'El relleno lateral de una columna es su espaciado: cambiarlo cambia el espacio entre columnas',\n 'style.section_title': 'Estilo',\n 'style.dialog_title': 'Estilo: {kind}',\n 'style.section_size': 'Tama\u00F1o',\n 'style.section_spacing': 'Espaciado',\n 'style.section_border': 'Borde',\n 'style.section_background': 'Fondo',\n 'style.section_text': 'Texto',\n 'style.section_typography': 'Tipograf\u00EDa',\n 'style.section_display': 'Visualizaci\u00F3n',\n 'style.section_flex': 'Flex',\n 'style.section_position': 'Posici\u00F3n',\n 'style.section_custom': 'CSS libre',\n 'style.all_sizes': 'Se aplica a todos los tama\u00F1os',\n 'style.overridden': 'La clase {class} tiene prioridad sobre este valor',\n 'style.invalid': 'Esta propiedad no acepta ese valor',\n 'style.catalog': 'Clases de Bootstrap',\n 'style.shadow_x': 'X',\n 'style.shadow_y': 'Y',\n 'style.shadow_blur': 'Desenfoque',\n 'style.shadow_spread': 'Extensi\u00F3n',\n 'style.shadow_color': 'Color',\n 'style.shadow_inset': 'Interior',\n 'style.shadow_text_mode': 'Editar como texto',\n 'style.prop_width': 'Ancho',\n 'style.prop_height': 'Alto',\n 'style.prop_min_width': 'Ancho m\u00EDnimo',\n 'style.prop_min_height': 'Alto m\u00EDnimo',\n 'style.prop_max_width': 'Ancho m\u00E1ximo',\n 'style.prop_max_height': 'Alto m\u00E1ximo',\n 'style.prop_margin_top': 'Margen superior',\n 'style.prop_margin_right': 'Margen derecho',\n 'style.prop_margin_bottom': 'Margen inferior',\n 'style.prop_margin_left': 'Margen izquierdo',\n 'style.prop_padding_top': 'Relleno superior',\n 'style.prop_padding_right': 'Relleno derecho',\n 'style.prop_padding_bottom': 'Relleno inferior',\n 'style.prop_padding_left': 'Relleno izquierdo',\n 'style.prop_border_width': 'Grosor del borde',\n 'style.prop_border_style': 'Estilo del borde',\n 'style.prop_border_color': 'Color del borde',\n 'style.prop_border_radius': 'Radio del borde',\n 'style.prop_box_shadow': 'Sombra',\n 'style.prop_background_color': 'Color de fondo',\n 'style.prop_background_image': 'Imagen de fondo',\n 'style.prop_background_size': 'Tama\u00F1o del fondo',\n 'style.prop_background_position': 'Posici\u00F3n del fondo',\n 'style.prop_background_repeat': 'Repetici\u00F3n del fondo',\n 'style.prop_color': 'Color',\n 'style.prop_font_size': 'Tama\u00F1o de letra',\n 'style.prop_text_align': 'Alineaci\u00F3n',\n 'style.prop_text_shadow': 'Sombra del texto',\n 'style.prop_font_family': 'Fuente',\n 'style.prop_font_weight': 'Grosor de letra',\n 'style.prop_font_style': 'Estilo de letra',\n 'style.prop_line_height': 'Interlineado',\n 'style.prop_letter_spacing': 'Espaciado entre letras',\n 'style.prop_text_transform': 'May\u00FAsculas',\n 'style.prop_text_decoration': 'Decoraci\u00F3n',\n 'style.prop_display': 'Display',\n 'style.prop_opacity': 'Opacidad',\n 'style.prop_overflow': 'Desbordamiento',\n 'style.prop_visibility': 'Visibilidad',\n 'style.prop_position': 'Posici\u00F3n',\n 'style.prop_top': 'Arriba',\n 'style.prop_right': 'Derecha',\n 'style.prop_bottom': 'Abajo',\n 'style.prop_left': 'Izquierda',\n 'style.prop_z_index': 'Z-index',\n 'error.sortable_missing': '\u00A1SortableJS no est\u00E1 disponible! Aseg\u00FArate de haber cargado el archivo js de Sortable; sin \u00E9l no se puede arrastrar.',\n 'warning.already_editing': 'Este elemento ya tiene un editor: se devuelve ese, con las opciones con las que se cre\u00F3.',\n 'warning.destroyed': 'Se ha llamado a {method}() en un editor destruido, y no hace nada.',\n 'warning.duplicate_build': 'grideditor.js se ha cargado dos veces: se mantiene el primer GridEditor.',\n 'warning.adapter_no_jquery': 'grideditor.jquery.js necesita jQuery 4 y la p\u00E1gina no tiene jQuery: la API de jQuery no est\u00E1 disponible.',\n 'error.tinymce_missing': '\u00A1tinyMCE no est\u00E1 disponible! Aseg\u00FArate de haber cargado el archivo js de tinyMCE.',\n 'error.ckeditor_missing': '\u00A1CKEditor 5 no est\u00E1 disponible! Aseg\u00FArate de haber cargado su archivo ckeditor5.umd.js.',\n 'error.ckeditor_start': 'CKEditor no ha podido arrancar: {message}',\n 'warning.ckeditor_plugin': 'CKEditor no tiene ning\u00FAn plugin llamado {name}, as\u00ED que se deja fuera.',\n 'error.codemirror_missing': '\u00A1CodeMirror no est\u00E1 disponible! Aseg\u00FArate de haber cargado el archivo js de CodeMirror; sin \u00E9l el c\u00F3digo se edita en un textarea normal.',\n 'error.summernote_missing': '\u00A1Summernote no est\u00E1 disponible! Aseg\u00FArate de haber cargado jQuery y el archivo js de Summernote.',\n};\n\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/**\n * What a plugin's or a locale's classic script imports in place of the\n * editor: the GridEditor the page already loaded.\n *\n * The build points `import { GridEditor } from '../grideditor.js'` here for\n * the classic scripts, so each registers on the editor the page has rather\n * than bringing its own. Loaded before the editor there is nothing to\n * register on, and saying so is better than a TypeError three calls later.\n */\nvar GridEditor = window.GridEditor;\n\nif (!GridEditor || typeof GridEditor.get !== 'function') {\n throw new Error('grid-editor: load grideditor.js (or grideditor.bundle.min.js) before its plugins, ' +\n 'its locales and grideditor.jquery.js');\n}\n\nexport { GridEditor };\nexport default GridEditor;\n", "/**\n * Spanish strings for grid-editor.\n *\n * Load after the editor and select with `locale: 'es'`:\n *\n * <script src=\"dist/grideditor.min.js\"></script>\n * <script src=\"dist/locales/grideditor.es.js\"></script>\n * <script>new GridEditor('#myGrid', { locale: 'es' });</script>\n *\n * or, as a module, `import '@themarioga/grid-editor/locales/es'`.\n *\n * This is one of the two locales grid-editor ships, so it is held to complete\n * coverage of `GridEditor.locales.en`: test/locales.js fails when a key\n * is missing. Add the Spanish string in the same change that adds the English\n * one, and keep the wording short enough to fit the tooltip or the dropdown\n * item it appears in.\n */\nimport { GridEditor } from '../grideditor.js';\n\nGridEditor.locales.es = {\n 'tool.move': 'Mover',\n 'tool.settings': 'Configuraci\u00F3n',\n 'tool.add_row': 'A\u00F1adir fila',\n 'tool.delete_text': 'Quitar texto',\n 'tool.delete_plain': 'Quitar contenido',\n 'tool.edit_html': 'Editar html',\n 'codemirror.apply': 'Aplicar',\n 'codemirror.cancel': 'Cancelar',\n 'tool.convert_type': 'Editar como texto de {editor}',\n 'text.add': 'Texto',\n 'text.add_type': 'Texto ({editor})',\n 'text.no_editor': 'No hay cargado ning\u00FAn editor de texto \"{type}\": este texto se puede mover y borrar, pero no editar',\n 'text.tinymce': 'tinyMCE',\n 'text.ckeditor': 'CKEditor',\n 'text.summernote': 'Summernote',\n 'tool.add_column': 'A\u00F1adir columna\\n(mant\u00E9n pulsado para elegir el ancho)',\n 'tool.column_size': '{size} de 12',\n 'tool.column_equal': 'Igual: reparte lo que queda de la fila',\n 'tool.column_auto': 'Auto: tan ancha como su contenido',\n 'tool.delete_row': 'Borrar fila',\n 'tool.delete_column': 'Borrar columna',\n 'tool.delete_element': 'Borrar elemento',\n 'tool.delete_container': 'Borrar contenedor',\n 'tool.delete_pane': 'Borrar panel',\n 'tool.rename': 'Haz doble clic para renombrar',\n 'tool.toggle_popup': 'Plegar esta ventana mientras editas',\n 'tool.element_info': 'Elemento: {name}',\n 'tool.column_narrower': 'Estrechar columna\\n(May\u00FAs para el m\u00EDnimo)',\n 'tool.column_wider': 'Ensanchar columna\\n(May\u00FAs para el m\u00E1ximo)',\n 'tool.indent_decrease': 'Reducir sangr\u00EDa\\n(May\u00FAs para quitarla)',\n 'tool.indent_increase': 'Aumentar sangr\u00EDa\\n(May\u00FAs para el m\u00E1ximo)',\n 'tool.edit_source': 'Editar el c\u00F3digo fuente',\n 'tool.preview': 'Vista previa',\n 'panel.title': 'Ajustes: {kind}',\n 'panel.close': 'Cerrar',\n 'panel.done': 'Hecho',\n 'panel.id': 'Id',\n 'panel.classes': 'Clases',\n 'panel.editor': 'Editor',\n 'panel.kind_row': 'Fila',\n 'panel.kind_column': 'Columna',\n 'panel.kind_text': 'Texto',\n 'panel.kind_element': 'Elemento',\n 'panel.kind_section': 'Secci\u00F3n',\n 'panel.kind_tab': 'Pesta\u00F1a',\n 'panel.kind_accordion_item': 'Elemento de acorde\u00F3n',\n 'tool.id_placeholder': 'id',\n 'tool.id_title': 'Asignar un identificador \u00FAnico',\n 'tool.classes_placeholder': 'clases',\n 'tool.classes_title': 'Clases css, separadas por espacios',\n 'tool.toggle_class': 'Aplicar o quitar el estilo \"{label}\"',\n 'row.add': 'A\u00F1adir fila {layout}',\n 'row.add_row_cols': 'A\u00F1adir una fila de {columns} columnas, {counts} por fila',\n 'container.add_tabs': 'Pesta\u00F1as',\n 'container.add_tab': 'A\u00F1adir pesta\u00F1a',\n 'container.tab_label': 'Pesta\u00F1a {number}',\n 'container.tabs_section': 'Pesta\u00F1as',\n 'container.tabs_style': 'Estilo',\n 'container.tabs_style_tabs': 'Pesta\u00F1as',\n 'container.tabs_style_pills': 'Pills',\n 'container.tabs_style_underline': 'Subrayado',\n 'container.tabs_width': 'Ancho',\n 'container.tabs_width_natural': 'Natural',\n 'container.tabs_width_fill': 'Rellenar',\n 'container.tabs_width_justified': 'Justificado',\n 'container.tabs_align': 'Alineaci\u00F3n',\n 'container.tabs_align_start': 'Inicio',\n 'container.tabs_align_center': 'Centro',\n 'container.tabs_align_end': 'Fin',\n 'container.tabs_layout': 'Disposici\u00F3n',\n 'container.tabs_layout_horizontal': 'Horizontal',\n 'container.tabs_layout_vertical': 'Vertical',\n 'container.tabs_layout_vertical_from': 'Vertical desde {breakpoint}',\n 'container.add_accordion': 'Acorde\u00F3n',\n 'container.add_accordion_item': 'A\u00F1adir apartado',\n 'container.accordion_label': 'Apartado {number}',\n 'container.add_popup': 'Ventana emergente',\n 'container.popup_title': 'T\u00EDtulo',\n 'container.popup_trigger': 'Abrir',\n 'container.add_card': 'Tarjeta',\n 'container.card_title': 'T\u00EDtulo de la tarjeta',\n 'container.card_footer': 'Pie de la tarjeta',\n 'confirm.title': 'Confirmar',\n 'confirm.ok': 'Borrar',\n 'confirm.cancel': 'Cancelar',\n 'confirm.delete_row': '\u00BFSeguro que quieres borrar esta fila?',\n 'confirm.delete_column': '\u00BFSeguro que quieres borrar esta columna?',\n 'confirm.delete_text': '\u00BFSeguro que quieres borrar este texto?',\n 'confirm.delete_plain': '\u00BFSeguro que quieres borrar este contenido?',\n 'confirm.delete_element': '\u00BFSeguro que quieres borrar este elemento?',\n 'confirm.delete_container': '\u00BFSeguro que quieres borrar este contenedor y todo su contenido?',\n 'confirm.delete_tab': '\u00BFSeguro que quieres borrar esta pesta\u00F1a y todo su contenido?',\n 'confirm.delete_accordion_item': '\u00BFSeguro que quieres borrar este apartado y todo su contenido?',\n 'view.all': 'Todos los tama\u00F1os',\n 'view.xs': 'M\u00F3vil',\n 'view.sm': 'Tablet',\n 'view.md': 'Escritorio peque\u00F1o',\n 'view.lg': 'Escritorio',\n 'view.xl': 'Escritorio grande',\n 'view.xxl': 'Pantalla panor\u00E1mica',\n 'utility.section': 'Responsive: {view}',\n 'utility.col_width': 'Ancho',\n 'utility.col_equal': 'Igual',\n 'utility.col_auto': 'Auto',\n 'section.add': 'Secci\u00F3n',\n 'section.width': 'Ancho',\n 'section.fixed': 'Fijo',\n 'section.fluid': 'Ancho completo',\n 'section.from': 'Fijo desde {breakpoint}',\n 'tool.add_row_to_section': 'A\u00F1adir fila',\n 'tool.delete_section': 'Quitar secci\u00F3n',\n 'confirm.delete_section': '\u00BFSeguro que quieres borrar esta secci\u00F3n y todo su contenido?',\n 'tool.copy': 'Copiar',\n 'tool.paste': 'Pegar',\n 'clipboard.paste_row': 'Pegar fila',\n 'clipboard.paste_section': 'Pegar secci\u00F3n',\n 'utility.col_from_row': 'De la fila: {count}',\n 'utility.row_cols': 'Columnas por fila',\n 'badge.row_cols': '{count} por fila',\n 'badge.row_cols_auto': 'Tan anchas como su contenido',\n 'utility.default': 'Por defecto',\n 'utility.inherit': 'Hereda: {value} (de {breakpoint})',\n 'utility.varies': 'Cambia en {breakpoints}; elegir aqu\u00ED lo sustituye',\n 'utility.display': 'Display',\n 'utility.visibility_hidden': 'Oculto',\n 'tool.hide_in_view': 'Ocultar en esta vista',\n 'tool.show_in_view': 'Mostrar en esta vista',\n 'badge.hidden_in': 'Oculto en {breakpoints}',\n 'utility.order': 'Orden',\n 'utility.order_first': 'Primero',\n 'utility.order_last': '\u00DAltimo',\n 'tool.order_earlier': 'Antes en esta vista',\n 'tool.order_later': 'Despu\u00E9s en esta vista',\n 'badge.order': 'Orden: {value}',\n 'utility.justify_content': 'Justificar columnas',\n 'utility.align_items': 'Alinear columnas',\n 'utility.align_content': 'Alinear l\u00EDneas',\n 'utility.flex_direction': 'Direcci\u00F3n',\n 'utility.flex_wrap': 'Salto de l\u00EDnea',\n 'utility.gap': 'Separaci\u00F3n',\n 'utility.row_gap': 'Separaci\u00F3n entre filas',\n 'utility.column_gap': 'Separaci\u00F3n entre columnas',\n 'utility.flex_fill': 'Rellenar',\n 'utility.flex_grow': 'Crecer',\n 'utility.flex_shrink': 'Encoger',\n 'utility.sticky': 'Fijo al desplazar',\n 'utility.align_self': 'Alinearse',\n 'utility.gutters': 'Espaciado entre columnas',\n 'utility.gutters_x': 'Espaciado horizontal',\n 'utility.gutters_y': 'Espaciado vertical',\n 'utility.padding': 'Relleno',\n 'utility.margin': 'Margen',\n 'utility.side_all': 'Todos los lados',\n 'utility.side_x': 'Izquierda y derecha',\n 'utility.side_y': 'Arriba y abajo',\n 'utility.side_t': 'Arriba',\n 'utility.side_b': 'Abajo',\n 'utility.side_s': 'Inicio',\n 'utility.side_e': 'Fin',\n 'utility.text_align': 'Alineaci\u00F3n del texto',\n 'utility.text_start': 'Inicio',\n 'utility.text_center': 'Centro',\n 'utility.text_end': 'Fin',\n 'utility.float': 'Flotar',\n 'utility.float_start': 'Inicio',\n 'utility.float_end': 'Fin',\n 'utility.float_none': 'Ninguno',\n 'utility.spacing_gutter': 'El relleno lateral de una columna es su espaciado: cambiarlo cambia el espacio entre columnas',\n 'style.section_title': 'Estilo',\n 'style.dialog_title': 'Estilo: {kind}',\n 'style.section_size': 'Tama\u00F1o',\n 'style.section_spacing': 'Espaciado',\n 'style.section_border': 'Borde',\n 'style.section_background': 'Fondo',\n 'style.section_text': 'Texto',\n 'style.section_typography': 'Tipograf\u00EDa',\n 'style.section_display': 'Visualizaci\u00F3n',\n 'style.section_flex': 'Flex',\n 'style.section_position': 'Posici\u00F3n',\n 'style.section_custom': 'CSS libre',\n 'style.all_sizes': 'Se aplica a todos los tama\u00F1os',\n 'style.overridden': 'La clase {class} tiene prioridad sobre este valor',\n 'style.invalid': 'Esta propiedad no acepta ese valor',\n 'style.catalog': 'Clases de Bootstrap',\n 'style.shadow_x': 'X',\n 'style.shadow_y': 'Y',\n 'style.shadow_blur': 'Desenfoque',\n 'style.shadow_spread': 'Extensi\u00F3n',\n 'style.shadow_color': 'Color',\n 'style.shadow_inset': 'Interior',\n 'style.shadow_text_mode': 'Editar como texto',\n 'style.prop_width': 'Ancho',\n 'style.prop_height': 'Alto',\n 'style.prop_min_width': 'Ancho m\u00EDnimo',\n 'style.prop_min_height': 'Alto m\u00EDnimo',\n 'style.prop_max_width': 'Ancho m\u00E1ximo',\n 'style.prop_max_height': 'Alto m\u00E1ximo',\n 'style.prop_margin_top': 'Margen superior',\n 'style.prop_margin_right': 'Margen derecho',\n 'style.prop_margin_bottom': 'Margen inferior',\n 'style.prop_margin_left': 'Margen izquierdo',\n 'style.prop_padding_top': 'Relleno superior',\n 'style.prop_padding_right': 'Relleno derecho',\n 'style.prop_padding_bottom': 'Relleno inferior',\n 'style.prop_padding_left': 'Relleno izquierdo',\n 'style.prop_border_width': 'Grosor del borde',\n 'style.prop_border_style': 'Estilo del borde',\n 'style.prop_border_color': 'Color del borde',\n 'style.prop_border_radius': 'Radio del borde',\n 'style.prop_box_shadow': 'Sombra',\n 'style.prop_background_color': 'Color de fondo',\n 'style.prop_background_image': 'Imagen de fondo',\n 'style.prop_background_size': 'Tama\u00F1o del fondo',\n 'style.prop_background_position': 'Posici\u00F3n del fondo',\n 'style.prop_background_repeat': 'Repetici\u00F3n del fondo',\n 'style.prop_color': 'Color',\n 'style.prop_font_size': 'Tama\u00F1o de letra',\n 'style.prop_text_align': 'Alineaci\u00F3n',\n 'style.prop_text_shadow': 'Sombra del texto',\n 'style.prop_font_family': 'Fuente',\n 'style.prop_font_weight': 'Grosor de letra',\n 'style.prop_font_style': 'Estilo de letra',\n 'style.prop_line_height': 'Interlineado',\n 'style.prop_letter_spacing': 'Espaciado entre letras',\n 'style.prop_text_transform': 'May\u00FAsculas',\n 'style.prop_text_decoration': 'Decoraci\u00F3n',\n 'style.prop_display': 'Display',\n 'style.prop_opacity': 'Opacidad',\n 'style.prop_overflow': 'Desbordamiento',\n 'style.prop_visibility': 'Visibilidad',\n 'style.prop_position': 'Posici\u00F3n',\n 'style.prop_top': 'Arriba',\n 'style.prop_right': 'Derecha',\n 'style.prop_bottom': 'Abajo',\n 'style.prop_left': 'Izquierda',\n 'style.prop_z_index': 'Z-index',\n 'error.sortable_missing': '\u00A1SortableJS no est\u00E1 disponible! Aseg\u00FArate de haber cargado el archivo js de Sortable; sin \u00E9l no se puede arrastrar.',\n 'warning.already_editing': 'Este elemento ya tiene un editor: se devuelve ese, con las opciones con las que se cre\u00F3.',\n 'warning.destroyed': 'Se ha llamado a {method}() en un editor destruido, y no hace nada.',\n 'warning.duplicate_build': 'grideditor.js se ha cargado dos veces: se mantiene el primer GridEditor.',\n 'warning.adapter_no_jquery': 'grideditor.jquery.js necesita jQuery 4 y la p\u00E1gina no tiene jQuery: la API de jQuery no est\u00E1 disponible.',\n 'error.tinymce_missing': '\u00A1tinyMCE no est\u00E1 disponible! Aseg\u00FArate de haber cargado el archivo js de tinyMCE.',\n 'error.ckeditor_missing': '\u00A1CKEditor 5 no est\u00E1 disponible! Aseg\u00FArate de haber cargado su archivo ckeditor5.umd.js.',\n 'error.ckeditor_start': 'CKEditor no ha podido arrancar: {message}',\n 'warning.ckeditor_plugin': 'CKEditor no tiene ning\u00FAn plugin llamado {name}, as\u00ED que se deja fuera.',\n 'error.codemirror_missing': '\u00A1CodeMirror no est\u00E1 disponible! Aseg\u00FArate de haber cargado el archivo js de CodeMirror; sin \u00E9l el c\u00F3digo se edita en un textarea normal.',\n 'error.summernote_missing': '\u00A1Summernote no est\u00E1 disponible! Aseg\u00FArate de haber cargado jQuery y el archivo js de Summernote.',\n};\n\n"],
5
+ "mappings": "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",
6
6
  "names": ["GridEditor", "GridEditor"]
7
7
  }
@@ -8,6 +8,16 @@ function all(root, selector) {
8
8
  function one(root, selector) {
9
9
  return root ? root.querySelector(selector) : null;
10
10
  }
11
+ function selfAndAll(root, selector) {
12
+ if (!root) {
13
+ return [];
14
+ }
15
+ var found = all(root, selector);
16
+ if (root.nodeType === 1 && root.matches(selector)) {
17
+ found.unshift(root);
18
+ }
19
+ return found;
20
+ }
11
21
  function children(node, selector) {
12
22
  if (!node) {
13
23
  return [];
@@ -60,6 +70,12 @@ function hasClass(node, name) {
60
70
  function split(names) {
61
71
  return String(names || "").split(/\s+/).filter(Boolean);
62
72
  }
73
+ function dropEmptyClass(node) {
74
+ if (!node.getAttribute("class")) {
75
+ node.removeAttribute("class");
76
+ }
77
+ return node;
78
+ }
63
79
  function hide(node) {
64
80
  node.style.display = "none";
65
81
  return node;
@@ -106,12 +122,238 @@ Object.assign(GridEditor.locales.en, {
106
122
  "container.add_tabs": "Tabs",
107
123
  "container.add_tab": "Add tab",
108
124
  "container.tab_label": "Tab {number}",
109
- "confirm.delete_tab": "Delete this tab and everything in it?"
125
+ "confirm.delete_tab": "Delete this tab and everything in it?",
126
+ "container.tabs_section": "Tabs",
127
+ "container.tabs_style": "Style",
128
+ "container.tabs_style_tabs": "Tabs",
129
+ "container.tabs_style_pills": "Pills",
130
+ "container.tabs_style_underline": "Underline",
131
+ "container.tabs_width": "Width",
132
+ "container.tabs_width_natural": "Natural",
133
+ "container.tabs_width_fill": "Fill",
134
+ "container.tabs_width_justified": "Justified",
135
+ "container.tabs_align": "Alignment",
136
+ "container.tabs_align_start": "Start",
137
+ "container.tabs_align_center": "Center",
138
+ "container.tabs_align_end": "End",
139
+ "container.tabs_layout": "Layout",
140
+ "container.tabs_layout_horizontal": "Horizontal",
141
+ "container.tabs_layout_vertical": "Vertical",
142
+ "container.tabs_layout_vertical_from": "Vertical from {breakpoint}"
110
143
  });
144
+ var STYLES = { tabs: "nav-tabs", pills: "nav-pills", underline: "nav-underline" };
145
+ var WIDTHS = { natural: null, fill: "nav-fill", justified: "nav-justified" };
146
+ var ALIGNS = { start: null, center: "justify-content-center", end: "justify-content-end" };
147
+ var DEFAULTS = { variant: "tabs", width: "natural", align: "start", vertical: false };
148
+ var FIELDS = {
149
+ variant: { labelKey: "container.tabs_style", choices: [
150
+ { value: "tabs", labelKey: "container.tabs_style_tabs" },
151
+ { value: "pills", labelKey: "container.tabs_style_pills" },
152
+ { value: "underline", labelKey: "container.tabs_style_underline" }
153
+ ] },
154
+ width: { labelKey: "container.tabs_width", choices: [
155
+ { value: "natural", labelKey: "container.tabs_width_natural" },
156
+ { value: "fill", labelKey: "container.tabs_width_fill" },
157
+ { value: "justified", labelKey: "container.tabs_width_justified" }
158
+ ] },
159
+ align: { labelKey: "container.tabs_align", choices: [
160
+ { value: "start", labelKey: "container.tabs_align_start" },
161
+ { value: "center", labelKey: "container.tabs_align_center" },
162
+ { value: "end", labelKey: "container.tabs_align_end" }
163
+ ] },
164
+ vertical: { labelKey: "container.tabs_layout" }
165
+ };
166
+ var fieldCounter = 0;
167
+ var LAYOUT_ATTR = "data-ge-tabs-layout";
168
+ function classValues(map) {
169
+ return Object.keys(map).map(function(key) {
170
+ return map[key];
171
+ }).filter(Boolean);
172
+ }
111
173
  GridEditor.containers.tabs = function(ge) {
174
+ var sections = [];
175
+ function stripOf(container) {
176
+ return child(container, ".nav");
177
+ }
178
+ function fromBreakpoints() {
179
+ return ge.breakpoints.slice(1);
180
+ }
181
+ function infix(vertical) {
182
+ return vertical === true ? "" : "-" + vertical;
183
+ }
184
+ function verticalClasses(vertical) {
185
+ var at = infix(vertical);
186
+ return {
187
+ container: ["d" + at + "-flex", "align-items" + at + "-start"],
188
+ strip: ["flex" + at + "-column", "me" + at + "-3"]
189
+ };
190
+ }
191
+ function verticals() {
192
+ return [true].concat(fromBreakpoints());
193
+ }
194
+ function read(container) {
195
+ var strip = stripOf(container);
196
+ var has = function(node, name) {
197
+ return !!node && hasClass(node, name);
198
+ };
199
+ var found = function(map, fallback) {
200
+ return Object.keys(map).filter(function(key) {
201
+ return map[key] && has(strip, map[key]);
202
+ })[0] || fallback;
203
+ };
204
+ var vertical = verticals().filter(function(each) {
205
+ var classes = verticalClasses(each);
206
+ return has(container, classes.container[0]) && has(strip, classes.strip[0]);
207
+ })[0];
208
+ return {
209
+ variant: found(STYLES, "tabs"),
210
+ width: found(WIDTHS, "natural"),
211
+ align: found(ALIGNS, "start"),
212
+ vertical: vertical === void 0 ? false : vertical
213
+ };
214
+ }
215
+ function write(container, key, value) {
216
+ var strip = stripOf(container);
217
+ if (!strip) {
218
+ return;
219
+ }
220
+ if (key === "variant") {
221
+ removeClass(strip, classValues(STYLES).join(" "));
222
+ addClass(strip, STYLES[value]);
223
+ }
224
+ if (key === "width" || key === "vertical") {
225
+ removeClass(strip, classValues(WIDTHS).join(" "));
226
+ if (key === "width" && WIDTHS[value]) {
227
+ addClass(strip, WIDTHS[value]);
228
+ }
229
+ }
230
+ if (key === "align" || key === "vertical" || key === "width" && value !== "natural") {
231
+ removeClass(strip, classValues(ALIGNS).join(" "));
232
+ if (key === "align" && ALIGNS[value]) {
233
+ addClass(strip, ALIGNS[value]);
234
+ }
235
+ }
236
+ if (key === "vertical") {
237
+ verticals().forEach(function(each) {
238
+ var classes = verticalClasses(each);
239
+ removeClass(container, classes.container.join(" "));
240
+ removeClass(strip, classes.strip.join(" "));
241
+ });
242
+ strip.removeAttribute("aria-orientation");
243
+ if (value !== false) {
244
+ var layout = verticalClasses(value);
245
+ addClass(container, layout.container.join(" "));
246
+ addClass(strip, layout.strip.join(" "));
247
+ strip.setAttribute("aria-orientation", "vertical");
248
+ }
249
+ }
250
+ dropEmptyClass(container);
251
+ }
252
+ function valuesOf(key) {
253
+ if (key === "variant") {
254
+ return Object.keys(STYLES);
255
+ }
256
+ if (key === "width") {
257
+ return Object.keys(WIDTHS);
258
+ }
259
+ if (key === "align") {
260
+ return Object.keys(ALIGNS);
261
+ }
262
+ return [false].concat(verticals());
263
+ }
264
+ function chosen(options, key) {
265
+ var setting = ge.settings.tabs || {};
266
+ var value = options[key] !== void 0 ? options[key] : setting[key];
267
+ if (value === void 0) {
268
+ return DEFAULTS[key];
269
+ }
270
+ if (valuesOf(key).indexOf(value) !== -1) {
271
+ return value;
272
+ }
273
+ ge.warn("tabs: " + JSON.stringify(value) + " is not a " + key + ", which takes " + JSON.stringify(valuesOf(key)) + ": " + JSON.stringify(DEFAULTS[key]) + " is used");
274
+ return DEFAULTS[key];
275
+ }
276
+ function layoutHere(container) {
277
+ var vertical = read(container).vertical;
278
+ if (vertical === false) {
279
+ return null;
280
+ }
281
+ if (ge.view() === "all") {
282
+ container.removeAttribute(LAYOUT_ATTR);
283
+ return /flex$/.test(getComputedStyle(container).display) ? "vertical" : "horizontal";
284
+ }
285
+ if (vertical === true) {
286
+ return "vertical";
287
+ }
288
+ return ge.breakpoints.indexOf(ge.view()) >= ge.breakpoints.indexOf(vertical) ? "vertical" : "horizontal";
289
+ }
290
+ function markLayout(container) {
291
+ var layout = layoutHere(container);
292
+ if (layout) {
293
+ container.setAttribute(LAYOUT_ATTR, layout);
294
+ } else {
295
+ container.removeAttribute(LAYOUT_ATTR);
296
+ }
297
+ }
298
+ function select(labelKey, options, onChange) {
299
+ var box = element("div", { "class": "ge-tabs-variant" });
300
+ var id = "ge-tabs-variant-" + ++fieldCounter;
301
+ box.appendChild(element("label", { "class": "form-label", "for": id }, ge.t(labelKey)));
302
+ var field = box.appendChild(element("select", { "class": "form-select form-select-sm", id }));
303
+ options.forEach(function(option) {
304
+ field.appendChild(element("option", { value: option.value }, option.label));
305
+ });
306
+ field.addEventListener("change", function() {
307
+ onChange(field.value);
308
+ });
309
+ return { box, field };
310
+ }
311
+ function createSection(container) {
312
+ var body = element("div", { "class": "ge-tabs-variants" });
313
+ var fields = {};
314
+ function change(key, value) {
315
+ write(container, key, value);
316
+ markLayout(container);
317
+ render();
318
+ }
319
+ function options(key) {
320
+ return FIELDS[key].choices.map(function(choice) {
321
+ return { value: choice.value, label: ge.t(choice.labelKey) };
322
+ });
323
+ }
324
+ ["variant", "width", "align"].forEach(function(key) {
325
+ fields[key] = select(FIELDS[key].labelKey, options(key), function(value) {
326
+ change(key, value);
327
+ });
328
+ });
329
+ fields.vertical = select(FIELDS.vertical.labelKey, [
330
+ { value: "false", label: ge.t("container.tabs_layout_horizontal") },
331
+ { value: "true", label: ge.t("container.tabs_layout_vertical") }
332
+ ].concat(fromBreakpoints().map(function(key) {
333
+ return { value: key, label: ge.t("container.tabs_layout_vertical_from", { breakpoint: key }) };
334
+ })), function(value) {
335
+ change("vertical", value === "true" ? true : value === "false" ? false : value);
336
+ });
337
+ ["variant", "width", "align", "vertical"].forEach(function(key) {
338
+ fields[key].box.setAttribute("data-ge-tabs-variant", key);
339
+ body.appendChild(fields[key].box);
340
+ });
341
+ function render() {
342
+ var values = read(container);
343
+ fields.variant.field.value = values.variant;
344
+ fields.width.field.value = values.width;
345
+ fields.align.field.value = values.align;
346
+ fields.vertical.field.value = String(values.vertical);
347
+ fields.width.field.disabled = values.vertical !== false;
348
+ fields.align.field.disabled = values.vertical !== false || values.width !== "natural";
349
+ }
350
+ render();
351
+ sections.push({ container, element: body, render });
352
+ return body;
353
+ }
112
354
  function addTabTo(container, options) {
113
355
  options = options || {};
114
- var strip = one(container, ":scope > .nav-tabs");
356
+ var strip = stripOf(container);
115
357
  var content = one(container, ":scope > .tab-content");
116
358
  var id = ge.containerId("tab");
117
359
  var number = children(strip, ".nav-item").length + 1;
@@ -147,7 +389,7 @@ GridEditor.containers.tabs = function(ge) {
147
389
  removeClass(each, "show active");
148
390
  });
149
391
  addClass(pane, "show active");
150
- all(container, ":scope > .nav-tabs .nav-link").forEach(function(button) {
392
+ all(stripOf(container) || container, ".nav-link").forEach(function(button) {
151
393
  var active = button.getAttribute("data-bs-target") === "#" + id;
152
394
  toggleClass(button, "active", active);
153
395
  button.setAttribute("aria-selected", active ? "true" : "false");
@@ -163,7 +405,7 @@ GridEditor.containers.tabs = function(ge) {
163
405
  // A tab strip sorts its own tabs, and the panes follow them. No
164
406
  // group: a tab belongs to the strip it was made in.
165
407
  onSortable: function(sortable) {
166
- sortable(all(ge.canvas, ".ge-container-tabs > .nav-tabs"), {
408
+ sortable(all(ge.canvas, ".ge-container-tabs").map(stripOf).filter(Boolean), {
167
409
  draggable: ".ge-tab"
168
410
  });
169
411
  },
@@ -175,6 +417,9 @@ GridEditor.containers.tabs = function(ge) {
175
417
  var count = options.tabs || labels.length || 2;
176
418
  container.appendChild(element("ul", { "class": "nav nav-tabs", role: "tablist" }));
177
419
  container.appendChild(element("div", { "class": "tab-content" }));
420
+ ["variant", "width", "align", "vertical"].forEach(function(key) {
421
+ write(container, key, chosen(options, key));
422
+ });
178
423
  for (var i = 0; i < count; i++) {
179
424
  addTabTo(container, { label: labels[i] });
180
425
  }
@@ -185,7 +430,7 @@ GridEditor.containers.tabs = function(ge) {
185
430
  all(container, ":scope > .tab-content > .tab-pane").forEach(function(pane) {
186
431
  addClass(pane, "ge-tab-pane");
187
432
  });
188
- all(container, ":scope > .nav-tabs > .nav-item").forEach(function(tab) {
433
+ children(stripOf(container) || container, ".nav-item").forEach(function(tab) {
189
434
  addClass(tab, "ge-tab");
190
435
  var link = one(tab, ".nav-link");
191
436
  if (link) {
@@ -218,15 +463,38 @@ GridEditor.containers.tabs = function(ge) {
218
463
  },
219
464
  unmark: function(container) {
220
465
  ge.resumeToggles(container);
466
+ container.removeAttribute(LAYOUT_ATTR);
221
467
  all(container, ".ge-tab-pane").forEach(function(pane) {
222
468
  removeClass(pane, "ge-tab-pane");
223
469
  });
224
470
  ge.unwrapLabels(container);
225
471
  },
472
+ panelSection: function(node, kind) {
473
+ if (kind !== "tabs" || !stripOf(node)) {
474
+ return null;
475
+ }
476
+ return { labelKey: "container.tabs_section", body: createSection(node) };
477
+ },
478
+ // After a view change or a change of classes: the layout marks and the
479
+ // sections follow
480
+ onRefresh: function(scope) {
481
+ selfAndAll(scope, '[data-ge-container="tabs"]').forEach(markLayout);
482
+ sections = sections.filter(function(entry) {
483
+ return entry.element.isConnected;
484
+ });
485
+ sections.forEach(function(entry) {
486
+ if (entry.container === scope || scope.contains(entry.container)) {
487
+ entry.render();
488
+ }
489
+ });
490
+ },
491
+ onDeinit: function() {
492
+ sections = [];
493
+ },
226
494
  /** Panes read in tab order, whatever order they were dropped in. */
227
495
  afterPaneMove: function(container) {
228
496
  var content = one(container, ":scope > .tab-content");
229
- all(container, ":scope > .nav-tabs > .nav-item").forEach(function(tab) {
497
+ children(stripOf(container) || container, ".nav-item").forEach(function(tab) {
230
498
  var pane = paneOf(container, tab);
231
499
  if (pane) {
232
500
  content.appendChild(pane);