File

projects/k-components/src/lib/components/button/button.component.ts

Description

Angular Component for the Button Control

Metadata

changeDetection ChangeDetectionStrategy.OnPush
selector wm-button
templateUrl ./button.component.html

Index

Properties
Methods
Inputs

Constructor

Public constructor(injector: Injector, injectedModel: ButtonModel)

Creates an instance of ButtonComponent.

Parameters :
Name Type Optional
injector Injector No
injectedModel ButtonModel No

Inputs

click
Type : EventEmitter<any>
Default value : new EventEmitter()

Event Emmiter. EventEmitter normally called in the ClickHandler.

model
Type : ButtonModel

Object with properties and events for the Button.

Methods

clickHandler
clickHandler()

Event handler for when the user click the button. Emit the click EventEmitter output.

Returns : void
isDisabled
isDisabled()

Disable the Button element if the model.IsEnabled is false.

Returns : boolean

{boolean}

ngOnInit
ngOnInit()

Angular lifeCycle hook Assign the model property with a ButtonModel instance.

Returns : void
triggerClick
triggerClick()

Event handler from the HTML Element Button for when the user click the button. Calls the Component clickHandler method

Returns : void

Properties

click
Type : EventEmitter<any>
Default value : new EventEmitter()
Decorators :
@Input()

Event Emmiter. EventEmitter normally called in the ClickHandler.

Public model
Type : ButtonModel
Decorators :
@Input()

Object with properties and events for the Button.

import {
  Component,
  Input,
  EventEmitter,
  Injector,
  Optional,
} from '@angular/core';
import {
  AngularComponentId,
  ButtonModel,
  ComponentId,
} from '@mobilize/wms-framework';

/**
 * Angular Component for the Button Control
 *
 * @export
 * @class ButtonComponent
 */
@Component({
  selector: 'wm-button',
  templateUrl: './button.component.html',
  changeDetection: ChangeDetectionStrategy.OnPush,
})
@ComponentId([AngularComponentId.button])
export class ButtonComponent {
  /**
   * Object with properties and events for the Button.
   *
   * @type {ButtonModel}
   * @memberof ButtonComponent
   */
  @Input()
  public model: ButtonModel;

  /**
   * Event Emmiter.
   * EventEmitter normally called in the ClickHandler.
   *
   * @type {EventEmitter<any>}
   * @memberof ButtonComponent
   */
  @Input()
  click: EventEmitter<any> = new EventEmitter();

  /**
   * Creates an instance of ButtonComponent.
   * @param {Injector} injector
   * @param {ButtonModel} [injectedModel=null]
   * @memberof ButtonComponent
   */
  public constructor(
    private injector: Injector,
    @Optional() protected injectedModel: ButtonModel = null
  ) {
    this.model = injectedModel;
  }

  /**
   * Event handler from the HTML Element Button for when the user click the button.
   * Calls the Component clickHandler method
   * @memberof ButtonComponent
   */
  triggerClick(): void {
    this.clickHandler();
  }

  /**
   * Event handler for when the user click the button.
   * Emit the click EventEmitter output.
   *
   * @memberof ButtonComponent
   */
  clickHandler(): void {
    this.model?.OnClick();
    this.click.emit(this);
  }

  /**
   * Disable the Button element if the model.IsEnabled is false.
   *
   * @return {*}  {boolean}
   * @memberof ButtonComponent
   */
  isDisabled(): boolean {
    return this.model?.IsEnabled === false;
  }

  /**
   * Angular lifeCycle hook
   * Assign the model property with a ButtonModel instance.
   * @memberof ButtonComponent
   */
  ngOnInit(): void {
    this.model = this.model || this.injectedModel || new ButtonModel();
  }
}
<button
  (click)="clickHandler()"
  [disabled]="model?.IsEnabled"
  class="btn btn-primary"
>
  <ng-content></ng-content>
</button>
Legend
Html element
Component
Html element with directive

result-matching ""

    No results matching ""