Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Task/344 innertext doesnt add n newlines like browser does #574

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
3e8b855
#344@trivial: Starts on fixing computed styles.
capricorn86 Jul 22, 2022
949b2b1
#344@trivial: Continue on CSSStyleDeclaration.
capricorn86 Jul 27, 2022
6237ae8
#344@trivial: Continues on CSSStyleDeclaration.
capricorn86 Aug 8, 2022
d613956
#344@trivial: Continues on CSSStyleDeclaration.
capricorn86 Aug 9, 2022
496c47c
#344@trivial: Continues on CSSStyleDeclaration.
capricorn86 Aug 10, 2022
9b6522f
#344@trivial: Continue on CSSStyleDeclaration.
capricorn86 Aug 11, 2022
3d664f7
#344@trivial: Continues on CSSStyleDeclaration.
capricorn86 Aug 12, 2022
ecb0044
#344@trivial: Continue on CSSStyleDeclaration.
capricorn86 Aug 12, 2022
94e7ae2
#344@trivial: Continue on CSSStyleDeclaration.
capricorn86 Aug 17, 2022
d8452e6
#344@trivial: Continue on CSSStyleDeclaration.
capricorn86 Aug 19, 2022
058c6f1
#344@trivial: Continues on CSSStyleDeclaration.
capricorn86 Aug 22, 2022
1cd16c8
#344@trivial: Continue on CSSStyleDeclaration.
capricorn86 Aug 22, 2022
1a7f0e2
#344@trivial: Continues on CSSStyleDeclaration.
capricorn86 Aug 22, 2022
22a17ba
#344@trivial: Continue on CSSStyleDeclaration.
capricorn86 Aug 23, 2022
09c75fc
#344@trivial: Continues on CSSStyleDeclaration.
capricorn86 Aug 23, 2022
3738194
#344@trivial: Continue on CSSStyleDeclaration.
capricorn86 Aug 24, 2022
4e2c316
#344@trivial: Continues on CSSStyleDeclaration.
capricorn86 Aug 24, 2022
322563b
#344@trivial: Continue on CSSStyleDeclaration.
capricorn86 Aug 25, 2022
fb13f37
#344@trivial: Continue on CSSStyleDeclaration.
capricorn86 Aug 31, 2022
4ca836b
#344@trivial: Continues on CSSStyleDeclaration.
capricorn86 Aug 31, 2022
36575ff
#344@trivial: Continue on CSSStyleDeclaration.
capricorn86 Sep 1, 2022
2790699
#344@trivial: Continues on CSSStyleDeclaration.
capricorn86 Sep 5, 2022
7149821
#344@trivial: Continues on CSSStyleDeclaration.
capricorn86 Sep 6, 2022
a321e54
#344@trivial: Continue on CSSStyleDeclaration.
capricorn86 Sep 7, 2022
b8c2672
#344@trivial: Continues on CSSStyleDeclaration.
capricorn86 Sep 7, 2022
8aff1f9
#344@trivial: Continue on CSSStyleDeclaration.
capricorn86 Sep 8, 2022
b0d14bd
#344@trivial: Continue on CSSStyleDeclaration.
capricorn86 Sep 9, 2022
4ebf7b7
#344@trivial: Continues on CSSStyleDeclaration.
capricorn86 Sep 9, 2022
ca6c2aa
#344@trivial: Continues on CSSStyleDeclaration.
capricorn86 Sep 19, 2022
91bbdf5
#344@trivial: Continue on CSSStyleDeclaration.
capricorn86 Sep 21, 2022
1cea073
#344@trivial: Continue on CSSStyleDeclaration.
capricorn86 Sep 22, 2022
d1a0bac
#344@major: Improves the support for CSSStyleDeclaration and window.g…
capricorn86 Sep 28, 2022
1e1adf3
Merge branch 'master' into task/344-innertext-doesnt-add-n-newlines-l…
capricorn86 Sep 28, 2022
36aceeb
#344@trivial: Continue on CSSStyleDeclaration.
capricorn86 Sep 28, 2022
3395fec
Merge branch 'task/344-innertext-doesnt-add-n-newlines-like-browser-d…
capricorn86 Sep 28, 2022
606cff8
#344@trivial: Continues on CSSStyleDeclaration.
capricorn86 Sep 28, 2022
2e3bfa5
#344@trivial: Continue on CSSStyleDeclaration.
capricorn86 Sep 29, 2022
8ec7322
#344@trivial: Continues on CSSStyleDeclaration.
capricorn86 Sep 30, 2022
a4d24a3
#344@trivial: Continues on CSSStyleDeclaration.
capricorn86 Sep 30, 2022
c881207
#344@trivial: Continue on CSSStyleDeclaration.
capricorn86 Oct 4, 2022
53046fa
#344@trivial: Adds cache to HTMLStyleElement.sheet.
capricorn86 Oct 5, 2022
efde951
#344@trivial: Removes DS_Store file.
capricorn86 Oct 5, 2022
e95bda0
#344@trivial: Adds DS_Store to gitignore.
capricorn86 Oct 5, 2022
481be4f
#344@trivial: Improves readable for the code of HTMLElement.innerText.
capricorn86 Oct 5, 2022
7e98e4b
#344@trivial: Improves readable for the code of HTMLElement.innerText.
capricorn86 Oct 5, 2022
62288c4
#344@trivial: Improves readable for the code of HTMLElement.innerText.
capricorn86 Oct 5, 2022
6b6ce08
#344@trivial: Removes unused mock file.
capricorn86 Oct 5, 2022
19993dc
#344@trivial: Adds test for computed style with the properties displa…
capricorn86 Oct 5, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
3 changes: 2 additions & 1 deletion packages/happy-dom/.gitignore
@@ -1,3 +1,4 @@
node_modules
tmp
lib
lib
.DS_Store
20 changes: 14 additions & 6 deletions packages/happy-dom/src/css/CSSParser.ts
Expand Up @@ -4,7 +4,7 @@ import CSSStyleRule from './rules/CSSStyleRule';
import CSSKeyframeRule from './rules/CSSKeyframeRule';
import CSSKeyframesRule from './rules/CSSKeyframesRule';
import CSSMediaRule from './rules/CSSMediaRule';
import CSSStyleDeclaration from './CSSStyleDeclaration';
import CSSContainerRule from './rules/CSSContainerRule';

