UNPKG

ngx-scroll-position-restoration

Version:
45 lines 6.01 kB
import { NgModule } from '@angular/core'; import { CustomRouterOutletDirective } from './custom-router-outlet.directive'; import { defaultNgxScrollPositionRestorationConfig } from './default-ngx-scroll-position-restoration-config'; import { NGX_SCROLL_POSITION_RESTORATION_CONFIG_INJECTION_TOKEN } from './ngx-scroll-position-restoration-config-injection-token'; import { NgxScrollPositionRestorationService } from './ngx-scroll-position-restoration.service'; export class NgxScrollPositionRestorationModule { constructor(ngxScrollPositionRestorationService) { if (!NgxScrollPositionRestorationModule.serviceInitialized) { ngxScrollPositionRestorationService.initialize(); NgxScrollPositionRestorationModule.serviceInitialized = true; } } static forRoot(config) { return ({ ngModule: NgxScrollPositionRestorationModule, providers: [ { provide: NGX_SCROLL_POSITION_RESTORATION_CONFIG_INJECTION_TOKEN, useValue: Object.assign(defaultNgxScrollPositionRestorationConfig, config) } ] }); } } /** * Since NgxScrollPositionRestorationModule can be imported in child modules, it is needed to track if the ngxScrollPositionRestorationService has been already initialized to avoid duplicate calls of the `initialize` method. */ NgxScrollPositionRestorationModule.serviceInitialized = false; NgxScrollPositionRestorationModule.decorators = [ { type: NgModule, args: [{ declarations: [ CustomRouterOutletDirective ], exports: [ CustomRouterOutletDirective ], providers: [ NgxScrollPositionRestorationService ] },] } ]; NgxScrollPositionRestorationModule.ctorParameters = () => [ { type: NgxScrollPositionRestorationService } ]; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXNjcm9sbC1wb3NpdGlvbi1yZXN0b3JhdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2Nyb2xsLXBvc2l0aW9uLXJlc3RvcmF0aW9uL3NyYy9saWIvbmd4LXNjcm9sbC1wb3NpdGlvbi1yZXN0b3JhdGlvbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHlDQUF5QyxFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFFN0csT0FBTyxFQUFFLHNEQUFzRCxFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDbEksT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFhaEcsTUFBTSxPQUFPLGtDQUFrQztJQU83QyxZQUFZLG1DQUF3RTtRQUNsRixJQUFJLENBQUMsa0NBQWtDLENBQUMsa0JBQWtCLEVBQUU7WUFDMUQsbUNBQW1DLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDakQsa0NBQWtDLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO1NBQzlEO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBMkM7UUFDeEQsT0FBTyxDQUFDO1lBQ04sUUFBUSxFQUFFLGtDQUFrQztZQUM1QyxTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsT0FBTyxFQUFFLHNEQUFzRDtvQkFDL0QsUUFBUSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMseUNBQXlDLEVBQUUsTUFBTSxDQUFDO2lCQUMzRTthQUNGO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUF0QkQ7O0dBRUc7QUFDWSxxREFBa0IsR0FBRyxLQUFLLENBQUM7O1lBaEIzQyxRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFO29CQUNaLDJCQUEyQjtpQkFDNUI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLDJCQUEyQjtpQkFDNUI7Z0JBQ0QsU0FBUyxFQUFFO29CQUNULG1DQUFtQztpQkFDcEM7YUFDRjs7O1lBWlEsbUNBQW1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ3VzdG9tUm91dGVyT3V0bGV0RGlyZWN0aXZlIH0gZnJvbSAnLi9jdXN0b20tcm91dGVyLW91dGxldC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBkZWZhdWx0Tmd4U2Nyb2xsUG9zaXRpb25SZXN0b3JhdGlvbkNvbmZpZyB9IGZyb20gJy4vZGVmYXVsdC1uZ3gtc2Nyb2xsLXBvc2l0aW9uLXJlc3RvcmF0aW9uLWNvbmZpZyc7XHJcbmltcG9ydCB7IE5neFNjcm9sbFBvc2l0aW9uUmVzdG9yYXRpb25Db25maWcgfSBmcm9tICcuL25neC1zY3JvbGwtcG9zaXRpb24tcmVzdG9yYXRpb24tY29uZmlnJztcclxuaW1wb3J0IHsgTkdYX1NDUk9MTF9QT1NJVElPTl9SRVNUT1JBVElPTl9DT05GSUdfSU5KRUNUSU9OX1RPS0VOIH0gZnJvbSAnLi9uZ3gtc2Nyb2xsLXBvc2l0aW9uLXJlc3RvcmF0aW9uLWNvbmZpZy1pbmplY3Rpb24tdG9rZW4nO1xyXG5pbXBvcnQgeyBOZ3hTY3JvbGxQb3NpdGlvblJlc3RvcmF0aW9uU2VydmljZSB9IGZyb20gJy4vbmd4LXNjcm9sbC1wb3NpdGlvbi1yZXN0b3JhdGlvbi5zZXJ2aWNlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBDdXN0b21Sb3V0ZXJPdXRsZXREaXJlY3RpdmVcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIEN1c3RvbVJvdXRlck91dGxldERpcmVjdGl2ZVxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBOZ3hTY3JvbGxQb3NpdGlvblJlc3RvcmF0aW9uU2VydmljZVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIE5neFNjcm9sbFBvc2l0aW9uUmVzdG9yYXRpb25Nb2R1bGUge1xyXG5cclxuICAvKipcclxuICAgKiBTaW5jZSBOZ3hTY3JvbGxQb3NpdGlvblJlc3RvcmF0aW9uTW9kdWxlIGNhbiBiZSBpbXBvcnRlZCBpbiBjaGlsZCBtb2R1bGVzLCBpdCBpcyBuZWVkZWQgdG8gdHJhY2sgaWYgdGhlIG5neFNjcm9sbFBvc2l0aW9uUmVzdG9yYXRpb25TZXJ2aWNlIGhhcyBiZWVuIGFscmVhZHkgaW5pdGlhbGl6ZWQgdG8gYXZvaWQgZHVwbGljYXRlIGNhbGxzIG9mIHRoZSBgaW5pdGlhbGl6ZWAgbWV0aG9kLiBcclxuICAgKi9cclxuICBwcml2YXRlIHN0YXRpYyBzZXJ2aWNlSW5pdGlhbGl6ZWQgPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3Iobmd4U2Nyb2xsUG9zaXRpb25SZXN0b3JhdGlvblNlcnZpY2U6IE5neFNjcm9sbFBvc2l0aW9uUmVzdG9yYXRpb25TZXJ2aWNlKSB7XHJcbiAgICBpZiAoIU5neFNjcm9sbFBvc2l0aW9uUmVzdG9yYXRpb25Nb2R1bGUuc2VydmljZUluaXRpYWxpemVkKSB7XHJcbiAgICAgIG5neFNjcm9sbFBvc2l0aW9uUmVzdG9yYXRpb25TZXJ2aWNlLmluaXRpYWxpemUoKTtcclxuICAgICAgTmd4U2Nyb2xsUG9zaXRpb25SZXN0b3JhdGlvbk1vZHVsZS5zZXJ2aWNlSW5pdGlhbGl6ZWQgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3RhdGljIGZvclJvb3QoY29uZmlnPzogTmd4U2Nyb2xsUG9zaXRpb25SZXN0b3JhdGlvbkNvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8Tmd4U2Nyb2xsUG9zaXRpb25SZXN0b3JhdGlvbk1vZHVsZT4ge1xyXG4gICAgcmV0dXJuICh7XHJcbiAgICAgIG5nTW9kdWxlOiBOZ3hTY3JvbGxQb3NpdGlvblJlc3RvcmF0aW9uTW9kdWxlLFxyXG4gICAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwcm92aWRlOiBOR1hfU0NST0xMX1BPU0lUSU9OX1JFU1RPUkFUSU9OX0NPTkZJR19JTkpFQ1RJT05fVE9LRU4sXHJcbiAgICAgICAgICB1c2VWYWx1ZTogT2JqZWN0LmFzc2lnbihkZWZhdWx0Tmd4U2Nyb2xsUG9zaXRpb25SZXN0b3JhdGlvbkNvbmZpZywgY29uZmlnKVxyXG4gICAgICAgIH1cclxuICAgICAgXVxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==