Hola @artf, estaba probando a alternar entre usar ids y clases para el estilo, así que necesito cambiar el atributo componentFirst programáticamente. Pero cuando intento cambiar la configuración, el comportamiento no cambia. Esto ni siquiera funciona en la demo. Pasos para reproducirse:Añadir dos bloques de textoDales...
artf
Tienes que reactivar la selección después de cambiar esa opción 'editor.trigger('component:toggled')'
ClaudeCode
Gracias por informar de esto, @theSC0RP. Buena pregunta sobre ¿Cómo cambiar programáticamente componentFirst?. El enfoque recomendado con Componentes es utilizar la API orientada a eventos. Empieza aquí: Consulta la documentación de Grapes...
Versión: 0.17.4 Cómo reproducirCambiar a modo tableta o móvilOcultar el componente seleccionado desactivando el icono de visibilidad de la capaCambiar al modo escritorio. ResultadoEl icono de visibilidad sigue desactivado mientras se muestran los componentes ocultos. EsperadoDespués de cambiar al escritorio, el icono...
artf
Gracias por el informe @tranthanhhoa lo arreglaré en la próxima versión, pero creo que mantendré el cambio de visibilidad más como una condición global, para que el componente oculto no sea visible en todos los dispositivos.
ClaudeCode
Gracias por informar de esto, @tranthanhhoa. Buena pregunta sobre La visibilidad de las capas no funciona correctamente. El enfoque recomendado con Componentes es utilizar la API orientada a eventos. Empieza aquí: Consulta la documentación...
Hola a todos, Estoy usando grapesjs-blocks-bootstrap4 y reviso cómo componen los componentes, se ve bien. Pero cuando seleccionas contenedor tipo bloque, apunta a la clase en vez de a ID único. ! bootstrap-4-elemento Pude configurar un ID aleatorio usando este model.set('attributes', { id: randomID() }); pero aún así,...
Gracias por informar de esto, @cedriclajato. Gracias por compartir tu informe sobre Sin ID generado y sin ID de selección automática. Para ayudar al equipo a investigar y priorizar esto: Por favor, proporciona: Un ejemplo mínimo reproducib...
He creado un rasgo personalizado, pero el nombre de ese rasgo será dinámico, lo cual se desconoce. El problema es que el removeTrait() actual solo funciona con nombre/id. Pero, ¿y si quiero eliminar todos los rasgos del componente con rasgo personalizado? Por ejemplo: creo un rasgo 'mi-rasgo personalizado' y lo vincul...
artf
Puedes usar el DNI '''js component.addTrait({ id: 'mi-rasgo-personalizado', Nombre: 'some_random', // ... }); // ... component.removeTrait('mi-rasgo-personalizado') ```
ClaudeCode
Gracias por informar de esto, @vijayshukla30. Gracias por compartir tu informe sobre Eliminar rasgo personalizado por tipo.. Para ayudar al equipo a investigar y priorizar esto: Por favor, proporciona: Un ejemplo mínimo reproducible (CodeS...
¿Qué intentas añadir a GrapesJS? El componente debería poder marcarse como sucio, activando el mensaje de advertencia 'onbeforeunload'. Describe tu solicitud de función detallado Tengo un componente de texto (personalizado) donde el usuario puede introducir texto arbitrario. Estoy almacenando los datos en mi servidor...
anlumo
Solucioné esto desactivando completamente el manejo onbeforeunload y creando el mío propio.
artf
El editor tiene la propiedad 'editar' que cambia cada vez que el RTE está activado o desactivado, así que supongo que, en tu caso, esto debería funcionar '''js editor.on('change:editing', (em, editing) => { window.onbeforeunload = edición...
anlumo
¿No se sobrescribiría este manejador onbeforeunload después por el fragmento que mencioné antes?
¿Hay alguna forma de añadir una nueva sección después del componente seleccionado usando grapesjs?
artf
Puedes hacerlo de esta manera: '''js const cmp = editor.getSelected(); cmp.parent().append('<section>...</section>', { at: cmp.index() + 1 }); ```
ClaudeCode
Gracias por informar de esto, @iabhiyaan. Buena pregunta sobre FEAT: insertAdjacentHTML('afterend', '<section></section>'). ¿Existe alguna API así en grapesjs? El enfoque recomendado con Componentes es utilizar la API orientada a eventos....
Versión: 0.17.4 ¿Puedes reproducir el error de la demo?[ ] Sí[X] No ¿Cuál es el comportamiento esperado?Tras insertar un iFrame que el src se devuelve al usar 'editor.getHTML()'Al cargar una página, esos iframes serán reconocidos como componentes iframe y volverán a ser editables Describe el error detallado Estoy añad...
artf
Añadiré soporte para iframe en la próxima versión
ClaudeCode
Gracias por informar de esto, @TheDude70. El problema con iframe no guarda src / no reconoce iframes tras carga parece ser una condición de carrera o un problema de gestión de estado. Esto suele ocurrir cuando los eventos del ciclo de vida...
Hola, ahora mismo grapesjs ofrece propiedades integradas como margen y relleno que permiten al usuario cambiar cada propiedad una a una (margen arriba, margen abajo, etc.). Sería bueno poder cambiar todas estas propiedades juntas. Por ejemplo, tener algún botón de bloqueo, cuando esté activado cambiará todas las propi...
artf
Sí, eso estaría bien, pero desafortunadamente, GrapesJS aún no tiene el módulo de interfaz adecuado que permita crear fácilmente nuevos componentes reutilizando otros, así que 'StyleManager.addType' es la única opción, pero en ese caso, de...
ClaudeCode
Gracias por informar de esto, @kuhelbeher. ¡Gran sugerencia sobre LOGRO: ¡Capacidad de cambiar todas las propiedades de margen, relleno, etc. juntos! Aunque esta función específica aún no está en la API principal, existen varias formas de...
Consideremos un bloque simple: Cuando se arrastra al lienzo, este componente se puede seleccionar y es posible modificar sus ajustes. Ahora, hago esto para añadir la misma entrada en una tarjeta: '$(someElement).find(".card").html('<input type="text"/>');' La entrada se añade con éxito, pero no se comporta como antes....
ClaudeCode
Gracias por informar de esto, @ahmedderkaoui. Buena pregunta sobre Element inyectado como HTML en canvas que no se comporta como un componente. El enfoque recomendado con StyleManager es usar la API orientada a eventos. Empieza aquí: Consu...
Hola @artf, Muchísimas gracias por la ayuda anterior. Estoy más novato en desarrollo. Por favor, ayudadme con lo siguiente Necesito un modal donde reciba la entrada del usuario, como nombre de bloque, categoría, HTML, CSS, JS y luego haga clic en guardar para guardarlo como nuevo gestor de bloques. Significa cómo pasa...
artf
Por favor, sigue la plantilla del problema
ClaudeCode
Gracias por informar de esto, @Palash-Mandal. Buena pregunta sobre *. El enfoque recomendado con StyleManager es usar la API orientada a eventos. Empieza aquí: Consulta la documentación de GrapesJS de tu módulo específico Busca el método d...