mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-01-14 01:25:37 -05:00
* add more folders to strictire compile, add more strict compile options * update ci * remove unnecessary assertion
57 lines
1.6 KiB
TypeScript
57 lines
1.6 KiB
TypeScript
/*---------------------------------------------------------------------------------------------
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
|
*--------------------------------------------------------------------------------------------*/
|
|
|
|
import {
|
|
Component, Inject, forwardRef, ElementRef, OnInit, Input,
|
|
Output, OnChanges, SimpleChanges, EventEmitter
|
|
} from '@angular/core';
|
|
|
|
import { Checkbox as sqlCheckbox } from 'sql/base/browser/ui/checkbox/checkbox';
|
|
|
|
@Component({
|
|
selector: 'checkbox',
|
|
template: ''
|
|
})
|
|
export class Checkbox implements OnInit, OnChanges {
|
|
@Input() label!: string;
|
|
@Input() enabled = true;
|
|
@Input() checked = true;
|
|
@Input('aria-label') private ariaLabel?: string;
|
|
|
|
@Output() onChange = new EventEmitter<boolean>();
|
|
|
|
private _checkbox?: sqlCheckbox;
|
|
|
|
constructor(
|
|
@Inject(forwardRef(() => ElementRef)) private _el: ElementRef
|
|
) { }
|
|
|
|
ngOnInit(): void {
|
|
this._checkbox = new sqlCheckbox(this._el.nativeElement, {
|
|
label: this.label,
|
|
ariaLabel: this.ariaLabel || this.label,
|
|
checked: this.checked,
|
|
enabled: this.enabled
|
|
});
|
|
this._checkbox.onChange(e => { this.onChange.emit(e); });
|
|
}
|
|
|
|
ngOnChanges(changes: SimpleChanges): void {
|
|
if (this._checkbox) {
|
|
if (changes['label']) {
|
|
this._checkbox.label = changes['label'].currentValue;
|
|
}
|
|
|
|
if (changes['enabled']) {
|
|
this._checkbox.enabled = changes['enabled'].currentValue;
|
|
}
|
|
|
|
if (changes['checked']) {
|
|
this._checkbox.checked = changes['checked'].currentValue;
|
|
}
|
|
}
|
|
}
|
|
}
|