const COMMENT_REGEXP = /\/\*[^*]*\*\//gm;

Expand Down Expand Up @@ -47,6 +47,14 @@ export default class CSSParser {
newRule.media.appendMedium(medium.trim());
}

newRule.parentStyleSheet = parentStyleSheet;
cssRules.push(newRule);
parentRule = newRule;
} else if (selectorText.startsWith('@container')) {
const conditionalText = selectorText.replace(/@container */, '');
const newRule = new CSSContainerRule();

(<string>newRule.conditionalText) = conditionalText;
newRule.parentStyleSheet = parentStyleSheet;
cssRules.push(newRule);
parentRule = newRule;
Expand All @@ -58,7 +66,10 @@ export default class CSSParser {

(<CSSKeyframesRule>parentRule).cssRules.push(<CSSKeyframeRule>newRule);
parentRule = newRule;
} else if (parentRule && parentRule.type === CSSRule.MEDIA_RULE) {
} else if (
parentRule &&
(parentRule.type === CSSRule.MEDIA_RULE || parentRule.type === CSSRule.CONTAINER_RULE)
) {
const newRule = new CSSStyleRule();
(<string>newRule.selectorText) = selectorText;
newRule.parentStyleSheet = parentStyleSheet;
Expand Down Expand Up @@ -86,10 +97,7 @@ export default class CSSParser {
case CSSRule.FONT_FACE_RULE:
case CSSRule.KEYFRAME_RULE:
case CSSRule.STYLE_RULE:
const style = new CSSStyleDeclaration();
style.cssText = cssText;
(<CSSRule>style.parentRule) = parentRule;
(<CSSStyleDeclaration>(<CSSStyleRule>parentRule).style) = style;
(<CSSStyleRule>parentRule)._cssText = cssText;
break;
}
}
Expand Down
28 changes: 15 additions & 13 deletions packages/happy-dom/src/css/CSSRule.ts
@@ -1,22 +1,24 @@
import CSSStyleSheet from './CSSStyleSheet';
import CSSRuleTypeEnum from './CSSRuleTypeEnum';

/**
* CSSRule interface.
*/
export default class CSSRule {
public static STYLE_RULE = 1;
public static IMPORT_RULE = 3;
public static MEDIA_RULE = 4;
public static FONT_FACE_RULE = 5;
public static PAGE_RULE = 6;
public static KEYFRAMES_RULE = 7;
public static KEYFRAME_RULE = 8;
public static NAMESPACE_RULE = 10;
public static COUNTER_STYLE_RULE = 11;
public static SUPPORTS_RULE = 12;
public static DOCUMENT_RULE = 13;
public static FONT_FEATURE_VALUES_RULE = 14;
public static REGION_STYLE_RULE = 16;
public static CONTAINER_RULE = CSSRuleTypeEnum.containerRule;
public static STYLE_RULE = CSSRuleTypeEnum.styleRule;
public static IMPORT_RULE = CSSRuleTypeEnum.importRule;
public static MEDIA_RULE = CSSRuleTypeEnum.mediaRule;
public static FONT_FACE_RULE = CSSRuleTypeEnum.fontFaceRule;
public static PAGE_RULE = CSSRuleTypeEnum.pageRule;
public static KEYFRAMES_RULE = CSSRuleTypeEnum.keyframesRule;
public static KEYFRAME_RULE = CSSRuleTypeEnum.keyframeRule;
public static NAMESPACE_RULE = CSSRuleTypeEnum.namespaceRule;
public static COUNTER_STYLE_RULE = CSSRuleTypeEnum.counterStyleRule;
public static SUPPORTS_RULE = CSSRuleTypeEnum.supportsRule;
public static DOCUMENT_RULE = CSSRuleTypeEnum.documentRule;
public static FONT_FEATURE_VALUES_RULE = CSSRuleTypeEnum.fontFeatureValuesRule;
public static REGION_STYLE_RULE = CSSRuleTypeEnum.regionStyleRule;

public parentRule: CSSRule = null;
public parentStyleSheet: CSSStyleSheet = null;
Expand Down
18 changes: 18 additions & 0 deletions packages/happy-dom/src/css/CSSRuleTypeEnum.ts
@@ -0,0 +1,18 @@
enum CSSRuleTypeEnum {
containerRule = 0,
styleRule = 1,
importRule = 3,
mediaRule = 4,
fontFaceRule = 5,
pageRule = 6,
keyframesRule = 7,
keyframeRule = 8,
namespaceRule = 10,
counterStyleRule = 11,
supportsRule = 12,
documentRule = 13,
fontFeatureValuesRule = 14,
regionStyleRule = 16
}

export default CSSRuleTypeEnum;