src/timepicker/timepicker.component.ts
Get started with importing the module:
Example :import { TimePickerModule } from 'carbon-components-angular';
ControlValueAccessor
providers |
{
provide: NG_VALUE_ACCESSOR, useExisting: TimePicker, multi: true
}
|
selector | cds-timepicker, ibm-timepicker |
template |
|
Properties |
|
Methods |
Inputs |
Outputs |
HostBindings |
HostListeners |
disabled | |
Type : boolean
|
|
Default value : false
|
|
Defined in src/timepicker/timepicker.component.ts:89
|
hideLabel | |
Type : boolean
|
|
Default value : false
|
|
Defined in src/timepicker/timepicker.component.ts:85
|
id | |
Type : string
|
|
Default value : `timepicker-${TimePicker.timePickerCount++}`
|
|
Defined in src/timepicker/timepicker.component.ts:88
|
invalid | |
Type : boolean
|
|
Default value : false
|
|
Defined in src/timepicker/timepicker.component.ts:82
|
invalidText | |
Type : string | TemplateRef<any>
|
|
Defined in src/timepicker/timepicker.component.ts:83
|
label | |
Type : string | TemplateRef<any>
|
|
Defined in src/timepicker/timepicker.component.ts:84
|
maxLength | |
Type : number
|
|
Default value : 5
|
|
Defined in src/timepicker/timepicker.component.ts:91
|
pattern | |
Type : string
|
|
Default value : "(1[012]|[0-9]):[0-5][0-9]"
|
|
Defined in src/timepicker/timepicker.component.ts:87
|
placeholder | |
Type : string
|
|
Default value : "hh:mm"
|
|
Defined in src/timepicker/timepicker.component.ts:86
|
size | |
Type : "sm" | "md" | "lg"
|
|
Default value : "md"
|
|
Defined in src/timepicker/timepicker.component.ts:106
|
|
|
skeleton | |
Type : boolean
|
|
Default value : false
|
|
Defined in src/timepicker/timepicker.component.ts:96
|
|
Set to true for a loading select. |
theme | |
Type : "light" | "dark"
|
|
Default value : "dark"
|
|
Defined in src/timepicker/timepicker.component.ts:101
|
value | |
Type : string
|
|
Defined in src/timepicker/timepicker.component.ts:90
|
valueChange | |
Type : EventEmitter<string>
|
|
Defined in src/timepicker/timepicker.component.ts:108
|
class.cds--form-item |
Type : boolean
|
Default value : true
|
Defined in src/timepicker/timepicker.component.ts:113
|
Ensures component is properly styled when used standalone. |
focusout |
focusout()
|
Defined in src/timepicker/timepicker.component.ts:137
|
focusOut |
focusOut()
|
Decorators :
@HostListener('focusout')
|
Defined in src/timepicker/timepicker.component.ts:137
|
Returns :
void
|
Public isTemplate | ||||
isTemplate(value)
|
||||
Defined in src/timepicker/timepicker.component.ts:141
|
||||
Parameters :
Returns :
boolean
|
onChange | ||||
onChange(event)
|
||||
Defined in src/timepicker/timepicker.component.ts:131
|
||||
Parameters :
Returns :
void
|
registerOnChange | ||||||
registerOnChange(callback: any)
|
||||||
Defined in src/timepicker/timepicker.component.ts:119
|
||||||
Parameters :
Returns :
void
|
registerOnTouched | ||||||
registerOnTouched(callback: any)
|
||||||
Defined in src/timepicker/timepicker.component.ts:123
|
||||||
Parameters :
Returns :
void
|
setDisabledState | ||||||
setDisabledState(isDisabled: boolean)
|
||||||
Defined in src/timepicker/timepicker.component.ts:127
|
||||||
Parameters :
Returns :
void
|
writeValue | ||||||
writeValue(value: string)
|
||||||
Defined in src/timepicker/timepicker.component.ts:115
|
||||||
Parameters :
Returns :
void
|
Protected onChangeHandler |
Default value : () => {...}
|
Defined in src/timepicker/timepicker.component.ts:145
|
Protected onTouchedHandler |
Default value : () => {...}
|
Defined in src/timepicker/timepicker.component.ts:146
|
timepickerClass |
Default value : true
|
Decorators :
@HostBinding('class.cds--form-item')
|
Defined in src/timepicker/timepicker.component.ts:113
|
Ensures component is properly styled when used standalone. |
Static timePickerCount |
Type : number
|
Default value : 0
|
Defined in src/timepicker/timepicker.component.ts:80
|
Tracks the total number of selects instantiated. Used to generate unique IDs |
import {
Component,
Input,
Output,
EventEmitter,
HostBinding,
TemplateRef,
HostListener
} from "@angular/core";
import { NG_VALUE_ACCESSOR, ControlValueAccessor } from "@angular/forms";
/**
* Get started with importing the module:
*
* ```typescript
* import { TimePickerModule } from 'carbon-components-angular';
* ```
*
* [See demo](../../?path=/story/components-time-picker--simple)
*/
@Component({
selector: "cds-timepicker, ibm-timepicker",
template: `
<label
*ngIf="!skeleton && label"
[for]="id"
class="cds--label"
[ngClass]="{
'cds--label--disabled': disabled,
'cds--visually-hidden': hideLabel
}">
<ng-container *ngIf="!isTemplate(label)">{{label}}</ng-container>
<ng-template *ngIf="isTemplate(label)" [ngTemplateOutlet]="label"></ng-template>
</label>
<div
class="cds--time-picker"
[ngClass]="{
'cds--time-picker--invalid' : invalid,
'cds--time-picker--sm': size === 'sm',
'cds--time-picker--md': size === 'md',
'cds--time-picker--lg': size === 'lg',
'cds--time-picker--light': theme === 'light'
}">
<div class="cds--time-picker__input">
<input
[ngClass]="{
'cds--text-input--light': theme === 'light',
'cds--skeleton': skeleton
}"
[value]="value"
[placeholder]="placeholder"
[attr.data-invalid]="invalid ? true : undefined"
[pattern]="pattern"
[attr.id]="id"
[disabled]="disabled"
[attr.maxlength]="maxLength"
(change)="onChange($event)"
type="text"
class="cds--time-picker__input-field cds--text-input">
</div>
<ng-content></ng-content>
</div>
<div *ngIf="invalid" class="cds--form-requirement">
<ng-container *ngIf="!isTemplate(invalidText)">{{invalidText}}</ng-container>
<ng-template *ngIf="isTemplate(invalidText)" [ngTemplateOutlet]="invalidText"></ng-template>
</div>
`,
providers: [
{
provide: NG_VALUE_ACCESSOR,
useExisting: TimePicker,
multi: true
}
]
})
export class TimePicker implements ControlValueAccessor {
/**
* Tracks the total number of selects instantiated. Used to generate unique IDs
*/
static timePickerCount = 0;
@Input() invalid = false;
@Input() invalidText: string | TemplateRef<any>;
@Input() label: string | TemplateRef<any>;
@Input() hideLabel = false;
@Input() placeholder = "hh:mm";
@Input() pattern = "(1[012]|[0-9]):[0-5][0-9]";
@Input() id = `timepicker-${TimePicker.timePickerCount++}`;
@Input() disabled = false;
@Input() value: string;
@Input() maxLength = 5;
/**
* Set to true for a loading select.
*/
@Input() skeleton = false;
/**
* @deprecated since v5 - Use `cdsLayer` directive instead
*/
@Input() theme: "light" | "dark" = "dark";
/**
* `sm`, `md` (default), or `lg` select size
*/
@Input() size: "sm" | "md" | "lg" = "md";
@Output() valueChange: EventEmitter<string> = new EventEmitter();
/**
* Ensures component is properly styled when used standalone.
*/
@HostBinding("class.cds--form-item") timepickerClass = true;
writeValue(value: string) {
this.value = value;
}
registerOnChange(callback: any) {
this.onChangeHandler = callback;
}
registerOnTouched(callback: any) {
this.onTouchedHandler = callback;
}
setDisabledState(isDisabled: boolean) {
this.disabled = isDisabled;
}
onChange(event) {
this.onChangeHandler(event.target.value);
this.valueChange.emit(event.target.value);
}
@HostListener("focusout")
focusOut() {
this.onTouchedHandler();
}
public isTemplate(value) {
return value instanceof TemplateRef;
}
protected onChangeHandler = (_: any) => { };
protected onTouchedHandler = () => { };
}