| 192 | * because it reads from the `ExtraOptions` which should not be used in the standalone world. |
| 193 | */ |
| 194 | export function provideRouterScroller(): Provider { |
| 195 | return { |
| 196 | provide: ROUTER_SCROLLER, |
| 197 | useFactory: () => { |
| 198 | const viewportScroller = inject(ViewportScroller); |
| 199 | const config: ExtraOptions = inject(ROUTER_CONFIGURATION); |
| 200 | if (config.scrollOffset) { |
| 201 | viewportScroller.setOffset(config.scrollOffset); |
| 202 | } |
| 203 | return new RouterScroller(config); |
| 204 | }, |
| 205 | }; |
| 206 | } |
| 207 | |
| 208 | // Note: For internal use only with `RouterModule`. Standalone setup via `provideRouter` should |
| 209 | // provide hash location directly via `{provide: LocationStrategy, useClass: HashLocationStrategy}`. |