Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | 2x 222x 128x 111x 111x 111x 111x 111x 111x 2x 14x 13x 13x 111x | import { DefaultUrlSerializer, UrlSegment, UrlSegmentGroup, UrlSerializer, UrlTree } from '@angular/router'; function removeMatrixParametersFromGroup(group: UrlSegmentGroup): UrlSegmentGroup { return new UrlSegmentGroup( group.segments.map(segment => new UrlSegment(segment.path, {})), Object.entries(group.children).reduce( (acc, [key, group]) => ({ ...acc, [key]: removeMatrixParametersFromGroup(group) }), {} ) ); } function removeMatrixParameters(tree: UrlTree): UrlTree { const newTree = new UrlTree(); newTree.root = removeMatrixParametersFromGroup(tree.root); newTree.fragment = tree.fragment; newTree.queryParams = tree.queryParams; return newTree; } /** * Custom serializer for allowing parenthesis in URLs and removing matrix parameters * * taken from: https://github.com/angular/angular/issues/10280#issuecomment-309129784 */ export class PWAUrlSerializer implements UrlSerializer { private defaultUrlSerializer: DefaultUrlSerializer = new DefaultUrlSerializer(); parse(url: string): UrlTree { const newUrl = url.replace(/\(/g, '%28').replace(/\)/g, '%29'); return this.defaultUrlSerializer.parse(newUrl); } serialize(tree: UrlTree): string { return ( this.defaultUrlSerializer .serialize(removeMatrixParameters(tree)) // display parenthesis unencoded in URL .replace(/%28/g, '(') .replace(/%29/g, ')') ); } } |