@themarioga/grid-editor 6.0.0 → 7.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AUTO_SAVE.md +2 -2
- package/BUILDING.md +45 -29
- package/CHANGELOG.md +59 -0
- package/README.md +163 -87
- package/UPGRADING.md +119 -0
- package/dist/grideditor.bundle.min.js +14 -0
- package/dist/grideditor.d.ts +335 -0
- package/dist/grideditor.esm.js +3977 -0
- package/dist/grideditor.jquery.js +253 -0
- package/dist/grideditor.jquery.min.js +1 -0
- package/dist/grideditor.jquery.min.js.map +7 -0
- package/dist/grideditor.js +3983 -0
- package/dist/grideditor.min.js +6 -0
- package/dist/grideditor.min.js.map +7 -0
- package/dist/locales/grideditor.es.esm.js +158 -0
- package/dist/locales/grideditor.es.js +164 -168
- package/dist/locales/grideditor.es.min.js +6 -2
- package/dist/locales/grideditor.es.min.js.map +7 -1
- package/dist/plugins/grideditor.accordion.esm.js +294 -0
- package/dist/plugins/grideditor.accordion.js +286 -180
- package/dist/plugins/grideditor.accordion.min.js +1 -2
- package/dist/plugins/grideditor.accordion.min.js.map +7 -1
- package/dist/plugins/grideditor.alignment.esm.js +55 -0
- package/dist/plugins/grideditor.alignment.js +58 -77
- package/dist/plugins/grideditor.alignment.min.js +1 -2
- package/dist/plugins/grideditor.alignment.min.js.map +7 -1
- package/dist/plugins/grideditor.card.esm.js +73 -0
- package/dist/plugins/grideditor.card.js +74 -64
- package/dist/plugins/grideditor.card.min.js +1 -2
- package/dist/plugins/grideditor.card.min.js.map +7 -1
- package/dist/plugins/grideditor.ckeditor.esm.js +500 -0
- package/dist/plugins/grideditor.ckeditor.js +484 -449
- package/dist/plugins/grideditor.ckeditor.min.js +1 -2
- package/dist/plugins/grideditor.ckeditor.min.js.map +7 -1
- package/dist/plugins/grideditor.clipboard.esm.js +326 -0
- package/dist/plugins/grideditor.clipboard.js +298 -235
- package/dist/plugins/grideditor.clipboard.min.js +1 -2
- package/dist/plugins/grideditor.clipboard.min.js.map +7 -1
- package/dist/plugins/grideditor.codemirror-inline.esm.js +205 -0
- package/dist/plugins/grideditor.codemirror-inline.js +188 -168
- package/dist/plugins/grideditor.codemirror-inline.min.js +1 -2
- package/dist/plugins/grideditor.codemirror-inline.min.js.map +7 -1
- package/dist/plugins/grideditor.codemirror.esm.js +63 -0
- package/dist/plugins/grideditor.codemirror.js +60 -71
- package/dist/plugins/grideditor.codemirror.min.js +1 -2
- package/dist/plugins/grideditor.codemirror.min.js.map +7 -1
- package/dist/plugins/grideditor.elements.esm.js +271 -0
- package/dist/plugins/grideditor.elements.js +256 -149
- package/dist/plugins/grideditor.elements.min.js +1 -2
- package/dist/plugins/grideditor.elements.min.js.map +7 -1
- package/dist/plugins/grideditor.float.esm.js +34 -0
- package/dist/plugins/grideditor.float.js +37 -52
- package/dist/plugins/grideditor.float.min.js +1 -2
- package/dist/plugins/grideditor.float.min.js.map +7 -1
- package/dist/plugins/grideditor.gutters.esm.js +143 -0
- package/dist/plugins/grideditor.gutters.js +134 -131
- package/dist/plugins/grideditor.gutters.min.js +1 -2
- package/dist/plugins/grideditor.gutters.min.js.map +7 -1
- package/dist/plugins/grideditor.order.esm.js +189 -0
- package/dist/plugins/grideditor.order.js +170 -182
- package/dist/plugins/grideditor.order.min.js +1 -2
- package/dist/plugins/grideditor.order.min.js.map +7 -1
- package/dist/plugins/grideditor.popup.esm.js +187 -0
- package/dist/plugins/grideditor.popup.js +183 -134
- package/dist/plugins/grideditor.popup.min.js +1 -2
- package/dist/plugins/grideditor.popup.min.js.map +7 -1
- package/dist/plugins/grideditor.sections.esm.js +271 -0
- package/dist/plugins/grideditor.sections.js +250 -173
- package/dist/plugins/grideditor.sections.min.js +1 -2
- package/dist/plugins/grideditor.sections.min.js.map +7 -1
- package/dist/plugins/grideditor.spacing.esm.js +318 -0
- package/dist/plugins/grideditor.spacing.js +296 -272
- package/dist/plugins/grideditor.spacing.min.js +1 -2
- package/dist/plugins/grideditor.spacing.min.js.map +7 -1
- package/dist/plugins/grideditor.summernote.esm.js +509 -0
- package/dist/plugins/grideditor.summernote.js +493 -427
- package/dist/plugins/grideditor.summernote.min.js +1 -2
- package/dist/plugins/grideditor.summernote.min.js.map +7 -1
- package/dist/plugins/grideditor.tabs.esm.js +237 -0
- package/dist/plugins/grideditor.tabs.js +233 -139
- package/dist/plugins/grideditor.tabs.min.js +1 -2
- package/dist/plugins/grideditor.tabs.min.js.map +7 -1
- package/dist/plugins/grideditor.textalign.esm.js +40 -0
- package/dist/plugins/grideditor.textalign.js +43 -56
- package/dist/plugins/grideditor.textalign.min.js +1 -2
- package/dist/plugins/grideditor.textalign.min.js.map +7 -1
- package/dist/plugins/grideditor.tinymce.esm.js +519 -0
- package/dist/plugins/grideditor.tinymce.js +502 -490
- package/dist/plugins/grideditor.tinymce.min.js +1 -2
- package/dist/plugins/grideditor.tinymce.min.js.map +7 -1
- package/dist/plugins/grideditor.visibility.esm.js +158 -0
- package/dist/plugins/grideditor.visibility.js +140 -149
- package/dist/plugins/grideditor.visibility.min.js +1 -2
- package/dist/plugins/grideditor.visibility.min.js.map +7 -1
- package/docs/events.md +47 -21
- package/docs/locale-keys.md +6 -0
- package/docs/plugins.md +47 -25
- package/example/adapter.html +112 -0
- package/example/attributes.html +89 -62
- package/example/autocols.html +9 -9
- package/example/autosave.html +18 -16
- package/example/basic.html +8 -6
- package/example/breakpoints.html +5 -6
- package/example/ckeditor.html +4 -5
- package/example/clipboard.html +15 -11
- package/example/codemirror.html +13 -8
- package/example/containers.html +11 -9
- package/example/custom_editor.html +53 -34
- package/example/elements.html +14 -12
- package/example/index.html +16 -2
- package/example/locale.html +6 -7
- package/example/plugins.html +44 -29
- package/example/summernote.html +6 -5
- package/example/utilities.html +17 -13
- package/example/wrap_content.html +13 -10
- package/package.json +44 -12
- package/src/js/dom.js +401 -0
- package/src/js/grideditor.classic.js +16 -0
- package/src/js/grideditor.jquery.js +325 -0
- package/src/js/{jquery.grideditor.js → grideditor.js} +1284 -1124
- package/src/js/locales/grideditor.es.js +163 -156
- package/src/js/plugins/grideditor.accordion.js +97 -77
- package/src/js/plugins/grideditor.alignment.js +5 -7
- package/src/js/plugins/grideditor.card.js +23 -23
- package/src/js/plugins/grideditor.ckeditor.js +107 -106
- package/src/js/plugins/grideditor.clipboard.js +49 -37
- package/src/js/plugins/grideditor.codemirror-inline.js +50 -37
- package/src/js/plugins/grideditor.codemirror.js +9 -10
- package/src/js/plugins/grideditor.elements.js +57 -33
- package/src/js/plugins/grideditor.float.js +4 -6
- package/src/js/plugins/grideditor.gutters.js +20 -15
- package/src/js/plugins/grideditor.order.js +28 -25
- package/src/js/plugins/grideditor.popup.js +63 -51
- package/src/js/plugins/grideditor.sections.js +39 -32
- package/src/js/plugins/grideditor.spacing.js +42 -45
- package/src/js/plugins/grideditor.summernote.js +112 -76
- package/src/js/plugins/grideditor.tabs.js +65 -57
- package/src/js/plugins/grideditor.textalign.js +4 -6
- package/src/js/plugins/grideditor.tinymce.js +148 -140
- package/src/js/plugins/grideditor.visibility.js +24 -25
- package/src/js/register.js +18 -0
- package/src/js/text/grideditor.text.js +77 -56
- package/types/grideditor.d.ts +335 -0
- package/dist/jquery.grideditor.bundle.min.js +0 -10
- package/dist/jquery.grideditor.js +0 -4927
- package/dist/jquery.grideditor.min.js +0 -2
- package/dist/jquery.grideditor.min.js.map +0 -1
|
@@ -1 +1,7 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"version": 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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",
|
|
6
|
+
"names": ["GridEditor", "GridEditor"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
// src/js/plugins/grideditor.accordion.js
|
|
2
|
+
import { GridEditor } from "../grideditor.esm.js";
|
|
3
|
+
|
|
4
|
+
// src/js/dom.js
|
|
5
|
+
function all(root, selector) {
|
|
6
|
+
return root ? Array.prototype.slice.call(root.querySelectorAll(selector)) : [];
|
|
7
|
+
}
|
|
8
|
+
function one(root, selector) {
|
|
9
|
+
return root ? root.querySelector(selector) : null;
|
|
10
|
+
}
|
|
11
|
+
function children(node, selector) {
|
|
12
|
+
if (!node) {
|
|
13
|
+
return [];
|
|
14
|
+
}
|
|
15
|
+
return Array.prototype.filter.call(node.children, function(each) {
|
|
16
|
+
return !selector || each.matches(selector);
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
function child(node, selector) {
|
|
20
|
+
return children(node, selector)[0] || null;
|
|
21
|
+
}
|
|
22
|
+
function element(tag, attributes, text) {
|
|
23
|
+
var node = document.createElement(tag);
|
|
24
|
+
Object.keys(attributes || {}).forEach(function(name) {
|
|
25
|
+
var value = attributes[name];
|
|
26
|
+
if (value !== null && value !== void 0 && value !== false) {
|
|
27
|
+
node.setAttribute(name, value);
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
if (text !== void 0 && text !== null) {
|
|
31
|
+
node.textContent = text;
|
|
32
|
+
}
|
|
33
|
+
return node;
|
|
34
|
+
}
|
|
35
|
+
function addClass(node, names) {
|
|
36
|
+
split(names).forEach(function(name) {
|
|
37
|
+
node.classList.add(name);
|
|
38
|
+
});
|
|
39
|
+
return node;
|
|
40
|
+
}
|
|
41
|
+
function removeClass(node, names) {
|
|
42
|
+
split(names).forEach(function(name) {
|
|
43
|
+
node.classList.remove(name);
|
|
44
|
+
});
|
|
45
|
+
return node;
|
|
46
|
+
}
|
|
47
|
+
function toggleClass(node, names, state) {
|
|
48
|
+
split(names).forEach(function(name) {
|
|
49
|
+
if (state === void 0) {
|
|
50
|
+
node.classList.toggle(name);
|
|
51
|
+
} else {
|
|
52
|
+
node.classList.toggle(name, !!state);
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
return node;
|
|
56
|
+
}
|
|
57
|
+
function hasClass(node, name) {
|
|
58
|
+
return !!node && node.nodeType === 1 && node.classList.contains(name);
|
|
59
|
+
}
|
|
60
|
+
function split(names) {
|
|
61
|
+
return String(names || "").split(/\s+/).filter(Boolean);
|
|
62
|
+
}
|
|
63
|
+
function hide(node) {
|
|
64
|
+
node.style.display = "none";
|
|
65
|
+
return node;
|
|
66
|
+
}
|
|
67
|
+
function visible(node) {
|
|
68
|
+
return !!(node.offsetWidth || node.offsetHeight || node.getClientRects().length);
|
|
69
|
+
}
|
|
70
|
+
var DEFAULT_DURATION = 400;
|
|
71
|
+
function animateAway(node, frames, duration, done) {
|
|
72
|
+
duration = duration === void 0 ? DEFAULT_DURATION : duration;
|
|
73
|
+
var finish = function() {
|
|
74
|
+
hide(node);
|
|
75
|
+
if (done) {
|
|
76
|
+
done();
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
if (!visible(node) || !node.animate || duration <= 0) {
|
|
80
|
+
window.setTimeout(finish, 0);
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
var animation = node.animate(frames(getComputedStyle(node)), {
|
|
84
|
+
duration,
|
|
85
|
+
easing: "ease-in-out"
|
|
86
|
+
});
|
|
87
|
+
var called = false;
|
|
88
|
+
var once = function() {
|
|
89
|
+
if (called) {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
called = true;
|
|
93
|
+
finish();
|
|
94
|
+
};
|
|
95
|
+
animation.onfinish = once;
|
|
96
|
+
animation.oncancel = once;
|
|
97
|
+
}
|
|
98
|
+
function slideUp(node, duration, done) {
|
|
99
|
+
if (typeof duration === "function") {
|
|
100
|
+
done = duration;
|
|
101
|
+
duration = void 0;
|
|
102
|
+
}
|
|
103
|
+
node.style.overflow = "hidden";
|
|
104
|
+
animateAway(node, function(style) {
|
|
105
|
+
return [
|
|
106
|
+
{
|
|
107
|
+
height: style.height,
|
|
108
|
+
paddingTop: style.paddingTop,
|
|
109
|
+
paddingBottom: style.paddingBottom,
|
|
110
|
+
marginTop: style.marginTop,
|
|
111
|
+
marginBottom: style.marginBottom
|
|
112
|
+
},
|
|
113
|
+
{ height: "0px", paddingTop: "0px", paddingBottom: "0px", marginTop: "0px", marginBottom: "0px" }
|
|
114
|
+
];
|
|
115
|
+
}, duration, function() {
|
|
116
|
+
node.style.removeProperty("overflow");
|
|
117
|
+
if (done) {
|
|
118
|
+
done();
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
// src/js/plugins/grideditor.accordion.js
|
|
124
|
+
Object.assign(GridEditor.locales.en, {
|
|
125
|
+
"container.add_accordion": "Accordion",
|
|
126
|
+
"container.add_accordion_item": "Add item",
|
|
127
|
+
"container.accordion_label": "Item {number}",
|
|
128
|
+
"confirm.delete_accordion_item": "Delete this item and everything in it?"
|
|
129
|
+
});
|
|
130
|
+
GridEditor.containers.accordion = function(ge) {
|
|
131
|
+
var answered = /* @__PURE__ */ new WeakSet();
|
|
132
|
+
function collapseOf(item) {
|
|
133
|
+
return child(item, ".accordion-collapse");
|
|
134
|
+
}
|
|
135
|
+
function staysOpen(container, ignore) {
|
|
136
|
+
var items = all(container, ":scope > .accordion > .accordion-item > .accordion-collapse");
|
|
137
|
+
if (ignore) {
|
|
138
|
+
var ignored = collapseOf(ignore);
|
|
139
|
+
items = items.filter(function(collapse) {
|
|
140
|
+
return collapse !== ignored;
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
return items.length > 0 && !items.filter(function(collapse) {
|
|
144
|
+
return collapse.hasAttribute("data-bs-parent");
|
|
145
|
+
}).length;
|
|
146
|
+
}
|
|
147
|
+
function addAccordionItemTo(container, options) {
|
|
148
|
+
options = options || {};
|
|
149
|
+
var accordion = child(container, ".accordion");
|
|
150
|
+
var id = ge.containerId("acc-item");
|
|
151
|
+
var number = children(accordion, ".accordion-item").length + 1;
|
|
152
|
+
var open = options.open === void 0 ? number === 1 : !!options.open;
|
|
153
|
+
var stayOpen = options.stay_open === void 0 ? staysOpen(container) : !!options.stay_open;
|
|
154
|
+
var item = accordion.appendChild(element("div", { "class": "accordion-item ge-accordion-item" }));
|
|
155
|
+
var header = item.appendChild(element("h2", { "class": "accordion-header" }));
|
|
156
|
+
var button = header.appendChild(element("button", {
|
|
157
|
+
"class": "accordion-button",
|
|
158
|
+
type: "button",
|
|
159
|
+
"data-bs-toggle": "collapse",
|
|
160
|
+
"data-bs-target": "#" + id,
|
|
161
|
+
"aria-expanded": open ? "true" : "false"
|
|
162
|
+
}));
|
|
163
|
+
toggleClass(button, "collapsed", !open);
|
|
164
|
+
button.appendChild(element(
|
|
165
|
+
"span",
|
|
166
|
+
{ "class": "ge-pane-label" },
|
|
167
|
+
options.label || ge.t("container.accordion_label", { number })
|
|
168
|
+
));
|
|
169
|
+
var collapse = item.appendChild(element("div", {
|
|
170
|
+
"class": "accordion-collapse collapse",
|
|
171
|
+
id,
|
|
172
|
+
"data-ge-open": open ? "true" : "false"
|
|
173
|
+
}));
|
|
174
|
+
toggleClass(collapse, "show", open);
|
|
175
|
+
if (!stayOpen) {
|
|
176
|
+
collapse.setAttribute("data-bs-parent", "#" + accordion.getAttribute("id"));
|
|
177
|
+
}
|
|
178
|
+
var body = collapse.appendChild(element("div", { "class": "accordion-body" }));
|
|
179
|
+
body.appendChild(ge.defaultRegion());
|
|
180
|
+
return body;
|
|
181
|
+
}
|
|
182
|
+
function toggleAccordionItem(container, item) {
|
|
183
|
+
var collapse = collapseOf(item);
|
|
184
|
+
var opening = collapse.getAttribute("data-ge-open") !== "true";
|
|
185
|
+
if (opening && !staysOpen(container)) {
|
|
186
|
+
all(container, ":scope > .accordion > .accordion-item").forEach(function(other) {
|
|
187
|
+
if (other !== item) {
|
|
188
|
+
setAccordionItemOpen(other, false);
|
|
189
|
+
}
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
setAccordionItemOpen(item, opening);
|
|
193
|
+
}
|
|
194
|
+
function setAccordionItemOpen(item, open) {
|
|
195
|
+
var collapse = collapseOf(item);
|
|
196
|
+
if (collapse) {
|
|
197
|
+
collapse.setAttribute("data-ge-open", open ? "true" : "false");
|
|
198
|
+
toggleClass(collapse, "show", open);
|
|
199
|
+
}
|
|
200
|
+
all(item, ":scope > .accordion-header .accordion-button").forEach(function(button) {
|
|
201
|
+
toggleClass(button, "collapsed", !open);
|
|
202
|
+
button.setAttribute("aria-expanded", open ? "true" : "false");
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
function reparentAccordionItem(container, item) {
|
|
206
|
+
var accordion = item.closest(".accordion");
|
|
207
|
+
var collapse = collapseOf(item);
|
|
208
|
+
if (!collapse) {
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
211
|
+
if (staysOpen(container, item)) {
|
|
212
|
+
collapse.removeAttribute("data-bs-parent");
|
|
213
|
+
} else {
|
|
214
|
+
collapse.setAttribute("data-bs-parent", "#" + accordion.getAttribute("id"));
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
return {
|
|
218
|
+
labelKey: "container.add_accordion",
|
|
219
|
+
// Items sort within their accordion and into any other one
|
|
220
|
+
onSortable: function(sortable) {
|
|
221
|
+
sortable(all(ge.canvas, ".ge-container-accordion > .accordion"), {
|
|
222
|
+
draggable: ".ge-accordion-item",
|
|
223
|
+
group: "accordion"
|
|
224
|
+
});
|
|
225
|
+
},
|
|
226
|
+
addPaneKey: "container.add_accordion_item",
|
|
227
|
+
paneKind: "accordion-item",
|
|
228
|
+
create: function(options) {
|
|
229
|
+
var container = element("div", { "data-ge-container": "accordion" });
|
|
230
|
+
var labels = options.labels || [];
|
|
231
|
+
var count = options.items || labels.length || 2;
|
|
232
|
+
container.appendChild(element("div", { "class": "accordion", id: ge.containerId("accordion") }));
|
|
233
|
+
for (var i = 0; i < count; i++) {
|
|
234
|
+
addAccordionItemTo(container, {
|
|
235
|
+
label: labels[i],
|
|
236
|
+
open: i === 0,
|
|
237
|
+
stay_open: options.stay_open
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
return container;
|
|
241
|
+
},
|
|
242
|
+
addPane: addAccordionItemTo,
|
|
243
|
+
mark: function(container) {
|
|
244
|
+
all(container, ":scope > .accordion > .accordion-item").forEach(function(item) {
|
|
245
|
+
addClass(item, "ge-accordion-item");
|
|
246
|
+
var collapse = collapseOf(item);
|
|
247
|
+
if (collapse && !collapse.hasAttribute("data-ge-open")) {
|
|
248
|
+
collapse.setAttribute("data-ge-open", hasClass(collapse, "show") ? "true" : "false");
|
|
249
|
+
}
|
|
250
|
+
var button = one(item, ":scope > .accordion-header .accordion-button");
|
|
251
|
+
if (button) {
|
|
252
|
+
ge.suspendToggles(button);
|
|
253
|
+
ge.makeLabelEditable(ge.labelIn(button));
|
|
254
|
+
if (!answered.has(button)) {
|
|
255
|
+
answered.add(button);
|
|
256
|
+
button.addEventListener("click", function(e) {
|
|
257
|
+
if (ge.labelIn(button).getAttribute("contenteditable") === "true") {
|
|
258
|
+
return;
|
|
259
|
+
}
|
|
260
|
+
e.preventDefault();
|
|
261
|
+
toggleAccordionItem(container, item);
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
if (child(item, ".ge-tools-drawer")) {
|
|
266
|
+
return;
|
|
267
|
+
}
|
|
268
|
+
ge.createPaneControls(
|
|
269
|
+
item,
|
|
270
|
+
"accordion-item",
|
|
271
|
+
ge.settings.accordion_tools,
|
|
272
|
+
ge.t("confirm.delete_accordion_item"),
|
|
273
|
+
function(removed) {
|
|
274
|
+
slideUp(item, 200, removed);
|
|
275
|
+
}
|
|
276
|
+
);
|
|
277
|
+
});
|
|
278
|
+
},
|
|
279
|
+
unmark: function(container) {
|
|
280
|
+
ge.resumeToggles(container);
|
|
281
|
+
all(container, ":scope > .accordion > .accordion-item").forEach(function(item) {
|
|
282
|
+
var collapse = collapseOf(item);
|
|
283
|
+
setAccordionItemOpen(item, !!collapse && collapse.getAttribute("data-ge-open") === "true");
|
|
284
|
+
});
|
|
285
|
+
all(container, ".ge-accordion-item").forEach(function(item) {
|
|
286
|
+
removeClass(item, "ge-accordion-item");
|
|
287
|
+
});
|
|
288
|
+
ge.unwrapLabels(container);
|
|
289
|
+
},
|
|
290
|
+
afterPaneMove: function(container, item) {
|
|
291
|
+
reparentAccordionItem(container, item);
|
|
292
|
+
}
|
|
293
|
+
};
|
|
294
|
+
};
|