File

projects/core/src/features-config/directives/feature-level.directive.ts

Metadata

Selector [cxFeatureLevel]

Index

Properties
Inputs
Accessors

Constructor

constructor(templateRef: TemplateRef, viewContainer: ViewContainerRef, featureConfig: FeatureConfigService)
Parameters :
Name Type Optional
templateRef TemplateRef<any> No
viewContainer ViewContainerRef No
featureConfig FeatureConfigService No

Inputs

cxFeatureLevel

Properties

Private hasView
Default value : false

Accessors

cxFeatureLevel
setcxFeatureLevel(level: string | number)
Parameters :
Name Type Optional
level string | number No
Returns : void
import { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core';
import { FeatureConfigService } from '../services/feature-config.service';

@Directive({
  selector: '[cxFeatureLevel]',
})
export class FeatureLevelDirective {
  constructor(
    protected templateRef: TemplateRef<any>,
    protected viewContainer: ViewContainerRef,
    protected featureConfig: FeatureConfigService
  ) {}

  private hasView = false;

  @Input() set cxFeatureLevel(level: string | number) {
    if (this.featureConfig.isLevel(level.toString()) && !this.hasView) {
      this.viewContainer.createEmbeddedView(this.templateRef);
      this.hasView = true;
    } else if (!this.featureConfig.isLevel(level.toString()) && this.hasView) {
      this.viewContainer.clear();
      this.hasView = false;
    }
  }
}

result-matching ""

    No results matching ""