GrapesJS version [X] I confirm to use the latest version of GrapesJS What browser are you using? Edge v122 Reproducible demo link https://jsfiddle.net/bwreyq29/1/ Describe the bug How to reproduce the bug? open this link https://jsfiddle.net/bwreyq29/1/ and javascript code attached to src attribute will be executed au...
bernesto
I think the pre-parser option is a really good idea. It sticks to the 'plug-in' per feature concept. How about updating fromElement to accept a string element ID or boolean. If bool == true, works as it does now, parsing the container HTML...
artf
Totally agree with @bernesto indeed no matter how hard we try to make it safe, it will never be enough and I don't want to give the impression that the library is "so safe" to justify a missing server-side validation. The current options (...
bernesto
This is unavoidable when using fromElement to load from an active DOM element. The element of the page loads and executes synchronously. GrapesJS would never have a chance to process and disarm the XSS html. This would need to be addressed...
GrapesJS version [X] I confirm to use the latest version of GrapesJS What browser are you using? Chrome Version 122.0.6261.95 (Official Build) (64-bit) Reproducible demo link https://jsfiddle.net/n4x6L1v0/2/ Describe the bug How to reproduce the bug?Save component data from an earlier version of grapejs (0.18)Attempt...
artf
Thanks @mitcht but as I already mentioned the main component could never been textnode in the first place so it doesn't make sense to handle such a case in the core or have this issue open. Anyway, if the logic works for you just use it in...
GJS Helper
The issue you're encountering is a known breaking change related to the evolution of GrapesJS's internal component architecture, specifically how the root component of a frame is handled. In older versions (like 0.18), the default root com...
GrapesJS version [X] I confirm to use the latest version of GrapesJS What browser are you using? chrome latest Reproducible demo link we are running on local machine now Describe the bug Hello, right now grapesjs provides built in properties like margin, padding that allow user to change each property one by one (marg...
artf
Please avoid opening BUG issues without reading the actual point of bug issues in the template.
GJS Helper
It's a great suggestion to enhance the GrapesJS styling experience! By default, GrapesJS's Style Manager provides granular control over CSS properties like margin and padding, allowing you to adjust each side (top, right, bottom, left) ind...
GrapesJS version [X] I confirm to use the latest version of GrapesJS What browser are you using? Edge v120.0.2210.121 Reproducible demo link https://codepen.io/ashwinvalento/pen/jOJMPqx Describe the bug If we have set config.parser.optionsHtml.allowScripts: true and create a component with a script, Then when we impor...
artf
Reimporting directly JS as a component was never possible, so it's treated as a new one.
Ashwinvalento
Is there any way we can identify scripts of existing components and delete them on import? we wont be able to remove all the script tags since we would need to retain the scripts added manually.
GJS Helper
The issue you've encountered with script duplication when importing HTML multiple times in GrapesJS, especially with config.parser.optionsHtml.allowScripts: true, is a known behavior related to how GrapesJS reconciles components during set...
GrapesJS version[X] I confirm to use the latest version of GrapesJSWhat browser are you using? latest version of ChromeReproducible demo link https://grapesjs.com/demo.htmlDescribe the bug How to reproduce the bug? Taking an html string and rendering it in grapesjs with this code (I have allowScripts enabled) This is...
GJS Helper
The behavior you're observing with script tag attributes not appearing on the GrapesJS canvas, while being present in the exported HTML, is expected and by design for how GrapesJS handles non-visual elements, especially script tags carryin...
GrapesJS version[X] I confirm to use the latest version of GrapesJSWhat browser are you using? Chrome latestReproducible demo link https://github.com/padcom/grapesjs-no-id-for-element-exampleDescribe the bug When creating custom GrapesJS components, if those components have the script() (runtime behavior for component...
artf
The issue is caused by the use of jsInHtml: false and how the internal JS generator is handled. I'll try to fix it for the next release.
GJS Helper
The issue you've described is a known behavior in GrapesJS related to how component IDs are generated and optimized during HTML serialization. When a custom component has a script() function but no explicit styles applied to it, GrapesJS m...
GrapesJS version [X] I confirm to use the latest version of GrapesJS What browser are you using? Chrome, Opera, Edge, etc Reproducible demo link https://jsfiddle.net/crszh0jo/6/ Describe the bug I'm trying to make it work the same case as it described here [[QUESTION] Selection of custom components not possible from c...
DreamCloudProject
@artf Yes, you're right. I'm blocking the click propagation, and so the editor doesn't receive the click event, hence can't execute the logic to select the element. I tried setting the click propagation only on the current element by repla...
DreamCloudProject
https://github.com/GrapesJS/grapesjs/assets/7961936/12180b41-4c29-489d-9bcd-1ea025a96a8f This example shows how it works in my editor.
yatoogamii
Hi @DreamCloudProject , it seems like your component Msc-header is locked. it's an attribute which allow the component to be clicked from the layers but not from the canva itself Can you share or verify your component definition and check...
GrapesJS version[X] I confirm to use the latest version of GrapesJSWhat browser are you using? Chrome V115Reproducible demo link https://jsfiddle.net/srinivas977/ahgLxv6e/10/Describe the bug How to reproduce the bug? In the provided JSFiddle, include a pair of text lines and select lists. Next, append a sub-list, and...
artf
Unfortunately, as the default implementation relies on the deprecated execCommand, there are too many edge cases to handle and it isn't worth spending time on it anymore. I'd suggest relying on it only for basic formatting (eg. bold, itali...
GJSBlock
Thanks for reporting this, @srinivas977. Great suggestion about Issue with rich text editor Indent action for Lists! While this specific feature isn't yet in the core API, there are several ways to achieve similar behavior. Using the event...
GrapesJS version [X] I confirm to use the latest version of GrapesJS What browser are you using? Chrome v114 Reproducible demo link https://jsfiddle.net/rmadeiraneto/t659usxv/39/ Describe the bug How to reproduce the bug?Go to the blocks list and drag the custom component "example" to the canvasThree elements that are...
artf
Thanks @rmadeiraneto for the report. Yeah, unfortunately that's an issue if you're mutating arrays/objects properties in that way and to avoid that you have 2 options:Avoid direct mutations (assign new references when you have to update th...
rmadeiraneto
@artf using defaults as a function works, thanks for quick response and for providing the alternative fix on this issue. About the first suggestion, I think it's not about people should mutate or not the object, because we're talking about...
GJS Helper
The issue you've described is a common JavaScript pitfall related to how mutable objects (like arrays and objects) are handled when assigned as default values. In GrapesJS, when you define a component with defaults that include arrays or o...
GrapesJS version[X] I confirm to use the latest version of GrapesJSWhat browser are you using? Chrome, IOSReproducible demo link https://www.lovepoptestsite.com/products/disney-s-hocus-pocus-black-flame-candle-pop-up-card?variant=40356218077273&preview_link=124907487321 password: ilovecardsDescribe the bug How to repr...
loclovepop
screencast-www.lovepoptestsite.com-2023.06.01-001711.webm This is video of bug
artf
I see the touch plugin works properly, ensure to have the mobile device enabled on load (eg. not simulated post load) so the polyfill could be loaded properly.
GJS Helper
The issue you're experiencing with drag-and-drop not working on mobile screens when GrapesJS is embedded in your "test store" environment, despite using grapesjs-touch, is a common problem in complex web applications. It typically stems fr...