@themarioga/grid-editor 7.1.0 → 7.2.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.
@@ -152,7 +152,9 @@ GridEditor.locales.es = {
152
152
  "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.",
153
153
  "warning.oninit_removed": "La opci\xF3n oninit de tinyMCE se elimin\xF3 en la 7.0 y se ignora: usa init_instance_callback.",
154
154
  "error.tinymce_missing": "\xA1tinyMCE no est\xE1 disponible! Aseg\xFArate de haber cargado el archivo js de tinyMCE.",
155
- "error.ckeditor_missing": "\xA1CKEditor no est\xE1 disponible! Aseg\xFArate de haber cargado el archivo js de CKEditor.",
155
+ "error.ckeditor_missing": "\xA1CKEditor 5 no est\xE1 disponible! Aseg\xFArate de haber cargado su archivo ckeditor5.umd.js: CKEditor 4 ya no est\xE1 soportado.",
156
+ "error.ckeditor_start": "CKEditor no ha podido arrancar: {message}",
157
+ "warning.ckeditor_plugin": "CKEditor no tiene ning\xFAn plugin llamado {name}, as\xED que se deja fuera.",
156
158
  "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.",
157
159
  "error.summernote_missing": "\xA1Summernote no est\xE1 disponible! Aseg\xFArate de haber cargado jQuery y el archivo js de Summernote."
158
160
  };
@@ -158,7 +158,9 @@
158
158
  "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.",
159
159
  "warning.oninit_removed": "La opci\xF3n oninit de tinyMCE se elimin\xF3 en la 7.0 y se ignora: usa init_instance_callback.",
160
160
  "error.tinymce_missing": "\xA1tinyMCE no est\xE1 disponible! Aseg\xFArate de haber cargado el archivo js de tinyMCE.",
161
- "error.ckeditor_missing": "\xA1CKEditor no est\xE1 disponible! Aseg\xFArate de haber cargado el archivo js de CKEditor.",
161
+ "error.ckeditor_missing": "\xA1CKEditor 5 no est\xE1 disponible! Aseg\xFArate de haber cargado su archivo ckeditor5.umd.js: CKEditor 4 ya no est\xE1 soportado.",
162
+ "error.ckeditor_start": "CKEditor no ha podido arrancar: {message}",
163
+ "warning.ckeditor_plugin": "CKEditor no tiene ning\xFAn plugin llamado {name}, as\xED que se deja fuera.",
162
164
  "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.",
163
165
  "error.summernote_missing": "\xA1Summernote no est\xE1 disponible! Aseg\xFArate de haber cargado jQuery y el archivo js de Summernote."
164
166
  };
