Skip to content

Commit 9ce17f6

Browse files
authored
Allow using the modifier on SVG and math elements (#235)
1 parent 26bf164 commit 9ce17f6

File tree

2 files changed

+16
-3
lines changed

2 files changed

+16
-3
lines changed

ember-style-modifier/src/modifiers/style.ts

+10-3
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ function compileStyles(
4444
}
4545

4646
export interface StyleModifierSignature {
47-
Element: HTMLElement;
47+
Element: Element & ElementCSSInlineStyle;
4848
Args: {
4949
Positional: CSSStyles[];
5050
Named: CSSStyles;
@@ -54,7 +54,10 @@ export interface StyleModifierSignature {
5454
export default class StyleModifier extends Modifier<StyleModifierSignature> {
5555
existingStyles: Set<string> = new Set();
5656

57-
setStyles(element: HTMLElement, newStyles: [string, string][]) {
57+
setStyles(
58+
element: StyleModifierSignature['Element'],
59+
newStyles: [string, string][],
60+
) {
5861
const { existingStyles } = this;
5962
const rulesToRemove: Set<string> = new Set(existingStyles);
6063

@@ -92,7 +95,11 @@ export default class StyleModifier extends Modifier<StyleModifierSignature> {
9295
rulesToRemove.forEach((rule) => element.style.removeProperty(rule));
9396
}
9497

95-
modify(element: HTMLElement, positional: [CSSStyles] | [], named: CSSStyles) {
98+
modify(
99+
element: StyleModifierSignature['Element'],
100+
positional: [CSSStyles] | [],
101+
named: CSSStyles,
102+
) {
96103
this.setStyles(element, compileStyles(positional, named));
97104
}
98105
}

test-app/tests/integration/modifiers/style-test.ts

+6
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,12 @@ module('Integration | Modifiers | style', function (hooks) {
6060
assert.dom('p').hasStyle({ fontSize: '6px' });
6161
});
6262

63+
test('it supports usage on SVG elements', async function (assert) {
64+
await render(hbs`<svg {{style display="none"}}></svg>`);
65+
66+
assert.dom('svg').hasStyle({ display: 'none' });
67+
});
68+
6369
{
6470
interface Context extends TestContext {
6571
// eslint-disable-next-line @typescript-eslint/ban-types

0 commit comments

Comments
 (0)