File

projects/wvr-elements/src/lib/wvr-list/wvr-list.component.ts

Description

A stylable list.

Extends

WvrBaseComponent

Implements

AfterViewInit OnDestroy

Metadata

Index

Properties
Methods
Inputs
Outputs
HostBindings

Constructor

constructor(injector: Injector)
Parameters :
Name Type Optional
injector Injector No

Inputs

listType
Type : string
Default value : 'unordered'

Specifies the display format of this list.

animate
Type : string
Inherited from WvrBaseComponent

A setter which parses a json string describing animation instructions and stores the derived object in _animationSettings.

animateConfig
Type : string
Inherited from WvrBaseComponent

A setter which parses a json string describing animation setting and stores the derived object in _animationConfig.

animateId
Type : string
Inherited from WvrBaseComponent

An attribute input allowing for the designation of an animation identifier for the purpose of animation targeting.

animateTarget
Type : string
Inherited from WvrBaseComponent

An attribute input allowing for the designation of an animation target for animation events.

hiddenInMobile
Type : boolean
Default value : false
Inherited from WvrBaseComponent

An attribute input specifying if this component should be hidden in the mobile layout.

ngBindings
Type : string
Inherited from WvrBaseComponent
themeVariant
Type : ThemeVariantName
Inherited from WvrBaseComponent

Used to define the class type of an alert component.

wvrData
Type : string
Inherited from WvrBaseComponent
wvrTheme
Type : string
Inherited from WvrBaseComponent

Allows for the override of theme for the particular component.

Outputs

animationEventTrigger
Type : EventEmitter
Inherited from WvrBaseComponent

An Output biding used for triggering animations.

HostBindings

class.wvr-bootstrap
Type : boolean
Default value : true
Inherited from WvrBaseComponent

A host binding used to ensure the presense of the wvr-bootstrap class.

class.wvr-hidden
Type : boolean
Inherited from WvrBaseComponent

A host bound accessor which applies the wvr-hidden class if both isMobileLayout and hiddenInMobile evaluate to true.

style
Type : any
Inherited from WvrBaseComponent

Methods

ngAfterViewInit
ngAfterViewInit()
Returns : void
ngOnDestroy
ngOnDestroy()
Inherited from WvrBaseComponent
Returns : void
Private project
project()
Returns : void
applyThemeOverride
applyThemeOverride(customProperty: string, value: string)
Inherited from WvrBaseComponent
Parameters :
Name Type Optional
customProperty string No
value string No
Returns : void
bootstrapNgBindings
bootstrapNgBindings()
Inherited from WvrBaseComponent
Returns : void
getWvrData
getWvrData()
Inherited from WvrBaseComponent
Returns : string
hasWvrData
hasWvrData()
Inherited from WvrBaseComponent
Returns : boolean
initializeAnimationElement
initializeAnimationElement()
Inherited from WvrBaseComponent
Returns : void
initializeAnimationRegistration
initializeAnimationRegistration()
Inherited from WvrBaseComponent
Returns : void
ngAfterContentInit
ngAfterContentInit()
Inherited from WvrBaseComponent

Used for post content initialization animation setup.

Returns : void
ngOnInit
ngOnInit()
Inherited from WvrBaseComponent

Used to setup this component for animating.

Returns : void
onAnimationEvent
onAnimationEvent($event: Event)
Inherited from WvrBaseComponent

Trigger's the animation specified by the incoming event.

Parameters :
Name Type Optional
$event Event No
Returns : void
Private processData
processData()
Inherited from WvrBaseComponent
Returns : void
triggerAnimations
triggerAnimations(animationTriggerType: string)
Inherited from WvrBaseComponent

Plays the animation specified by the incoming animation trigger.

Parameters :
Name Type Optional
animationTriggerType string No
Returns : void

Properties

Private Readonly observer
Default value : new MutationObserver(() => { this.project(); })
Private _animationConfig
Type : any
Default value : {}
Inherited from WvrBaseComponent

An object representation of the settings specifying the specific behavior of the animation for this component.

Private Readonly _animationService
Type : AnimationService<WvrBaseComponent>
Inherited from WvrBaseComponent

A reference to the AnimationService

Private _animationSettings
Type : any
Default value : {}
Inherited from WvrBaseComponent

An object representation of the animation instructions for this component.

Private _ngBindings
Type : literal type
Inherited from WvrBaseComponent
animationRootElem
Type : ElementRef
Decorators :
@ViewChild('animationRoot')
Inherited from WvrBaseComponent

A view child of the template element containing the #animationRoot identifier.

Private animationStateId
Type : number
Inherited from WvrBaseComponent

An identifier used to access the animation state for this component.

Readonly appConfig
Type : AppConfig
Inherited from WvrBaseComponent

A reference to the AppConfig

Readonly cdRef
Type : ChangeDetectorRef
Inherited from WvrBaseComponent

A reference to the ChangeDetectorRef

Readonly componentRegistry
Type : ComponentRegistryService<WvrBaseComponent>
Inherited from WvrBaseComponent

A reference to the ComponentRegistryService

data
Type : literal type
Default value : {}
Inherited from WvrBaseComponent
Readonly eRef
Type : ElementRef
Inherited from WvrBaseComponent