@@ -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.visibility":"Visibilidad","utility.visibility_hidden":"Oculto","utility.visibility_shown":"Visible","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_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","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.setting_removed":"El ajuste {setting} se elimin\xF3 en la 4.0. Usa {replacement} en su lugar.","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.plugin_6x":'El plugin "{name}" est\xE1 escrito para grid-editor 6 y no se carga. Desde la 7.0 los plugins se registran en GridEditor: consulta UPGRADING.md.',"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.","warning.oninit_removed":"La opci\xF3n oninit de tinyMCE se elimin\xF3 en la 7.0 y se ignora: usa init_instance_callback.","error.tinymce_missing":"\xA1tinyMCE no est\xE1 disponible! Aseg\xFArate de haber cargado el archivo js de tinyMCE.","error.ckeditor_missing":"\xA1CKEditor no est\xE1 disponible! Aseg\xFArate de haber cargado el archivo js de CKEditor.","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.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.visibility":"Visibilidad","utility.visibility_hidden":"Oculto","utility.visibility_shown":"Visible","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_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","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.setting_removed":"El ajuste {setting} se elimin\xF3 en la 4.0. Usa {replacement} en su lugar.","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.plugin_6x":'El plugin "{name}" est\xE1 escrito para grid-editor 6 y no se carga. Desde la 7.0 los plugins se registran en GridEditor: consulta UPGRADING.md.',"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.","warning.oninit_removed":"La opci\xF3n oninit de tinyMCE se elimin\xF3 en la 7.0 y se ignora: usa init_instance_callback.","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: CKEditor 4 ya no est\xE1 soportado.","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.visibility': 'Visibilidad',\n 'utility.visibility_hidden': 'Oculto',\n 'utility.visibility_shown': 'Visible',\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_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 '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.setting_removed': 'El ajuste {setting} se elimin\u00F3 en la 4.0. Usa {replacement} en su lugar.',\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.plugin_6x': 'El plugin \"{name}\" est\u00E1 escrito para grid-editor 6 y no se carga. Desde la 7.0 los plugins se registran en GridEditor: consulta UPGRADING.md.',\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 'warning.oninit_removed': 'La opci\u00F3n oninit de tinyMCE se elimin\u00F3 en la 7.0 y se ignora: usa init_instance_callback.',\n 'error.tinymce_missing': '\u00A1tinyMCE no est\u00E1 disponible! Aseg\u00FArate de haber cargado el archivo js de tinyMCE.',\n 'error.ckeditor_missing': '\u00A1CKEditor no est\u00E1 disponible! Aseg\u00FArate de haber cargado el archivo js de CKEditor.',\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.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.visibility': 'Visibilidad',\n 'utility.visibility_hidden': 'Oculto',\n 'utility.visibility_shown': 'Visible',\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_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 '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.setting_removed': 'El ajuste {setting} se elimin\u00F3 en la 4.0. Usa {replacement} en su lugar.',\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.plugin_6x': 'El plugin \"{name}\" est\u00E1 escrito para grid-editor 6 y no se carga. Desde la 7.0 los plugins se registran en GridEditor: consulta UPGRADING.md.',\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 'warning.oninit_removed': 'La opci\u00F3n oninit de tinyMCE se elimin\u00F3 en la 7.0 y se ignora: usa init_instance_callback.',\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: CKEditor 4 ya no est\u00E1 soportado.',\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
  }
@@ -407,7 +407,7 @@ if (!GridEditor.features.text) {
407
407
  });
408
408
  readBefore = /* @__PURE__ */ new WeakMap();
409
409
  readReady = /* @__PURE__ */ new WeakMap();
410
- EDITOR_CLASS = /^(mce-|cke|note-)|^(active|ge-rte-active)$/;
410
+ EDITOR_CLASS = /^(mce-|cke|ck-|note-)|^(ck|active|ge-rte-active)$/;
411
411
  EDITOR_ATTRIBUTE = /^(data-mce-|contenteditable$|spellcheck$)/;
412
412
  textFeature.always = true;
413
413
  GridEditor.features.text = textFeature;
@@ -419,81 +419,156 @@ var EDITOR_ATTRIBUTE;
419
419
 
420
420
  // src/js/plugins/grideditor.ckeditor.js
421
421
  Object.assign(GridEditor2.locales.en, {
422
- "text.ckeditor": "CKEditor"
422
+ "text.ckeditor": "CKEditor",
423
+ "error.ckeditor_start": "CKEditor could not start: {message}",
424
+ "warning.ckeditor_plugin": "CKEditor has no plugin called {name}, so it is left out."
423
425
  });
424
426
  var INITIAL_CONTENT = "<p>Lorem initius... </p>";
