UNPKG

@bespunky/angular-zen

Version:

The Angular tools you always wished were there.

67 lines 9.04 kB
import { Directive, Injectable } from '@angular/core'; import { ActivatedRoute, Router } from '@angular/router'; import { RouteAware, RouterOutletComponentBus } from '@bespunky/angular-zen/router-x'; import { LanguageIntegrationService } from './language-integration.service'; import * as i0 from "@angular/core"; import * as i1 from "./language-integration.service"; import * as i2 from "@angular/router"; import * as i3 from "@bespunky/angular-zen/router-x"; /** * Integrates with the `LanguageIntegrationService` and facilitates language related work in route-aware services. * * @export * @abstract * @class LocalizedRouteAware * @extends {RouteAware} */ // eslint-disable-next-line @angular-eslint/directive-class-suffix export class LocalizedRouteAware extends RouteAware { /** * Creates an instance of LocalizedRouteAware. * * @param {LanguageIntegrationService} language The instance of the language integration service. * @param {Router} router The instance of Angular's router service. * @param {ActivatedRoute} route The instance of Angular's activated route service. * @param {RouterOutletComponentBus} [componentBus] (Optional) The component bus for router-x functionality. * Provide this when you want your route-aware service to have access to the instance(s) of the activated component(s). */ constructor(language, router, route, componentBus) { super(router, route, componentBus); this.language = language; if (this.language.enabled) this.initLanguageSupport(); } initLanguageSupport() { this.subscribe(this.language.ready, this.onLanguageServicesReady.bind(this)); // eslint-disable-next-line @typescript-eslint/no-non-null-assertion this.subscribe(this.language.changed, this.onLanguageChanged.bind(this)); } /** * Called when the app's language services have initialized and are ready for use. * When language integration is disabled, or no ready observable have been provided by the app * this will execute immediatelly on construction time. * * Override to implement. * * @virtual * @protected */ onLanguageServicesReady() { void 0; } /** * Called when the current language used by the integrated app has changed. Override to implement. * * @virtual * @protected * @param {*} lang The language code of the new language. */ onLanguageChanged(lang) { void 0; } } LocalizedRouteAware.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LocalizedRouteAware, deps: [{ token: i1.LanguageIntegrationService }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i3.RouterOutletComponentBus }], target: i0.ɵɵFactoryTarget.Directive }); LocalizedRouteAware.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: LocalizedRouteAware, usesInheritance: true, ngImport: i0 }); LocalizedRouteAware.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LocalizedRouteAware }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: LocalizedRouteAware, decorators: [{ type: Directive }, { type: Injectable }], ctorParameters: function () { return [{ type: i1.LanguageIntegrationService }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i3.RouterOutletComponentBus }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemVkLXJvdXRlLWF3YXJlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItemVuL2xhbmd1YWdlL3NyYy9zZXJ2aWNlcy9sb2NhbGl6ZWQtcm91dGUtYXdhcmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRyxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXpELE9BQU8sRUFBRSxVQUFVLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RixPQUFPLEVBQUUsMEJBQTBCLEVBQVksTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7QUFFdEY7Ozs7Ozs7R0FPRztBQUdILGtFQUFrRTtBQUNsRSxNQUFNLE9BQWdCLG1CQUFvQixTQUFRLFVBQVU7SUFFeEQ7Ozs7Ozs7O09BUUc7SUFDSCxZQUNjLFFBQXlDLEVBQ3pDLE1BQXFCLEVBQ3JCLEtBQTZCLEVBQzdCLFlBQXVDO1FBR2pELEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBTnpCLGFBQVEsR0FBUixRQUFRLENBQWlDO1FBUW5ELElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPO1lBQUUsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDMUQsQ0FBQztJQUVPLG1CQUFtQjtRQUV2QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFLLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNoRixvRUFBb0U7UUFDcEUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQVEsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNPLHVCQUF1QixLQUFXLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVyRDs7Ozs7O09BTUc7SUFDTyxpQkFBaUIsQ0FBQyxJQUFZLElBQVUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDOztpSEFqRHpDLG1CQUFtQjtxR0FBbkIsbUJBQW1CO3FIQUFuQixtQkFBbUI7NEZBQW5CLG1CQUFtQjtrQkFIeEMsU0FBUzs7a0JBQ1QsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5qZWN0YWJsZSAgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBSb3V0ZUF3YXJlLCBSb3V0ZXJPdXRsZXRDb21wb25lbnRCdXMgfSBmcm9tICdAYmVzcHVua3kvYW5ndWxhci16ZW4vcm91dGVyLXgnO1xuaW1wb3J0IHsgTGFuZ3VhZ2VJbnRlZ3JhdGlvblNlcnZpY2UgICAgICAgICAgIH0gZnJvbSAnLi9sYW5ndWFnZS1pbnRlZ3JhdGlvbi5zZXJ2aWNlJztcblxuLyoqXG4gKiBJbnRlZ3JhdGVzIHdpdGggdGhlIGBMYW5ndWFnZUludGVncmF0aW9uU2VydmljZWAgYW5kIGZhY2lsaXRhdGVzIGxhbmd1YWdlIHJlbGF0ZWQgd29yayBpbiByb3V0ZS1hd2FyZSBzZXJ2aWNlcy5cbiAqXG4gKiBAZXhwb3J0XG4gKiBAYWJzdHJhY3RcbiAqIEBjbGFzcyBMb2NhbGl6ZWRSb3V0ZUF3YXJlXG4gKiBAZXh0ZW5kcyB7Um91dGVBd2FyZX1cbiAqL1xuQERpcmVjdGl2ZSgpICAvLyBPcmlnaW5hbGx5IHRoaXMgd2FzIGRlY29yYXRlZCB3aXRoIGBEaXJlY3RpdmVgIG9ubHkgc28gYW5ndWxhciBhY2NlcHRzIGl0IGFzIGJhc2UgZm9yIGJvdGggc2VydmljZXMgYW5kIGNvbXBvbmVudHMuXG5ASW5qZWN0YWJsZSgpIC8vIEhvd2V2ZXIsIGNvbXBvZG9jIGZhaWxzIHRvIGNvbGxlY3QgYWJzdHJhY3QgY2xhc3NlcyBtYXJrZWQgd2l0aCBgRGlyZWN0aXZlYCBzbyBJIG1hcmtlZCBpdCBhcyBib3RoLiBUZXN0cyBwYXNzLCBQT0Mgc3RhY2tibGl0eiBkb2Vzbid0IHNob3cgc2lkZSBlZmZlY3RzLlxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtY2xhc3Mtc3VmZml4XG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTG9jYWxpemVkUm91dGVBd2FyZSBleHRlbmRzIFJvdXRlQXdhcmVcbntcbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIExvY2FsaXplZFJvdXRlQXdhcmUuXG4gICAgICogXG4gICAgICogQHBhcmFtIHtMYW5ndWFnZUludGVncmF0aW9uU2VydmljZX0gbGFuZ3VhZ2UgVGhlIGluc3RhbmNlIG9mIHRoZSBsYW5ndWFnZSBpbnRlZ3JhdGlvbiBzZXJ2aWNlLlxuICAgICAqIEBwYXJhbSB7Um91dGVyfSByb3V0ZXIgVGhlIGluc3RhbmNlIG9mIEFuZ3VsYXIncyByb3V0ZXIgc2VydmljZS5cbiAgICAgKiBAcGFyYW0ge0FjdGl2YXRlZFJvdXRlfSByb3V0ZSBUaGUgaW5zdGFuY2Ugb2YgQW5ndWxhcidzIGFjdGl2YXRlZCByb3V0ZSBzZXJ2aWNlLlxuICAgICAqIEBwYXJhbSB7Um91dGVyT3V0bGV0Q29tcG9uZW50QnVzfSBbY29tcG9uZW50QnVzXSAoT3B0aW9uYWwpIFRoZSBjb21wb25lbnQgYnVzIGZvciByb3V0ZXIteCBmdW5jdGlvbmFsaXR5LlxuICAgICAqIFByb3ZpZGUgdGhpcyB3aGVuIHlvdSB3YW50IHlvdXIgcm91dGUtYXdhcmUgc2VydmljZSB0byBoYXZlIGFjY2VzcyB0byB0aGUgaW5zdGFuY2Uocykgb2YgdGhlIGFjdGl2YXRlZCBjb21wb25lbnQocykuXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBsYW5ndWFnZSAgICAgOiBMYW5ndWFnZUludGVncmF0aW9uU2VydmljZSxcbiAgICAgICAgICAgICAgICAgIHJvdXRlciAgICAgICA6IFJvdXRlcixcbiAgICAgICAgICAgICAgICAgIHJvdXRlICAgICAgICA6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICAgICAgICAgICAgY29tcG9uZW50QnVzPzogUm91dGVyT3V0bGV0Q29tcG9uZW50QnVzXG4gICAgKVxuICAgIHtcbiAgICAgICAgc3VwZXIocm91dGVyLCByb3V0ZSwgY29tcG9uZW50QnVzKTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0aGlzLmxhbmd1YWdlLmVuYWJsZWQpIHRoaXMuaW5pdExhbmd1YWdlU3VwcG9ydCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdExhbmd1YWdlU3VwcG9ydCgpOiB2b2lkXG4gICAge1xuICAgICAgICB0aGlzLnN1YnNjcmliZSh0aGlzLmxhbmd1YWdlLnJlYWR5ICAgLCB0aGlzLm9uTGFuZ3VhZ2VTZXJ2aWNlc1JlYWR5LmJpbmQodGhpcykpO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxuICAgICAgICB0aGlzLnN1YnNjcmliZSh0aGlzLmxhbmd1YWdlLmNoYW5nZWQhLCB0aGlzLm9uTGFuZ3VhZ2VDaGFuZ2VkLmJpbmQodGhpcykpO1xuICAgIH1cbiAgICBcbiAgICAvKipcbiAgICAgKiBDYWxsZWQgd2hlbiB0aGUgYXBwJ3MgbGFuZ3VhZ2Ugc2VydmljZXMgaGF2ZSBpbml0aWFsaXplZCBhbmQgYXJlIHJlYWR5IGZvciB1c2UuXG4gICAgICogV2hlbiBsYW5ndWFnZSBpbnRlZ3JhdGlvbiBpcyBkaXNhYmxlZCwgb3Igbm8gcmVhZHkgb2JzZXJ2YWJsZSBoYXZlIGJlZW4gcHJvdmlkZWQgYnkgdGhlIGFwcFxuICAgICAqIHRoaXMgd2lsbCBleGVjdXRlIGltbWVkaWF0ZWxseSBvbiBjb25zdHJ1Y3Rpb24gdGltZS5cbiAgICAgKiBcbiAgICAgKiBPdmVycmlkZSB0byBpbXBsZW1lbnQuXG4gICAgICpcbiAgICAgKiBAdmlydHVhbFxuICAgICAqIEBwcm90ZWN0ZWRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgb25MYW5ndWFnZVNlcnZpY2VzUmVhZHkoKTogdm9pZCB7IHZvaWQgMDsgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsbGVkIHdoZW4gdGhlIGN1cnJlbnQgbGFuZ3VhZ2UgdXNlZCBieSB0aGUgaW50ZWdyYXRlZCBhcHAgaGFzIGNoYW5nZWQuIE92ZXJyaWRlIHRvIGltcGxlbWVudC5cbiAgICAgKiBcbiAgICAgKiBAdmlydHVhbFxuICAgICAqIEBwcm90ZWN0ZWRcbiAgICAgKiBAcGFyYW0geyp9IGxhbmcgVGhlIGxhbmd1YWdlIGNvZGUgb2YgdGhlIG5ldyBsYW5ndWFnZS5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgb25MYW5ndWFnZUNoYW5nZWQobGFuZzogc3RyaW5nKTogdm9pZCB7IHZvaWQgMDsgfVxufVxuIl19