@@ -343,14 +343,16 @@ export class ShadowCss {
343343 strict : boolean ) : string {
344344 var r = [ ] , parts = selector . split ( ',' ) ;
345345 for ( var i = 0 ; i < parts . length ; i ++ ) {
346- var p = parts [ i ] ;
347- p = p . trim ( ) ;
348- if ( this . _selectorNeedsScoping ( p , scopeSelector ) ) {
349- p = strict && ! StringWrapper . contains ( p , _polyfillHostNoCombinator ) ?
350- this . _applyStrictSelectorScope ( p , scopeSelector ) :
351- this . _applySelectorScope ( p , scopeSelector , hostSelector ) ;
346+ var p = parts [ i ] . trim ( ) ;
347+ var deepParts = StringWrapper . split ( p , _shadowDeepSelectors ) ;
348+ var shallowPart = deepParts [ 0 ] ;
349+ if ( this . _selectorNeedsScoping ( shallowPart , scopeSelector ) ) {
350+ deepParts [ 0 ] = strict && ! StringWrapper . contains ( shallowPart , _polyfillHostNoCombinator ) ?
351+ this . _applyStrictSelectorScope ( shallowPart , scopeSelector ) :
352+ this . _applySelectorScope ( shallowPart , scopeSelector , hostSelector ) ;
352353 }
353- r . push ( p ) ;
354+ // replace /deep/ with a space for child selectors
355+ r . push ( deepParts . join ( ' ' ) ) ;
354356 }
355357 return r . join ( ', ' ) ;
356358 }
@@ -434,17 +436,16 @@ var _cssColonHostRe = RegExpWrapper.create('(' + _polyfillHost + _parenSuffix, '
434436var _cssColonHostContextRe = RegExpWrapper . create ( '(' + _polyfillHostContext + _parenSuffix , 'im' ) ;
435437var _polyfillHostNoCombinator = _polyfillHost + '-no-combinator' ;
436438var _shadowDOMSelectorsRe = [
437- / > > > / g,
438439 / : : s h a d o w / g,
439440 / : : c o n t e n t / g,
440441 // Deprecated selectors
441442 // TODO(vicb): see https://github.com/angular/clang-format/issues/16
442443 // clang-format off
443- / \/ d e e p \/ / g, // former >>>
444444 / \/ s h a d o w - d e e p \/ / g, // former /deep/
445445 / \/ s h a d o w \/ / g, // former ::shadow
446446 // clanf-format on
447447] ;
448+ var _shadowDeepSelectors = / (?: > > > ) | (?: \/ d e e p \/ ) / g;
448449var _selectorReSuffix = '([>\\s~+\[.,{:][\\s\\S]*)?$' ;
449450var _polyfillHostRe = RegExpWrapper . create ( _polyfillHost , 'im' ) ;
450451var _colonHostRe = / : h o s t / gim;
0 commit comments