File

src/timepicker/timepicker.component.ts

Description

Get started with importing the module:

Example :
import { TimePickerModule } from 'carbon-components-angular';

See demo

Implements

ControlValueAccessor

Metadata

Index

Properties
Methods
Inputs
Outputs
HostBindings
HostListeners

Inputs

disabled
Type : boolean
Default value : false
hideLabel
Type : boolean
Default value : false
id
Type : string
Default value : `timepicker-${TimePicker.timePickerCount++}`
invalid
Type : boolean
Default value : false
invalidText
Type : string | TemplateRef<any>
label
Type : string | TemplateRef<any>
maxLength
Type : number
Default value : 5
pattern
Type : string
Default value : "(1[012]|[0-9]):[0-5][0-9]"
placeholder
Type : string
Default value : "hh:mm"
size
Type : "sm" | "md" | "lg"
Default value : "md"

sm, md (default), or lg select size

skeleton
Type : boolean
Default value : false

Set to true for a loading select.

theme
Type : "light" | "dark"
Default value : "dark"
value
Type : string

Outputs

valueChange
Type : EventEmitter<string>

HostBindings

class.cds--form-item
Type : boolean
Default value : true

Ensures component is properly styled when used standalone.

HostListeners

focusout
focusout()

Methods

focusOut
focusOut()
Decorators :
@HostListener('focusout')
Returns : void
Public isTemplate
isTemplate(value)
Parameters :
Name Optional
value No
Returns : boolean
onChange
onChange(event)
Parameters :
Name Optional
event No
Returns : void
registerOnChange
registerOnChange(callback: any)
Parameters :
Name Type Optional
callback any No
Returns : void
registerOnTouched
registerOnTouched(callback: any)
Parameters :
Name Type Optional
callback any No
Returns : void
setDisabledState
setDisabledState(isDisabled: boolean)
Parameters :
Name Type Optional
isDisabled boolean No
Returns : void
writeValue
writeValue(value: string)
Parameters :
Name Type Optional
value string No
Returns : void

Properties

Protected onChangeHandler
Default value : () => {...}
Protected onTouchedHandler
Default value : () => {...}
timepickerClass
Default value : true
Decorators :
@HostBinding('class.cds--form-item')

Ensures component is properly styled when used standalone.

Static timePickerCount
Type : number
Default value : 0

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 = () => { };
}
Legend
Html element
Component
Html element with directive

results matching ""

    No results matching ""