diff --git a/packages/shared/__tests__/normalizeProp.spec.ts b/packages/shared/__tests__/normalizeProp.spec.ts index c884d9e7281..4ef69503f04 100644 --- a/packages/shared/__tests__/normalizeProp.spec.ts +++ b/packages/shared/__tests__/normalizeProp.spec.ts @@ -1,4 +1,4 @@ -import { normalizeClass } from '../src' +import { normalizeClass, parseStringStyle } from '../src' describe('normalizeClass', () => { test('handles string correctly', () => { @@ -16,4 +16,31 @@ describe('normalizeClass', () => { 'foo baz' ) }) + + // #6777 + test('parse multi-line inline style', () => { + expect( + parseStringStyle(`border: 1px solid transparent; + background: linear-gradient(white, white) padding-box, + repeating-linear-gradient( + -45deg, + #ccc 0, + #ccc 0.5em, + white 0, + white 0.75em + );`) + ).toMatchInlineSnapshot(` + Object { + "background": "linear-gradient(white, white) padding-box, + repeating-linear-gradient( + -45deg, + #ccc 0, + #ccc 0.5em, + white 0, + white 0.75em + )", + "border": "1px solid transparent", + } + `) + }) }) diff --git a/packages/shared/src/normalizeProp.ts b/packages/shared/src/normalizeProp.ts index 283309a4369..b4010eb6350 100644 --- a/packages/shared/src/normalizeProp.ts +++ b/packages/shared/src/normalizeProp.ts @@ -27,7 +27,7 @@ export function normalizeStyle( } const listDelimiterRE = /;(?![^(]*\))/g -const propertyDelimiterRE = /:(.+)/ +const propertyDelimiterRE = /:([^]+)/ export function parseStringStyle(cssText: string): NormalizedStyle { const ret: NormalizedStyle = {}