A reference to the ElementRef

Readonly id
Type : number
Inherited from WvrBaseComponent

A generated unique identifier for this comonent.

isMobile
Type : Observable<boolean>
Inherited from WvrBaseComponent
isMobileLayout
Type : boolean
Inherited from WvrBaseComponent
Private Readonly kebabize
Default value : () => {...}
Inherited from WvrBaseComponent
Private Readonly ngBindingsService
Type : NgBindingsService
Inherited from WvrBaseComponent

A reference to the NgBindingsService

Readonly store
Type : Store<RootState>
Inherited from WvrBaseComponent

A reference to the Store

style
Decorators :
@HostBinding('style')
Inherited from WvrBaseComponent
Protected subscriptions
Type : Array<Subscription>
Inherited from WvrBaseComponent
themeOverrides
Type : object
Default value : {}
Inherited from WvrBaseComponent
Private Readonly themeService
Type : ThemeService
Inherited from WvrBaseComponent

A reference to the ThemeService

variantTypes
Type : []
Default value : []
Inherited from WvrBaseComponent
wvrBootstrap
Default value : true
Decorators :
@HostBinding('class.wvr-bootstrap')
Inherited from WvrBaseComponent

A host binding used to ensure the presense of the wvr-bootstrap class.

import { AfterViewInit, ChangeDetectionStrategy, Component, Injector, Input, OnDestroy } from '@angular/core';
import { projectContent } from '../shared/utility/projection.utility';
import { WvrBaseComponent } from '../shared/wvr-base.component';

/**
 * A stylable list.
 */
@Component({
  selector: 'wvr-list-component',
  templateUrl: './wvr-list.component.html',
  styleUrls: ['./wvr-list.component.scss'],
  changeDetection: ChangeDetectionStrategy.Default
})
export class WvrListComponent extends WvrBaseComponent implements AfterViewInit, OnDestroy {

  /** Specifies the display format of this list.  */
  @Input() listType = 'unordered';

  private readonly observer = new MutationObserver(() => {
    this.project();
  });

  constructor(injector: Injector) {
    super(injector);
  }

  ngAfterViewInit(): void {
    this.project();
    const element: Element = this.eRef.nativeElement.querySelector('template[list-items],template[wvr-compile]');
    if (!!element) {
      this.observer.observe(element, {
        attributes: false,
        childList: true,
        subtree: false
      });
    }
  }

  ngOnDestroy(): void {
    super.ngOnDestroy();
    this.observer.disconnect();
  }

  private project(): void {
    projectContent(this.eRef, 'template[list-items],template[wvr-compile]', 'ul[list-items],ol[list-items],dl[list-items],div[list-items]');
  }

}
<wvre-list-wrapper #animationRoot [ngSwitch]="true">
  <ul *ngSwitchCase="listType === 'unordered'" list-items>
    <ng-container *ngTemplateOutlet="selection"></ng-container>
  </ul>

  <ul *ngSwitchCase="listType === 'unstyled'" class="list-unstyled" list-items>
    <ng-container *ngTemplateOutlet="selection"></ng-container>
  </ul>

  <ol *ngSwitchCase="listType === 'ordered'" list-items>
    <ng-container *ngTemplateOutlet="selection"></ng-container>
  </ol>

  <dl *ngSwitchCase="listType === 'described'" list-items>
    <ng-container *ngTemplateOutlet="selection"></ng-container>
  </dl>

  <ul *ngSwitchCase="listType === 'group-ul' || listType === 'group'" class="list-group" list-items>
    <ng-container *ngTemplateOutlet="selection"></ng-container>
  </ul>

  <div *ngSwitchCase="listType === 'group-div'" class="list-group" list-items>
    <ng-container *ngTemplateOutlet="selection"></ng-container>
  </div>

  <ul *ngSwitchCase="listType === 'group-flush'" class="list-group list-group-flush" list-items>
    <ng-container *ngTemplateOutlet="selection"></ng-container>
  </ul>

  <div *ngSwitchCase="listType === 'group-custom-content'" class="list-group" list-items>
    <ng-container *ngTemplateOutlet="selection"></ng-container>
  </div>

  <div *ngSwitchDefault></div>

</wvre-list-wrapper>

<ng-template #selection>
  <ng-content select="template[list-items]"></ng-content>
</ng-template>

./wvr-list.component.scss

@import "../shared/styles/variables";

:host {
  
  @extend .variables;
  
  font-family: var(--wvr-font-family-sans-serif);

  wvre-list-wrapper {
    display: block;
    overflow: hidden;
  }

  ::ng-deep {

    .list-group-flush > wvre-list-item > wvre-list-item-wrapper > .list-group-item {
      border-right: 0;
      border-left: 0;
      border-radius: 0;
    }

    .list-group-flush > wvre-list-item:first-child > wvre-list-item-wrapper > .list-group-item {
      border-top: 0;
    }

    .list-group-flush > wvre-list-item:last-child > wvre-list-item-wrapper > .list-group-item {
      border-bottom: 0;
    }

  }
}
Legend
Html element
Component
Html element with directive

results matching ""

    No results matching ""