Support gridstack element node reparenting without losing the stylesheets#2852
Merged
adumesny merged 1 commit intogridstack:masterfrom Dec 28, 2024
Merged
Support gridstack element node reparenting without losing the stylesheets#2852adumesny merged 1 commit intogridstack:masterfrom
adumesny merged 1 commit intogridstack:masterfrom
Conversation
Contributor
Author
|
This will be superseded if #2854 is accepted instead. |
3 tasks
Member
|
thanks for this fix, I should have grabbed this a while back since it doesn't fundamentally change things. I will have to review the other replacement |
adumesny
added a commit
to adumesny/gridstack.js
that referenced
this pull request
Dec 30, 2024
* fix in test for gridstack#2852 * also fixed tests for this._placeholder being null
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
The current implementation of gridstack styling is based on a <style> node appended in the parent
div. However this element doesn't contain any CSS text content: hisstylecontent is rather manipulated as aCSSStyleSheetobject.This works fine unless the parent
divis detached from the document, and then reattached. This operation can be common if gridstack containers are hosted in some type of high-level container (like tabs) that supports reorder.It seems that the issue is somewhat related to the fact the
CSSStyleSheetinstance depends on the parent DOM context. So, when detached, the style content is reset.Using CSS as text rather than opaque style object fixes the issue.
Probably the best approach to leverage
CSSStyleSheetobjects is to switch to HTML Custom Elements and Shadow DOM.Checklist
yarn test) (unfortunately the current code-base is in very bad shape).