@this-dot/route-config
Version:
A library containing directives and services for configuring components via Route's routeData property
51 lines • 6.32 kB
JavaScript
import { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core';
import { RouteDataHasService } from '../route-data-has/route-data-has.service';
import * as i0 from "@angular/core";
import * as i1 from "../route-data-has/route-data-has.service";
/**
* Retrieves the provided route config property and binds it into a template variable
*
* @example
* <!-- Display an element only if the "show" routeTag is truthy -->
* <p *tdRouteTag="'show'">
* This text is only visible, if there is a 'show' tag in the route data's `routeTags` Array
* </p>
*
* @example
* <!-- Display an element only if the "show" routeTag is truthy and display a fallback template if it is falsy -->
* <p *tdRouteTag="'show'; else noShowTag">
* This text is only visible, if there is a 'show' tag in the route data's `routeTags` Array
* </p>
* <ng-template #noShowTag>
* <p>There is no 'show' tag in this route's config</p>
* </ng-template>
*/
class RouteTagDirective {
set tdRouteTag(tags) {
this.routeDataHasService.setTags(tags);
}
set tdRouteTagElse(elseTemplate) {
this.routeDataHasService.setElseTemplate(elseTemplate);
}
constructor(template, viewContainer, routeDataHasService) {
this.template = template;
this.viewContainer = viewContainer;
this.routeDataHasService = routeDataHasService;
}
ngOnInit() {
this.routeDataHasService.setPropName('routeTags');
this.routeDataHasService.init(this.template, this.viewContainer);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RouteTagDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: i1.RouteDataHasService }], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.7", type: RouteTagDirective, selector: "[tdRouteTag]", inputs: { tdRouteTag: "tdRouteTag", tdRouteTagElse: "tdRouteTagElse" }, providers: [RouteDataHasService], ngImport: i0 }); }
}
export { RouteTagDirective };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: RouteTagDirective, decorators: [{
type: Directive,
args: [{ selector: '[tdRouteTag]', providers: [RouteDataHasService] }]
}], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: i1.RouteDataHasService }]; }, propDecorators: { tdRouteTag: [{
type: Input
}], tdRouteTagElse: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtdGFnLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcm91dGUtY29uZmlnL3NyYy9saWIvcm91dGUtdGFnL3JvdXRlLXRhZy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDOzs7QUFFL0U7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJHO0FBQ0gsTUFDYSxpQkFBaUI7SUFDNUIsSUFDSSxVQUFVLENBQUMsSUFBNkI7UUFDMUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFDSSxjQUFjLENBQUMsWUFBZ0M7UUFDakQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsWUFDVSxRQUE0QixFQUM1QixhQUErQixFQUMvQixtQkFBOEU7UUFGOUUsYUFBUSxHQUFSLFFBQVEsQ0FBb0I7UUFDNUIsa0JBQWEsR0FBYixhQUFhLENBQWtCO1FBQy9CLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBMkQ7SUFDckYsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDbkUsQ0FBQzs4R0FwQlUsaUJBQWlCO2tHQUFqQixpQkFBaUIsK0dBRG9CLENBQUMsbUJBQW1CLENBQUM7O1NBQzFELGlCQUFpQjsyRkFBakIsaUJBQWlCO2tCQUQ3QixTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFO21LQUduRSxVQUFVO3NCQURiLEtBQUs7Z0JBTUYsY0FBYztzQkFEakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIE9uSW5pdCwgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlRGF0YUhhc1NlcnZpY2UgfSBmcm9tICcuLi9yb3V0ZS1kYXRhLWhhcy9yb3V0ZS1kYXRhLWhhcy5zZXJ2aWNlJztcblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGhlIHByb3ZpZGVkIHJvdXRlIGNvbmZpZyBwcm9wZXJ0eSBhbmQgYmluZHMgaXQgaW50byBhIHRlbXBsYXRlIHZhcmlhYmxlXG4gKlxuICogQGV4YW1wbGVcbiAqIDwhLS0gRGlzcGxheSBhbiBlbGVtZW50IG9ubHkgaWYgdGhlIFwic2hvd1wiIHJvdXRlVGFnIGlzIHRydXRoeSAtLT5cbiAqIDxwICp0ZFJvdXRlVGFnPVwiJ3Nob3cnXCI+XG4gKiAgIFRoaXMgdGV4dCBpcyBvbmx5IHZpc2libGUsIGlmIHRoZXJlIGlzIGEgJ3Nob3cnIHRhZyBpbiB0aGUgcm91dGUgZGF0YSdzIGByb3V0ZVRhZ3NgIEFycmF5XG4gKiA8L3A+XG4gKlxuICogQGV4YW1wbGVcbiAqIDwhLS0gRGlzcGxheSBhbiBlbGVtZW50IG9ubHkgaWYgdGhlIFwic2hvd1wiIHJvdXRlVGFnIGlzIHRydXRoeSBhbmQgZGlzcGxheSBhIGZhbGxiYWNrIHRlbXBsYXRlIGlmIGl0IGlzIGZhbHN5IC0tPlxuICogPHAgKnRkUm91dGVUYWc9XCInc2hvdyc7IGVsc2Ugbm9TaG93VGFnXCI+XG4gKiAgIFRoaXMgdGV4dCBpcyBvbmx5IHZpc2libGUsIGlmIHRoZXJlIGlzIGEgJ3Nob3cnIHRhZyBpbiB0aGUgcm91dGUgZGF0YSdzIGByb3V0ZVRhZ3NgIEFycmF5XG4gKiA8L3A+XG4gKiA8bmctdGVtcGxhdGUgI25vU2hvd1RhZz5cbiAqICAgPHA+VGhlcmUgaXMgbm8gJ3Nob3cnIHRhZyBpbiB0aGlzIHJvdXRlJ3MgY29uZmlnPC9wPlxuICogPC9uZy10ZW1wbGF0ZT5cbiAqL1xuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW3RkUm91dGVUYWddJywgcHJvdmlkZXJzOiBbUm91dGVEYXRhSGFzU2VydmljZV0gfSlcbmV4cG9ydCBjbGFzcyBSb3V0ZVRhZ0RpcmVjdGl2ZTxDVGhlbiwgQ0Vsc2UsIFJvdXRlVGFncyBleHRlbmRzIHN0cmluZyA9IHN0cmluZz4gaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKVxuICBzZXQgdGRSb3V0ZVRhZyh0YWdzOiBSb3V0ZVRhZ3MgfCBSb3V0ZVRhZ3NbXSkge1xuICAgIHRoaXMucm91dGVEYXRhSGFzU2VydmljZS5zZXRUYWdzKHRhZ3MpO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IHRkUm91dGVUYWdFbHNlKGVsc2VUZW1wbGF0ZTogVGVtcGxhdGVSZWY8Q0Vsc2U+KSB7XG4gICAgdGhpcy5yb3V0ZURhdGFIYXNTZXJ2aWNlLnNldEVsc2VUZW1wbGF0ZShlbHNlVGVtcGxhdGUpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8Q1RoZW4+LFxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwcml2YXRlIHJvdXRlRGF0YUhhc1NlcnZpY2U6IFJvdXRlRGF0YUhhc1NlcnZpY2U8Q1RoZW4sIENFbHNlLCBSb3V0ZVRhZ3MsICdyb3V0ZVRhZ3MnPlxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yb3V0ZURhdGFIYXNTZXJ2aWNlLnNldFByb3BOYW1lKCdyb3V0ZVRhZ3MnKTtcbiAgICB0aGlzLnJvdXRlRGF0YUhhc1NlcnZpY2UuaW5pdCh0aGlzLnRlbXBsYXRlLCB0aGlzLnZpZXdDb250YWluZXIpO1xuICB9XG59XG4iXX0=