425
- var instances = /* @__PURE__ */ new WeakMap();
426
- GridEditor2.texts.ckeditor = function(ge) {
427
- function instanceOf(contentArea) {
428
- var kept = instances.get(contentArea);
429
- if (kept) {
430
- return kept;
427
+ var PLUGINS = [
428
+ "Essentials",
429
+ "Autoformat",
430
+ "Paragraph",
431
+ "Heading",
432
+ "Bold",
433
+ "Italic",
434
+ "Underline",
435
+ "Strikethrough",
436
+ "Link",
437
+ "AutoLink",
438
+ "List",
439
+ "BlockQuote",
440
+ "Indent",
441
+ "HorizontalLine",
442
+ "Table",
443
+ "TableToolbar",
444
+ "PasteFromOffice"
445
+ ];
446
+ var DEFAULTS = {
447
+ toolbar: [
448
+ "undo",
449
+ "redo",
450
+ "|",
451
+ "heading",
452
+ "|",
453
+ "bold",
454
+ "italic",
455
+ "underline",
456
+ "strikethrough",
457
+ "|",
458
+ "link",
459
+ "bulletedList",
460
+ "numberedList",
461
+ "blockQuote",
462
+ "|",
463
+ "insertTable",
464
+ "horizontalLine"
465
+ ],
466
+ // CKEditor's own headings start at h2, and make every h1 in the content
467
+ // an h2: a column's text keeps the headings it has
468
+ heading: {
469
+ options: [
470
+ { model: "paragraph", title: "Paragraph", class: "ck-heading_paragraph" }
471
+ ].concat([1, 2, 3, 4, 5, 6].map(function(level) {
472
+ return {
473
+ model: "heading" + level,
474
+ view: "h" + level,
475
+ title: "Heading " + level,
476
+ class: "ck-heading_heading" + level
477
+ };
478
+ }))
479
+ },
480
+ table: { contentToolbar: ["tableColumn", "tableRow", "mergeTableCells"] }
481
+ };
482
+ var editors = /* @__PURE__ */ new WeakMap();
483
+ var starting = /* @__PURE__ */ new WeakMap();
484
+ var busy = /* @__PURE__ */ new WeakMap();
485
+ function pluginsFor(ge, names) {
486
+ return names.map(function(plugin) {
487
+ if (typeof plugin !== "string") {
488
+ return plugin;
431
489
  }
432
- var found = null;
433
- Object.keys(window.CKEDITOR.instances).forEach(function(name) {
434
- var instance = window.CKEDITOR.instances[name];
435
- if (instance.element && instance.element.$ === contentArea) {
436
- found = instance;
437
- }
490
+ if (!window.CKEDITOR[plugin]) {
491
+ ge.warn(ge.t("warning.ckeditor_plugin", { name: plugin }));
492
+ }
493
+ return window.CKEDITOR[plugin];
494
+ }).filter(Boolean);
495
+ }
496
+ GridEditor2.texts.ckeditor = function(ge) {
497
+ function destroy(contentArea, editor) {
498
+ var data = editor.getData();
499
+ var done = editor.destroy().catch(function() {
500
+ }).then(function() {
501
+ contentArea.innerHTML = data;
438
502
  });
439
- return found;
503
+ contentArea.innerHTML = data;
504
+ return done;
440
505
  }
441
506
  return {
442
507
  labelKey: "text.ckeditor",
443
508
  initialContent: INITIAL_CONTENT,
444
509
  missingKey: "error.ckeditor_missing",
510
+ // CKEditor 4 is window.CKEDITOR too, without an InlineEditor
445
511
  available: function() {
446
- return !!window.CKEDITOR;
512
+ return !!(window.CKEDITOR && window.CKEDITOR.InlineEditor);
447
513
  },
448
514
  start: function(contentAreas) {
449
515
  var settings = ge.settings;
516
+ var userConfig = settings.ckeditor && settings.ckeditor.config ? settings.ckeditor.config : {};
450
517
  contentAreas.forEach(function(contentArea) {
451
518
  if (hasClass(contentArea, "active")) {
452
519
  return;
453
520
  }
454
521
  if (contentArea.innerHTML == INITIAL_CONTENT) {
455
- contentArea.innerHTML = "&nbsp;";
522
+ contentArea.innerHTML = "";
456
523
  }
457
524
  addClass(contentArea, "active");
458
- contentArea.setAttribute("contenteditable", "true");
459
- var configuration = Object.assign(
460
- {},
461
- settings.ckeditor && settings.ckeditor.config ? settings.ckeditor.config : {},
462
- {
463
- // Focus editor on creation
464
- on: {
465
- instanceReady: function(evt) {
466
- var callback;
467
- try {
468
- callback = settings.ckeditor.config.on.instanceReady;
469
- } catch (err) {
470
- }
471
- if (callback) {
472
- callback.call(this, evt);
473
- }
474
- ge.textReady(contentArea);
475
- instance.focus();
476
- }
477
- }
525
+ var configuration = Object.assign({}, DEFAULTS, userConfig);
526
+ configuration.plugins = pluginsFor(ge, userConfig.plugins || PLUGINS);
527
+ delete configuration.on;
528
+ var ticket = {};
529
+ starting.set(contentArea, ticket);
530
+ var run = (busy.get(contentArea) || Promise.resolve()).then(function() {
531
+ if (starting.get(contentArea) !== ticket) {
532
+ return null;
478
533
  }
479
- );
480
- var instance = window.CKEDITOR.inline(contentArea, configuration);
481
- instances.set(contentArea, instance);
534
+ return window.CKEDITOR.InlineEditor.create(contentArea, configuration);
535
+ }).then(function(editor) {
536
+ if (!editor) {
537
+ return null;
538
+ }
539
+ if (starting.get(contentArea) !== ticket) {
540
+ return destroy(contentArea, editor);
541
+ }
542
+ starting.delete(contentArea);
543
+ editors.set(contentArea, editor);
544
+ var callback = userConfig.on && userConfig.on.instanceReady;
545
+ if (callback) {
546
+ callback.call(editor, { editor });
547
+ }
548
+ ge.textReady(contentArea);
549
+ editor.editing.view.focus();
550
+ return null;
551
+ }).catch(function(error) {
552
+ if (starting.get(contentArea) === ticket) {
553
+ starting.delete(contentArea);
554
+ removeClass(contentArea, "active");
555
+ }
556
+ console.error(ge.t("error.ckeditor_start", { message: error && error.message || error }));
557
+ });
558
+ busy.set(contentArea, run);
482
559
  });
483
560
  },
484
561
  stop: function(contentAreas) {
485
562
  contentAreas.filter(function(contentArea) {
486
563
  return hasClass(contentArea, "active");
487
564
  }).forEach(function(contentArea) {
488
- var instance = window.CKEDITOR ? instanceOf(contentArea) : null;
489
- if (instance) {
490
- instance.destroy();
565
+ var editor = editors.get(contentArea);
566
+ editors.delete(contentArea);
567
+ starting.delete(contentArea);
568
+ if (editor) {
569
+ busy.set(contentArea, destroy(contentArea, editor));
491
570
  }
492
- instances.delete(contentArea);
493
- removeClass(contentArea, "active cke_focus");
494
- ["id", "style", "spellcheck", "contenteditable"].forEach(function(name) {
495
- contentArea.removeAttribute(name);
496
- });
571
+ removeClass(contentArea, "active");
497
572
  });
498
573
  }
499
574
  };
@@ -410,7 +410,7 @@
410
410
  });
411
411
  readBefore = /* @__PURE__ */ new WeakMap();
412
412
  readReady = /* @__PURE__ */ new WeakMap();
413
- EDITOR_CLASS = /^(mce-|cke|note-)|^(active|ge-rte-active)$/;
413
+ EDITOR_CLASS = /^(mce-|cke|ck-|note-)|^(ck|active|ge-rte-active)$/;
414
414
  EDITOR_ATTRIBUTE = /^(data-mce-|contenteditable$|spellcheck$)/;
415
415
  textFeature.always = true;
416
416
  GridEditor.features.text = textFeature;
@@ -422,81 +422,156 @@
422
422
 
423
423
  // src/js/plugins/grideditor.ckeditor.js
424
424
  Object.assign(GridEditor.locales.en, {
425
- "text.ckeditor": "CKEditor"
425
+ "text.ckeditor": "CKEditor",
426
+ "error.ckeditor_start": "CKEditor could not start: {message}",
427
+ "warning.ckeditor_plugin": "CKEditor has no plugin called {name}, so it is left out."
426
428
  });
427
429
  var INITIAL_CONTENT = "<p>Lorem initius... </p>";
428
- var instances = /* @__PURE__ */ new WeakMap();
429
- GridEditor.texts.ckeditor = function(ge) {
430
- function instanceOf(contentArea) {
431
- var kept = instances.get(contentArea);
432
- if (kept) {
433
- return kept;
430
+ var PLUGINS = [
431
+ "Essentials",
432
+ "Autoformat",
433
+ "Paragraph",
434
+ "Heading",
435
+ "Bold",
436
+ "Italic",
437
+ "Underline",
438
+ "Strikethrough",
439
+ "Link",
440
+ "AutoLink",
441
+ "List",
442
+ "BlockQuote",
443
+ "Indent",
444
+ "HorizontalLine",
445
+ "Table",
446
+ "TableToolbar",
447
+ "PasteFromOffice"
448
+ ];
449
+ var DEFAULTS = {
450
+ toolbar: [
451
+ "undo",
452
+ "redo",
453
+ "|",
454
+ "heading",
455
+ "|",
456
+ "bold",
457
+ "italic",
458
+ "underline",
459
+ "strikethrough",
460
+ "|",
461
+ "link",
462
+ "bulletedList",
463
+ "numberedList",
464
+ "blockQuote",
465
+ "|",
466
+ "insertTable",
467
+ "horizontalLine"
468
+ ],
469
+ // CKEditor's own headings start at h2, and make every h1 in the content
470
+ // an h2: a column's text keeps the headings it has
471
+ heading: {
472
+ options: [
473
+ { model: "paragraph", title: "Paragraph", class: "ck-heading_paragraph" }
474
+ ].concat([1, 2, 3, 4, 5, 6].map(function(level) {
475
+ return {
476
+ model: "heading" + level,
477
+ view: "h" + level,
478
+ title: "Heading " + level,
479
+ class: "ck-heading_heading" + level
480
+ };
481
+ }))
482
+ },
483
+ table: { contentToolbar: ["tableColumn", "tableRow", "mergeTableCells"] }
484
+ };
485
+ var editors = /* @__PURE__ */ new WeakMap();
486
+ var starting = /* @__PURE__ */ new WeakMap();
487
+ var busy = /* @__PURE__ */ new WeakMap();
488
+ function pluginsFor(ge, names) {
489
+ return names.map(function(plugin) {
490
+ if (typeof plugin !== "string") {
491
+ return plugin;
434
492
  }
435
- var found = null;
436
- Object.keys(window.CKEDITOR.instances).forEach(function(name) {
437
- var instance = window.CKEDITOR.instances[name];
438
- if (instance.element && instance.element.$ === contentArea) {
439
- found = instance;
440
- }
493
+ if (!window.CKEDITOR[plugin]) {
494
+ ge.warn(ge.t("warning.ckeditor_plugin", { name: plugin }));
495
+ }
496
+ return window.CKEDITOR[plugin];
497
+ }).filter(Boolean);
498
+ }
499
+ GridEditor.texts.ckeditor = function(ge) {
500
+ function destroy(contentArea, editor) {
501
+ var data = editor.getData();
502
+ var done = editor.destroy().catch(function() {
503
+ }).then(function() {
504
+ contentArea.innerHTML = data;
441
505
  });
442
- return found;
506
+ contentArea.innerHTML = data;
507
+ return done;
443
508
  }
444
509
  return {
445
510
  labelKey: "text.ckeditor",
446
511
  initialContent: INITIAL_CONTENT,
447
512
  missingKey: "error.ckeditor_missing",
513
+ // CKEditor 4 is window.CKEDITOR too, without an InlineEditor
448
514
  available: function() {
449
- return !!window.CKEDITOR;
515
+ return !!(window.CKEDITOR && window.CKEDITOR.InlineEditor);
450
516
  },
451
517
  start: function(contentAreas) {
452
518
  var settings = ge.settings;
519
+ var userConfig = settings.ckeditor && settings.ckeditor.config ? settings.ckeditor.config : {};
453
520
  contentAreas.forEach(function(contentArea) {
454
521
  if (hasClass(contentArea, "active")) {
455
522
  return;
456
523
  }
457
524
  if (contentArea.innerHTML == INITIAL_CONTENT) {
458
- contentArea.innerHTML = "&nbsp;";
525
+ contentArea.innerHTML = "";
459
526
  }
460
527
  addClass(contentArea, "active");
461
- contentArea.setAttribute("contenteditable", "true");
462
- var configuration = Object.assign(
463
- {},
464
- settings.ckeditor && settings.ckeditor.config ? settings.ckeditor.config : {},
465
- {
466
- // Focus editor on creation
467
- on: {
468
- instanceReady: function(evt) {
469
- var callback;
470
- try {
471
- callback = settings.ckeditor.config.on.instanceReady;
472
- } catch (err) {
473
- }
474
- if (callback) {
475
- callback.call(this, evt);
476
- }
477
- ge.textReady(contentArea);
478
- instance.focus();
479
- }
480
- }
528
+ var configuration = Object.assign({}, DEFAULTS, userConfig);
529
+ configuration.plugins = pluginsFor(ge, userConfig.plugins || PLUGINS);
530
+ delete configuration.on;
531
+ var ticket = {};
532
+ starting.set(contentArea, ticket);
533
+ var run = (busy.get(contentArea) || Promise.resolve()).then(function() {
534
+ if (starting.get(contentArea) !== ticket) {
535
+ return null;
481
536
  }
482
- );
483
- var instance = window.CKEDITOR.inline(contentArea, configuration);
484
- instances.set(contentArea, instance);
537
+ return window.CKEDITOR.InlineEditor.create(contentArea, configuration);
538
+ }).then(function(editor) {
539
+ if (!editor) {
540
+ return null;
541
+ }
542
+ if (starting.get(contentArea) !== ticket) {
543
+ return destroy(contentArea, editor);
544
+ }
545
+ starting.delete(contentArea);
546
+ editors.set(contentArea, editor);
547
+ var callback = userConfig.on && userConfig.on.instanceReady;
548
+ if (callback) {
549
+ callback.call(editor, { editor });
550
+ }
551
+ ge.textReady(contentArea);
552
+ editor.editing.view.focus();
553
+ return null;
554
+ }).catch(function(error) {
555
+ if (starting.get(contentArea) === ticket) {
556
+ starting.delete(contentArea);
557
+ removeClass(contentArea, "active");
558
+ }
559
+ console.error(ge.t("error.ckeditor_start", { message: error && error.message || error }));
560
+ });
561
+ busy.set(contentArea, run);
485
562
  });
486
563
  },
487
564
  stop: function(contentAreas) {
488
565
  contentAreas.filter(function(contentArea) {
489
566
  return hasClass(contentArea, "active");
490
567
  }).forEach(function(contentArea) {
491
- var instance = window.CKEDITOR ? instanceOf(contentArea) : null;
492
- if (instance) {
493
- instance.destroy();
568
+ var editor = editors.get(contentArea);
569
+ editors.delete(contentArea);
570
+ starting.delete(contentArea);
571
+ if (editor) {
572
+ busy.set(contentArea, destroy(contentArea, editor));
494
573
  }
495
- instances.delete(contentArea);
496
- removeClass(contentArea, "active cke_focus");
497
- ["id", "style", "spellcheck", "contenteditable"].forEach(function(name) {
498
- contentArea.removeAttribute(name);
499
- });
574
+ removeClass(contentArea, "active");
500
575
  });
501
576
  }
502
577
  };