File

projects/common/lib/components/button-group/button-group.component.ts

Description

BUTTONGROUPCOMPONENT IS DEPRECATED! DO NOT USE UNLESS YOU KNOW WHAT YOU'RE DOING.

If you need a Yes/No toggle, @see RadioComponent

Implements

ControlValueAccessor

Example

<common-button-group [showError]="showError"
[errorMessageRequired]="requiredErrMsg"
label="Please select a value"
[data]="data.value" (dataChange)="setMovedToBCPermanently($event)" >
</common-button-group>

Metadata

providers { provide: NG_VALUE_ACCESSOR, multi: true, useExisting: forwardRef(() => ButtonGroupComponent) }
selector common-button-group
styleUrls ./button-group.component.scss
templateUrl ./button-group.component.html
viewProviders { provide: ControlContainer, useExisting: forwardRef(() => NgForm) }

Index

Properties
Methods
Inputs
Outputs

Constructor

constructor()

Inputs

data
Type : boolean
disabled
Type : boolean
Default value : false
errorMessageRequired
Type : string
Default value : 'Field is required.'
label
Type : string
Default value : 'Default Checkbox'
required
Type : boolean
Default value : true
showError
Type : boolean
Default value : false

Outputs

dataChange
Type : EventEmitter<boolean>

Methods

focus
focus()
Returns : void
registerOnChange
registerOnChange(fn: any)
Parameters :
Name Type Optional
fn any No
Returns : void
registerOnTouched
registerOnTouched(fn: any)
Parameters :
Name Type Optional
fn any No
Returns : void
setButtonGrpVal
setButtonGrpVal(val: any)
Parameters :
Name Type Optional
val any No
Returns : void
writeValue
writeValue(value: any)
Parameters :
Name Type Optional
value any No
Returns : void

Properties

Public _onChange
Default value : () => {...}
Public _onTouched
Default value : () => {...}
buttonGroup
Type : ElementRef
Decorators :
@ViewChild('buttonGroup')
import { Component, Input, Output, EventEmitter, ViewChild, ElementRef, forwardRef } from '@angular/core';
import { ControlContainer, ControlValueAccessor, NgForm, NG_VALUE_ACCESSOR } from '@angular/forms';

/**
 * BUTTONGROUPCOMPONENT IS **DEPRECATED**!  **DO NOT USE** UNLESS YOU KNOW WHAT YOU'RE
 * DOING.
 *
 * If you need a Yes/No toggle, @see RadioComponent
 * @deprecated
 *
 *
 *
 *
 * @example
 *       <common-button-group [showError]="showError"
 *          [errorMessageRequired]="requiredErrMsg"
 *          label="Please select a value"
 *          [data]="data.value" (dataChange)="setMovedToBCPermanently($event)" >
 *         </common-button-group>
 *
 * @export
 */


@Component({
  selector: 'common-button-group',
  templateUrl: './button-group.component.html',
  styleUrls: ['./button-group.component.scss'],
  viewProviders: [
    { provide: ControlContainer, useExisting: forwardRef(() => NgForm ) }
  ],
  providers: [
    { provide: NG_VALUE_ACCESSOR, multi: true, useExisting: forwardRef(() => ButtonGroupComponent )}
  ]
})
export class ButtonGroupComponent implements ControlValueAccessor {

  @Input() data: boolean;
  @Input() required: boolean = true;
  @Input() showError: boolean = false;
  @Input() disabled: boolean = false;
  @Input() errorMessageRequired: string = 'Field is required.';
  @Input() label: string = 'Default Checkbox';
  @Output() dataChange: EventEmitter<boolean> = new EventEmitter<boolean>();
  @ViewChild('buttonGroup') buttonGroup: ElementRef;

  public _onChange = (_: any) => {};
  public _onTouched = () => {};

  constructor() {}

  setButtonGrpVal(val: any) {
    this.dataChange.emit(val);
    this._onChange(val);
    this._onTouched();
  }

  focus() {
    this.buttonGroup.nativeElement.focus();
    this._onTouched();
  }

  registerOnChange(fn: any): void {
    this._onChange = fn;
  }

  registerOnTouched(fn: any): void {
    this._onTouched = fn;
  }

  writeValue(value: any): void {
    this.data = value;
  }
}
<div role="dialog" aria-labelledby="btn">
  <p id="btn" class="control-label">{{label}}</p>
  <div class="btn-group" role="group">
    <button #buttonGroup *ngFor='let answer of [{"value": true, "label": "Yes"}, {"value": false, "label": "No"}]'
      [class.btn-radio]="data === answer.value" (click)="setButtonGrpVal(answer.value)" 
      type="button" class="btn btn-default control-label"> {{answer.label}} 
    </button>
  </div>
  <div *ngIf='showError && (data === undefined || data === null)'>
    <div class="text-danger">{{errorMessageRequired}}</div>
  </div>
</div>
Legend
Html element
Component
Html element with directive

result-matching ""

    No results matching ""